All Packages

package gnu.targets;
// Package of targets that wrap GNU gcc code generation tools. The targets MVArm9 and UCArm9 are deprecated, and the targets from gnu.targets.arm should be used instead
package gnu.targets.arm;
// GCC-based code generation targets for Arm
package gnu.targets.arm.rts470MV;
// Runtime support package for the MV 470 targets
package gnu.targets.arm.rts470uC;
// Runtime support package for the gcc/uClibc 470 targets
package gnu.targets.arm.rtsv5T;
// Runtime support package for the gnu.targets.arm.GCArmv5T target
package gnu.targets.arm.rtsv6;
// Runtime support package for the gnu.targets.arm.GCArmv6 target
package gnu.targets.arm.rtsv7A;
// Runtime support package for the gnu.targets.arm.GCArmv7A target
package gnu.targets.arm.rtsv7M;
// Runtime support package for the gnu.targets.arm.GCArmv7M target
package gnu.targets.codesourcery;
// Codesourcery code generation targets for Arm processors
package gnu.targets.codesourcery.rtsv5T;
// Runtime support package for the gnu.targets.codesourcery.GCArmv5T target
package gnu.targets.codesourcery.rtsv6;
// Runtime support package for the gnu.targets.codesourcery.GCArmv6 target
package gnu.targets.rts470MV;
// Runtime support package for the MV 470 targets
package gnu.targets.rts470uC;
// Runtime support package for the gcc/uClibc 470 targets
package gnu.targets.rts5;
// Runtime support package for the Sparc targets
package gnu.targets.rts86GW;
// Runtime support package for the x86 targets using the mingw codegen tools
package gnu.targets.rts86U;
// Runtime support package for the x86 targets
package google.targets;
// Package of targets that wrap GNU gcc code generation tools
package google.targets.arm;
// GCC-based code generation targets for Arm
package google.targets.arm.rts;
// Runtime support package for the google.targets.arm.GCArmv5T target
package host.platforms.PC;
// Platform package for the PC platform
package host.platforms.SUN;
// Platform package for the SUN Sparc platform
package host.platforms.arm;
// Platform package for the ARM-based platforms running an OS with virtual memory
package iar.targets.msp430;
//
package iar.targets.msp430.rts;
//
package microsoft.targets;
// Targets that wrap Microsoft code generation tools
package microsoft.targets.arm;
// Targets that wrap Microsoft code generation tools for Arm
package microsoft.targets.arm.rts;
// Runtime support package for the Arm targets for use with Microsoft tools
package microsoft.targets.rts;
// Runtime support package for the x86 targets for use with Microsoft tools
package qnx.targets.arm;
// GCC-based QNX code generation targets for Arm
package qnx.targets.arm.rts;
// Runtime support package for the qnx.targets.arm.Qnx target
package ti.catalog;
// TI device specifications
package ti.catalog.arm;
// Package of devices for the arm family of Arm processors
package ti.catalog.arm.cortexa15;
// Package of devices for the arm Cortex A15 family of Arm processors
package ti.catalog.arm.cortexa8;
// Package of devices for the Cortex A8 family of Arm processors
package ti.catalog.arm.cortexa9;
// Package of devices for the arm Cortex A9 family of Arm processors
package ti.catalog.arm.cortexm3;
// Package of devices for the arm Cortex M3 family of Arm processors
package ti.catalog.arm.cortexm3.concertoInit;
// Concerto M3 boot time initialization support
package ti.catalog.arm.cortexm3.lm3init;
// Cortex LM3 boot time initialization support
package ti.catalog.arm.cortexm4;
// Package of devices for the arm Cortex M4 family of Arm processors
package ti.catalog.arm.cortexr4;
// Package of devices for the arm Cortex R4 family of Arm processors
package ti.catalog.arm.nda;
// Package of devices for the arm family of Arm processors
package ti.catalog.arm.peripherals.timers;
// Arm timer peripherals
package ti.catalog.arp32;
// Package of devices for the arp32 family of DSPs
package ti.catalog.c2800;
// Package of devices for the c2800 family of DSPs
package ti.catalog.c2800.concertoInit;
// Concerto 28xx boot time initialization support
package ti.catalog.c2800.init;
// C28xx boot time initialization support
package ti.catalog.c5400;
// Package of devices for the c5400 family of DSPs
package ti.catalog.c5500;
// Package of devices for the c5500 family of DSPs
package ti.catalog.c6000;
// Package of devices for the c6000 family of DSPs
package ti.catalog.c6000.nda;
// Package of devices for the c6000 family of DSPs
package ti.catalog.msp430;
// Package of devices for the msp430 family
package ti.catalog.msp430.init;
// MSP430 boot time initialization support
package ti.catalog.msp430.peripherals.adc;
// MSP430 ADC peripherals
package ti.catalog.msp430.peripherals.clock;
// MSP430 clock peripherals
package ti.catalog.msp430.peripherals.communication;
// MSP430 USCI peripherals
package ti.catalog.msp430.peripherals.comparator;
// MSP430 Flash memory peripheral
package ti.catalog.msp430.peripherals.dac;
// MSP430 DAC peripheral
package ti.catalog.msp430.peripherals.dma;
// MSP430 DMA controller peripheral
package ti.catalog.msp430.peripherals.frctl;
// MSP430 FRAM controller (FRCTL) peripheral
package ti.catalog.msp430.peripherals.gpio;
// MSP430 GPIO peripheral
package ti.catalog.msp430.peripherals.interrupt;
// MSP430 interrupt support
package ti.catalog.msp430.peripherals.memory;
// MSP430 Flash memory peripheral
package ti.catalog.msp430.peripherals.oa;
// MSP430 Op Amp peripheral
package ti.catalog.msp430.peripherals.pmm;
// MSP430 PMM (Power Management Module) peripheral
package ti.catalog.msp430.peripherals.ref;
// MSP430 REF (Reference Module) peripheral
package ti.catalog.msp430.peripherals.rtc;
// MSP430 RTC (real time clock) peripheral
package ti.catalog.msp430.peripherals.special_function;
// MSP430 interrupt enable support
package ti.catalog.msp430.peripherals.svs;
// MSP430 SVS peripheral
package ti.catalog.msp430.peripherals.timer;
// MSP430 Timer_A and Timer_B peripherals
package ti.catalog.msp430.peripherals.watchdog;
// MSP430 WDT+ (watchdog timer) peripheral
package ti.catalog.peripherals.hdvicp2;
// HD Video Coprocessor support
package ti.mcu.msp430;
// Grace support for the MSP430
package ti.mcu.msp430.runtime;
// Local extensions to the xdc.runtime modules
package ti.mcu.msp430.runtime.utils;
// Misc utilities
package ti.platforms.app510;
// Platform package for the DM510 app510 platform
package ti.platforms.concertoC28;
// Platform support for any concerto C28 device
package ti.platforms.concertoM3;
// Platform support for any concerto M3 device
package ti.platforms.control28027;
// Platform package for the 28027 control card
package ti.platforms.control28035;
// Platform package for the 28035 control card
package ti.platforms.control28055;
// Platform package for the 28055 control card and control stick
package ti.platforms.control28069;
// Platform package for the 28069 control card and control stick
package ti.platforms.control28335;
// Platform package for the 28335 control card
package ti.platforms.control28346;
// Platform package for the 28346 control card
package ti.platforms.dsk5402;
// Platform package for the dsk5402 platform
package ti.platforms.dsk5416;
// Platform package for the dsk5416 platform
package ti.platforms.dsk5505;
// Platform package for the DSK5505 platform
package ti.platforms.dsk5510;
// Platform package for the dsk5510 platform
package ti.platforms.dsk6211;
// Platform package for the dsk6211 platform
package ti.platforms.dsk6416;
// Platform package for the dsk6416 platform
package ti.platforms.dsk6455;
// Platform package for the dsk6455 platform
package ti.platforms.dsk6711;
// Platform package for the DSK6711 platform
package ti.platforms.dsk6713;
// Platform package for the dsk6713 platform
package ti.platforms.dskTCI6482;
// Platform package for the dskTCI6482 platform
package ti.platforms.evm2530;
// Platform package for the evm2530 platform
package ti.platforms.evm3530;
// Platform package for the evm3530 platform
package ti.platforms.evm5505;
// Platform package for the EVM5505 platform
package ti.platforms.evm5505ext;
// Platform package for the EVM5505 platform (with external memory card)
package ti.platforms.evm5509A;
// Platform package for the EVM5509A platform
package ti.platforms.evm5515;
// Platform package for the EVM5515 platform
package ti.platforms.evm5517;
// Platform package for the EVM5517 platform
package ti.platforms.evm5525;
// Platform package for the EVM5525 platform
package ti.platforms.evm6424;
// Platform package for the evm6424 platform
package ti.platforms.evm6452;
// Platform package for the evm6452 platform
package ti.platforms.evm6457;
// Platform package for the evm6457 platform
package ti.platforms.evm6472;
// Platform package for the evm6472 platform
package ti.platforms.evm6474;
// Platform package for the evm6474 platform
package ti.platforms.evm6614;
// Platform package for the 6614 EVM
package ti.platforms.evm6657;
// Platform package for the 6657 EVM
package ti.platforms.evm6670;
// Platform package for the 6670 EVM
package ti.platforms.evm6678;
// Platform package for the 6678 EVM
package ti.platforms.evm6747;
// Platform package for the evm6747 platform
package ti.platforms.evm6748;
// Platform package for the evm6748 platform
package ti.platforms.evmAM3359;
// Platform package for the evmAM3359 platform
package ti.platforms.evmAM3505;
// Platform package for the evmAM3505 platform
package ti.platforms.evmAM3517;
// Platform package for the evmAM3517 platform
package ti.platforms.evmC6A8149;
// Platform package for the evmC6A8149 platform
package ti.platforms.evmC6A8168;
// Platform package for the evmC6A8168 platform
package ti.platforms.evmDA830;
// Platform package for the evmDA830 platform
package ti.platforms.evmDA850;
// Platform package for the evmDA850 platform
package ti.platforms.evmDM355;
// Platform package for the evmDM355 platform
package ti.platforms.evmDM357;
// Platform package for the evmDM357 platform
package ti.platforms.evmDM365;
// Platform package for the evmDM365 platform
package ti.platforms.evmDM420;
// Platform package for the DaVinci evmDM420 platform
package ti.platforms.evmDM642;
// Platform package for the EVMDM642 platform
package ti.platforms.evmDM6437;
// Platform package for the evmDM6437 platform
package ti.platforms.evmDM6446;
// Platform package for the DaVinci evmDM6446 platform
package ti.platforms.evmDM6467;
// Platform package for the DaVinci evmDM6467 platform
package ti.platforms.evmDM6467T;
// Platform package for the DaVinci evmDM6467T platform
package ti.platforms.evmDM648;
// Platform package for the evmDM648 platform
package ti.platforms.evmDM8148;
// Platform package for the evmDM8148 platform
package ti.platforms.evmDM8168;
// Platform package for the evmDM8168 platform
package ti.platforms.evmDRA416;
// Platform package for the evmDRA416 platform
package ti.platforms.evmDRA446;
// Platform package for the evmDRA446 platform
package ti.platforms.evmDRA459;
// Platform package for the evmDRA459 platform
package ti.platforms.evmLM3S8962;
// Platform package for the evmLM3S8962 platform
package ti.platforms.evmLM3S9B92;
// Platform package for the evmLM3S9B92 platform
package ti.platforms.evmOMAPL137;
// Platform package for the evmOMAPL137 platform
package ti.platforms.evmOMAPL138;
// Platform package for the evmOMAPL138 platform
package ti.platforms.evmTCI6484;
// Platform package for the evmTCI6484 platform
package ti.platforms.evmTCI6486;
// Platform package for the evmTCI6486 platform
package ti.platforms.evmTCI6488;
// Platform package for the evmTCI6488 platform
package ti.platforms.evmTI811X;
// Platform package for the evmTI811X platform
package ti.platforms.evmTI813X;
// Platform package for the evmTI813X platform
package ti.platforms.evmTI814X;
// Platform package for the evmTI814X platform
package ti.platforms.evmTI816X;
// Platform package for the evmTI816X platform
package ti.platforms.evmTMS570;
// Platform package for the evmTMS570 platform
package ti.platforms.evmTMS570LS20216;
// Platform package for the evmTMS570 platform
package ti.platforms.evmTMS570PSF762;
// Platform package for the evmTMS570 platform
package ti.platforms.evmTNETV107X;
// Platform package for the DaVinci evmTNETV107X platform
package ti.platforms.evmTNETV2685;
// Platform package for the evmTNETV2685 platform
package ti.platforms.exp430F5438;
// Platform package for the exp430F5438 platform
package ti.platforms.exp430F5529;
// Platform package for the exp430F5529 platform
package ti.platforms.expOMAPL138;
// Platform package for the expOMAPL138 platform
package ti.platforms.ez430_chronos;
// Platform package for the ez430_chronos platform
package ti.platforms.ez430_rf2500;
// Platform package for the eZ430-RF2500 platform
package ti.platforms.ezdsp2808;
// Platform package for the eZdsp2808 platform
package ti.platforms.ezdsp2812;
// Platform package for the eZdsp2812 platform
package ti.platforms.ezdsp28235;
// Platform package for the eZdsp28235 platform
package ti.platforms.ezdsp28335;
// Platform package for the eZdsp28335 platform
package ti.platforms.ezdsp5502;
// Platform package for the ezdsp5502 platform
package ti.platforms.ezdsp5505;
// Platform package for the ezdsp5505 platform
package ti.platforms.ezdsp5535;
// Platform package for the ezdsp5535 platform
package ti.platforms.gccLM3S9B90RAM;
// Platform package for the gccLM3S9B90RAM platform
package ti.platforms.generic;
// Platform package for the generic platform
package ti.platforms.h2omap1610;
// Platform package for the h2omap1610 platform
package ti.platforms.h3omap1710;
// Platform package for the h3omap1710 platform
package ti.platforms.h4omap2420;
// Platform package for the h4omap2420 platform
package ti.platforms.innovator1510;
// Platform package for the innovator1510 platform
package ti.platforms.load6x;
// Platform package for the load6x platform
package ti.platforms.msp430;
// Platform support for any MSP430 device
package ti.platforms.osk5912;
// Platform package for the osk5912 platform
package ti.platforms.padk6727;
// Platform package for the PADK6727 platform
package ti.platforms.sdbTitan;
// Platform package for the Titan (TNETV1050) board
package ti.platforms.sdp2430;
// Platform package for the sdp2430 platform
package ti.platforms.sdp3430;
// Platform package for the sdp3430 platform
package ti.platforms.sdp4430;
// Platform package for the OMAP4430 SDP
package ti.platforms.sdp5430;
// Platform package for the OMAP5430 SDP
package ti.platforms.sim2810;
// Platform package for the sim28xx platform
package ti.platforms.sim28xx;
// Platform package for the sim28xx platform
package ti.platforms.sim470xx;
// Platform package for the sim470xx platform
package ti.platforms.sim54xx;
// Platform package for the sim54xx platform
package ti.platforms.sim55xx;
// Platform package for the sim55xx platform
package ti.platforms.sim62xx;
// Platform package for the sim62xx platform
package ti.platforms.sim64Pxx;
// Platform package for the sim64Pxx platform
package ti.platforms.sim6xxx;
// Platform package for the sim6xxx platform
package ti.platforms.simARP32;
// Platform package for the simARP32 platform
package ti.platforms.simArctic;
// Platform package for the simArctic platform
package ti.platforms.simCM3;
// Platform package for the simCM3 platform
package ti.platforms.simDM420;
// Platform package for the simDM420 platform
package ti.platforms.simDM730;
// Platform package for the simDM730 platform
package ti.platforms.simDM740;
// Platform package for the simDM740 platform
package ti.platforms.simDM8168;
// Platform package for the simDM8168 platform
package ti.platforms.simDucati;
// Platform package for the simDucati platform
package ti.platforms.simKepler;
// Platform package for the Kepler simulator
package ti.platforms.simTCI6498;
// Platform package for the TCI6498 simulator
package ti.platforms.simTCI6608;
// Platform package for the TCI6608 simulator
package ti.platforms.simTCI6616;
// Platform package for the TCI6616 simulator
package ti.platforms.simTesla;
// Platform package for the Tesla functional simulator
package ti.platforms.simVayu;
// Platform package for the Vayu SDP
package ti.platforms.stellaris;
// Platform support for any Stellaris device
package ti.platforms.teb5561;
// Platform package for the TEB 5561 platform
package ti.platforms.tms320x28;
// Generic 28xx platform support
package ti.platforms.ts430F5529;
// Platform package for the ts430F5529 platform
package ti.sdoarch.standards.pkg;
// SDO Architecture Team Package Standard
package ti.targets;
// Package of targets for TI code generation tools
package ti.targets.arm;
// Package of Arm targets for TI code generation tools
package ti.targets.arm.elf;
// Package of Arm targets for TI code generation tools for ELF
package ti.targets.arm.rtsarm;
// Runtime support package for all Arm targets
package ti.targets.arp32.elf;
// Package of targets for TI code generation tools for ARP32
package ti.targets.arp32.rts;
// Runtime support package for the arp32 targets
package ti.targets.elf;
// Package of targets for TI code generation tools for ELF
package ti.targets.msp430;
// Package of targets for MSP430 code generation tools
package ti.targets.msp430.elf;
// Package of targets for MSP430 code generation tools
package ti.targets.msp430.rts430;
// Runtime support package for the MSP430 targets
package ti.targets.omf.cof;
// Simple TI COFF parser support
package ti.targets.omf.elf;
// Simple ELF parser support
package ti.targets.rts2800;
// Runtime support package for the c2800 targets
package ti.targets.rts470;
// Runtime support package for the c470 targets
package ti.targets.rts5400;
// Runtime support package for the c5400 targets
package ti.targets.rts5500;
// Runtime support package for the c5500 targets
package ti.targets.rts6000;
// Runtime support package for the c6000 targets
package xdc;
// Core interfaces and modules necessary for the XDC runtime
package xdc.bld;
// The XDC Build Model
package xdc.cfg;
// Configuration Object Model elements
package xdc.platform;
// Interfaces and modules necessary for the XDC Platform Model
package xdc.platform.generic;
// Platform package for the generic platform
package xdc.rta.tools.file;
// Tool for reading and decoding RTA data from a file
package xdc.runtime;
// Basic runtime support for RTSC programs
package xdc.runtime.knl;
// XDC Runtime support for OS-related primitives
package xdc.services.getset;
// Callback notification on RTSC config parameters
package xdc.services.global;
// Common XDC utility classes
package xdc.services.spec;
// Java classes to access XDCspec information
package xdc.shelf;
// Container for third party jars required by XDCtools
package xdc.shelf.local;
// Container for third party jars required to rebuild XDCtools
package xdc.tools;
// Command line tool support
package xdc.tools.cdoc;
// RTSC documentation generator
package xdc.tools.cdoc.sg;
// Interactive Package Documentation Browser
package xdc.tools.check;
// Check compatibility of specified packages
package xdc.tools.configuro;
// Command-line configuration tool
package xdc.tools.configuro.ccs;
// Command-line configuration tool adapter for Code Composer Studio
package xdc.tools.path;
// Package Repository Path Display Tool
package xdc.tools.path.sg;
// Graphical interface to path tool
package xdc.tools.product;
// Interfaces for products contributing RTSC packages
package xdc.tools.product.plugingen;
// Command-line tool for generating eclipse plugins for RTSC content
package xdc.tools.product.trexgen;
// Command-line tool for generating projectspec files for RTSC content
package xdc.tools.repoman;
// Repository Manager tool
package xdc.tools.repoman.sg;
// Graphical interface to repoman tool
generated on Thu, 08 Nov 2012 02:19:06 GMT


package gnu.targets
index URL

Package of targets that wrap GNU gcc code generation tools. The targets MVArm9 and UCArm9 are deprecated, and the targets from gnu.targets.arm should be used instead

XDCspec declarations sourced in gnu/targets/package.xdc
requires xdc.bld;
package gnu.targets [1, 0, 1] {
    interface ITarget;
    // Interface to GCC compatible compilers
    module Linux86;
    // Native x86 Linux target
    module Mingw;
    // MinGW native Windows target
    module Sparc;
    // Native Sparc Solaris target
}
generated on Thu, 08 Nov 2012 02:13:50 GMT


package gnu.targets

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    requires xdc.bld;
    14
    15    /*!
    16     *  ======== gnu.targets ========
    17     *  Package of targets that wrap GNU gcc code generation tools.
    18     *  The targets MVArm9 and UCArm9 are deprecated, and the targets from
    19     *  {@link gnu.targets.arm} should be used instead.
    20     */
    21    package gnu.targets [1,0,1] {
    22        module Sparc, Linux86, Mingw;
    23        module MVArm9, UCArm9;
    24        interface ITarget;
    25    }
    26    /*
    27     *  @(#) gnu.targets; 1, 0, 1,609; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


interface gnu.targets.ITarget

metaonly interface gnu.targets.ITarget
index URL

Interface to GCC compatible compilers

XDCspec summary sourced in gnu/targets/ITarget.xdc
metaonly interface ITarget { ...
// inherits xdc.bld.ITarget2
    // inherits xdc.bld.ITarget
XDCspec declarations sourced in gnu/targets/ITarget.xdc
package gnu.targets;
metaonly interface ITarget inherits ITarget2 {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    readonly config Bool CYGWIN// Is the target's compiler a cygwin executable = false;
    readonly config Bool alignDirectiveSupported// The compiler supports an align directive = false;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    override readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files = {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: ""
    };
    readonly config ITarget.Module base// A target that this target is based upon;
    readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    override readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files = {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: ""
    };
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    readonly config String sectMap// Output section name to segment type mapping[string];
    override readonly config String stdInclude// Standard C/C++ types header = "gnu/targets/std.h";
    readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 0,
            align: 0
        },
        t_Char: {
            size: 0,
            align: 0
        },
        t_Double: {
            size: 0,
            align: 0
        },
        t_Float: {
            size: 0,
            align: 0
        },
        t_Fxn: {
            size: 0,
            align: 0
        },
        t_Int: {
            size: 0,
            align: 0
        },
        t_Int8: {
            size: 0,
            align: 0
        },
        t_Int16: {
            size: 0,
            align: 0
        },
        t_Int32: {
            size: 0,
            align: 0
        },
        t_Int40: {
            size: 0,
            align: 0
        },
        t_Int64: {
            size: 0,
            align: 0
        },
        t_Long: {
            size: 0,
            align: 0
        },
        t_LDouble: {
            size: 0,
            align: 0
        },
        t_LLong: {
            size: 0,
            align: 0
        },
        t_Ptr: {
            size: 0,
            align: 0
        },
        t_Short: {
            size: 0,
            align: 0
        },
        t_Size: {
            size: 0,
            align: 0
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    config String BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = null;
    config String GCCTARG// The name of the platform executing programs produced by this target = null;
    config String GCCVERS// Version number of the GCC compiler; e.g., "3.2" = null;
    config String LONGNAME// The "long name" of the gcc compiler = "/bin/gcc";
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
    config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    config ITarget.DebugGen debugGen// Debugger/IDE file generation support;
    config String execExt// Extension for executables;
    config ITarget.Extension extensions// File extensions recognized by this target[string] = [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
    override config String includeOpts// Additional user configurable target-specific include path options = "";
    config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "",
        suffix: ""
    };
    config Bool noStdLinkScript// Don't use the standard linker script = false;
    config String platform// The default platform name for this target;
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Profiles supported by this target[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
    config String remoteHost// Remote host used to run compiler, linker, and archiver tools;
    config String rootDir// Installation directory for this target's code generation tools;
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of GCC compiler version numbers to compatibility keys[string] = [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef ITarget.StringArray
index URL
XDCspec declarations sourced in gnu/targets/ITarget.xdc
typedef String StringArray[];
struct ITarget.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct ITarget.Command
index URL

Required command and options

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct ITarget.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ITarget.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct ITarget.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ITarget.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ITarget.Extension
index URL

File extension to file type association

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ITarget.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct ITarget.Model
index URL

Target runtime model

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ITarget.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ITarget.Options
index URL

User configurable command options

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct ITarget.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in gnu/targets/ITarget.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config ITarget.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config Bool CYGWIN = false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config ITarget.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config Bool alignDirectiveSupported = false;
config ITarget.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in gnu/targets/ITarget.xdc
override readonly config ITarget2.Command ar = {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config ITarget.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in gnu/targets/ITarget.xdc
override readonly config ITarget2.Command asm = {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: ""
};
config ITarget.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ITarget.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ITarget.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in gnu/targets/ITarget.xdc
override readonly config ITarget2.Command cc = {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: ""
};
config ITarget.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ITarget.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in gnu/targets/ITarget.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config ITarget.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ITarget.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ITarget.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ITarget.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ITarget.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config String sectMap[string];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ITarget.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in gnu/targets/ITarget.xdc
override readonly config String stdInclude = "gnu/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ITarget.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 0,
        align: 0
    },
    t_Char: {
        size: 0,
        align: 0
    },
    t_Double: {
        size: 0,
        align: 0
    },
    t_Float: {
        size: 0,
        align: 0
    },
    t_Fxn: {
        size: 0,
        align: 0
    },
    t_Int: {
        size: 0,
        align: 0
    },
    t_Int8: {
        size: 0,
        align: 0
    },
    t_Int16: {
        size: 0,
        align: 0
    },
    t_Int32: {
        size: 0,
        align: 0
    },
    t_Int40: {
        size: 0,
        align: 0
    },
    t_Int64: {
        size: 0,
        align: 0
    },
    t_Long: {
        size: 0,
        align: 0
    },
    t_LDouble: {
        size: 0,
        align: 0
    },
    t_LLong: {
        size: 0,
        align: 0
    },
    t_Ptr: {
        size: 0,
        align: 0
    },
    t_Short: {
        size: 0,
        align: 0
    },
    t_Size: {
        size: 0,
        align: 0
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config ITarget.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in gnu/targets/ITarget.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ITarget.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String BINVERS = null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config ITarget.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String GCCTARG = null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config ITarget.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String GCCVERS = null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config ITarget.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String LONGNAME = "/bin/gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config ITarget.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config ITarget2.Options asmOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config ITarget.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config ITarget2.Options ccOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ITarget.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config ITarget.DebugGen debugGen;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config ITarget.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ITarget.extensions // module-wide
index URL

File extensions recognized by this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config ITarget.Extension extensions[string] = [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config ITarget.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in gnu/targets/ITarget.xdc
override config String includeOpts = "";
config ITarget.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config ITarget2.Options lnkOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config Bool noStdLinkScript = false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config ITarget.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String platform;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ITarget.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ITarget.profiles // module-wide
index URL

Profiles supported by this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ITarget.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String remoteHost;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config ITarget.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in gnu/targets/ITarget.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ITarget.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
override config String version;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config ITarget.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCspec declarations sourced in gnu/targets/ITarget.xdc
override config String versionMap[string] = [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
ITarget.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in gnu/targets/ITarget.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in gnu/targets/ITarget.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ITarget.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in gnu/targets/ITarget.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in gnu/targets/ITarget.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in gnu/targets/ITarget.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
ITarget.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in gnu/targets/ITarget.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
ITarget.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in gnu/targets/ITarget.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in gnu/targets/ITarget.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in gnu/targets/ITarget.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in gnu/targets/ITarget.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ITarget.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in gnu/targets/ITarget.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:49 GMT


interface gnu.targets.ITarget

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== gnu.targets.ITarget ========
    14     *  Interface to GCC compatible compilers
    15     */
    16    @TargetHeader("xdc/bld/stddefs.xdt")
    17    metaonly interface ITarget inherits xdc.bld.ITarget2 {
    18
    19        override readonly config string stdInclude = "gnu/targets/std.h";
    20        override config string dllExt     = ".so";
    21
    22        /*!
    23         *  ======== GCCVERS ========
    24         *  Version number of the GCC compiler; e.g., "3.2".
    25         *
    26         *  This string can be supplied by the user, otherwise it is obtained
    27         *  by running "gcc -dumpversion".
    28         */
    29        config string GCCVERS = null;
    30
    31        /*!
    32         *  ======== BINVERS ========
    33         *  Version number of binutils used with the compiler; e.g., "2.19".
    34         *
    35         *  This string can be supplied by the user, otherwise it is obtained
    36         *  by running "ld -v".
    37         */
    38        config string BINVERS = null;
    39
    40        /*!
    41         *  ======== version ========
    42         *  The Compatibility Key associated with this target.
    43         *
    44         *  The first two components of this target's Compatibility Key are '1,0'.
    45         *  The rest of the Key represents the compiler version. The third
    46         *  component combines the major and the minor version number in the format
    47         *  Major.Minor. The fourth component is the patch number.
    48         *
    49         *  @a(Example)
    50         *  If this target's `rootDir` points to the compiler version 3.4.6, the
    51         *  Compatibility Key is [1,0,3.4,6].
    52         *
    53         */
    54        override metaonly config String version;
    55
    56        /*!
    57         *  ======== GCCTARG ========
    58         *  The name of the platform executing programs produced by this target
    59         *
    60         *  This string can be supplied by the user, otherwise is is obtained
    61         *  from the compiler and follows the GNU standard format
    62         *  (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>);
    63         *  e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
    64         *
    65         *  When building a GCC compiler, there are three different execution
    66         *  platforms to consider: the platform used to "build" the compiler, the
    67         *  "host" platform that runs the compiler, and the "target" platform
    68         *  that runs the executables produced by the compiler. All three
    69         *  platforms are identified using a
    70         *  {@link http://sources.redhat.com/autobook/autobook/autobook_17.html configuration name}
    71         *  defined by GNU Autotools.  `GCCTARG` is the name of the "target"
    72         *  platform.
    73         */
    74        config string GCCTARG = null;
    75
    76        /*!
    77         *  ======== LONGNAME ========
    78         *  The "long name" of the gcc compiler
    79         *
    80         *  This name is used (in conjunction with rootDir) to find the compiler
    81         *  and linker for this target. The format of `LONGNAME` is always
    82         *  "/bin/<machine>-gcc". For majority of the targets, the default value
    83         *  for `LONGNAME` does not ever need to be changed. But, there are
    84         *  targets where the different but compatible compilers may have
    85         *  different `LONGNAME` parameters. For such targets and compilers,
    86         *  `LONGNAME` can be set in `config.bld`.
    87         *
    88         *  @a(Example)
    89         *  If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is
    90         *  installed in C:/CodeSourcery/arm-2010q1, the following settings in
    91         *  `config.bld` configure `gnu.targets.arm.GCArmv6` target to use that
    92         *  toolchain:
    93         *  @p(code)
    94         *  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
    95         *  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
    96         *  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
    97         *  @p
    98         *
    99         */
   100        config string LONGNAME = "/bin/gcc";
   101
   102        /*!
   103         *  ======== CYGWIN ========
   104         *  Is the target's compiler a cygwin executable
   105         *
   106         *  Since file names produced by cygwin-based tools differ from the
   107         *  names understood by other Windows executables, it is important
   108         *  to avoid using the names output by cygwin tools as input to
   109         *  non-cygwin programs.  This property tells the target whether
   110         *  or not it's possible to use the output from `gcc -MD -MF`, for
   111         *  example.
   112         */
   113        readonly config Bool CYGWIN = false;
   114
   115        /*!
   116         *  ======== noStdLinkScript ========
   117         *  Don't use the standard linker script
   118         *
   119         *  If `true`, add a `-T` flag before the generated `package/cfg/*.xdl`
   120         *  file passed to the linker.  This flag suppresses use of the
   121         *  standard linker script implicit in the GCC flow, which effectively
   122         *  says the generated `.xdl` file assumes total control for all
   123         *  `MEMORY` and `SECTION` directives.
   124         *
   125         */
   126        config Bool noStdLinkScript = false;
   127
   128        /*
   129         *  ======== profiles ========
   130         */
   131        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   132            ["debug", {
   133                compileOpts: {
   134                    copts: "-g",
   135                    defs:  "-D_DEBUG_=1",
   136                },
   137                linkOpts: "-g",
   138            }],
   139
   140            ["release", {
   141                compileOpts: {
   142                    copts: "-O2 -ffunction-sections -fdata-sections",
   143                },
   144                linkOpts: "-Wl,--gc-sections",
   145            }],
   146
   147            ["profile", {
   148                compileOpts: {
   149                    copts: "-g -pg",
   150                },
   151                linkOpts: "-pg"     /* can't use -static here */
   152            }],
   153
   154            ["coverage", {
   155                compileOpts: {
   156                    copts: "-fprofile-arcs -ftest-coverage",
   157                },
   158                linkOpts: "-fprofile-arcs -ftest-coverage",
   159            }],
   160        ];
   161
   162        /*!
   163         *  ======== versionMap ========
   164         *  Map of GCC compiler version numbers to compatibility keys.
   165         *
   166         *  This map translates version string information from the compiler
   167         *  into a compatibility key.  The compatibilty key is used to
   168         *  validate consistency among a collection of packages used in
   169         *  a configuration.
   170         *
   171         *  The compiler version string is "gcc<ver>", where <ver> is
   172         *  GCCVERS.
   173         *
   174         *  If a compiler version is not found in this map the default is
   175         *  "1,0,<ver>", where <ver> is the compiler version number.  Thus,
   176         *  the user only needs to extend this table when a significant
   177         *  incompatibility occurs or when two versions of the compiler should
   178         *  be treated as 100% compatible.
   179         */
   180        override config string versionMap[string] = [
   181            ["gcc3.2", "1,0,3.2,0"],
   182        ];
   183
   184        /*!
   185         *  ======== remoteHost ========
   186         *  Remote host used to run compiler, linker, and archiver tools
   187         *
   188         *  If `remoteHost` is `null` (or `undefined`), the configured compiler
   189         *  is run locally; otherwise, `remoteHost` is taken to be the host name
   190         *  of the machine that that should be used to run the specified compiler.
   191         *
   192         *  All target commands are prefixed with a command that uses `rsh` to run
   193         *  the commands on the specified host.  Thus, in order to use this
   194         *  setting, the remote machine must be support `rsh` and the user must
   195         *  have permission to run commands from the local machine on the remote
   196         *  host named `remoteHost`.  This usually involves adding a line to the
   197         *  user's `~/.rhosts` file on the remote machine of the form:
   198         *  @p(code)
   199         *      local-machine-name user-name
   200         *  @p
   201         *  where `local-machine-name` is the name of the local machine and
   202         * `user-name` is the user's login name on the local machine.
   203         */
   204        config string remoteHost;
   205
   206        /*!
   207         *  ======== ar ========
   208         *  The command used to create an archive
   209         */
   210        override readonly config xdc.bld.ITarget2.Command ar = {
   211            cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
   212            opts: "cr"
   213        };
   214
   215        /*!
   216         *  ======== lnk ========
   217         *  The command used to link executables.
   218         */
   219        override readonly config xdc.bld.ITarget2.Command lnk = {
   220            cmd: "$(rootDir)/$(LONGNAME)",
   221            opts: ""
   222        };
   223
   224        /*!
   225         *  ======== cc ========
   226         *  The command used to compile C/C++ source files into object files
   227         */
   228        override readonly config xdc.bld.ITarget2.Command cc = {
   229            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
   230            opts: ""
   231        };
   232
   233        /*!
   234         *  ======== asm ========
   235         *  The command used to assembles assembly source files into object files
   236         */
   237        override readonly config xdc.bld.ITarget2.Command asm = {
   238            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
   239            opts: ""
   240        };
   241
   242        /*!
   243         *  ======== includeOpts ========
   244         *  Additional user configurable target-specific include path options
   245         */
   246        override config string includeOpts = "";
   247
   248        override config String binaryParser = "ti.targets.omf.elf.Elf32";
   249    }
   250    /*
   251     *  @(#) gnu.targets; 1, 0, 1,609; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   252
   253     */
   254


module gnu.targets.Linux86

metaonly module gnu.targets.Linux86
index URL

Native x86 Linux target

  • XDCscript usage
  • Individual elements
This module defines the native target for Linux on PC.
XDCscript usage meta-domain sourced in gnu/targets/Linux86.xdc
var Linux86 = xdc.useModule('gnu.targets.Linux86');
module-wide constants & types
    var obj = new Linux86.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Linux86.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Linux86.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Linux86.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Linux86.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Linux86.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Linux86.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Linux86.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Linux86.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Linux86.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Linux86.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Linux86.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Linux86.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const Linux86.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const Linux86.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/bin/ar",
        opts: "cr"
    };
    const Linux86.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: ""
    };
    const Linux86.base// A target that this target is based upon = ITarget.Module computed value;
    const Linux86.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Linux86.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: ""
    };
    const Linux86.isa// CPU Instruction Set Architecture (ISA) = String "i686";
    const Linux86.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const Linux86.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const Linux86.name// Nickname for this target = String "Linux86";
    const Linux86.os// Name of OS required to run programs built for this target = String "Linux";
    const Linux86.rts// Name of a run-time support package to include = String "gnu.targets.rts86U";
    const Linux86.sectMap// Output section name to segment type mapping = String[string] computed value;
    const Linux86.stdInclude// Standard C/C++ types header = String "gnu/targets/std.h";
    const Linux86.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 12,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Linux86.suffix// Suffix appended to all objs, libraries, and executable = String "86U";
     Linux86.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     Linux86.GCCTARG// The name of the platform executing programs produced by this target = String null;
     Linux86.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     Linux86.LONGNAME// The "long name" of the gcc compiler = String "/bin/gcc";
     Linux86.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Linux86.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Linux86.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     Linux86.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused",
        suffix: "-Dfar="
    };
     Linux86.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     Linux86.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     Linux86.execExt// Extension for executables = String undefined;
     Linux86.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     Linux86.includeOpts// Additional user configurable target-specific include path options = String "-isystem $(rootDir)/include";
     Linux86.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/lib"
    };
     Linux86.noStdLinkScript// Don't use the standard linker script = Bool false;
     Linux86.platform// The default platform name for this target = String "host.platforms.PC";
     Linux86.platforms// A set of platforms that can support this target = String[] [ ];
     Linux86.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     Linux86.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     Linux86.rootDir// Installation directory for this target's code generation tools = String undefined;
     Linux86.version// The Compatibility Key associated with this target = String undefined;
     Linux86.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     Linux86.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Linux86.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Linux86.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Linux86.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Linux86.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Linux86.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Linux86.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Linux86.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Linux86.getVersion// Get a target-specific Compatibility Key string() returns String
     Linux86.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Linux86.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Linux86.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Linux86.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Linux86.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Linux86.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Linux86.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Linux86.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Linux86.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Linux86.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Linux86.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Linux86.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Linux86.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Linux86.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Linux86.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Linux86.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Linux86.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Linux86.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Linux86.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Linux86.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Linux86.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Linux86.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Linux86.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Linux86.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Linux86.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Linux86.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Linux86.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Linux86.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const Linux86.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config Linux86.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Linux86.alignDirectiveSupported = Bool false;
config Linux86.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Linux86.ar = ITarget2.Command {
    cmd: "$(rootDir)/bin/ar",
    opts: "cr"
};
config Linux86.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Linux86.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: ""
};
config Linux86.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Linux86.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Linux86.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Linux86.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Linux86.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Linux86.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: ""
};
config Linux86.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Linux86.isa = String "i686";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Linux86.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Linux86.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config Linux86.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Linux86.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Linux86.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Linux86.name = String "Linux86";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Linux86.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Linux86.os = String "Linux";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Linux86.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Linux86.rts = String "gnu.targets.rts86U";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Linux86.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Linux86.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Linux86.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Linux86.stdInclude = String "gnu/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Linux86.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Linux86.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 12,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Linux86.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Linux86.suffix = String "86U";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Linux86.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
Linux86.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config Linux86.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
Linux86.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config Linux86.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
Linux86.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config Linux86.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
Linux86.LONGNAME = String "/bin/gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config Linux86.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Linux86.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Linux86.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Linux86.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Linux86.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Linux86.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Linux86.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Linux86.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused",
    suffix: "-Dfar="
};
config Linux86.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Linux86.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Linux86.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
Linux86.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config Linux86.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Linux86.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Linux86.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
Linux86.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config Linux86.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Linux86.includeOpts = String "-isystem $(rootDir)/include";
config Linux86.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Linux86.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/lib"
};
config Linux86.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
Linux86.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config Linux86.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Linux86.platform = String "host.platforms.PC";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Linux86.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Linux86.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Linux86.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
Linux86.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Linux86.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
Linux86.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config Linux86.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Linux86.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Linux86.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Linux86.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config Linux86.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
Linux86.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
Linux86.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Linux86.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Linux86.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Linux86.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Linux86.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Linux86.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Linux86.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Linux86.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Linux86.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Linux86.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Linux86.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Linux86.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Linux86.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Linux86.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Linux86.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Linux86.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Linux86.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Linux86.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Linux86.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Linux86.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Linux86.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Linux86.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Linux86.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Linux86.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:50 GMT


module gnu.targets.Linux86

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== Linux86.xdc ========
    14     *  Native x86 Linux target
    15     *
    16     *  This module defines the native target for Linux on PC.
    17     */
    18    metaonly module Linux86 inherits gnu.targets.ITarget {
    19        override readonly config string name                = "Linux86";
    20        override readonly config string os                  = "Linux";
    21        override readonly config string suffix              = "86U";
    22        override readonly config string isa                 = "i686";
    23        override readonly config xdc.bld.ITarget.Model model= {
    24            endian: "little"
    25        };
    26        override readonly config string rts                 = "gnu.targets.rts86U";
    27        override config string platform                     = "host.platforms.PC";
    28
    29        /*
    30         *  ======== ar ========
    31         */
    32        override readonly config xdc.bld.ITarget2.Command ar = {
    33            cmd: "$(rootDir)/bin/ar",
    34            opts: "cr"
    35        };
    36
    37        /*
    38         *  ======== ccOpts ========
    39         */
    40        override config xdc.bld.ITarget2.Options ccOpts = {
    41            prefix: "-fPIC -Wunused",
    42            suffix: "-Dfar="
    43        };
    44
    45        /*
    46         *  ======== lnkOpts ========
    47         */
    48        override config xdc.bld.ITarget2.Options lnkOpts = {
    49            prefix: "",
    50            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/lib"
    51        };
    52
    53        /*
    54         *  ======== includeOpts ========
    55         *  $(rootDir)/include        - contains compiler specific headers
    56         *
    57         *  GCC compilers for Linux automatically add this directory, but at least
    58         *  in some cases, the directory is added searched after standard system
    59         *  directories. This way, we ensure $(rootDir)/include is searched
    60         *  before standard system directories.
    61         */
    62        override config string includeOpts = "-isystem $(rootDir)/include";
    63
    64        /*
    65         *  ======== stdTypes ========
    66         */
    67        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    68            t_IArg          : { size: 4, align: 4 },
    69            t_Char          : { size: 1, align: 1 },
    70            t_Double        : { size: 8, align: 4 },
    71            t_Float         : { size: 4, align: 4 },
    72            t_Fxn           : { size: 4, align: 4 },
    73            t_Int           : { size: 4, align: 4 },
    74            t_Int8          : { size: 1, align: 1 },
    75            t_Int16         : { size: 2, align: 2 },
    76            t_Int32         : { size: 4, align: 4 },
    77            t_Int64         : { size: 8, align: 4 },
    78            t_Long          : { size: 4, align: 4 },
    79            t_LDouble       : { size: 12, align: 4 },
    80            t_LLong         : { size: 8, align: 4 },
    81            t_Ptr           : { size: 4, align: 4 },
    82            t_Short         : { size: 2, align: 2 },
    83            t_Size          : { size: 4, align: 4 },
    84        };
    85    }
    86    /*
    87     *  @(#) gnu.targets; 1, 0, 1,609; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    88
    89     */
    90


module gnu.targets.Mingw

metaonly module gnu.targets.Mingw
index URL

MinGW native Windows target

  • XDCscript usage
  • Individual elements
This module defines a native target for Windows using the mingw compiler. [ more ... ]
XDCscript usage meta-domain sourced in gnu/targets/Mingw.xdc
var Mingw = xdc.useModule('gnu.targets.Mingw');
module-wide constants & types
    var obj = new Mingw.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Mingw.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Mingw.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Mingw.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Mingw.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Mingw.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Mingw.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Mingw.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Mingw.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Mingw.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Mingw.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Mingw.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Mingw.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const Mingw.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const Mingw.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const Mingw.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: ""
    };
    const Mingw.base// A target that this target is based upon = ITarget.Module computed value;
    const Mingw.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Mingw.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: ""
    };
    const Mingw.isa// CPU Instruction Set Architecture (ISA) = String "x86";
    const Mingw.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const Mingw.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const Mingw.name// Nickname for this target = String "Mingw";
    const Mingw.os// Name of OS required to run programs built for this target = String "Windows";
    const Mingw.rts// Name of a run-time support package to include = String "gnu.targets.rts86GW";
    const Mingw.sectMap// Output section name to segment type mapping = String[string] computed value;
    const Mingw.stdInclude// Standard C/C++ types header = String "gnu/targets/std.h";
    const Mingw.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 12,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Mingw.suffix// Suffix appended to all objs, libraries, and executable = String "86GW";
     Mingw.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     Mingw.GCCTARG// The name of the platform executing programs produced by this target = String null;
     Mingw.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     Mingw.LONGNAME// The "long name" of the gcc compiler = String "/bin/mingw32-gcc.exe";
     Mingw.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Mingw.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Mingw.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     Mingw.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-Wunused",
        suffix: "-Dfar= "
    };
     Mingw.cmdPrefix// Prefix to put in front of each command = String "";
     Mingw.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     Mingw.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     Mingw.execExt// Extension for executables = String undefined;
     Mingw.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     Mingw.includeOpts// Additional user configurable target-specific include path options = String "";
     Mingw.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/lib"
    };
     Mingw.noStdLinkScript// Don't use the standard linker script = Bool false;
     Mingw.platform// The default platform name for this target = String "host.platforms.PC";
     Mingw.platforms// A set of platforms that can support this target = String[] [ ];
     Mingw.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     Mingw.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     Mingw.rootDir// Installation directory for this target's code generation tools = String undefined;
     Mingw.version// The Compatibility Key associated with this target = String undefined;
     Mingw.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     Mingw.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Mingw.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Mingw.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Mingw.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Mingw.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Mingw.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Mingw.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Mingw.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Mingw.getVersion// Get a target-specific Compatibility Key string() returns String
     Mingw.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Mingw.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Mingw.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
DETAILS
This module defines a native target for Windows using the mingw compiler.
The mingw compiler is a freely available (www.mingw.org) port of GCC that can build Windows compatible libraries, DLLs, and executables.
struct Mingw.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Mingw.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Mingw.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Mingw.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Mingw.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Mingw.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Mingw.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Mingw.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Mingw.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Mingw.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Mingw.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Mingw.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Mingw.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Mingw.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Mingw.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Mingw.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Mingw.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Mingw.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Mingw.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Mingw.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Mingw.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Mingw.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Mingw.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Mingw.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Mingw.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const Mingw.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config Mingw.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Mingw.alignDirectiveSupported = Bool false;
config Mingw.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Mingw.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config Mingw.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Mingw.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: ""
};
config Mingw.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Mingw.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Mingw.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Mingw.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Mingw.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Mingw.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: ""
};
config Mingw.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Mingw.isa = String "x86";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Mingw.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Mingw.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config Mingw.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Mingw.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Mingw.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Mingw.name = String "Mingw";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Mingw.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Mingw.os = String "Windows";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Mingw.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Mingw.rts = String "gnu.targets.rts86GW";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Mingw.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Mingw.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Mingw.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Mingw.stdInclude = String "gnu/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Mingw.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Mingw.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 12,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Mingw.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Mingw.suffix = String "86GW";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Mingw.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
Mingw.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config Mingw.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
Mingw.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config Mingw.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
Mingw.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config Mingw.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
Mingw.LONGNAME = String "/bin/mingw32-gcc.exe";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config Mingw.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Mingw.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Mingw.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Mingw.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Mingw.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Mingw.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Mingw.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Mingw.ccOpts = ITarget2.Options {
    prefix: "-Wunused",
    suffix: "-Dfar= "
};
config Mingw.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCscript usage meta-domain
Mingw.cmdPrefix = String "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config Mingw.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Mingw.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Mingw.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
Mingw.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config Mingw.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Mingw.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Mingw.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
Mingw.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config Mingw.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Mingw.includeOpts = String "";
config Mingw.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Mingw.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/lib"
};
config Mingw.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
Mingw.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config Mingw.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Mingw.platform = String "host.platforms.PC";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Mingw.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Mingw.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Mingw.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
Mingw.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Mingw.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
Mingw.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config Mingw.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Mingw.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Mingw.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Mingw.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config Mingw.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
Mingw.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
Mingw.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Mingw.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Mingw.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Mingw.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Mingw.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Mingw.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Mingw.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Mingw.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Mingw.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Mingw.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Mingw.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Mingw.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Mingw.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Mingw.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Mingw.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Mingw.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Mingw.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Mingw.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Mingw.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Mingw.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Mingw.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Mingw.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Mingw.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Mingw.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:50 GMT


module gnu.targets.Mingw

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Mingw.xdc ========
    15     *  MinGW native Windows target
    16     *
    17     *  This module defines a native target for Windows using the mingw compiler.
    18     *
    19     *  The mingw compiler is a freely available (www.mingw.org) port of GCC that
    20     *  can build Windows compatible libraries, DLLs, and executables.
    21     */
    22    metaonly module Mingw inherits gnu.targets.ITarget {
    23        override readonly config string name                 = "Mingw";
    24        override readonly config string os                   = "Windows";
    25        override readonly config string suffix               = "86GW";
    26        override readonly config string isa                  = "x86";
    27        override readonly config xdc.bld.ITarget.Model model = {
    28            endian: "little"
    29        };
    30
    31        override readonly config string rts = "gnu.targets.rts86GW";
    32
    33        override config string platform = "host.platforms.PC";
    34
    35        override config string LONGNAME = "/bin/mingw32-gcc.exe";
    36
    37        /*!
    38         *  ======== cmdPrefix ========
    39         *  Prefix to put in front of each command
    40         *
    41         *  This string is put in front of every Command before being passed to
    42         *  the shell for execution.  This string can be used to run the compiler
    43         *  in emulation environments.
    44         */
    45        config String cmdPrefix = "";
    46
    47        override config xdc.bld.ITarget2.Options ccOpts = {
    48            prefix: "-Wunused",
    49            suffix: "-Dfar= "
    50        };
    51
    52        override config xdc.bld.ITarget2.Options lnkOpts = {
    53            prefix: "",
    54            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/lib"
    55        };
    56
    57        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    58            t_IArg          : { size: 4, align: 4 },
    59            t_Char          : { size: 1, align: 1 },
    60            t_Double        : { size: 8, align: 4 },
    61            t_Float         : { size: 4, align: 4 },
    62            t_Fxn           : { size: 4, align: 4 },
    63            t_Int           : { size: 4, align: 4 },
    64            t_Int8          : { size: 1, align: 1 },
    65            t_Int16         : { size: 2, align: 2 },
    66            t_Int32         : { size: 4, align: 4 },
    67            t_Int64         : { size: 8, align: 4 },
    68            t_Long          : { size: 4, align: 4 },
    69            t_LDouble       : { size: 12, align: 4 },
    70            t_LLong         : { size: 8, align: 4 },
    71            t_Ptr           : { size: 4, align: 4 },
    72            t_Short         : { size: 2, align: 2 },
    73            t_Size          : { size: 4, align: 4 },
    74        };
    75    }
    76    /*
    77     *  @(#) gnu.targets; 1, 0, 1,609; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    78
    79     */
    80


module gnu.targets.Sparc

metaonly module gnu.targets.Sparc
index URL

Native Sparc Solaris target

  • XDCscript usage
  • Individual elements
This module defines a native target for Solaris on Sparc workstations
XDCscript usage meta-domain sourced in gnu/targets/Sparc.xdc
var Sparc = xdc.useModule('gnu.targets.Sparc');
module-wide constants & types
    var obj = new Sparc.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Sparc.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Sparc.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Sparc.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Sparc.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Sparc.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Sparc.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Sparc.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Sparc.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Sparc.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Sparc.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Sparc.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Sparc.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const Sparc.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const Sparc.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/bin/ar",
        opts: "cr"
    };
    const Sparc.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/bin/gcc -c -x assembler",
        opts: "-B$(rootDir)/lib/gcc/$(GCCTARG)/$(GCCVERS)/ -B$(rootDir)/lib/gcc-lib/$(GCCTARG)/$(GCCVERS)/"
    };
    const Sparc.base// A target that this target is based upon = ITarget.Module computed value;
    const Sparc.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Sparc.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/bin/gcc -c -MD -MF $@.dep",
        opts: "-B$(rootDir)/lib/gcc/$(GCCTARG)/$(GCCVERS)/ -B$(rootDir)/lib/gcc-lib/$(GCCTARG)/$(GCCVERS)/"
    };
    const Sparc.isa// CPU Instruction Set Architecture (ISA) = String "sparc";
    const Sparc.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const Sparc.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const Sparc.name// Nickname for this target = String "Sparc";
    const Sparc.os// Name of OS required to run programs built for this target = String "Solaris";
    const Sparc.rts// Name of a run-time support package to include = String "gnu.targets.rts5";
    const Sparc.sectMap// Output section name to segment type mapping = String[string] computed value;
    const Sparc.stdInclude// Standard C/C++ types header = String "gnu/targets/std.h";
    const Sparc.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 16,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Sparc.suffix// Suffix appended to all objs, libraries, and executable = String "5";
     Sparc.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     Sparc.GCCTARG// The name of the platform executing programs produced by this target = String null;
     Sparc.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     Sparc.LONGNAME// The "long name" of the gcc compiler = String "/bin/gcc";
     Sparc.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Sparc.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Sparc.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     Sparc.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -m32 -Wunused",
        suffix: "-Dfar="
    };
     Sparc.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     Sparc.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     Sparc.execExt// Extension for executables = String undefined;
     Sparc.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     Sparc.includeOpts// Additional user configurable target-specific include path options = String "";
     Sparc.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-lstdc++ -L$(rootDir)/lib"
    };
     Sparc.noStdLinkScript// Don't use the standard linker script = Bool false;
     Sparc.platform// The default platform name for this target = String "host.platforms.SUN";
     Sparc.platforms// A set of platforms that can support this target = String[] [ ];
     Sparc.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     Sparc.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     Sparc.rootDir// Installation directory for this target's code generation tools = String undefined;
     Sparc.version// The Compatibility Key associated with this target = String undefined;
     Sparc.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     Sparc.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Sparc.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Sparc.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Sparc.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Sparc.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Sparc.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Sparc.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Sparc.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Sparc.getVersion// Get a target-specific Compatibility Key string() returns String
     Sparc.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Sparc.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Sparc.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Sparc.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Sparc.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Sparc.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Sparc.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Sparc.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Sparc.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Sparc.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Sparc.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Sparc.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Sparc.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Sparc.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Sparc.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Sparc.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Sparc.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Sparc.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Sparc.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Sparc.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Sparc.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Sparc.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Sparc.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Sparc.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Sparc.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Sparc.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Sparc.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Sparc.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const Sparc.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config Sparc.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Sparc.alignDirectiveSupported = Bool false;
config Sparc.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Sparc.ar = ITarget2.Command {
    cmd: "$(rootDir)/bin/ar",
    opts: "cr"
};
config Sparc.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Sparc.asm = ITarget2.Command {
    cmd: "$(rootDir)/bin/gcc -c -x assembler",
    opts: "-B$(rootDir)/lib/gcc/$(GCCTARG)/$(GCCVERS)/ -B$(rootDir)/lib/gcc-lib/$(GCCTARG)/$(GCCVERS)/"
};
config Sparc.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Sparc.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Sparc.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Sparc.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Sparc.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Sparc.cc = ITarget2.Command {
    cmd: "$(rootDir)/bin/gcc -c -MD -MF $@.dep",
    opts: "-B$(rootDir)/lib/gcc/$(GCCTARG)/$(GCCVERS)/ -B$(rootDir)/lib/gcc-lib/$(GCCTARG)/$(GCCVERS)/"
};
config Sparc.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Sparc.isa = String "sparc";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Sparc.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Sparc.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config Sparc.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Sparc.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Sparc.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Sparc.name = String "Sparc";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Sparc.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Sparc.os = String "Solaris";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Sparc.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Sparc.rts = String "gnu.targets.rts5";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Sparc.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Sparc.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Sparc.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Sparc.stdInclude = String "gnu/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Sparc.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Sparc.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 16,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Sparc.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Sparc.suffix = String "5";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Sparc.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
Sparc.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config Sparc.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
Sparc.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config Sparc.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
Sparc.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config Sparc.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
Sparc.LONGNAME = String "/bin/gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config Sparc.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Sparc.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Sparc.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Sparc.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Sparc.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Sparc.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Sparc.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Sparc.ccOpts = ITarget2.Options {
    prefix: "-fPIC -m32 -Wunused",
    suffix: "-Dfar="
};
config Sparc.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Sparc.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Sparc.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
Sparc.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config Sparc.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Sparc.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Sparc.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
Sparc.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config Sparc.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Sparc.includeOpts = String "";
config Sparc.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Sparc.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-lstdc++ -L$(rootDir)/lib"
};
config Sparc.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
Sparc.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config Sparc.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Sparc.platform = String "host.platforms.SUN";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Sparc.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Sparc.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Sparc.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
Sparc.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Sparc.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
Sparc.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config Sparc.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Sparc.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Sparc.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Sparc.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config Sparc.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
Sparc.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
Sparc.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Sparc.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Sparc.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Sparc.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Sparc.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Sparc.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Sparc.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Sparc.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Sparc.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Sparc.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Sparc.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Sparc.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Sparc.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Sparc.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Sparc.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Sparc.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Sparc.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Sparc.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Sparc.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Sparc.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Sparc.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Sparc.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Sparc.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Sparc.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:50 GMT


module gnu.targets.Sparc

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Sparc.xdc ========
    15     *  Native Sparc Solaris target
    16     *
    17     *  This module defines a native target for Solaris on Sparc workstations
    18     */
    19    metaonly module Sparc inherits gnu.targets.ITarget {
    20        override readonly config string name                = "Sparc";
    21        override readonly config string os                  = "Solaris";
    22        override readonly config string suffix              = "5";
    23        override readonly config string isa                 = "sparc";
    24        override readonly config xdc.bld.ITarget.Model model= {
    25            endian: "big"
    26        };
    27
    28        override readonly config string rts                 = "gnu.targets.rts5";
    29
    30        override config string platform = "host.platforms.SUN";
    31
    32        override readonly config xdc.bld.ITarget2.Command ar = {
    33            cmd: "$(rootDir)/bin/ar",
    34            opts: "cr"
    35        };
    36
    37        override readonly config xdc.bld.ITarget2.Command cc = {
    38            cmd: "$(rootDir)/bin/gcc -c -MD -MF $@.dep",
    39            opts: "-B$(rootDir)/lib/gcc/$(GCCTARG)/$(GCCVERS)/ -B$(rootDir)/lib/gcc-lib/$(GCCTARG)/$(GCCVERS)/"
    40        };
    41
    42        override config xdc.bld.ITarget2.Options ccOpts = {
    43            prefix: "-fPIC -m32 -Wunused",
    44            suffix: "-Dfar="
    45        };
    46
    47        override readonly config xdc.bld.ITarget2.Command asm = {
    48            cmd: "$(rootDir)/bin/gcc -c -x assembler",
    49            opts: "-B$(rootDir)/lib/gcc/$(GCCTARG)/$(GCCVERS)/ -B$(rootDir)/lib/gcc-lib/$(GCCTARG)/$(GCCVERS)/"
    50        };
    51
    52        override config xdc.bld.ITarget2.Options lnkOpts = {
    53            prefix: "",
    54            suffix: "-lstdc++ -L$(rootDir)/lib"
    55        };
    56
    57        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    58            t_IArg          : { size: 4, align: 4 },
    59            t_Char          : { size: 1, align: 1 },
    60            t_Double        : { size: 8, align: 8 },
    61            t_Float         : { size: 4, align: 4 },
    62            t_Fxn           : { size: 4, align: 4 },
    63            t_Int           : { size: 4, align: 4 },
    64            t_Int8          : { size: 1, align: 1 },
    65            t_Int16         : { size: 2, align: 2 },
    66            t_Int32         : { size: 4, align: 4 },
    67            t_Int64         : { size: 8, align: 8 },
    68            t_Long          : { size: 4, align: 4 },
    69            t_LDouble       : { size: 16, align: 8 },
    70            t_LLong         : { size: 8, align: 8 },
    71            t_Ptr           : { size: 4, align: 4 },
    72            t_Short         : { size: 2, align: 2 },
    73            t_Size          : { size: 4, align: 4 },
    74        };
    75    }
    76    /*
    77     *  @(#) gnu.targets; 1, 0, 1,609; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    78
    79     */
    80


package gnu.targets.arm
index URL

GCC-based code generation targets for Arm

  • DETAILS
  • EXAMPLE
  • SEE
This package offers a generic support for different GNU Arm compilers. For the targets in this package, a user must set configuration parameter LONGNAME in config.bld. That parameter specifies the relative path to the compiler executable from the directory specified in rootDir. [ more ... ]
XDCspec declarations sourced in gnu/targets/arm/package.xdc
requires xdc.bld;
requires gnu.targets;
package gnu.targets.arm [1, 0, 0, 0] {
    module A15;
    // Embedded Cortex A15, little endian, bare metal target
    module A9;
    // Embedded Cortex A9, little endian, bare metal target
    module GCArmv5T;
    // Embedded little endian Arm v5TE Linux target
    module GCArmv6;
    // Embedded little endian Arm v6 Linux target
    module GCArmv7A;
    // Embedded little endian Arm v7A Linux target
    module M3;
    // Embedded little endian Cortex M3 bare metal target
    module M4;
    // Embedded Cortex M4, little endian, bare metal target
    module MVArm9;
    // MonteVista Arm9 little endian embedded Linux target
    module UCArm9;
    // uClibc Arm9 little endian embedded Linux target
}
DETAILS
This package offers a generic support for different GNU Arm compilers. For the targets in this package, a user must set configuration parameter LONGNAME in config.bld. That parameter specifies the relative path to the compiler executable from the directory specified in rootDir.
EXAMPLE
If a version 2007q3 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2007q3, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2007q3";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
SEE
gnu.targets.ITarget.LONGNAME
generated on Thu, 08 Nov 2012 02:13:56 GMT


package gnu.targets.arm

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    requires xdc.bld;
    14    requires gnu.targets;
    15
    16    /*!
    17     *  ======== gnu.targets.arm ========
    18     *  GCC-based code generation targets for Arm
    19     *
    20     *  This package offers a generic support for different GNU Arm compilers.
    21     *  For the targets in this package, a user must set configuration parameter
    22     *  `LONGNAME` in `config.bld`. That parameter specifies the relative path to
    23     *  the compiler executable from the directory specified in `rootDir`.
    24     *
    25     *  @a(Example)
    26     *  If a version 2007q3 of the CodeSourcery GNU toolchain for Arm is installed
    27     *  in C:/CodeSourcery/arm-2007q3, the following settings in `config.bld`
    28     *  configure `gnu.targets.arm.GCArmv6` target to use that toolchain:
    29     *  @p(code)
    30     *  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
    31     *  GCArmv6.rootDir = "C:/CodeSourcery/arm-2007q3";
    32     *  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
    33     *  @p
    34     *
    35     *  @see gnu.targets.ITarget#LONGNAME
    36     *
    37     */
    38    package gnu.targets.arm [1,0,0,0] {
    39        module GCArmv5T, GCArmv6, GCArmv7A, M3, M4, M4F, A9, A15;
    40        module MVArm9, UCArm9;
    41    }
    42    /*
    43     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    44
    45     */
    46


module gnu.targets.arm.A15

metaonly module gnu.targets.arm.A15
index URL

Embedded Cortex A15, little endian, bare metal target

  • XDCscript usage
  • Individual elements
This module defines an embedded bare metal target on Cortex A15. The target generates code compatible with the "v7A" architecture.
XDCscript usage meta-domain sourced in gnu/targets/arm/A15.xdc
var A15 = xdc.useModule('gnu.targets.arm.A15');
module-wide constants & types
    var obj = new A15.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new A15.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new A15.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new A15.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new A15.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new A15.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new A15.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new A15.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new A15.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new A15.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new A15.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new A15.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const A15.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const A15.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const A15.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const A15.arBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-ar ",
        opts: ""
    };
    const A15.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
        opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
    };
    const A15.asmBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
        opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
    };
    const A15.base// A target that this target is based upon = ITarget.Module computed value;
    const A15.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const A15.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
    };
    const A15.ccBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
        opts: "-mabi=aapcs -mapcs"
    };
    const A15.isa// CPU Instruction Set Architecture (ISA) = String "v7A15";
    const A15.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const A15.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const A15.name// Nickname for this target = String "A15";
    const A15.os// Name of OS required to run programs built for this target = String computed value;
    const A15.rts// Name of a run-time support package to include = String "gnu.targets.arm.rtsv7A";
    const A15.sectMap// Output section name to segment type mapping = String[string] computed value;
    const A15.stdInclude// Standard C/C++ types header = String "gnu/targets/arm/std.h";
    const A15.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const A15.suffix// Suffix appended to all objs, libraries, and executable = String "a15g";
     A15.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     A15.GCCTARG// The name of the platform executing programs produced by this target = String null;
     A15.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     A15.LONGNAME// The "long name" of the gcc compiler = String "bin/arm-none-eabi-gcc";
     A15.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     A15.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     A15.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     A15.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused -Wunknown-pragmas",
        suffix: "-Dfar= "
    };
     A15.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [ ];
     A15.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     A15.execExt// Extension for executables = String undefined;
     A15.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     A15.includeOpts// Additional user configurable target-specific include path options = String "";
     A15.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib"
    };
     A15.noStdLinkScript// Don't use the standard linker script = Bool false;
     A15.platform// The default platform name for this target = String "ti.platforms.sdp5430";
     A15.platforms// A set of platforms that can support this target = String[] [ ];
     A15.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: " -O2 "
                },
                linkOpts: " "
            }
        ]
    ];
     A15.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     A15.rootDir// Installation directory for this target's code generation tools = String undefined;
     A15.version// The Compatibility Key associated with this target = String undefined;
     A15.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     A15.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     A15.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A15.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     A15.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     A15.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     A15.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     A15.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     A15.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     A15.getVersion// Get a target-specific Compatibility Key string() returns String
     A15.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     A15.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A15.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct A15.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new A15.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct A15.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new A15.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct A15.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new A15.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct A15.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new A15.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct A15.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new A15.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct A15.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new A15.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct A15.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new A15.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct A15.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new A15.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct A15.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new A15.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct A15.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new A15.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct A15.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new A15.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct A15.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new A15.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config A15.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const A15.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config A15.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const A15.alignDirectiveSupported = Bool true;
config A15.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const A15.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config A15.arBin // module-wide
index URL
XDCscript usage meta-domain
const A15.arBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-ar ",
    opts: ""
};
config A15.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const A15.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
    opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
};
config A15.asmBin // module-wide
index URL
XDCscript usage meta-domain
const A15.asmBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
    opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
};
config A15.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const A15.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config A15.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const A15.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config A15.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const A15.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
};
config A15.ccBin // module-wide
index URL
XDCscript usage meta-domain
const A15.ccBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
    opts: "-mabi=aapcs -mapcs"
};
config A15.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const A15.isa = String "v7A15";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config A15.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const A15.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config A15.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const A15.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config A15.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const A15.name = String "A15";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config A15.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const A15.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config A15.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const A15.rts = String "gnu.targets.arm.rtsv7A";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config A15.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const A15.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config A15.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const A15.stdInclude = String "gnu/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config A15.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const A15.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config A15.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const A15.suffix = String "a15g";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config A15.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
A15.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config A15.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
A15.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config A15.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
A15.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config A15.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
A15.LONGNAME = String "bin/arm-none-eabi-gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config A15.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
A15.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config A15.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
A15.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config A15.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
A15.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config A15.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
A15.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused -Wunknown-pragmas",
    suffix: "-Dfar= "
};
config A15.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
A15.compatibleSuffixes = String[] [ ];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config A15.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
A15.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config A15.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
A15.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config A15.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
A15.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config A15.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
A15.includeOpts = String "";
config A15.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
A15.lnkOpts = ITarget2.Options {
    prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib"
};
config A15.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
A15.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config A15.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
A15.platform = String "ti.platforms.sdp5430";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config A15.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
A15.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config A15.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
A15.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: " -O2 "
            },
            linkOpts: " "
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config A15.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
A15.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config A15.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
A15.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config A15.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
A15.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config A15.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
A15.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
A15.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
A15.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A15.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
A15.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A15.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
A15.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
A15.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
A15.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A15.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
A15.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A15.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
A15.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
A15.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
A15.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
A15.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
A15.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
A15.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
A15.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
A15.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
A15.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A15.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
A15.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
A15.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
A15.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:53 GMT


module gnu.targets.arm.A15

     1    /*
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    import xdc.bld.ITarget2;
    13
    14    /*!
    15     *  ======== A15.xdc ========
    16     *  Embedded Cortex A15, little endian, bare metal target
    17     *
    18     *  This module defines an embedded bare metal target on Cortex A15. The target
    19     *  generates code compatible with the "v7A" architecture.
    20     *
    21     */
    22    metaonly module A15 inherits gnu.targets.ITarget {
    23        override readonly config string name                = "A15";
    24        override readonly config string suffix              = "a15g";
    25        override readonly config string isa                 = "v7A15";
    26        override readonly config xdc.bld.ITarget.Model model= {
    27            endian: "little",
    28            shortEnums: true
    29        };
    30
    31        override readonly config Bool alignDirectiveSupported = true;
    32
    33        override readonly config string rts = "gnu.targets.arm.rtsv7A";
    34        override config string platform     = "ti.platforms.sdp5430";
    35
    36        override config string LONGNAME = "bin/arm-none-eabi-gcc";
    37
    38        override readonly config String stdInclude = "gnu/targets/arm/std.h";
    39
    40        override readonly config ITarget2.Command cc = {
    41            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    42            opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
    43        };
    44
    45        readonly config ITarget2.Command ccBin = {
    46            cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
    47            opts: "-mabi=aapcs -mapcs"
    48        };
    49
    50        override config ITarget2.Options ccOpts = {
    51            prefix: "-fPIC -Wunused -Wunknown-pragmas",
    52            suffix: "-Dfar= "
    53        };
    54
    55        override readonly config ITarget2.Command asm = {
    56            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
    57            opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
    58        };
    59
    60        readonly config ITarget2.Command asmBin = {
    61            cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
    62            opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
    63        };
    64
    65        override config ITarget2.Options lnkOpts = {
    66            prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
    67            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib"
    68        };
    69
    70        readonly config ITarget2.Command arBin = {
    71            cmd: "bin/arm-none-eabi-ar ",
    72            opts: ""
    73        };
    74
    75        /*
    76         *  ======== profiles ========
    77         */
    78        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    79            ["debug", {
    80                compileOpts: {
    81                    copts: "-g",
    82                    defs:  "-D_DEBUG_=1",
    83                },
    84                linkOpts: "-g",
    85            }],
    86
    87            ["release", {
    88                compileOpts: {
    89                    copts: " -O2 ",
    90                },
    91                linkOpts: " ",
    92            }],
    93        ];
    94
    95        /*
    96         *  ======== compatibleSuffixes ========
    97         */
    98        override config String compatibleSuffixes[] = [];
    99
   100        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   101            t_IArg          : { size: 4, align: 4 },
   102            t_Char          : { size: 1, align: 1 },
   103            t_Double        : { size: 8, align: 4 },
   104            t_Float         : { size: 4, align: 4 },
   105            t_Fxn           : { size: 4, align: 4 },
   106            t_Int           : { size: 4, align: 4 },
   107            t_Int8          : { size: 1, align: 1 },
   108            t_Int16         : { size: 2, align: 2 },
   109            t_Int32         : { size: 4, align: 4 },
   110            t_Int64         : { size: 8, align: 4 },
   111            t_Long          : { size: 4, align: 4 },
   112            t_LDouble       : { size: 8, align: 4 },
   113            t_LLong         : { size: 8, align: 4 },
   114            t_Ptr           : { size: 4, align: 4 },
   115            t_Short         : { size: 2, align: 2 },
   116            t_Size          : { size: 4, align: 4 },
   117        };
   118    }
   119    /*
   120     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   121
   122     */
   123


module gnu.targets.arm.A9

metaonly module gnu.targets.arm.A9
index URL

Embedded Cortex A9, little endian, bare metal target

  • XDCscript usage
  • Individual elements
This module defines an embedded bare metal target on Cortex A9. The target generates code compatible with the "v7A" architecture.
XDCscript usage meta-domain sourced in gnu/targets/arm/A9.xdc
var A9 = xdc.useModule('gnu.targets.arm.A9');
module-wide constants & types
    var obj = new A9.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new A9.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new A9.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new A9.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new A9.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new A9.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new A9.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new A9.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new A9.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new A9.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new A9.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new A9.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const A9.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const A9.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const A9.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const A9.arBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-ar ",
        opts: ""
    };
    const A9.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
        opts: "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
    };
    const A9.asmBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
        opts: "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
    };
    const A9.base// A target that this target is based upon = ITarget.Module computed value;
    const A9.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const A9.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
    };
    const A9.ccBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
        opts: "-mabi=aapcs -mapcs"
    };
    const A9.isa// CPU Instruction Set Architecture (ISA) = String "v7A9";
    const A9.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const A9.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const A9.name// Nickname for this target = String "A9";
    const A9.os// Name of OS required to run programs built for this target = String computed value;
    const A9.rts// Name of a run-time support package to include = String "gnu.targets.arm.rtsv7A";
    const A9.sectMap// Output section name to segment type mapping = String[string] computed value;
    const A9.stdInclude// Standard C/C++ types header = String "gnu/targets/arm/std.h";
    const A9.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const A9.suffix// Suffix appended to all objs, libraries, and executable = String "a9g";
     A9.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     A9.GCCTARG// The name of the platform executing programs produced by this target = String null;
     A9.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     A9.LONGNAME// The "long name" of the gcc compiler = String "bin/arm-none-eabi-gcc";
     A9.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     A9.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     A9.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     A9.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused -Wunknown-pragmas",
        suffix: "-Dfar= "
    };
     A9.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [ ];
     A9.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     A9.execExt// Extension for executables = String undefined;
     A9.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     A9.includeOpts// Additional user configurable target-specific include path options = String "";
     A9.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib"
    };
     A9.noStdLinkScript// Don't use the standard linker script = Bool false;
     A9.platform// The default platform name for this target = String "ti.platforms.sdp4430";
     A9.platforms// A set of platforms that can support this target = String[] [ ];
     A9.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: " -O2 "
                },
                linkOpts: " "
            }
        ]
    ];
     A9.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     A9.rootDir// Installation directory for this target's code generation tools = String undefined;
     A9.version// The Compatibility Key associated with this target = String undefined;
     A9.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     A9.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     A9.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A9.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     A9.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     A9.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     A9.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     A9.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     A9.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     A9.getVersion// Get a target-specific Compatibility Key string() returns String
     A9.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     A9.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A9.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct A9.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new A9.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct A9.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new A9.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct A9.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new A9.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct A9.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new A9.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct A9.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new A9.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct A9.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new A9.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct A9.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new A9.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct A9.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new A9.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct A9.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new A9.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct A9.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new A9.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct A9.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new A9.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct A9.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new A9.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config A9.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const A9.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config A9.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const A9.alignDirectiveSupported = Bool true;
config A9.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const A9.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config A9.arBin // module-wide
index URL
XDCscript usage meta-domain
const A9.arBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-ar ",
    opts: ""
};
config A9.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const A9.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
    opts: "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
};
config A9.asmBin // module-wide
index URL
XDCscript usage meta-domain
const A9.asmBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
    opts: "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
};
config A9.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const A9.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config A9.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const A9.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config A9.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const A9.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
};
config A9.ccBin // module-wide
index URL
XDCscript usage meta-domain
const A9.ccBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
    opts: "-mabi=aapcs -mapcs"
};
config A9.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const A9.isa = String "v7A9";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config A9.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const A9.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config A9.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const A9.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config A9.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const A9.name = String "A9";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config A9.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const A9.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config A9.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const A9.rts = String "gnu.targets.arm.rtsv7A";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config A9.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const A9.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config A9.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const A9.stdInclude = String "gnu/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config A9.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const A9.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config A9.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const A9.suffix = String "a9g";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config A9.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
A9.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config A9.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
A9.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config A9.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
A9.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config A9.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
A9.LONGNAME = String "bin/arm-none-eabi-gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config A9.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
A9.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config A9.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
A9.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config A9.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
A9.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config A9.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
A9.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused -Wunknown-pragmas",
    suffix: "-Dfar= "
};
config A9.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
A9.compatibleSuffixes = String[] [ ];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config A9.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
A9.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config A9.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
A9.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config A9.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
A9.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config A9.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
A9.includeOpts = String "";
config A9.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
A9.lnkOpts = ITarget2.Options {
    prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib"
};
config A9.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
A9.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config A9.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
A9.platform = String "ti.platforms.sdp4430";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config A9.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
A9.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config A9.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
A9.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: " -O2 "
            },
            linkOpts: " "
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config A9.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
A9.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config A9.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
A9.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config A9.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
A9.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config A9.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
A9.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
A9.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
A9.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A9.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
A9.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A9.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
A9.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
A9.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
A9.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A9.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
A9.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A9.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
A9.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
A9.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
A9.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
A9.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
A9.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
A9.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
A9.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
A9.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
A9.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A9.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
A9.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
A9.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
A9.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:54 GMT


module gnu.targets.arm.GCArmv5T

metaonly module gnu.targets.arm.GCArmv5T
index URL

Embedded little endian Arm v5TE Linux target

  • XDCscript usage
  • Individual elements
This module defines an embedded target for Linux on Arm. The target generates code compatible with the "v5TE" architecture.
XDCscript usage meta-domain sourced in gnu/targets/arm/GCArmv5T.xdc
var GCArmv5T = xdc.useModule('gnu.targets.arm.GCArmv5T');
module-wide constants & types
    var obj = new GCArmv5T.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new GCArmv5T.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new GCArmv5T.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new GCArmv5T.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new GCArmv5T.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new GCArmv5T.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new GCArmv5T.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new GCArmv5T.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new GCArmv5T.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new GCArmv5T.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new GCArmv5T.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new GCArmv5T.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const GCArmv5T.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const GCArmv5T.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const GCArmv5T.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const GCArmv5T.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: "-march=armv5t"
    };
    const GCArmv5T.base// A target that this target is based upon = ITarget.Module computed value;
    const GCArmv5T.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const GCArmv5T.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: "-march=armv5t"
    };
    const GCArmv5T.isa// CPU Instruction Set Architecture (ISA) = String "v5T";
    const GCArmv5T.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const GCArmv5T.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const GCArmv5T.name// Nickname for this target = String "GCArmv5T";
    const GCArmv5T.os// Name of OS required to run programs built for this target = String "Linux";
    const GCArmv5T.rts// Name of a run-time support package to include = String "gnu.targets.arm.rtsv5T";
    const GCArmv5T.sectMap// Output section name to segment type mapping = String[string] computed value;
    const GCArmv5T.stdInclude// Standard C/C++ types header = String "gnu/targets/arm/std.h";
    const GCArmv5T.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const GCArmv5T.suffix// Suffix appended to all objs, libraries, and executable = String "v5T";
     GCArmv5T.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     GCArmv5T.GCCTARG// The name of the platform executing programs produced by this target = String null;
     GCArmv5T.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     GCArmv5T.LONGNAME// The "long name" of the gcc compiler = String undefined;
     GCArmv5T.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv5T.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv5T.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     GCArmv5T.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused",
        suffix: "-Dfar= "
    };
     GCArmv5T.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "470MV",
        "v5t"
    ];
     GCArmv5T.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     GCArmv5T.execExt// Extension for executables = String undefined;
     GCArmv5T.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     GCArmv5T.includeOpts// Additional user configurable target-specific include path options = String "";
     GCArmv5T.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    };
     GCArmv5T.noStdLinkScript// Don't use the standard linker script = Bool false;
     GCArmv5T.platform// The default platform name for this target = String "host.platforms.arm";
     GCArmv5T.platforms// A set of platforms that can support this target = String[] [ ];
     GCArmv5T.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     GCArmv5T.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     GCArmv5T.rootDir// Installation directory for this target's code generation tools = String undefined;
     GCArmv5T.version// The Compatibility Key associated with this target = String undefined;
     GCArmv5T.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     GCArmv5T.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     GCArmv5T.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv5T.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     GCArmv5T.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     GCArmv5T.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     GCArmv5T.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv5T.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv5T.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     GCArmv5T.getVersion// Get a target-specific Compatibility Key string() returns String
     GCArmv5T.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     GCArmv5T.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv5T.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct GCArmv5T.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new GCArmv5T.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct GCArmv5T.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new GCArmv5T.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct GCArmv5T.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new GCArmv5T.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct GCArmv5T.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new GCArmv5T.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct GCArmv5T.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new GCArmv5T.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct GCArmv5T.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new GCArmv5T.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct GCArmv5T.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new GCArmv5T.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct GCArmv5T.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new GCArmv5T.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct GCArmv5T.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new GCArmv5T.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct GCArmv5T.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new GCArmv5T.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct GCArmv5T.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new GCArmv5T.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct GCArmv5T.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new GCArmv5T.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config GCArmv5T.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const GCArmv5T.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config GCArmv5T.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const GCArmv5T.alignDirectiveSupported = Bool false;
config GCArmv5T.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const GCArmv5T.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config GCArmv5T.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const GCArmv5T.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: "-march=armv5t"
};
config GCArmv5T.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const GCArmv5T.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config GCArmv5T.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const GCArmv5T.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config GCArmv5T.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const GCArmv5T.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: "-march=armv5t"
};
config GCArmv5T.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const GCArmv5T.isa = String "v5T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config GCArmv5T.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const GCArmv5T.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config GCArmv5T.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const GCArmv5T.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config GCArmv5T.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const GCArmv5T.name = String "GCArmv5T";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config GCArmv5T.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const GCArmv5T.os = String "Linux";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config GCArmv5T.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const GCArmv5T.rts = String "gnu.targets.arm.rtsv5T";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config GCArmv5T.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const GCArmv5T.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config GCArmv5T.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const GCArmv5T.stdInclude = String "gnu/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config GCArmv5T.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const GCArmv5T.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config GCArmv5T.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const GCArmv5T.suffix = String "v5T";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config GCArmv5T.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
GCArmv5T.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config GCArmv5T.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
GCArmv5T.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config GCArmv5T.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
GCArmv5T.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config GCArmv5T.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
GCArmv5T.LONGNAME = String undefined;
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config GCArmv5T.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
GCArmv5T.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv5T.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
GCArmv5T.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv5T.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
GCArmv5T.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config GCArmv5T.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
GCArmv5T.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused",
    suffix: "-Dfar= "
};
config GCArmv5T.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
GCArmv5T.compatibleSuffixes = String[] [
    "470MV",
    "v5t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config GCArmv5T.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
GCArmv5T.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config GCArmv5T.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
GCArmv5T.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config GCArmv5T.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
GCArmv5T.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config GCArmv5T.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
GCArmv5T.includeOpts = String "";
config GCArmv5T.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
GCArmv5T.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
};
config GCArmv5T.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
GCArmv5T.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config GCArmv5T.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
GCArmv5T.platform = String "host.platforms.arm";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config GCArmv5T.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
GCArmv5T.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config GCArmv5T.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
GCArmv5T.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config GCArmv5T.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
GCArmv5T.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config GCArmv5T.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
GCArmv5T.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config GCArmv5T.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
GCArmv5T.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config GCArmv5T.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
GCArmv5T.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
GCArmv5T.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
GCArmv5T.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
GCArmv5T.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv5T.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
GCArmv5T.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
GCArmv5T.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv5T.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
GCArmv5T.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv5T.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
GCArmv5T.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
GCArmv5T.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
GCArmv5T.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
GCArmv5T.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
GCArmv5T.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
GCArmv5T.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
GCArmv5T.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
GCArmv5T.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv5T.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:54 GMT


module gnu.targets.arm.GCArmv5T

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    import xdc.bld.ITarget2;
    13
    14    /*!
    15     *  ======== GCArmv5T.xdc ========
    16     *  Embedded little endian Arm v5TE Linux target
    17     *
    18     *  This module defines an embedded target for Linux on Arm. The target
    19     *  generates code compatible with the "v5TE" architecture.
    20     *
    21     */
    22    metaonly module GCArmv5T inherits gnu.targets.ITarget {
    23        override readonly config string name                = "GCArmv5T";
    24        override readonly config string os                  = "Linux";
    25        override readonly config string suffix              = "v5T";
    26        override readonly config string isa                 = "v5T";
    27        override readonly config xdc.bld.ITarget.Model model= {
    28            endian: "little"
    29        };
    30
    31        override readonly config string rts = "gnu.targets.arm.rtsv5T";
    32        override config string platform     = "host.platforms.arm";
    33
    34        override config string LONGNAME;
    35
    36        override readonly config String stdInclude = "gnu/targets/arm/std.h";
    37
    38        override readonly config ITarget2.Command cc = {
    39            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    40            opts: "-march=armv5t"
    41        };
    42
    43        override config ITarget2.Options ccOpts = {
    44            prefix: "-fPIC -Wunused",
    45            suffix: "-Dfar= "
    46        };
    47
    48        override readonly config ITarget2.Command asm = {
    49            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    50            opts: "-march=armv5t"
    51        };
    52
    53        override config ITarget2.Options lnkOpts = {
    54            prefix: "",
    55            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    56        };
    57
    58        /*
    59         *  ======== compatibleSuffixes ========
    60         */
    61        override config String compatibleSuffixes[] = ["470MV", "v5t"];
    62
    63        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    64            t_IArg          : { size: 4, align: 4 },
    65            t_Char          : { size: 1, align: 1 },
    66            t_Double        : { size: 8, align: 4 },
    67            t_Float         : { size: 4, align: 4 },
    68            t_Fxn           : { size: 4, align: 4 },
    69            t_Int           : { size: 4, align: 4 },
    70            t_Int8          : { size: 1, align: 1 },
    71            t_Int16         : { size: 2, align: 2 },
    72            t_Int32         : { size: 4, align: 4 },
    73            t_Int64         : { size: 8, align: 4 },
    74            t_Long          : { size: 4, align: 4 },
    75            t_LDouble       : { size: 8, align: 4 },
    76            t_LLong         : { size: 8, align: 4 },
    77            t_Ptr           : { size: 4, align: 4 },
    78            t_Short         : { size: 2, align: 2 },
    79            t_Size          : { size: 4, align: 4 },
    80        };
    81    }
    82    /*
    83     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    84
    85     */
    86


module gnu.targets.arm.GCArmv6

metaonly module gnu.targets.arm.GCArmv6
index URL

Embedded little endian Arm v6 Linux target

  • XDCscript usage
  • Individual elements
This module defines an embedded target for Linux on Arm. The target generates code compatible with the "v6" architecture.
XDCscript usage meta-domain sourced in gnu/targets/arm/GCArmv6.xdc
var GCArmv6 = xdc.useModule('gnu.targets.arm.GCArmv6');
module-wide constants & types
    var obj = new GCArmv6.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new GCArmv6.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new GCArmv6.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new GCArmv6.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new GCArmv6.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new GCArmv6.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new GCArmv6.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new GCArmv6.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new GCArmv6.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new GCArmv6.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new GCArmv6.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new GCArmv6.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const GCArmv6.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const GCArmv6.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const GCArmv6.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const GCArmv6.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: "-march=armv6"
    };
    const GCArmv6.base// A target that this target is based upon = ITarget.Module computed value;
    const GCArmv6.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const GCArmv6.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: "-march=armv6"
    };
    const GCArmv6.isa// CPU Instruction Set Architecture (ISA) = String "v6";
    const GCArmv6.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const GCArmv6.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const GCArmv6.name// Nickname for this target = String "GCArmv6";
    const GCArmv6.os// Name of OS required to run programs built for this target = String "Linux";
    const GCArmv6.rts// Name of a run-time support package to include = String "gnu.targets.arm.rtsv6";
    const GCArmv6.sectMap// Output section name to segment type mapping = String[string] computed value;
    const GCArmv6.stdInclude// Standard C/C++ types header = String "gnu/targets/arm/std.h";
    const GCArmv6.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const GCArmv6.suffix// Suffix appended to all objs, libraries, and executable = String "v6";
     GCArmv6.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     GCArmv6.GCCTARG// The name of the platform executing programs produced by this target = String null;
     GCArmv6.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     GCArmv6.LONGNAME// The "long name" of the gcc compiler = String undefined;
     GCArmv6.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv6.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv6.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     GCArmv6.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused",
        suffix: "-Dfar= "
    };
     GCArmv6.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "v5T",
        "470MV",
        "v5t"
    ];
     GCArmv6.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     GCArmv6.execExt// Extension for executables = String undefined;
     GCArmv6.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     GCArmv6.includeOpts// Additional user configurable target-specific include path options = String "";
     GCArmv6.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    };
     GCArmv6.noStdLinkScript// Don't use the standard linker script = Bool false;
     GCArmv6.platform// The default platform name for this target = String "host.platforms.arm";
     GCArmv6.platforms// A set of platforms that can support this target = String[] [ ];
     GCArmv6.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     GCArmv6.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     GCArmv6.rootDir// Installation directory for this target's code generation tools = String undefined;
     GCArmv6.version// The Compatibility Key associated with this target = String undefined;
     GCArmv6.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     GCArmv6.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     GCArmv6.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv6.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     GCArmv6.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     GCArmv6.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     GCArmv6.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv6.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv6.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     GCArmv6.getVersion// Get a target-specific Compatibility Key string() returns String
     GCArmv6.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     GCArmv6.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv6.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct GCArmv6.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new GCArmv6.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct GCArmv6.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new GCArmv6.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct GCArmv6.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new GCArmv6.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct GCArmv6.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new GCArmv6.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct GCArmv6.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new GCArmv6.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct GCArmv6.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new GCArmv6.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct GCArmv6.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new GCArmv6.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct GCArmv6.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new GCArmv6.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct GCArmv6.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new GCArmv6.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct GCArmv6.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new GCArmv6.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct GCArmv6.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new GCArmv6.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct GCArmv6.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new GCArmv6.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config GCArmv6.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const GCArmv6.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config GCArmv6.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const GCArmv6.alignDirectiveSupported = Bool false;
config GCArmv6.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const GCArmv6.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config GCArmv6.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const GCArmv6.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: "-march=armv6"
};
config GCArmv6.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const GCArmv6.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config GCArmv6.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const GCArmv6.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config GCArmv6.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const GCArmv6.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: "-march=armv6"
};
config GCArmv6.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const GCArmv6.isa = String "v6";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config GCArmv6.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const GCArmv6.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config GCArmv6.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const GCArmv6.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config GCArmv6.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const GCArmv6.name = String "GCArmv6";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config GCArmv6.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const GCArmv6.os = String "Linux";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config GCArmv6.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const GCArmv6.rts = String "gnu.targets.arm.rtsv6";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config GCArmv6.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const GCArmv6.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config GCArmv6.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const GCArmv6.stdInclude = String "gnu/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config GCArmv6.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const GCArmv6.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config GCArmv6.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const GCArmv6.suffix = String "v6";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config GCArmv6.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
GCArmv6.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config GCArmv6.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
GCArmv6.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config GCArmv6.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
GCArmv6.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config GCArmv6.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
GCArmv6.LONGNAME = String undefined;
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config GCArmv6.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
GCArmv6.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv6.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
GCArmv6.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv6.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
GCArmv6.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config GCArmv6.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
GCArmv6.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused",
    suffix: "-Dfar= "
};
config GCArmv6.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
GCArmv6.compatibleSuffixes = String[] [
    "v5T",
    "470MV",
    "v5t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config GCArmv6.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
GCArmv6.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config GCArmv6.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
GCArmv6.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config GCArmv6.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
GCArmv6.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config GCArmv6.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
GCArmv6.includeOpts = String "";
config GCArmv6.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
GCArmv6.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
};
config GCArmv6.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
GCArmv6.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config GCArmv6.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
GCArmv6.platform = String "host.platforms.arm";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config GCArmv6.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
GCArmv6.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config GCArmv6.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
GCArmv6.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config GCArmv6.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
GCArmv6.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config GCArmv6.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
GCArmv6.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config GCArmv6.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
GCArmv6.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config GCArmv6.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
GCArmv6.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
GCArmv6.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
GCArmv6.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
GCArmv6.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv6.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
GCArmv6.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
GCArmv6.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv6.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
GCArmv6.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv6.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
GCArmv6.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
GCArmv6.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
GCArmv6.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
GCArmv6.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
GCArmv6.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
GCArmv6.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
GCArmv6.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
GCArmv6.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv6.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:54 GMT


module gnu.targets.arm.GCArmv6

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    import xdc.bld.ITarget2;
    14
    15    /*!
    16     *  ======== GCArmv6.xdc ========
    17     *  Embedded little endian Arm v6 Linux target
    18     *
    19     *  This module defines an embedded target for Linux on Arm. The target
    20     *  generates code compatible with the "v6" architecture.
    21     *
    22     */
    23    metaonly module GCArmv6 inherits gnu.targets.ITarget {
    24        override readonly config string name                = "GCArmv6";
    25        override readonly config string os                  = "Linux";
    26        override readonly config string suffix              = "v6";
    27        override readonly config string isa                 = "v6";
    28        override readonly config xdc.bld.ITarget.Model model= {
    29            endian: "little"
    30        };
    31
    32        override readonly config string rts = "gnu.targets.arm.rtsv6";
    33        override config string platform     = "host.platforms.arm";
    34
    35        override config string LONGNAME;
    36
    37        override readonly config String stdInclude = "gnu/targets/arm/std.h";
    38
    39        override readonly config ITarget2.Command cc = {
    40            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    41            opts: "-march=armv6"
    42        };
    43
    44        override config ITarget2.Options ccOpts = {
    45            prefix: "-fPIC -Wunused",
    46            suffix: "-Dfar= "
    47        };
    48
    49        override readonly config ITarget2.Command asm = {
    50            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    51            opts: "-march=armv6"
    52        };
    53
    54        override config ITarget2.Options lnkOpts = {
    55            prefix: "",
    56            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    57        };
    58
    59        /*
    60         *  ======== compatibleSuffixes ========
    61         */
    62        override config String compatibleSuffixes[] = ["v5T", "470MV", "v5t"];
    63
    64        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    65            t_IArg          : { size: 4, align: 4 },
    66            t_Char          : { size: 1, align: 1 },
    67            t_Double        : { size: 8, align: 4 },
    68            t_Float         : { size: 4, align: 4 },
    69            t_Fxn           : { size: 4, align: 4 },
    70            t_Int           : { size: 4, align: 4 },
    71            t_Int8          : { size: 1, align: 1 },
    72            t_Int16         : { size: 2, align: 2 },
    73            t_Int32         : { size: 4, align: 4 },
    74            t_Int64         : { size: 8, align: 4 },
    75            t_Long          : { size: 4, align: 4 },
    76            t_LDouble       : { size: 8, align: 4 },
    77            t_LLong         : { size: 8, align: 4 },
    78            t_Ptr           : { size: 4, align: 4 },
    79            t_Short         : { size: 2, align: 2 },
    80            t_Size          : { size: 4, align: 4 },
    81        };
    82    }
    83    /*
    84     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    85
    86     */
    87


module gnu.targets.arm.GCArmv7A

metaonly module gnu.targets.arm.GCArmv7A
index URL

Embedded little endian Arm v7A Linux target

  • XDCscript usage
  • Individual elements
This module defines an embedded target for Linux on Arm. The target generates code compatible with the "v7A" architecture.
XDCscript usage meta-domain sourced in gnu/targets/arm/GCArmv7A.xdc
var GCArmv7A = xdc.useModule('gnu.targets.arm.GCArmv7A');
module-wide constants & types
    var obj = new GCArmv7A.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new GCArmv7A.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new GCArmv7A.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new GCArmv7A.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new GCArmv7A.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new GCArmv7A.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new GCArmv7A.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new GCArmv7A.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new GCArmv7A.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new GCArmv7A.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new GCArmv7A.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new GCArmv7A.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const GCArmv7A.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const GCArmv7A.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const GCArmv7A.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const GCArmv7A.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: "-march=armv7-a"
    };
    const GCArmv7A.base// A target that this target is based upon = ITarget.Module computed value;
    const GCArmv7A.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const GCArmv7A.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: "-march=armv7-a"
    };
    const GCArmv7A.isa// CPU Instruction Set Architecture (ISA) = String "v7A";
    const GCArmv7A.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const GCArmv7A.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const GCArmv7A.name// Nickname for this target = String "GCArmv7A";
    const GCArmv7A.os// Name of OS required to run programs built for this target = String "Linux";
    const GCArmv7A.rts// Name of a run-time support package to include = String "gnu.targets.arm.rtsv7A";
    const GCArmv7A.sectMap// Output section name to segment type mapping = String[string] computed value;
    const GCArmv7A.stdInclude// Standard C/C++ types header = String "gnu/targets/arm/std.h";
    const GCArmv7A.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const GCArmv7A.suffix// Suffix appended to all objs, libraries, and executable = String "v7A";
     GCArmv7A.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     GCArmv7A.GCCTARG// The name of the platform executing programs produced by this target = String null;
     GCArmv7A.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     GCArmv7A.LONGNAME// The "long name" of the gcc compiler = String undefined;
     GCArmv7A.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv7A.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv7A.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     GCArmv7A.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused",
        suffix: "-Dfar= "
    };
     GCArmv7A.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "v6",
        "v5T",
        "470MV",
        "v5t"
    ];
     GCArmv7A.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     GCArmv7A.execExt// Extension for executables = String undefined;
     GCArmv7A.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     GCArmv7A.includeOpts// Additional user configurable target-specific include path options = String "";
     GCArmv7A.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    };
     GCArmv7A.noStdLinkScript// Don't use the standard linker script = Bool false;
     GCArmv7A.platform// The default platform name for this target = String "host.platforms.arm";
     GCArmv7A.platforms// A set of platforms that can support this target = String[] [ ];
     GCArmv7A.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     GCArmv7A.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     GCArmv7A.rootDir// Installation directory for this target's code generation tools = String undefined;
     GCArmv7A.version// The Compatibility Key associated with this target = String undefined;
     GCArmv7A.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     GCArmv7A.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     GCArmv7A.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv7A.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     GCArmv7A.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     GCArmv7A.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     GCArmv7A.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv7A.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv7A.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     GCArmv7A.getVersion// Get a target-specific Compatibility Key string() returns String
     GCArmv7A.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     GCArmv7A.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv7A.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct GCArmv7A.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new GCArmv7A.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct GCArmv7A.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new GCArmv7A.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct GCArmv7A.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new GCArmv7A.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct GCArmv7A.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new GCArmv7A.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct GCArmv7A.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new GCArmv7A.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct GCArmv7A.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new GCArmv7A.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct GCArmv7A.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new GCArmv7A.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct GCArmv7A.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new GCArmv7A.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct GCArmv7A.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new GCArmv7A.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct GCArmv7A.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new GCArmv7A.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct GCArmv7A.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new GCArmv7A.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct GCArmv7A.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new GCArmv7A.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config GCArmv7A.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const GCArmv7A.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config GCArmv7A.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const GCArmv7A.alignDirectiveSupported = Bool false;
config GCArmv7A.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const GCArmv7A.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config GCArmv7A.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const GCArmv7A.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: "-march=armv7-a"
};
config GCArmv7A.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const GCArmv7A.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config GCArmv7A.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const GCArmv7A.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config GCArmv7A.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const GCArmv7A.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: "-march=armv7-a"
};
config GCArmv7A.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const GCArmv7A.isa = String "v7A";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config GCArmv7A.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const GCArmv7A.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config GCArmv7A.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const GCArmv7A.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config GCArmv7A.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const GCArmv7A.name = String "GCArmv7A";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config GCArmv7A.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const GCArmv7A.os = String "Linux";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config GCArmv7A.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const GCArmv7A.rts = String "gnu.targets.arm.rtsv7A";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config GCArmv7A.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const GCArmv7A.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config GCArmv7A.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const GCArmv7A.stdInclude = String "gnu/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config GCArmv7A.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const GCArmv7A.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config GCArmv7A.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const GCArmv7A.suffix = String "v7A";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config GCArmv7A.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
GCArmv7A.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config GCArmv7A.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
GCArmv7A.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config GCArmv7A.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
GCArmv7A.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config GCArmv7A.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
GCArmv7A.LONGNAME = String undefined;
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config GCArmv7A.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
GCArmv7A.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv7A.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
GCArmv7A.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv7A.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
GCArmv7A.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config GCArmv7A.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
GCArmv7A.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused",
    suffix: "-Dfar= "
};
config GCArmv7A.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
GCArmv7A.compatibleSuffixes = String[] [
    "v6",
    "v5T",
    "470MV",
    "v5t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config GCArmv7A.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
GCArmv7A.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config GCArmv7A.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
GCArmv7A.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config GCArmv7A.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
GCArmv7A.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config GCArmv7A.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
GCArmv7A.includeOpts = String "";
config GCArmv7A.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
GCArmv7A.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
};
config GCArmv7A.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
GCArmv7A.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config GCArmv7A.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
GCArmv7A.platform = String "host.platforms.arm";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config GCArmv7A.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
GCArmv7A.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config GCArmv7A.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
GCArmv7A.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config GCArmv7A.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
GCArmv7A.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config GCArmv7A.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
GCArmv7A.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config GCArmv7A.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
GCArmv7A.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config GCArmv7A.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
GCArmv7A.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
GCArmv7A.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
GCArmv7A.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv7A.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
GCArmv7A.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv7A.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv7A.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
GCArmv7A.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
GCArmv7A.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv7A.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
GCArmv7A.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv7A.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
GCArmv7A.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
GCArmv7A.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
GCArmv7A.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
GCArmv7A.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
GCArmv7A.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv7A.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
GCArmv7A.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv7A.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
GCArmv7A.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv7A.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
GCArmv7A.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
GCArmv7A.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv7A.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:55 GMT


module gnu.targets.arm.GCArmv7A

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    import xdc.bld.ITarget2;
    13
    14    /*!
    15     *  ======== GCArmv7A.xdc ========
    16     *  Embedded little endian Arm v7A Linux target
    17     *
    18     *  This module defines an embedded target for Linux on Arm. The target
    19     *  generates code compatible with the "v7A" architecture.
    20     *
    21     */
    22    metaonly module GCArmv7A inherits gnu.targets.ITarget {
    23        override readonly config string name                = "GCArmv7A";
    24        override readonly config string os                  = "Linux";
    25        override readonly config string suffix              = "v7A";
    26        override readonly config string isa                 = "v7A";
    27        override readonly config xdc.bld.ITarget.Model model= {
    28            endian: "little"
    29        };
    30
    31        override readonly config string rts = "gnu.targets.arm.rtsv7A";
    32        override config string platform     = "host.platforms.arm";
    33
    34        override config string LONGNAME;
    35
    36        override readonly config String stdInclude = "gnu/targets/arm/std.h";
    37
    38        override readonly config ITarget2.Command cc = {
    39            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    40            opts: "-march=armv7-a"
    41        };
    42
    43        override config ITarget2.Options ccOpts = {
    44            prefix: "-fPIC -Wunused",
    45            suffix: "-Dfar= "
    46        };
    47
    48        override readonly config ITarget2.Command asm = {
    49            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    50            opts: "-march=armv7-a"
    51        };
    52
    53        override config ITarget2.Options lnkOpts = {
    54            prefix: "",
    55            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    56        };
    57
    58        /*
    59         *  ======== compatibleSuffixes ========
    60         */
    61        override config String compatibleSuffixes[] = ["v6", "v5T", "470MV", "v5t"];
    62
    63        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    64            t_IArg          : { size: 4, align: 4 },
    65            t_Char          : { size: 1, align: 1 },
    66            t_Double        : { size: 8, align: 4 },
    67            t_Float         : { size: 4, align: 4 },
    68            t_Fxn           : { size: 4, align: 4 },
    69            t_Int           : { size: 4, align: 4 },
    70            t_Int8          : { size: 1, align: 1 },
    71            t_Int16         : { size: 2, align: 2 },
    72            t_Int32         : { size: 4, align: 4 },
    73            t_Int64         : { size: 8, align: 4 },
    74            t_Long          : { size: 4, align: 4 },
    75            t_LDouble       : { size: 8, align: 4 },
    76            t_LLong         : { size: 8, align: 4 },
    77            t_Ptr           : { size: 4, align: 4 },
    78            t_Short         : { size: 2, align: 2 },
    79            t_Size          : { size: 4, align: 4 },
    80        };
    81    }
    82    /*
    83     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    84
    85     */
    86


module gnu.targets.arm.M3

metaonly module gnu.targets.arm.M3
index URL

Embedded little endian Cortex M3 bare metal target

  • XDCscript usage
  • Individual elements
This module defines an embedded bare metal target on Cortex M3. The target generates code compatible with the "v7M" architecture.
XDCscript usage meta-domain sourced in gnu/targets/arm/M3.xdc
var M3 = xdc.useModule('gnu.targets.arm.M3');
module-wide constants & types
    var obj = new M3.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new M3.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new M3.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new M3.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new M3.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new M3.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new M3.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new M3.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new M3.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new M3.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new M3.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new M3.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const M3.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const M3.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const M3.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const M3.arBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-ar ",
        opts: ""
    };
    const M3.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
        opts: "-Wa,-mcpu=cortex-m3 -Wa,-mthumb"
    };
    const M3.asmBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
        opts: "-Wa,-mcpu=cortex-m3 -Wa,-mthumb"
    };
    const M3.base// A target that this target is based upon = ITarget.Module computed value;
    const M3.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const M3.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: "-mcpu=cortex-m3 -mthumb -mabi=aapcs -mapcs "
    };
    const M3.ccBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
        opts: "-mabi=aapcs -mapcs"
    };
    const M3.isa// CPU Instruction Set Architecture (ISA) = String "v7M";
    const M3.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const M3.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    const M3.name// Nickname for this target = String "M3";
    const M3.os// Name of OS required to run programs built for this target = String computed value;
    const M3.rts// Name of a run-time support package to include = String "gnu.targets.arm.rtsv7M";
    const M3.sectMap// Output section name to segment type mapping = String[string] computed value;
    const M3.stdInclude// Standard C/C++ types header = String "gnu/targets/arm/std.h";
    const M3.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const M3.suffix// Suffix appended to all objs, libraries, and executable = String "m3g";
     M3.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     M3.GCCTARG// The name of the platform executing programs produced by this target = String null;
     M3.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     M3.LONGNAME// The "long name" of the gcc compiler = String "bin/arm-none-eabi-gcc";
     M3.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M3.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M3.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     M3.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-Wunused -Wunknown-pragmas -ffunction-sections -fdata-sections",
        suffix: "-Dfar= "
    };
     M3.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [ ];
     M3.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     M3.execExt// Extension for executables = String undefined;
     M3.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     M3.includeOpts// Additional user configurable target-specific include path options = String "";
     M3.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib/thumb2 -L$(rootDir)/lib/gcc/$(GCCTARG)/4.5.2/thumb2"
    };
     M3.noStdLinkScript// Don't use the standard linker script = Bool false;
     M3.platform// The default platform name for this target = String "ti.platforms.stellaris:LM3S9B90";
     M3.platforms// A set of platforms that can support this target = String[] [ ];
     M3.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: " -O2 "
                },
                linkOpts: " "
            }
        ]
    ];
     M3.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     M3.rootDir// Installation directory for this target's code generation tools = String undefined;
     M3.version// The Compatibility Key associated with this target = String undefined;
     M3.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     M3.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     M3.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     M3.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     M3.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     M3.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     M3.getVersion// Get a target-specific Compatibility Key string() returns String
     M3.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     M3.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct M3.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new M3.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct M3.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new M3.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct M3.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new M3.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct M3.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new M3.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct M3.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new M3.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct M3.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new M3.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct M3.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new M3.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct M3.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new M3.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct M3.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new M3.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct M3.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new M3.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct M3.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new M3.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct M3.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new M3.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config M3.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const M3.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config M3.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const M3.alignDirectiveSupported = Bool true;
config M3.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const M3.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config M3.arBin // module-wide
index URL
XDCscript usage meta-domain
const M3.arBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-ar ",
    opts: ""
};
config M3.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const M3.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
    opts: "-Wa,-mcpu=cortex-m3 -Wa,-mthumb"
};
config M3.asmBin // module-wide
index URL
XDCscript usage meta-domain
const M3.asmBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
    opts: "-Wa,-mcpu=cortex-m3 -Wa,-mthumb"
};
config M3.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const M3.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config M3.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const M3.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config M3.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const M3.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: "-mcpu=cortex-m3 -mthumb -mabi=aapcs -mapcs "
};
config M3.ccBin // module-wide
index URL
XDCscript usage meta-domain
const M3.ccBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
    opts: "-mabi=aapcs -mapcs"
};
config M3.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const M3.isa = String "v7M";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config M3.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const M3.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config M3.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const M3.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config M3.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const M3.name = String "M3";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config M3.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const M3.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config M3.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const M3.rts = String "gnu.targets.arm.rtsv7M";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config M3.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const M3.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config M3.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const M3.stdInclude = String "gnu/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config M3.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const M3.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config M3.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const M3.suffix = String "m3g";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config M3.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
M3.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config M3.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
M3.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config M3.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
M3.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config M3.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
M3.LONGNAME = String "bin/arm-none-eabi-gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config M3.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
M3.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M3.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
M3.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M3.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
M3.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config M3.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
M3.ccOpts = ITarget2.Options {
    prefix: "-Wunused -Wunknown-pragmas -ffunction-sections -fdata-sections",
    suffix: "-Dfar= "
};
config M3.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
M3.compatibleSuffixes = String[] [ ];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config M3.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
M3.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config M3.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
M3.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config M3.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
M3.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config M3.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
M3.includeOpts = String "";
config M3.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
M3.lnkOpts = ITarget2.Options {
    prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib/thumb2 -L$(rootDir)/lib/gcc/$(GCCTARG)/4.5.2/thumb2"
};
config M3.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
M3.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config M3.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
M3.platform = String "ti.platforms.stellaris:LM3S9B90";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config M3.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
M3.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config M3.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
M3.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: " -O2 "
            },
            linkOpts: " "
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config M3.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
M3.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config M3.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
M3.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config M3.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
M3.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config M3.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
M3.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
M3.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
M3.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
M3.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
M3.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
M3.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
M3.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
M3.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
M3.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
M3.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
M3.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
M3.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
M3.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
M3.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
M3.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
M3.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
M3.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
M3.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
M3.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
M3.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:55 GMT


module gnu.targets.arm.M4

metaonly module gnu.targets.arm.M4
index URL

Embedded Cortex M4, little endian, bare metal target

  • XDCscript usage
  • Individual elements
This module defines an embedded bare metal target on Cortex M4. The target generates code compatible with the "v7M" architecture.
XDCscript usage meta-domain sourced in gnu/targets/arm/M4.xdc
var M4 = xdc.useModule('gnu.targets.arm.M4');
module-wide constants & types
    var obj = new M4.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new M4.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new M4.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new M4.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new M4.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new M4.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new M4.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new M4.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new M4.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new M4.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new M4.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new M4.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const M4.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const M4.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const M4.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const M4.arBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-ar ",
        opts: ""
    };
    const M4.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
        opts: "-Wa,-mcpu=cortex-m4 -Wa,-mthumb"
    };
    const M4.asmBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
        opts: "-Wa,-mcpu=cortex-m4 -Wa,-mthumb"
    };
    const M4.base// A target that this target is based upon = ITarget.Module computed value;
    const M4.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const M4.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: "-mcpu=cortex-m4 -mthumb -msoft-float -mabi=aapcs -mapcs"
    };
    const M4.ccBin// = ITarget2.Command {
        cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
        opts: "-mabi=aapcs -mapcs"
    };
    const M4.isa// CPU Instruction Set Architecture (ISA) = String "v7M4";
    const M4.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const M4.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    const M4.name// Nickname for this target = String "M4";
    const M4.os// Name of OS required to run programs built for this target = String computed value;
    const M4.rts// Name of a run-time support package to include = String "gnu.targets.arm.rtsv7M";
    const M4.sectMap// Output section name to segment type mapping = String[string] computed value;
    const M4.stdInclude// Standard C/C++ types header = String "gnu/targets/arm/std.h";
    const M4.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const M4.suffix// Suffix appended to all objs, libraries, and executable = String "m4g";
     M4.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     M4.GCCTARG// The name of the platform executing programs produced by this target = String null;
     M4.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     M4.LONGNAME// The "long name" of the gcc compiler = String "bin/arm-none-eabi-gcc";
     M4.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M4.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M4.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     M4.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-Wunused -Wunknown-pragmas -ffunction-sections -fdata-sections",
        suffix: "-Dfar= "
    };
     M4.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [ ];
     M4.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     M4.execExt// Extension for executables = String undefined;
     M4.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     M4.includeOpts// Additional user configurable target-specific include path options = String "";
     M4.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections ",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib/thumb2 -L$(rootDir)/lib/gcc/$(GCCTARG)/4.5.2/thumb2"
    };
     M4.noStdLinkScript// Don't use the standard linker script = Bool false;
     M4.platform// The default platform name for this target = String "ti.platforms.stellaris:LM4F232H5QD";
     M4.platforms// A set of platforms that can support this target = String[] [ ];
     M4.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: " -O2 "
                },
                linkOpts: " "
            }
        ]
    ];
     M4.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     M4.rootDir// Installation directory for this target's code generation tools = String undefined;
     M4.version// The Compatibility Key associated with this target = String undefined;
     M4.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     M4.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     M4.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M4.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     M4.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     M4.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     M4.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     M4.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     M4.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     M4.getVersion// Get a target-specific Compatibility Key string() returns String
     M4.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     M4.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M4.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct M4.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new M4.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct M4.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new M4.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct M4.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new M4.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct M4.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new M4.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct M4.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new M4.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct M4.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new M4.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct M4.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new M4.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct M4.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new M4.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct M4.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new M4.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct M4.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new M4.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct M4.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new M4.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct M4.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new M4.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config M4.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const M4.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config M4.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const M4.alignDirectiveSupported = Bool true;
config M4.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const M4.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config M4.arBin // module-wide
index URL
XDCscript usage meta-domain
const M4.arBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-ar ",
    opts: ""
};
config M4.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const M4.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
    opts: "-Wa,-mcpu=cortex-m4 -Wa,-mthumb"
};
config M4.asmBin // module-wide
index URL
XDCscript usage meta-domain
const M4.asmBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
    opts: "-Wa,-mcpu=cortex-m4 -Wa,-mthumb"
};
config M4.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const M4.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config M4.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const M4.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config M4.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const M4.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: "-mcpu=cortex-m4 -mthumb -msoft-float -mabi=aapcs -mapcs"
};
config M4.ccBin // module-wide
index URL
XDCscript usage meta-domain
const M4.ccBin = ITarget2.Command {
    cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
    opts: "-mabi=aapcs -mapcs"
};
config M4.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const M4.isa = String "v7M4";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config M4.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const M4.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config M4.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const M4.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config M4.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const M4.name = String "M4";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config M4.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const M4.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config M4.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const M4.rts = String "gnu.targets.arm.rtsv7M";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config M4.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const M4.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config M4.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const M4.stdInclude = String "gnu/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config M4.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const M4.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config M4.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const M4.suffix = String "m4g";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config M4.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
M4.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config M4.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
M4.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config M4.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
M4.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config M4.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
M4.LONGNAME = String "bin/arm-none-eabi-gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config M4.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
M4.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M4.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
M4.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M4.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
M4.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config M4.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
M4.ccOpts = ITarget2.Options {
    prefix: "-Wunused -Wunknown-pragmas -ffunction-sections -fdata-sections",
    suffix: "-Dfar= "
};
config M4.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
M4.compatibleSuffixes = String[] [ ];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config M4.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
M4.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config M4.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
M4.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config M4.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
M4.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config M4.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
M4.includeOpts = String "";
config M4.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
M4.lnkOpts = ITarget2.Options {
    prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections ",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib/thumb2 -L$(rootDir)/lib/gcc/$(GCCTARG)/4.5.2/thumb2"
};
config M4.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
M4.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config M4.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
M4.platform = String "ti.platforms.stellaris:LM4F232H5QD";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config M4.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
M4.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config M4.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
M4.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: " -O2 "
            },
            linkOpts: " "
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config M4.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
M4.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config M4.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
M4.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config M4.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
M4.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config M4.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
M4.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
M4.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
M4.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M4.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
M4.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M4.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
M4.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
M4.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
M4.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M4.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
M4.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M4.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
M4.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
M4.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
M4.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
M4.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
M4.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
M4.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
M4.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
M4.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
M4.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M4.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
M4.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
M4.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
M4.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:55 GMT


module gnu.targets.arm.MVArm9

metaonly module gnu.targets.arm.MVArm9
index URL

MonteVista Arm9 little endian embedded Linux target

  • XDCscript usage
  • Individual elements
This module defines a embedded target for Linux on Arm9. [ more ... ]
XDCscript usage meta-domain sourced in gnu/targets/arm/MVArm9.xdc
var MVArm9 = xdc.useModule('gnu.targets.arm.MVArm9');
module-wide constants & types
    var obj = new MVArm9.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MVArm9.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MVArm9.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MVArm9.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MVArm9.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MVArm9.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MVArm9.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MVArm9.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MVArm9.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MVArm9.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MVArm9.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MVArm9.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MVArm9.CYGWIN// Is the target's compiler a cygwin executable = Bool true;
    const MVArm9.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const MVArm9.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const MVArm9.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: ""
    };
    const MVArm9.base// A target that this target is based upon = ITarget.Module computed value;
    const MVArm9.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MVArm9.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: ""
    };
    const MVArm9.isa// CPU Instruction Set Architecture (ISA) = String "v5T";
    const MVArm9.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const MVArm9.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const MVArm9.name// Nickname for this target = String "MVArm9";
    const MVArm9.os// Name of OS required to run programs built for this target = String "Linux";
    const MVArm9.rts// Name of a run-time support package to include = String "gnu.targets.arm.rts470MV";
    const MVArm9.sectMap// Output section name to segment type mapping = String[string] computed value;
    const MVArm9.stdInclude// Standard C/C++ types header = String "gnu/targets/std.h";
    const MVArm9.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const MVArm9.suffix// Suffix appended to all objs, libraries, and executable = String "470MV";
     MVArm9.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     MVArm9.GCCTARG// The name of the platform executing programs produced by this target = String null;
     MVArm9.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     MVArm9.LONGNAME// The "long name" of the gcc compiler = String "bin/arm_v5t_le-gcc";
     MVArm9.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     MVArm9.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     MVArm9.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MVArm9.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused",
        suffix: "-Dfar= "
    };
     MVArm9.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "v5T",
        "v5t"
    ];
     MVArm9.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     MVArm9.execExt// Extension for executables = String undefined;
     MVArm9.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     MVArm9.includeOpts// Additional user configurable target-specific include path options = String "";
     MVArm9.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    };
     MVArm9.noStdLinkScript// Don't use the standard linker script = Bool false;
     MVArm9.platform// The default platform name for this target = String "ti.platforms.evmDM6446";
     MVArm9.platforms// A set of platforms that can support this target = String[] [ ];
     MVArm9.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     MVArm9.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     MVArm9.rootDir// Installation directory for this target's code generation tools = String undefined;
     MVArm9.version// The Compatibility Key associated with this target = String undefined;
     MVArm9.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     MVArm9.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MVArm9.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MVArm9.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MVArm9.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MVArm9.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MVArm9.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MVArm9.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MVArm9.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MVArm9.getVersion// Get a target-specific Compatibility Key string() returns String
     MVArm9.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MVArm9.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MVArm9.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
DETAILS
This module defines a embedded target for Linux on Arm9.
Arm nomenclature:
  • Arm7* devices contain v4 Cores Arm9* devices contain v5 Cores Arm11* devices contain v6 thumb2 Cores
struct MVArm9.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MVArm9.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MVArm9.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MVArm9.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MVArm9.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MVArm9.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MVArm9.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MVArm9.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MVArm9.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MVArm9.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MVArm9.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MVArm9.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MVArm9.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MVArm9.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MVArm9.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MVArm9.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MVArm9.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MVArm9.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MVArm9.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MVArm9.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MVArm9.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MVArm9.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MVArm9.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MVArm9.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MVArm9.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const MVArm9.CYGWIN = Bool true;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config MVArm9.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MVArm9.alignDirectiveSupported = Bool false;
config MVArm9.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MVArm9.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config MVArm9.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MVArm9.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: ""
};
config MVArm9.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MVArm9.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MVArm9.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MVArm9.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MVArm9.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MVArm9.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: ""
};
config MVArm9.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MVArm9.isa = String "v5T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MVArm9.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MVArm9.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config MVArm9.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MVArm9.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MVArm9.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MVArm9.name = String "MVArm9";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MVArm9.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MVArm9.os = String "Linux";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MVArm9.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MVArm9.rts = String "gnu.targets.arm.rts470MV";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MVArm9.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MVArm9.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MVArm9.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const MVArm9.stdInclude = String "gnu/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MVArm9.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MVArm9.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MVArm9.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MVArm9.suffix = String "470MV";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MVArm9.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
MVArm9.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config MVArm9.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
MVArm9.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config MVArm9.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
MVArm9.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config MVArm9.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
MVArm9.LONGNAME = String "bin/arm_v5t_le-gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config MVArm9.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MVArm9.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config MVArm9.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MVArm9.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config MVArm9.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MVArm9.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MVArm9.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MVArm9.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused",
    suffix: "-Dfar= "
};
config MVArm9.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MVArm9.compatibleSuffixes = String[] [
    "v5T",
    "v5t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MVArm9.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
MVArm9.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config MVArm9.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MVArm9.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MVArm9.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
MVArm9.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config MVArm9.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MVArm9.includeOpts = String "";
config MVArm9.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MVArm9.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
};
config MVArm9.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
MVArm9.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config MVArm9.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MVArm9.platform = String "ti.platforms.evmDM6446";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MVArm9.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MVArm9.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MVArm9.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
MVArm9.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MVArm9.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
MVArm9.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config MVArm9.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MVArm9.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MVArm9.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MVArm9.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config MVArm9.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
MVArm9.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
MVArm9.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MVArm9.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MVArm9.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MVArm9.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MVArm9.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MVArm9.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MVArm9.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MVArm9.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MVArm9.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MVArm9.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MVArm9.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MVArm9.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MVArm9.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MVArm9.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MVArm9.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MVArm9.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MVArm9.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MVArm9.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MVArm9.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MVArm9.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MVArm9.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MVArm9.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MVArm9.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MVArm9.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:56 GMT


module gnu.targets.arm.MVArm9

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== MVArm9.xdc ========
    15     *  MonteVista Arm9 little endian embedded Linux target
    16     *
    17     *  This module defines a embedded target for Linux on Arm9.
    18     *
    19     *  Arm nomenclature:
    20     *  @p(blist)
    21     *      Arm7*  devices contain v4 Cores
    22     *      Arm9*  devices contain v5 Cores
    23     *      Arm11* devices contain v6 thumb2 Cores
    24     *  @p
    25     */
    26    metaonly module MVArm9 inherits gnu.targets.ITarget {
    27        override readonly config string name                = "MVArm9";
    28        override readonly config string os                  = "Linux";
    29        override readonly config string suffix              = "470MV";
    30        override readonly config string isa                 = "v5T";
    31        override readonly config xdc.bld.ITarget.Model model= {
    32            endian: "little"
    33        };
    34
    35        override readonly config string rts     = "gnu.targets.arm.rts470MV";
    36        override config string platform         = "ti.platforms.evmDM6446";
    37
    38        override config string LONGNAME         = "bin/arm_v5t_le-gcc";
    39
    40        override readonly config Bool CYGWIN    = true;
    41
    42        override config xdc.bld.ITarget2.Options ccOpts = {
    43            prefix: "-fPIC -Wunused",
    44            suffix: "-Dfar= "
    45        };
    46
    47        override config xdc.bld.ITarget2.Options lnkOpts = {
    48            prefix: "",
    49            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    50        };
    51
    52        /*
    53         *  ======== compatibleSuffixes ========
    54         */
    55        override config String compatibleSuffixes[] = ["v5T", "v5t"];
    56
    57        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    58            t_IArg          : { size: 4, align: 4 },
    59            t_Char          : { size: 1, align: 1 },
    60            t_Double        : { size: 8, align: 4 },
    61            t_Float         : { size: 4, align: 4 },
    62            t_Fxn           : { size: 4, align: 4 },
    63            t_Int           : { size: 4, align: 4 },
    64            t_Int8          : { size: 1, align: 1 },
    65            t_Int16         : { size: 2, align: 2 },
    66            t_Int32         : { size: 4, align: 4 },
    67            t_Int64         : { size: 8, align: 4 },
    68            t_Long          : { size: 4, align: 4 },
    69            t_LDouble       : { size: 8, align: 4 },
    70            t_LLong         : { size: 8, align: 4 },
    71            t_Ptr           : { size: 4, align: 4 },
    72            t_Short         : { size: 2, align: 2 },
    73            t_Size          : { size: 4, align: 4 },
    74        };
    75    }
    76    /*
    77     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    78
    79     */
    80


module gnu.targets.arm.UCArm9

metaonly module gnu.targets.arm.UCArm9
index URL

uClibc Arm9 little endian embedded Linux target

  • XDCscript usage
  • Individual elements
Arm nomenclature: [ more ... ]
XDCscript usage meta-domain sourced in gnu/targets/arm/UCArm9.xdc
var UCArm9 = xdc.useModule('gnu.targets.arm.UCArm9');
module-wide constants & types
    var obj = new UCArm9.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new UCArm9.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new UCArm9.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new UCArm9.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new UCArm9.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new UCArm9.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new UCArm9.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new UCArm9.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new UCArm9.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new UCArm9.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new UCArm9.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new UCArm9.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const UCArm9.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const UCArm9.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const UCArm9.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const UCArm9.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: ""
    };
    const UCArm9.base// A target that this target is based upon = ITarget.Module computed value;
    const UCArm9.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const UCArm9.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: ""
    };
    const UCArm9.isa// CPU Instruction Set Architecture (ISA) = String "v5T";
    const UCArm9.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const UCArm9.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const UCArm9.name// Nickname for this target = String "UCArm9";
    const UCArm9.os// Name of OS required to run programs built for this target = String "Linux";
    const UCArm9.rts// Name of a run-time support package to include = String "gnu.targets.arm.rts470uC";
    const UCArm9.sectMap// Output section name to segment type mapping = String[string] computed value;
    const UCArm9.stdInclude// Standard C/C++ types header = String "gnu/targets/std.h";
    const UCArm9.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const UCArm9.suffix// Suffix appended to all objs, libraries, and executable = String "470uC";
     UCArm9.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     UCArm9.GCCTARG// The name of the platform executing programs produced by this target = String null;
     UCArm9.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     UCArm9.LONGNAME// The "long name" of the gcc compiler = String "/bin/arm-linux-gcc";
     UCArm9.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     UCArm9.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     UCArm9.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     UCArm9.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-Wunused",
        suffix: "-Dfar= "
    };
     UCArm9.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     UCArm9.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     UCArm9.execExt// Extension for executables = String undefined;
     UCArm9.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     UCArm9.includeOpts// Additional user configurable target-specific include path options = String "";
     UCArm9.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-static",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/lib"
    };
     UCArm9.noStdLinkScript// Don't use the standard linker script = Bool false;
     UCArm9.platform// The default platform name for this target = String "ti.platforms.evmDM6446";
     UCArm9.platforms// A set of platforms that can support this target = String[] [ ];
     UCArm9.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ]
    ];
     UCArm9.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     UCArm9.rootDir// Installation directory for this target's code generation tools = String undefined;
     UCArm9.version// The Compatibility Key associated with this target = String undefined;
     UCArm9.versionMap// This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     UCArm9.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     UCArm9.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     UCArm9.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     UCArm9.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     UCArm9.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     UCArm9.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     UCArm9.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     UCArm9.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     UCArm9.getVersion// Get a target-specific Compatibility Key string() returns String
     UCArm9.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     UCArm9.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     UCArm9.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
DETAILS
Arm nomenclature:
  • Arm7* devices contain v4 Cores Arm9* devices contain v5 Cores Arm11* devices contain v6 thumb2 Cores
struct UCArm9.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new UCArm9.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct UCArm9.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new UCArm9.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct UCArm9.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new UCArm9.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct UCArm9.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new UCArm9.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct UCArm9.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new UCArm9.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct UCArm9.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new UCArm9.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct UCArm9.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new UCArm9.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct UCArm9.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new UCArm9.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct UCArm9.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new UCArm9.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct UCArm9.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new UCArm9.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct UCArm9.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new UCArm9.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct UCArm9.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new UCArm9.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config UCArm9.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const UCArm9.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config UCArm9.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const UCArm9.alignDirectiveSupported = Bool false;
config UCArm9.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const UCArm9.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config UCArm9.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const UCArm9.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: ""
};
config UCArm9.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const UCArm9.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config UCArm9.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const UCArm9.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config UCArm9.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const UCArm9.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: ""
};
config UCArm9.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const UCArm9.isa = String "v5T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config UCArm9.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const UCArm9.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config UCArm9.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const UCArm9.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config UCArm9.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const UCArm9.name = String "UCArm9";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config UCArm9.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const UCArm9.os = String "Linux";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config UCArm9.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const UCArm9.rts = String "gnu.targets.arm.rts470uC";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config UCArm9.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const UCArm9.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config UCArm9.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const UCArm9.stdInclude = String "gnu/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config UCArm9.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const UCArm9.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config UCArm9.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const UCArm9.suffix = String "470uC";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config UCArm9.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
UCArm9.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config UCArm9.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
UCArm9.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config UCArm9.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
UCArm9.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config UCArm9.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
UCArm9.LONGNAME = String "/bin/arm-linux-gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config UCArm9.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
UCArm9.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config UCArm9.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
UCArm9.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config UCArm9.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
UCArm9.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config UCArm9.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
UCArm9.ccOpts = ITarget2.Options {
    prefix: "-Wunused",
    suffix: "-Dfar= "
};
config UCArm9.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
UCArm9.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config UCArm9.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
UCArm9.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config UCArm9.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
UCArm9.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config UCArm9.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
UCArm9.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config UCArm9.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
UCArm9.includeOpts = String "";
config UCArm9.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
UCArm9.lnkOpts = ITarget2.Options {
    prefix: "-static",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/lib"
};
config UCArm9.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
UCArm9.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config UCArm9.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
UCArm9.platform = String "ti.platforms.evmDM6446";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config UCArm9.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
UCArm9.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config UCArm9.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
UCArm9.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config UCArm9.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
UCArm9.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config UCArm9.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
UCArm9.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config UCArm9.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
UCArm9.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config UCArm9.versionMap // module-wide
index URL

This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration

XDCscript usage meta-domain
UCArm9.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
UCArm9.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
UCArm9.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
UCArm9.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
UCArm9.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
UCArm9.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
UCArm9.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
UCArm9.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
UCArm9.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
UCArm9.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
UCArm9.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
UCArm9.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
UCArm9.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
UCArm9.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
UCArm9.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
UCArm9.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
UCArm9.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
UCArm9.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
UCArm9.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
UCArm9.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
UCArm9.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
UCArm9.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
UCArm9.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
UCArm9.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
UCArm9.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:56 GMT


module gnu.targets.arm.UCArm9

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== UCArm9.xdc ========
    15     *  uClibc Arm9 little endian embedded Linux target
    16     *
    17     *  Arm nomenclature:
    18     *  @p(blist)
    19     *      Arm7*  devices contain v4 Cores
    20     *      Arm9*  devices contain v5 Cores
    21     *      Arm11* devices contain v6 thumb2 Cores
    22     *  @p
    23     */
    24    metaonly module UCArm9 inherits gnu.targets.ITarget {
    25        override readonly config string name                = "UCArm9";
    26        override readonly config string os                  = "Linux";
    27        override readonly config string suffix              = "470uC";
    28        override readonly config string isa                 = "v5T";
    29        override readonly config xdc.bld.ITarget.Model model= {
    30            endian: "little"
    31        };
    32
    33        override readonly config string rts = "gnu.targets.arm.rts470uC";
    34        override config string platform     = "ti.platforms.evmDM6446";
    35
    36        override config string LONGNAME = "/bin/arm-linux-gcc";
    37
    38        override config xdc.bld.ITarget2.Options ccOpts = {
    39            prefix: "-Wunused",
    40            suffix: "-Dfar= "
    41        };
    42
    43        override config xdc.bld.ITarget2.Options lnkOpts = {
    44            prefix: "-static",
    45            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/lib"
    46        };
    47
    48        /*!
    49         *  ======== versionMap ========
    50         *  This map translates version string information from the compiler
    51         *  into a compatibility key.  The compatibilty key is used to
    52         *  validate consistency among a collection of packages used in
    53         *  a configuration.
    54         *
    55         *  The compiler version string is "gcc<ver>", where <ver> is
    56         *  GCCVERS.
    57         *
    58         *  If a compiler version is not found in this map the default is
    59         *  "1,0,<ver>", where <ver> is the compiler version number.  Thus,
    60         *  the user only needs to extend this table when a significant
    61         *  incompatibility occurs or when two versions of the compiler should
    62         *  be treated as 100% compatible.
    63         */
    64        override config string versionMap[string] = [
    65            ["gcc3.2", "1,0,3.2,0"],
    66        ];
    67
    68        /*
    69         *  ======== profiles ========
    70         */
    71        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    72            ["debug", {
    73                compileOpts: {
    74                    copts: "-g",
    75                    defs:  "-D_DEBUG_=1",
    76                },
    77                linkOpts: "-g",
    78            }],
    79
    80            ["release", {
    81                compileOpts: {
    82                    copts: "-O2 -ffunction-sections -fdata-sections",
    83                },
    84                linkOpts: "-Wl,--gc-sections",
    85            }],
    86        ];
    87
    88        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    89            t_IArg          : { size: 4, align: 4 },
    90            t_Char          : { size: 1, align: 1 },
    91            t_Double        : { size: 8, align: 4 },
    92            t_Float         : { size: 4, align: 4 },
    93            t_Fxn           : { size: 4, align: 4 },
    94            t_Int           : { size: 4, align: 4 },
    95            t_Int8          : { size: 1, align: 1 },
    96            t_Int16         : { size: 2, align: 2 },
    97            t_Int32         : { size: 4, align: 4 },
    98            t_Int64         : { size: 8, align: 4 },
    99            t_Long          : { size: 4, align: 4 },
   100            t_LDouble       : { size: 8, align: 4 },
   101            t_LLong         : { size: 8, align: 4 },
   102            t_Ptr           : { size: 4, align: 4 },
   103            t_Short         : { size: 2, align: 2 },
   104            t_Size          : { size: 4, align: 4 },
   105        };
   106    }
   107    /*
   108     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   109
   110     */
   111


package gnu.targets.arm.rts470MV
index URL

Runtime support package for the MV 470 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in gnu/targets/arm/rts470MV/package.xdc
requires xdc.runtime;
package gnu.targets.arm.rts470MV [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:56 GMT


package gnu.targets.arm.rts470MV

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.rts470MV ========
    16     *  Runtime support package for the MV 470 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package gnu.targets.arm.rts470MV [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) gnu.targets.arm.rts470MV; 1, 0, 0, 0,39; 11-4-2012 21:51:19; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package gnu.targets.arm.rts470uC
index URL

Runtime support package for the gcc/uClibc 470 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in gnu/targets/arm/rts470uC/package.xdc
requires xdc.runtime;
package gnu.targets.arm.rts470uC [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:56 GMT


package gnu.targets.arm.rts470uC

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.rts470uC ========
    16     *  Runtime support package for the gcc/uClibc 470 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package gnu.targets.arm.rts470uC [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) gnu.targets.arm.rts470uC; 1, 0, 0, 0,39; 11-4-2012 21:51:19; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package gnu.targets.arm.rtsv5T
index URL

Runtime support package for the gnu.targets.arm.GCArmv5T target

This package builds a library of standard XDC system support functions using sources from the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs). The compiler used to build the library in this package is Montavista 3.4.3-25.0.24.0500846 compiler.
XDCspec declarations sourced in gnu/targets/arm/rtsv5T/package.xdc
requires xdc.runtime;
package gnu.targets.arm.rtsv5T [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:56 GMT


package gnu.targets.arm.rtsv5T

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.arm.rtsv5T ========
    16     *  Runtime support package for the gnu.targets.arm.GCArmv5T target
    17     *
    18     *  This package builds a library of standard XDC system support functions
    19     *  using sources from the xdc.runtime package (to avoid having multiple copies of
    20     *  the same source in different runtime support packages for different ISAs).
    21     *  The compiler used to build the library in this package is Montavista
    22     *  3.4.3-25.0.24.0500846 compiler.
    23     */
    24    package gnu.targets.arm.rtsv5T [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) gnu.targets.arm.rtsv5T; 1, 0, 0, 0,243; 11-4-2012 21:51:23; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package gnu.targets.arm.rtsv6
index URL

Runtime support package for the gnu.targets.arm.GCArmv6 target

This package builds a library of standard XDC system support functions using sources from the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs). The compiler used to build the library in this package is Codesourcery 4.3.2 (2008q3-72) compiler.
XDCspec declarations sourced in gnu/targets/arm/rtsv6/package.xdc
requires xdc.runtime;
package gnu.targets.arm.rtsv6 [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:56 GMT


package gnu.targets.arm.rtsv6

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.arm.rtsv6 ========
    16     *  Runtime support package for the gnu.targets.arm.GCArmv6 target.
    17     *
    18     *  This package builds a library of standard XDC system support functions
    19     *  using sources from the xdc.runtime package (to avoid having multiple copies of
    20     *  the same source in different runtime support packages for different ISAs).
    21     *  The compiler used to build the library in this package is Codesourcery
    22     *  4.3.2 (2008q3-72) compiler.
    23     */
    24    package gnu.targets.arm.rtsv6 [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) gnu.targets.arm.rtsv6; 1, 0, 0, 0,243; 11-4-2012 21:51:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package gnu.targets.arm.rtsv7A
index URL

Runtime support package for the gnu.targets.arm.GCArmv7A target

This package builds a library of standard XDC system support functions using sources from the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs). The compiler used to build the library in this package is Codesourcery 4.3.2 (2008q3-72) compiler.
XDCspec declarations sourced in gnu/targets/arm/rtsv7A/package.xdc
requires xdc.runtime;
package gnu.targets.arm.rtsv7A [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:56 GMT


package gnu.targets.arm.rtsv7A

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.arm.rtsv7A ========
    16     *  Runtime support package for the gnu.targets.arm.GCArmv7A target.
    17     *
    18     *  This package builds a library of standard XDC system support functions
    19     *  using sources from the xdc.runtime package (to avoid having multiple copies of
    20     *  the same source in different runtime support packages for different ISAs).
    21     *  The compiler used to build the library in this package is Codesourcery
    22     *  4.3.2 (2008q3-72) compiler.
    23     */
    24    package gnu.targets.arm.rtsv7A [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) gnu.targets.arm.rtsv7A; 1, 0, 0, 0,211; 11-4-2012 21:51:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package gnu.targets.arm.rtsv7M
index URL

Runtime support package for the gnu.targets.arm.GCArmv7M target

This package builds a library of standard XDC system support functions using sources from the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs).
XDCspec declarations sourced in gnu/targets/arm/rtsv7M/package.xdc
requires xdc.runtime;
package gnu.targets.arm.rtsv7M [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:56 GMT


package gnu.targets.arm.rtsv7M

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.arm.rtsv7M ========
    16     *  Runtime support package for the gnu.targets.arm.GCArmv7M target.
    17     *
    18     *  This package builds a library of standard XDC system support functions
    19     *  using sources from the xdc.runtime package (to avoid having multiple copies
    20     *  of the same source in different runtime support packages for different
    21     *  ISAs).
    22     */
    23    package gnu.targets.arm.rtsv7M [1,0,0,0] {
    24    }
    25    /*
    26     *  @(#) gnu.targets.arm.rtsv7M; 1, 0, 0, 0,54; 11-4-2012 21:51:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    27
    28     */
    29


package gnu.targets.codesourcery
index URL

Codesourcery code generation targets for Arm processors

This package supports two Codesourcery gcc targets. One is GCArmv5T for code compatible with Arm v5T architecture, and another one is GCArmv6 for Arm v6 architecture. These targets are deprecated, and the targets from gnu.targets.arm should be used instead.
XDCspec declarations sourced in gnu/targets/codesourcery/package.xdc
requires gnu.targets[1, 0, 1];
package gnu.targets.codesourcery [1, 0, 0, 0] {
    module GCArmv5T;
    // This module defines an embedded target for Linux on Arm. The target generates code compatible with the "v5TE" architecture
    module GCArmv6;
    // This module defines an embedded target for Linux on Arm. The target generates code compatible with the "v6" architecture
}
generated on Thu, 08 Nov 2012 02:13:58 GMT


package gnu.targets.codesourcery

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires gnu.targets [1,0,1];
    13
    14    /*!
    15     *  ======== gnu.targets.codesourcery ========
    16     *  Codesourcery code generation targets for Arm processors
    17     *
    18     *  This package supports two Codesourcery gcc targets. One is `GCArmv5T` for
    19     *  code compatible with Arm v5T architecture, and another one is `GCArmv6` for
    20     *  Arm v6 architecture. These targets are deprecated, and the targets from
    21     *  {@link gnu.targets.arm} should be used instead.
    22     */
    23    package gnu.targets.codesourcery [1,0,0,0] {
    24        module GCArmv5T, GCArmv6;
    25    }
    26    /*
    27     *  @(#) gnu.targets.codesourcery; 1, 0, 0, 0,463; 11-4-2012 21:21:13; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


module gnu.targets.codesourcery.GCArmv5T

metaonly module gnu.targets.codesourcery.GCArmv5T
index URL

This module defines an embedded target for Linux on Arm. The target generates code compatible with the "v5TE" architecture

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in gnu/targets/codesourcery/GCArmv5T.xdc
var GCArmv5T = xdc.useModule('gnu.targets.codesourcery.GCArmv5T');
module-wide constants & types
    var obj = new GCArmv5T.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new GCArmv5T.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new GCArmv5T.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new GCArmv5T.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new GCArmv5T.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new GCArmv5T.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new GCArmv5T.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new GCArmv5T.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new GCArmv5T.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new GCArmv5T.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new GCArmv5T.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new GCArmv5T.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const GCArmv5T.CYGWIN// Is the target's compiler a cygwin executable = Bool true;
    const GCArmv5T.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const GCArmv5T.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const GCArmv5T.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: ""
    };
    const GCArmv5T.base// A target that this target is based upon = ITarget.Module computed value;
    const GCArmv5T.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const GCArmv5T.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: ""
    };
    const GCArmv5T.isa// CPU Instruction Set Architecture (ISA) = String "v5T";
    const GCArmv5T.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const GCArmv5T.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const GCArmv5T.name// Nickname for this target = String "GCArmv5T";
    const GCArmv5T.os// Name of OS required to run programs built for this target = String "Linux";
    const GCArmv5T.rts// Name of a run-time support package to include = String "gnu.targets.codesourcery.rtsv5T";
    const GCArmv5T.sectMap// Output section name to segment type mapping = String[string] computed value;
    const GCArmv5T.stdInclude// Standard C/C++ types header = String "gnu/targets/codesourcery/std.h";
    const GCArmv5T.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const GCArmv5T.suffix// Suffix appended to all objs, libraries, and executable = String "470MV";
     GCArmv5T.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     GCArmv5T.GCCTARG// The name of the platform executing programs produced by this target = String null;
     GCArmv5T.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     GCArmv5T.LONGNAME// The "long name" of the gcc compiler = String "/bin/arm-none-linux-gnueabi-gcc";
     GCArmv5T.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv5T.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv5T.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     GCArmv5T.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused",
        suffix: "-Dfar= "
    };
     GCArmv5T.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "v5T",
        "v5t"
    ];
     GCArmv5T.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     GCArmv5T.execExt// Extension for executables = String undefined;
     GCArmv5T.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     GCArmv5T.includeOpts// Additional user configurable target-specific include path options = String "";
     GCArmv5T.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    };
     GCArmv5T.noStdLinkScript// Don't use the standard linker script = Bool false;
     GCArmv5T.platform// The default platform name for this target = String "ti.platforms.evm2530";
     GCArmv5T.platforms// A set of platforms that can support this target = String[] [ ];
     GCArmv5T.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     GCArmv5T.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     GCArmv5T.rootDir// Installation directory for this target's code generation tools = String undefined;
     GCArmv5T.version// The Compatibility Key associated with this target = String undefined;
     GCArmv5T.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     GCArmv5T.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     GCArmv5T.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv5T.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     GCArmv5T.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     GCArmv5T.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     GCArmv5T.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv5T.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv5T.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     GCArmv5T.getVersion// Get a target-specific Compatibility Key string() returns String
     GCArmv5T.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     GCArmv5T.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv5T.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct GCArmv5T.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new GCArmv5T.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct GCArmv5T.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new GCArmv5T.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct GCArmv5T.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new GCArmv5T.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct GCArmv5T.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new GCArmv5T.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct GCArmv5T.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new GCArmv5T.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct GCArmv5T.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new GCArmv5T.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct GCArmv5T.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new GCArmv5T.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct GCArmv5T.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new GCArmv5T.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct GCArmv5T.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new GCArmv5T.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct GCArmv5T.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new GCArmv5T.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct GCArmv5T.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new GCArmv5T.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct GCArmv5T.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new GCArmv5T.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config GCArmv5T.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const GCArmv5T.CYGWIN = Bool true;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config GCArmv5T.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const GCArmv5T.alignDirectiveSupported = Bool false;
config GCArmv5T.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const GCArmv5T.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config GCArmv5T.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const GCArmv5T.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: ""
};
config GCArmv5T.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const GCArmv5T.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config GCArmv5T.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const GCArmv5T.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config GCArmv5T.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const GCArmv5T.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: ""
};
config GCArmv5T.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const GCArmv5T.isa = String "v5T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config GCArmv5T.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const GCArmv5T.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config GCArmv5T.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const GCArmv5T.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config GCArmv5T.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const GCArmv5T.name = String "GCArmv5T";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config GCArmv5T.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const GCArmv5T.os = String "Linux";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config GCArmv5T.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const GCArmv5T.rts = String "gnu.targets.codesourcery.rtsv5T";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config GCArmv5T.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const GCArmv5T.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config GCArmv5T.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const GCArmv5T.stdInclude = String "gnu/targets/codesourcery/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config GCArmv5T.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const GCArmv5T.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config GCArmv5T.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const GCArmv5T.suffix = String "470MV";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config GCArmv5T.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
GCArmv5T.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config GCArmv5T.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
GCArmv5T.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config GCArmv5T.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
GCArmv5T.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config GCArmv5T.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
GCArmv5T.LONGNAME = String "/bin/arm-none-linux-gnueabi-gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config GCArmv5T.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
GCArmv5T.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv5T.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
GCArmv5T.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv5T.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
GCArmv5T.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config GCArmv5T.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
GCArmv5T.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused",
    suffix: "-Dfar= "
};
config GCArmv5T.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
GCArmv5T.compatibleSuffixes = String[] [
    "v5T",
    "v5t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config GCArmv5T.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
GCArmv5T.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config GCArmv5T.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
GCArmv5T.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config GCArmv5T.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
GCArmv5T.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config GCArmv5T.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
GCArmv5T.includeOpts = String "";
config GCArmv5T.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
GCArmv5T.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
};
config GCArmv5T.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
GCArmv5T.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config GCArmv5T.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
GCArmv5T.platform = String "ti.platforms.evm2530";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config GCArmv5T.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
GCArmv5T.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config GCArmv5T.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
GCArmv5T.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config GCArmv5T.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
GCArmv5T.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config GCArmv5T.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
GCArmv5T.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config GCArmv5T.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
GCArmv5T.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config GCArmv5T.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
GCArmv5T.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
GCArmv5T.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
GCArmv5T.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
GCArmv5T.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv5T.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
GCArmv5T.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
GCArmv5T.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv5T.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
GCArmv5T.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv5T.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
GCArmv5T.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
GCArmv5T.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
GCArmv5T.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
GCArmv5T.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
GCArmv5T.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
GCArmv5T.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
GCArmv5T.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
GCArmv5T.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
GCArmv5T.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv5T.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:57 GMT


module gnu.targets.codesourcery.GCArmv5T

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    import xdc.bld.ITarget2;
    13
    14    /*!
    15     *  ======== GCArmv5T.xdc ========
    16     *  This module defines an embedded target for Linux on Arm. The target
    17     *  generates code compatible with the "v5TE" architecture.
    18     *
    19     */
    20    metaonly module GCArmv5T inherits gnu.targets.ITarget {
    21        override readonly config string name                = "GCArmv5T";
    22        override readonly config string os                  = "Linux";
    23        override readonly config string suffix              = "470MV";
    24        override readonly config string isa                 = "v5T";
    25        override readonly config xdc.bld.ITarget.Model model= {
    26            endian: "little"
    27        };
    28
    29        override readonly config string rts = "gnu.targets.codesourcery.rtsv5T";
    30        override config string platform     = "ti.platforms.evm2530";
    31
    32        override config string LONGNAME = "/bin/arm-none-linux-gnueabi-gcc";
    33
    34        override readonly config Bool CYGWIN     = true;
    35
    36        override readonly config String stdInclude = "gnu/targets/codesourcery/std.h";
    37
    38        override config ITarget2.Options ccOpts = {
    39            prefix: "-fPIC -Wunused",
    40            suffix: "-Dfar= "
    41        };
    42
    43        override config ITarget2.Options lnkOpts = {
    44            prefix: "",
    45            suffix: "-lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    46        };
    47
    48
    49        /*
    50         *  ======== compatibleSuffixes ========
    51         */
    52        override config String compatibleSuffixes[] = ["v5T", "v5t"];
    53
    54        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    55            t_IArg          : { size: 4, align: 4 },
    56            t_Char          : { size: 1, align: 1 },
    57            t_Double        : { size: 8, align: 4 },
    58            t_Float         : { size: 4, align: 4 },
    59            t_Fxn           : { size: 4, align: 4 },
    60            t_Int           : { size: 4, align: 4 },
    61            t_Int8          : { size: 1, align: 1 },
    62            t_Int16         : { size: 2, align: 2 },
    63            t_Int32         : { size: 4, align: 4 },
    64            t_Int64         : { size: 8, align: 4 },
    65            t_Long          : { size: 4, align: 4 },
    66            t_LDouble       : { size: 8, align: 4 },
    67            t_LLong         : { size: 8, align: 4 },
    68            t_Ptr           : { size: 4, align: 4 },
    69            t_Short         : { size: 2, align: 2 },
    70            t_Size          : { size: 4, align: 4 },
    71        };
    72    }
    73    /*
    74     *  @(#) gnu.targets.codesourcery; 1, 0, 0, 0,463; 11-4-2012 21:21:13; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    75
    76     */
    77


module gnu.targets.codesourcery.GCArmv6

metaonly module gnu.targets.codesourcery.GCArmv6
index URL

This module defines an embedded target for Linux on Arm. The target generates code compatible with the "v6" architecture

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in gnu/targets/codesourcery/GCArmv6.xdc
var GCArmv6 = xdc.useModule('gnu.targets.codesourcery.GCArmv6');
module-wide constants & types
    var obj = new GCArmv6.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new GCArmv6.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new GCArmv6.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new GCArmv6.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new GCArmv6.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new GCArmv6.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new GCArmv6.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new GCArmv6.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new GCArmv6.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new GCArmv6.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new GCArmv6.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new GCArmv6.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const GCArmv6.CYGWIN// Is the target's compiler a cygwin executable = Bool true;
    const GCArmv6.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const GCArmv6.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const GCArmv6.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: "-march=armv6"
    };
    const GCArmv6.base// A target that this target is based upon = ITarget.Module computed value;
    const GCArmv6.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const GCArmv6.cc// The compile command = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: "-march=armv6"
    };
    const GCArmv6.isa// CPU Instruction Set Architecture (ISA) = String "v6";
    const GCArmv6.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const GCArmv6.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const GCArmv6.name// Nickname for this target = String "GCArmv6";
    const GCArmv6.os// Name of OS required to run programs built for this target = String "Linux";
    const GCArmv6.rts// Name of a run-time support package to include = String "gnu.targets.codesourcery.rtsv6";
    const GCArmv6.sectMap// Output section name to segment type mapping = String[string] computed value;
    const GCArmv6.stdInclude// Standard C/C++ types header = String "gnu/targets/codesourcery/std.h";
    const GCArmv6.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const GCArmv6.suffix// Suffix appended to all objs, libraries, and executable = String "v6";
     GCArmv6.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     GCArmv6.GCCTARG// The name of the platform executing programs produced by this target = String null;
     GCArmv6.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     GCArmv6.LONGNAME// The "long name" of the gcc compiler = String "/bin/arm-none-linux-gnueabi-gcc";
     GCArmv6.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv6.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     GCArmv6.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     GCArmv6.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused",
        suffix: "-Dfar= "
    };
     GCArmv6.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "v5T",
        "470MV",
        "v5t"
    ];
     GCArmv6.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     GCArmv6.execExt// Extension for executables = String undefined;
     GCArmv6.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     GCArmv6.includeOpts// Additional user configurable target-specific include path options = String "";
     GCArmv6.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    };
     GCArmv6.noStdLinkScript// Don't use the standard linker script = Bool false;
     GCArmv6.platform// The default platform name for this target = String "ti.platforms.evm2530";
     GCArmv6.platforms// A set of platforms that can support this target = String[] [ ];
     GCArmv6.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     GCArmv6.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     GCArmv6.rootDir// Installation directory for this target's code generation tools = String undefined;
     GCArmv6.version// The Compatibility Key associated with this target = String undefined;
     GCArmv6.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     GCArmv6.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     GCArmv6.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv6.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     GCArmv6.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     GCArmv6.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     GCArmv6.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv6.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     GCArmv6.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     GCArmv6.getVersion// Get a target-specific Compatibility Key string() returns String
     GCArmv6.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     GCArmv6.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     GCArmv6.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct GCArmv6.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new GCArmv6.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct GCArmv6.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new GCArmv6.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct GCArmv6.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new GCArmv6.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct GCArmv6.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new GCArmv6.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct GCArmv6.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new GCArmv6.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct GCArmv6.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new GCArmv6.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct GCArmv6.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new GCArmv6.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct GCArmv6.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new GCArmv6.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct GCArmv6.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new GCArmv6.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct GCArmv6.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new GCArmv6.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct GCArmv6.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new GCArmv6.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct GCArmv6.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new GCArmv6.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config GCArmv6.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const GCArmv6.CYGWIN = Bool true;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config GCArmv6.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const GCArmv6.alignDirectiveSupported = Bool false;
config GCArmv6.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const GCArmv6.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config GCArmv6.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const GCArmv6.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: "-march=armv6"
};
config GCArmv6.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const GCArmv6.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config GCArmv6.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const GCArmv6.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config GCArmv6.cc // module-wide
index URL

The compile command

XDCscript usage meta-domain
const GCArmv6.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: "-march=armv6"
};
DETAILS
The following options do not impact the content of the output file. They only generate additional output containg make dependencies.
-MD
generate make dependency rules
-MF
the next argument ($@.dep) is the name for the dependency output file
config GCArmv6.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const GCArmv6.isa = String "v6";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config GCArmv6.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const GCArmv6.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config GCArmv6.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const GCArmv6.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config GCArmv6.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const GCArmv6.name = String "GCArmv6";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config GCArmv6.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const GCArmv6.os = String "Linux";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config GCArmv6.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const GCArmv6.rts = String "gnu.targets.codesourcery.rtsv6";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config GCArmv6.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const GCArmv6.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config GCArmv6.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const GCArmv6.stdInclude = String "gnu/targets/codesourcery/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config GCArmv6.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const GCArmv6.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config GCArmv6.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const GCArmv6.suffix = String "v6";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config GCArmv6.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
GCArmv6.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config GCArmv6.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
GCArmv6.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config GCArmv6.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
GCArmv6.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config GCArmv6.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
GCArmv6.LONGNAME = String "/bin/arm-none-linux-gnueabi-gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure gnu.targets.arm.GCArmv6 target to use that toolchain:
  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
  GCArmv6.rootDir = "C:/CodeSourcery/arm-2010q1";
  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
config GCArmv6.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
GCArmv6.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv6.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
GCArmv6.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config GCArmv6.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
GCArmv6.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config GCArmv6.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
GCArmv6.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused",
    suffix: "-Dfar= "
};
config GCArmv6.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
GCArmv6.compatibleSuffixes = String[] [
    "v5T",
    "470MV",
    "v5t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config GCArmv6.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
GCArmv6.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config GCArmv6.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
GCArmv6.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config GCArmv6.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
GCArmv6.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config GCArmv6.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
GCArmv6.includeOpts = String "";
config GCArmv6.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
GCArmv6.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
};
config GCArmv6.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
GCArmv6.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config GCArmv6.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
GCArmv6.platform = String "ti.platforms.evm2530";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config GCArmv6.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
GCArmv6.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config GCArmv6.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
GCArmv6.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config GCArmv6.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
GCArmv6.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config GCArmv6.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
GCArmv6.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config GCArmv6.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
GCArmv6.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config GCArmv6.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
GCArmv6.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
GCArmv6.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
GCArmv6.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
GCArmv6.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv6.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
GCArmv6.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
GCArmv6.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv6.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
GCArmv6.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
GCArmv6.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
GCArmv6.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
GCArmv6.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
GCArmv6.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
GCArmv6.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
GCArmv6.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
GCArmv6.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
GCArmv6.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
GCArmv6.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
GCArmv6.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
GCArmv6.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:58 GMT


module gnu.targets.codesourcery.GCArmv6

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    import xdc.bld.ITarget2;
    13
    14    /*!
    15     *  ======== GCArmv6.xdc ========
    16     *  This module defines an embedded target for Linux on Arm. The target
    17     *  generates code compatible with the "v6" architecture.
    18     *
    19     */
    20    metaonly module GCArmv6 inherits gnu.targets.ITarget {
    21        override readonly config string name                = "GCArmv6";
    22        override readonly config string os                  = "Linux";
    23        override readonly config string suffix              = "v6";
    24        override readonly config string isa                 = "v6";
    25        override readonly config xdc.bld.ITarget.Model model= {
    26            endian: "little"
    27        };
    28
    29        override readonly config string rts = "gnu.targets.codesourcery.rtsv6";
    30        override config string platform     = "ti.platforms.evm2530";
    31
    32        override config string LONGNAME = "/bin/arm-none-linux-gnueabi-gcc";
    33
    34        override readonly config Bool CYGWIN     = true;
    35
    36        override readonly config String stdInclude = "gnu/targets/codesourcery/std.h";
    37
    38        /*!
    39         *  ======== cc ========
    40         *  The compile command
    41         *
    42         *  The following options do not impact the content of the output file. They
    43         *  only generate additional output containg make dependencies.
    44         *
    45         *  @p(dlist)
    46         *      -`-MD`
    47         *          generate make dependency rules
    48         *      -`-MF`
    49         *          the next argument ($@.dep) is the name for the dependency
    50         *          output file
    51         *
    52         */
    53        override readonly config ITarget2.Command cc = {
    54            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    55            opts: "-march=armv6"
    56        };
    57
    58        override readonly config ITarget2.Command asm = {
    59            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    60            opts: "-march=armv6"
    61        };
    62
    63        override config ITarget2.Options ccOpts = {
    64            prefix: "-fPIC -Wunused",
    65            suffix: "-Dfar= "
    66        };
    67
    68        override config ITarget2.Options lnkOpts = {
    69            prefix: "",
    70            suffix: "-lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
    71        };
    72
    73        /*
    74         *  ======== includeOpts ========
    75         */
    76        override config string includeOpts = "";
    77
    78        /*
    79         *  ======== compatibleSuffixes ========
    80         */
    81        override config String compatibleSuffixes[] = ["v5T", "470MV", "v5t"];
    82
    83        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    84            t_IArg          : { size: 4, align: 4 },
    85            t_Char          : { size: 1, align: 1 },
    86            t_Double        : { size: 8, align: 4 },
    87            t_Float         : { size: 4, align: 4 },
    88            t_Fxn           : { size: 4, align: 4 },
    89            t_Int           : { size: 4, align: 4 },
    90            t_Int8          : { size: 1, align: 1 },
    91            t_Int16         : { size: 2, align: 2 },
    92            t_Int32         : { size: 4, align: 4 },
    93            t_Int64         : { size: 8, align: 4 },
    94            t_Long          : { size: 4, align: 4 },
    95            t_LDouble       : { size: 8, align: 4 },
    96            t_LLong         : { size: 8, align: 4 },
    97            t_Ptr           : { size: 4, align: 4 },
    98            t_Short         : { size: 2, align: 2 },
    99            t_Size          : { size: 4, align: 4 },
   100        };
   101    }
   102    /*
   103     *  @(#) gnu.targets.codesourcery; 1, 0, 0, 0,463; 11-4-2012 21:21:13; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   104
   105     */
   106


package gnu.targets.codesourcery.rtsv5T
index URL

Runtime support package for the gnu.targets.codesourcery.GCArmv5T target

This package builds a library of standard XDC system support functions using sources from the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs).
XDCspec declarations sourced in gnu/targets/codesourcery/rtsv5T/package.xdc
requires xdc.runtime;
package gnu.targets.codesourcery.rtsv5T [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:58 GMT


package gnu.targets.codesourcery.rtsv5T

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.codesourcery.rtsv5T ========
    16     *  Runtime support package for the gnu.targets.codesourcery.GCArmv5T target.
    17     *
    18     *  This package builds a library of standard XDC system support functions
    19     *  using sources from the xdc.runtime package (to avoid having multiple copies of
    20     *  the same source in different runtime support packages for different ISAs).
    21     */
    22    package gnu.targets.codesourcery.rtsv5T [1,0,0,0] {
    23    }
    24    /*
    25     *  @(#) gnu.targets.codesourcery.rtsv5T; 1, 0, 0, 0,268; 11-4-2012 21:51:34; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    26
    27     */
    28


package gnu.targets.codesourcery.rtsv6
index URL

Runtime support package for the gnu.targets.codesourcery.GCArmv6 target

This package builds a library of standard XDC system support functions using sources from the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs).
XDCspec declarations sourced in gnu/targets/codesourcery/rtsv6/package.xdc
requires xdc.runtime;
package gnu.targets.codesourcery.rtsv6 [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:58 GMT


package gnu.targets.codesourcery.rtsv6

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.codesourcery.rts6 ========
    16     *  Runtime support package for the gnu.targets.codesourcery.GCArmv6 target.
    17     *
    18     *  This package builds a library of standard XDC system support functions
    19     *  using sources from the xdc.runtime package (to avoid having multiple copies of
    20     *  the same source in different runtime support packages for different ISAs).
    21     */
    22    package gnu.targets.codesourcery.rtsv6 [1,0,0,0] {
    23    }
    24    /*
    25     *  @(#) gnu.targets.codesourcery.rtsv6; 1, 0, 0, 0,270; 11-4-2012 21:51:35; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    26
    27     */
    28


package gnu.targets.rts470MV
index URL

Runtime support package for the MV 470 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in gnu/targets/rts470MV/package.xdc
requires xdc.runtime;
package gnu.targets.rts470MV [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:47 GMT


package gnu.targets.rts470MV

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.rts470MV ========
    16     *  Runtime support package for the MV 470 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package gnu.targets.rts470MV [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) gnu.targets.rts470MV; 1, 0, 0, 0,283; 11-4-2012 21:51:37; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package gnu.targets.rts470uC
index URL

Runtime support package for the gcc/uClibc 470 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in gnu/targets/rts470uC/package.xdc
requires xdc.runtime;
package gnu.targets.rts470uC [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:47 GMT


package gnu.targets.rts470uC

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.rts470uC ========
    16     *  Runtime support package for the gcc/uClibc 470 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package gnu.targets.rts470uC [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) gnu.targets.rts470uC; 1, 0, 0, 0,250; 11-4-2012 21:51:39; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package gnu.targets.rts5
index URL

Runtime support package for the Sparc targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in gnu/targets/rts5/package.xdc
requires xdc.runtime;
package gnu.targets.rts5 [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:47 GMT


package gnu.targets.rts5

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.rts5 ========
    16     *  Runtime support package for the Sparc targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package gnu.targets.rts5 [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) gnu.targets.rts5; 1, 0, 0, 0,397; 11-4-2012 21:51:41; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package gnu.targets.rts86GW
index URL

Runtime support package for the x86 targets using the mingw codegen tools

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in gnu/targets/rts86GW/package.xdc
requires xdc.runtime;
package gnu.targets.rts86GW [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:47 GMT


package gnu.targets.rts86GW

     1    /*
     2     *  Copyright 2012 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    requires xdc.runtime;
     7
     8    /*!
     9     *  ======== gnu.targets.rts86GW ========
    10     *  Runtime support package for the x86 targets using the mingw codegen tools.
    11     *
    12     *  This package builds a library of standard XDC system support functions.
    13     *  In particular, it builds several implementations of the
    14     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    15     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    16     *  the same source in different runtime support packages for different ISAs.
    17     */
    18    package gnu.targets.rts86GW [1,0,0,0] {
    19    }
    20    /*
    21     *  @(#) gnu.targets.rts86GW; 1, 0, 0, 0,395; 11-4-2012 21:51:43; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    22
    23     */
    24


package gnu.targets.rts86U
index URL

Runtime support package for the x86 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in gnu/targets/rts86U/package.xdc
requires xdc.runtime;
package gnu.targets.rts86U [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:47 GMT


package gnu.targets.rts86U

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== gnu.targets.rts86U ========
    16     *  Runtime support package for the x86 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package gnu.targets.rts86U [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) gnu.targets.rts86U; 1, 0, 0, 0,395; 11-4-2012 21:51:45; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package google.targets
index URL

Package of targets that wrap GNU gcc code generation tools

XDCspec declarations sourced in google/targets/package.xdc
requires xdc.bld;
package google.targets [1, 0, 0] {
    interface ITarget;
    // Interface to Google's GCC compatible compilers (e.g. Bionic)
}
generated on Thu, 08 Nov 2012 02:13:59 GMT


package google.targets

     1    /*
     2     *  Copyright (c) 2011 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.bld;
    13
    14    /*!
    15     *  ======== google.targets ========
    16     *  Package of targets that wrap GNU gcc code generation tools.
    17     */
    18    package google.targets [1,0,0] {
    19        interface ITarget;
    20    }
    21    /*
    22     *  @(#) google.targets; 1, 0, 0,118; 11-4-2012 21:21:15; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    23
    24     */
    25


interface google.targets.ITarget

metaonly interface google.targets.ITarget
index URL

Interface to Google's GCC compatible compilers (e.g. Bionic)

XDCspec summary sourced in google/targets/ITarget.xdc
metaonly interface ITarget { ...
// inherits xdc.bld.ITarget2
    // inherits xdc.bld.ITarget
XDCspec declarations sourced in google/targets/ITarget.xdc
package google.targets;
metaonly interface ITarget inherits ITarget2 {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    readonly config Bool CYGWIN// Is the target's compiler a cygwin executable = false;
    readonly config Bool alignDirectiveSupported// The compiler supports an align directive = false;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    override readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files = {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: ""
    };
    readonly config ITarget.Module base// A target that this target is based upon;
    readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    override readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files = {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: ""
    };
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    readonly config String sectMap// Output section name to segment type mapping[string];
    override readonly config String stdInclude// Standard C/C++ types header = "google/targets/std.h";
    readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 0,
            align: 0
        },
        t_Char: {
            size: 0,
            align: 0
        },
        t_Double: {
            size: 0,
            align: 0
        },
        t_Float: {
            size: 0,
            align: 0
        },
        t_Fxn: {
            size: 0,
            align: 0
        },
        t_Int: {
            size: 0,
            align: 0
        },
        t_Int8: {
            size: 0,
            align: 0
        },
        t_Int16: {
            size: 0,
            align: 0
        },
        t_Int32: {
            size: 0,
            align: 0
        },
        t_Int40: {
            size: 0,
            align: 0
        },
        t_Int64: {
            size: 0,
            align: 0
        },
        t_Long: {
            size: 0,
            align: 0
        },
        t_LDouble: {
            size: 0,
            align: 0
        },
        t_LLong: {
            size: 0,
            align: 0
        },
        t_Ptr: {
            size: 0,
            align: 0
        },
        t_Short: {
            size: 0,
            align: 0
        },
        t_Size: {
            size: 0,
            align: 0
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    config String BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = null;
    config String GCCTARG// The name of the platform executing programs produced by this target = null;
    config String GCCVERS// Version number of the GCC compiler; e.g., "3.2" = null;
    config String LONGNAME// The "long name" of the gcc compiler = "/bin/gcc";
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
    config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    config ITarget.DebugGen debugGen// Debugger/IDE file generation support;
    config String execExt// Extension for executables;
    config ITarget.Extension extensions// File extensions recognized by this target[string] = [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
    config String fsDir// The bionic file system;
    override config String includeOpts// Additional user configurable target-specific include path options = "";
    config String libcDir// The libc of the gcc compiler;
    config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "",
        suffix: ""
    };
    config Bool noStdLinkScript// Don't use the standard linker script = false;
    config String platform// The default platform name for this target;
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Profiles supported by this target[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
    config String remoteHost// Remote host used to run compiler, linker, and archiver tools;
    config String rootDir// Installation directory for this target's code generation tools;
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of GCC compiler version numbers to compatibility keys[string] = [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef ITarget.StringArray
index URL
XDCspec declarations sourced in google/targets/ITarget.xdc
typedef String StringArray[];
struct ITarget.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct ITarget.Command
index URL

Required command and options

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct ITarget.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ITarget.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct ITarget.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ITarget.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ITarget.Extension
index URL

File extension to file type association

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ITarget.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct ITarget.Model
index URL

Target runtime model

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ITarget.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ITarget.Options
index URL

User configurable command options

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct ITarget.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in google/targets/ITarget.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config ITarget.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config Bool CYGWIN = false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config ITarget.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config Bool alignDirectiveSupported = false;
config ITarget.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in google/targets/ITarget.xdc
override readonly config ITarget2.Command ar = {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config ITarget.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in google/targets/ITarget.xdc
override readonly config ITarget2.Command asm = {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: ""
};
config ITarget.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ITarget.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ITarget.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in google/targets/ITarget.xdc
override readonly config ITarget2.Command cc = {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: ""
};
config ITarget.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ITarget.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in google/targets/ITarget.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config ITarget.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ITarget.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ITarget.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ITarget.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ITarget.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config String sectMap[string];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ITarget.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in google/targets/ITarget.xdc
override readonly config String stdInclude = "google/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ITarget.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 0,
        align: 0
    },
    t_Char: {
        size: 0,
        align: 0
    },
    t_Double: {
        size: 0,
        align: 0
    },
    t_Float: {
        size: 0,
        align: 0
    },
    t_Fxn: {
        size: 0,
        align: 0
    },
    t_Int: {
        size: 0,
        align: 0
    },
    t_Int8: {
        size: 0,
        align: 0
    },
    t_Int16: {
        size: 0,
        align: 0
    },
    t_Int32: {
        size: 0,
        align: 0
    },
    t_Int40: {
        size: 0,
        align: 0
    },
    t_Int64: {
        size: 0,
        align: 0
    },
    t_Long: {
        size: 0,
        align: 0
    },
    t_LDouble: {
        size: 0,
        align: 0
    },
    t_LLong: {
        size: 0,
        align: 0
    },
    t_Ptr: {
        size: 0,
        align: 0
    },
    t_Short: {
        size: 0,
        align: 0
    },
    t_Size: {
        size: 0,
        align: 0
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config ITarget.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in google/targets/ITarget.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ITarget.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCspec declarations sourced in google/targets/ITarget.xdc
config String BINVERS = null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config ITarget.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCspec declarations sourced in google/targets/ITarget.xdc
config String GCCTARG = null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config ITarget.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCspec declarations sourced in google/targets/ITarget.xdc
config String GCCVERS = null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config ITarget.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCspec declarations sourced in google/targets/ITarget.xdc
config String LONGNAME = "/bin/gcc";
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure google.targets.arm.Bionic target to use that toolchain:
  var Bionic = xdc.module("google.targets.arm.Bionic");
  Bionic.rootDir = "C:/CodeSourcery/arm-2010q1";
  Bionic.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
  Bionic.libcDir = "C:/android-rowboat/bionic";
  Bionic.fsDir = "C:/android-rowboat/out/target/product/ti814xevm/obj";
config ITarget.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in google/targets/ITarget.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in google/targets/ITarget.xdc
config ITarget2.Options asmOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in google/targets/ITarget.xdc
config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config ITarget.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in google/targets/ITarget.xdc
config ITarget2.Options ccOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in google/targets/ITarget.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ITarget.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCspec declarations sourced in google/targets/ITarget.xdc
config ITarget.DebugGen debugGen;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config ITarget.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in google/targets/ITarget.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ITarget.extensions // module-wide
index URL

File extensions recognized by this target

XDCspec declarations sourced in google/targets/ITarget.xdc
config ITarget.Extension extensions[string] = [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config ITarget.fsDir // module-wide
index URL

The bionic file system

XDCspec declarations sourced in google/targets/ITarget.xdc
config String fsDir;
DETAILS
This name is used to find the file system libraries.
EXAMPLE
If the file system is installed in C:/android-rowboat/out/target/product/ti814xevm/obj, the following settings in config.bld configure the google.targets.arm.Binoic target to use that file system:
  var Bionic = xdc.module("google.targets.arm.Bionic");
  Bionic.rootDir = "C:/CodeSourcery/arm-2010q1";
  Bionic.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
  Bionic.fsDir = "C:/android-rowboat/out/target/product/ti814xevm/obj";
config ITarget.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in google/targets/ITarget.xdc
override config String includeOpts = "";
config ITarget.libcDir // module-wide
index URL

The libc of the gcc compiler

XDCspec declarations sourced in google/targets/ITarget.xdc
config String libcDir;
DETAILS
This name is used to find the libc libraries.
EXAMPLE
If the libc files are installed in C:/android-rowboat/bionic, the following settings in config.bld configure the google.targets.arm.Binoic target to use that libc installation:
  var Bionic = xdc.module("google.targets.arm.Bionic");
  Bionic.rootDir = "C:/CodeSourcery/arm-2010q1";
  Bionic.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
  Bionic.libcDir = "C:/android-rowboat/bionic";
  Bionic.fsDir = "C:/android-rowboat/out/target/product/ti814xevm/obj";
config ITarget.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in google/targets/ITarget.xdc
config ITarget2.Options lnkOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCspec declarations sourced in google/targets/ITarget.xdc
config Bool noStdLinkScript = false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config ITarget.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in google/targets/ITarget.xdc
config String platform;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ITarget.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in google/targets/ITarget.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ITarget.profiles // module-wide
index URL

Profiles supported by this target

XDCspec declarations sourced in google/targets/ITarget.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ITarget.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCspec declarations sourced in google/targets/ITarget.xdc
config String remoteHost;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config ITarget.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in google/targets/ITarget.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ITarget.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in google/targets/ITarget.xdc
override config String version;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config ITarget.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCspec declarations sourced in google/targets/ITarget.xdc
override config String versionMap[string] = [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
ITarget.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in google/targets/ITarget.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in google/targets/ITarget.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in google/targets/ITarget.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ITarget.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in google/targets/ITarget.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in google/targets/ITarget.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in google/targets/ITarget.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
ITarget.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in google/targets/ITarget.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
ITarget.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in google/targets/ITarget.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in google/targets/ITarget.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in google/targets/ITarget.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in google/targets/ITarget.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ITarget.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in google/targets/ITarget.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:59 GMT


interface google.targets.ITarget

     1    /*
     2     *  Copyright (c) 2011 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    /*!
    14     *  ======== google.targets.ITarget ========
    15     *  Interface to Google's GCC compatible compilers (e.g. Bionic)
    16     */
    17    @TargetHeader("xdc/bld/stddefs.xdt")
    18    metaonly interface ITarget inherits xdc.bld.ITarget2 {
    19
    20        override readonly config string stdInclude = "google/targets/std.h";
    21        override config string dllExt     = ".so";
    22
    23        /*!
    24         *  ======== GCCVERS ========
    25         *  Version number of the GCC compiler; e.g., "3.2".
    26         *
    27         *  This string can be supplied by the user, otherwise it is obtained
    28         *  by running "gcc -dumpversion".
    29         */
    30        config string GCCVERS = null;
    31
    32        /*!
    33         *  ======== BINVERS ========
    34         *  Version number of binutils used with the compiler; e.g., "2.19".
    35         *
    36         *  This string can be supplied by the user, otherwise it is obtained
    37         *  by running "ld -v".
    38         */
    39        config string BINVERS = null;
    40
    41        /*!
    42         *  ======== version ========
    43         *  The Compatibility Key associated with this target.
    44         *
    45         *  The first two components of this target's Compatibility Key are '1,0'.
    46         *  The rest of the Key represents the compiler version. The third
    47         *  component combines the major and the minor version number in the format
    48         *  Major.Minor. The fourth component is the patch number.
    49         *
    50         *  @a(Example)
    51         *  If this target's `rootDir` points to the compiler version 3.4.6, the
    52         *  Compatibility Key is [1,0,3.4,6].
    53         *
    54         */
    55        override metaonly config String version;
    56
    57        /*!
    58         *  ======== GCCTARG ========
    59         *  The name of the platform executing programs produced by this target
    60         *
    61         *  This string can be supplied by the user, otherwise is is obtained
    62         *  from the compiler and follows the GNU standard format
    63         *  (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>);
    64         *  e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
    65         *
    66         *  When building a GCC compiler, there are three different execution
    67         *  platforms to consider: the platform used to "build" the compiler, the
    68         *  "host" platform that runs the compiler, and the "target" platform
    69         *  that runs the executables produced by the compiler. All three
    70         *  platforms are identified using a
    71         *  {@link http://sources.redhat.com/autobook/autobook/autobook_17.html configuration name}
    72         *  defined by GNU Autotools.  `GCCTARG` is the name of the "target"
    73         *  platform.
    74         */
    75        config string GCCTARG = null;
    76
    77        /*!
    78         *  ======== LONGNAME ========
    79         *  The "long name" of the gcc compiler
    80         *
    81         *  This name is used (in conjunction with rootDir) to find the compiler
    82         *  and linker for this target. The format of `LONGNAME` is always
    83         *  "/bin/<machine>-gcc". For majority of the targets, the default value
    84         *  for `LONGNAME` does not ever need to be changed. But, there are
    85         *  targets where the different but compatible compilers may have
    86         *  different `LONGNAME` parameters. For such targets and compilers,
    87         *  `LONGNAME` can be set in `config.bld`.
    88         *
    89         *  @a(Example)
    90         *  If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is
    91         *  installed in C:/CodeSourcery/arm-2010q1, the following settings in
    92         *  `config.bld` configure `google.targets.arm.Bionic` target to use that
    93         *  toolchain:
    94         *  @p(code)
    95         *  var Bionic = xdc.module("google.targets.arm.Bionic");
    96         *  Bionic.rootDir = "C:/CodeSourcery/arm-2010q1";
    97         *  Bionic.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
    98         *  Bionic.libcDir = "C:/android-rowboat/bionic";
    99         *  Bionic.fsDir = "C:/android-rowboat/out/target/product/ti814xevm/obj";
   100         *  @p
   101         *
   102         */
   103        config string LONGNAME = "/bin/gcc";
   104
   105        /*!
   106         *  ======== libcDir ========
   107         *  The libc of the gcc compiler
   108         *
   109         *  This name is used to find the libc libraries.
   110         *
   111         *  @a(Example)
   112         *  If the libc files are installed in C:/android-rowboat/bionic, the
   113         *  following settings in `config.bld` configure the
   114         *  `google.targets.arm.Binoic` target to use that libc installation:
   115         *  @p(code)
   116         *  var Bionic = xdc.module("google.targets.arm.Bionic");
   117         *  Bionic.rootDir = "C:/CodeSourcery/arm-2010q1";
   118         *  Bionic.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
   119         *  Bionic.libcDir = "C:/android-rowboat/bionic";
   120         *  Bionic.fsDir = "C:/android-rowboat/out/target/product/ti814xevm/obj";
   121         *  @p
   122         *
   123         */
   124        config string libcDir;
   125
   126        /*!
   127         *  ======== fsDir ========
   128         *  The bionic file system
   129         *
   130         *  This name is used to find the file system libraries.
   131         *
   132         *  @a(Example)
   133         *  If the file system is installed in
   134         *  C:/android-rowboat/out/target/product/ti814xevm/obj, the
   135         *  following settings in `config.bld` configure the
   136         *  `google.targets.arm.Binoic` target to use that file system:
   137         *  @p(code)
   138         *  var Bionic = xdc.module("google.targets.arm.Bionic");
   139         *  Bionic.rootDir = "C:/CodeSourcery/arm-2010q1";
   140         *  Bionic.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
   141         *  Bionic.fsDir = "C:/android-rowboat/out/target/product/ti814xevm/obj";
   142         *  @p
   143         *
   144         */
   145        config string fsDir;
   146
   147        /*!
   148         *  ======== CYGWIN ========
   149         *  Is the target's compiler a cygwin executable
   150         *
   151         *  Since file names produced by cygwin-based tools differ from the
   152         *  names understood by other Windows executables, it is important
   153         *  to avoid using the names output by cygwin tools as input to
   154         *  non-cygwin programs.  This property tells the target whether
   155         *  or not it's possible to use the output from `gcc -MD -MF`, for
   156         *  example.
   157         */
   158        readonly config Bool CYGWIN = false;
   159
   160        /*!
   161         *  ======== noStdLinkScript ========
   162         *  Don't use the standard linker script
   163         *
   164         *  If `true`, add a `-T` flag before the generated `package/cfg/*.xdl`
   165         *  file passed to the linker.  This flag suppresses use of the
   166         *  standard linker script implicit in the GCC flow, which effectively
   167         *  says the generated `.xdl` file assumes total control for all
   168         *  `MEMORY` and `SECTION` directives.
   169         *
   170         */
   171        config Bool noStdLinkScript = false;
   172
   173        /*
   174         *  ======== profiles ========
   175         */
   176        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   177            ["debug", {
   178                compileOpts: {
   179                    copts: "-g",
   180                    defs:  "-D_DEBUG_=1",
   181                },
   182                linkOpts: "-g",
   183            }],
   184
   185            ["release", {
   186                compileOpts: {
   187                    copts: "-O2 -ffunction-sections -fdata-sections",
   188                },
   189                linkOpts: "-Wl,--gc-sections",
   190            }],
   191
   192            ["profile", {
   193                compileOpts: {
   194                    copts: "-g -pg",
   195                },
   196                linkOpts: "-pg"     /* can't use -static here */
   197            }],
   198
   199            ["coverage", {
   200                compileOpts: {
   201                    copts: "-fprofile-arcs -ftest-coverage",
   202                },
   203                linkOpts: "-fprofile-arcs -ftest-coverage",
   204            }],
   205        ];
   206
   207        /*!
   208         *  ======== versionMap ========
   209         *  Map of GCC compiler version numbers to compatibility keys.
   210         *
   211         *  This map translates version string information from the compiler
   212         *  into a compatibility key.  The compatibilty key is used to
   213         *  validate consistency among a collection of packages used in
   214         *  a configuration.
   215         *
   216         *  The compiler version string is "gcc<ver>", where <ver> is
   217         *  GCCVERS.
   218         *
   219         *  If a compiler version is not found in this map the default is
   220         *  "1,0,<ver>", where <ver> is the compiler version number.  Thus,
   221         *  the user only needs to extend this table when a significant
   222         *  incompatibility occurs or when two versions of the compiler should
   223         *  be treated as 100% compatible.
   224         */
   225        override config string versionMap[string] = [
   226            ["gcc3.2", "1,0,3.2,0"],
   227        ];
   228
   229        /*!
   230         *  ======== remoteHost ========
   231         *  Remote host used to run compiler, linker, and archiver tools
   232         *
   233         *  If `remoteHost` is `null` (or `undefined`), the configured compiler
   234         *  is run locally; otherwise, `remoteHost` is taken to be the host name
   235         *  of the machine that that should be used to run the specified compiler.
   236         *
   237         *  All target commands are prefixed with a command that uses `rsh` to run
   238         *  the commands on the specified host.  Thus, in order to use this
   239         *  setting, the remote machine must be support `rsh` and the user must
   240         *  have permission to run commands from the local machine on the remote
   241         *  host named `remoteHost`.  This usually involves adding a line to the
   242         *  user's `~/.rhosts` file on the remote machine of the form:
   243         *  @p(code)
   244         *      local-machine-name user-name
   245         *  @p
   246         *  where `local-machine-name` is the name of the local machine and
   247         * `user-name` is the user's login name on the local machine.
   248         */
   249        config string remoteHost;
   250
   251        /*!
   252         *  ======== ar ========
   253         *  The command used to create an archive
   254         */
   255        override readonly config xdc.bld.ITarget2.Command ar = {
   256            cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
   257            opts: "cr"
   258        };
   259
   260        /*!
   261         *  ======== lnk ========
   262         *  The command used to link executables.
   263         */
   264        override readonly config xdc.bld.ITarget2.Command lnk = {
   265            cmd: "$(rootDir)/$(LONGNAME)",
   266            opts: ""
   267        };
   268
   269        /*!
   270         *  ======== cc ========
   271         *  The command used to compile C/C++ source files into object files
   272         */
   273        override readonly config xdc.bld.ITarget2.Command cc = {
   274            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
   275            opts: ""
   276        };
   277
   278        /*!
   279         *  ======== asm ========
   280         *  The command used to assembles assembly source files into object files
   281         */
   282        override readonly config xdc.bld.ITarget2.Command asm = {
   283            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
   284            opts: ""
   285        };
   286
   287        /*!
   288         *  ======== includeOpts ========
   289         *  Additional user configurable target-specific include path options
   290         */
   291        override config string includeOpts = "";
   292    }
   293    /*
   294     *  @(#) google.targets; 1, 0, 0,118; 11-4-2012 21:21:14; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   295
   296     */
   297


package google.targets.arm
index URL

GCC-based code generation targets for Arm

This package offers a generic support for Google Arm compilers. For the targets in this package, a user must set configuration parameter LONGNAME in config.bld. That parameter specifies the relative path to the compiler executable from the directory specified in rootDir.
XDCspec declarations sourced in google/targets/arm/package.xdc
requires xdc.bld;
requires gnu.targets;
package google.targets.arm [1, 0, 0] {
    module Bionic;
    // Embedded little endian ARM v5TE Bionic target
}
generated on Thu, 08 Nov 2012 02:13:59 GMT


package google.targets.arm

     1    /*
     2     *  Copyright (c) 2011 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    requires xdc.bld;
    14    requires gnu.targets;
    15
    16    /*!
    17     *  ======== google.targets.arm ========
    18     *  GCC-based code generation targets for Arm
    19     *
    20     *  This package offers a generic support for Google Arm compilers.
    21     *  For the targets in this package, a user must set configuration parameter
    22     *  `LONGNAME` in `config.bld`. That parameter specifies the relative path to
    23     *  the compiler executable from the directory specified in `rootDir`.
    24     *
    25     */
    26    package google.targets.arm [1, 0, 0] {
    27        module Bionic;
    28    }
    29    /*
    30     *  @(#) google.targets.arm; 1, 0, 0,117; 11-4-2012 21:21:17; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    31
    32     */
    33


module google.targets.arm.Bionic

metaonly module google.targets.arm.Bionic
index URL

Embedded little endian ARM v5TE Bionic target

  • XDCscript usage
  • Individual elements
This module defines an embedded target for Bionic on ARM. The target generates code compatible with the "v5TE" architecture.
XDCscript usage meta-domain sourced in google/targets/arm/Bionic.xdc
var Bionic = xdc.useModule('google.targets.arm.Bionic');
module-wide constants & types
    var obj = new Bionic.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Bionic.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Bionic.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Bionic.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Bionic.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Bionic.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Bionic.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Bionic.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Bionic.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Bionic.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Bionic.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Bionic.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Bionic.CYGWIN// Is the target's compiler a cygwin executable = Bool false;
    const Bionic.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const Bionic.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
        opts: "cr"
    };
    const Bionic.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
        opts: "-march=armv5t"
    };
    const Bionic.base// A target that this target is based upon = ITarget.Module computed value;
    const Bionic.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Bionic.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
        opts: "-march=armv5t -fno-short-enums "
    };
    const Bionic.isa// CPU Instruction Set Architecture (ISA) = String "v5T";
    const Bionic.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/$(LONGNAME)",
        opts: ""
    };
    const Bionic.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const Bionic.name// Nickname for this target = String "Bionic";
    const Bionic.os// Name of OS required to run programs built for this target = String "Linux";
    const Bionic.rts// Name of a run-time support package to include = String "google.targets.arm.rts";
    const Bionic.sectMap// Output section name to segment type mapping = String[string] computed value;
    const Bionic.stdInclude// Standard C/C++ types header = String "google/targets/arm/std.h";
    const Bionic.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Bionic.suffix// Suffix appended to all objs, libraries, and executable = String "bnc";
     Bionic.BINVERS// Version number of binutils used with the compiler; e.g., "2.19" = String null;
     Bionic.GCCTARG// The name of the platform executing programs produced by this target = String null;
     Bionic.GCCVERS// Version number of the GCC compiler; e.g., "3.2" = String null;
     Bionic.LONGNAME// The "long name" of the gcc compiler = String undefined;
     Bionic.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Bionic.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Bionic.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     Bionic.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-fPIC -Wunused",
        suffix: "-Dfar= -D_ANDROID_"
    };
     Bionic.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     Bionic.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     Bionic.execExt// Extension for executables = String undefined;
     Bionic.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     Bionic.fsDir// The bionic file system = String undefined;
     Bionic.includeOpts// Additional user configurable target-specific include path options = String "";
     Bionic.libcDir// The libc of the gcc compiler = String undefined;
     Bionic.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map "
    };
     Bionic.noStdLinkScript// Don't use the standard linker script = Bool false;
     Bionic.platform// The default platform name for this target = String "host.platforms.arm";
     Bionic.platforms// A set of platforms that can support this target = String[] [ ];
     Bionic.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                },
                linkOpts: "-g"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -ffunction-sections -fdata-sections"
                },
                linkOpts: "-Wl,--gc-sections"
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     Bionic.remoteHost// Remote host used to run compiler, linker, and archiver tools = String undefined;
     Bionic.rootDir// Installation directory for this target's code generation tools = String undefined;
     Bionic.version// The Compatibility Key associated with this target = String undefined;
     Bionic.versionMap// Map of GCC compiler version numbers to compatibility keys = String[string] [
        [
            "gcc3.2",
            "1,0,3.2,0"
        ]
    ];
module-wide functions
     Bionic.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Bionic.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Bionic.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Bionic.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Bionic.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Bionic.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Bionic.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Bionic.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Bionic.getVersion// Get a target-specific Compatibility Key string() returns String
     Bionic.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Bionic.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Bionic.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Bionic.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Bionic.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Bionic.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Bionic.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Bionic.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Bionic.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Bionic.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Bionic.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Bionic.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Bionic.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Bionic.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Bionic.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Bionic.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Bionic.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Bionic.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Bionic.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Bionic.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Bionic.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Bionic.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Bionic.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Bionic.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Bionic.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Bionic.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Bionic.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Bionic.CYGWIN // module-wide
index URL

Is the target's compiler a cygwin executable

XDCscript usage meta-domain
const Bionic.CYGWIN = Bool false;
DETAILS
Since file names produced by cygwin-based tools differ from the names understood by other Windows executables, it is important to avoid using the names output by cygwin tools as input to non-cygwin programs. This property tells the target whether or not it's possible to use the output from gcc -MD -MF, for example.
config Bionic.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Bionic.alignDirectiveSupported = Bool false;
config Bionic.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Bionic.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(GCCTARG)/bin/ar",
    opts: "cr"
};
config Bionic.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Bionic.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    opts: "-march=armv5t"
};
config Bionic.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Bionic.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Bionic.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Bionic.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Bionic.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Bionic.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    opts: "-march=armv5t -fno-short-enums "
};
config Bionic.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Bionic.isa = String "v5T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Bionic.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Bionic.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(LONGNAME)",
    opts: ""
};
config Bionic.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Bionic.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Bionic.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Bionic.name = String "Bionic";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Bionic.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Bionic.os = String "Linux";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Bionic.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Bionic.rts = String "google.targets.arm.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Bionic.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Bionic.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Bionic.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Bionic.stdInclude = String "google/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Bionic.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Bionic.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Bionic.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Bionic.suffix = String "bnc";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Bionic.BINVERS // module-wide
index URL

Version number of binutils used with the compiler; e.g., "2.19"

XDCscript usage meta-domain
Bionic.BINVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "ld -v".
config Bionic.GCCTARG // module-wide
index URL

The name of the platform executing programs produced by this target

XDCscript usage meta-domain
Bionic.GCCTARG = String null;
DETAILS
This string can be supplied by the user, otherwise is is obtained from the compiler and follows the GNU standard format (<cpu>-<manufacturer>-<os> or <cpu>-<manufacturer>-<kernel>-<os>); e.g., "sparc-sun-solaris2.6" or "i586-pc-linux-gnu".
When building a GCC compiler, there are three different execution platforms to consider: the platform used to "build" the compiler, the "host" platform that runs the compiler, and the "target" platform that runs the executables produced by the compiler. All three platforms are identified using a configuration name defined by GNU Autotools. GCCTARG is the name of the "target" platform.
config Bionic.GCCVERS // module-wide
index URL

Version number of the GCC compiler; e.g., "3.2"

XDCscript usage meta-domain
Bionic.GCCVERS = String null;
DETAILS
This string can be supplied by the user, otherwise it is obtained by running "gcc -dumpversion".
config Bionic.LONGNAME // module-wide
index URL

The "long name" of the gcc compiler

XDCscript usage meta-domain
Bionic.LONGNAME = String undefined;
DETAILS
This name is used (in conjunction with rootDir) to find the compiler and linker for this target. The format of LONGNAME is always "/bin/<machine>-gcc". For majority of the targets, the default value for LONGNAME does not ever need to be changed. But, there are targets where the different but compatible compilers may have different LONGNAME parameters. For such targets and compilers, LONGNAME can be set in config.bld.
EXAMPLE
If a version 2010q1 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2010q1, the following settings in config.bld configure google.targets.arm.Bionic target to use that toolchain:
  var Bionic = xdc.module("google.targets.arm.Bionic");
  Bionic.rootDir = "C:/CodeSourcery/arm-2010q1";
  Bionic.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
  Bionic.libcDir = "C:/android-rowboat/bionic";
  Bionic.fsDir = "C:/android-rowboat/out/target/product/ti814xevm/obj";
config Bionic.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Bionic.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Bionic.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Bionic.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Bionic.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Bionic.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Bionic.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Bionic.ccOpts = ITarget2.Options {
    prefix: "-fPIC -Wunused",
    suffix: "-Dfar= -D_ANDROID_"
};
config Bionic.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Bionic.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Bionic.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
Bionic.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config Bionic.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Bionic.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Bionic.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
Bionic.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config Bionic.fsDir // module-wide
index URL

The bionic file system

XDCscript usage meta-domain
Bionic.fsDir = String undefined;
DETAILS
This name is used to find the file system libraries.
EXAMPLE
If the file system is installed in C:/android-rowboat/out/target/product/ti814xevm/obj, the following settings in config.bld configure the google.targets.arm.Binoic target to use that file system:
  var Bionic = xdc.module("google.targets.arm.Bionic");
  Bionic.rootDir = "C:/CodeSourcery/arm-2010q1";
  Bionic.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
  Bionic.fsDir = "C:/android-rowboat/out/target/product/ti814xevm/obj";
config Bionic.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Bionic.includeOpts = String "";
config Bionic.libcDir // module-wide
index URL

The libc of the gcc compiler

XDCscript usage meta-domain
Bionic.libcDir = String undefined;
DETAILS
This name is used to find the libc libraries.
EXAMPLE
If the libc files are installed in C:/android-rowboat/bionic, the following settings in config.bld configure the google.targets.arm.Binoic target to use that libc installation:
  var Bionic = xdc.module("google.targets.arm.Bionic");
  Bionic.rootDir = "C:/CodeSourcery/arm-2010q1";
  Bionic.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
  Bionic.libcDir = "C:/android-rowboat/bionic";
  Bionic.fsDir = "C:/android-rowboat/out/target/product/ti814xevm/obj";
config Bionic.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Bionic.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map "
};
config Bionic.noStdLinkScript // module-wide
index URL

Don't use the standard linker script

XDCscript usage meta-domain
Bionic.noStdLinkScript = Bool false;
DETAILS
If true, add a -T flag before the generated package/cfg/*.xdl file passed to the linker. This flag suppresses use of the standard linker script implicit in the GCC flow, which effectively says the generated .xdl file assumes total control for all MEMORY and SECTION directives.
config Bionic.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Bionic.platform = String "host.platforms.arm";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Bionic.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Bionic.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Bionic.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
Bionic.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            },
            linkOpts: "-g"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -ffunction-sections -fdata-sections"
            },
            linkOpts: "-Wl,--gc-sections"
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g -pg"
            },
            linkOpts: "-pg"
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-fprofile-arcs -ftest-coverage"
            },
            linkOpts: "-fprofile-arcs -ftest-coverage"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Bionic.remoteHost // module-wide
index URL

Remote host used to run compiler, linker, and archiver tools

XDCscript usage meta-domain
Bionic.remoteHost = String undefined;
DETAILS
If remoteHost is null (or undefined), the configured compiler is run locally; otherwise, remoteHost is taken to be the host name of the machine that that should be used to run the specified compiler.
All target commands are prefixed with a command that uses rsh to run the commands on the specified host. Thus, in order to use this setting, the remote machine must be support rsh and the user must have permission to run commands from the local machine on the remote host named remoteHost. This usually involves adding a line to the user's ~/.rhosts file on the remote machine of the form:
      local-machine-name user-name
where local-machine-name is the name of the local machine and user-name is the user's login name on the local machine.
config Bionic.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Bionic.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Bionic.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Bionic.version = String undefined;
DETAILS
The first two components of this target's Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 3.4.6, the Compatibility Key is [1,0,3.4,6].
config Bionic.versionMap // module-wide
index URL

Map of GCC compiler version numbers to compatibility keys

XDCscript usage meta-domain
Bionic.versionMap = String[string] [
    [
        "gcc3.2",
        "1,0,3.2,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibilty key is used to validate consistency among a collection of packages used in a configuration.
The compiler version string is "gcc<ver>", where <ver> is GCCVERS.
If a compiler version is not found in this map the default is "1,0,<ver>", where <ver> is the compiler version number. Thus, the user only needs to extend this table when a significant incompatibility occurs or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
Bionic.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Bionic.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Bionic.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Bionic.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Bionic.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Bionic.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Bionic.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Bionic.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Bionic.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Bionic.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Bionic.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Bionic.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Bionic.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Bionic.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Bionic.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Bionic.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Bionic.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Bionic.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Bionic.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Bionic.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Bionic.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Bionic.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Bionic.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Bionic.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:59 GMT


module google.targets.arm.Bionic

     1    /*
     2     *  Copyright (c) 2011 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    import xdc.bld.ITarget2;
    14
    15    /*!
    16     *  ======== Bionic.xdc ========
    17     *  Embedded little endian ARM v5TE Bionic target
    18     *
    19     *  This module defines an embedded target for Bionic on ARM. The target
    20     *  generates code compatible with the "v5TE" architecture.
    21     *
    22     */
    23    metaonly module Bionic inherits google.targets.ITarget {
    24        override readonly config string name                = "Bionic";
    25        override readonly config string os                  = "Linux";
    26        override readonly config string suffix              = "bnc";
    27        override readonly config string isa                 = "v5T";
    28        override readonly config xdc.bld.ITarget.Model model= {
    29            endian: "little"
    30        };
    31
    32        override readonly config string rts = "google.targets.arm.rts";
    33        override config string platform     = "host.platforms.arm";
    34
    35        override config string LONGNAME;
    36        override config string libcDir;
    37        override config string fsDir;
    38
    39        override readonly config String stdInclude = "google/targets/arm/std.h";
    40
    41        override readonly config ITarget2.Command cc = {
    42            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    43            opts: "-march=armv5t -fno-short-enums "
    44        };
    45
    46        override config ITarget2.Options ccOpts = {
    47            prefix: "-fPIC -Wunused",
    48            suffix: "-Dfar=  -D_ANDROID_"
    49        };
    50
    51        override readonly config ITarget2.Command asm = {
    52            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
    53            opts: "-march=armv5t"
    54        };
    55
    56        override config ITarget2.Options lnkOpts = {
    57            prefix: "",
    58            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map "
    59        };
    60
    61        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    62            t_IArg          : { size: 4, align: 4 },
    63            t_Char          : { size: 1, align: 1 },
    64            t_Double        : { size: 8, align: 4 },
    65            t_Float         : { size: 4, align: 4 },
    66            t_Fxn           : { size: 4, align: 4 },
    67            t_Int           : { size: 4, align: 4 },
    68            t_Int8          : { size: 1, align: 1 },
    69            t_Int16         : { size: 2, align: 2 },
    70            t_Int32         : { size: 4, align: 4 },
    71            t_Int64         : { size: 8, align: 4 },
    72            t_Long          : { size: 4, align: 4 },
    73            t_LDouble       : { size: 8, align: 4 },
    74            t_LLong         : { size: 8, align: 4 },
    75            t_Ptr           : { size: 4, align: 4 },
    76            t_Short         : { size: 2, align: 2 },
    77                    t_Size          : { size: 4, align: 4 },
    78        };
    79    }
    80    /*
    81     *  @(#) google.targets.arm; 1, 0, 0,117; 11-4-2012 21:21:16; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    82
    83     */
    84


package google.targets.arm.rts
index URL

Runtime support package for the google.targets.arm.GCArmv5T target

This package builds a library of standard XDC system support functions using sources from the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs).
XDCspec declarations sourced in google/targets/arm/rts/package.xdc
requires xdc.runtime;
package google.targets.arm.rts [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:00 GMT


package google.targets.arm.rts

     1    /*
     2     *  Copyright (c) 2011 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    requires xdc.runtime;
    14
    15    /*!
    16     *  ======== google.targets.arm.rts ========
    17     *  Runtime support package for the google.targets.arm.GCArmv5T target
    18     *
    19     *  This package builds a library of standard XDC system support functions
    20     *  using sources from the xdc.runtime package (to avoid having multiple copies of
    21     *  the same source in different runtime support packages for different ISAs).
    22     */
    23    package google.targets.arm.rts [1, 0, 0] {
    24    }
    25    /*
    26     *  @(#) google.targets.arm.rts; 1, 0, 0,43; 11-4-2012 21:51:49; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    27
    28     */
    29


package host.platforms.PC
index URL

Platform package for the PC platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on a PC platform. This platform supports multiple host operating systems; Linux, Windows, etc.
XDCspec declarations sourced in host/platforms/PC/package.xdc
requires xdc.platform;
package host.platforms.PC [1, 0, 0] {
    module Intel80586;
    // Pentium device data sheet module
    module Platform;
    // Native PC platform support
}
generated on Thu, 08 Nov 2012 02:14:07 GMT


package host.platforms.PC

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.platform;
    13
    14    /*!
    15     *  ======== host.platform.PC ========
    16     *  Platform package for the PC platform.
    17     *
    18     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    19     *  to build and run executables on a PC platform.  This platform supports
    20     *  multiple host operating systems; Linux, Windows, etc.
    21     */
    22    package host.platforms.PC [1,0,0] {
    23        module Platform;
    24        module Intel80586;
    25    }
    26    /*
    27     *  @(#) host.platforms.PC; 1, 0, 0,402; 11-3-2012 15:18:53; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    28     */
    29


module host.platforms.PC.Intel80586

metaonly module host.platforms.PC.Intel80586
index URL

Pentium device data sheet module

  • XDCscript usage
  • Individual elements
This module provides basic data suitable for Intel Pentium based native builds.
XDCscript usage meta-domain sourced in host/platforms/PC/Intel80586.xdc
var Intel80586 = xdc.useModule('host.platforms.PC.Intel80586');
per-instance config parameters
    var params = new Intel80586.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "586";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemeoryMap() = IPlatform.Memory[string] [ ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Intel80586.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Intel80586.Params;
// Instance config-params object
    params.cpuCore = String "586";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [ ];
    // The memory map returned be getMemeoryMap()
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Intel80586.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Intel80586.Params;
...
params.cpuCore = String "586";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Intel80586.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Intel80586.Params;
...
params.cpuCoreRevision = String "1.0";
config Intel80586.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Intel80586.Params;
...
params.dataWordSize = Int 4;
config Intel80586.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Intel80586.Params;
...
params.deviceHeader = String undefined;
config Intel80586.memMap // instance
index URL

The memory map returned be getMemeoryMap()

XDCscript usage meta-domain
var params = new Intel80586.Params;
...
params.memMap = IPlatform.Memory[string] [ ];
config Intel80586.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Intel80586.Params;
...
params.minDataUnitSize = Int 1;
config Intel80586.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Intel80586.Params;
...
params.minProgUnitSize = Int 1;
config Intel80586.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Intel80586.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Intel80586.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Intel80586.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Intel80586.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Intel80586.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:14:07 GMT


module host.platforms.PC.Intel80586

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Intel80586.xdc. ========
    14     */
    15
    16    package host.platforms.PC;
    17
    18    /*!
    19     *  ======== Intel80586 ========
    20     *  Pentium device data sheet module.
    21     *
    22     *  This module provides basic data suitable for Intel Pentium based
    23     *  native builds.
    24     */
    25    metaonly module Intel80586 inherits xdc.platform.ICpuDataSheet
    26    {
    27    instance:
    28        override config string cpuCore          = "586";
    29        override config string cpuCoreRevision   = "1.0";
    30        override config int    minProgUnitSize   = 1;
    31        override config int    minDataUnitSize   = 1;
    32        override config int    dataWordSize     = 4;
    33
    34        /*!
    35         *  ======== memMap ========
    36         *  The memory map returned be getMemeoryMap().
    37         */
    38        config xdc.platform.IPlatform.Memory memMap[string] = [];
    39    }
    40    /*
    41     *  @(#) host.platforms.PC; 1, 0, 0,402; 11-3-2012 15:18:53; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    42     */
    43


module host.platforms.PC.Platform

metaonly module host.platforms.PC.Platform
index URL

Native PC platform support

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in host/platforms/PC/Platform.xdc
var Platform = xdc.useModule('host.platforms.PC.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:14:07 GMT


module host.platforms.PC.Platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package host.platforms.PC;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Native PC platform support
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  @_nodoc this structure (and CPU below) exists to satisfy the
    41         *  IPlatform interface requirements; these fields are largely
    42         *  unnecessary for host platforms.
    43         */
    44        readonly config xdc.platform.IPlatform.Board BOARD = {
    45            id:             "0",
    46            boardName:      "intel-x86",
    47            boardFamily:    "intel-x86",
    48            boardRevision:  null
    49        };
    50
    51        /*!
    52         *  ======== CPU ========
    53         *  @_nodoc
    54         */
    55        readonly config xdc.platform.IExeContext.Cpu CPU = {
    56            id:             "0",
    57            clockRate:      1000.0,
    58            catalogName:    "host.platforms.PC",
    59            deviceName:     "Intel80586",
    60            revision:       "",
    61        };
    62
    63    instance:
    64    }
    65    /*
    66     *  @(#) host.platforms.PC; 1, 0, 0,402; 11-3-2012 15:18:53; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    67     */
    68


package host.platforms.SUN
index URL

Platform package for the SUN Sparc platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on a SUN Sparc platform.
XDCspec declarations sourced in host/platforms/SUN/package.xdc
requires xdc.platform;
package host.platforms.SUN [1, 0, 0, 1] {
    module Platform;
    // Native SUN Solaris platform support
    module SunSparc7;
    // Sparc device data sheet module
}
generated on Thu, 08 Nov 2012 02:14:07 GMT


package host.platforms.SUN

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.platform;
    13
    14    /*!
    15     *  ======== host.platform.SUN ========
    16     *  Platform package for the SUN Sparc platform.
    17     *
    18     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    19     *  to build and run executables on a SUN Sparc platform.
    20     */
    21    package host.platforms.SUN [1,0,0,1] {
    22        module Platform;
    23        module SunSparc7;
    24    }
    25    /*
    26     *  @(#) host.platforms.SUN; 1, 0, 0, 1,402; 11-3-2012 15:18:53; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    27     */
    28


module host.platforms.SUN.Platform

metaonly module host.platforms.SUN.Platform
index URL

Native SUN Solaris platform support

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in host/platforms/SUN/Platform.xdc
var Platform = xdc.useModule('host.platforms.SUN.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.remoteHost// = String undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.remoteHost = String undefined;
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.remoteHost // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.remoteHost = String undefined;
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:14:07 GMT


module host.platforms.SUN.Platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package host.platforms.SUN;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Native SUN Solaris platform support
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  @_nodoc this structure (and CPU below) exists to satisfy the
    40         *  IPlatform interface requirements; these fields are largely
    41         *  unnecessary for host platforms.
    42         */
    43        readonly config xdc.platform.IPlatform.Board BOARD = {
    44            id:             "0",
    45            boardName:      "sun-sparc",
    46            boardFamily:    "sun-sparc",
    47            boardRevision:  null
    48        };
    49
    50        /*!
    51         *  ======== CPU ========
    52         *  @_nodoc
    53         */
    54        readonly config xdc.platform.IExeContext.Cpu CPU = {
    55            id:             "0",
    56            clockRate:      750.0,
    57            catalogName:    "host.platforms.SUN",
    58            deviceName:     "SunSparc7",
    59            revision:       "",
    60        };
    61
    62    instance:
    63        config String remoteHost;
    64    }
    65    /*
    66     *  @(#) host.platforms.SUN; 1, 0, 0, 1,402; 11-3-2012 15:18:53; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    67     */
    68


module host.platforms.SUN.SunSparc7

metaonly module host.platforms.SUN.SunSparc7
index URL

Sparc device data sheet module

  • XDCscript usage
  • Individual elements
This module provides basic data suitable for SUN Solaris native builds.
XDCscript usage meta-domain sourced in host/platforms/SUN/SunSparc7.xdc
var SunSparc7 = xdc.useModule('host.platforms.SUN.SunSparc7');
per-instance config parameters
    var params = new SunSparc7.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "sparc7";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemeoryMap() = IPlatform.Memory[string] [ ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = SunSparc7.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SunSparc7.Params;
// Instance config-params object
    params.cpuCore = String "sparc7";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [ ];
    // The memory map returned be getMemeoryMap()
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config SunSparc7.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new SunSparc7.Params;
...
params.cpuCore = String "sparc7";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config SunSparc7.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new SunSparc7.Params;
...
params.cpuCoreRevision = String "1.0";
config SunSparc7.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new SunSparc7.Params;
...
params.dataWordSize = Int 4;
config SunSparc7.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new SunSparc7.Params;
...
params.deviceHeader = String undefined;
config SunSparc7.memMap // instance
index URL

The memory map returned be getMemeoryMap()

XDCscript usage meta-domain
var params = new SunSparc7.Params;
...
params.memMap = IPlatform.Memory[string] [ ];
config SunSparc7.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new SunSparc7.Params;
...
params.minDataUnitSize = Int 1;
config SunSparc7.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new SunSparc7.Params;
...
params.minProgUnitSize = Int 1;
config SunSparc7.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new SunSparc7.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new SunSparc7.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = SunSparc7.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
SunSparc7.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
SunSparc7.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:14:07 GMT


module host.platforms.SUN.SunSparc7

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    package host.platforms.SUN;
    13
    14    /*!
    15     *  ======== SunSparc7 ========
    16     *  Sparc device data sheet module.
    17     *
    18     *  This module provides basic data suitable for SUN Solaris native
    19     *  builds.
    20     */
    21    metaonly module SunSparc7 inherits xdc.platform.ICpuDataSheet
    22    {
    23    instance:
    24        override config string cpuCore          = "sparc7";
    25        override config string cpuCoreRevision   = "1.0";
    26        override config int    minProgUnitSize   = 1;
    27        override config int    minDataUnitSize   = 1;
    28        override config int    dataWordSize     = 4;
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The memory map returned be getMemeoryMap().
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string] = [];
    35    }
    36    /*
    37     *  @(#) host.platforms.SUN; 1, 0, 0, 1,402; 11-3-2012 15:18:53; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    38     */
    39


package host.platforms.arm
index URL

Platform package for the ARM-based platforms running an OS with virtual memory

XDCspec declarations sourced in host/platforms/arm/package.xdc
requires xdc.platform;
package host.platforms.arm [1, 0, 0, 0] {
    module Platform;
    // ARM-on-Linux platform support
}
generated on Thu, 08 Nov 2012 02:14:07 GMT


package host.platforms.arm

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.platform;
    13
    14    /*!
    15     *  ======== host.platform.arm ========
    16     *  Platform package for the ARM-based platforms running an OS with virtual
    17     *  memory.
    18     */
    19    package host.platforms.arm [1,0,0,0] {
    20        module Platform;
    21    }
    22    /*
    23     *  @(#) host.platforms.arm; 1, 0, 0, 0,126; 8-17-2012 22:13:02; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module host.platforms.arm.Platform

metaonly module host.platforms.arm.Platform
index URL

ARM-on-Linux platform support

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
XDCscript usage meta-domain sourced in host/platforms/arm/Platform.xdc
var Platform = xdc.useModule('host.platforms.arm.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.catalogName// The name of the package that contains the module 'deviceName' = String "ti.catalog.arm";
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.deviceName// The CPU simulated by this platform = String "TMS320CDM6446";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.catalogName = String "ti.catalog.arm";
    // The name of the package that contains the module 'deviceName'
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.deviceName = String "TMS320CDM6446";
    // The CPU simulated by this platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.catalogName // instance
index URL

The name of the package that contains the module 'deviceName'

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.catalogName = String "ti.catalog.arm";
DETAILS
This parameter is required.
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String "TMS320CDM6446";
DETAILS
This parameter is required.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:14:07 GMT


module host.platforms.arm.Platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Platform.xdc ========
    14     *
    15     */
    16
    17    package host.platforms.arm;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  ARM-on-Linux platform support
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     */
    26
    27    metaonly module Platform inherits xdc.platform.IPlatform
    28    {
    29        /*!
    30         *  ======== BOARD ========
    31         *  @_nodoc
    32         *  this structure exists to satisfy the
    33         *  IPlatform interface requirements; these fields are largely
    34         *  unnecessary for host platforms.
    35         */
    36        readonly config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "ARM",
    39            boardFamily:    "ARM",
    40            boardRevision:  null
    41        };
    42
    43    instance:
    44
    45        /*!
    46         *  ======== deviceName ========
    47         *  The CPU simulated by this platform.
    48         *
    49         *  This parameter is required.
    50         */
    51        config string deviceName = "TMS320CDM6446";
    52
    53        /*!
    54         *  ======== catalogName ========
    55         *  The name of the package that contains the module 'deviceName'.
    56         *
    57         *  This parameter is required.
    58         */
    59        config string catalogName = "ti.catalog.arm";
    60    }
    61    /*
    62     *  @(#) host.platforms.arm; 1, 0, 0, 0,126; 8-17-2012 22:13:02; /db/ztree/library/trees/platform/platform-n27x/src/
    63     */
    64


package iar.targets.msp430
index URL
XDCspec declarations sourced in iar/targets/msp430/package.xdc
package iar.targets.msp430 [1, 0, 0] {
    interface ITarget;
    // A IAR extension to the base xdc.bld.ITarget2 interface
    module MSP430;
    // IAR MSP430 little endian, small code model, small data model target
    module MSP430X_large;
    // IAR MSP430X little endian, large code model, large data model target
    module MSP430X_small;
    // IAR MSP430X little endian, large code model, small data model target
}
generated on Thu, 08 Nov 2012 02:14:06 GMT


package iar.targets.msp430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    package iar.targets.msp430 [1,0,0] {
    13        module MSP430, MSP430X_large, MSP430X_small;
    14        interface ITarget;
    15    }


interface iar.targets.msp430.ITarget

metaonly interface iar.targets.msp430.ITarget
index URL

A IAR extension to the base xdc.bld.ITarget2 interface

XDCspec summary sourced in iar/targets/msp430/ITarget.xdc
metaonly interface ITarget { ...
// inherits xdc.bld.ITarget2
    // inherits xdc.bld.ITarget
XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
package iar.targets.msp430;
metaonly interface ITarget inherits ITarget2 {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget.Command ar// The command used to create an archive = {
        cmd: "xar",
        opts: ""
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    readonly config ITarget.Module base// A target that this target is based upon;
    readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    override readonly config ITarget.Command lnk// The command used to link executables = {
        cmd: "xlink",
        opts: ""
    };
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    override readonly config String rts// Name of a run-time support package to include = "iar.targets.msp430.rts";
    readonly config String sectMap// Output section name to segment type mapping[string];
    readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 0,
            align: 0
        },
        t_Char: {
            size: 0,
            align: 0
        },
        t_Double: {
            size: 0,
            align: 0
        },
        t_Float: {
            size: 0,
            align: 0
        },
        t_Fxn: {
            size: 0,
            align: 0
        },
        t_Int: {
            size: 0,
            align: 0
        },
        t_Int8: {
            size: 0,
            align: 0
        },
        t_Int16: {
            size: 0,
            align: 0
        },
        t_Int32: {
            size: 0,
            align: 0
        },
        t_Int40: {
            size: 0,
            align: 0
        },
        t_Int64: {
            size: 0,
            align: 0
        },
        t_Long: {
            size: 0,
            align: 0
        },
        t_LDouble: {
            size: 0,
            align: 0
        },
        t_LLong: {
            size: 0,
            align: 0
        },
        t_Ptr: {
            size: 0,
            align: 0
        },
        t_Short: {
            size: 0,
            align: 0
        },
        t_Size: {
            size: 0,
            align: 0
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    readonly config ITarget.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "icc430",
        opts: "-v"
    };
    readonly config ITarget.Command xlib// The command used to modify a library = {
        cmd: "xlib",
        opts: "-c"
    };
    override config ITarget.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget.Options asmOpts// User configurable assembler options = {
        prefix: "-S",
        suffix: ""
    };
    config String binDir// = "$(rootDir)/bin/";
    config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget.Options ccOpts// User configurable compiler options = {
        prefix: "--silent",
        suffix: "--diag_suppress=Pa050,Go005"
    };
    config String cmdPrefix// Prefix to put in front of each command = "";
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    config ITarget.DebugGen debugGen// Debugger/IDE file generation support;
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// The IAR assembly file extension recognised by this target[string] = [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ],
        [
            ".s43",
            {
                suf: ".s43",
                typ: "asm"
            }
        ]
    ];
    override config String includeOpts// Additional user configurable target-specific include path options = "";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-S",
        suffix: "-xens -l $(XDCCFGDIR)/$@.map -rt -e_PrintfSmall=_Printf -e_ScanfSmall=_Scanf -s __program_start"
    };
    override config String platform// The default platform name for this target = "ti.platforms.msp430:MSP430F5438:1";
    config String platforms// A set of platforms that can support this target[] = [ ];
    config ITarget.OptionSet profiles// Profiles supported by this target[string] = [
        [
            "release",
            { }
        ],
        [
            "debug",
            { }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String stdInclude// Standard C/C++ types header = "iar/targets/msp430/std.h";
    config String version// The Compatibility Key associated with this target;
    config String versionMap// Map of compiler version numbers to compatibility keys[string] = [ ];
    config ITarget.Options xlibOpts// User configurable xlib options = {
        prefix: "",
        suffix: "\"MAKE-LIBRARY $@\""
    };
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef ITarget.StringArray
index URL
XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
typedef String StringArray[];
struct ITarget.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct ITarget.Command
index URL

Required command and options

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct ITarget.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ITarget.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct ITarget.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ITarget.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ITarget.Extension
index URL

File extension to file type association

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ITarget.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct ITarget.Model
index URL

Target runtime model

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ITarget.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ITarget.Options
index URL

User configurable command options

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct ITarget.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config ITarget.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override readonly config Bool alignDirectiveSupported = true;
config ITarget.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override readonly config ITarget.Command ar = {
    cmd: "xar",
    opts: ""
};
config ITarget.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config ITarget2.Command asm;
config ITarget.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ITarget.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ITarget.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config ITarget2.Command cc;
config ITarget.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ITarget.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override readonly config ITarget.Command lnk = {
    cmd: "xlink",
    opts: ""
};
config ITarget.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ITarget.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ITarget.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ITarget.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override readonly config String rts = "iar.targets.msp430.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ITarget.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config String sectMap[string];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ITarget.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 0,
        align: 0
    },
    t_Char: {
        size: 0,
        align: 0
    },
    t_Double: {
        size: 0,
        align: 0
    },
    t_Float: {
        size: 0,
        align: 0
    },
    t_Fxn: {
        size: 0,
        align: 0
    },
    t_Int: {
        size: 0,
        align: 0
    },
    t_Int8: {
        size: 0,
        align: 0
    },
    t_Int16: {
        size: 0,
        align: 0
    },
    t_Int32: {
        size: 0,
        align: 0
    },
    t_Int40: {
        size: 0,
        align: 0
    },
    t_Int64: {
        size: 0,
        align: 0
    },
    t_Long: {
        size: 0,
        align: 0
    },
    t_LDouble: {
        size: 0,
        align: 0
    },
    t_LLong: {
        size: 0,
        align: 0
    },
    t_Ptr: {
        size: 0,
        align: 0
    },
    t_Short: {
        size: 0,
        align: 0
    },
    t_Size: {
        size: 0,
        align: 0
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config ITarget.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ITarget.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config ITarget.Command vers = {
    cmd: "icc430",
    opts: "-v"
};
config ITarget.xlib // module-wide
index URL

The command used to modify a library

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
readonly config ITarget.Command xlib = {
    cmd: "xlib",
    opts: "-c"
};
DETAILS
Defaults:
-c
run command line
config ITarget.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override config ITarget.Options arOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override config ITarget.Options asmOpts = {
    prefix: "-S",
    suffix: ""
};
DETAILS
Defaults:
-S
Silent operation
config ITarget.binDir // module-wide
index URL
XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config String binDir = "$(rootDir)/bin/";
config ITarget.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config ITarget.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override config ITarget.Options ccOpts = {
    prefix: "--silent",
    suffix: "--diag_suppress=Pa050,Go005"
};
DETAILS
Defaults:
--silent
Silent operation
--diag_suppress
Pa050 complains about Unix EOL characters Go005 complains about function inlining
config ITarget.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config String cmdPrefix = "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config ITarget.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ITarget.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config ITarget.DebugGen debugGen;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config ITarget.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ITarget.extensions // module-wide
index URL

The IAR assembly file extension recognised by this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override config ITarget.Extension extensions[string] = [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ],
    [
        ".s43",
        {
            suf: ".s43",
            typ: "asm"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config ITarget.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override config String includeOpts = "";
config ITarget.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-S",
    suffix: "-xens -l $(XDCCFGDIR)/$@.map -rt -e_PrintfSmall=_Printf -e_ScanfSmall=_Scanf -s __program_start"
};
DETAILS
Defaults:
-S
Silent operation
-xens
Cross reference list generated in map file
-l
Generates a map file
-rt
Plugins in IAR debugger low level functions
-e
Redirects function call to another function at link time
-s
Program entry point
config ITarget.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override config String platform = "ti.platforms.msp430:MSP430F5438:1";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ITarget.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ITarget.profiles // module-wide
index URL

Profiles supported by this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config ITarget.OptionSet profiles[string] = [
    [
        "release",
        { }
    ],
    [
        "debug",
        { }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ITarget.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ITarget.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
override config String stdInclude = "iar/targets/msp430/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ITarget.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config String version;
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
config ITarget.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config String versionMap[string] = [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
config ITarget.xlibOpts // module-wide
index URL

User configurable xlib options

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
config ITarget.Options xlibOpts = {
    prefix: "",
    suffix: "\"MAKE-LIBRARY $@\""
};
DETAILS
Defaults:
MAKE-LIBRARY
changes a module to library type
ITarget.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ITarget.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
ITarget.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
ITarget.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ITarget.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in iar/targets/msp430/ITarget.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:05 GMT


interface iar.targets.msp430.ITarget

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ITarget ========
    14     *  A IAR extension to the base `xdc.bld.ITarget2` interface.
    15     */
    16    @TargetHeader("xdc/bld/stddefs.xdt")
    17    metaonly interface ITarget inherits xdc.bld.ITarget2 {
    18
    19        override readonly config String rts = "iar.targets.msp430.rts";
    20
    21        override config string stdInclude = "iar/targets/msp430/std.h";
    22
    23        override config String platform = "ti.platforms.msp430:MSP430F5438:1";
    24
    25        config string binDir = "$(rootDir)/bin/";
    26
    27        /*!
    28         *  ======== ccOpts ========
    29         *  User configurable compiler options.
    30         *
    31         *  Defaults:
    32         *  @p(dlist)
    33         *      -`--silent`
    34         *          Silent operation
    35         *      -`--diag_suppress`
    36         *          Pa050 complains about Unix EOL characters
    37         *          Go005 complains about function inlining
    38         *  @p
    39         */
    40        override config Options ccOpts = {
    41            prefix: "--silent",
    42            suffix: "--diag_suppress=Pa050,Go005"
    43        };
    44
    45        /*!
    46         *  ======== asmOpts ========
    47         *  User configurable assembler options.
    48         *
    49         *  Defaults:
    50         *  @p(dlist)
    51         *      -`-S`
    52         *          Silent operation
    53         *  @p
    54         */
    55        override config Options asmOpts = {
    56            prefix: "-S",
    57            suffix: ""
    58        };
    59
    60        /*!
    61         *  ======== ar ========
    62         *  The command used to create an archive
    63         */
    64        override readonly config Command ar = {
    65            cmd: "xar",
    66            opts: ""
    67        };
    68
    69        /*!
    70         *  ======== arOpts ========
    71         *  User configurable archiver options.
    72         */
    73        override config Options arOpts = {
    74            prefix: "",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== xlib ========
    80         *  The command used to modify a library
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-c`
    85         *        run command line
    86         *  @p
    87         */
    88        readonly config Command xlib = {
    89            cmd: "xlib",
    90            opts: "-c"
    91        };
    92
    93        /*!
    94         *  ======== xlibOpts ========
    95         *  User configurable xlib options.
    96         *
    97         *  Defaults:
    98         *  @p(dlist)
    99         *      -`MAKE-LIBRARY`
   100         *        changes a module to library type
   101         *  @p
   102         */
   103        config Options xlibOpts = {
   104            prefix: "",
   105            suffix: "\"MAKE-LIBRARY $@\""
   106        };
   107
   108        /*!
   109         *  ======== lnk ========
   110         *  The command used to link executables.
   111         */
   112        override readonly config Command lnk = {
   113            cmd: "xlink",
   114            opts: ""
   115        };
   116
   117        /*!
   118         *  ======== lnkOpts ========
   119         *  User configurable linker options.
   120         *
   121         *  Defaults:
   122         *  @p(dlist)
   123         *      -`-S`
   124         *          Silent operation
   125         *      -`-xens`
   126         *          Cross reference list generated in map file
   127         *      -`-l`
   128         *          Generates a map file
   129         *      -`-rt`
   130         *          Plugins in IAR debugger low level functions
   131         *      -`-e`
   132         *          Redirects function call to another function at link time
   133         *      -`-s`
   134         *          Program entry point
   135         *  @p
   136         */
   137        override config xdc.bld.ITarget2.Options lnkOpts = {
   138            prefix: "-S",
   139            suffix: "-xens -l $(XDCCFGDIR)/$@.map -rt -e_PrintfSmall=_Printf -e_ScanfSmall=_Scanf -s __program_start",
   140        };
   141
   142        /*!
   143         *  ======== vers ========
   144         *  The command used to get the tool-chain to return a version number.
   145         */
   146        readonly config Command vers = {
   147            cmd: "icc430",
   148            opts: "-v"
   149        };
   150
   151        /*!
   152         *  ======== extension ========
   153         *  The IAR assembly file extension recognised by this target.
   154         */
   155        override config Extension extensions[string] = [
   156            [".asm", {suf: ".asm", typ: "asm"}],
   157            [".c",   {suf: ".c",   typ: "c"  }],
   158            [".cpp", {suf: ".cpp", typ: "cpp"}],
   159            [".cxx", {suf: ".cxx", typ: "cpp"}],
   160            [".C",   {suf: ".C",   typ: "cpp"}],
   161            [".cc",  {suf: ".cc",  typ: "cpp"}],
   162            [".s43", {suf: ".s43", typ: "asm"}],
   163        ];
   164
   165        override config String includeOpts = "";
   166
   167        /*!
   168         *  ======== cmdPrefix ========
   169         *  Prefix to put in front of each command
   170         *
   171         *  This string is put in front of every Command before being passed to
   172         *  the shell for execution.  This string can be used to run the compiler
   173         *  in emulation environments.
   174         */
   175        config String cmdPrefix = "";
   176
   177        /*!
   178         *  ======== alignDirectiveSupported ========
   179         *  The compiler supports an align directive.
   180         */
   181        override readonly config Bool alignDirectiveSupported = true;
   182
   183    }


module iar.targets.msp430.MSP430

metaonly module iar.targets.msp430.MSP430
index URL

IAR MSP430 little endian, small code model, small data model target

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in iar/targets/msp430/MSP430.xdc
var MSP430 = xdc.useModule('iar.targets.msp430.MSP430');
module-wide constants & types
    var obj = new MSP430.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MSP430.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MSP430.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MSP430.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MSP430.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MSP430.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MSP430.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MSP430.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MSP430.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MSP430.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MSP430.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MSP430.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MSP430.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const MSP430.ar// The command used to create an archive = ITarget.Command {
        cmd: "xar",
        opts: ""
    };
    const MSP430.asm// The command used to assembles assembly source files into object files = MSP430.Command {
        cmd: "a430",
        opts: ""
    };
    const MSP430.base// A target that this target is based upon = ITarget.Module computed value;
    const MSP430.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MSP430.cc// The command used to compile C/C++ source files into object files = MSP430.Command {
        cmd: "icc430",
        opts: "-e --core=430 --data_model=small"
    };
    const MSP430.isa// CPU Instruction Set Architecture (ISA) = String "430";
    const MSP430.lnk// The command used to link executables = ITarget.Command {
        cmd: "xlink",
        opts: ""
    };
    const MSP430.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "small",
        dataModel: "small"
    };
    const MSP430.name// Nickname for this target = String "MSP430";
    const MSP430.os// Name of OS required to run programs built for this target = String computed value;
    const MSP430.rts// Name of a run-time support package to include = String "iar.targets.msp430.rts";
    const MSP430.sectMap// Output section name to segment type mapping = String[string] computed value;
    const MSP430.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 4,
            align: 2
        },
        t_Float: {
            size: 4,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 2,
            align: 2
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 4,
            align: 2
        },
        t_LDouble: {
            size: 4,
            align: 2
        },
        t_LLong: {
            size: 8,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const MSP430.suffix// Suffix appended to all objs, libraries, and executable = String "r430";
    const MSP430.vers// The command used to get the tool-chain to return a version number = ITarget.Command {
        cmd: "icc430",
        opts: "-v"
    };
    const MSP430.xlib// The command used to modify a library = ITarget.Command {
        cmd: "xlib",
        opts: "-c"
    };
     MSP430.arOpts// User configurable archiver options = ITarget.Options {
        prefix: "",
        suffix: ""
    };
     MSP430.asmOpts// User configurable assembler options = ITarget.Options {
        prefix: "-S",
        suffix: ""
    };
     MSP430.binDir// = String "$(rootDir)/bin/";
     MSP430.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MSP430.ccOpts// User configurable compiler options = ITarget.Options {
        prefix: "--silent",
        suffix: "--diag_suppress=Pa050,Go005"
    };
     MSP430.cmdPrefix// Prefix to put in front of each command = String "";
     MSP430.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     MSP430.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     MSP430.execExt// Extension for executables = String undefined;
     MSP430.extensions// The IAR assembly file extension recognised by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ],
        [
            ".s43",
            {
                suf: ".s43",
                typ: "asm"
            }
        ]
    ];
     MSP430.includeOpts// Additional user configurable target-specific include path options = String "";
     MSP430.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-S",
        suffix: "-xens -l $(XDCCFGDIR)/$@.map -rt -e_PrintfSmall=_Printf -e_ScanfSmall=_Scanf -s __program_start"
    };
     MSP430.platform// The default platform name for this target = String "ti.platforms.msp430:MSP430F5438:1";
     MSP430.platforms// A set of platforms that can support this target = String[] [ ];
     MSP430.profiles// Standard options profiles for the IAR MSP430 tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430fn.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430fn.r43"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430fn.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430fn.r43"
            }
        ],
        [
            "debug_full",
            {
                compileOpts: {
                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430ff.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430ff.r43"
            }
        ],
        [
            "release_full",
            {
                compileOpts: {
                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430ff.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430ff.r43"
            }
        ]
    ];
     MSP430.rootDir// Installation directory for this target's code generation tools = String undefined;
     MSP430.stdInclude// Standard C/C++ types header = String "iar/targets/msp430/std.h";
     MSP430.version// The Compatibility Key associated with this target = String undefined;
     MSP430.versionMap// Map of compiler version numbers to compatibility keys = String[string] [ ];
     MSP430.xlibOpts// User configurable xlib options = ITarget.Options {
        prefix: "",
        suffix: "\"MAKE-LIBRARY $@\""
    };
module-wide functions
     MSP430.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MSP430.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MSP430.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MSP430.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MSP430.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MSP430.getVersion// Get a target-specific Compatibility Key string() returns String
     MSP430.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MSP430.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct MSP430.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MSP430.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MSP430.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MSP430.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MSP430.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MSP430.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MSP430.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MSP430.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MSP430.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MSP430.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MSP430.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MSP430.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MSP430.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MSP430.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MSP430.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MSP430.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MSP430.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MSP430.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MSP430.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MSP430.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MSP430.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MSP430.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MSP430.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MSP430.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MSP430.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MSP430.alignDirectiveSupported = Bool true;
config MSP430.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MSP430.ar = ITarget.Command {
    cmd: "xar",
    opts: ""
};
config MSP430.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MSP430.asm = MSP430.Command {
    cmd: "a430",
    opts: ""
};
config MSP430.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MSP430.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MSP430.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MSP430.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MSP430.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MSP430.cc = MSP430.Command {
    cmd: "icc430",
    opts: "-e --core=430 --data_model=small"
};
DETAILS
Defaults:
-e
enable compiler extensions so it's possible to get segment start addresses in C, via:
              #pragma segment = "CSTACK"
              isrStack = __segment_begin("CSTACK");
---core=430 MSP430 architecture ---data_model Small data model for 430 core
config MSP430.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MSP430.isa = String "430";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MSP430.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MSP430.lnk = ITarget.Command {
    cmd: "xlink",
    opts: ""
};
config MSP430.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MSP430.model = ITarget.Model {
    endian: "little",
    codeModel: "small",
    dataModel: "small"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MSP430.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MSP430.name = String "MSP430";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MSP430.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MSP430.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MSP430.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MSP430.rts = String "iar.targets.msp430.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MSP430.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MSP430.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MSP430.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MSP430.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 4,
        align: 2
    },
    t_Float: {
        size: 4,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 2,
        align: 2
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 4,
        align: 2
    },
    t_LDouble: {
        size: 4,
        align: 2
    },
    t_LLong: {
        size: 8,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MSP430.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MSP430.suffix = String "r430";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MSP430.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const MSP430.vers = ITarget.Command {
    cmd: "icc430",
    opts: "-v"
};
config MSP430.xlib // module-wide
index URL

The command used to modify a library

XDCscript usage meta-domain
const MSP430.xlib = ITarget.Command {
    cmd: "xlib",
    opts: "-c"
};
DETAILS
Defaults:
-c
run command line
config MSP430.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MSP430.arOpts = ITarget.Options {
    prefix: "",
    suffix: ""
};
config MSP430.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MSP430.asmOpts = ITarget.Options {
    prefix: "-S",
    suffix: ""
};
DETAILS
Defaults:
-S
Silent operation
config MSP430.binDir // module-wide
index URL
XDCscript usage meta-domain
MSP430.binDir = String "$(rootDir)/bin/";
config MSP430.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MSP430.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MSP430.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MSP430.ccOpts = ITarget.Options {
    prefix: "--silent",
    suffix: "--diag_suppress=Pa050,Go005"
};
DETAILS
Defaults:
--silent
Silent operation
--diag_suppress
Pa050 complains about Unix EOL characters Go005 complains about function inlining
config MSP430.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCscript usage meta-domain
MSP430.cmdPrefix = String "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config MSP430.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MSP430.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MSP430.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
MSP430.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config MSP430.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MSP430.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MSP430.extensions // module-wide
index URL

The IAR assembly file extension recognised by this target

XDCscript usage meta-domain
MSP430.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ],
    [
        ".s43",
        {
            suf: ".s43",
            typ: "asm"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config MSP430.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MSP430.includeOpts = String "";
config MSP430.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MSP430.lnkOpts = ITarget2.Options {
    prefix: "-S",
    suffix: "-xens -l $(XDCCFGDIR)/$@.map -rt -e_PrintfSmall=_Printf -e_ScanfSmall=_Scanf -s __program_start"
};
DETAILS
Defaults:
-S
Silent operation
-xens
Cross reference list generated in map file
-l
Generates a map file
-rt
Plugins in IAR debugger low level functions
-e
Redirects function call to another function at link time
-s
Program entry point
config MSP430.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MSP430.platform = String "ti.platforms.msp430:MSP430F5438:1";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MSP430.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MSP430.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MSP430.profiles // module-wide
index URL

Standard options profiles for the IAR MSP430 tool-chain

XDCscript usage meta-domain
MSP430.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430fn.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430fn.r43"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430fn.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430fn.r43"
        }
    ],
    [
        "debug_full",
        {
            compileOpts: {
                copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430ff.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430ff.r43"
        }
    ],
    [
        "release_full",
        {
            compileOpts: {
                copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430ff.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430ff.r43"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MSP430.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MSP430.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MSP430.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
MSP430.stdInclude = String "iar/targets/msp430/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MSP430.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MSP430.version = String undefined;
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
config MSP430.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCscript usage meta-domain
MSP430.versionMap = String[string] [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
config MSP430.xlibOpts // module-wide
index URL

User configurable xlib options

XDCscript usage meta-domain
MSP430.xlibOpts = ITarget.Options {
    prefix: "",
    suffix: "\"MAKE-LIBRARY $@\""
};
DETAILS
Defaults:
MAKE-LIBRARY
changes a module to library type
MSP430.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MSP430.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MSP430.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MSP430.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MSP430.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MSP430.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MSP430.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MSP430.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MSP430.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MSP430.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MSP430.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MSP430.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MSP430.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MSP430.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MSP430.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:06 GMT


module iar.targets.msp430.MSP430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== MSP430 ========
    14     *  IAR MSP430 little endian, small code model, small data model target
    15     */
    16    metaonly module MSP430 inherits ITarget
    17    {
    18        override readonly config String name             = "MSP430";
    19        override readonly config String suffix           = "r430";
    20        override readonly config String isa              = "430";
    21        override readonly config xdc.bld.ITarget.Model model = {
    22            endian: "little",
    23            codeModel: "small",
    24            dataModel: "small"
    25        };
    26
    27        /*!
    28         *  ======== cc ========
    29         *  The command used to compile C/C++ source files into object files
    30         *
    31         *  Defaults:
    32         *  @p(dlist)
    33         *      -`-e`
    34         *          enable compiler extensions so it's possible to get segment
    35         *          start addresses in C, via:
    36         *          @p(code)
    37         *              #pragma segment = "CSTACK"
    38         *              isrStack = __segment_begin("CSTACK");
    39         *          @p
    40         *      -`--core=430`
    41         *          MSP430 architecture
    42         *      -`--data_model`
    43         *          Small data model for 430 core
    44         *  @p
    45         */
    46        override readonly config Command cc = {
    47            cmd: "icc430",
    48            opts: "-e --core=430 --data_model=small"
    49        };
    50
    51        /*!
    52         *  ======== asm ========
    53         *  The command used to assembles assembly source files into object files
    54         */
    55        override readonly config Command asm = {
    56            cmd: "a430",
    57            opts: ""
    58        };
    59
    60        /*!
    61         *  ======== profiles ========
    62         *  Standard options profiles for the IAR MSP430 tool-chain.
    63         */
    64        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    65            ["debug", {
    66                compileOpts: {
    67                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430fn.h",
    68                },
    69                linkOpts: "$(rootDir)/lib/dlib/dl430fn.r43",
    70            }],
    71            ["release", {
    72                compileOpts: {
    73                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430fn.h",
    74                },
    75                linkOpts: "$(rootDir)/lib/dlib/dl430fn.r43",
    76            }],
    77            ["debug_full", {
    78                compileOpts: {
    79                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430ff.h",
    80                },
    81                linkOpts: "$(rootDir)/lib/dlib/dl430ff.r43",
    82            }],
    83            ["release_full", {
    84                compileOpts: {
    85                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430ff.h",
    86                },
    87                linkOpts: "$(rootDir)/lib/dlib/dl430ff.r43",
    88            }],
    89        ];
    90
    91        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    92            t_IArg          : { size: 2, align: 2 },
    93            t_Char          : { size: 1, align: 1 },
    94            t_Double        : { size: 4, align: 2 },
    95            t_Float         : { size: 4, align: 2 },
    96            t_Fxn           : { size: 2, align: 2 },
    97            t_Int           : { size: 2, align: 2 },
    98            t_Int8          : { size: 1, align: 1 },
    99            t_Int16         : { size: 2, align: 2 },
   100            t_Int32         : { size: 4, align: 2 },
   101            t_Long          : { size: 4, align: 2 },
   102            t_LDouble       : { size: 4, align: 2 },
   103            t_LLong         : { size: 8, align: 2 },
   104            t_Ptr           : { size: 2, align: 2 },
   105            t_Short         : { size: 2, align: 2 },
   106            t_Size          : { size: 2, align: 2 },
   107        };
   108
   109    }


module iar.targets.msp430.MSP430X_large

metaonly module iar.targets.msp430.MSP430X_large
index URL

IAR MSP430X little endian, large code model, large data model target

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in iar/targets/msp430/MSP430X_large.xdc
var MSP430X_large = xdc.useModule('iar.targets.msp430.MSP430X_large');
module-wide constants & types
    var obj = new MSP430X_large.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MSP430X_large.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MSP430X_large.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MSP430X_large.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MSP430X_large.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MSP430X_large.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MSP430X_large.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MSP430X_large.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MSP430X_large.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MSP430X_large.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MSP430X_large.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MSP430X_large.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MSP430X_large.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const MSP430X_large.ar// The command used to create an archive = ITarget.Command {
        cmd: "xar",
        opts: ""
    };
    const MSP430X_large.asm// The command used to assembles assembly source files into object files = MSP430X_large.Command {
        cmd: "a430",
        opts: "-v1 -D__LARGE_DATA_MODEL__"
    };
    const MSP430X_large.base// A target that this target is based upon = ITarget.Module computed value;
    const MSP430X_large.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MSP430X_large.cc// The command used to compile C/C++ source files into object files = MSP430X_large.Command {
        cmd: "icc430",
        opts: "-e --core=430X --data_model=large"
    };
    const MSP430X_large.isa// CPU Instruction Set Architecture (ISA) = String "430X";
    const MSP430X_large.lnk// The command used to link executables = ITarget.Command {
        cmd: "xlink",
        opts: ""
    };
    const MSP430X_large.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "large",
        dataModel: "large"
    };
    const MSP430X_large.name// Nickname for this target = String "MSP430X_large";
    const MSP430X_large.os// Name of OS required to run programs built for this target = String computed value;
    const MSP430X_large.rts// Name of a run-time support package to include = String "iar.targets.msp430.rts";
    const MSP430X_large.sectMap// Output section name to segment type mapping = String[string] computed value;
    const MSP430X_large.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 4,
            align: 2
        },
        t_Float: {
            size: 4,
            align: 2
        },
        t_Fxn: {
            size: 4,
            align: 2
        },
        t_Int: {
            size: 2,
            align: 2
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 4,
            align: 2
        },
        t_LDouble: {
            size: 4,
            align: 2
        },
        t_LLong: {
            size: 8,
            align: 2
        },
        t_Ptr: {
            size: 4,
            align: 2
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 2
        }
    };
    const MSP430X_large.suffix// Suffix appended to all objs, libraries, and executable = String "r430XL";
    const MSP430X_large.vers// The command used to get the tool-chain to return a version number = ITarget.Command {
        cmd: "icc430",
        opts: "-v"
    };
    const MSP430X_large.xlib// The command used to modify a library = ITarget.Command {
        cmd: "xlib",
        opts: "-c"
    };
     MSP430X_large.arOpts// User configurable archiver options = ITarget.Options {
        prefix: "",
        suffix: ""
    };
     MSP430X_large.asmOpts// User configurable assembler options = ITarget.Options {
        prefix: "-S",
        suffix: ""
    };
     MSP430X_large.binDir// = String "$(rootDir)/bin/";
     MSP430X_large.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MSP430X_large.ccOpts// User configurable compiler options = ITarget.Options {
        prefix: "--silent",
        suffix: "--diag_suppress=Pa050,Go005"
    };
     MSP430X_large.cmdPrefix// Prefix to put in front of each command = String "";
     MSP430X_large.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     MSP430X_large.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     MSP430X_large.execExt// Extension for executables = String undefined;
     MSP430X_large.extensions// The IAR assembly file extension recognised by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ],
        [
            ".s43",
            {
                suf: ".s43",
                typ: "asm"
            }
        ]
    ];
     MSP430X_large.includeOpts// Additional user configurable target-specific include path options = String "";
     MSP430X_large.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-S",
        suffix: "-xens -l $(XDCCFGDIR)/$@.map -rt -e_PrintfSmall=_Printf -e_ScanfSmall=_Scanf -s __program_start"
    };
     MSP430X_large.platform// The default platform name for this target = String "ti.platforms.msp430:MSP430F5438:1";
     MSP430X_large.platforms// A set of platforms that can support this target = String[] [ ];
     MSP430X_large.profiles// Standard options profiles for the IAR MSP430 tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xlfn.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430xlfn.r43"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xlfn.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430xlfn.r43"
            }
        ],
        [
            "debug_full",
            {
                compileOpts: {
                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xlff.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430xlff.r43"
            }
        ],
        [
            "release_full",
            {
                compileOpts: {
                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xlff.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430xlff.r43"
            }
        ]
    ];
     MSP430X_large.rootDir// Installation directory for this target's code generation tools = String undefined;
     MSP430X_large.stdInclude// Standard C/C++ types header = String "iar/targets/msp430/std.h";
     MSP430X_large.version// The Compatibility Key associated with this target = String undefined;
     MSP430X_large.versionMap// Map of compiler version numbers to compatibility keys = String[string] [ ];
     MSP430X_large.xlibOpts// User configurable xlib options = ITarget.Options {
        prefix: "",
        suffix: "\"MAKE-LIBRARY $@\""
    };
module-wide functions
     MSP430X_large.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MSP430X_large.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X_large.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MSP430X_large.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MSP430X_large.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MSP430X_large.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X_large.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X_large.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MSP430X_large.getVersion// Get a target-specific Compatibility Key string() returns String
     MSP430X_large.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MSP430X_large.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X_large.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct MSP430X_large.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MSP430X_large.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MSP430X_large.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MSP430X_large.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MSP430X_large.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MSP430X_large.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MSP430X_large.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MSP430X_large.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MSP430X_large.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MSP430X_large.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MSP430X_large.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MSP430X_large.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MSP430X_large.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MSP430X_large.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MSP430X_large.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MSP430X_large.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MSP430X_large.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MSP430X_large.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MSP430X_large.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MSP430X_large.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MSP430X_large.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MSP430X_large.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MSP430X_large.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MSP430X_large.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MSP430X_large.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MSP430X_large.alignDirectiveSupported = Bool true;
config MSP430X_large.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MSP430X_large.ar = ITarget.Command {
    cmd: "xar",
    opts: ""
};
config MSP430X_large.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MSP430X_large.asm = MSP430X_large.Command {
    cmd: "a430",
    opts: "-v1 -D__LARGE_DATA_MODEL__"
};
DETAILS
Defaults:
-v1
MSP430X architecture
-D__LARGE_DATA_MODEL__
indicate that this is large model to assembly code; IAR does currently have any pre-defined macros for this purpose; we use this symbol because it is the same as that used by the TI compiler (so some degree of portability is possible).
config MSP430X_large.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MSP430X_large.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MSP430X_large.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MSP430X_large.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MSP430X_large.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MSP430X_large.cc = MSP430X_large.Command {
    cmd: "icc430",
    opts: "-e --core=430X --data_model=large"
};
DETAILS
Defaults:
-e
enable compiler extensions so it's possible to get segment start addresses in C, via:
              #pragma segment = "CSTACK"
              isrStack = __segment_begin("CSTACK");
---core=430X MSP430X architecture ---data_model Large data model for 430X core
config MSP430X_large.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MSP430X_large.isa = String "430X";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MSP430X_large.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MSP430X_large.lnk = ITarget.Command {
    cmd: "xlink",
    opts: ""
};
config MSP430X_large.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MSP430X_large.model = ITarget.Model {
    endian: "little",
    codeModel: "large",
    dataModel: "large"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MSP430X_large.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MSP430X_large.name = String "MSP430X_large";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MSP430X_large.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MSP430X_large.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MSP430X_large.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MSP430X_large.rts = String "iar.targets.msp430.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MSP430X_large.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MSP430X_large.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MSP430X_large.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MSP430X_large.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 4,
        align: 2
    },
    t_Float: {
        size: 4,
        align: 2
    },
    t_Fxn: {
        size: 4,
        align: 2
    },
    t_Int: {
        size: 2,
        align: 2
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 4,
        align: 2
    },
    t_LDouble: {
        size: 4,
        align: 2
    },
    t_LLong: {
        size: 8,
        align: 2
    },
    t_Ptr: {
        size: 4,
        align: 2
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MSP430X_large.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MSP430X_large.suffix = String "r430XL";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MSP430X_large.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const MSP430X_large.vers = ITarget.Command {
    cmd: "icc430",
    opts: "-v"
};
config MSP430X_large.xlib // module-wide
index URL

The command used to modify a library

XDCscript usage meta-domain
const MSP430X_large.xlib = ITarget.Command {
    cmd: "xlib",
    opts: "-c"
};
DETAILS
Defaults:
-c
run command line
config MSP430X_large.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MSP430X_large.arOpts = ITarget.Options {
    prefix: "",
    suffix: ""
};
config MSP430X_large.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MSP430X_large.asmOpts = ITarget.Options {
    prefix: "-S",
    suffix: ""
};
DETAILS
Defaults:
-S
Silent operation
config MSP430X_large.binDir // module-wide
index URL
XDCscript usage meta-domain
MSP430X_large.binDir = String "$(rootDir)/bin/";
config MSP430X_large.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MSP430X_large.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MSP430X_large.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MSP430X_large.ccOpts = ITarget.Options {
    prefix: "--silent",
    suffix: "--diag_suppress=Pa050,Go005"
};
DETAILS
Defaults:
--silent
Silent operation
--diag_suppress
Pa050 complains about Unix EOL characters Go005 complains about function inlining
config MSP430X_large.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCscript usage meta-domain
MSP430X_large.cmdPrefix = String "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config MSP430X_large.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MSP430X_large.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MSP430X_large.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
MSP430X_large.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config MSP430X_large.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MSP430X_large.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MSP430X_large.extensions // module-wide
index URL

The IAR assembly file extension recognised by this target

XDCscript usage meta-domain
MSP430X_large.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ],
    [
        ".s43",
        {
            suf: ".s43",
            typ: "asm"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config MSP430X_large.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MSP430X_large.includeOpts = String "";
config MSP430X_large.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MSP430X_large.lnkOpts = ITarget2.Options {
    prefix: "-S",
    suffix: "-xens -l $(XDCCFGDIR)/$@.map -rt -e_PrintfSmall=_Printf -e_ScanfSmall=_Scanf -s __program_start"
};
DETAILS
Defaults:
-S
Silent operation
-xens
Cross reference list generated in map file
-l
Generates a map file
-rt
Plugins in IAR debugger low level functions
-e
Redirects function call to another function at link time
-s
Program entry point
config MSP430X_large.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MSP430X_large.platform = String "ti.platforms.msp430:MSP430F5438:1";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MSP430X_large.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MSP430X_large.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MSP430X_large.profiles // module-wide
index URL

Standard options profiles for the IAR MSP430 tool-chain

XDCscript usage meta-domain
MSP430X_large.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xlfn.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430xlfn.r43"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xlfn.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430xlfn.r43"
        }
    ],
    [
        "debug_full",
        {
            compileOpts: {
                copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xlff.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430xlff.r43"
        }
    ],
    [
        "release_full",
        {
            compileOpts: {
                copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xlff.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430xlff.r43"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MSP430X_large.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MSP430X_large.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MSP430X_large.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
MSP430X_large.stdInclude = String "iar/targets/msp430/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MSP430X_large.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MSP430X_large.version = String undefined;
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
config MSP430X_large.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCscript usage meta-domain
MSP430X_large.versionMap = String[string] [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
config MSP430X_large.xlibOpts // module-wide
index URL

User configurable xlib options

XDCscript usage meta-domain
MSP430X_large.xlibOpts = ITarget.Options {
    prefix: "",
    suffix: "\"MAKE-LIBRARY $@\""
};
DETAILS
Defaults:
MAKE-LIBRARY
changes a module to library type
MSP430X_large.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MSP430X_large.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_large.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MSP430X_large.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_large.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X_large.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MSP430X_large.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MSP430X_large.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X_large.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MSP430X_large.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X_large.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MSP430X_large.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MSP430X_large.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MSP430X_large.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MSP430X_large.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MSP430X_large.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_large.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MSP430X_large.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_large.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MSP430X_large.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_large.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MSP430X_large.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_large.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X_large.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:06 GMT


module iar.targets.msp430.MSP430X_large

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== MSP430X_large ========
    14     *  IAR MSP430X little endian, large code model, large data model target.
    15     */
    16
    17    metaonly module MSP430X_large inherits ITarget
    18    {
    19        override readonly config String name             = "MSP430X_large";
    20        override readonly config String suffix           = "r430XL";
    21        override readonly config String isa              = "430X";
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "little",
    24            codeModel: "large",
    25            dataModel: "large"
    26        };
    27
    28        /*!
    29         *  ======== cc ========
    30         *  The command used to compile C/C++ source files into object files
    31         *
    32         *  Defaults:
    33         *  @p(dlist)
    34         *      -`-e`
    35         *          enable compiler extensions so it's possible to get segment
    36         *          start addresses in C, via:
    37         *          @p(code)
    38         *              #pragma segment = "CSTACK"
    39         *              isrStack = __segment_begin("CSTACK");
    40         *          @p
    41         *      -`--core=430X`
    42         *          MSP430X architecture
    43         *      -`--data_model`
    44         *          Large data model for 430X core
    45         *  @p
    46         */
    47        override readonly config Command cc = {
    48            cmd: "icc430",
    49            opts: "-e --core=430X --data_model=large"
    50        };
    51
    52        /*!
    53         *  ======== asm ========
    54         *  The command used to assembles assembly source files into object files
    55         *
    56         *  Defaults:
    57         *  @p(dlist)
    58         *      -`-v1`
    59         *          MSP430X architecture
    60         *      -`-D__LARGE_DATA_MODEL__`
    61         *          indicate that this is large model to assembly code; IAR does
    62         *          currently have any pre-defined macros for this purpose; we use
    63         *          this symbol because it is the same as that used by the TI
    64         *          compiler (so some degree of portability is possible).
    65         *  @p
    66         */
    67        override readonly config Command asm = {
    68            cmd: "a430",
    69            opts: "-v1 -D__LARGE_DATA_MODEL__"
    70        };
    71
    72        /*!
    73         *  ======== profiles ========
    74         *  Standard options profiles for the IAR MSP430 tool-chain.
    75         */
    76        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    77            ["debug", {
    78                compileOpts: {
    79                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xlfn.h",
    80                },
    81                linkOpts: "$(rootDir)/lib/dlib/dl430xlfn.r43",
    82            }],
    83            ["release", {
    84                compileOpts: {
    85                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xlfn.h",
    86                },
    87                linkOpts: "$(rootDir)/lib/dlib/dl430xlfn.r43",
    88            }],
    89            ["debug_full", {
    90                compileOpts: {
    91                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xlff.h",
    92                },
    93                linkOpts: "$(rootDir)/lib/dlib/dl430xlff.r43",
    94            }],
    95            ["release_full", {
    96                compileOpts: {
    97                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xlff.h",
    98                },
    99                linkOpts: "$(rootDir)/lib/dlib/dl430xlff.r43",
   100            }],
   101
   102        ];
   103
   104        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   105            t_IArg          : { size: 4, align: 2 },
   106            t_Char          : { size: 1, align: 1 },
   107            t_Double        : { size: 4, align: 2 },
   108            t_Float         : { size: 4, align: 2 },
   109            t_Fxn           : { size: 4, align: 2 },
   110            t_Int           : { size: 2, align: 2 },
   111            t_Int8          : { size: 1, align: 1 },
   112            t_Int16         : { size: 2, align: 2 },
   113            t_Int32         : { size: 4, align: 2 },
   114            t_Long          : { size: 4, align: 2 },
   115            t_LDouble       : { size: 4, align: 2 },
   116            t_LLong         : { size: 8, align: 2 },
   117            t_Ptr           : { size: 4, align: 2 },
   118            t_Short         : { size: 2, align: 2 },
   119            t_Size          : { size: 4, align: 2 },
   120        };
   121    }


module iar.targets.msp430.MSP430X_small

metaonly module iar.targets.msp430.MSP430X_small
index URL

IAR MSP430X little endian, large code model, small data model target

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in iar/targets/msp430/MSP430X_small.xdc
var MSP430X_small = xdc.useModule('iar.targets.msp430.MSP430X_small');
module-wide constants & types
    var obj = new MSP430X_small.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MSP430X_small.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MSP430X_small.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MSP430X_small.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MSP430X_small.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MSP430X_small.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MSP430X_small.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MSP430X_small.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MSP430X_small.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MSP430X_small.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MSP430X_small.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MSP430X_small.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MSP430X_small.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const MSP430X_small.ar// The command used to create an archive = ITarget.Command {
        cmd: "xar",
        opts: ""
    };
    const MSP430X_small.asm// The command used to assembles assembly source files into object files = MSP430X_small.Command {
        cmd: "a430",
        opts: "-v1 -D__SMALL_DATA_MODEL__"
    };
    const MSP430X_small.base// A target that this target is based upon = ITarget.Module computed value;
    const MSP430X_small.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MSP430X_small.cc// The command used to compile C/C++ source files into object files = MSP430X_small.Command {
        cmd: "icc430",
        opts: "-e --core=430X --data_model=small --save_reg20"
    };
    const MSP430X_small.isa// CPU Instruction Set Architecture (ISA) = String "430X";
    const MSP430X_small.lnk// The command used to link executables = ITarget.Command {
        cmd: "xlink",
        opts: ""
    };
    const MSP430X_small.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "large",
        dataModel: "small"
    };
    const MSP430X_small.name// Nickname for this target = String "MSP430X_small";
    const MSP430X_small.os// Name of OS required to run programs built for this target = String computed value;
    const MSP430X_small.rts// Name of a run-time support package to include = String "iar.targets.msp430.rts";
    const MSP430X_small.sectMap// Output section name to segment type mapping = String[string] computed value;
    const MSP430X_small.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 4,
            align: 2
        },
        t_Float: {
            size: 4,
            align: 2
        },
        t_Fxn: {
            size: 4,
            align: 2
        },
        t_Int: {
            size: 2,
            align: 2
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 4,
            align: 2
        },
        t_LDouble: {
            size: 4,
            align: 2
        },
        t_LLong: {
            size: 8,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const MSP430X_small.suffix// Suffix appended to all objs, libraries, and executable = String "r430XS";
    const MSP430X_small.vers// The command used to get the tool-chain to return a version number = ITarget.Command {
        cmd: "icc430",
        opts: "-v"
    };
    const MSP430X_small.xlib// The command used to modify a library = ITarget.Command {
        cmd: "xlib",
        opts: "-c"
    };
     MSP430X_small.arOpts// User configurable archiver options = ITarget.Options {
        prefix: "",
        suffix: ""
    };
     MSP430X_small.asmOpts// User configurable assembler options = ITarget.Options {
        prefix: "-S",
        suffix: ""
    };
     MSP430X_small.binDir// = String "$(rootDir)/bin/";
     MSP430X_small.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MSP430X_small.ccOpts// User configurable compiler options = ITarget.Options {
        prefix: "--silent",
        suffix: "--diag_suppress=Pa050,Go005"
    };
     MSP430X_small.cmdPrefix// Prefix to put in front of each command = String "";
     MSP430X_small.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     MSP430X_small.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     MSP430X_small.execExt// Extension for executables = String undefined;
     MSP430X_small.extensions// The IAR assembly file extension recognised by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ],
        [
            ".s43",
            {
                suf: ".s43",
                typ: "asm"
            }
        ]
    ];
     MSP430X_small.includeOpts// Additional user configurable target-specific include path options = String "";
     MSP430X_small.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-S",
        suffix: "-xens -l $(XDCCFGDIR)/$@.map -rt -e_PrintfSmall=_Printf -e_ScanfSmall=_Scanf -s __program_start"
    };
     MSP430X_small.platform// The default platform name for this target = String "ti.platforms.msp430:MSP430F5438:1";
     MSP430X_small.platforms// A set of platforms that can support this target = String[] [ ];
     MSP430X_small.profiles// Standard options profiles for the IAR MSP430 tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xsfn.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430xsfn.r43"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xsfn.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430xsfn.r43"
            }
        ],
        [
            "debug_full",
            {
                compileOpts: {
                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xsff.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430xsff.r43"
            }
        ],
        [
            "release_full",
            {
                compileOpts: {
                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xsff.h"
                },
                linkOpts: "$(rootDir)/lib/dlib/dl430xsff.r43"
            }
        ]
    ];
     MSP430X_small.rootDir// Installation directory for this target's code generation tools = String undefined;
     MSP430X_small.stdInclude// Standard C/C++ types header = String "iar/targets/msp430/std.h";
     MSP430X_small.version// The Compatibility Key associated with this target = String undefined;
     MSP430X_small.versionMap// Map of compiler version numbers to compatibility keys = String[string] [ ];
     MSP430X_small.xlibOpts// User configurable xlib options = ITarget.Options {
        prefix: "",
        suffix: "\"MAKE-LIBRARY $@\""
    };
module-wide functions
     MSP430X_small.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MSP430X_small.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MSP430X_small.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MSP430X_small.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X_small.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X_small.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MSP430X_small.getVersion// Get a target-specific Compatibility Key string() returns String
     MSP430X_small.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct MSP430X_small.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MSP430X_small.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MSP430X_small.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MSP430X_small.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MSP430X_small.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MSP430X_small.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MSP430X_small.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MSP430X_small.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MSP430X_small.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MSP430X_small.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MSP430X_small.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MSP430X_small.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MSP430X_small.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MSP430X_small.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MSP430X_small.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MSP430X_small.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MSP430X_small.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MSP430X_small.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MSP430X_small.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MSP430X_small.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MSP430X_small.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MSP430X_small.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MSP430X_small.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MSP430X_small.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MSP430X_small.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MSP430X_small.alignDirectiveSupported = Bool true;
config MSP430X_small.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MSP430X_small.ar = ITarget.Command {
    cmd: "xar",
    opts: ""
};
config MSP430X_small.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MSP430X_small.asm = MSP430X_small.Command {
    cmd: "a430",
    opts: "-v1 -D__SMALL_DATA_MODEL__"
};
DETAILS
Defaults:
-v1
MSP430X architecture
-D__SMALL_DATA_MODEL__
indicate that this is small model to assembly code; IAR does currently have any pre-defined macros for this purpose; we use this symbol because it is the same as that used by the TI compiler (so some degree of portability is possible).
config MSP430X_small.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MSP430X_small.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MSP430X_small.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MSP430X_small.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MSP430X_small.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MSP430X_small.cc = MSP430X_small.Command {
    cmd: "icc430",
    opts: "-e --core=430X --data_model=small --save_reg20"
};
DETAILS
Defaults:
-e
enable compiler extensions so it's possible to get segment start addresses in C, via:
              #pragma segment = "CSTACK"
              isrStack = __segment_begin("CSTACK");
---core=430X MSP430X architecture ---data_model Small data model for MSP430X architecture ---save_reg20 All 20 bits of registers are preserved in all interrupt functions
config MSP430X_small.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MSP430X_small.isa = String "430X";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MSP430X_small.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MSP430X_small.lnk = ITarget.Command {
    cmd: "xlink",
    opts: ""
};
config MSP430X_small.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MSP430X_small.model = ITarget.Model {
    endian: "little",
    codeModel: "large",
    dataModel: "small"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MSP430X_small.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MSP430X_small.name = String "MSP430X_small";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MSP430X_small.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MSP430X_small.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MSP430X_small.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MSP430X_small.rts = String "iar.targets.msp430.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MSP430X_small.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MSP430X_small.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MSP430X_small.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MSP430X_small.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 4,
        align: 2
    },
    t_Float: {
        size: 4,
        align: 2
    },
    t_Fxn: {
        size: 4,
        align: 2
    },
    t_Int: {
        size: 2,
        align: 2
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 4,
        align: 2
    },
    t_LDouble: {
        size: 4,
        align: 2
    },
    t_LLong: {
        size: 8,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MSP430X_small.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MSP430X_small.suffix = String "r430XS";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MSP430X_small.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const MSP430X_small.vers = ITarget.Command {
    cmd: "icc430",
    opts: "-v"
};
config MSP430X_small.xlib // module-wide
index URL

The command used to modify a library

XDCscript usage meta-domain
const MSP430X_small.xlib = ITarget.Command {
    cmd: "xlib",
    opts: "-c"
};
DETAILS
Defaults:
-c
run command line
config MSP430X_small.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MSP430X_small.arOpts = ITarget.Options {
    prefix: "",
    suffix: ""
};
config MSP430X_small.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MSP430X_small.asmOpts = ITarget.Options {
    prefix: "-S",
    suffix: ""
};
DETAILS
Defaults:
-S
Silent operation
config MSP430X_small.binDir // module-wide
index URL
XDCscript usage meta-domain
MSP430X_small.binDir = String "$(rootDir)/bin/";
config MSP430X_small.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MSP430X_small.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MSP430X_small.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MSP430X_small.ccOpts = ITarget.Options {
    prefix: "--silent",
    suffix: "--diag_suppress=Pa050,Go005"
};
DETAILS
Defaults:
--silent
Silent operation
--diag_suppress
Pa050 complains about Unix EOL characters Go005 complains about function inlining
config MSP430X_small.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCscript usage meta-domain
MSP430X_small.cmdPrefix = String "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config MSP430X_small.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MSP430X_small.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MSP430X_small.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
MSP430X_small.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config MSP430X_small.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MSP430X_small.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MSP430X_small.extensions // module-wide
index URL

The IAR assembly file extension recognised by this target

XDCscript usage meta-domain
MSP430X_small.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ],
    [
        ".s43",
        {
            suf: ".s43",
            typ: "asm"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config MSP430X_small.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MSP430X_small.includeOpts = String "";
config MSP430X_small.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MSP430X_small.lnkOpts = ITarget2.Options {
    prefix: "-S",
    suffix: "-xens -l $(XDCCFGDIR)/$@.map -rt -e_PrintfSmall=_Printf -e_ScanfSmall=_Scanf -s __program_start"
};
DETAILS
Defaults:
-S
Silent operation
-xens
Cross reference list generated in map file
-l
Generates a map file
-rt
Plugins in IAR debugger low level functions
-e
Redirects function call to another function at link time
-s
Program entry point
config MSP430X_small.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MSP430X_small.platform = String "ti.platforms.msp430:MSP430F5438:1";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MSP430X_small.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MSP430X_small.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MSP430X_small.profiles // module-wide
index URL

Standard options profiles for the IAR MSP430 tool-chain

XDCscript usage meta-domain
MSP430X_small.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xsfn.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430xsfn.r43"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xsfn.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430xsfn.r43"
        }
    ],
    [
        "debug_full",
        {
            compileOpts: {
                copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xsff.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430xsff.r43"
        }
    ],
    [
        "release_full",
        {
            compileOpts: {
                copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xsff.h"
            },
            linkOpts: "$(rootDir)/lib/dlib/dl430xsff.r43"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MSP430X_small.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MSP430X_small.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MSP430X_small.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
MSP430X_small.stdInclude = String "iar/targets/msp430/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MSP430X_small.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MSP430X_small.version = String undefined;
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
config MSP430X_small.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCscript usage meta-domain
MSP430X_small.versionMap = String[string] [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
config MSP430X_small.xlibOpts // module-wide
index URL

User configurable xlib options

XDCscript usage meta-domain
MSP430X_small.xlibOpts = ITarget.Options {
    prefix: "",
    suffix: "\"MAKE-LIBRARY $@\""
};
DETAILS
Defaults:
MAKE-LIBRARY
changes a module to library type
MSP430X_small.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MSP430X_small.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MSP430X_small.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X_small.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MSP430X_small.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MSP430X_small.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X_small.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MSP430X_small.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X_small.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MSP430X_small.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MSP430X_small.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MSP430X_small.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MSP430X_small.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MSP430X_small.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MSP430X_small.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MSP430X_small.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MSP430X_small.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X_small.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:06 GMT


module iar.targets.msp430.MSP430X_small

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== MSP430X_small ========
    14     *  IAR MSP430X little endian, large code model, small data model target.
    15     */
    16
    17    metaonly module MSP430X_small inherits ITarget
    18    {
    19        override readonly config String name             = "MSP430X_small";
    20        override readonly config String suffix           = "r430XS";
    21        override readonly config String isa              = "430X";
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "little",
    24            codeModel: "large",
    25            dataModel: "small"
    26        };
    27
    28        /*!
    29         *  ======== cc ========
    30         *  The command used to compile C/C++ source files into object files
    31         *
    32         *  Defaults:
    33         *  @p(dlist)
    34         *      -`-e`
    35         *          enable compiler extensions so it's possible to get segment
    36         *          start addresses in C, via:
    37         *          @p(code)
    38         *              #pragma segment = "CSTACK"
    39         *              isrStack = __segment_begin("CSTACK");
    40         *          @p
    41         *      -`--core=430X`
    42         *          MSP430X architecture
    43         *      -`--data_model`
    44         *          Small data model for MSP430X architecture
    45         *      -`--save_reg20`
    46         *          All 20 bits of registers are preserved in all interrupt functions
    47         *  @p
    48         */
    49        override readonly config Command cc = {
    50            cmd: "icc430",
    51            opts: "-e --core=430X --data_model=small --save_reg20"
    52        };
    53
    54        /*!
    55         *  ======== asm ========
    56         *  The command used to assembles assembly source files into object files
    57         *
    58         *  Defaults:
    59         *  @p(dlist)
    60         *      -`-v1`
    61         *          MSP430X architecture
    62         *      -`-D__SMALL_DATA_MODEL__`
    63         *          indicate that this is small model to assembly code; IAR does
    64         *          currently have any pre-defined macros for this purpose; we use
    65         *          this symbol because it is the same as that used by the TI
    66         *          compiler (so some degree of portability is possible).
    67         *  @p
    68         */
    69        override readonly config Command asm = {
    70            cmd: "a430",
    71            opts: "-v1 -D__SMALL_DATA_MODEL__"
    72        };
    73
    74        /*!
    75         *  ======== profiles ========
    76         *  Standard options profiles for the IAR MSP430 tool-chain.
    77         */
    78        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    79            ["debug", {
    80                compileOpts: {
    81                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xsfn.h",
    82                },
    83                linkOpts: "$(rootDir)/lib/dlib/dl430xsfn.r43",
    84            }],
    85            ["release", {
    86                compileOpts: {
    87                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xsfn.h",
    88                },
    89                linkOpts: "$(rootDir)/lib/dlib/dl430xsfn.r43",
    90            }],
    91            ["debug_full", {
    92                compileOpts: {
    93                    copts: "-r --dlib_config $(rootDir)/lib/dlib/dl430xsff.h",
    94                },
    95                linkOpts: "$(rootDir)/lib/dlib/dl430xsff.r43",
    96            }],
    97            ["release_full", {
    98                compileOpts: {
    99                    copts: "-Om --dlib_config $(rootDir)/lib/dlib/dl430xsff.h",
   100                },
   101                linkOpts: "$(rootDir)/lib/dlib/dl430xsff.r43",
   102            }],
   103        ];
   104
   105        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   106            t_IArg          : { size: 4, align: 2 },
   107            t_Char          : { size: 1, align: 1 },
   108            t_Double        : { size: 4, align: 2 },
   109            t_Float         : { size: 4, align: 2 },
   110            t_Fxn           : { size: 4, align: 2 },
   111            t_Int           : { size: 2, align: 2 },
   112            t_Int8          : { size: 1, align: 1 },
   113            t_Int16         : { size: 2, align: 2 },
   114            t_Int32         : { size: 4, align: 2 },
   115            t_Long          : { size: 4, align: 2 },
   116            t_LDouble       : { size: 4, align: 2 },
   117            t_LLong         : { size: 8, align: 2 },
   118            t_Ptr           : { size: 2, align: 2 },
   119            t_Short         : { size: 2, align: 2 },
   120            t_Size          : { size: 2, align: 2 },
   121        };
   122    }


package iar.targets.msp430.rts
index URL
XDCspec declarations sourced in iar/targets/msp430/rts/package.xdc
package iar.targets.msp430.rts {
}
generated on Thu, 08 Nov 2012 02:14:04 GMT


package iar.targets.msp430.rts

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    package iar.targets.msp430.rts {
    14    }


package microsoft.targets
index URL

Targets that wrap Microsoft code generation tools

XDCspec declarations sourced in microsoft/targets/package.xdc
package microsoft.targets [1, 0, 2, 0] {
    interface ITarget;
    // A Microsoft-specific extension to the base xdc.bld.ITarget2 interface
    module Net32;
    // Microsoft .Net 32-bit native target
    module VC98;
    // Microsoft Windows 32-bit target using the Visual C/C++ 6.x compiler
    module Win32;
    // Microsoft Windows 32-bit target using the Visual C/C++ compiler
}
generated on Thu, 08 Nov 2012 02:14:03 GMT


package microsoft.targets

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== microsoft.targets ========
    14     *  Targets that wrap Microsoft code generation tools.
    15     */
    16    package microsoft.targets [1,0,2,0] {
    17        module VC98;
    18        module Win32;
    19        module Net32;
    20        interface ITarget;
    21    }
    22    /*
    23     *  @(#) microsoft.targets; 1, 0, 2, 0,609; 11-4-2012 21:21:19; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    24
    25     */
    26


interface microsoft.targets.ITarget

metaonly interface microsoft.targets.ITarget
index URL

A Microsoft-specific extension to the base xdc.bld.ITarget2 interface

XDCspec summary sourced in microsoft/targets/ITarget.xdc
metaonly interface ITarget { ...
// inherits xdc.bld.ITarget2
    // inherits xdc.bld.ITarget
XDCspec declarations sourced in microsoft/targets/ITarget.xdc
package microsoft.targets;
metaonly interface ITarget inherits ITarget2 {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    readonly config Bool alignDirectiveSupported// The compiler supports an align directive = false;
    readonly config ITarget2.Command ar// The command used to create an archive;
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    readonly config ITarget.Module base// A target that this target is based upon;
    readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    readonly config ITarget2.Command lnk// The command used to link executables;
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    readonly config String sectMap// Output section name to segment type mapping[string];
    override readonly config String stdInclude// Standard C/C++ types header = "microsoft/targets/std.h";
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
    config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "",
        suffix: ""
    };
    config String cmdPrefix// Prefix to put in front of each command = "";
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// Debugger/IDE project file generation support = {
        execTemplate: "microsoft/targets/vc_exec.xdt",
        execPattern: "$(cfgName).vcproj"
    };
    config String execExt// Extension for executables;
    config ITarget.Extension extensions// File extensions recognized by this target[string] = [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
    config String includeOpts// Additional user configurable target-specific include path options;
    config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "",
        suffix: ""
    };
    config String platform// The default platform name for this target;
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the microsoft tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-Z7 -Odi -MTd",
                    defs: "-D_DEBUG=1"
                },
                linkOpts: "-debug msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -MT",
                    defs: ""
                },
                linkOpts: "msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    config Bool strictANSI// Disable Microsoft C/C++ language extensions = true;
    override config String version// The Compatibility Key associated with this target;
    config String versionMap// Map of compiler version numbers to compatibility keys[string] = [ ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
     function setPath// Return path needed to find necessary DLLS();
}
typedef ITarget.StringArray
index URL
XDCspec declarations sourced in microsoft/targets/ITarget.xdc
typedef String StringArray[];
struct ITarget.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct ITarget.Command
index URL

Required command and options

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct ITarget.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ITarget.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct ITarget.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ITarget.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ITarget.Extension
index URL

File extension to file type association

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ITarget.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct ITarget.Model
index URL

Target runtime model

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ITarget.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ITarget.Options
index URL

User configurable command options

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct ITarget.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config ITarget.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config Bool alignDirectiveSupported = false;
config ITarget.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config ITarget2.Command ar;
config ITarget.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config ITarget2.Command asm;
config ITarget.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ITarget.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ITarget.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config ITarget2.Command cc;
config ITarget.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ITarget.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config ITarget2.Command lnk;
config ITarget.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ITarget.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ITarget.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ITarget.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ITarget.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config String sectMap[string];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ITarget.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
override readonly config String stdInclude = "microsoft/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ITarget.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ITarget.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config ITarget2.Options asmOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config ITarget.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config ITarget2.Options ccOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config String cmdPrefix = "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config ITarget.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ITarget.debugGen // module-wide
index URL

Debugger/IDE project file generation support

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "microsoft/targets/vc_exec.xdt",
    execPattern: "$(cfgName).vcproj"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate VC project files that enable one to debug (and even rebuild) Executables from within the VC GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
To debug an executable: double click on the generated *.vcproj file, when the debugger comes up, type F11 (step into).
The first time you debug an executable, the VC debugger may prompt you for a "solution file" to save. Click OK (accepting the solution file name), and you will be at the first statement of your executable.
To set command line arguments prior to debugging: open the executable's "Project Properties" dialog (select the executable in the "Solution Explorer" window and pull-down View->"Property Pages" or type shift-F4), select "Debugging" in the left-most pane of the executable's "Property Pages", and enter command line arguments in the "Command Arguments" text box.
SEE
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/vxtskdebugginganexecreatedwithoutvisualstudioproject.asp
config ITarget.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ITarget.extensions // module-wide
index URL

File extensions recognized by this target

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config ITarget.Extension extensions[string] = [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config ITarget.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config String includeOpts;
config ITarget.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config ITarget2.Options lnkOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config String platform;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ITarget.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ITarget.profiles // module-wide
index URL

Standard options profiles for the microsoft tool-chain

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "-Z7 -Odi -MTd",
                defs: "-D_DEBUG=1"
            },
            linkOpts: "-debug msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -MT",
                defs: ""
            },
            linkOpts: "msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ITarget.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ITarget.strictANSI // module-wide
index URL

Disable Microsoft C/C++ language extensions

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config Bool strictANSI = true;
DETAILS
Set to true if you plan to port your program to other environments. The compiler treats extended keywords as simple identifiers, disables the other Microsoft extensions, and automatically defines the __STDC__ predefined macro for C programs. This option shows up as "-Za" on the command line when strictANSI is set to true.
config ITarget.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the build number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the Visual C++ 2005 Express Edition, the output of the command cl may contains the compiler version string 14.00.50727.42. The Compatibility Key is [1,0,14.00,50727].
config ITarget.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
config String versionMap[string] = [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
ITarget.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ITarget.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
ITarget.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
ITarget.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ITarget.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
ITarget.setPath() // module-wide
index URL

Return path needed to find necessary DLLS

XDCspec declarations sourced in microsoft/targets/ITarget.xdc
function setPath();
DETAILS
The microsoft compilers often require one or more directories to be in the PATH; this allows the compiler to find necessary DLLs. A target implementing this function returns a string with path components separated by ";".
generated on Thu, 08 Nov 2012 02:14:02 GMT


interface microsoft.targets.ITarget

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== ITarget.xdc ========
    14     */
    15    package microsoft.targets;
    16
    17    /*!
    18     *  ======== ITarget ========
    19     *  A Microsoft-specific extension to the base xdc.bld.ITarget2 interface.
    20     */
    21    @TargetHeader("xdc/bld/stddefs.xdt")
    22    metaonly interface ITarget inherits xdc.bld.ITarget2 {
    23
    24        override readonly config string stdInclude = "microsoft/targets/std.h";
    25        override config string dllExt     = ".dll";
    26
    27        /*!
    28         *  ======== debugGen ========
    29         *  Debugger/IDE project file generation support.
    30         *
    31         *  The settings below generate VC project files that enable one
    32         *  to debug (and even rebuild) Executables from within the VC GUI.
    33         *
    34         *  To avoid unnecessary build time overhead, these files are not always
    35         *  generated; by default, they are only generated for "debug" profiles.
    36         *  The generation of these files is controlled by the
    37         *  `{@link xdc.cfg.Program#gen}` configuration parameter.  To force these
    38         *  files to be generated for a particular executable, add the following
    39         *  line to the executable's program configuration script:
    40         *  @p(code)
    41         *      Program.gen.debuggerFiles = true;
    42         *  @p
    43         *  It is also possible to control the generation via build options; see
    44         *  `{@link xdc.bld.ITarget#DebugGen}`.
    45         *
    46         *  To debug an executable: double click on the generated *.vcproj file,
    47         *      when the debugger comes up, type F11 (step into).
    48         *
    49         *  The first time you debug an executable, the VC debugger may prompt
    50         *  you for a "solution file" to save.  Click OK (accepting the solution
    51         *  file name), and you will be at the first statement of your
    52         *  executable.
    53         *
    54         *  To set command line arguments prior to debugging: open the
    55         *  executable's "Project Properties" dialog (select the
    56         *  executable in the "Solution Explorer" window and pull-down
    57         *  View->"Property Pages" or type shift-F4), select "Debugging"
    58         *  in the left-most pane of the executable's "Property Pages", and
    59         *  enter command line arguments in the "Command Arguments" text box.
    60         *
    61         *  @see  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/vxtskdebugginganexecreatedwithoutvisualstudioproject.asp
    62         */
    63        override config xdc.bld.ITarget.DebugGen debugGen = {
    64            execTemplate: "microsoft/targets/vc_exec.xdt",
    65            execPattern: "$(cfgName).vcproj"
    66        };
    67
    68        /*!
    69         *  ======== profiles ========
    70         *  Standard options profiles for the microsoft tool-chain.
    71         */
    72        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    73            ["debug", {
    74                compileOpts: {
    75                    copts: "-Z7 -Odi -MTd",
    76                    defs:  "-D_DEBUG=1",
    77                },
    78                linkOpts: "-debug msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib",
    79            }],
    80
    81            ["release", {
    82                compileOpts: {
    83                    copts: "-O2 -MT",
    84                    defs:  "",
    85                },
    86                linkOpts: "msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib",
    87            }],
    88        ];
    89
    90        /*!
    91         *  ======== setPath ========
    92         *  Return path needed to find necessary DLLS
    93         *
    94         *  The microsoft compilers often require one or more directories to
    95         *  be in the PATH; this allows the compiler to find necessary DLLs.
    96         *  A target implementing this function returns a string with path
    97         *  components separated by ";".
    98         */
    99        function setPath();
   100
   101        /*!
   102         *  ======== cmdPrefix ========
   103         *  Prefix to put in front of each command
   104         *
   105         *  This string is put in front of every Command before being passed to
   106         *  the shell for execution.  This string can be used to run the compiler
   107         *  in emulation environments.
   108         */
   109        config String cmdPrefix = "";
   110
   111        /*!
   112         *  ======== strictANSI ========
   113         *  Disable Microsoft C/C++ language extensions
   114         *
   115         *  Set to true if you plan to port your program to other environments.
   116         *  The compiler treats extended keywords as simple identifiers, disables
   117         *  the other Microsoft extensions, and automatically defines the
   118         *  `__STDC__` predefined macro for C programs. This option shows up
   119         *  as `"-Za"` on the command line when strictANSI is set to `true`.
   120         */
   121        config bool strictANSI = true;
   122
   123        /*!
   124         *  ======== version ========
   125         *  The Compatibility Key associated with this target.
   126         *
   127         *  The first two components of this target Compatibility Key are '1,0'.
   128         *  The rest of the Key represents the compiler version. The third
   129         *  component combines the major and the minor version number in the format
   130         *  Major.Minor. The fourth component is the build number.
   131         *
   132         *  @a(Example)
   133         *  If this target's `rootDir` points to the Visual C++ 2005 Express
   134         *  Edition, the output of the command `cl` may contains the compiler
   135         *  version string 14.00.50727.42. The Compatibility Key is
   136         *  [1,0,14.00,50727].
   137         *
   138         */
   139        override metaonly config String version;
   140
   141        /*!
   142         *  ======== stdTypes ========
   143         *  @_nodoc
   144         */
   145        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   146            t_IArg          : { size: 4, align: 1 },
   147            t_Char          : { size: 1, align: 1 },
   148            t_Double        : { size: 8, align: 1 },
   149            t_Float         : { size: 4, align: 1 },
   150            t_Fxn           : { size: 4, align: 1 },
   151            t_Int           : { size: 4, align: 1 },
   152            t_Int8          : { size: 1, align: 1 },
   153            t_Int16         : { size: 2, align: 1 },
   154            t_Int32         : { size: 4, align: 1 },
   155            t_Int64         : { size: 8, align: 1 },
   156            t_Long          : { size: 4, align: 1 },
   157            t_LDouble       : { size: 8, align: 1 },
   158            t_Ptr           : { size: 4, align: 1 },
   159            t_Short         : { size: 2, align: 1 },
   160            t_Size      : { size: 4, align: 1 },
   161        };
   162    }
   163    /*
   164     *  @(#) microsoft.targets; 1, 0, 2, 0,609; 11-4-2012 21:21:18; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   165
   166     */
   167


module microsoft.targets.Net32

metaonly module microsoft.targets.Net32
index URL

Microsoft .Net 32-bit native target

  • XDCscript usage
  • Individual elements
This target supports the free Microsoft .Net C/C++ compiler; aka the Microsoft Visual C++ Toolkit 2003 available from http://msdn.microsoft.com/visualc/vctoolkit2003.
XDCscript usage meta-domain sourced in microsoft/targets/Net32.xdc
var Net32 = xdc.useModule('microsoft.targets.Net32');
module-wide constants & types
    var obj = new Net32.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Net32.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Net32.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Net32.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Net32.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Net32.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Net32.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Net32.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Net32.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Net32.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Net32.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Net32.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Net32.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const Net32.ar// The archiver command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/bin/link.exe -lib -nologo",
        opts: ""
    };
    const Net32.asm// The assemble command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/bin/cl",
        opts: "-nologo -c"
    };
    const Net32.base// A target that this target is based upon = ITarget.Module computed value;
    const Net32.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Net32.cc// The compile command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/bin/cl",
        opts: "-nologo -c"
    };
    const Net32.isa// CPU Instruction Set Architecture (ISA) = String "x86";
    const Net32.lnk// The linker command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/bin/link -nologo",
        opts: ""
    };
    const Net32.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const Net32.name// Nickname for this target = String "Net32";
    const Net32.os// Name of OS required to run programs built for this target = String "Windows";
    const Net32.rts// Name of a run-time support package to include = String "microsoft.targets.rts";
    const Net32.sectMap// Output section name to segment type mapping = String[string] computed value;
    const Net32.stdInclude// Standard C/C++ types header = String "microsoft/targets/std.h";
    const Net32.suffix// Suffix appended to all objs, libraries, and executable = String "86N";
     Net32.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Net32.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Net32.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     Net32.ccOpts// User modifiable default options = ITarget2.Options {
        prefix: "-G5 -W3"
    };
     Net32.cmdPrefix// Prefix to put in front of each command = String "";
     Net32.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     Net32.debugGen// Debugger/IDE project file generation support = ITarget.DebugGen {
        execTemplate: "microsoft/targets/vc_exec.xdt",
        execPattern: "$(cfgName).vcproj"
    };
     Net32.execExt// Extension for executables = String ".exe";
     Net32.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     Net32.includeOpts// User modifiable default include directories = String "-I$(rootDir)/include";
     Net32.lnkOpts// User modifiable linker options = ITarget2.Options {
        prefix: "-libpath:$(rootDir)/lib",
        suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -mapinfo:exports -machine:ix86 -nodefaultlib -incremental:no"
    };
     Net32.platform// The default platform name for this target = String "host.platforms.PC";
     Net32.platforms// A set of platforms that can support this target = String[] [ ];
     Net32.profiles// User modifiable default profiles = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-Z7 -Od -MTd",
                    defs: "-D_DEBUG=1"
                },
                linkOpts: "libcmt.lib kernel32.lib"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-Oxi -MT"
                },
                linkOpts: "libcmt.lib kernel32.lib"
            }
        ]
    ];
     Net32.rootDir// Installation directory for this target's code generation tools = String undefined;
     Net32.strictANSI// Disable Microsoft C/C++ language extensions = Bool true;
     Net32.version// The Compatibility Key associated with this target = String undefined;
     Net32.versionMap// Map of compiler version numbers to compatibility keys = String[string] [ ];
module-wide functions
     Net32.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Net32.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Net32.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Net32.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Net32.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Net32.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Net32.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Net32.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Net32.getVersion// Get a target-specific Compatibility Key string() returns String
     Net32.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Net32.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Net32.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
     Net32.setPath// Return path needed to find necessary DLLS() returns Any
struct Net32.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Net32.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Net32.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Net32.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Net32.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Net32.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Net32.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Net32.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Net32.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Net32.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Net32.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Net32.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Net32.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Net32.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Net32.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Net32.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Net32.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Net32.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Net32.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Net32.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Net32.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Net32.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Net32.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Net32.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Net32.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Net32.alignDirectiveSupported = Bool false;
config Net32.ar // module-wide
index URL

The archiver command and all required options

XDCscript usage meta-domain
const Net32.ar = ITarget2.Command {
    cmd: "$(rootDir)/bin/link.exe -lib -nologo",
    opts: ""
};
DETAILS
-nologo
don't display archiver copyright
config Net32.asm // module-wide
index URL

The assemble command and all required options

XDCscript usage meta-domain
const Net32.asm = ITarget2.Command {
    cmd: "$(rootDir)/bin/cl",
    opts: "-nologo -c"
};
DETAILS
-c
don't link
config Net32.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Net32.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Net32.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Net32.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Net32.cc // module-wide
index URL

The compile command and all required options

XDCscript usage meta-domain
const Net32.cc = ITarget2.Command {
    cmd: "$(rootDir)/bin/cl",
    opts: "-nologo -c"
};
DETAILS
-c
don't link
-nologo
don't display compiler copyright
config Net32.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Net32.isa = String "x86";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Net32.lnk // module-wide
index URL

The linker command and all required options

XDCscript usage meta-domain
const Net32.lnk = ITarget2.Command {
    cmd: "$(rootDir)/bin/link -nologo",
    opts: ""
};
DETAILS
-nologo
Don't display linker copyright
config Net32.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Net32.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Net32.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Net32.name = String "Net32";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Net32.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Net32.os = String "Windows";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Net32.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Net32.rts = String "microsoft.targets.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Net32.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Net32.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Net32.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Net32.stdInclude = String "microsoft/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Net32.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Net32.suffix = String "86N";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Net32.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Net32.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Net32.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Net32.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Net32.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Net32.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Net32.ccOpts // module-wide
index URL

User modifiable default options

XDCscript usage meta-domain
Net32.ccOpts = ITarget2.Options {
    prefix: "-G5 -W3"
};
DETAILS
-G5
Optimizes code to favor the Pentium processor
-W3
enable all warnings recommended for production purposes.
config Net32.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCscript usage meta-domain
Net32.cmdPrefix = String "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config Net32.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Net32.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Net32.debugGen // module-wide
index URL

Debugger/IDE project file generation support

XDCscript usage meta-domain
Net32.debugGen = ITarget.DebugGen {
    execTemplate: "microsoft/targets/vc_exec.xdt",
    execPattern: "$(cfgName).vcproj"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate VC project files that enable one to debug (and even rebuild) Executables from within the VC GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
To debug an executable: double click on the generated *.vcproj file, when the debugger comes up, type F11 (step into).
The first time you debug an executable, the VC debugger may prompt you for a "solution file" to save. Click OK (accepting the solution file name), and you will be at the first statement of your executable.
To set command line arguments prior to debugging: open the executable's "Project Properties" dialog (select the executable in the "Solution Explorer" window and pull-down View->"Property Pages" or type shift-F4), select "Debugging" in the left-most pane of the executable's "Property Pages", and enter command line arguments in the "Command Arguments" text box.
SEE
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/vxtskdebugginganexecreatedwithoutvisualstudioproject.asp
config Net32.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Net32.execExt = String ".exe";
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Net32.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
Net32.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config Net32.includeOpts // module-wide
index URL

User modifiable default include directories

XDCscript usage meta-domain
Net32.includeOpts = String "-I$(rootDir)/include";
DETAILS
-I$(rootDir)/include
include compiler specific headers
config Net32.lnkOpts // module-wide
index URL

User modifiable linker options

XDCscript usage meta-domain
Net32.lnkOpts = ITarget2.Options {
    prefix: "-libpath:$(rootDir)/lib",
    suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -mapinfo:exports -machine:ix86 -nodefaultlib -incremental:no"
};
DETAILS
-libpath...
directories to search for toolchain specific libraries
-nodefaultlib
don't search for default libraries when linking; all libraries used must be explicitly named
-incremental:no
link for execution (no subsequent link will occur)
-machine:ix86
link for the Intel x86 architecture
-map:$(XDCCFGDIR)/$@.map
output any link map information to the specified file ($(XDCCFGDIR) is usually package/cfg)
-pdb:$(XDCCFGDIR)/$@.pdb
output any program debug information to the specified file ($(XDCCFGDIR) is usually package/cfg)
config Net32.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Net32.platform = String "host.platforms.PC";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Net32.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Net32.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Net32.profiles // module-wide
index URL

User modifiable default profiles

XDCscript usage meta-domain
Net32.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-Z7 -Od -MTd",
                defs: "-D_DEBUG=1"
            },
            linkOpts: "libcmt.lib kernel32.lib"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-Oxi -MT"
            },
            linkOpts: "libcmt.lib kernel32.lib"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Net32.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Net32.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Net32.strictANSI // module-wide
index URL

Disable Microsoft C/C++ language extensions

XDCscript usage meta-domain
Net32.strictANSI = Bool true;
DETAILS
Set to true if you plan to port your program to other environments. The compiler treats extended keywords as simple identifiers, disables the other Microsoft extensions, and automatically defines the __STDC__ predefined macro for C programs. This option shows up as "-Za" on the command line when strictANSI is set to true.
config Net32.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Net32.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the build number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the Visual C++ 2005 Express Edition, the output of the command cl may contains the compiler version string 14.00.50727.42. The Compatibility Key is [1,0,14.00,50727].
config Net32.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCscript usage meta-domain
Net32.versionMap = String[string] [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
Net32.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Net32.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Net32.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Net32.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Net32.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Net32.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Net32.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Net32.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Net32.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Net32.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Net32.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Net32.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Net32.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Net32.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Net32.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Net32.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Net32.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Net32.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Net32.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Net32.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Net32.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Net32.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Net32.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Net32.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
Net32.setPath() // module-wide
index URL

Return path needed to find necessary DLLS

XDCscript usage meta-domain
Net32.setPath() returns Any
DETAILS
The microsoft compilers often require one or more directories to be in the PATH; this allows the compiler to find necessary DLLs. A target implementing this function returns a string with path components separated by ";".
generated on Thu, 08 Nov 2012 02:14:02 GMT


module microsoft.targets.Net32

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Net32.xdc ========
    14     */
    15    package microsoft.targets;
    16
    17    /*!
    18     *  ======== Net32 ========
    19     *  Microsoft .Net 32-bit native target
    20     *
    21     *  This target supports the free Microsoft .Net C/C++ compiler; aka the
    22     *  Microsoft Visual C++ Toolkit 2003 available from
    23     *  http://msdn.microsoft.com/visualc/vctoolkit2003.
    24     */
    25    metaonly module Net32 inherits microsoft.targets.ITarget {
    26
    27        override readonly config string name                    = "Net32";
    28        override readonly config string os                      = "Windows";
    29        override readonly config string suffix                  = "86N";
    30        override readonly config string isa                     = "x86";
    31        override readonly config xdc.bld.ITarget.Model model    = {
    32            endian: "little"
    33        };
    34
    35        /*!
    36         *  ======== profiles ========
    37         *  User modifiable default profiles
    38         */
    39        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    40            ["debug", {
    41                compileOpts: {
    42                    copts: "-Z7 -Od -MTd",
    43                    defs:  "-D_DEBUG=1",
    44                },
    45                linkOpts: "libcmt.lib kernel32.lib",
    46            }],
    47
    48            ["release", {
    49                compileOpts: {
    50                    copts: "-Oxi -MT",
    51                },
    52                linkOpts: "libcmt.lib kernel32.lib",
    53            }],
    54        ];
    55
    56        override readonly config string rts     = "microsoft.targets.rts";
    57        override config string platform         = "host.platforms.PC";
    58        override config string execExt          = ".exe";
    59
    60        /*!
    61         *  ======== ar ========
    62         *  The archiver command and all required options
    63         *  @p(dlist)
    64         *      -`-nologo`
    65         *          don't display archiver copyright
    66         */
    67        override readonly config xdc.bld.ITarget2.Command ar = {
    68            cmd: "$(rootDir)/bin/link.exe -lib -nologo",
    69            opts: ""
    70        };
    71
    72        /*!
    73         *  ======== cc ========
    74         *  The compile command and all required options
    75         *  @p(dlist)
    76         *      -`-c`
    77         *          don't link
    78         *      -`-nologo`
    79         *          don't display compiler copyright
    80         */
    81        override readonly config xdc.bld.ITarget2.Command cc = {
    82            cmd: "$(rootDir)/bin/cl",
    83            opts: "-nologo -c",
    84        };
    85
    86        /*!
    87         *  ======== asm ========
    88         *  The assemble command and all required options
    89         *  @p(dlist)
    90         *      -`-c`
    91         *          don't link
    92         */
    93        override readonly config xdc.bld.ITarget2.Command asm = {
    94            cmd: "$(rootDir)/bin/cl",
    95            opts: "-nologo -c",
    96        };
    97
    98        /*!
    99         *  ======== lnk ========
   100         *  The linker command and all required options
   101         *  @p(dlist)
   102         *      -`-nologo`
   103         *          Don't display linker copyright
   104         */
   105        override readonly config xdc.bld.ITarget2.Command lnk = {
   106            cmd: "$(rootDir)/bin/link -nologo",
   107            opts: ""
   108        };
   109
   110        /*!
   111         *  ======== ccOpts ========
   112         *  User modifiable default options.
   113         *  @p(dlist)
   114         *      -`-G5`
   115         *          Optimizes code to favor the Pentium processor
   116         *      -`-W3`
   117         *          enable all warnings recommended for production purposes.
   118         */
   119        override config xdc.bld.ITarget2.Options ccOpts = {
   120            prefix: "-G5 -W3",
   121        };
   122
   123        /*!
   124         *  ======== lnkOpts ========
   125         *  User modifiable linker options
   126         *  @p(dlist)
   127         *      -`-libpath`...
   128         *              directories to search for toolchain specific libraries
   129         *      -`-nodefaultlib`
   130         *              don't search for default libraries when linking; all
   131         *              libraries used must be explicitly named
   132         *      -`-incremental:no`
   133         *              link for execution (no subsequent link will occur)
   134         *      -`-machine:ix86`
   135         *              link for the Intel x86 architecture
   136         *      -`-map:$(XDCCFGDIR)/$@.map`
   137         *              output any link map information to the specified file
   138         *              ($(XDCCFGDIR) is usually package/cfg)
   139         *      -`-pdb:$(XDCCFGDIR)/$@.pdb`
   140         *              output any program debug information to the specified file
   141         *              ($(XDCCFGDIR) is usually package/cfg)
   142         */
   143        override config xdc.bld.ITarget2.Options lnkOpts = {
   144            prefix: "-libpath:$(rootDir)/lib",
   145            suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -mapinfo:exports -machine:ix86 -nodefaultlib -incremental:no"
   146        };
   147
   148        /*!
   149         *  ======== includeOpts ========
   150         *  User modifiable default include directories
   151         *  @p(dlist)
   152         *      -`-I$(rootDir)/include`
   153         *          include compiler specific headers
   154         */
   155        override config string includeOpts = "-I$(rootDir)/include";
   156
   157         /*!
   158          *  ======== stdTypes ========
   159          *  @_nodoc
   160          */
   161         override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   162            t_IArg          : { size: 4, align: 4 },
   163            t_Char          : { size: 1, align: 1 },
   164            t_Double        : { size: 8, align: 8 },
   165            t_Float         : { size: 4, align: 4 },
   166            t_Fxn           : { size: 4, align: 4 },
   167            t_Int           : { size: 4, align: 4 },
   168            t_Int8          : { size: 1, align: 1 },
   169            t_Int16         : { size: 2, align: 2 },
   170            t_Int32         : { size: 4, align: 4 },
   171            t_Int64         : { size: 8, align: 8 },
   172            t_Long          : { size: 4, align: 4 },
   173            t_LDouble       : { size: 8, align: 8 },
   174            t_Ptr           : { size: 4, align: 4 },
   175            t_Short         : { size: 2, align: 2 },
   176            t_Size          : { size: 4, align: 4 },
   177          };
   178
   179    }
   180    /*
   181     *  @(#) microsoft.targets; 1, 0, 2, 0,609; 11-4-2012 21:21:18; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   182
   183     */
   184


module microsoft.targets.VC98

metaonly module microsoft.targets.VC98
index URL

Microsoft Windows 32-bit target using the Visual C/C++ 6.x compiler

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in microsoft/targets/VC98.xdc
var VC98 = xdc.useModule('microsoft.targets.VC98');
module-wide constants & types
    var obj = new VC98.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new VC98.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new VC98.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new VC98.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new VC98.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new VC98.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new VC98.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new VC98.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new VC98.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new VC98.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new VC98.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new VC98.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const VC98.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const VC98.ar// The archiver command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/vc98/bin/lib",
        opts: "-nologo"
    };
    const VC98.asm// The assemble command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/vc98/bin/cl.exe -nologo -c",
        opts: ""
    };
    const VC98.base// A target that this target is based upon = ITarget.Module computed value;
    const VC98.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const VC98.cc// The compile command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/vc98/bin/cl.exe -nologo -c",
        opts: '-W3 -Zp1 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT=""'
    };
    const VC98.isa// CPU Instruction Set Architecture (ISA) = String "x86";
    const VC98.lnk// The linker command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/vc98/bin/link -nologo",
        opts: ""
    };
    const VC98.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const VC98.name// Nickname for this target = String "VC98";
    const VC98.os// Name of OS required to run programs built for this target = String "Windows";
    const VC98.path// Path components added during execution of commands = String "$(rootDir)/vc98/bin;$(rootDir)/common/msdev98/bin";
    const VC98.rts// Name of a run-time support package to include = String "microsoft.targets.rts";
    const VC98.sectMap// Output section name to segment type mapping = String[string] computed value;
    const VC98.stdInclude// Standard C/C++ types header = String "microsoft/targets/std.h";
    const VC98.suffix// Suffix appended to all objs, libraries, and executable = String "86";
     VC98.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     VC98.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     VC98.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     VC98.ccOpts// User modifiable default options = ITarget2.Options {
        prefix: "-G5 -Ob1 -Gs -GX",
        suffix: "-Dfar= "
    };
     VC98.cmdPrefix// Prefix to put in front of each command = String "";
     VC98.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     VC98.debugGen// Debugger/IDE project file generation support = ITarget.DebugGen {
        execTemplate: "microsoft/targets/vc_exec.xdt",
        execPattern: "$(cfgName).vcproj"
    };
     VC98.execExt// Extension for executables = String ".exe";
     VC98.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     VC98.includeOpts// User modifiable include paths = String "-I$(rootDir)/vc98/include -I$(rootDir)/vc98/mfc/include -I$(rootDir)/vc98/atl/include";
     VC98.lnkOpts// User modifiable linker options = ITarget2.Options {
        prefix: "-libpath:$(rootDir)/vc98/lib -libpath:$(rootDir)/vc98/mfc/lib",
        suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -machine:ix86 -nodefaultlib -incremental:no"
    };
     VC98.platform// The default platform name for this target = String "host.platforms.PC";
     VC98.platforms// A set of platforms that can support this target = String[] [ ];
     VC98.profiles// User modifiable default profiles = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-Z7 -Odi -MTd",
                    defs: "-D_DEBUG=1"
                },
                linkOpts: "-debug mfc42.lib mfcs42.lib msvcrt.lib msvcirt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -MT",
                    defs: ""
                },
                linkOpts: "mfc42.lib mfcs42.lib msvcrt.lib msvcirt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
            }
        ]
    ];
     VC98.rootDir// Installation directory for this target's code generation tools = String undefined;
     VC98.strictANSI// Disable Microsoft C/C++ language extensions = Bool true;
     VC98.version// The Compatibility Key associated with this target = String undefined;
     VC98.versionMap// Map of compiler version numbers to compatibility keys = String[string] [ ];
module-wide functions
     VC98.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     VC98.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     VC98.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     VC98.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     VC98.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     VC98.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     VC98.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     VC98.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     VC98.getVersion// Get a target-specific Compatibility Key string() returns String
     VC98.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     VC98.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     VC98.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
     VC98.setPath// Return path needed to find necessary DLLS() returns Any
struct VC98.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new VC98.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct VC98.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new VC98.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct VC98.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new VC98.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct VC98.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new VC98.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct VC98.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new VC98.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct VC98.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new VC98.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct VC98.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new VC98.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct VC98.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new VC98.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct VC98.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new VC98.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct VC98.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new VC98.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct VC98.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new VC98.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct VC98.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new VC98.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config VC98.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const VC98.alignDirectiveSupported = Bool false;
config VC98.ar // module-wide
index URL

The archiver command and all required options

XDCscript usage meta-domain
const VC98.ar = ITarget2.Command {
    cmd: "$(rootDir)/vc98/bin/lib",
    opts: "-nologo"
};
DETAILS
-nologo
don't display archiver copyright
config VC98.asm // module-wide
index URL

The assemble command and all required options

XDCscript usage meta-domain
const VC98.asm = ITarget2.Command {
    cmd: "$(rootDir)/vc98/bin/cl.exe -nologo -c",
    opts: ""
};
DETAILS
-c
don't link
-nologo
don't display compiler copyright
config VC98.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const VC98.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config VC98.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const VC98.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config VC98.cc // module-wide
index URL

The compile command and all required options

XDCscript usage meta-domain
const VC98.cc = ITarget2.Command {
    cmd: "$(rootDir)/vc98/bin/cl.exe -nologo -c",
    opts: '-W3 -Zp1 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT=""'
};
DETAILS
-W3
enable all warnings recommended for production purposes.
-Zp1
Packs structure members on 1-byte boundry
-c
don't link
-nologo
don't display compiler copyright
config VC98.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const VC98.isa = String "x86";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config VC98.lnk // module-wide
index URL

The linker command and all required options

XDCscript usage meta-domain
const VC98.lnk = ITarget2.Command {
    cmd: "$(rootDir)/vc98/bin/link -nologo",
    opts: ""
};
DETAILS
-nologo
Don't display linker copyright
config VC98.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const VC98.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config VC98.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const VC98.name = String "VC98";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config VC98.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const VC98.os = String "Windows";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config VC98.path // module-wide
index URL

Path components added during execution of commands

XDCscript usage meta-domain
const VC98.path = String "$(rootDir)/vc98/bin;$(rootDir)/common/msdev98/bin";
DETAILS
The VC98 compiler DLLs are located in the vc98/bin subdirectory the pdb DLL is located in $(rootDir)/msdev98/bin.
config VC98.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const VC98.rts = String "microsoft.targets.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config VC98.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const VC98.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config VC98.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const VC98.stdInclude = String "microsoft/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config VC98.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const VC98.suffix = String "86";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config VC98.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
VC98.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config VC98.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
VC98.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config VC98.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
VC98.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config VC98.ccOpts // module-wide
index URL

User modifiable default options

XDCscript usage meta-domain
VC98.ccOpts = ITarget2.Options {
    prefix: "-G5 -Ob1 -Gs -GX",
    suffix: "-Dfar= "
};
DETAILS
-G5
Optimizes code to favor the Pentium processor
-Ob1
Expand only functions marked as inline or, in a C++ member function, defined within a class declaration
-Gs
Probe stack to automatically grow stack as necessary
-GX
Enables synchronous exception handling
-WL
Write errors/warnings on a single output line
config VC98.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCscript usage meta-domain
VC98.cmdPrefix = String "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config VC98.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
VC98.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config VC98.debugGen // module-wide
index URL

Debugger/IDE project file generation support

XDCscript usage meta-domain
VC98.debugGen = ITarget.DebugGen {
    execTemplate: "microsoft/targets/vc_exec.xdt",
    execPattern: "$(cfgName).vcproj"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate VC project files that enable one to debug (and even rebuild) Executables from within the VC GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
To debug an executable: double click on the generated *.vcproj file, when the debugger comes up, type F11 (step into).
The first time you debug an executable, the VC debugger may prompt you for a "solution file" to save. Click OK (accepting the solution file name), and you will be at the first statement of your executable.
To set command line arguments prior to debugging: open the executable's "Project Properties" dialog (select the executable in the "Solution Explorer" window and pull-down View->"Property Pages" or type shift-F4), select "Debugging" in the left-most pane of the executable's "Property Pages", and enter command line arguments in the "Command Arguments" text box.
SEE
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/vxtskdebugginganexecreatedwithoutvisualstudioproject.asp
config VC98.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
VC98.execExt = String ".exe";
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config VC98.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
VC98.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config VC98.includeOpts // module-wide
index URL

User modifiable include paths

XDCscript usage meta-domain
VC98.includeOpts = String "-I$(rootDir)/vc98/include -I$(rootDir)/vc98/mfc/include -I$(rootDir)/vc98/atl/include";
DETAILS
-I$(rootDir)/include
include compiler specific headers
config VC98.lnkOpts // module-wide
index URL

User modifiable linker options

XDCscript usage meta-domain
VC98.lnkOpts = ITarget2.Options {
    prefix: "-libpath:$(rootDir)/vc98/lib -libpath:$(rootDir)/vc98/mfc/lib",
    suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -machine:ix86 -nodefaultlib -incremental:no"
};
DETAILS
-libpath...
directories to search for toolchain specific libraries
-nodefaultlib
don't search for default libraries when linking; all libraries used must be explicitly named
-incremental:no
link for execution (no subsequent link will occur)
-machine:ix86
link for the Intel x86 architecture
-map:$(XDCCFGDIR)/$@.map
output any link map information to the specified file ($(XDCCFGDIR) is usually package/cfg)
-pdb:$(XDCCFGDIR)/$@.pdb
output any program debug information to the specified file ($(XDCCFGDIR) is usually package/cfg)
config VC98.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
VC98.platform = String "host.platforms.PC";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config VC98.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
VC98.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config VC98.profiles // module-wide
index URL

User modifiable default profiles

XDCscript usage meta-domain
VC98.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-Z7 -Odi -MTd",
                defs: "-D_DEBUG=1"
            },
            linkOpts: "-debug mfc42.lib mfcs42.lib msvcrt.lib msvcirt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -MT",
                defs: ""
            },
            linkOpts: "mfc42.lib mfcs42.lib msvcrt.lib msvcirt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config VC98.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
VC98.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config VC98.strictANSI // module-wide
index URL

Disable Microsoft C/C++ language extensions

XDCscript usage meta-domain
VC98.strictANSI = Bool true;
DETAILS
Set to true if you plan to port your program to other environments. The compiler treats extended keywords as simple identifiers, disables the other Microsoft extensions, and automatically defines the __STDC__ predefined macro for C programs. This option shows up as "-Za" on the command line when strictANSI is set to true.
config VC98.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
VC98.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the build number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the Visual C++ 2005 Express Edition, the output of the command cl may contains the compiler version string 14.00.50727.42. The Compatibility Key is [1,0,14.00,50727].
config VC98.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCscript usage meta-domain
VC98.versionMap = String[string] [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
VC98.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
VC98.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
VC98.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
VC98.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
VC98.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
VC98.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
VC98.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
VC98.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
VC98.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
VC98.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
VC98.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
VC98.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
VC98.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
VC98.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
VC98.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
VC98.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
VC98.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
VC98.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
VC98.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
VC98.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
VC98.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
VC98.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
VC98.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
VC98.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
VC98.setPath() // module-wide
index URL

Return path needed to find necessary DLLS

XDCscript usage meta-domain
VC98.setPath() returns Any
DETAILS
The microsoft compilers often require one or more directories to be in the PATH; this allows the compiler to find necessary DLLs. A target implementing this function returns a string with path components separated by ";".
generated on Thu, 08 Nov 2012 02:14:03 GMT


module microsoft.targets.VC98

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== VC98.xdc ========
    15     *  Microsoft Windows 32-bit target using the Visual C/C++ 6.x compiler
    16     */
    17
    18    metaonly module VC98 inherits microsoft.targets.ITarget {
    19
    20        override readonly config string name                    = "VC98";
    21        override readonly config string os                      = "Windows";
    22        override readonly config string suffix                  = "86";
    23        override readonly config string isa                     = "x86";
    24        override readonly config xdc.bld.ITarget.Model model    = {
    25            endian: "little"
    26        };
    27
    28        override readonly config string rts = "microsoft.targets.rts";
    29        override config string platform     = "host.platforms.PC";
    30        override config string execExt      = ".exe";
    31
    32        /*!
    33         *  ======== path ========
    34         *  Path components added during execution of commands
    35         *
    36         *  The VC98 compiler DLLs are located in the vc98/bin subdirectory
    37         *  the pdb DLL is located in $(rootDir)/msdev98/bin.
    38         */
    39        readonly config string path =
    40            "$(rootDir)/vc98/bin;$(rootDir)/common/msdev98/bin";
    41
    42        /*!
    43         *  ======== ar ========
    44         *  The archiver command and all required options
    45         *  @p(dlist)
    46         *      -`-nologo`
    47         *          don't display archiver copyright
    48         */
    49        override readonly config xdc.bld.ITarget2.Command ar = {
    50            cmd: "$(rootDir)/vc98/bin/lib",
    51            opts: "-nologo"
    52        };
    53
    54        /*!
    55         *  ======== cc ========
    56         *  The compile command and all required options
    57         *  @p(dlist)
    58         *      -`-W3`
    59         *          enable all warnings recommended for production purposes.
    60         *      -`-Zp1`
    61         *          Packs structure members on 1-byte boundry
    62         *      -`-c`
    63         *          don't link
    64         *      -`-nologo`
    65         *          don't display compiler copyright
    66         */
    67        override readonly config xdc.bld.ITarget2.Command cc = {
    68            cmd: "$(rootDir)/vc98/bin/cl.exe -nologo -c",
    69            opts: '-W3 -Zp1 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT=""'
    70        };
    71
    72        /*!
    73         *  ======== asm ========
    74         *  The assemble command and all required options
    75         *  @p(dlist)
    76         *      -`-c`
    77         *          don't link
    78         *      -`-nologo`
    79         *          don't display compiler copyright
    80         */
    81        override readonly config xdc.bld.ITarget2.Command asm = {
    82            cmd: "$(rootDir)/vc98/bin/cl.exe -nologo -c",
    83            opts: ""
    84        };
    85
    86        /*!
    87         *  ======== lnk ========
    88         *  The linker command and all required options
    89         *  @p(dlist)
    90         *      -`-nologo`
    91         *          Don't display linker copyright
    92         */
    93        override readonly config xdc.bld.ITarget2.Command lnk = {
    94            cmd: "$(rootDir)/vc98/bin/link -nologo",
    95            opts: ""
    96        };
    97
    98        /*!
    99         *  ======== ccOpts ========
   100         *  User modifiable default options.
   101         *  @p(dlist)
   102         *      -`-G5`
   103         *          Optimizes code to favor the Pentium processor
   104         *      -`-Ob1`
   105         *          Expand only functions marked as inline or, in a C++
   106         *          member function, defined within a class declaration
   107         *      -`-Gs`
   108         *          Probe stack to automatically grow stack as necessary
   109         *      -`-GX`
   110         *          Enables synchronous exception handling
   111         *      -`-WL`
   112         *          Write errors/warnings on a single output line
   113         */
   114        override config xdc.bld.ITarget2.Options ccOpts = {
   115            prefix: "-G5 -Ob1 -Gs -GX",
   116            suffix: "-Dfar= "
   117        };
   118
   119        /*!
   120         *  ======== lnkOpts ========
   121         *  User modifiable linker options
   122         *  @p(dlist)
   123         *      -`-libpath`...
   124         *              directories to search for toolchain specific libraries
   125         *      -`-nodefaultlib`
   126         *              don't search for default libraries when linking; all
   127         *              libraries used must be explicitly named
   128         *      -`-incremental:no`
   129         *              link for execution (no subsequent link will occur)
   130         *      -`-machine:ix86`
   131         *              link for the Intel x86 architecture
   132         *      -`-map:$(XDCCFGDIR)/$@.map`
   133         *              output any link map information to the specified file
   134         *              ($(XDCCFGDIR) is usually package/cfg)
   135         *      -`-pdb:$(XDCCFGDIR)/$@.pdb`
   136         *              output any program debug information to the specified file
   137         *              ($(XDCCFGDIR) is usually package/cfg)
   138         */
   139        override config xdc.bld.ITarget2.Options lnkOpts = {
   140            prefix: "-libpath:$(rootDir)/vc98/lib -libpath:$(rootDir)/vc98/mfc/lib",
   141            suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -machine:ix86 -nodefaultlib -incremental:no"
   142        };
   143
   144        /*!
   145         *  ======== includeOpts ========
   146         *  User modifiable include paths
   147         *  @p(dlist)
   148         *      -`-I$(rootDir)/include`
   149         *          include compiler specific headers
   150         */
   151        override config string includeOpts = "-I$(rootDir)/vc98/include -I$(rootDir)/vc98/mfc/include -I$(rootDir)/vc98/atl/include";
   152
   153
   154        /*!
   155         *  ======== profiles ========
   156         *  User modifiable default profiles
   157         */
   158        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   159            ["debug", {
   160                compileOpts: {
   161                    copts: "-Z7 -Odi -MTd",
   162                    defs:  "-D_DEBUG=1",
   163                },
   164                linkOpts: "-debug mfc42.lib mfcs42.lib msvcrt.lib msvcirt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib",
   165            }],
   166
   167            ["release", {
   168                compileOpts: {
   169                    copts: "-O2 -MT",
   170                    defs:  "",
   171                },
   172                linkOpts: "mfc42.lib mfcs42.lib msvcrt.lib msvcirt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib",
   173            }],
   174        ];
   175    }
   176    /*
   177     *  @(#) microsoft.targets; 1, 0, 2, 0,609; 11-4-2012 21:21:18; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   178
   179     */
   180


module microsoft.targets.Win32

metaonly module microsoft.targets.Win32
index URL

Microsoft Windows 32-bit target using the Visual C/C++ compiler

  • XDCscript usage
  • Individual elements
This target can be configured to be used with different versions of Microsoft Visual C/C++ and different installations of Platform SDK (or a newer equivalent Windows SDK). The optional Platform SDK is needed only for building applications that use Windows API. The target Win32 contains default configurations for Visual C/C++ versions 6.0, 7.0 and 8.0, but in order to support future versions of Visual C/C++ and different Platform SDK installations, there is a parameter vcPath, which users can set in their config.bld files to enable usage of this target with their installations. [ more ... ]
XDCscript usage meta-domain sourced in microsoft/targets/Win32.xdc
var Win32 = xdc.useModule('microsoft.targets.Win32');
module-wide constants & types
    var obj = new Win32.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Win32.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Win32.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Win32.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Win32.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Win32.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Win32.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Win32.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Win32.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Win32.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Win32.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Win32.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
    var obj = new Win32.VCPath// Object that defines various paths in a particular Visual Studio installation;
        obj.compilerDir = String ...
        obj.dllPath = String ...
        obj.sdkPath = String ...
        obj.libs = String ...
module-wide config parameters
    const Win32.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const Win32.ar// The archiver command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/$(compilerDir)/bin/lib.exe -nologo",
        opts: ""
    };
    const Win32.asm// The assemble command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/$(compilerDir)/bin/ml -c",
        opts: "-nologo"
    };
    const Win32.base// A target that this target is based upon = ITarget.Module computed value;
    const Win32.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Win32.cc// The compile command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/$(compilerDir)/bin/cl.exe -nologo -c",
        opts: '-Zp1 -W3 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT=""'
    };
    const Win32.isa// CPU Instruction Set Architecture (ISA) = String "x86";
    const Win32.lnk// The linker command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/$(compilerDir)/bin/link",
        opts: "-nologo"
    };
    const Win32.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const Win32.name// Nickname for this target = String "Win32";
    const Win32.os// Name of OS required to run programs built for this target = String "Windows";
    const Win32.rts// Name of a run-time support package to include = String "microsoft.targets.rts";
    const Win32.sectMap// Output section name to segment type mapping = String[string] computed value;
    const Win32.stdInclude// Standard C/C++ types header = String "microsoft/targets/std.h";
    const Win32.suffix// Suffix appended to all objs, libraries, and executable = String "86W";
     Win32.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Win32.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Win32.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     Win32.ccOpts// User modifiable default options = ITarget2.Options {
        prefix: "-Ob1 -Gs",
        suffix: "-Dfar= "
    };
     Win32.cmdPrefix// Prefix to put in front of each command = String "";
     Win32.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     Win32.debugGen// Debugger/IDE project file generation support = ITarget.DebugGen {
        execTemplate: "microsoft/targets/vc_exec.xdt",
        execPattern: "$(cfgName).vcproj"
    };
     Win32.execExt// Extension for executables = String ".exe";
     Win32.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     Win32.includeOpts// User modifiable include paths = String "-I$(rootDir)/$(compilerDir)/include -I$(rootDir)/$(compilerDir)/atlmfc/include -I$(rootDir)/$(compilerDir)/mfc/include -I$(rootDir)/$(compilerDir)/atl/include -I$(sdkPath)/include";
     Win32.lnkOpts// User modifiable linker options = ITarget2.Options {
        prefix: "-libpath:$(rootDir)/$(compilerDir)/lib -libpath:$(rootDir)/$(compilerDir)/atlmfc/lib -libpath:$(rootDir)/$(compilerDir)/mfc/lib -libpath:$(sdkPath)/lib",
        suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -machine:ix86 -nodefaultlib -incremental:no"
    };
     Win32.platform// The default platform name for this target = String "host.platforms.PC";
     Win32.platforms// A set of platforms that can support this target = String[] [ ];
     Win32.profiles// Standard options profiles are overwritten because we can't use 'MTs' and -D_DEBUG=1. Both of them added the debug version of the C runtime library to the manifest = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-Z7 -Odi -MT",
                    defs: ""
                },
                linkOpts: "-debug "
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -MT",
                    defs: ""
                },
                linkOpts: ""
            }
        ]
    ];
     Win32.rootDir// Installation directory for this target's code generation tools = String undefined;
     Win32.strictANSI// Disable Microsoft C/C++ language extensions = Bool true;
     Win32.vcPath// Location of the compiler, additional DLLs, and Platform SDK installation = Win32.VCPath[string] [
        [
            "VC6",
            {
                compilerDir: "vc98",
                dllPath: "common/msdev98/bin",
                sdkPath: "",
                libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib mfc42.lib msvcirt.lib"
            }
        ],
        [
            "VC7",
            {
                compilerDir: "Vc7",
                dllPath: "Common7/IDE;VisualStudio.NETProfessional-English",
                sdkPath: "Vc7/PlatformSDK",
                libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib mfc70.lib msvcirt.lib"
            }
        ],
        [
            "VC8",
            {
                compilerDir: "VC",
                dllPath: "Common7/IDE",
                sdkPath: "VC/PlatformSDK",
                libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
            }
        ]
    ];
     Win32.version// The Compatibility Key associated with this target = String undefined;
     Win32.versionMap// Map of compiler version numbers to compatibility keys = String[string] [ ];
module-wide functions
     Win32.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Win32.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Win32.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Win32.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Win32.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Win32.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Win32.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Win32.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Win32.getVersion// Get a target-specific Compatibility Key string() returns String
     Win32.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Win32.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Win32.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
     Win32.setPath// Return path needed to find necessary DLLS() returns Any
DETAILS
This target can be configured to be used with different versions of Microsoft Visual C/C++ and different installations of Platform SDK (or a newer equivalent Windows SDK). The optional Platform SDK is needed only for building applications that use Windows API. The target Win32 contains default configurations for Visual C/C++ versions 6.0, 7.0 and 8.0, but in order to support future versions of Visual C/C++ and different Platform SDK installations, there is a parameter vcPath, which users can set in their config.bld files to enable usage of this target with their installations.
Unlike the Visual C/C++ 6.x tool chain, this compiler complies very closely with the C/C++ language specification. This target may be necessary in situations that take full advantage of the C++ language.
struct Win32.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Win32.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Win32.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Win32.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Win32.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Win32.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Win32.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Win32.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Win32.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Win32.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Win32.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Win32.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Win32.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Win32.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Win32.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Win32.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Win32.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Win32.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Win32.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Win32.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Win32.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Win32.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Win32.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Win32.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
struct Win32.VCPath
index URL

Object that defines various paths in a particular Visual Studio installation

XDCscript usage meta-domain
var obj = new Win32.VCPath;
    obj.compilerDir = String ...
    obj.dllPath = String ...
    obj.sdkPath = String ...
    obj.libs = String ...
FIELDS
compilerDir — Relative path from this target's rootDir to the directory that contains the compiler.
dllPath — Relative path from this target's rootDir to the directory that contains mspdb.dll, mspdbcore.dll, etc.
sdkPath — Relative path from this target's rootDir to a Platform SDK installation or an absolute path to a Platform SDK installation. Platform SDK is required if the target is used to build executables that use Windows API.
libs — List of libraries to be added to the linker command line. If Platform SDK is used, the list should contain required libraries from sdkPath/lib. Otherwise, only the libraries from compilerDir/lib can be added to 'libs'.
DETAILS
Different Visual Studio installations keep the actual compiler and additional required DLLs in separate directories. Also, a Platform SDK installation is needed for building programs that use Windows API.
config Win32.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Win32.alignDirectiveSupported = Bool false;
config Win32.ar // module-wide
index URL

The archiver command and all required options

XDCscript usage meta-domain
const Win32.ar = ITarget2.Command {
    cmd: "$(rootDir)/$(compilerDir)/bin/lib.exe -nologo",
    opts: ""
};
DETAILS
-nologo
don't display archiver copyright
config Win32.asm // module-wide
index URL

The assemble command and all required options

XDCscript usage meta-domain
const Win32.asm = ITarget2.Command {
    cmd: "$(rootDir)/$(compilerDir)/bin/ml -c",
    opts: "-nologo"
};
DETAILS
-c
don't link
-nologo
don't display macro assembler copyright
config Win32.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Win32.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Win32.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Win32.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Win32.cc // module-wide
index URL

The compile command and all required options

XDCscript usage meta-domain
const Win32.cc = ITarget2.Command {
    cmd: "$(rootDir)/$(compilerDir)/bin/cl.exe -nologo -c",
    opts: '-Zp1 -W3 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT=""'
};
DETAILS
-W3
enable all warnings recommended for production purposes.
-c
don't link
-nologo
don't display compiler copyright
-Zp1
Packs structure members on 1-byte boundry
config Win32.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Win32.isa = String "x86";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Win32.lnk // module-wide
index URL

The linker command and all required options

XDCscript usage meta-domain
const Win32.lnk = ITarget2.Command {
    cmd: "$(rootDir)/$(compilerDir)/bin/link",
    opts: "-nologo"
};
DETAILS
-nologo
Don't display linker copyright
config Win32.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Win32.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Win32.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Win32.name = String "Win32";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Win32.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Win32.os = String "Windows";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Win32.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Win32.rts = String "microsoft.targets.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Win32.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Win32.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Win32.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Win32.stdInclude = String "microsoft/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Win32.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Win32.suffix = String "86W";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Win32.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Win32.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Win32.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Win32.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Win32.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Win32.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Win32.ccOpts // module-wide
index URL

User modifiable default options

XDCscript usage meta-domain
Win32.ccOpts = ITarget2.Options {
    prefix: "-Ob1 -Gs",
    suffix: "-Dfar= "
};
DETAILS
-G5 (removed because it is incompatible with VC8.0)
Optimizes code to favor the Pentium processor
-Ob1
Expand only functions marked as inline or, in a C++ member function, defined within a class declaration
-Gs
Probe stack to automatically grow stack as necessary
-GX (removed because it is incompatible with VC8.0)
Enables synchronous exception handling
-WL
Write errors/warnings on a single output line
config Win32.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCscript usage meta-domain
Win32.cmdPrefix = String "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config Win32.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Win32.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Win32.debugGen // module-wide
index URL

Debugger/IDE project file generation support

XDCscript usage meta-domain
Win32.debugGen = ITarget.DebugGen {
    execTemplate: "microsoft/targets/vc_exec.xdt",
    execPattern: "$(cfgName).vcproj"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate VC project files that enable one to debug (and even rebuild) Executables from within the VC GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
To debug an executable: double click on the generated *.vcproj file, when the debugger comes up, type F11 (step into).
The first time you debug an executable, the VC debugger may prompt you for a "solution file" to save. Click OK (accepting the solution file name), and you will be at the first statement of your executable.
To set command line arguments prior to debugging: open the executable's "Project Properties" dialog (select the executable in the "Solution Explorer" window and pull-down View->"Property Pages" or type shift-F4), select "Debugging" in the left-most pane of the executable's "Property Pages", and enter command line arguments in the "Command Arguments" text box.
SEE
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/vxtskdebugginganexecreatedwithoutvisualstudioproject.asp
config Win32.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Win32.execExt = String ".exe";
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Win32.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
Win32.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config Win32.includeOpts // module-wide
index URL

User modifiable include paths

XDCscript usage meta-domain
Win32.includeOpts = String "-I$(rootDir)/$(compilerDir)/include -I$(rootDir)/$(compilerDir)/atlmfc/include -I$(rootDir)/$(compilerDir)/mfc/include -I$(rootDir)/$(compilerDir)/atl/include -I$(sdkPath)/include";
DETAILS
-I$(rootDir)/$(compilerDir)/include
include compiler specific headers
config Win32.lnkOpts // module-wide
index URL

User modifiable linker options

XDCscript usage meta-domain
Win32.lnkOpts = ITarget2.Options {
    prefix: "-libpath:$(rootDir)/$(compilerDir)/lib -libpath:$(rootDir)/$(compilerDir)/atlmfc/lib -libpath:$(rootDir)/$(compilerDir)/mfc/lib -libpath:$(sdkPath)/lib",
    suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -machine:ix86 -nodefaultlib -incremental:no"
};
DETAILS
-libpath...
directories to search for toolchain specific libraries
-nodefaultlib
don't search for default libraries when linking; all libraries used must be explicitly named
-incremental:no
link for execution (no subsequent link will occur)
-machine:ix86
link for the Intel x86 architecture
-map:$(XDCCFGDIR)/$@.map
output any link map information to the specified file ($(XDCCFGDIR) is usually package/cfg)
-pdb:$(XDCCFGDIR)/$@.pdb
output any program debug information to the specified file ($(XDCCFGDIR) is usually package/cfg)
config Win32.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Win32.platform = String "host.platforms.PC";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Win32.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Win32.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Win32.profiles // module-wide
index URL

Standard options profiles are overwritten because we can't use 'MTs' and -D_DEBUG=1. Both of them added the debug version of the C runtime library to the manifest

XDCscript usage meta-domain
Win32.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-Z7 -Odi -MT",
                defs: ""
            },
            linkOpts: "-debug "
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -MT",
                defs: ""
            },
            linkOpts: ""
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Win32.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Win32.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Win32.strictANSI // module-wide
index URL

Disable Microsoft C/C++ language extensions

XDCscript usage meta-domain
Win32.strictANSI = Bool true;
DETAILS
Set to true if you plan to port your program to other environments. The compiler treats extended keywords as simple identifiers, disables the other Microsoft extensions, and automatically defines the __STDC__ predefined macro for C programs. This option shows up as "-Za" on the command line when strictANSI is set to true.
config Win32.vcPath // module-wide
index URL

Location of the compiler, additional DLLs, and Platform SDK installation

XDCscript usage meta-domain
Win32.vcPath = Win32.VCPath[string] [
    [
        "VC6",
        {
            compilerDir: "vc98",
            dllPath: "common/msdev98/bin",
            sdkPath: "",
            libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib mfc42.lib msvcirt.lib"
        }
    ],
    [
        "VC7",
        {
            compilerDir: "Vc7",
            dllPath: "Common7/IDE;VisualStudio.NETProfessional-English",
            sdkPath: "Vc7/PlatformSDK",
            libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib mfc70.lib msvcirt.lib"
        }
    ],
    [
        "VC8",
        {
            compilerDir: "VC",
            dllPath: "Common7/IDE",
            sdkPath: "VC/PlatformSDK",
            libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
        }
    ]
];
DETAILS
This parameter is a map that contains information about paths to DLLs needed for building applications, and paths to the optional Platform SDK. Keys in the map are user-selected aliases for different Visual C/C++ releases. The values are VCPath objects. This parameter can be set only in config.bld, together with rootDir. If vcPath is not set in rootDir, the default values specified below are used. After a user sets this target's rootDir, XDCtools search through the values in vcPath, looking for a field compilerDir whose content matches a name of a subdirectory in rootDir. Once a match is found, the content of that element of the map is used to find a path to required DLLs, a path to Platform SDK and a list of libraries.
EXAMPLES
If the content of vcPath, set in config.bld is
      Win32.vcPath = [
          ["Visual Studio 7",
              {
                  compilerDir: "Vc7",
                  dllPath: "Common7/IDE;VisualStudio.NETProfessional-English",
                  sdkPath: "C:/PlatformSDK",
                  libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib mfc70.lib msvcirt.lib"
              }
          ],
          ["Visual Studio C++ 2005",
              {
                  compilerDir: "VC",
                  dllPath: "Common7/IDE",
                  sdkPath: "VC/PlatformSDK",
                  libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
              }
          ]
      ];
and the rootDir for the target Win32 is set to "C:/Program Files/Microsoft Visual Studio 8", XDCtools will first check if there is a directory "Vc7" under rootDir. If the directory is not found, the next element in the map and its compilerDir field are queried. In this case, the next element's compilerDir is "VC". If that directory is found under rootDir, the other fields in that element are used as follows: compilerDir and dllPath are added to the environment variable PATH. The contents of sdkPath and libs are added to appropriate command lines.
If none of the elements in the map has compilerDir that corresponds to a subdirectory in rootDir, the configuration fails.
Once a user sets up vcPath with all available installations of Visual Studio, simply by switching rootDir for this target, the right component of vcPath will be selected.
The default version of this parameter contains settings for several Visual Studio releases. Therefore, a user does not have to completely redefine vcPath. Only the fields that corresponds to settings that differ between user's configuration and the default configuration need to be changes. For example, if the only difference between the default configuration and a user's environment is that the user installed Platform SDK to be used with Visual C/C++ 8 in a different directory, only that field needs to be changed.
      var Win32 = xdc.module('microsoft.targets.Win32');
      Win32.vcPath["VC8"].sdkPath = "C:/WindowsSDK";
If Platform SDK is not installed, sdkPath should be empty and the libraries from Platform SDK should be removed from 'libs':
      var Win32 = xdc.module('microsoft.targets.Win32');
      Win32.vcPath = [
          ["VC8",
              {
                  compilerDir: "VC",
                  dllPath: "Common7/IDE",
                  sdkPath: "",
                  libs: " msvcrt.lib setargv.obj oldnames.lib"
              }
          ],
      ];
config Win32.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Win32.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the build number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the Visual C++ 2005 Express Edition, the output of the command cl may contains the compiler version string 14.00.50727.42. The Compatibility Key is [1,0,14.00,50727].
config Win32.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCscript usage meta-domain
Win32.versionMap = String[string] [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
Win32.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Win32.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Win32.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Win32.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Win32.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Win32.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Win32.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Win32.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Win32.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Win32.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Win32.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Win32.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Win32.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Win32.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Win32.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Win32.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Win32.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Win32.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Win32.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Win32.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Win32.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Win32.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Win32.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Win32.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
Win32.setPath() // module-wide
index URL

Return path needed to find necessary DLLS

XDCscript usage meta-domain
Win32.setPath() returns Any
DETAILS
The microsoft compilers often require one or more directories to be in the PATH; this allows the compiler to find necessary DLLs. A target implementing this function returns a string with path components separated by ";".
generated on Thu, 08 Nov 2012 02:14:03 GMT


module microsoft.targets.Win32

     1    /*
     2     *  Copyright (c) 2009 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Win32.xdc ========
    14     */
    15
    16    /*!
    17     *  ======== Win32 ========
    18     *  Microsoft Windows 32-bit target using the Visual C/C++ compiler
    19     *
    20     *  This target can be configured to be used with different versions of
    21     *  Microsoft Visual C/C++ and different installations of Platform SDK (or a
    22     *  newer equivalent Windows SDK). The optional Platform SDK is needed only
    23     *  for building applications that use Windows API.
    24     *  The target `Win32` contains default configurations for Visual C/C++
    25     *  versions 6.0, 7.0 and 8.0, but in order to support future versions of
    26     *  Visual C/C++ and different Platform SDK installations, there
    27     *  is a parameter {@link #vcPath}, which users can set in their `config.bld`
    28     *  files to enable usage of this target with their installations.
    29     *
    30     *  Unlike the Visual C/C++ 6.x tool chain, this compiler complies very
    31     *  closely with the C/C++ language specification.  This target may be
    32     *  necessary in situations that take full advantage of the C++ language.
    33     */
    34    metaonly module Win32 inherits microsoft.targets.ITarget {
    35
    36        override readonly config string name                = "Win32";
    37        override readonly config string os                  = "Windows";
    38        override readonly config string suffix              = "86W";
    39        override readonly config string isa                 = "x86";
    40        override readonly config xdc.bld.ITarget.Model model = {
    41            endian: "little"
    42        };
    43
    44        override readonly config string rts = "microsoft.targets.rts";
    45
    46        override config string platform     = "host.platforms.PC";
    47        override config string execExt      = ".exe";
    48
    49        /*!
    50         *  ======== VCPath ========
    51         *
    52         *  Object that defines various paths in a particular Visual Studio
    53         *  installation.
    54         *
    55         *  Different Visual Studio installations keep the actual compiler and
    56         *  additional required DLLs in separate directories. Also, a Platform SDK
    57         *  installation is needed for building programs that use Windows API.
    58         *
    59         *  @field(compilerDir) Relative path from this target's rootDir to the
    60         *          directory that contains the compiler.
    61         *
    62         *  @field(dllPath) Relative path from this target's rootDir to the
    63         *          directory that contains mspdb.dll, mspdbcore.dll, etc.
    64         *
    65         *  @field(sdkPath) Relative path from this target's rootDir to a
    66         *          Platform SDK installation or an absolute path to a Platform SDK
    67         *          installation. Platform SDK is required if the target is used to
    68         *          build executables that use Windows API.
    69         *
    70         *  @field(libs) List of libraries to be added to the linker command line.
    71         *          If Platform SDK is used, the list should contain required
    72         *          libraries from sdkPath/lib. Otherwise, only the libraries from
    73         *          compilerDir/lib can be added to 'libs'.
    74         */
    75        struct VCPath {
    76            string compilerDir;
    77            string dllPath;
    78            string sdkPath;
    79            string libs;
    80        };
    81
    82        /*!
    83         *  ======== vcPath ========
    84         *  Location of the compiler, additional DLLs, and Platform SDK
    85         *  installation
    86         *
    87         *  This parameter is a map that contains information about paths to DLLs
    88         *  needed for building applications, and paths to the optional Platform
    89         *  SDK. Keys in the map are user-selected aliases for different Visual
    90         *  C/C++ releases. The values are {@link #VCPath} objects.
    91         *  This parameter can be set only in `config.bld`, together with
    92         *  `rootDir`. If `vcPath` is not set in `rootDir`, the default values
    93         *  specified below are used. After a user sets this target's `rootDir`,
    94         *  XDCtools search through the
    95         *  values in `vcPath`, looking for a field `compilerDir` whose content
    96         *  matches a name of a subdirectory in `rootDir`. Once a match is found,
    97         *  the content of that element of the map is used to find a path to
    98         *  required DLLs, a path to Platform SDK and a list of libraries.
    99         *
   100         *  @a(Examples)
   101         *  If the content of `vcPath`, set in `config.bld` is
   102         *  @p(code)
   103         *      Win32.vcPath = [
   104         *          ["Visual Studio 7",
   105         *              {
   106         *                  compilerDir: "Vc7",
   107         *                  dllPath: "Common7/IDE;VisualStudio.NETProfessional-English",
   108         *                  sdkPath: "C:/PlatformSDK",
   109         *                  libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib mfc70.lib msvcirt.lib"
   110         *              }
   111         *          ],
   112         *          ["Visual Studio C++ 2005",
   113         *              {
   114         *                  compilerDir: "VC",
   115         *                  dllPath: "Common7/IDE",
   116         *                  sdkPath: "VC/PlatformSDK",
   117         *                  libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
   118         *              }
   119         *          ]
   120         *      ];
   121         *  @p
   122         *  and the `rootDir` for the target `Win32` is set to
   123         *  `"C:/Program Files/Microsoft Visual Studio 8"`, XDCtools will first
   124         *  check if there is a directory `"Vc7"` under `rootDir`. If the directory
   125         *  is not found, the next element in the map and its `compilerDir` field
   126         *  are queried. In this case, the next element's `compilerDir` is `"VC"`.
   127         *  If that directory is found under `rootDir`, the other fields in that
   128         *  element are used as follows: `compilerDir` and `dllPath` are added to
   129         *  the environment variable `PATH`. The contents of `sdkPath` and `libs`
   130         *  are added to appropriate command lines.
   131         *
   132         *  If none of the elements in the map has `compilerDir` that corresponds
   133         *  to a subdirectory in `rootDir`, the configuration fails.
   134         *
   135         *  Once a user sets up `vcPath` with all available installations of
   136         *  Visual Studio, simply by switching `rootDir` for this target, the
   137         *  right component of `vcPath` will be selected.
   138         *
   139         *  The default version of this parameter contains settings for several
   140         *  Visual Studio releases. Therefore, a user does not have to completely
   141         *  redefine `vcPath`. Only the fields that corresponds to settings that
   142         *  differ between user's configuration and the default configuration
   143         *  need to be changes. For example, if the only difference between the
   144         *  default configuration and a user's environment is that the user
   145         *  installed Platform SDK to be used with Visual C/C++ 8 in a different
   146         *  directory, only that field needs to be changed.
   147         *  @p(code)
   148         *      var Win32 = xdc.module('microsoft.targets.Win32');
   149         *      Win32.vcPath["VC8"].sdkPath = "C:/WindowsSDK";
   150         *  @p
   151         *
   152         *  If Platform SDK is not installed, sdkPath should be empty and the
   153         *  libraries from Platform SDK should be removed from 'libs':
   154         *  @p(code)
   155         *      var Win32 = xdc.module('microsoft.targets.Win32');
   156         *      Win32.vcPath = [
   157         *          ["VC8",
   158         *              {
   159         *                  compilerDir: "VC",
   160         *                  dllPath: "Common7/IDE",
   161         *                  sdkPath: "",
   162         *                  libs: " msvcrt.lib setargv.obj oldnames.lib"
   163         *              }
   164         *          ],
   165         *      ];
   166         *  @p
   167         *
   168         */
   169        config VCPath vcPath[string] = [
   170            ["VC6", {compilerDir: "vc98", dllPath: "common/msdev98/bin",
   171                     sdkPath: "",
   172                     libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib mfc42.lib msvcirt.lib"}],
   173            ["VC7", {compilerDir: "Vc7",
   174                     dllPath: "Common7/IDE;VisualStudio.NETProfessional-English",
   175                     sdkPath: "Vc7/PlatformSDK",
   176                     libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib mfc70.lib msvcirt.lib"}],
   177            /* Free version of VC8.0 doesn't include mfc libraries. */
   178            ["VC8", {compilerDir: "VC",   dllPath: "Common7/IDE",
   179                     sdkPath: "VC/PlatformSDK",
   180                     libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"}],
   181        ];
   182
   183        /*!
   184         *  ======== profiles ========
   185         *  Standard options profiles are overwritten because we can't use 'MTs'
   186         *  and -D_DEBUG=1. Both of them added the debug version of the C runtime
   187         *  library to the manifest.
   188         */
   189        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   190            ["debug", {
   191                compileOpts: {
   192                    copts: "-Z7 -Odi -MT",
   193                    defs:  "",
   194                },
   195                linkOpts: "-debug ",
   196            }],
   197
   198            ["release", {
   199                compileOpts: {
   200                    copts: "-O2 -MT",
   201                    defs:  "",
   202                },
   203                linkOpts: "",
   204            }],
   205        ];
   206
   207        /*!
   208         *  ======== ar ========
   209         *  The archiver command and all required options
   210         *  @p(dlist)
   211         *      -`-nologo`
   212         *          don't display archiver copyright
   213         */
   214        override readonly config xdc.bld.ITarget2.Command ar = {
   215            cmd: "$(rootDir)/$(compilerDir)/bin/lib.exe -nologo",
   216            opts: ""
   217        };
   218
   219        /*!
   220         *  ======== cc ========
   221         *  The compile command and all required options
   222         *  @p(dlist)
   223         *      -`-W3`
   224         *          enable all warnings recommended for production purposes.
   225         *      -`-c`
   226         *          don't link
   227         *      -`-nologo`
   228         *          don't display compiler copyright
   229         *      -`-Zp1`
   230         *          Packs structure members on 1-byte boundry
   231         */
   232        override readonly config xdc.bld.ITarget2.Command cc = {
   233            cmd: "$(rootDir)/$(compilerDir)/bin/cl.exe -nologo -c",
   234            opts: '-Zp1 -W3 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT=""'
   235        };
   236
   237        /*!
   238         *  ======== asm ========
   239         *  The assemble command and all required options
   240         *  @p(dlist)
   241         *      -`-c`
   242         *          don't link
   243         *      -`-nologo`
   244         *          don't display macro assembler copyright
   245         */
   246        override readonly config xdc.bld.ITarget2.Command asm = {
   247            cmd: "$(rootDir)/$(compilerDir)/bin/ml -c",
   248            opts: "-nologo"
   249        };
   250
   251        /*!
   252         *  ======== lnk ========
   253         *  The linker command and all required options
   254         *  @p(dlist)
   255         *      -`-nologo`
   256         *          Don't display linker copyright
   257         */
   258        override readonly config xdc.bld.ITarget2.Command lnk = {
   259            cmd: "$(rootDir)/$(compilerDir)/bin/link",
   260            opts: "-nologo"
   261        };
   262
   263        /*!
   264         *  ======== ccOpts ========
   265         *  User modifiable default options.
   266         *  @p(dlist)
   267         *      -`-G5` (removed because it is incompatible with VC8.0)
   268         *          Optimizes code to favor the Pentium processor
   269         *      -`-Ob1`
   270         *          Expand only functions marked as inline or, in a C++
   271         *          member function, defined within a class declaration
   272         *      -`-Gs`
   273         *          Probe stack to automatically grow stack as necessary
   274         *      -`-GX` (removed because it is incompatible with VC8.0)
   275         *          Enables synchronous exception handling
   276         *      -`-WL`
   277         *          Write errors/warnings on a single output line
   278         */
   279        override config xdc.bld.ITarget2.Options ccOpts = {
   280            prefix: "-Ob1 -Gs",
   281            suffix: "-Dfar= "
   282        };
   283
   284        /*!
   285         *  ======== lnkOpts ========
   286         *  User modifiable linker options
   287         *  @p(dlist)
   288         *      -`-libpath`...
   289         *              directories to search for toolchain specific libraries
   290         *      -`-nodefaultlib`
   291         *              don't search for default libraries when linking; all
   292         *              libraries used must be explicitly named
   293         *      -`-incremental:no`
   294         *              link for execution (no subsequent link will occur)
   295         *      -`-machine:ix86`
   296         *              link for the Intel x86 architecture
   297         *      -`-map:$(XDCCFGDIR)/$@.map`
   298         *              output any link map information to the specified file
   299         *              ($(XDCCFGDIR) is usually package/cfg)
   300         *      -`-pdb:$(XDCCFGDIR)/$@.pdb`
   301         *              output any program debug information to the specified file
   302         *              ($(XDCCFGDIR) is usually package/cfg)
   303         */
   304        override config xdc.bld.ITarget2.Options lnkOpts = {
   305            prefix: "-libpath:$(rootDir)/$(compilerDir)/lib -libpath:$(rootDir)/$(compilerDir)/atlmfc/lib -libpath:$(rootDir)/$(compilerDir)/mfc/lib -libpath:$(sdkPath)/lib",
   306            suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -machine:ix86 -nodefaultlib -incremental:no"
   307        };
   308
   309        /*!
   310         *  ======== includeOpts ========
   311         *  User modifiable include paths
   312         *  @p(dlist)
   313         *      -`-I$(rootDir)/$(compilerDir)/include`
   314         *          include compiler specific headers
   315         */
   316        override config string includeOpts = "-I$(rootDir)/$(compilerDir)/include -I$(rootDir)/$(compilerDir)/atlmfc/include -I$(rootDir)/$(compilerDir)/mfc/include -I$(rootDir)/$(compilerDir)/atl/include -I$(sdkPath)/include";
   317    }
   318    /*
   319     *  @(#) microsoft.targets; 1, 0, 2, 0,609; 11-4-2012 21:21:18; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   320
   321     */
   322


package microsoft.targets.arm
index URL

Targets that wrap Microsoft code generation tools for Arm

XDCspec declarations sourced in microsoft/targets/arm/package.xdc
requires microsoft.targets[1, 0, 2];
package microsoft.targets.arm [1, 0, 0, 0] {
    module WinCE;
    // Microsoft Windows Embedded "target" using the ARM compiler
}
generated on Thu, 08 Nov 2012 02:14:04 GMT


package microsoft.targets.arm

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires microsoft.targets [1,0,2];
    19
    20    /*!
    21     *  ======== microsoft.targets.arm ========
    22     *  Targets that wrap Microsoft code generation tools for Arm.
    23     */
    24    package microsoft.targets.arm [1,0,0,0] {
    25        module WinCE;
    26    }
    27    /*
    28     *  @(#) microsoft.targets.arm; 1, 0, 0, 0,361; 11-4-2012 21:21:20; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    29
    30     */
    31


module microsoft.targets.arm.WinCE

metaonly module microsoft.targets.arm.WinCE
index URL

Microsoft Windows Embedded "target" using the ARM compiler

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in microsoft/targets/arm/WinCE.xdc
var WinCE = xdc.useModule('microsoft.targets.arm.WinCE');
module-wide constants & types
    values of type WinCE.EntryPoint// Entry point options
        const WinCE.UNDEFINED// -entry option is user specified;
        const WinCE.mainCRTStartup// for apps using SUBSYSTEM:CONSOLE, calls main;
        const WinCE.WinMainCRTStartup// for SUBSYSTEM:WINDOWS, calls WinMain;
        const WinCE._DllMainCRTStartup// for DLLS, calls DllMain;
    var obj = new WinCE.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new WinCE.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new WinCE.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new WinCE.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new WinCE.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new WinCE.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new WinCE.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new WinCE.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new WinCE.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new WinCE.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new WinCE.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new WinCE.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const WinCE.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const WinCE.ar// The archiver command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/sdk/bin/i386/arm/link.exe -lib -nologo",
        opts: "-ignore:4001"
    };
    const WinCE.asm// The assemble command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/sdk/bin/i386/arm/armasm.exe -nologo",
        opts: "-arch 4T"
    };
    const WinCE.base// A target that this target is based upon = ITarget.Module computed value;
    const WinCE.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const WinCE.cc// The compile command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/sdk/bin/i386/arm/cl.exe -nologo -c",
        opts: "-Gy -GF -D_CRT_SECURE_NO_DEPRECATE -D_USE_32BIT_TIME_T -DUNICODE -D_UNICODE -DUNDER_CE=600 -D_WIN32_WCE=0x600 -DWIN32 -DSTRICT -DARM -DARMV4I -D_ARM_ -DINTERNATIONAL -DINTLMSG_CODEPAGE=1252 -Zc:wchar_t- -Zc:forScope- -wd4867 -wd4430 -MT -U_MT -W3 /GR- -QRarch4T -DTHUMBSUPPORT -QRimplicit-import- -QRinterwork-return /GS"
    };
    const WinCE.isa// CPU Instruction Set Architecture (ISA) = String "v4T";
    const WinCE.lnk// The linker command and all required options = ITarget2.Command {
        cmd: "$(rootDir)/sdk/bin/i386/arm/link -nologo",
        opts: "-base:0x00010000 -MERGE:.rdata=.text -MERGE:.astart=.text -align:4096 -ignore:4001,4070,4078,4086,4089,4096,4099,4108,4229 /STACK:65536,4096 /LARGEADDRESSAWARE -incremental:no /opt:ref -SUBSYSTEM:WINDOWSCE,6.00"
    };
    const WinCE.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const WinCE.name// Nickname for this target = String "WinCE";
    const WinCE.os// Name of OS required to run programs built for this target = String "WindowsCE";
    const WinCE.path// Path components added during execution of commands = String "$(rootDir)/sdk/bin/i386;$(rootDir)/sdk/bin/i386/arm";
    const WinCE.rts// Name of a run-time support package to include = String "microsoft.targets.arm.rts";
    const WinCE.sectMap// Output section name to segment type mapping = String[string] computed value;
    const WinCE.stdInclude// Standard C/C++ types header = String "microsoft/targets/arm/std.h";
    const WinCE.suffix// Suffix appended to all objs, libraries, and executable = String "v4TCE";
     WinCE.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     WinCE.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     WinCE.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     WinCE.ccOpts// User modifiable default options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     WinCE.cmdPrefix// Prefix to put in front of each command = String "";
     WinCE.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     WinCE.debugGen// Debugger/IDE project file generation support = ITarget.DebugGen {
        execTemplate: "microsoft/targets/vc_exec.xdt",
        execPattern: "$(cfgName).vcproj"
    };
     WinCE.entryPoint// Define which function is called at startup = WinCE.EntryPoint WinCE.mainCRTStartup;
     WinCE.execExt// Extension for executables = String ".exe";
     WinCE.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     WinCE.includeOpts// User modifiable include paths = String " ";
     WinCE.lnkOpts// User modifiable linker options = ITarget2.Options {
        prefix: "-stack:65536,4096",
        suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -nodefaultlib"
    };
     WinCE.platform// The default platform name for this target = String "host.platforms.arm";
     WinCE.platforms// A set of platforms that can support this target = String[] [ ];
     WinCE.profiles// User modifiable default profiles = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-Od -Z7",
                    defs: "-D_DEBUG, -DDEBUG"
                },
                linkOpts: "-debug -debugtype:cv,fixup coredll.lib corelibc.lib"
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2",
                    defs: "-DNDEBUG=1"
                },
                linkOpts: "coredll.lib corelibc.lib"
            }
        ]
    ];
     WinCE.projectRoot// Path to the project root of the selected OS configuration = String undefined;
     WinCE.rootDir// Installation directory for this target's code generation tools = String undefined;
     WinCE.strictANSI// Disable Microsoft C/C++ language extensions = Bool false;
     WinCE.version// The Compatibility Key associated with this target = String undefined;
     WinCE.versionMap// Map of compiler version numbers to compatibility keys = String[string] [ ];
module-wide functions
     WinCE.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     WinCE.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     WinCE.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     WinCE.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     WinCE.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     WinCE.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     WinCE.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     WinCE.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     WinCE.getVersion// Get a target-specific Compatibility Key string() returns String
     WinCE.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     WinCE.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     WinCE.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
     WinCE.setPath// Return path needed to find necessary DLLS() returns Any
enum WinCE.EntryPoint
index URL

Entry point options

XDCscript usage meta-domain
values of type WinCE.EntryPoint
    const WinCE.UNDEFINED;
    // -entry option is user specified
    const WinCE.mainCRTStartup;
    // for apps using SUBSYSTEM:CONSOLE, calls main
    const WinCE.WinMainCRTStartup;
    // for SUBSYSTEM:WINDOWS, calls WinMain
    const WinCE._DllMainCRTStartup;
    // for DLLS, calls DllMain
struct WinCE.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new WinCE.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct WinCE.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new WinCE.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct WinCE.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new WinCE.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct WinCE.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new WinCE.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct WinCE.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new WinCE.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct WinCE.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new WinCE.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct WinCE.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new WinCE.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct WinCE.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new WinCE.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct WinCE.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new WinCE.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct WinCE.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new WinCE.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct WinCE.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new WinCE.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct WinCE.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new WinCE.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config WinCE.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const WinCE.alignDirectiveSupported = Bool false;
config WinCE.ar // module-wide
index URL

The archiver command and all required options

XDCscript usage meta-domain
const WinCE.ar = ITarget2.Command {
    cmd: "$(rootDir)/sdk/bin/i386/arm/link.exe -lib -nologo",
    opts: "-ignore:4001"
};
DETAILS
4001 warning warns that there are only libraries being supplied.
config WinCE.asm // module-wide
index URL

The assemble command and all required options

XDCscript usage meta-domain
const WinCE.asm = ITarget2.Command {
    cmd: "$(rootDir)/sdk/bin/i386/arm/armasm.exe -nologo",
    opts: "-arch 4T"
};
config WinCE.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const WinCE.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config WinCE.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const WinCE.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config WinCE.cc // module-wide
index URL

The compile command and all required options

XDCscript usage meta-domain
const WinCE.cc = ITarget2.Command {
    cmd: "$(rootDir)/sdk/bin/i386/arm/cl.exe -nologo -c",
    opts: "-Gy -GF -D_CRT_SECURE_NO_DEPRECATE -D_USE_32BIT_TIME_T -DUNICODE -D_UNICODE -DUNDER_CE=600 -D_WIN32_WCE=0x600 -DWIN32 -DSTRICT -DARM -DARMV4I -D_ARM_ -DINTERNATIONAL -DINTLMSG_CODEPAGE=1252 -Zc:wchar_t- -Zc:forScope- -wd4867 -wd4430 -MT -U_MT -W3 /GR- -QRarch4T -DTHUMBSUPPORT -QRimplicit-import- -QRinterwork-return /GS"
};
config WinCE.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const WinCE.isa = String "v4T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config WinCE.lnk // module-wide
index URL

The linker command and all required options

XDCscript usage meta-domain
const WinCE.lnk = ITarget2.Command {
    cmd: "$(rootDir)/sdk/bin/i386/arm/link -nologo",
    opts: "-base:0x00010000 -MERGE:.rdata=.text -MERGE:.astart=.text -align:4096 -ignore:4001,4070,4078,4086,4089,4096,4099,4108,4229 /STACK:65536,4096 /LARGEADDRESSAWARE -incremental:no /opt:ref -SUBSYSTEM:WINDOWSCE,6.00"
};
config WinCE.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const WinCE.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config WinCE.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const WinCE.name = String "WinCE";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config WinCE.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const WinCE.os = String "WindowsCE";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config WinCE.path // module-wide
index URL

Path components added during execution of commands

XDCscript usage meta-domain
const WinCE.path = String "$(rootDir)/sdk/bin/i386;$(rootDir)/sdk/bin/i386/arm";
DETAILS
The WinCE compiler DLLs are located in ?? subdirectory? The pdb DLL is located in ?? directory?
config WinCE.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const WinCE.rts = String "microsoft.targets.arm.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config WinCE.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const WinCE.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config WinCE.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const WinCE.stdInclude = String "microsoft/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config WinCE.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const WinCE.suffix = String "v4TCE";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config WinCE.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
WinCE.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config WinCE.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
WinCE.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config WinCE.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
WinCE.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config WinCE.ccOpts // module-wide
index URL

User modifiable default options

XDCscript usage meta-domain
WinCE.ccOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config WinCE.cmdPrefix // module-wide
index URL

Prefix to put in front of each command

XDCscript usage meta-domain
WinCE.cmdPrefix = String "";
DETAILS
This string is put in front of every Command before being passed to the shell for execution. This string can be used to run the compiler in emulation environments.
config WinCE.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
WinCE.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config WinCE.debugGen // module-wide
index URL

Debugger/IDE project file generation support

XDCscript usage meta-domain
WinCE.debugGen = ITarget.DebugGen {
    execTemplate: "microsoft/targets/vc_exec.xdt",
    execPattern: "$(cfgName).vcproj"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate VC project files that enable one to debug (and even rebuild) Executables from within the VC GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
To debug an executable: double click on the generated *.vcproj file, when the debugger comes up, type F11 (step into).
The first time you debug an executable, the VC debugger may prompt you for a "solution file" to save. Click OK (accepting the solution file name), and you will be at the first statement of your executable.
To set command line arguments prior to debugging: open the executable's "Project Properties" dialog (select the executable in the "Solution Explorer" window and pull-down View->"Property Pages" or type shift-F4), select "Debugging" in the left-most pane of the executable's "Property Pages", and enter command line arguments in the "Command Arguments" text box.
SEE
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/vxtskdebugginganexecreatedwithoutvisualstudioproject.asp
config WinCE.entryPoint // module-wide
index URL

Define which function is called at startup

XDCscript usage meta-domain
WinCE.entryPoint = WinCE.EntryPoint WinCE.mainCRTStartup;
config WinCE.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
WinCE.execExt = String ".exe";
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config WinCE.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
WinCE.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config WinCE.includeOpts // module-wide
index URL

User modifiable include paths

XDCscript usage meta-domain
WinCE.includeOpts = String " ";
config WinCE.lnkOpts // module-wide
index URL

User modifiable linker options

XDCscript usage meta-domain
WinCE.lnkOpts = ITarget2.Options {
    prefix: "-stack:65536,4096",
    suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -nodefaultlib"
};
config WinCE.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
WinCE.platform = String "host.platforms.arm";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config WinCE.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
WinCE.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config WinCE.profiles // module-wide
index URL

User modifiable default profiles

XDCscript usage meta-domain
WinCE.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-Od -Z7",
                defs: "-D_DEBUG, -DDEBUG"
            },
            linkOpts: "-debug -debugtype:cv,fixup coredll.lib corelibc.lib"
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2",
                defs: "-DNDEBUG=1"
            },
            linkOpts: "coredll.lib corelibc.lib"
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config WinCE.projectRoot // module-wide
index URL

Path to the project root of the selected OS configuration

XDCscript usage meta-domain
WinCE.projectRoot = String undefined;
DETAILS
This parameter specifies the absolute path to the root of an OS configuration within an OS design. OS configurations are located in the subdirectory 'Wince600' of your OS design directory. Each project root contains the batch file PBInitEnv.bat. This parameter determines where this target is searching for OS modules when linking an application.
config WinCE.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
WinCE.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config WinCE.strictANSI // module-wide
index URL

Disable Microsoft C/C++ language extensions

XDCscript usage meta-domain
WinCE.strictANSI = Bool false;
DETAILS
Set to true if you plan to port your program to other environments. The compiler treats extended keywords as simple identifiers, disables the other Microsoft extensions, and automatically defines the __STDC__ predefined macro for C programs. This option shows up as "-Za" on the command line when strictANSI is set to true.
config WinCE.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
WinCE.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the build number.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the Visual C++ 2005 Express Edition, the output of the command cl may contains the compiler version string 14.00.50727.42. The Compatibility Key is [1,0,14.00,50727].
config WinCE.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCscript usage meta-domain
WinCE.versionMap = String[string] [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
WinCE.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
WinCE.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
WinCE.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
WinCE.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
WinCE.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
WinCE.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
WinCE.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
WinCE.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
WinCE.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
WinCE.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
WinCE.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
WinCE.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
WinCE.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
WinCE.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
WinCE.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
WinCE.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
WinCE.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
WinCE.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
WinCE.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
WinCE.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
WinCE.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
WinCE.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
WinCE.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
WinCE.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
WinCE.setPath() // module-wide
index URL

Return path needed to find necessary DLLS

XDCscript usage meta-domain
WinCE.setPath() returns Any
DETAILS
The microsoft compilers often require one or more directories to be in the PATH; this allows the compiler to find necessary DLLs. A target implementing this function returns a string with path components separated by ";".
generated on Thu, 08 Nov 2012 02:14:04 GMT


module microsoft.targets.arm.WinCE

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== WinCE.xdc ========
    15     */
    16
    17    package microsoft.targets.arm;
    18
    19    /*!
    20     *  ======== WinCE.xdc ========
    21     *  Microsoft Windows Embedded "target" using the ARM compiler.
    22     */
    23
    24    metaonly module WinCE inherits microsoft.targets.ITarget {
    25
    26        override readonly config string name                    = "WinCE";
    27        override readonly config string os                      = "WindowsCE";
    28        override readonly config string suffix                  = "v4TCE";
    29        override readonly config string isa                     = "v4T";
    30        override readonly config xdc.bld.ITarget.Model model    = {
    31            endian: "little"
    32        };
    33
    34        override readonly config string stdInclude = "microsoft/targets/arm/std.h";
    35        override readonly config string rts     = "microsoft.targets.arm.rts";
    36    /* readonly */    override config string platform   = "host.platforms.arm";
    37    /* readonly */    override config string execExt    = ".exe";
    38        override config bool strictANSI  = false;
    39
    40        /*!
    41         *  ======== remoteInitScript ========
    42         *  @_nodoc
    43         *  Environment initialization script.
    44         *
    45         *  When a WinCE compiler is invoked remotely, a script that initializes
    46         *  various environment variables must be run first.
    47         */
    48        config string remoteInitScript;
    49
    50        /*!
    51         *  ======== projectRoot ========
    52         *  Path to the project root of the selected OS configuration.
    53         *
    54         *  This parameter specifies the absolute path to the root of an OS
    55         *  configuration within an OS design. OS configurations are located in
    56         *  the subdirectory 'Wince600' of your OS design directory. Each
    57         *  project root contains the batch file `PBInitEnv.bat`.
    58         *  This parameter determines where this target is searching for OS
    59         *  modules when linking an application.
    60         */
    61        config string projectRoot;
    62
    63        /*!
    64         *  ======== sysGenIsa ========
    65         *  @_nodoc
    66         *  Selected Arm architecture.
    67         *
    68         *  This parameter defaults to ARMV4I.
    69         */
    70        config string sysGenIsa = "ARMV4I";
    71
    72       /*!
    73        *  ======== EntryPoint ========
    74        *  Entry point options
    75        */
    76        enum EntryPoint {
    77            UNDEFINED,         /*! -entry option is user specified */
    78            mainCRTStartup,    /*! for apps using SUBSYSTEM:CONSOLE, calls main */
    79            WinMainCRTStartup, /*! for SUBSYSTEM:WINDOWS, calls WinMain */
    80            _DllMainCRTStartup /*! for DLLS, calls DllMain */
    81        };
    82
    83       /*!
    84        *  ======== entryPoint ========
    85        *  Define which function is called at startup
    86        */
    87        config EntryPoint entryPoint = mainCRTStartup;
    88
    89        /*!
    90         *  ======== path ========
    91         *  Path components added during execution of commands.
    92         *
    93         *  The WinCE compiler DLLs are located in ?? subdirectory?
    94         *  The pdb DLL is located in ?? directory?
    95         */
    96        readonly config string path =
    97            "$(rootDir)/sdk/bin/i386;$(rootDir)/sdk/bin/i386/arm";
    98
    99        /*!
   100         *  ======== ar ========
   101         *  The archiver command and all required options.
   102         *
   103         *  4001 warning warns that there are only libraries being supplied.
   104         */
   105        override readonly config xdc.bld.ITarget2.Command ar = {
   106            cmd: "$(rootDir)/sdk/bin/i386/arm/link.exe -lib -nologo",
   107            opts: "-ignore:4001"
   108        };
   109
   110        /*!
   111         *  ======== cc ========
   112         *  The compile command and all required options.
   113         */
   114        override readonly config xdc.bld.ITarget2.Command cc = {
   115            cmd: "$(rootDir)/sdk/bin/i386/arm/cl.exe -nologo -c",
   116            opts: "-Gy -GF -D_CRT_SECURE_NO_DEPRECATE -D_USE_32BIT_TIME_T -DUNICODE  -D_UNICODE -DUNDER_CE=600 -D_WIN32_WCE=0x600 -DWIN32 -DSTRICT -DARM -DARMV4I  -D_ARM_ -DINTERNATIONAL -DINTLMSG_CODEPAGE=1252 -Zc:wchar_t- -Zc:forScope- -wd4867 -wd4430 -MT -U_MT -W3 /GR- -QRarch4T -DTHUMBSUPPORT -QRimplicit-import- -QRinterwork-return /GS"
   117        };
   118
   119        /*!
   120         *  ======== asm ========
   121         *  The assemble command and all required options.
   122         */
   123        override readonly config xdc.bld.ITarget2.Command asm = {
   124            cmd: "$(rootDir)/sdk/bin/i386/arm/armasm.exe -nologo",
   125            opts: "-arch 4T"
   126        };
   127
   128        /*!
   129         *  ======== lnk ========
   130         *  The linker command and all required options.
   131         */
   132        override readonly config xdc.bld.ITarget2.Command lnk = {
   133            cmd: "$(rootDir)/sdk/bin/i386/arm/link -nologo",
   134            opts: "-base:0x00010000 -MERGE:.rdata=.text -MERGE:.astart=.text -align:4096 -ignore:4001,4070,4078,4086,4089,4096,4099,4108,4229 /STACK:65536,4096 /LARGEADDRESSAWARE -incremental:no /opt:ref -SUBSYSTEM:WINDOWSCE,6.00"
   135        };
   136
   137        /*!
   138         *  ======== ccOpts ========
   139         *  User modifiable default options.
   140         */
   141        override config xdc.bld.ITarget2.Options ccOpts = {
   142            prefix: "",
   143            suffix: ""
   144        };
   145
   146        /*!
   147         *  ======== includeOpts ========
   148         *  User modifiable include paths.
   149         */
   150        override config string includeOpts = " ";
   151
   152        /*!
   153         *  ======== lnkOpts ========
   154         *  User modifiable linker options.
   155         */
   156        override config xdc.bld.ITarget2.Options lnkOpts = {
   157            prefix: "-stack:65536,4096",
   158            suffix: "-map:$(XDCCFGDIR)/$@.map -pdb:$(XDCCFGDIR)/$@.pdb -nodefaultlib"
   159        };
   160
   161        /*!
   162         *  ======== profiles ========
   163         *  User modifiable default profiles.
   164         */
   165        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   166            ["debug", {
   167                compileOpts: {
   168                    copts: "-Od -Z7",
   169                    defs:  "-D_DEBUG, -DDEBUG",
   170                },
   171                linkOpts: "-debug -debugtype:cv,fixup coredll.lib corelibc.lib",
   172            }],
   173            ["release", {
   174                compileOpts: {
   175                    copts: "-O2",
   176                    defs:  "-DNDEBUG=1",
   177                },
   178                linkOpts: "coredll.lib corelibc.lib",
   179            }],
   180        ];
   181
   182            /*!
   183         *  ======== stdTypes ========
   184         *  @_nodoc
   185         */
   186        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   187            t_IArg          : { size: 4, align: 4 },
   188            t_Char          : { size: 1, align: 1 },
   189            t_Double        : { size: 8, align: 8 },
   190            t_Float         : { size: 4, align: 4 },
   191            t_Fxn           : { size: 4, align: 4 },
   192            t_Int           : { size: 4, align: 4 },
   193            t_Int8          : { size: 1, align: 1 },
   194            t_Int16         : { size: 2, align: 2 },
   195            t_Int32         : { size: 4, align: 4 },
   196            t_Int64         : { size: 8, align: 8 },
   197            t_Long          : { size: 4, align: 4 },
   198            t_LDouble       : { size: 8, align: 8 },
   199            t_Ptr           : { size: 4, align: 4 },
   200            t_Short         : { size: 2, align: 2 },
   201            t_Size          : { size: 4, align: 4 },
   202        };
   203    }
   204
   205    /*
   206     *  @(#) microsoft.targets.arm; 1, 0, 0, 0,361; 11-4-2012 21:21:20; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   207
   208     */
   209


package microsoft.targets.arm.rts
index URL

Runtime support package for the Arm targets for use with Microsoft tools

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in microsoft/targets/arm/rts/package.xdc
requires xdc.runtime;
package microsoft.targets.arm.rts [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:04 GMT


package microsoft.targets.arm.rts

     1    /*
     2     *  Copyright 2012 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    requires xdc.runtime;
     7
     8    /*!
     9     *  ======== microsoft.targets.arm.rts ========
    10     *  Runtime support package for the Arm targets for use with Microsoft tools.
    11     *
    12     *  This package builds a library of standard XDC system support functions.
    13     *  In particular, it builds several implementations of the
    14     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    15     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    16     *  the same source in different runtime support packages for different ISAs.
    17     */
    18    package microsoft.targets.arm.rts [1,0,0,0] {
    19    }
    20    /*
    21     *  @(#) microsoft.targets.arm.rts; 1, 0, 0, 0,168; 11-4-2012 21:51:52; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    22
    23     */
    24


package microsoft.targets.rts
index URL

Runtime support package for the x86 targets for use with Microsoft tools

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in microsoft/targets/rts/package.xdc
requires xdc.runtime;
package microsoft.targets.rts [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:03 GMT


package microsoft.targets.rts

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== microsoft.targets.rts ========
    16     *  Runtime support package for the x86 targets for use with Microsoft tools.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package microsoft.targets.rts [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) microsoft.targets.rts; 1, 0, 0, 0,599; 11-4-2012 21:51:55; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package qnx.targets.arm
index URL

GCC-based QNX code generation targets for Arm

This package offers a generic support for Qnx Arm compilers. For the targets in this package, a user must set configuration parameter LONGNAME in config.bld. That parameter specifies the relative path to the compiler executable from the directory specified in rootDir.
XDCspec declarations sourced in qnx/targets/arm/package.xdc
requires xdc.bld;
requires gnu.targets;
package qnx.targets.arm [1, 0, 0] {
    module Qnx;
    // Embedded little endian ARM v7 Qnx target
}
generated on Thu, 08 Nov 2012 02:14:00 GMT


package qnx.targets.arm

     1    /*
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    requires xdc.bld;
    14    requires gnu.targets;
    15
    16    /*!
    17     *  ======== qnx.targets.arm ========
    18     *  GCC-based QNX code generation targets for Arm
    19     *
    20     *  This package offers a generic support for Qnx Arm compilers.
    21     *  For the targets in this package, a user must set configuration parameter
    22     *  `LONGNAME` in `config.bld`. That parameter specifies the relative path to
    23     *  the compiler executable from the directory specified in `rootDir`.
    24     */
    25    package qnx.targets.arm [1, 0, 0] {
    26        module Qnx;
    27    }
    28    /*
    29     *  @(#) qnx.targets.arm; 1, 0, 0,107; 11-4-2012 21:21:22; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    30
    31     */
    32


module qnx.targets.arm.Qnx

metaonly module qnx.targets.arm.Qnx
index URL

Embedded little endian ARM v7 Qnx target

  • XDCscript usage
  • Individual elements
This module defines an embedded target for Qnx on ARM.
XDCscript usage meta-domain sourced in qnx/targets/arm/Qnx.xdc
var Qnx = xdc.useModule('qnx.targets.arm.Qnx');
module-wide constants & types
    var obj = new Qnx.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Qnx.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Qnx.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Qnx.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Qnx.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Qnx.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Qnx.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Qnx.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Qnx.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Qnx.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Qnx.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Qnx.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Qnx.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const Qnx.ar// The command used to create an archive = ITarget2.Command {
        cmd: "$(rootDir)/bin/ntoarm-ar ",
        opts: "cr"
    };
    const Qnx.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/bin/qcc -c -x assembler",
        opts: ""
    };
    const Qnx.base// A target that this target is based upon = ITarget.Module computed value;
    const Qnx.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Qnx.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "$(rootDir)/bin/qcc -Vgcc_ntoarmv7 -EL -c",
        opts: ""
    };
    const Qnx.isa// CPU Instruction Set Architecture (ISA) = String "v7A";
    const Qnx.lnk// The command used to link executables = ITarget2.Command {
        cmd: "$(rootDir)/bin/qcc -Vgcc_ntoarmv7 -EL ",
        opts: ""
    };
    const Qnx.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const Qnx.name// Nickname for this target = String "Qnx";
    const Qnx.os// Name of OS required to run programs built for this target = String "Qnx";
    const Qnx.rts// Name of a run-time support package to include = String "qnx.targets.arm.rts";
    const Qnx.sectMap// Output section name to segment type mapping = String[string] computed value;
    const Qnx.stdInclude// Standard C/C++ types header = String "qnx/targets/arm/std.h";
    const Qnx.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Qnx.suffix// Suffix appended to all objs, libraries, and executable = String "qv7";
     Qnx.GCCVERS// = String "";
     Qnx.QNX_CONFIGURATION// = String "";
     Qnx.QNX_HOST// = String "";
     Qnx.QNX_TARGET// = String "";
     Qnx.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Qnx.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Qnx.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     Qnx.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "",
        suffix: "-Dfar= "
    };
     Qnx.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     Qnx.debugGen// Debugger/IDE file generation support = ITarget.DebugGen undefined;
     Qnx.execExt// Extension for executables = String undefined;
     Qnx.extensions// File extensions recognized by this target = ITarget.Extension[string] [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
     Qnx.includeOpts// Additional user configurable target-specific include path options = String undefined;
     Qnx.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Qnx.platform// The default platform name for this target = String "host.platforms.arm";
     Qnx.platforms// A set of platforms that can support this target = String[] [ ];
     Qnx.profiles// Profiles supported by this target = ITarget.OptionSet[string] [
        [
            "release",
            { }
        ],
        [
            "debug",
            { }
        ]
    ];
     Qnx.rootDir// Installation directory for this target's code generation tools = String undefined;
     Qnx.version// The Compatibility Key associated with this target = String undefined;
     Qnx.versionMap// Map of compiler version numbers to compatibility keys = String[string] [ ];
module-wide functions
     Qnx.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Qnx.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Qnx.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Qnx.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Qnx.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Qnx.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Qnx.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Qnx.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Qnx.getVersion// Get a target-specific Compatibility Key string() returns String
     Qnx.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Qnx.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Qnx.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Qnx.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Qnx.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Qnx.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Qnx.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Qnx.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Qnx.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Qnx.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Qnx.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Qnx.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Qnx.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Qnx.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Qnx.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Qnx.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Qnx.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Qnx.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Qnx.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Qnx.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Qnx.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Qnx.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Qnx.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Qnx.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Qnx.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Qnx.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Qnx.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Qnx.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Qnx.alignDirectiveSupported = Bool false;
config Qnx.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Qnx.ar = ITarget2.Command {
    cmd: "$(rootDir)/bin/ntoarm-ar ",
    opts: "cr"
};
config Qnx.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Qnx.asm = ITarget2.Command {
    cmd: "$(rootDir)/bin/qcc -c -x assembler",
    opts: ""
};
config Qnx.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Qnx.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Qnx.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Qnx.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Qnx.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Qnx.cc = ITarget2.Command {
    cmd: "$(rootDir)/bin/qcc -Vgcc_ntoarmv7 -EL -c",
    opts: ""
};
config Qnx.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Qnx.isa = String "v7A";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Qnx.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Qnx.lnk = ITarget2.Command {
    cmd: "$(rootDir)/bin/qcc -Vgcc_ntoarmv7 -EL ",
    opts: ""
};
config Qnx.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Qnx.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Qnx.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Qnx.name = String "Qnx";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Qnx.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Qnx.os = String "Qnx";
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Qnx.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Qnx.rts = String "qnx.targets.arm.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Qnx.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Qnx.sectMap = String[string] computed value;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Qnx.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Qnx.stdInclude = String "qnx/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Qnx.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Qnx.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Qnx.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Qnx.suffix = String "qv7";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Qnx.GCCVERS // module-wide
index URL
XDCscript usage meta-domain
Qnx.GCCVERS = String "";
config Qnx.QNX_CONFIGURATION // module-wide
index URL
XDCscript usage meta-domain
Qnx.QNX_CONFIGURATION = String "";
config Qnx.QNX_HOST // module-wide
index URL
XDCscript usage meta-domain
Qnx.QNX_HOST = String "";
config Qnx.QNX_TARGET // module-wide
index URL
XDCscript usage meta-domain
Qnx.QNX_TARGET = String "";
config Qnx.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Qnx.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Qnx.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Qnx.asmOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Qnx.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Qnx.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Qnx.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Qnx.ccOpts = ITarget2.Options {
    prefix: "",
    suffix: "-Dfar= "
};
config Qnx.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Qnx.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Qnx.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCscript usage meta-domain
Qnx.debugGen = ITarget.DebugGen undefined;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config Qnx.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Qnx.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Qnx.extensions // module-wide
index URL

File extensions recognized by this target

XDCscript usage meta-domain
Qnx.extensions = ITarget.Extension[string] [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config Qnx.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Qnx.includeOpts = String undefined;
config Qnx.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Qnx.lnkOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Qnx.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Qnx.platform = String "host.platforms.arm";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Qnx.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Qnx.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Qnx.profiles // module-wide
index URL

Profiles supported by this target

XDCscript usage meta-domain
Qnx.profiles = ITarget.OptionSet[string] [
    [
        "release",
        { }
    ],
    [
        "debug",
        { }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Qnx.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Qnx.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Qnx.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Qnx.version = String undefined;
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
config Qnx.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCscript usage meta-domain
Qnx.versionMap = String[string] [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
Qnx.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Qnx.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Qnx.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Qnx.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Qnx.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Qnx.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Qnx.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Qnx.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Qnx.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Qnx.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Qnx.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Qnx.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Qnx.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Qnx.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Qnx.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Qnx.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Qnx.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Qnx.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Qnx.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Qnx.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Qnx.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Qnx.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Qnx.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Qnx.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:00 GMT


module qnx.targets.arm.Qnx

     1    /*
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    import xdc.bld.ITarget2;
    14
    15    /*!
    16     *  ======== Qnx.xdc ========
    17     *  Embedded little endian ARM v7 Qnx target
    18     *
    19     *  This module defines an embedded target for Qnx on ARM.
    20     *
    21     */
    22    @TargetHeader("xdc/bld/stddefs.xdt")
    23    metaonly module Qnx inherits xdc.bld.ITarget2 {
    24        override readonly config string name                = "Qnx";
    25        override readonly config string os                  = "Qnx";
    26        override readonly config string suffix              = "qv7";
    27        override readonly config string isa                 = "v7A";
    28        override readonly config xdc.bld.ITarget.Model model= {
    29            endian: "little"
    30        };
    31
    32        override readonly config string rts = "qnx.targets.arm.rts";
    33        override config string platform     = "host.platforms.arm";
    34
    35        config String QNX_HOST = "";
    36        config String QNX_TARGET = "";
    37        config String QNX_CONFIGURATION = "";
    38        config String GCCVERS = "";
    39
    40        override readonly config String stdInclude = "qnx/targets/arm/std.h";
    41
    42        override readonly config ITarget2.Command cc = {
    43            cmd: "$(rootDir)/bin/qcc -Vgcc_ntoarmv7 -EL -c",
    44            opts: ""
    45        };
    46
    47        override config ITarget2.Options ccOpts = {
    48    //        prefix: "-fPIC -Wunused",
    49            prefix: "",
    50            suffix: "-Dfar= "
    51        };
    52
    53        override readonly config ITarget2.Command asm = {
    54            cmd: "$(rootDir)/bin/qcc -c -x assembler",
    55            opts: ""
    56        };
    57
    58        override readonly config ITarget2.Command ar = {
    59            cmd: "$(rootDir)/bin/ntoarm-ar ",
    60            opts: "cr"
    61        };
    62
    63        override readonly config ITarget2.Command lnk = {
    64            cmd: "$(rootDir)/bin/qcc -Vgcc_ntoarmv7 -EL ",
    65            opts: ""
    66        };
    67
    68        override config ITarget2.Options lnkOpts = {
    69            prefix: "",
    70            suffix: ""
    71    //        suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map"
    72        };
    73
    74        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    75            t_IArg          : { size: 4, align: 4 },
    76            t_Char          : { size: 1, align: 1 },
    77            t_Double        : { size: 8, align: 4 },
    78            t_Float         : { size: 4, align: 4 },
    79            t_Fxn           : { size: 4, align: 4 },
    80            t_Int           : { size: 4, align: 4 },
    81            t_Int8          : { size: 1, align: 1 },
    82            t_Int16         : { size: 2, align: 2 },
    83            t_Int32         : { size: 4, align: 4 },
    84            t_Int64         : { size: 8, align: 4 },
    85            t_Long          : { size: 4, align: 4 },
    86            t_LDouble       : { size: 8, align: 4 },
    87            t_LLong         : { size: 8, align: 4 },
    88            t_Ptr           : { size: 4, align: 4 },
    89            t_Short         : { size: 2, align: 2 },
    90            t_Size          : { size: 4, align: 4 },
    91        };
    92    }
    93    /*
    94     *  @(#) qnx.targets.arm; 1, 0, 0,107; 11-4-2012 21:21:22; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    95
    96     */
    97


package qnx.targets.arm.rts
index URL

Runtime support package for the qnx.targets.arm.Qnx target

This package builds a library of standard XDC system support functions using sources from the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs).
XDCspec declarations sourced in qnx/targets/arm/rts/package.xdc
requires xdc.runtime;
package qnx.targets.arm.rts [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:00 GMT


package qnx.targets.arm.rts

     1    /*
     2     *  Copyright (c) 2011 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    requires xdc.runtime;
    14
    15    /*!
    16     *  ======== qnx.targets.arm.rts ========
    17     *  Runtime support package for the qnx.targets.arm.Qnx target
    18     *
    19     *  This package builds a library of standard XDC system support functions
    20     *  using sources from the xdc.runtime package (to avoid having multiple copies of
    21     *  the same source in different runtime support packages for different ISAs).
    22     */
    23    package qnx.targets.arm.rts [1, 0, 0] {
    24    }
    25    /*
    26     *  @(#) qnx.targets.arm.rts; 1, 0, 0,38; 11-4-2012 21:51:57; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    27
    28     */
    29


package ti.catalog
index URL

TI device specifications

XDCspec declarations sourced in ti/catalog/package.xdc
package ti.catalog [1, 0, 0] {
    interface ICpuDataSheet;
    // TI-specific extensions to xdc.platform.ICpuDataSheet
}
generated on Thu, 08 Nov 2012 02:15:04 GMT


package ti.catalog

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ti.catalog ========
    15     *  TI device specifications
    16     */
    17    package ti.catalog [1,0,0] {
    18        interface ICpuDataSheet;
    19    }
    20    /*
    21     *  @(#) ti.catalog; 1, 0, 0,268; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


interface ti.catalog.ICpuDataSheet

metaonly interface ti.catalog.ICpuDataSheet
index URL

TI-specific extensions to xdc.platform.ICpuDataSheet

XDCspec summary sourced in ti/catalog/ICpuDataSheet.xdc
metaonly interface ICpuDataSheet { ...
// inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
package ti.catalog;
metaonly interface ICpuDataSheet inherits ICpuDataSheet {
instance:
per-instance config parameters
    config String cpuCore// A string identifying the CPU Core;
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    config Int dataWordSize// The size of an int on the target in 8-bit bytes;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes;
    config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ICpuDataSheet.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
config String cpuCore;
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ICpuDataSheet.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
config String cpuCoreRevision;
config ICpuDataSheet.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
config Int dataWordSize;
config ICpuDataSheet.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
config String deviceHeader;
config ICpuDataSheet.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
config Int minDataUnitSize;
config ICpuDataSheet.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
config Int minProgUnitSize;
config ICpuDataSheet.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ICpuDataSheet.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ICpuDataSheet.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/ICpuDataSheet.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:04 GMT


interface ti.catalog.ICpuDataSheet

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ICpuDataSheet.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== ICpuDataSheet ========
    19     *  TI-specific extensions to xdc.platform.ICpuDataSheet
    20     */
    21    metaonly interface ICpuDataSheet inherits xdc.platform.ICpuDataSheet {
    22
    23    instance:
    24
    25        /*!
    26         *  ======== isa ========
    27         *  @_nodoc
    28         */
    29        config string isa;
    30    }
    31    /*
    32     *  @(#) ti.catalog; 1, 0, 0,268; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


package ti.catalog.arm
index URL

Package of devices for the arm family of Arm processors

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/arm/package.xdc
requires xdc.platform;
requires ti.catalog.arm.peripherals.timers;
package ti.catalog.arm [1, 0, 1] {
    interface ILM3Sx7xx;
    // The Stellaris device data sheet module
    interface ILM3Sx9xx;
    // The Stellaris device data sheet module
    interface ILM3SxBxx;
    // The Stellaris device data sheet module
    interface IOMAP2x3x;
    interface IOMAP3xxx;
    interface ITMS320DA8xx;
    module AM1705;
    module AM1707;
    module AM1806;
    module AM1808;
    module CortexM3;
    // The CortexM3 device data sheet module
    module LM3S2793;
    module LM3S2B93;
    module LM3S5791;
    module LM3S5B91;
    module LM3S8962;
    module LM3S9790;
    module LM3S9792;
    module LM3S9B90;
    module LM3S9B92;
    module LM3S9B95;
    module LM3S9B96;
    module OMAP2430;
    module OMAP2431;
    module OMAP2530;
    module OMAP2531;
    module OMAP3403;
    module OMAP3405;
    module OMAP3425;
    module OMAP3503;
    module OMAP3505;
    module OMAP3515;
    module OMAP3517;
    module OMAP3525;
    module OMAP3530;
    module OMAPL108;
    module OMAPL118;
    module OMAPL137;
    module OMAPL138;
    module TMS320C1030;
    module TMS320C3430;
    module TMS320C5912;
    module TMS320CDM510;
    module TMS320CDM6446;
    module TMS320CDM6467;
    module TMS320CDM730;
    // The TMS320CDM730 device data sheet module
    module TMS320CDM740;
    // The TMS320CDM740 device data sheet module
    module TMS320DA828;
    module TMS320DA830;
    module TMS320DA840;
    module TMS320DA850;
    module TMS320DM355;
    module TMS320DM357;
    module TMS320DM365;
    module TMS470R10;
    // The C470 device data sheet module
    module TMS570LS20216;
    // The C470 device data sheet module
    module TMS570PSF762;
    // The C470 device data sheet module
    module TNETV107X;
}
generated on Thu, 08 Nov 2012 02:15:11 GMT


package ti.catalog.arm

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14    requires ti.catalog.arm.peripherals.timers;
    15
    16    /*!
    17     *  ======== ti.catalog.arm ========
    18     *  Package of devices for the arm family of Arm processors.
    19     *
    20     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    21     *  interface. This interface is used by platforms (modules that implement
    22     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    23     */
    24    package ti.catalog.arm [1,0,1] {
    25        interface ILM3Sx7xx;
    26        module LM3S9792, LM3S9790, LM3S5791, LM3S2793;
    27        interface ILM3SxBxx;
    28        module LM3S9B96, LM3S9B95, LM3S9B92, LM3S5B91, LM3S9B90, LM3S2B93;
    29        interface ILM3Sx9xx;
    30        module LM3S8962;
    31        module TMS470R10;
    32        module TMS320C5912;
    33        module TMS320C1030;
    34        module TMS320CDM6446, TMS320CDM6467;
    35        module TMS320DM355, TMS320DM357, TMS320DM365;
    36        module TMS320CDM510;
    37        interface IOMAP2x3x;
    38        module OMAP2430, OMAP2431, OMAP2530, OMAP2531;
    39        interface IOMAP3xxx;
    40        module OMAP3403, OMAP3405, OMAP3503, OMAP3505, OMAP3515, OMAP3517;
    41        module OMAP3425, OMAP3525, TMS320C3430, OMAP3530;
    42        interface ITMS320DA8xx;
    43        module TMS320DA828, TMS320DA830;
    44        module OMAPL137;
    45        module CortexM3;
    46        module TMS570PSF762, TMS570LS20216;
    47        module TMS320DA840, TMS320DA850;
    48        module AM1705, AM1707;
    49        module AM1806, AM1808;
    50        module OMAPL108, OMAPL118, OMAPL138;
    51        module TMS320CDM730, TMS320CDM740;
    52        module TNETV107X;
    53    }
    54    /*
    55     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:08; /db/ztree/library/trees/platform/platform-n27x/src/
    56     */
    57


module ti.catalog.arm.AM1705

metaonly module ti.catalog.arm.AM1705
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/AM1705.xdc
var AM1705 = xdc.useModule('ti.catalog.arm.AM1705');
per-instance config parameters
    var params = new AM1705.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = AM1705.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new AM1705.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config AM1705.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new AM1705.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config AM1705.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new AM1705.Params;
...
params.cpuCoreRevision = String "1.0";
config AM1705.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1705.Params;
...
params.dataWordSize = Int 4;
config AM1705.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new AM1705.Params;
...
params.deviceHeader = String undefined;
config AM1705.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new AM1705.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config AM1705.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1705.Params;
...
params.minDataUnitSize = Int 1;
config AM1705.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1705.Params;
...
params.minProgUnitSize = Int 1;
config AM1705.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new AM1705.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new AM1705.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = AM1705.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
AM1705.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
AM1705.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


module ti.catalog.arm.AM1705

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== AM1705.xdc ========
    15     *
    16     */
    17
    18    metaonly module AM1705 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:06; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.AM1707

metaonly module ti.catalog.arm.AM1707
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/AM1707.xdc
var AM1707 = xdc.useModule('ti.catalog.arm.AM1707');
per-instance config parameters
    var params = new AM1707.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = AM1707.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new AM1707.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config AM1707.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new AM1707.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config AM1707.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new AM1707.Params;
...
params.cpuCoreRevision = String "1.0";
config AM1707.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1707.Params;
...
params.dataWordSize = Int 4;
config AM1707.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new AM1707.Params;
...
params.deviceHeader = String undefined;
config AM1707.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new AM1707.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config AM1707.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1707.Params;
...
params.minDataUnitSize = Int 1;
config AM1707.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1707.Params;
...
params.minProgUnitSize = Int 1;
config AM1707.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new AM1707.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new AM1707.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = AM1707.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
AM1707.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
AM1707.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


module ti.catalog.arm.AM1707

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== AM1707.xdc ========
    15     *
    16     */
    17
    18    metaonly module AM1707 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:06; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.AM1806

metaonly module ti.catalog.arm.AM1806
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/AM1806.xdc
var AM1806 = xdc.useModule('ti.catalog.arm.AM1806');
per-instance config parameters
    var params = new AM1806.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = AM1806.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new AM1806.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config AM1806.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new AM1806.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config AM1806.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new AM1806.Params;
...
params.cpuCoreRevision = String "1.0";
config AM1806.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1806.Params;
...
params.dataWordSize = Int 4;
config AM1806.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new AM1806.Params;
...
params.deviceHeader = String undefined;
config AM1806.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new AM1806.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config AM1806.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1806.Params;
...
params.minDataUnitSize = Int 1;
config AM1806.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1806.Params;
...
params.minProgUnitSize = Int 1;
config AM1806.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new AM1806.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new AM1806.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = AM1806.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
AM1806.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
AM1806.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


module ti.catalog.arm.AM1806

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== AM1806.xdc ========
    15     *
    16     */
    17
    18    metaonly module AM1806 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:06; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.AM1808

metaonly module ti.catalog.arm.AM1808
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/AM1808.xdc
var AM1808 = xdc.useModule('ti.catalog.arm.AM1808');
per-instance config parameters
    var params = new AM1808.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = AM1808.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new AM1808.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config AM1808.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new AM1808.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config AM1808.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new AM1808.Params;
...
params.cpuCoreRevision = String "1.0";
config AM1808.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1808.Params;
...
params.dataWordSize = Int 4;
config AM1808.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new AM1808.Params;
...
params.deviceHeader = String undefined;
config AM1808.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new AM1808.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config AM1808.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1808.Params;
...
params.minDataUnitSize = Int 1;
config AM1808.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM1808.Params;
...
params.minProgUnitSize = Int 1;
config AM1808.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new AM1808.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new AM1808.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = AM1808.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
AM1808.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
AM1808.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


module ti.catalog.arm.AM1808

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== AM1808.xdc ========
    15     *
    16     */
    17
    18    metaonly module AM1808 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:06; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.CortexM3

metaonly module ti.catalog.arm.CortexM3
index URL

The CortexM3 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/CortexM3.xdc
var CortexM3 = xdc.useModule('ti.catalog.arm.CortexM3');
per-instance config parameters
    var params = new CortexM3.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [ ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = CortexM3.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new CortexM3.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [ ];
    // The memory map returned be getMemoryMap()
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config CortexM3.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config CortexM3.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.cpuCoreRevision = String "1.0";
config CortexM3.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.dataWordSize = Int 4;
config CortexM3.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.deviceHeader = String undefined;
config CortexM3.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.memMap = IPlatform.Memory[string] [ ];
config CortexM3.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.minDataUnitSize = Int 1;
config CortexM3.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.minProgUnitSize = Int 1;
config CortexM3.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new CortexM3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = CortexM3.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
CortexM3.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
CortexM3.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


module ti.catalog.arm.CortexM3

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== CortexM3.xdc ========
    15     */
    16
    17    package ti.catalog.arm;
    18
    19    /*!
    20     *  ======== CortexM3 ========
    21     *  The CortexM3 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     *
    26     */
    27    metaonly module CortexM3 inherits ti.catalog.ICpuDataSheet
    28    {
    29    instance:
    30        override config string cpuCore           = "CM3";
    31        override config string isa               = "v7M";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string] = [];
    42    };
    43    /*
    44     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:06; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


interface ti.catalog.arm.ILM3Sx7xx

metaonly interface ti.catalog.arm.ILM3Sx7xx
index URL

The Stellaris device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/arm/ILM3Sx7xx.xdc
metaonly interface ILM3Sx7xx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
package ti.catalog.arm;
metaonly interface ILM3Sx7xx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned by getMemoryMap()[string] = [
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Timer.Instance timer0// ;
    config Timer.Instance timer1// ;
    config Timer.Instance timer2// ;
    config Timer.Instance timer3// ;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ILM3Sx7xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ILM3Sx7xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
override config String cpuCoreRevision = "1.0";
config ILM3Sx7xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
override config Int dataWordSize = 4;
config ILM3Sx7xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
config String deviceHeader;
config ILM3Sx7xx.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config ILM3Sx7xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
override config Int minDataUnitSize = 1;
config ILM3Sx7xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
override config Int minProgUnitSize = 1;
config ILM3Sx7xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
config IPeripheral.Instance peripherals[string];
config ILM3Sx7xx.timer0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
config Timer.Instance timer0;
config ILM3Sx7xx.timer1 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
config Timer.Instance timer1;
config ILM3Sx7xx.timer2 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
config Timer.Instance timer2;
config ILM3Sx7xx.timer3 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
config Timer.Instance timer3;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ILM3Sx7xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ILM3Sx7xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx7xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


interface ti.catalog.arm.ILM3Sx7xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ILM3Sx7xx.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ILM3Sx7xx.xdc ========
    20     *  The Stellaris device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26
    27    metaonly interface ILM3Sx7xx inherits ti.catalog.ICpuDataSheet
    28    {
    29
    30    instance:
    31        override config string cpuCore           = "CM3";
    32        override config string isa               = "v7M";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        config ti.catalog.arm.peripherals.timers.Timer.Instance timer0;
    39        config ti.catalog.arm.peripherals.timers.Timer.Instance timer1;
    40        config ti.catalog.arm.peripherals.timers.Timer.Instance timer2;
    41        config ti.catalog.arm.peripherals.timers.Timer.Instance timer3;
    42
    43        /*!
    44         *  ======== memMap ========
    45         *  The memory map returned by getMemoryMap().
    46         */
    47        config xdc.platform.IPlatform.Memory memMap[string] = [
    48            ["FRAM", {
    49                comment: "128KB FRAM",
    50                name: "FRAM",
    51                base: 0x00000000,
    52                len:  0x00020000
    53            }],
    54
    55            ["IRAM", {
    56                comment: "64KB IRAM",
    57                name: "IRAM",
    58                base: 0x20000000,
    59                len:  0x00010000
    60            }],
    61        ];
    62
    63    };
    64
    65    /*
    66     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:06; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


interface ti.catalog.arm.ILM3Sx9xx

metaonly interface ti.catalog.arm.ILM3Sx9xx
index URL

The Stellaris device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/arm/ILM3Sx9xx.xdc
metaonly interface ILM3Sx9xx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
package ti.catalog.arm;
metaonly interface ILM3Sx9xx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned by getMemoryMap()[string] = [
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Timer.Instance timer0// ;
    config Timer.Instance timer1// ;
    config Timer.Instance timer2// ;
    config Timer.Instance timer3// ;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ILM3Sx9xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ILM3Sx9xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
override config String cpuCoreRevision = "1.0";
config ILM3Sx9xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
override config Int dataWordSize = 4;
config ILM3Sx9xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
config String deviceHeader;
config ILM3Sx9xx.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config ILM3Sx9xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
override config Int minDataUnitSize = 1;
config ILM3Sx9xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
override config Int minProgUnitSize = 1;
config ILM3Sx9xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
config IPeripheral.Instance peripherals[string];
config ILM3Sx9xx.timer0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
config Timer.Instance timer0;
config ILM3Sx9xx.timer1 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
config Timer.Instance timer1;
config ILM3Sx9xx.timer2 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
config Timer.Instance timer2;
config ILM3Sx9xx.timer3 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
config Timer.Instance timer3;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ILM3Sx9xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ILM3Sx9xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/ILM3Sx9xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


interface ti.catalog.arm.ILM3Sx9xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ILM3Sx9xx.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ILM3Sx9xx.xdc ========
    20     *  The Stellaris device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26
    27    metaonly interface ILM3Sx9xx inherits ti.catalog.ICpuDataSheet
    28    {
    29
    30    instance:
    31        override config string cpuCore           = "CM3";
    32        override config string isa               = "v7M";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        config ti.catalog.arm.peripherals.timers.Timer.Instance timer0;
    39        config ti.catalog.arm.peripherals.timers.Timer.Instance timer1;
    40        config ti.catalog.arm.peripherals.timers.Timer.Instance timer2;
    41        config ti.catalog.arm.peripherals.timers.Timer.Instance timer3;
    42
    43        /*!
    44         *  ======== memMap ========
    45         *  The memory map returned by getMemoryMap().
    46         */
    47        config xdc.platform.IPlatform.Memory memMap[string] = [
    48            ["FRAM", {
    49                comment: "256KB FRAM",
    50                name: "FRAM",
    51                base: 0x00000000,
    52                len:  0x00040000
    53            }],
    54
    55            ["IRAM", {
    56                comment: "64KB IRAM",
    57                name: "IRAM",
    58                base: 0x20000000,
    59                len:  0x00010000
    60            }],
    61        ];
    62
    63    };
    64
    65    /*
    66     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:06; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


interface ti.catalog.arm.ILM3SxBxx

metaonly interface ti.catalog.arm.ILM3SxBxx
index URL

The Stellaris device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/arm/ILM3SxBxx.xdc
metaonly interface ILM3SxBxx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
package ti.catalog.arm;
metaonly interface ILM3SxBxx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned by getMemoryMap()[string] = [
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Timer.Instance timer0// ;
    config Timer.Instance timer1// ;
    config Timer.Instance timer2// ;
    config Timer.Instance timer3// ;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ILM3SxBxx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ILM3SxBxx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
override config String cpuCoreRevision = "1.0";
config ILM3SxBxx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
override config Int dataWordSize = 4;
config ILM3SxBxx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
config String deviceHeader;
config ILM3SxBxx.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config ILM3SxBxx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
override config Int minDataUnitSize = 1;
config ILM3SxBxx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
override config Int minProgUnitSize = 1;
config ILM3SxBxx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
config IPeripheral.Instance peripherals[string];
config ILM3SxBxx.timer0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
config Timer.Instance timer0;
config ILM3SxBxx.timer1 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
config Timer.Instance timer1;
config ILM3SxBxx.timer2 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
config Timer.Instance timer2;
config ILM3SxBxx.timer3 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
config Timer.Instance timer3;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ILM3SxBxx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ILM3SxBxx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/ILM3SxBxx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


interface ti.catalog.arm.ILM3SxBxx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ILM3SxBxx.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ILM3SxBxx.xdc ========
    20     *  The Stellaris device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26
    27    metaonly interface ILM3SxBxx inherits ti.catalog.ICpuDataSheet
    28    {
    29
    30    instance:
    31        override config string cpuCore           = "CM3";
    32        override config string isa               = "v7M";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        config ti.catalog.arm.peripherals.timers.Timer.Instance timer0;
    39        config ti.catalog.arm.peripherals.timers.Timer.Instance timer1;
    40        config ti.catalog.arm.peripherals.timers.Timer.Instance timer2;
    41        config ti.catalog.arm.peripherals.timers.Timer.Instance timer3;
    42
    43        /*!
    44         *  ======== memMap ========
    45         *  The memory map returned by getMemoryMap().
    46         */
    47        config xdc.platform.IPlatform.Memory memMap[string] = [
    48            ["FRAM", {
    49                comment: "256KB FRAM",
    50                name: "FRAM",
    51                base: 0x00000000,
    52                len:  0x00040000
    53            }],
    54
    55            ["IRAM", {
    56                comment: "96KB IRAM",
    57                name: "IRAM",
    58                base: 0x20000000,
    59                len:  0x00018000
    60            }],
    61        ];
    62
    63    };
    64
    65    /*
    66     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:06; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


interface ti.catalog.arm.IOMAP2x3x

metaonly interface ti.catalog.arm.IOMAP2x3x
index URL
XDCspec summary sourced in ti/catalog/arm/IOMAP2x3x.xdc
metaonly interface IOMAP2x3x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
package ti.catalog.arm;
metaonly interface IOMAP2x3x inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "v6";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "2.1";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x0000F800,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IOMAP2x3x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
override config String cpuCore = "v6";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IOMAP2x3x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
override config String cpuCoreRevision = "2.1";
config IOMAP2x3x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
override config Int dataWordSize = 4;
config IOMAP2x3x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
config String deviceHeader;
config IOMAP2x3x.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
config IPlatform.Memory memMap[string] = [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x0000F800,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config IOMAP2x3x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
override config Int minDataUnitSize = 1;
config IOMAP2x3x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
override config Int minProgUnitSize = 1;
config IOMAP2x3x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IOMAP2x3x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IOMAP2x3x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/IOMAP2x3x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


interface ti.catalog.arm.IOMAP2x3x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IOMAP2x3x.xdc ========
    15     *
    16     */
    17
    18    metaonly interface IOMAP2x3x inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "v6";
    22        override config string isa               = "v5T";
    23        override config string cpuCoreRevision   = "2.1";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string]  = [
    33            ["SRAM", {
    34                comment:    "On-Chip SRAM",
    35                name:       "SRAM",
    36                base:       0x40200000,
    37                len:        0x0000F800,
    38                space:      "code/data",
    39                access:     "RWX"
    40            }],
    41
    42        ];
    43    }
    44    /*
    45     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    46     */
    47


interface ti.catalog.arm.IOMAP3xxx

metaonly interface ti.catalog.arm.IOMAP3xxx
index URL
XDCspec summary sourced in ti/catalog/arm/IOMAP3xxx.xdc
metaonly interface IOMAP3xxx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
package ti.catalog.arm;
metaonly interface IOMAP3xxx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "v7A";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IOMAP3xxx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
override config String cpuCore = "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IOMAP3xxx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
override config String cpuCoreRevision = "1.0";
config IOMAP3xxx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
override config Int dataWordSize = 4;
config IOMAP3xxx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
config String deviceHeader;
config IOMAP3xxx.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config IOMAP3xxx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
override config Int minDataUnitSize = 1;
config IOMAP3xxx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
override config Int minProgUnitSize = 1;
config IOMAP3xxx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IOMAP3xxx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IOMAP3xxx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/IOMAP3xxx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


interface ti.catalog.arm.IOMAP3xxx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IOMAP3xxx.xdc ========
    15     *
    16     */
    17
    18    metaonly interface IOMAP3xxx inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "v7A";
    22        override config string isa               = "v5T";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string]  = [
    33            ["SRAM", {
    34                comment:    "On-Chip SRAM",
    35                name:       "SRAM",
    36                base:       0x40200000,
    37                len:        0x00010000,
    38                space:      "code/data",
    39                access:     "RWX"
    40            }],
    41
    42        ];
    43    }
    44    /*
    45     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    46     */
    47


interface ti.catalog.arm.ITMS320DA8xx

metaonly interface ti.catalog.arm.ITMS320DA8xx
index URL
XDCspec summary sourced in ti/catalog/arm/ITMS320DA8xx.xdc
metaonly interface ITMS320DA8xx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
package ti.catalog.arm;
metaonly interface ITMS320DA8xx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "v5T";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320DA8xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
override config String cpuCore = "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320DA8xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320DA8xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
override config Int dataWordSize = 4;
config ITMS320DA8xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
config String deviceHeader;
config ITMS320DA8xx.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320DA8xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
override config Int minDataUnitSize = 1;
config ITMS320DA8xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
override config Int minProgUnitSize = 1;
config ITMS320DA8xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320DA8xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320DA8xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/ITMS320DA8xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


interface ti.catalog.arm.ITMS320DA8xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320DA8xx.xdc ========
    15     *
    16     */
    17
    18    metaonly interface ITMS320DA8xx inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "v5T";
    22        override config string isa               = "v5T";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string]  = [
    33            ["IRAM", {
    34                comment:    "8KB ARM local RAM",
    35                name:       "IRAM",
    36                base:       0xFFFF0000,
    37                len:        0x00002000,
    38                space:      "code/data",
    39                access:     "RWX"
    40            }],
    41            ["L3_CBA_RAM", {
    42                comment:    "128KB ARM/DSP local shared RAM",
    43                name:       "L3_CBA_RAM",
    44                base:       0x80000000,
    45                len:        0x00020000,
    46                space:      "code/data",
    47                access:     "RWX"
    48            }],
    49        ];
    50    }
    51    /*
    52     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    53     */
    54


module ti.catalog.arm.LM3S2793

metaonly module ti.catalog.arm.LM3S2793
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S2793.xdc
var LM3S2793 = xdc.useModule('ti.catalog.arm.LM3S2793');
per-instance config parameters
    var params = new LM3S2793.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "128KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00020000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S2793.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S2793.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S2793.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S2793.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S2793.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.dataWordSize = Int 4;
config LM3S2793.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.deviceHeader = String undefined;
config LM3S2793.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S2793.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.minDataUnitSize = Int 1;
config LM3S2793.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.minProgUnitSize = Int 1;
config LM3S2793.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S2793.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S2793.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S2793.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S2793.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S2793.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S2793.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S2793.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S2793.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


module ti.catalog.arm.LM3S2793

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S2793.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S2793 inherits ILM3Sx7xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S2B93

metaonly module ti.catalog.arm.LM3S2B93
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S2B93.xdc
var LM3S2B93 = xdc.useModule('ti.catalog.arm.LM3S2B93');
per-instance config parameters
    var params = new LM3S2B93.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S2B93.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S2B93.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S2B93.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S2B93.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.dataWordSize = Int 4;
config LM3S2B93.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.deviceHeader = String undefined;
config LM3S2B93.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S2B93.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.minDataUnitSize = Int 1;
config LM3S2B93.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.minProgUnitSize = Int 1;
config LM3S2B93.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S2B93.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S2B93.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S2B93.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S2B93.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S2B93.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S2B93.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S2B93.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:08 GMT


module ti.catalog.arm.LM3S2B93

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S2B93.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S2B93 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S5791

metaonly module ti.catalog.arm.LM3S5791
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S5791.xdc
var LM3S5791 = xdc.useModule('ti.catalog.arm.LM3S5791');
per-instance config parameters
    var params = new LM3S5791.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "128KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00020000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S5791.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S5791.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S5791.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S5791.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S5791.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.dataWordSize = Int 4;
config LM3S5791.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.deviceHeader = String undefined;
config LM3S5791.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S5791.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.minDataUnitSize = Int 1;
config LM3S5791.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.minProgUnitSize = Int 1;
config LM3S5791.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S5791.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S5791.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S5791.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S5791.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S5791.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S5791.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S5791.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S5791.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.LM3S5791

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S5791.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S5791 inherits ILM3Sx7xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S5B91

metaonly module ti.catalog.arm.LM3S5B91
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S5B91.xdc
var LM3S5B91 = xdc.useModule('ti.catalog.arm.LM3S5B91');
per-instance config parameters
    var params = new LM3S5B91.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S5B91.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S5B91.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S5B91.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S5B91.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.dataWordSize = Int 4;
config LM3S5B91.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.deviceHeader = String undefined;
config LM3S5B91.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S5B91.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.minDataUnitSize = Int 1;
config LM3S5B91.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.minProgUnitSize = Int 1;
config LM3S5B91.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S5B91.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S5B91.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S5B91.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S5B91.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S5B91.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S5B91.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S5B91.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.LM3S5B91

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S5B91.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S5B91 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S8962

metaonly module ti.catalog.arm.LM3S8962
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S8962.xdc
var LM3S8962 = xdc.useModule('ti.catalog.arm.LM3S8962');
per-instance config parameters
    var params = new LM3S8962.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S8962.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S8962.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S8962.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S8962.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S8962.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.dataWordSize = Int 4;
config LM3S8962.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.deviceHeader = String undefined;
config LM3S8962.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S8962.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.minDataUnitSize = Int 1;
config LM3S8962.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.minProgUnitSize = Int 1;
config LM3S8962.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S8962.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S8962.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S8962.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S8962.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S8962.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S8962.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S8962.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S8962.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.LM3S8962

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S8962.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S8962 inherits ILM3Sx9xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S9790

metaonly module ti.catalog.arm.LM3S9790
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S9790.xdc
var LM3S9790 = xdc.useModule('ti.catalog.arm.LM3S9790');
per-instance config parameters
    var params = new LM3S9790.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "128KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00020000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9790.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9790.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9790.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9790.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9790.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.dataWordSize = Int 4;
config LM3S9790.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.deviceHeader = String undefined;
config LM3S9790.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S9790.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9790.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9790.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9790.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9790.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9790.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9790.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9790.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9790.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9790.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9790.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.LM3S9790

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9790.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S9790 inherits ILM3Sx7xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S9792

metaonly module ti.catalog.arm.LM3S9792
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S9792.xdc
var LM3S9792 = xdc.useModule('ti.catalog.arm.LM3S9792');
per-instance config parameters
    var params = new LM3S9792.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "128KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00020000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9792.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9792.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9792.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9792.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9792.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.dataWordSize = Int 4;
config LM3S9792.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.deviceHeader = String undefined;
config LM3S9792.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S9792.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9792.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9792.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9792.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9792.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9792.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9792.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9792.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9792.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9792.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9792.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.LM3S9792

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9792.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S9792 inherits ILM3Sx7xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S9B90

metaonly module ti.catalog.arm.LM3S9B90
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S9B90.xdc
var LM3S9B90 = xdc.useModule('ti.catalog.arm.LM3S9B90');
per-instance config parameters
    var params = new LM3S9B90.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9B90.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9B90.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9B90.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9B90.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.dataWordSize = Int 4;
config LM3S9B90.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.deviceHeader = String undefined;
config LM3S9B90.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S9B90.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9B90.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9B90.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9B90.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9B90.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9B90.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9B90.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9B90.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9B90.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9B90.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.LM3S9B90

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9B90.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S9B90 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S9B92

metaonly module ti.catalog.arm.LM3S9B92
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S9B92.xdc
var LM3S9B92 = xdc.useModule('ti.catalog.arm.LM3S9B92');
per-instance config parameters
    var params = new LM3S9B92.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9B92.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9B92.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9B92.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9B92.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.dataWordSize = Int 4;
config LM3S9B92.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.deviceHeader = String undefined;
config LM3S9B92.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S9B92.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9B92.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9B92.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9B92.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9B92.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9B92.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9B92.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9B92.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9B92.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9B92.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.LM3S9B92

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9B92.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S9B92 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S9B95

metaonly module ti.catalog.arm.LM3S9B95
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S9B95.xdc
var LM3S9B95 = xdc.useModule('ti.catalog.arm.LM3S9B95');
per-instance config parameters
    var params = new LM3S9B95.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9B95.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9B95.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9B95.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9B95.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.dataWordSize = Int 4;
config LM3S9B95.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.deviceHeader = String undefined;
config LM3S9B95.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S9B95.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9B95.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9B95.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9B95.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9B95.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9B95.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9B95.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9B95.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9B95.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9B95.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.LM3S9B95

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9B95.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S9B95 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.LM3S9B96

metaonly module ti.catalog.arm.LM3S9B96
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/LM3S9B96.xdc
var LM3S9B96 = xdc.useModule('ti.catalog.arm.LM3S9B96');
per-instance config parameters
    var params = new LM3S9B96.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9B96.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9B96.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9B96.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9B96.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.dataWordSize = Int 4;
config LM3S9B96.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.deviceHeader = String undefined;
config LM3S9B96.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S9B96.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9B96.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9B96.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9B96.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9B96.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9B96.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9B96.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9B96.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9B96.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9B96.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.LM3S9B96

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9B96.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm;
    19
    20    metaonly module LM3S9B96 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.OMAP2430

metaonly module ti.catalog.arm.OMAP2430
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP2430.xdc
var OMAP2430 = xdc.useModule('ti.catalog.arm.OMAP2430');
per-instance config parameters
    var params = new OMAP2430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v6";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "2.1";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x0000F800,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP2430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP2430.Params;
// Instance config-params object
    params.cpuCore = String "v6";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "2.1";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x0000F800,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP2430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP2430.Params;
...
params.cpuCore = String "v6";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP2430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP2430.Params;
...
params.cpuCoreRevision = String "2.1";
config OMAP2430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2430.Params;
...
params.dataWordSize = Int 4;
config OMAP2430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP2430.Params;
...
params.deviceHeader = String undefined;
config OMAP2430.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP2430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x0000F800,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP2430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2430.Params;
...
params.minDataUnitSize = Int 1;
config OMAP2430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2430.Params;
...
params.minProgUnitSize = Int 1;
config OMAP2430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP2430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP2430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP2430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP2430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP2430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.OMAP2430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP2430.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP2430 inherits IOMAP2x3x
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP2431

metaonly module ti.catalog.arm.OMAP2431
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP2431.xdc
var OMAP2431 = xdc.useModule('ti.catalog.arm.OMAP2431');
per-instance config parameters
    var params = new OMAP2431.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v6";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "2.1";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x0000F800,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP2431.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP2431.Params;
// Instance config-params object
    params.cpuCore = String "v6";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "2.1";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x0000F800,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP2431.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.cpuCore = String "v6";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP2431.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.cpuCoreRevision = String "2.1";
config OMAP2431.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.dataWordSize = Int 4;
config OMAP2431.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.deviceHeader = String undefined;
config OMAP2431.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x0000F800,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP2431.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.minDataUnitSize = Int 1;
config OMAP2431.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.minProgUnitSize = Int 1;
config OMAP2431.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP2431.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP2431.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP2431.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP2431.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.OMAP2431

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP2431.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP2431 inherits IOMAP2x3x
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP2530

metaonly module ti.catalog.arm.OMAP2530
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP2530.xdc
var OMAP2530 = xdc.useModule('ti.catalog.arm.OMAP2530');
per-instance config parameters
    var params = new OMAP2530.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v6";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "2.1";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x0000F800,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP2530.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP2530.Params;
// Instance config-params object
    params.cpuCore = String "v6";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "2.1";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x0000F800,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP2530.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.cpuCore = String "v6";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP2530.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.cpuCoreRevision = String "2.1";
config OMAP2530.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.dataWordSize = Int 4;
config OMAP2530.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.deviceHeader = String undefined;
config OMAP2530.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x0000F800,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP2530.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.minDataUnitSize = Int 1;
config OMAP2530.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.minProgUnitSize = Int 1;
config OMAP2530.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP2530.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP2530.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP2530.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP2530.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.OMAP2530

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP2530.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP2530 inherits IOMAP2x3x
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP2531

metaonly module ti.catalog.arm.OMAP2531
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP2531.xdc
var OMAP2531 = xdc.useModule('ti.catalog.arm.OMAP2531');
per-instance config parameters
    var params = new OMAP2531.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v6";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "2.1";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x0000F800,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP2531.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP2531.Params;
// Instance config-params object
    params.cpuCore = String "v6";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "2.1";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x0000F800,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP2531.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.cpuCore = String "v6";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP2531.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.cpuCoreRevision = String "2.1";
config OMAP2531.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.dataWordSize = Int 4;
config OMAP2531.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.deviceHeader = String undefined;
config OMAP2531.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x0000F800,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP2531.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.minDataUnitSize = Int 1;
config OMAP2531.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.minProgUnitSize = Int 1;
config OMAP2531.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP2531.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP2531.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP2531.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP2531.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.OMAP2531

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP2531.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP2531 inherits IOMAP2x3x
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP3403

metaonly module ti.catalog.arm.OMAP3403
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP3403.xdc
var OMAP3403 = xdc.useModule('ti.catalog.arm.OMAP3403');
per-instance config parameters
    var params = new OMAP3403.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3403.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3403.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3403.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3403.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3403.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.dataWordSize = Int 4;
config OMAP3403.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.deviceHeader = String undefined;
config OMAP3403.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3403.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3403.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3403.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3403.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3403.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3403.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3403.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.OMAP3403

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3403.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3403 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP3405

metaonly module ti.catalog.arm.OMAP3405
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP3405.xdc
var OMAP3405 = xdc.useModule('ti.catalog.arm.OMAP3405');
per-instance config parameters
    var params = new OMAP3405.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3405.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3405.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3405.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3405.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3405.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.dataWordSize = Int 4;
config OMAP3405.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.deviceHeader = String undefined;
config OMAP3405.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3405.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3405.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3405.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3405.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3405.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3405.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3405.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.OMAP3405

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3405.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3405 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP3425

metaonly module ti.catalog.arm.OMAP3425
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP3425.xdc
var OMAP3425 = xdc.useModule('ti.catalog.arm.OMAP3425');
per-instance config parameters
    var params = new OMAP3425.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3425.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3425.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3425.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3425.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3425.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.dataWordSize = Int 4;
config OMAP3425.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.deviceHeader = String undefined;
config OMAP3425.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3425.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3425.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3425.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3425.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3425.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3425.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3425.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.OMAP3425

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3425.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3425 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP3503

metaonly module ti.catalog.arm.OMAP3503
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP3503.xdc
var OMAP3503 = xdc.useModule('ti.catalog.arm.OMAP3503');
per-instance config parameters
    var params = new OMAP3503.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3503.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3503.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3503.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3503.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3503.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.dataWordSize = Int 4;
config OMAP3503.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.deviceHeader = String undefined;
config OMAP3503.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3503.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3503.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3503.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3503.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3503.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3503.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3503.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.OMAP3503

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3503.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3503 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP3505

metaonly module ti.catalog.arm.OMAP3505
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP3505.xdc
var OMAP3505 = xdc.useModule('ti.catalog.arm.OMAP3505');
per-instance config parameters
    var params = new OMAP3505.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3505.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3505.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3505.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3505.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3505.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.dataWordSize = Int 4;
config OMAP3505.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.deviceHeader = String undefined;
config OMAP3505.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3505.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3505.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3505.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3505.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3505.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3505.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3505.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:09 GMT


module ti.catalog.arm.OMAP3505

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3505.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3505 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP3515

metaonly module ti.catalog.arm.OMAP3515
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP3515.xdc
var OMAP3515 = xdc.useModule('ti.catalog.arm.OMAP3515');
per-instance config parameters
    var params = new OMAP3515.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3515.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3515.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3515.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3515.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3515.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.dataWordSize = Int 4;
config OMAP3515.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.deviceHeader = String undefined;
config OMAP3515.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3515.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3515.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3515.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3515.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3515.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3515.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3515.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.OMAP3515

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3515.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3515 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP3517

metaonly module ti.catalog.arm.OMAP3517
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP3517.xdc
var OMAP3517 = xdc.useModule('ti.catalog.arm.OMAP3517');
per-instance config parameters
    var params = new OMAP3517.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3517.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3517.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3517.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3517.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3517.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.dataWordSize = Int 4;
config OMAP3517.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.deviceHeader = String undefined;
config OMAP3517.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3517.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3517.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3517.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3517.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3517.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3517.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3517.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.OMAP3517

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3517.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3517 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP3525

metaonly module ti.catalog.arm.OMAP3525
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP3525.xdc
var OMAP3525 = xdc.useModule('ti.catalog.arm.OMAP3525');
per-instance config parameters
    var params = new OMAP3525.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3525.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3525.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3525.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3525.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3525.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.dataWordSize = Int 4;
config OMAP3525.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.deviceHeader = String undefined;
config OMAP3525.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3525.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3525.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3525.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3525.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3525.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3525.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3525.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.OMAP3525

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3525.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3525 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAP3530

metaonly module ti.catalog.arm.OMAP3530
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAP3530.xdc
var OMAP3530 = xdc.useModule('ti.catalog.arm.OMAP3530');
per-instance config parameters
    var params = new OMAP3530.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3530.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3530.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3530.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3530.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3530.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.dataWordSize = Int 4;
config OMAP3530.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.deviceHeader = String undefined;
config OMAP3530.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3530.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3530.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3530.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3530.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3530.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3530.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3530.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.OMAP3530

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3530.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3530 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.OMAPL108

metaonly module ti.catalog.arm.OMAPL108
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAPL108.xdc
var OMAPL108 = xdc.useModule('ti.catalog.arm.OMAPL108');
per-instance config parameters
    var params = new OMAPL108.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAPL108.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAPL108.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAPL108.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAPL108.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAPL108.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAPL108.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAPL108.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL108.Params;
...
params.dataWordSize = Int 4;
config OMAPL108.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAPL108.Params;
...
params.deviceHeader = String undefined;
config OMAPL108.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAPL108.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAPL108.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL108.Params;
...
params.minDataUnitSize = Int 1;
config OMAPL108.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL108.Params;
...
params.minProgUnitSize = Int 1;
config OMAPL108.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAPL108.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAPL108.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAPL108.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAPL108.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAPL108.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.OMAPL108

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAPL108.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAPL108 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.OMAPL118

metaonly module ti.catalog.arm.OMAPL118
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAPL118.xdc
var OMAPL118 = xdc.useModule('ti.catalog.arm.OMAPL118');
per-instance config parameters
    var params = new OMAPL118.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAPL118.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAPL118.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAPL118.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAPL118.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAPL118.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAPL118.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAPL118.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL118.Params;
...
params.dataWordSize = Int 4;
config OMAPL118.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAPL118.Params;
...
params.deviceHeader = String undefined;
config OMAPL118.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAPL118.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAPL118.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL118.Params;
...
params.minDataUnitSize = Int 1;
config OMAPL118.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL118.Params;
...
params.minProgUnitSize = Int 1;
config OMAPL118.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAPL118.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAPL118.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAPL118.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAPL118.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAPL118.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.OMAPL118

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAPL118.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAPL118 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.OMAPL137

metaonly module ti.catalog.arm.OMAPL137
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAPL137.xdc
var OMAPL137 = xdc.useModule('ti.catalog.arm.OMAPL137');
per-instance config parameters
    var params = new OMAPL137.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAPL137.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAPL137.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAPL137.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAPL137.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAPL137.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.dataWordSize = Int 4;
config OMAPL137.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.deviceHeader = String undefined;
config OMAPL137.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAPL137.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.minDataUnitSize = Int 1;
config OMAPL137.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.minProgUnitSize = Int 1;
config OMAPL137.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAPL137.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAPL137.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAPL137.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAPL137.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.OMAPL137

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAPL137.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAPL137 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.OMAPL138

metaonly module ti.catalog.arm.OMAPL138
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/OMAPL138.xdc
var OMAPL138 = xdc.useModule('ti.catalog.arm.OMAPL138');
per-instance config parameters
    var params = new OMAPL138.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAPL138.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAPL138.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAPL138.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAPL138.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAPL138.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.dataWordSize = Int 4;
config OMAPL138.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.deviceHeader = String undefined;
config OMAPL138.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAPL138.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.minDataUnitSize = Int 1;
config OMAPL138.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.minProgUnitSize = Int 1;
config OMAPL138.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAPL138.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAPL138.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAPL138.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAPL138.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.OMAPL138

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAPL138.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAPL138 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.TMS320C1030

metaonly module ti.catalog.arm.TMS320C1030
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320C1030.xdc
var TMS320C1030 = xdc.useModule('ti.catalog.arm.TMS320C1030');
per-instance config parameters
    var params = new TMS320C1030.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Arm9";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [ ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C1030.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
// Instance config-params object
    params.cpuCore = String "Arm9";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [ ];
    // The memory map returned be getMemoryMap()
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C1030.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
...
params.cpuCore = String "Arm9";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C1030.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C1030.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
...
params.dataWordSize = Int 4;
config TMS320C1030.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
...
params.deviceHeader = String undefined;
config TMS320C1030.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
...
params.memMap = IPlatform.Memory[string] [ ];
config TMS320C1030.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C1030.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C1030.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C1030.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C1030.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C1030.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C1030.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320C1030

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C1030 inherits ti.catalog.ICpuDataSheet
    14    {
    15    instance:
    16        override config string cpuCore           = "Arm9";
    17        override config string isa               = "v5T";
    18        override config string cpuCoreRevision   = "1.0";
    19        override config int    minProgUnitSize   = 1;
    20        override config int    minDataUnitSize   = 1;
    21        override config int    dataWordSize      = 4;
    22
    23        /*!
    24         *  ======== memMap ========
    25         *  The memory map returned be getMemoryMap().
    26         */
    27        config xdc.platform.IPlatform.Memory memMap[string] = [];
    28    }
    29    /*
    30     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.arm.TMS320C3430

metaonly module ti.catalog.arm.TMS320C3430
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320C3430.xdc
var TMS320C3430 = xdc.useModule('ti.catalog.arm.TMS320C3430');
per-instance config parameters
    var params = new TMS320C3430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C3430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C3430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C3430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C3430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.dataWordSize = Int 4;
config TMS320C3430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.deviceHeader = String undefined;
config TMS320C3430.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C3430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C3430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C3430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C3430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C3430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C3430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320C3430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C3430.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320C3430 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.TMS320C5912

metaonly module ti.catalog.arm.TMS320C5912
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320C5912.xdc
var TMS320C5912 = xdc.useModule('ti.catalog.arm.TMS320C5912');
per-instance config parameters
    var params = new TMS320C5912.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Arm9";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [ ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5912.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
// Instance config-params object
    params.cpuCore = String "Arm9";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [ ];
    // The memory map returned be getMemoryMap()
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5912.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.cpuCore = String "Arm9";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5912.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5912.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.dataWordSize = Int 4;
config TMS320C5912.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.deviceHeader = String undefined;
config TMS320C5912.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.memMap = IPlatform.Memory[string] [ ];
config TMS320C5912.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5912.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C5912.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5912.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5912.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5912.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320C5912

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C5912 inherits ti.catalog.ICpuDataSheet
    14    {
    15    instance:
    16        override config string cpuCore           = "Arm9";
    17        override config string isa               = "v5T";
    18        override config string cpuCoreRevision   = "1.0";
    19        override config int    minProgUnitSize   = 1;
    20        override config int    minDataUnitSize   = 1;
    21        override config int    dataWordSize      = 4;
    22
    23        /*!
    24         *  ======== memMap ========
    25         *  The memory map returned be getMemoryMap().
    26         */
    27        config xdc.platform.IPlatform.Memory memMap[string] = [];
    28    }
    29    /*
    30     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.arm.TMS320CDM510

metaonly module ti.catalog.arm.TMS320CDM510
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320CDM510.xdc
var TMS320CDM510 = xdc.useModule('ti.catalog.arm.TMS320CDM510');
per-instance config parameters
    var params = new TMS320CDM510.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Arm9";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal ARM Instruction RAM",
                    name: "IRAM",
                    base: 0x00000004,
                    len: 0x00007ffc,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "DRAM",
                {
                    comment: "Internal ARM Data RAM",
                    name: "DRAM",
                    base: 0x00010004,
                    len: 0x00007ffc,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM510.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
// Instance config-params object
    params.cpuCore = String "Arm9";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "Internal ARM Instruction RAM",
                name: "IRAM",
                base: 0x00000004,
                len: 0x00007ffc,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "DRAM",
            {
                comment: "Internal ARM Data RAM",
                name: "DRAM",
                base: 0x00010004,
                len: 0x00007ffc,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM510.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
...
params.cpuCore = String "Arm9";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM510.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM510.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM510.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM510.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal ARM Instruction RAM",
            name: "IRAM",
            base: 0x00000004,
            len: 0x00007ffc,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "DRAM",
        {
            comment: "Internal ARM Data RAM",
            name: "DRAM",
            base: 0x00010004,
            len: 0x00007ffc,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM510.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM510.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM510.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM510.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM510.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM510.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM510.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320CDM510

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM510.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320CDM510 inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "Arm9";
    22        override config string isa               = "v5T";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string]  = [
    33            ["IRAM", {
    34                comment:    "Internal ARM Instruction RAM",
    35                name:       "IRAM",
    36                base:       0x00000004,
    37                len:        0x00007ffc,
    38                space:      "code",
    39                access:     "RWX"
    40            }],
    41
    42            ["DRAM", {
    43                comment:    "Internal ARM Data RAM",
    44                name:       "DRAM",
    45                base:       0x00010004,
    46                len:        0x00007ffc,
    47                space:      "data",
    48                access:     "RW"
    49            }],
    50        ];
    51    }
    52    /*
    53     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    54     */
    55


module ti.catalog.arm.TMS320CDM6446

metaonly module ti.catalog.arm.TMS320CDM6446
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320CDM6446.xdc
var TMS320CDM6446 = xdc.useModule('ti.catalog.arm.TMS320CDM6446');
per-instance config parameters
    var params = new TMS320CDM6446.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Arm9";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM0",
                {
                    comment: "Internal ARM Instruction RAM0",
                    name: "IRAM0",
                    base: 0x00000000,
                    len: 0x00002000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "IRAM1",
                {
                    comment: "Internal ARM Instruction RAM1",
                    name: "IRAM1",
                    base: 0x00002000,
                    len: 0x00002000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "DRAM0",
                {
                    comment: "Internal ARM Data RAM0",
                    name: "DRAM0",
                    base: 0x00008000,
                    len: 0x00002000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "DRAM1",
                {
                    comment: "Internal ARM Data RAM1",
                    name: "DRAM1",
                    base: 0x0000A000,
                    len: 0x00002000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6446.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
// Instance config-params object
    params.cpuCore = String "Arm9";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM0",
            {
                comment: "Internal ARM Instruction RAM0",
                name: "IRAM0",
                base: 0x00000000,
                len: 0x00002000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "IRAM1",
            {
                comment: "Internal ARM Instruction RAM1",
                name: "IRAM1",
                base: 0x00002000,
                len: 0x00002000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "DRAM0",
            {
                comment: "Internal ARM Data RAM0",
                name: "DRAM0",
                base: 0x00008000,
                len: 0x00002000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "DRAM1",
            {
                comment: "Internal ARM Data RAM1",
                name: "DRAM1",
                base: 0x0000A000,
                len: 0x00002000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6446.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.cpuCore = String "Arm9";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6446.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6446.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6446.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6446.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM0",
        {
            comment: "Internal ARM Instruction RAM0",
            name: "IRAM0",
            base: 0x00000000,
            len: 0x00002000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "IRAM1",
        {
            comment: "Internal ARM Instruction RAM1",
            name: "IRAM1",
            base: 0x00002000,
            len: 0x00002000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "DRAM0",
        {
            comment: "Internal ARM Data RAM0",
            name: "DRAM0",
            base: 0x00008000,
            len: 0x00002000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "DRAM1",
        {
            comment: "Internal ARM Data RAM1",
            name: "DRAM1",
            base: 0x0000A000,
            len: 0x00002000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6446.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6446.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6446.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6446.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6446.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6446.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320CDM6446

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6446.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320CDM6446 inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "Arm9";
    22        override config string isa               = "v5T";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string]  = [
    33            ["IRAM0", {
    34                comment:    "Internal ARM Instruction RAM0",
    35                name:       "IRAM0",
    36                base:       0x00000000,
    37                len:        0x00002000,
    38                space:      "code",
    39                access:     "RWX"
    40            }],
    41
    42            ["IRAM1", {
    43                comment:    "Internal ARM Instruction RAM1",
    44                name:       "IRAM1",
    45                base:       0x00002000,
    46                len:        0x00002000,
    47                space:      "code",
    48                access:     "RWX"
    49            }],
    50
    51            ["DRAM0", {
    52                comment:    "Internal ARM Data RAM0",
    53                name:       "DRAM0",
    54                base:       0x00008000,
    55                len:        0x00002000,
    56                space:      "data",
    57                access:     "RW"
    58            }],
    59
    60            ["DRAM1", {
    61                comment:    "Internal ARM Data RAM1",
    62                name:       "DRAM1",
    63                base:       0x0000A000,
    64                len:        0x00002000,
    65                space:      "data",
    66                access:     "RW"
    67            }],
    68        ];
    69    }
    70    /*
    71     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    72     */
    73


module ti.catalog.arm.TMS320CDM6467

metaonly module ti.catalog.arm.TMS320CDM6467
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320CDM6467.xdc
var TMS320CDM6467 = xdc.useModule('ti.catalog.arm.TMS320CDM6467');
per-instance config parameters
    var params = new TMS320CDM6467.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Arm9";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM0",
                {
                    comment: "Internal ARM Instruction RAM0",
                    name: "IRAM0",
                    base: 0x00000000,
                    len: 0x00002000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "IRAM1",
                {
                    comment: "Internal ARM Instruction RAM1",
                    name: "IRAM1",
                    base: 0x00002000,
                    len: 0x00002000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "DRAM0",
                {
                    comment: "Internal ARM Data RAM0",
                    name: "DRAM0",
                    base: 0x00008000,
                    len: 0x00002000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "DRAM1",
                {
                    comment: "Internal ARM Data RAM1",
                    name: "DRAM1",
                    base: 0x0000A000,
                    len: 0x00002000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6467.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
// Instance config-params object
    params.cpuCore = String "Arm9";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM0",
            {
                comment: "Internal ARM Instruction RAM0",
                name: "IRAM0",
                base: 0x00000000,
                len: 0x00002000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "IRAM1",
            {
                comment: "Internal ARM Instruction RAM1",
                name: "IRAM1",
                base: 0x00002000,
                len: 0x00002000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "DRAM0",
            {
                comment: "Internal ARM Data RAM0",
                name: "DRAM0",
                base: 0x00008000,
                len: 0x00002000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "DRAM1",
            {
                comment: "Internal ARM Data RAM1",
                name: "DRAM1",
                base: 0x0000A000,
                len: 0x00002000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6467.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.cpuCore = String "Arm9";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6467.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6467.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6467.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6467.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM0",
        {
            comment: "Internal ARM Instruction RAM0",
            name: "IRAM0",
            base: 0x00000000,
            len: 0x00002000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "IRAM1",
        {
            comment: "Internal ARM Instruction RAM1",
            name: "IRAM1",
            base: 0x00002000,
            len: 0x00002000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "DRAM0",
        {
            comment: "Internal ARM Data RAM0",
            name: "DRAM0",
            base: 0x00008000,
            len: 0x00002000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "DRAM1",
        {
            comment: "Internal ARM Data RAM1",
            name: "DRAM1",
            base: 0x0000A000,
            len: 0x00002000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6467.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6467.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6467.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6467.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6467.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6467.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320CDM6467

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6467.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320CDM6467 inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "Arm9";
    22        override config string isa               = "v5T";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string]  = [
    33            ["IRAM0", {
    34                comment:    "Internal ARM Instruction RAM0",
    35                name:       "IRAM0",
    36                base:       0x00000000,
    37                len:        0x00002000,
    38                space:      "code",
    39                access:     "RWX"
    40            }],
    41
    42            ["IRAM1", {
    43                comment:    "Internal ARM Instruction RAM1",
    44                name:       "IRAM1",
    45                base:       0x00002000,
    46                len:        0x00002000,
    47                space:      "code",
    48                access:     "RWX"
    49            }],
    50
    51            ["DRAM0", {
    52                comment:    "Internal ARM Data RAM0",
    53                name:       "DRAM0",
    54                base:       0x00008000,
    55                len:        0x00002000,
    56                space:      "data",
    57                access:     "RW"
    58            }],
    59
    60            ["DRAM1", {
    61                comment:    "Internal ARM Data RAM1",
    62                name:       "DRAM1",
    63                base:       0x0000A000,
    64                len:        0x00002000,
    65                space:      "data",
    66                access:     "RW"
    67            }],
    68        ];
    69    }
    70    /*
    71     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    72     */
    73


module ti.catalog.arm.TMS320CDM730

metaonly module ti.catalog.arm.TMS320CDM730
index URL

The TMS320CDM730 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320CDM730.xdc
var TMS320CDM730 = xdc.useModule('ti.catalog.arm.TMS320CDM730');
per-instance config parameters
    var params = new TMS320CDM730.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_ROM",
                {
                    name: "L2_ROM",
                    base: 0x00000000,
                    len: 0x00004000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20000000,
                    len: 0x00040000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM730.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00040000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM730.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM730.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM730.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM730.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM730.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ]
];
config TMS320CDM730.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM730.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM730.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM730.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM730.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM730.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320CDM730

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM730.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== TMS320CDM730 ========
    19     *  The TMS320CDM730 device data sheet module.
    20     *
    21     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    22     *  used by platforms to obtain "data sheet" information about this device.
    23     *
    24     */
    25    metaonly module TMS320CDM730 inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        override config string cpuCore           = "CM3";
    29        override config string isa               = "v7M";
    30        override config string cpuCoreRevision   = "1.0";
    31        override config int    minProgUnitSize   = 1;
    32        override config int    minDataUnitSize   = 1;
    33        override config int    dataWordSize      = 4;
    34
    35        /*!
    36         *  ======== memMap ========
    37         *  The memory map returned be getMemoryMap().
    38         */
    39        config xdc.platform.IPlatform.Memory memMap[string] = [
    40
    41            /*
    42             * AMMU mapped L2 ROM virtual address
    43             * Physical address is 0x55000000
    44             */
    45            ["L2_ROM", {
    46                name: "L2_ROM",
    47                base: 0x00000000,
    48                len:  0x00004000
    49            }],
    50
    51            /*
    52             * AMMU mapped L2 RAM virtual address
    53             * Physical address is 0x55020000
    54         * Size is 256K
    55             */
    56            ["L2_RAM", {
    57                name: "L2_RAM",
    58                base: 0x20000000,
    59                len:  0x00040000
    60            }],
    61        ];
    62    };
    63    /*
    64     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    65     */
    66


module ti.catalog.arm.TMS320CDM740

metaonly module ti.catalog.arm.TMS320CDM740
index URL

The TMS320CDM740 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320CDM740.xdc
var TMS320CDM740 = xdc.useModule('ti.catalog.arm.TMS320CDM740');
per-instance config parameters
    var params = new TMS320CDM740.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_ROM",
                {
                    name: "L2_ROM",
                    base: 0x00000000,
                    len: 0x00004000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20000000,
                    len: 0x00040000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM740.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00040000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM740.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM740.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM740.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM740.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM740.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ]
];
config TMS320CDM740.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM740.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM740.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM740.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM740.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM740.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320CDM740

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM740.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== TMS320CDM740 ========
    19     *  The TMS320CDM740 device data sheet module.
    20     *
    21     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    22     *  used by platforms to obtain "data sheet" information about this device.
    23     *
    24     */
    25    metaonly module TMS320CDM740 inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        override config string cpuCore           = "CM3";
    29        override config string isa               = "v7M";
    30        override config string cpuCoreRevision   = "1.0";
    31        override config int    minProgUnitSize   = 1;
    32        override config int    minDataUnitSize   = 1;
    33        override config int    dataWordSize      = 4;
    34
    35        /*!
    36         *  ======== memMap ========
    37         *  The memory map returned be getMemoryMap().
    38         */
    39        config xdc.platform.IPlatform.Memory memMap[string] = [
    40
    41            /*
    42             * AMMU mapped L2 ROM virtual address
    43             * Physical address is 0x55000000
    44             */
    45            ["L2_ROM", {
    46                name: "L2_ROM",
    47                base: 0x00000000,
    48                len:  0x00004000
    49            }],
    50
    51            /*
    52             * AMMU mapped L2 RAM virtual address
    53             * Physical address is 0x55020000
    54         * Size is 256K
    55             */
    56            ["L2_RAM", {
    57                name: "L2_RAM",
    58                base: 0x20000000,
    59                len:  0x00040000
    60            }],
    61        ];
    62    };
    63    /*
    64     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    65     */
    66


module ti.catalog.arm.TMS320DA828

metaonly module ti.catalog.arm.TMS320DA828
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320DA828.xdc
var TMS320DA828 = xdc.useModule('ti.catalog.arm.TMS320DA828');
per-instance config parameters
    var params = new TMS320DA828.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA828.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA828.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA828.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA828.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.dataWordSize = Int 4;
config TMS320DA828.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.deviceHeader = String undefined;
config TMS320DA828.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA828.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA828.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA828.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA828.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA828.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA828.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320DA828

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA828.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320DA828 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.TMS320DA830

metaonly module ti.catalog.arm.TMS320DA830
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320DA830.xdc
var TMS320DA830 = xdc.useModule('ti.catalog.arm.TMS320DA830');
per-instance config parameters
    var params = new TMS320DA830.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA830.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA830.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA830.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA830.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.dataWordSize = Int 4;
config TMS320DA830.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.deviceHeader = String undefined;
config TMS320DA830.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA830.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA830.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA830.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA830.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA830.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA830.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:10 GMT


module ti.catalog.arm.TMS320DA830

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA830.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320DA830 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.TMS320DA840

metaonly module ti.catalog.arm.TMS320DA840
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320DA840.xdc
var TMS320DA840 = xdc.useModule('ti.catalog.arm.TMS320DA840');
per-instance config parameters
    var params = new TMS320DA840.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA840.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA840.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA840.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA840.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.dataWordSize = Int 4;
config TMS320DA840.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.deviceHeader = String undefined;
config TMS320DA840.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA840.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA840.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA840.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA840.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA840.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA840.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:11 GMT


module ti.catalog.arm.TMS320DA840

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA840.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320DA840 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.TMS320DA850

metaonly module ti.catalog.arm.TMS320DA850
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320DA850.xdc
var TMS320DA850 = xdc.useModule('ti.catalog.arm.TMS320DA850');
per-instance config parameters
    var params = new TMS320DA850.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v5T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "8KB ARM local RAM",
                    name: "IRAM",
                    base: 0xFFFF0000,
                    len: 0x00002000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA850.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
// Instance config-params object
    params.cpuCore = String "v5T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM",
            {
                comment: "8KB ARM local RAM",
                name: "IRAM",
                base: 0xFFFF0000,
                len: 0x00002000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA850.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.cpuCore = String "v5T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA850.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA850.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.dataWordSize = Int 4;
config TMS320DA850.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.deviceHeader = String undefined;
config TMS320DA850.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "8KB ARM local RAM",
            name: "IRAM",
            base: 0xFFFF0000,
            len: 0x00002000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA850.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA850.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA850.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA850.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA850.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA850.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:11 GMT


module ti.catalog.arm.TMS320DA850

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA850.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320DA850 inherits ITMS320DA8xx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.TMS320DM355

metaonly module ti.catalog.arm.TMS320DM355
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320DM355.xdc
var TMS320DM355 = xdc.useModule('ti.catalog.arm.TMS320DM355');
per-instance config parameters
    var params = new TMS320DM355.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Arm9";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "IRAM0",
                {
                    comment: "Internal ARM Instruction RAM0",
                    name: "IRAM0",
                    base: 0x00000000,
                    len: 0x00004000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "DRAM1",
                {
                    comment: "Internal ARM Data RAM1",
                    name: "DRAM1",
                    base: 0x00014000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM355.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
// Instance config-params object
    params.cpuCore = String "Arm9";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "IRAM0",
            {
                comment: "Internal ARM Instruction RAM0",
                name: "IRAM0",
                base: 0x00000000,
                len: 0x00004000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "DRAM1",
            {
                comment: "Internal ARM Data RAM1",
                name: "DRAM1",
                base: 0x00014000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM355.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
...
params.cpuCore = String "Arm9";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM355.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM355.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
...
params.dataWordSize = Int 4;
config TMS320DM355.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
...
params.deviceHeader = String undefined;
config TMS320DM355.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM0",
        {
            comment: "Internal ARM Instruction RAM0",
            name: "IRAM0",
            base: 0x00000000,
            len: 0x00004000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "DRAM1",
        {
            comment: "Internal ARM Data RAM1",
            name: "DRAM1",
            base: 0x00014000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320DM355.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM355.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM355.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM355.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM355.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM355.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM355.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:11 GMT


module ti.catalog.arm.TMS320DM355

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM355.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320DM355 inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "Arm9";
    22        override config string isa               = "v5T";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string] = [
    33            ["IRAM0", {
    34                comment:    "Internal ARM Instruction RAM0",
    35                name:       "IRAM0",
    36                base:       0x00000000,
    37                len:        0x00004000,
    38                space:      "code",
    39                access:     "RWX"
    40            }],
    41
    42            ["DRAM1", {
    43                comment:    "Internal ARM Data RAM1",
    44                name:       "DRAM1",
    45                base:       0x00014000,
    46                len:        0x00004000,
    47                space:      "data",
    48                access:     "RW"
    49            }],
    50        ];
    51    }
    52    /*
    53     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    54     */
    55


module ti.catalog.arm.TMS320DM357

metaonly module ti.catalog.arm.TMS320DM357
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320DM357.xdc
var TMS320DM357 = xdc.useModule('ti.catalog.arm.TMS320DM357');
per-instance config parameters
    var params = new TMS320DM357.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Arm9";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] TMS320DM355.memMap;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM357.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
// Instance config-params object
    params.cpuCore = String "Arm9";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] TMS320DM355.memMap;
    // The memory map returned be getMemoryMap()
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM357.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.cpuCore = String "Arm9";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM357.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM357.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.dataWordSize = Int 4;
config TMS320DM357.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.deviceHeader = String undefined;
config TMS320DM357.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.memMap = IPlatform.Memory[string] TMS320DM355.memMap;
config TMS320DM357.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM357.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM357.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM357.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM357.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM357.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:11 GMT


module ti.catalog.arm.TMS320DM357

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM357.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320DM357 inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "Arm9";
    22        override config string isa               = "v5T";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string] = TMS320DM355.memMap;
    33    }
    34    /*
    35     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    36     */
    37


module ti.catalog.arm.TMS320DM365

metaonly module ti.catalog.arm.TMS320DM365
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS320DM365.xdc
var TMS320DM365 = xdc.useModule('ti.catalog.arm.TMS320DM365');
per-instance config parameters
    var params = new TMS320DM365.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Arm9";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] TMS320DM355.memMap;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM365.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
// Instance config-params object
    params.cpuCore = String "Arm9";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] TMS320DM355.memMap;
    // The memory map returned be getMemoryMap()
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM365.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
...
params.cpuCore = String "Arm9";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM365.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM365.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
...
params.dataWordSize = Int 4;
config TMS320DM365.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
...
params.deviceHeader = String undefined;
config TMS320DM365.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
...
params.memMap = IPlatform.Memory[string] TMS320DM355.memMap;
config TMS320DM365.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM365.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM365.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM365.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM365.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM365.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM365.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:11 GMT


module ti.catalog.arm.TMS320DM365

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM365.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320DM365 inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "Arm9";
    22        override config string isa               = "v5T";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string] = TMS320DM355.memMap;
    33    }
    34    /*
    35     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    36     */
    37


module ti.catalog.arm.TMS470R10

metaonly module ti.catalog.arm.TMS470R10
index URL

The C470 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device. [ more ... ]
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS470R10.xdc
var TMS470R10 = xdc.useModule('ti.catalog.arm.TMS470R10');
per-instance config parameters
    var params = new TMS470R10.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "470";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "P_MEM",
                {
                    comment: "Program Memory (ROM)",
                    name: "P_MEM",
                    base: 0x00000000,
                    len: 0x00030000,
                    space: "code"
                }
            ],
            [
                "D_MEM",
                {
                    comment: "Data Memory (RAM)",
                    name: "D_MEM",
                    base: 0x00030000,
                    len: 0x00050000,
                    space: "data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS470R10.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
DETAILS
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
Warning: The data for this module comes from the linker command file shipped with the TI 470 tools and does NOT come from any published data sheet.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS470R10.Params;
// Instance config-params object
    params.cpuCore = String "470";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "P_MEM",
            {
                comment: "Program Memory (ROM)",
                name: "P_MEM",
                base: 0x00000000,
                len: 0x00030000,
                space: "code"
            }
        ],
        [
            "D_MEM",
            {
                comment: "Data Memory (RAM)",
                name: "D_MEM",
                base: 0x00030000,
                len: 0x00050000,
                space: "data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS470R10.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS470R10.Params;
...
params.cpuCore = String "470";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS470R10.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS470R10.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS470R10.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS470R10.Params;
...
params.dataWordSize = Int 4;
config TMS470R10.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS470R10.Params;
...
params.deviceHeader = String undefined;
config TMS470R10.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS470R10.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "P_MEM",
        {
            comment: "Program Memory (ROM)",
            name: "P_MEM",
            base: 0x00000000,
            len: 0x00030000,
            space: "code"
        }
    ],
    [
        "D_MEM",
        {
            comment: "Data Memory (RAM)",
            name: "D_MEM",
            base: 0x00030000,
            len: 0x00050000,
            space: "data"
        }
    ]
];
config TMS470R10.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS470R10.Params;
...
params.minDataUnitSize = Int 1;
config TMS470R10.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS470R10.Params;
...
params.minProgUnitSize = Int 1;
config TMS470R10.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS470R10.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS470R10.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS470R10.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS470R10.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS470R10.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:11 GMT


module ti.catalog.arm.TMS470R10

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS470R10.xdc ========
    15     */
    16
    17    package ti.catalog.arm;
    18
    19    /*!
    20     *  ======== TMS470R10 ========
    21     *  The C470 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     *
    26     *  Warning: The data for this module comes from the linker command file
    27     *  shipped with the TI 470 tools and does NOT come from any published data
    28     *  sheet.
    29     */
    30    metaonly module TMS470R10 inherits ti.catalog.ICpuDataSheet
    31    {
    32    instance:
    33        override config string   cpuCore        = "470";
    34        override config string   isa            = "v4T";
    35
    36        override config int     minProgUnitSize = 1;
    37        override config int     minDataUnitSize = 1;
    38        override config int     dataWordSize    = 4;
    39
    40        override config string   cpuCoreRevision = "1.0";
    41
    42        /*!
    43         *  ======== memMap ========
    44         *  The default memory map for this device
    45         */
    46        config xdc.platform.IPlatform.Memory memMap[string]  = [
    47            ["P_MEM", {
    48                comment: "Program Memory (ROM)",
    49                name: "P_MEM",
    50                base: 0x00000000,
    51                len: 0x00030000,
    52                space: "code"
    53            }],
    54
    55            ["D_MEM", {
    56                comment: "Data Memory (RAM)",
    57                name: "D_MEM",
    58                base: 0x00030000,
    59                len: 0x00050000,
    60                space: "data"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.arm.TMS570LS20216

metaonly module ti.catalog.arm.TMS570LS20216
index URL

The C470 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device. [ more ... ]
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS570LS20216.xdc
var TMS570LS20216 = xdc.useModule('ti.catalog.arm.TMS570LS20216');
per-instance config parameters
    var params = new TMS570LS20216.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "R4";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "LO_FLASH",
                {
                    name: "FLASH",
                    base: 0x00000000,
                    len: 0x00200000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "HI_IRAM",
                {
                    name: "IRAM",
                    base: 0x08000000,
                    len: 0x00028000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "HI_FLASH",
                {
                    name: "FLASH",
                    base: 0x20000000,
                    len: 0x00080000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "LO_IRAM",
                {
                    name: "IRAM",
                    base: 0x00000000,
                    len: 0x00028000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS570LS20216.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
DETAILS
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
Warning: The data for this module comes from the linker command file shipped with the TI 470 tools and does NOT come from any published data sheet.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
// Instance config-params object
    params.cpuCore = String "R4";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "LO_FLASH",
            {
                name: "FLASH",
                base: 0x00000000,
                len: 0x00200000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "HI_IRAM",
            {
                name: "IRAM",
                base: 0x08000000,
                len: 0x00028000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "HI_FLASH",
            {
                name: "FLASH",
                base: 0x20000000,
                len: 0x00080000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "LO_IRAM",
            {
                name: "IRAM",
                base: 0x00000000,
                len: 0x00028000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS570LS20216.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.cpuCore = String "R4";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS570LS20216.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS570LS20216.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.dataWordSize = Int 4;
config TMS570LS20216.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.deviceHeader = String undefined;
config TMS570LS20216.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "LO_FLASH",
        {
            name: "FLASH",
            base: 0x00000000,
            len: 0x00200000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "HI_IRAM",
        {
            name: "IRAM",
            base: 0x08000000,
            len: 0x00028000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "HI_FLASH",
        {
            name: "FLASH",
            base: 0x20000000,
            len: 0x00080000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "LO_IRAM",
        {
            name: "IRAM",
            base: 0x00000000,
            len: 0x00028000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS570LS20216.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.minDataUnitSize = Int 1;
config TMS570LS20216.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.minProgUnitSize = Int 1;
config TMS570LS20216.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS570LS20216.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS570LS20216.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS570LS20216.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:11 GMT


module ti.catalog.arm.TMS570LS20216

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS570LS20216.xdc ========
    15     */
    16    package ti.catalog.arm;
    17
    18    /*!
    19     *  ======== TMS570LS20216 ========
    20     *  The C470 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     *  Warning: The data for this module comes from the linker command file
    26     *  shipped with the TI 470 tools and does NOT come from any published data
    27     *  sheet.
    28     */
    29    metaonly module TMS570LS20216 inherits ti.catalog.ICpuDataSheet
    30    {
    31    instance:
    32        override config string cpuCore           = "R4";
    33        override config string isa               = "v7R";
    34        override config string cpuCoreRevision   = "1.0";
    35        override config int    minProgUnitSize   = 1;
    36        override config int    minDataUnitSize   = 1;
    37        override config int    dataWordSize      = 4;
    38
    39        /*!
    40         *  ======== memMap ========
    41         *  The default memory map for this device
    42         */
    43        config xdc.platform.IPlatform.Memory memMap[string]  = [
    44            ["LO_FLASH", {
    45                name:       "FLASH",
    46                base:       0x00000000,
    47                len:        0x00200000,
    48                space:      "code",
    49                access:     "RX"
    50            }],
    51            ["HI_IRAM", {
    52                name:       "IRAM",
    53                base:       0x08000000,
    54                len:        0x00028000,
    55                space:      "code/data",
    56                access:     "RWX"
    57            }],
    58            ["HI_FLASH", {
    59                name:       "FLASH",
    60                base:       0x20000000,
    61                len:        0x00080000,
    62                space:      "code",
    63                access:     "RX"
    64            }],
    65            ["LO_IRAM", {
    66                name:       "IRAM",
    67                base:       0x00000000,
    68                len:        0x00028000,
    69                space:      "code/data",
    70                access:     "RWX"
    71            }],
    72        ];
    73    };
    74
    75    /*
    76     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


module ti.catalog.arm.TMS570PSF762

metaonly module ti.catalog.arm.TMS570PSF762
index URL

The C470 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device. [ more ... ]
XDCscript usage meta-domain sourced in ti/catalog/arm/TMS570PSF762.xdc
var TMS570PSF762 = xdc.useModule('ti.catalog.arm.TMS570PSF762');
per-instance config parameters
    var params = new TMS570PSF762.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "R4";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "LO_FLASH",
                {
                    name: "FLASH",
                    base: 0x00000000,
                    len: 0x00080000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "HI_IRAM",
                {
                    name: "IRAM",
                    base: 0x08000000,
                    len: 0x0000A000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "HI_FLASH",
                {
                    name: "FLASH",
                    base: 0x20000000,
                    len: 0x00080000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "LO_IRAM",
                {
                    name: "IRAM",
                    base: 0x00000000,
                    len: 0x0000A000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS570PSF762.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
DETAILS
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
Warning: The data for this module comes from the linker command file shipped with the TI 470 tools and does NOT come from any published data sheet.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
// Instance config-params object
    params.cpuCore = String "R4";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "LO_FLASH",
            {
                name: "FLASH",
                base: 0x00000000,
                len: 0x00080000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "HI_IRAM",
            {
                name: "IRAM",
                base: 0x08000000,
                len: 0x0000A000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "HI_FLASH",
            {
                name: "FLASH",
                base: 0x20000000,
                len: 0x00080000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "LO_IRAM",
            {
                name: "IRAM",
                base: 0x00000000,
                len: 0x0000A000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS570PSF762.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.cpuCore = String "R4";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS570PSF762.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS570PSF762.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.dataWordSize = Int 4;
config TMS570PSF762.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.deviceHeader = String undefined;
config TMS570PSF762.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "LO_FLASH",
        {
            name: "FLASH",
            base: 0x00000000,
            len: 0x00080000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "HI_IRAM",
        {
            name: "IRAM",
            base: 0x08000000,
            len: 0x0000A000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "HI_FLASH",
        {
            name: "FLASH",
            base: 0x20000000,
            len: 0x00080000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "LO_IRAM",
        {
            name: "IRAM",
            base: 0x00000000,
            len: 0x0000A000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS570PSF762.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.minDataUnitSize = Int 1;
config TMS570PSF762.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.minProgUnitSize = Int 1;
config TMS570PSF762.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS570PSF762.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS570PSF762.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS570PSF762.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:11 GMT


module ti.catalog.arm.TMS570PSF762

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS570PSF762.xdc ========
    15     */
    16    package ti.catalog.arm;
    17
    18    /*!
    19     *  ======== TMS570PSF762 ========
    20     *  The C470 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     *  Warning: The data for this module comes from the linker command file
    26     *  shipped with the TI 470 tools and does NOT come from any published data
    27     *  sheet.
    28     */
    29    metaonly module TMS570PSF762 inherits ti.catalog.ICpuDataSheet
    30    {
    31
    32    instance:
    33        override config string cpuCore           = "R4";
    34        override config string isa               = "v7R";
    35        override config string cpuCoreRevision   = "1.0";
    36        override config int    minProgUnitSize   = 1;
    37        override config int    minDataUnitSize   = 1;
    38        override config int    dataWordSize      = 4;
    39
    40        /*!
    41         *  ======== memMap ========
    42         *  The default memory map for this device
    43         */
    44        config xdc.platform.IPlatform.Memory memMap[string]  = [
    45            ["LO_FLASH", {
    46                name:       "FLASH",
    47                base:       0x00000000,
    48                len:        0x00080000,
    49                space:      "code",
    50                access:     "RX"
    51            }],
    52            ["HI_IRAM", {
    53                name:       "IRAM",
    54                base:       0x08000000,
    55                len:        0x0000A000,
    56                space:      "code/data",
    57                access:     "RWX"
    58            }],
    59            ["HI_FLASH", {
    60                name:       "FLASH",
    61                base:       0x20000000,
    62                len:        0x00080000,
    63                space:      "code",
    64                access:     "RX"
    65            }],
    66            ["LO_IRAM", {
    67                name:       "IRAM",
    68                base:       0x00000000,
    69                len:        0x0000A000,
    70                space:      "code/data",
    71                access:     "RWX"
    72            }],
    73        ];
    74    };
    75
    76    /*
    77     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:07; /db/ztree/library/trees/platform/platform-n27x/src/
    78     */
    79


module ti.catalog.arm.TNETV107X

metaonly module ti.catalog.arm.TNETV107X
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/TNETV107X.xdc
var TNETV107X = xdc.useModule('ti.catalog.arm.TNETV107X');
per-instance config parameters
    var params = new TNETV107X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Arm11";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x20000000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TNETV107X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TNETV107X.Params;
// Instance config-params object
    params.cpuCore = String "Arm11";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x20000000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TNETV107X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.cpuCore = String "Arm11";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TNETV107X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.cpuCoreRevision = String "1.0";
config TNETV107X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.dataWordSize = Int 4;
config TNETV107X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.deviceHeader = String undefined;
config TNETV107X.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x20000000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TNETV107X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.minDataUnitSize = Int 1;
config TNETV107X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.minProgUnitSize = Int 1;
config TNETV107X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TNETV107X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TNETV107X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TNETV107X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TNETV107X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:11 GMT


module ti.catalog.arm.TNETV107X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TNETV107X.xdc ========
    15     *
    16     */
    17
    18    metaonly module TNETV107X inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "Arm11";
    22        override config string isa               = "v6";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        config xdc.platform.IPlatform.Memory memMap[string] = [
    29            ["SRAM", {
    30                comment:    "On-Chip SRAM",
    31                name:       "SRAM",
    32                base:       0x20000000,
    33                len:        0x00010000,
    34                space:      "code/data",
    35                access:     "RWX"
    36            }],
    37        ];
    38    }
    39
    40    /*
    41     *  @(#) ti.catalog.arm; 1, 0, 1,287; 8-17-2012 22:13:08; /db/ztree/library/trees/platform/platform-n27x/src/
    42     */
    43


package ti.catalog.arm.cortexa15
index URL

Package of devices for the arm Cortex A15 family of Arm processors

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/arm/cortexa15/package.xdc
requires xdc.platform;
requires ti.catalog.peripherals.hdvicp2;
package ti.catalog.arm.cortexa15 [1, 0, 0] {
    module OMAP5430;
    module Vayu;
}
generated on Thu, 08 Nov 2012 02:15:15 GMT


package ti.catalog.arm.cortexa15

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14    requires ti.catalog.peripherals.hdvicp2;
    15
    16    /*!
    17     *  ======== ti.catalog.arm.cortexa15  ========
    18     *  Package of devices for the arm Cortex A15 family of Arm processors.
    19     *
    20     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    21     *  interface. This interface is used by platforms (modules that implement
    22     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    23     */
    24    package ti.catalog.arm.cortexa15 [1,0,0] {
    25        module OMAP5430;
    26        module Vayu;
    27    }
    28    /*
    29     *  @(#) ti.catalog.arm.cortexa15; 1, 0, 0,10; 8-17-2012 22:13:08; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.arm.cortexa15.OMAP5430

metaonly module ti.catalog.arm.cortexa15.OMAP5430
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa15/OMAP5430.xdc
var OMAP5430 = xdc.useModule('ti.catalog.arm.cortexa15.OMAP5430');
per-instance config parameters
    var params = new OMAP5430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x00008000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP5430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP5430.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x00008000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP5430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP5430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP5430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.dataWordSize = Int 4;
config OMAP5430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.deviceHeader = String undefined;
config OMAP5430.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config OMAP5430.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x00008000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP5430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.minDataUnitSize = Int 1;
config OMAP5430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.minProgUnitSize = Int 1;
config OMAP5430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP5430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP5430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP5430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP5430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:15 GMT


module ti.catalog.arm.cortexa15.OMAP5430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP5430.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP5430 inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    22
    23        override config string cpuCore           = "v7A";
    24        override config string isa               = "v7A";
    25        override config string cpuCoreRevision   = "1.0";
    26        override config int    minProgUnitSize   = 1;
    27        override config int    minDataUnitSize   = 1;
    28        override config int    dataWordSize      = 4;
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The memory map returned be getMemoryMap().
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["SRAM", {
    36                comment:    "On-Chip SRAM",
    37                name:       "SRAM",
    38                base:       0x402F0000,
    39                len:        0x00008000,
    40                space:      "code/data",
    41                access:     "RWX"
    42            }],
    43        ];
    44    }
    45    /*
    46     *  @(#) ti.catalog.arm.cortexa15; 1, 0, 0,10; 8-17-2012 22:13:08; /db/ztree/library/trees/platform/platform-n27x/src/
    47     */
    48


module ti.catalog.arm.cortexa15.Vayu

metaonly module ti.catalog.arm.cortexa15.Vayu
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa15/Vayu.xdc
var Vayu = xdc.useModule('ti.catalog.arm.cortexa15.Vayu');
per-instance config parameters
    var params = new Vayu.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A15";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x00008000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Vayu.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Vayu.Params;
// Instance config-params object
    params.cpuCore = String "v7A15";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x00008000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Vayu.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.cpuCore = String "v7A15";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Vayu.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.cpuCoreRevision = String "1.0";
config Vayu.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.dataWordSize = Int 4;
config Vayu.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.deviceHeader = String undefined;
config Vayu.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config Vayu.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x00008000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config Vayu.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.minDataUnitSize = Int 1;
config Vayu.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.minProgUnitSize = Int 1;
config Vayu.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Vayu.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Vayu.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Vayu.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Vayu.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:15 GMT


module ti.catalog.arm.cortexa15.Vayu

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP5430.xdc ========
    15     *
    16     */
    17
    18    metaonly module Vayu inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    22
    23        override config string cpuCore           = "v7A15";
    24        override config string isa               = "v7A15";
    25        override config string cpuCoreRevision   = "1.0";
    26        override config int    minProgUnitSize   = 1;
    27        override config int    minDataUnitSize   = 1;
    28        override config int    dataWordSize      = 4;
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The memory map returned be getMemoryMap().
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["SRAM", {
    36                comment:    "On-Chip SRAM",
    37                name:       "SRAM",
    38                base:       0x402F0000,
    39                len:        0x00008000,
    40                space:      "code/data",
    41                access:     "RWX"
    42            }],
    43        ];
    44    }
    45    /*
    46     *  @(#) ti.catalog.arm.cortexa15; 1, 0, 0,10; 8-17-2012 22:13:08; /db/ztree/library/trees/platform/platform-n27x/src/
    47     */
    48


package ti.catalog.arm.cortexa8
index URL

Package of devices for the Cortex A8 family of Arm processors

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/arm/cortexa8/package.xdc
requires xdc.platform;
requires ti.catalog.peripherals.hdvicp2;
package ti.catalog.arm.cortexa8 [1, 0, 0] {
    interface IAM335X;
    // An interface implemented by all TI8168 devices
    interface IOMAP3xxx;
    interface ITI811X;
    // An interface implemented by all TI811X devices
    interface ITI813X;
    // An interface implemented by all TI813X devices
    interface ITI8148;
    // An interface implemented by all TI8148 devices
    interface ITI8168;
    // An interface implemented by all TI8168 devices
    module AM3359;
    module AM3505;
    module AM3517;
    module OMAP3403;
    module OMAP3405;
    module OMAP3425;
    module OMAP3503;
    module OMAP3505;
    module OMAP3515;
    module OMAP3517;
    module OMAP3525;
    module OMAP3530;
    module TMS320C3430;
    module TMS320C6A8149;
    module TMS320C6A8168;
    module TMS320DM8148;
    module TMS320DM8168;
    module TMS320TI811X;
    module TMS320TI813X;
    module TMS320TI814X;
    module TMS320TI816X;
}
generated on Thu, 08 Nov 2012 02:15:14 GMT


package ti.catalog.arm.cortexa8

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14    requires ti.catalog.peripherals.hdvicp2;
    15
    16    /*!
    17     *  ======== ti.catalog.arm.cortexa8 ========
    18     *  Package of devices for the Cortex A8 family of Arm processors.
    19     *
    20     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    21     *  interface. This interface is used by platforms (modules that implement
    22     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    23     */
    24    package ti.catalog.arm.cortexa8 [1,0,0] {
    25        interface IOMAP3xxx;
    26        module OMAP3403, OMAP3405, OMAP3503, OMAP3505, OMAP3515, OMAP3517;
    27        module OMAP3425, OMAP3525, TMS320C3430, OMAP3530;
    28
    29        interface ITI8168;
    30        module TMS320TI816X;
    31        module TMS320DM8168;
    32        module TMS320C6A8168;
    33
    34        interface ITI8148;
    35        module TMS320TI814X;
    36        module TMS320DM8148;
    37
    38        interface IAM335X;
    39        module AM3359;
    40
    41        module AM3505, AM3517;
    42
    43        interface ITI813X;
    44        module TMS320TI813X;
    45
    46        interface ITI811X;
    47        module TMS320TI811X;
    48
    49        module TMS320C6A8149;
    50    }
    51    /*
    52     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    53     */
    54


module ti.catalog.arm.cortexa8.AM3359

metaonly module ti.catalog.arm.cortexa8.AM3359
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/AM3359.xdc
var AM3359 = xdc.useModule('ti.catalog.arm.cortexa8.AM3359');
per-instance config parameters
    var params = new AM3359.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM_LO",
                {
                    comment: "Secure SRAM locked",
                    name: "SRAM_LO",
                    base: 0x402F0000,
                    len: 0x00000400,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SRAM_HI",
                {
                    comment: "Secure SRAM open",
                    name: "SRAM_HI",
                    base: 0x402F0400,
                    len: 0x0000FC00,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC_SRAM",
                    base: 0x40300000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = AM3359.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new AM3359.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM_LO",
            {
                comment: "Secure SRAM locked",
                name: "SRAM_LO",
                base: 0x402F0000,
                len: 0x00000400,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SRAM_HI",
            {
                comment: "Secure SRAM open",
                name: "SRAM_HI",
                base: 0x402F0400,
                len: 0x0000FC00,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC_SRAM",
                base: 0x40300000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config AM3359.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config AM3359.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.cpuCoreRevision = String "1.0";
config AM3359.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.dataWordSize = Int 4;
config AM3359.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.deviceHeader = String undefined;
config AM3359.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config AM3359.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config AM3359.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config AM3359.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM_LO",
        {
            comment: "Secure SRAM locked",
            name: "SRAM_LO",
            base: 0x402F0000,
            len: 0x00000400,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SRAM_HI",
        {
            comment: "Secure SRAM open",
            name: "SRAM_HI",
            base: 0x402F0400,
            len: 0x0000FC00,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC_SRAM",
            base: 0x40300000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config AM3359.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.minDataUnitSize = Int 1;
config AM3359.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.minProgUnitSize = Int 1;
config AM3359.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new AM3359.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new AM3359.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = AM3359.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
AM3359.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
AM3359.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


module ti.catalog.arm.cortexa8.AM3359

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== AM3359.xdc ========
    15     *
    16     */
    17
    18    metaonly module AM3359 inherits IAM335X
    19    {
    20    };
    21    /*
    22     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:09; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.AM3505

metaonly module ti.catalog.arm.cortexa8.AM3505
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/AM3505.xdc
var AM3505 = xdc.useModule('ti.catalog.arm.cortexa8.AM3505');
per-instance config parameters
    var params = new AM3505.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = AM3505.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new AM3505.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config AM3505.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new AM3505.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config AM3505.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new AM3505.Params;
...
params.cpuCoreRevision = String "1.0";
config AM3505.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new AM3505.Params;
...
params.dataWordSize = Int 4;
config AM3505.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new AM3505.Params;
...
params.deviceHeader = String undefined;
config AM3505.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new AM3505.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config AM3505.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM3505.Params;
...
params.minDataUnitSize = Int 1;
config AM3505.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM3505.Params;
...
params.minProgUnitSize = Int 1;
config AM3505.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new AM3505.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new AM3505.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = AM3505.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
AM3505.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
AM3505.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


module ti.catalog.arm.cortexa8.AM3505

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== AM3505.xdc ========
    15     *
    16     */
    17
    18    metaonly module AM3505 inherits IOMAP3xxx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:09; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.AM3517

metaonly module ti.catalog.arm.cortexa8.AM3517
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/AM3517.xdc
var AM3517 = xdc.useModule('ti.catalog.arm.cortexa8.AM3517');
per-instance config parameters
    var params = new AM3517.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = AM3517.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new AM3517.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config AM3517.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new AM3517.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config AM3517.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new AM3517.Params;
...
params.cpuCoreRevision = String "1.0";
config AM3517.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new AM3517.Params;
...
params.dataWordSize = Int 4;
config AM3517.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new AM3517.Params;
...
params.deviceHeader = String undefined;
config AM3517.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new AM3517.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config AM3517.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM3517.Params;
...
params.minDataUnitSize = Int 1;
config AM3517.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new AM3517.Params;
...
params.minProgUnitSize = Int 1;
config AM3517.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new AM3517.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new AM3517.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = AM3517.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
AM3517.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
AM3517.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


module ti.catalog.arm.cortexa8.AM3517

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== AM3517.xdc ========
    15     *
    16     */
    17
    18    metaonly module AM3517 inherits IOMAP3xxx
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


interface ti.catalog.arm.cortexa8.IAM335X

metaonly interface ti.catalog.arm.cortexa8.IAM335X
index URL

An interface implemented by all TI8168 devices

This interface is defined to factor common data about all TI8168 type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
metaonly interface IAM335X { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
package ti.catalog.arm.cortexa8;
metaonly interface IAM335X inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "v7A";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config HDVICP2.Instance hdvicp1// ;
    config HDVICP2.Instance hdvicp2// ;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "SRAM_LO",
            {
                comment: "Secure SRAM locked",
                name: "SRAM_LO",
                base: 0x402F0000,
                len: 0x00000400,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SRAM_HI",
            {
                comment: "Secure SRAM open",
                name: "SRAM_HI",
                base: 0x402F0400,
                len: 0x0000FC00,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC_SRAM",
                base: 0x40300000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IAM335X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
override config String cpuCore = "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IAM335X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
override config String cpuCoreRevision = "1.0";
config IAM335X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
override config Int dataWordSize = 4;
config IAM335X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
config String deviceHeader;
config IAM335X.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
config HDVICP2.Instance hdvicp0;
config IAM335X.hdvicp1 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
config HDVICP2.Instance hdvicp1;
config IAM335X.hdvicp2 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
config HDVICP2.Instance hdvicp2;
config IAM335X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
config IPlatform.Memory memMap[string] = [
    [
        "SRAM_LO",
        {
            comment: "Secure SRAM locked",
            name: "SRAM_LO",
            base: 0x402F0000,
            len: 0x00000400,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SRAM_HI",
        {
            comment: "Secure SRAM open",
            name: "SRAM_HI",
            base: 0x402F0400,
            len: 0x0000FC00,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC_SRAM",
            base: 0x40300000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config IAM335X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
override config Int minDataUnitSize = 1;
config IAM335X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
override config Int minProgUnitSize = 1;
config IAM335X.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IAM335X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IAM335X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IAM335X.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


interface ti.catalog.arm.cortexa8.IAM335X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IAM335x.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== IAM335x ========
    20     *  An interface implemented by all TI8168 devices
    21     *
    22     *  This interface is defined to factor common data about all TI8168 type devices
    23     *  into a single place; they all have the same internal memory.
    24     */
    25    metaonly interface IAM335X inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    29        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp1;
    30        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp2;
    31
    32        override config string cpuCore           = "v7A";
    33        override config string isa               = "v7A";
    34        override config string cpuCoreRevision   = "1.0";
    35        override config int    minProgUnitSize   = 1;
    36        override config int    minDataUnitSize   = 1;
    37        override config int    dataWordSize      = 4;
    38
    39        /*!
    40         *  ======== memMap ========
    41         *  The memory map returned be getMemoryMap().
    42         */
    43        config xdc.platform.IPlatform.Memory memMap[string]  = [
    44            ["SRAM_LO", {
    45                comment:    "Secure SRAM locked",
    46                name:       "SRAM_LO",
    47                base:       0x402F0000,
    48                len:        0x00000400,
    49                space:      "code/data",
    50                access:     "RWX"
    51            }],
    52
    53            ["SRAM_HI", {
    54                comment:    "Secure SRAM open",
    55                name:       "SRAM_HI",
    56                base:       0x402F0400,
    57                len:        0x0000FC00,
    58                space:      "code/data",
    59                access:     "RWX"
    60            }],
    61
    62            /*
    63             * OCMC (On-chip RAM)
    64             * Size is 64K
    65             */
    66            ["OCMC", {
    67                name:       "OCMC_SRAM",
    68                base:       0x40300000,
    69                len:        0x00010000,
    70                space:      "code/data",
    71                access:     "RWX"
    72            }],
    73        ];
    74    }
    75    /*
    76     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


interface ti.catalog.arm.cortexa8.IOMAP3xxx

metaonly interface ti.catalog.arm.cortexa8.IOMAP3xxx
index URL
XDCspec summary sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
metaonly interface IOMAP3xxx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
package ti.catalog.arm.cortexa8;
metaonly interface IOMAP3xxx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "v7A";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IOMAP3xxx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
override config String cpuCore = "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IOMAP3xxx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
override config String cpuCoreRevision = "1.0";
config IOMAP3xxx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
override config Int dataWordSize = 4;
config IOMAP3xxx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
config String deviceHeader;
config IOMAP3xxx.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config IOMAP3xxx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
override config Int minDataUnitSize = 1;
config IOMAP3xxx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
override config Int minProgUnitSize = 1;
config IOMAP3xxx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IOMAP3xxx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IOMAP3xxx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexa8/IOMAP3xxx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


interface ti.catalog.arm.cortexa8.IOMAP3xxx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IOMAP3xxx.xdc ========
    15     *
    16     */
    17
    18    metaonly interface IOMAP3xxx inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        override config string cpuCore           = "v7A";
    22        override config string isa               = "v7A";
    23        override config string cpuCoreRevision   = "1.0";
    24        override config int    minProgUnitSize   = 1;
    25        override config int    minDataUnitSize   = 1;
    26        override config int    dataWordSize      = 4;
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The memory map returned be getMemoryMap().
    31         */
    32        config xdc.platform.IPlatform.Memory memMap[string]  = [
    33            ["SRAM", {
    34                comment:    "On-Chip SRAM",
    35                name:       "SRAM",
    36                base:       0x40200000,
    37                len:        0x00010000,
    38                space:      "code/data",
    39                access:     "RWX"
    40            }],
    41
    42        ];
    43    }
    44    /*
    45     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    46     */
    47


interface ti.catalog.arm.cortexa8.ITI811X

metaonly interface ti.catalog.arm.cortexa8.ITI811X
index URL

An interface implemented by all TI811X devices

This interface is defined to factor common data about all TI811X type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
metaonly interface ITI811X { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
package ti.catalog.arm.cortexa8;
metaonly interface ITI811X inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "v7A";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI811X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
override config String cpuCore = "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI811X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
override config String cpuCoreRevision = "1.0";
config ITI811X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
override config Int dataWordSize = 4;
config ITI811X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
config String deviceHeader;
config ITI811X.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
config HDVICP2.Instance hdvicp0;
config ITI811X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
config IPlatform.Memory memMap[string] = [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000
        }
    ]
];
config ITI811X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
override config Int minDataUnitSize = 1;
config ITI811X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
override config Int minProgUnitSize = 1;
config ITI811X.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI811X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI811X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI811X.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


interface ti.catalog.arm.cortexa8.ITI811X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI811X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITI811X ========
    20     *  An interface implemented by all TI811X devices
    21     *
    22     *  This interface is defined to factor common data about all TI811X type
    23     *  devices into a single place; they all have the same internal memory.
    24     */
    25    metaonly interface ITI811X inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    29
    30        override config string cpuCore           = "v7A";
    31        override config string isa               = "v7A";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string]  = [
    42            ["SRAM", {
    43                comment:    "On-Chip SRAM",
    44                name:       "SRAM",
    45                base:       0x402F0000,
    46                len:        0x10000,
    47                space:      "code/data",
    48                access:     "RWX"
    49            }],
    50
    51            /*
    52             * OCMC (On-chip RAM)
    53             * Size is 128K
    54             */
    55            ["OCMC", {
    56                name: "OCMC",
    57                base: 0x40300000,
    58                len:  0x20000
    59            }],
    60        ];
    61    }
    62    /*
    63     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    64     */
    65


interface ti.catalog.arm.cortexa8.ITI813X

metaonly interface ti.catalog.arm.cortexa8.ITI813X
index URL

An interface implemented by all TI813X devices

This interface is defined to factor common data about all TI813X type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
metaonly interface ITI813X { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
package ti.catalog.arm.cortexa8;
metaonly interface ITI813X inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "v7A";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI813X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
override config String cpuCore = "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI813X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
override config String cpuCoreRevision = "1.0";
config ITI813X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
override config Int dataWordSize = 4;
config ITI813X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
config String deviceHeader;
config ITI813X.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
config HDVICP2.Instance hdvicp0;
config ITI813X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
config IPlatform.Memory memMap[string] = [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000
        }
    ]
];
config ITI813X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
override config Int minDataUnitSize = 1;
config ITI813X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
override config Int minProgUnitSize = 1;
config ITI813X.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI813X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI813X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI813X.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


interface ti.catalog.arm.cortexa8.ITI813X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI813X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITI813X ========
    20     *  An interface implemented by all TI813X devices
    21     *
    22     *  This interface is defined to factor common data about all TI813X type
    23     *  devices into a single place; they all have the same internal memory.
    24     */
    25    metaonly interface ITI813X inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    29
    30        override config string cpuCore           = "v7A";
    31        override config string isa               = "v7A";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string]  = [
    42            ["SRAM", {
    43                comment:    "On-Chip SRAM",
    44                name:       "SRAM",
    45                base:       0x402F0000,
    46                len:        0x10000,
    47                space:      "code/data",
    48                access:     "RWX"
    49            }],
    50
    51            /*
    52             * OCMC (On-chip RAM)
    53             * Size is 128K
    54             */
    55            ["OCMC", {
    56                name: "OCMC",
    57                base: 0x40300000,
    58                len:  0x20000
    59            }],
    60        ];
    61    }
    62    /*
    63     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    64     */
    65


interface ti.catalog.arm.cortexa8.ITI8148

metaonly interface ti.catalog.arm.cortexa8.ITI8148
index URL

An interface implemented by all TI8148 devices

This interface is defined to factor common data about all TI8148 type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
metaonly interface ITI8148 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
package ti.catalog.arm.cortexa8;
metaonly interface ITI8148 inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "v7A";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI8148.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
override config String cpuCore = "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI8148.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
override config String cpuCoreRevision = "1.0";
config ITI8148.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
override config Int dataWordSize = 4;
config ITI8148.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
config String deviceHeader;
config ITI8148.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
config HDVICP2.Instance hdvicp0;
config ITI8148.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
config IPlatform.Memory memMap[string] = [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000
        }
    ]
];
config ITI8148.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
override config Int minDataUnitSize = 1;
config ITI8148.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
override config Int minProgUnitSize = 1;
config ITI8148.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI8148.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI8148.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8148.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


interface ti.catalog.arm.cortexa8.ITI8148

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI8148.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITI8148 ========
    20     *  An interface implemented by all TI8148 devices
    21     *
    22     *  This interface is defined to factor common data about all TI8148 type devices
    23     *  into a single place; they all have the same internal memory.
    24     */
    25    metaonly interface ITI8148 inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    29
    30        override config string cpuCore           = "v7A";
    31        override config string isa               = "v7A";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string]  = [
    42            ["SRAM", {
    43                comment:    "On-Chip SRAM",
    44                name:       "SRAM",
    45                base:       0x402F0000,
    46                len:        0x10000,
    47                space:      "code/data",
    48                access:     "RWX"
    49            }],
    50
    51            /*
    52             * OCMC (On-chip RAM)
    53             * Size is 128K
    54             */
    55            ["OCMC", {
    56                name: "OCMC",
    57                base: 0x40300000,
    58                len:  0x20000
    59            }],
    60        ];
    61    }
    62    /*
    63     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    64     */
    65


interface ti.catalog.arm.cortexa8.ITI8168

metaonly interface ti.catalog.arm.cortexa8.ITI8168
index URL

An interface implemented by all TI8168 devices

This interface is defined to factor common data about all TI8168 type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
metaonly interface ITI8168 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
package ti.catalog.arm.cortexa8;
metaonly interface ITI8168 inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "v7A";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config HDVICP2.Instance hdvicp1// ;
    config HDVICP2.Instance hdvicp2// ;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI8168.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
override config String cpuCore = "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI8168.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
override config String cpuCoreRevision = "1.0";
config ITI8168.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
override config Int dataWordSize = 4;
config ITI8168.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
config String deviceHeader;
config ITI8168.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
config HDVICP2.Instance hdvicp0;
config ITI8168.hdvicp1 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
config HDVICP2.Instance hdvicp1;
config ITI8168.hdvicp2 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
config HDVICP2.Instance hdvicp2;
config ITI8168.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
config IPlatform.Memory memMap[string] = [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000
        }
    ]
];
config ITI8168.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
override config Int minDataUnitSize = 1;
config ITI8168.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
override config Int minProgUnitSize = 1;
config ITI8168.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI8168.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI8168.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexa8/ITI8168.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


interface ti.catalog.arm.cortexa8.ITI8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI8168.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITI8168 ========
    20     *  An interface implemented by all TI8168 devices
    21     *
    22     *  This interface is defined to factor common data about all TI8168 type devices
    23     *  into a single place; they all have the same internal memory.
    24     */
    25    metaonly interface ITI8168 inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    29        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp1;
    30        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp2;
    31
    32        override config string cpuCore           = "v7A";
    33        override config string isa               = "v7A";
    34        override config string cpuCoreRevision   = "1.0";
    35        override config int    minProgUnitSize   = 1;
    36        override config int    minDataUnitSize   = 1;
    37        override config int    dataWordSize      = 4;
    38
    39        /*!
    40         *  ======== memMap ========
    41         *  The memory map returned be getMemoryMap().
    42         */
    43        config xdc.platform.IPlatform.Memory memMap[string]  = [
    44            ["SRAM", {
    45                comment:    "On-Chip SRAM",
    46                name:       "SRAM",
    47                base:       0x402F0000,
    48                len:        0x10000,
    49                space:      "code/data",
    50                access:     "RWX"
    51            }],
    52
    53            /*
    54             * OCMC (On-chip RAM) Bank 0
    55             * Size is 256K
    56             */
    57            ["OCMC_0", {
    58                name: "OCMC_0",
    59                base: 0x40300000,
    60                len:  0x40000
    61            }],
    62
    63            /*
    64             * OCMC (On-chip RAM) Bank 1
    65             * Size is 256K
    66             */
    67            ["OCMC_1", {
    68                name: "OCMC_1",
    69                base: 0x40400000,
    70                len:  0x40000
    71            }],
    72
    73        ];
    74    }
    75    /*
    76     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


module ti.catalog.arm.cortexa8.OMAP3403

metaonly module ti.catalog.arm.cortexa8.OMAP3403
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/OMAP3403.xdc
var OMAP3403 = xdc.useModule('ti.catalog.arm.cortexa8.OMAP3403');
per-instance config parameters
    var params = new OMAP3403.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3403.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3403.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3403.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3403.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3403.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.dataWordSize = Int 4;
config OMAP3403.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.deviceHeader = String undefined;
config OMAP3403.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3403.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3403.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3403.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3403.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3403.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3403.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3403.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3403.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


module ti.catalog.arm.cortexa8.OMAP3403

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3403.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3403 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3405

metaonly module ti.catalog.arm.cortexa8.OMAP3405
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/OMAP3405.xdc
var OMAP3405 = xdc.useModule('ti.catalog.arm.cortexa8.OMAP3405');
per-instance config parameters
    var params = new OMAP3405.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3405.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3405.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3405.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3405.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3405.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.dataWordSize = Int 4;
config OMAP3405.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.deviceHeader = String undefined;
config OMAP3405.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3405.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3405.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3405.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3405.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3405.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3405.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3405.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3405.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


module ti.catalog.arm.cortexa8.OMAP3405

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3405.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3405 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3425

metaonly module ti.catalog.arm.cortexa8.OMAP3425
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/OMAP3425.xdc
var OMAP3425 = xdc.useModule('ti.catalog.arm.cortexa8.OMAP3425');
per-instance config parameters
    var params = new OMAP3425.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3425.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3425.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3425.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3425.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3425.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.dataWordSize = Int 4;
config OMAP3425.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.deviceHeader = String undefined;
config OMAP3425.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3425.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3425.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3425.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3425.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3425.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3425.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3425.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


module ti.catalog.arm.cortexa8.OMAP3425

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3425.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3425 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3503

metaonly module ti.catalog.arm.cortexa8.OMAP3503
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/OMAP3503.xdc
var OMAP3503 = xdc.useModule('ti.catalog.arm.cortexa8.OMAP3503');
per-instance config parameters
    var params = new OMAP3503.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3503.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3503.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3503.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3503.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3503.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.dataWordSize = Int 4;
config OMAP3503.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.deviceHeader = String undefined;
config OMAP3503.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3503.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3503.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3503.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3503.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3503.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3503.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3503.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3503.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


module ti.catalog.arm.cortexa8.OMAP3503

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3503.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3503 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3505

metaonly module ti.catalog.arm.cortexa8.OMAP3505
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/OMAP3505.xdc
var OMAP3505 = xdc.useModule('ti.catalog.arm.cortexa8.OMAP3505');
per-instance config parameters
    var params = new OMAP3505.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3505.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3505.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3505.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3505.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3505.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.dataWordSize = Int 4;
config OMAP3505.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.deviceHeader = String undefined;
config OMAP3505.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3505.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3505.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3505.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3505.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3505.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3505.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3505.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3505.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


module ti.catalog.arm.cortexa8.OMAP3505

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3505.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3505 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3515

metaonly module ti.catalog.arm.cortexa8.OMAP3515
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/OMAP3515.xdc
var OMAP3515 = xdc.useModule('ti.catalog.arm.cortexa8.OMAP3515');
per-instance config parameters
    var params = new OMAP3515.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3515.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3515.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3515.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3515.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3515.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.dataWordSize = Int 4;
config OMAP3515.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.deviceHeader = String undefined;
config OMAP3515.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3515.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3515.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3515.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3515.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3515.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3515.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3515.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3515.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:13 GMT


module ti.catalog.arm.cortexa8.OMAP3515

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3515.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3515 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3517

metaonly module ti.catalog.arm.cortexa8.OMAP3517
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/OMAP3517.xdc
var OMAP3517 = xdc.useModule('ti.catalog.arm.cortexa8.OMAP3517');
per-instance config parameters
    var params = new OMAP3517.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3517.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3517.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3517.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3517.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3517.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.dataWordSize = Int 4;
config OMAP3517.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.deviceHeader = String undefined;
config OMAP3517.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3517.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3517.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3517.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3517.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3517.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3517.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3517.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3517.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.OMAP3517

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3517.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3517 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3525

metaonly module ti.catalog.arm.cortexa8.OMAP3525
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/OMAP3525.xdc
var OMAP3525 = xdc.useModule('ti.catalog.arm.cortexa8.OMAP3525');
per-instance config parameters
    var params = new OMAP3525.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3525.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3525.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3525.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3525.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3525.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.dataWordSize = Int 4;
config OMAP3525.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.deviceHeader = String undefined;
config OMAP3525.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3525.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3525.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3525.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3525.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3525.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3525.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3525.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.OMAP3525

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3525.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3525 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3530

metaonly module ti.catalog.arm.cortexa8.OMAP3530
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/OMAP3530.xdc
var OMAP3530 = xdc.useModule('ti.catalog.arm.cortexa8.OMAP3530');
per-instance config parameters
    var params = new OMAP3530.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3530.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3530.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3530.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3530.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP3530.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.dataWordSize = Int 4;
config OMAP3530.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.deviceHeader = String undefined;
config OMAP3530.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP3530.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3530.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3530.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3530.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3530.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3530.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3530.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.OMAP3530

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3530.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP3530 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.TMS320C3430

metaonly module ti.catalog.arm.cortexa8.TMS320C3430
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/TMS320C3430.xdc
var TMS320C3430 = xdc.useModule('ti.catalog.arm.cortexa8.TMS320C3430');
per-instance config parameters
    var params = new TMS320C3430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x40200000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C3430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x40200000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C3430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C3430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C3430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.dataWordSize = Int 4;
config TMS320C3430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.deviceHeader = String undefined;
config TMS320C3430.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x40200000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C3430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C3430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C3430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C3430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C3430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C3430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.TMS320C3430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C3430.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320C3430 inherits IOMAP3xxx
    19    {
    20
    21    }
    22    /*
    23     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.TMS320C6A8149

metaonly module ti.catalog.arm.cortexa8.TMS320C6A8149
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/TMS320C6A8149.xdc
var TMS320C6A8149 = xdc.useModule('ti.catalog.arm.cortexa8.TMS320C6A8149');
per-instance config parameters
    var params = new TMS320C6A8149.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6A8149.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6A8149.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6A8149.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6A8149.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.dataWordSize = Int 4;
config TMS320C6A8149.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.deviceHeader = String undefined;
config TMS320C6A8149.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320C6A8149.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000
        }
    ]
];
config TMS320C6A8149.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6A8149.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6A8149.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6A8149.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6A8149.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6A8149.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.TMS320C6A8149

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6A8149.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320C6A8149 inherits ITI8148
    19    {
    20    };
    21    /*
    22     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.TMS320C6A8168

metaonly module ti.catalog.arm.cortexa8.TMS320C6A8168
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/TMS320C6A8168.xdc
var TMS320C6A8168 = xdc.useModule('ti.catalog.arm.cortexa8.TMS320C6A8168');
per-instance config parameters
    var params = new TMS320C6A8168.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC_0",
                {
                    name: "OCMC_0",
                    base: 0x40300000,
                    len: 0x40000
                }
            ],
            [
                "OCMC_1",
                {
                    name: "OCMC_1",
                    base: 0x40400000,
                    len: 0x40000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6A8168.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6A8168.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6A8168.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6A8168.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.dataWordSize = Int 4;
config TMS320C6A8168.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.deviceHeader = String undefined;
config TMS320C6A8168.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320C6A8168.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320C6A8168.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320C6A8168.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000
        }
    ]
];
config TMS320C6A8168.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6A8168.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6A8168.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6A8168.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6A8168.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6A8168.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.TMS320C6A8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6A8168.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320C6A8168 inherits ITI8168
    19    {
    20    };
    21    /*
    22     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.TMS320DM8148

metaonly module ti.catalog.arm.cortexa8.TMS320DM8148
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/TMS320DM8148.xdc
var TMS320DM8148 = xdc.useModule('ti.catalog.arm.cortexa8.TMS320DM8148');
per-instance config parameters
    var params = new TMS320DM8148.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM8148.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM8148.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM8148.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM8148.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.dataWordSize = Int 4;
config TMS320DM8148.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.deviceHeader = String undefined;
config TMS320DM8148.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320DM8148.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000
        }
    ]
];
config TMS320DM8148.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM8148.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM8148.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM8148.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM8148.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM8148.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.TMS320DM8148

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM8148.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320DM8148 inherits ITI8148
    19    {
    20    };
    21    /*
    22     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.TMS320DM8168

metaonly module ti.catalog.arm.cortexa8.TMS320DM8168
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/TMS320DM8168.xdc
var TMS320DM8168 = xdc.useModule('ti.catalog.arm.cortexa8.TMS320DM8168');
per-instance config parameters
    var params = new TMS320DM8168.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC_0",
                {
                    name: "OCMC_0",
                    base: 0x40300000,
                    len: 0x40000
                }
            ],
            [
                "OCMC_1",
                {
                    name: "OCMC_1",
                    base: 0x40400000,
                    len: 0x40000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM8168.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM8168.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM8168.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM8168.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.dataWordSize = Int 4;
config TMS320DM8168.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.deviceHeader = String undefined;
config TMS320DM8168.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320DM8168.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320DM8168.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320DM8168.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000
        }
    ]
];
config TMS320DM8168.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM8168.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM8168.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM8168.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM8168.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM8168.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.TMS320DM8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM8168.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320DM8168 inherits ITI8168
    19    {
    20    };
    21    /*
    22     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.TMS320TI811X

metaonly module ti.catalog.arm.cortexa8.TMS320TI811X
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/TMS320TI811X.xdc
var TMS320TI811X = xdc.useModule('ti.catalog.arm.cortexa8.TMS320TI811X');
per-instance config parameters
    var params = new TMS320TI811X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI811X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI811X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI811X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI811X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI811X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI811X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI811X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000
        }
    ]
];
config TMS320TI811X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI811X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI811X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI811X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI811X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI811X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.TMS320TI811X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI811X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320TI811X ========
    20     */
    21    metaonly module TMS320TI811X inherits ITI811X
    22    {
    23    };
    24    /*
    25     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    26     */
    27


module ti.catalog.arm.cortexa8.TMS320TI813X

metaonly module ti.catalog.arm.cortexa8.TMS320TI813X
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/TMS320TI813X.xdc
var TMS320TI813X = xdc.useModule('ti.catalog.arm.cortexa8.TMS320TI813X');
per-instance config parameters
    var params = new TMS320TI813X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI813X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI813X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI813X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI813X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI813X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI813X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI813X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000
        }
    ]
];
config TMS320TI813X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI813X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI813X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI813X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI813X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI813X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.TMS320TI813X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI813X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320TI813X ========
    20     */
    21    metaonly module TMS320TI813X inherits ITI813X
    22    {
    23    };
    24    /*
    25     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    26     */
    27


module ti.catalog.arm.cortexa8.TMS320TI814X

metaonly module ti.catalog.arm.cortexa8.TMS320TI814X
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/TMS320TI814X.xdc
var TMS320TI814X = xdc.useModule('ti.catalog.arm.cortexa8.TMS320TI814X');
per-instance config parameters
    var params = new TMS320TI814X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI814X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI814X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI814X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI814X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI814X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI814X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI814X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000
        }
    ]
];
config TMS320TI814X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI814X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI814X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI814X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI814X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI814X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.TMS320TI814X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI814X.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320TI814X inherits ITI8148
    19    {
    20    };
    21    /*
    22     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.TMS320TI816X

metaonly module ti.catalog.arm.cortexa8.TMS320TI816X
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa8/TMS320TI816X.xdc
var TMS320TI816X = xdc.useModule('ti.catalog.arm.cortexa8.TMS320TI816X');
per-instance config parameters
    var params = new TMS320TI816X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC_0",
                {
                    name: "OCMC_0",
                    base: 0x40300000,
                    len: 0x40000
                }
            ],
            [
                "OCMC_1",
                {
                    name: "OCMC_1",
                    base: 0x40400000,
                    len: 0x40000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI816X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI816X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI816X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI816X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI816X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI816X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI816X.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320TI816X.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320TI816X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000
        }
    ]
];
config TMS320TI816X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI816X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI816X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI816X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI816X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI816X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:14 GMT


module ti.catalog.arm.cortexa8.TMS320TI816X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI816X.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320TI816X inherits ITI8168
    19    {
    20    };
    21    /*
    22     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,155; 8-17-2012 22:13:10; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


package ti.catalog.arm.cortexa9
index URL

Package of devices for the arm Cortex A9 family of Arm processors

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/arm/cortexa9/package.xdc
requires xdc.platform;
requires ti.catalog.peripherals.hdvicp2;
package ti.catalog.arm.cortexa9 [1, 0, 0] {
    module OMAP4430;
}
generated on Thu, 08 Nov 2012 02:15:15 GMT


package ti.catalog.arm.cortexa9

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14    requires ti.catalog.peripherals.hdvicp2;
    15
    16    /*!
    17     *  ======== ti.catalog.arm.cortexa9  ========
    18     *  Package of devices for the arm Cortex A9 family of Arm processors.
    19     *
    20     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    21     *  interface. This interface is used by platforms (modules that implement
    22     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    23     */
    24    package ti.catalog.arm.cortexa9 [1,0,0] {
    25        module OMAP4430;
    26    }
    27    /*
    28     *  @(#) ti.catalog.arm.cortexa9; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    29     */
    30


module ti.catalog.arm.cortexa9.OMAP4430

metaonly module ti.catalog.arm.cortexa9.OMAP4430
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexa9/OMAP4430.xdc
var OMAP4430 = xdc.useModule('ti.catalog.arm.cortexa9.OMAP4430');
per-instance config parameters
    var params = new OMAP4430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "v7A";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    comment: "On-Chip SRAM",
                    name: "SRAM",
                    base: 0x402F0000,
                    len: 0x00008000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP4430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP4430.Params;
// Instance config-params object
    params.cpuCore = String "v7A";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "SRAM",
            {
                comment: "On-Chip SRAM",
                name: "SRAM",
                base: 0x402F0000,
                len: 0x00008000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP4430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.cpuCore = String "v7A";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP4430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP4430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.dataWordSize = Int 4;
config OMAP4430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.deviceHeader = String undefined;
config OMAP4430.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config OMAP4430.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            comment: "On-Chip SRAM",
            name: "SRAM",
            base: 0x402F0000,
            len: 0x00008000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP4430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.minDataUnitSize = Int 1;
config OMAP4430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.minProgUnitSize = Int 1;
config OMAP4430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP4430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP4430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP4430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP4430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:15 GMT


module ti.catalog.arm.cortexa9.OMAP4430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP4430.xdc ========
    15     *
    16     */
    17
    18    metaonly module OMAP4430 inherits ti.catalog.ICpuDataSheet
    19    {
    20    instance:
    21        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    22
    23        override config string cpuCore           = "v7A";
    24        override config string isa               = "v7A";
    25        override config string cpuCoreRevision   = "1.0";
    26        override config int    minProgUnitSize   = 1;
    27        override config int    minDataUnitSize   = 1;
    28        override config int    dataWordSize      = 4;
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The memory map returned be getMemoryMap().
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["SRAM", {
    36                comment:    "On-Chip SRAM",
    37                name:       "SRAM",
    38                base:       0x402F0000,
    39                len:        0x00008000,
    40                space:      "code/data",
    41                access:     "RWX"
    42            }],
    43        ];
    44    }
    45    /*
    46     *  @(#) ti.catalog.arm.cortexa9; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    47     */
    48


package ti.catalog.arm.cortexm3
index URL

Package of devices for the arm Cortex M3 family of Arm processors

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/arm/cortexm3/package.xdc
requires xdc.platform;
requires ti.catalog.peripherals.hdvicp2;
package ti.catalog.arm.cortexm3 [1, 0, 0] {
    interface ILM3Sx7xx;
    // The Stellaris device data sheet module
    interface ILM3Sx9xx;
    // The Stellaris device data sheet module
    interface ILM3SxBxx;
    // The Stellaris device data sheet module
    interface ITI811X;
    // An interface implemented by all TI811X devices
    interface ITI813X;
    // An interface implemented by all TI813X devices
    interface ITI8148;
    // An interface implemented by all TI8148 devices
    interface ITI8168;
    // An interface implemented by all TI8168 devices
    module CortexM3;
    // The CortexM3 device data sheet module
    module F28M35x;
    // The F28M35x device data sheet module
    module LM3S2793;
    module LM3S2B93;
    module LM3S5791;
    module LM3S5B91;
    module LM3S8962;
    module LM3S9790;
    module LM3S9792;
    module LM3S9B90;
    module LM3S9B92;
    module LM3S9B95;
    module LM3S9B96;
    module OMAP4430;
    // The OMAP4430 device data sheet module
    module Stellaris;
    // Generic Stellaris Cpu definition
    module TMS320C6A8149;
    // The TMS320C6A8149 device data sheet module
    module TMS320C6A8168;
    // The TMS320C6A8168 device data sheet module
    module TMS320DM8148;
    // The TMS320DM8148 device data sheet module
    module TMS320DM8168;
    // The TMS320DM8168 device data sheet module
    module TMS320TI811X;
    // The TMS320TI811X device data sheet module
    module TMS320TI813X;
    // The TMS320TI813X device data sheet module
    module TMS320TI814X;
    // The TMS320TI814X device data sheet module
    module TMS320TI816X;
    // The TMS320TI816X device data sheet module
}
generated on Thu, 08 Nov 2012 02:15:19 GMT


package ti.catalog.arm.cortexm3

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14    requires ti.catalog.peripherals.hdvicp2;
    15
    16    /*!
    17     *  ======== ti.catalog.arm.cortexm3 ========
    18     *  Package of devices for the arm Cortex M3 family of Arm processors.
    19     *
    20     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    21     *  interface. This interface is used by platforms (modules that implement
    22     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    23     */
    24    package ti.catalog.arm.cortexm3 [1,0,0] {
    25        module OMAP4430;
    26        interface ILM3Sx7xx;
    27        module LM3S9792, LM3S9790, LM3S5791, LM3S2793;
    28        interface ILM3SxBxx;
    29        module LM3S9B96, LM3S9B95, LM3S9B92, LM3S5B91, LM3S9B90, LM3S2B93;
    30        interface ILM3Sx9xx;
    31        module LM3S8962;
    32
    33        interface ITI8168;
    34        module TMS320DM8168;
    35        module TMS320TI816X;
    36        module TMS320C6A8168;
    37
    38        interface ITI8148;
    39        module TMS320DM8148;
    40        module TMS320TI814X;
    41        module F28M35x, Stellaris;
    42
    43        module CortexM3;
    44
    45        interface ITI813X;
    46        module TMS320TI813X;
    47
    48        interface ITI811X;
    49        module TMS320TI811X;
    50
    51        module TMS320C6A8149;
    52    }
    53    /*
    54     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    55     */
    56


module ti.catalog.arm.cortexm3.CortexM3

metaonly module ti.catalog.arm.cortexm3.CortexM3
index URL

The CortexM3 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/CortexM3.xdc
var CortexM3 = xdc.useModule('ti.catalog.arm.cortexm3.CortexM3');
per-instance config parameters
    var params = new CortexM3.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [ ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = CortexM3.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new CortexM3.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [ ];
    // The memory map returned be getMemoryMap()
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config CortexM3.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config CortexM3.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.cpuCoreRevision = String "1.0";
config CortexM3.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.dataWordSize = Int 4;
config CortexM3.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.deviceHeader = String undefined;
config CortexM3.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.memMap = IPlatform.Memory[string] [ ];
config CortexM3.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.minDataUnitSize = Int 1;
config CortexM3.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.minProgUnitSize = Int 1;
config CortexM3.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new CortexM3.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new CortexM3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = CortexM3.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
CortexM3.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
CortexM3.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.CortexM3

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== CortexM3.xdc ========
    15     */
    16
    17    package ti.catalog.arm.cortexm3;
    18
    19    /*!
    20     *  ======== CortexM3 ========
    21     *  The CortexM3 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     *
    26     */
    27    metaonly module CortexM3 inherits ti.catalog.ICpuDataSheet
    28    {
    29    instance:
    30        override config string cpuCore           = "CM3";
    31        override config string isa               = "v7M";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string] = [];
    42    };
    43    /*
    44     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.catalog.arm.cortexm3.F28M35x

metaonly module ti.catalog.arm.cortexm3.F28M35x
index URL

The F28M35x device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/F28M35x.xdc
var F28M35x = xdc.useModule('ti.catalog.arm.cortexm3.F28M35x');
per-instance config parameters
    var params = new F28M35x.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x0,
                    len: 0x10000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "FLASH_BOOT",
                {
                    comment: "Branch for boot from Flash",
                    name: "FLASH_BOOT",
                    base: 0x200030,
                    len: 0x4,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "512KB Flash memory",
                    name: "FLASH",
                    base: 0x200034,
                    len: 0x7FFC8,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OTP",
                {
                    comment: "4KB OTP memory",
                    name: "OTP",
                    base: 0x680000,
                    len: 0x1000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "C03SRAM",
                {
                    comment: "32KB On-Chip RAM Memory",
                    name: "C03SRAM",
                    base: 0x20000000,
                    len: 0x8000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "S07SHRAM",
                {
                    comment: "64KB On-Chip Shared RAM Memory",
                    name: "S07SHRAM",
                    base: 0x20008000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "CTOMMSGRAM",
                {
                    comment: "C28 to M3 MSG RAM Memory",
                    name: "CTOMMSGRAM",
                    base: 0x2007F000,
                    len: 0x800,
                    space: "data",
                    access: "R"
                }
            ],
            [
                "MTOCMSGRAM",
                {
                    comment: "M3 to C28 MSG RAM Memory",
                    name: "MTOCMSGRAM",
                    base: 0x2007F800,
                    len: 0x800,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = F28M35x.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new F28M35x.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x0,
                len: 0x10000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "FLASH_BOOT",
            {
                comment: "Branch for boot from Flash",
                name: "FLASH_BOOT",
                base: 0x200030,
                len: 0x4,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "512KB Flash memory",
                name: "FLASH",
                base: 0x200034,
                len: 0x7FFC8,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OTP",
            {
                comment: "4KB OTP memory",
                name: "OTP",
                base: 0x680000,
                len: 0x1000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "C03SRAM",
            {
                comment: "32KB On-Chip RAM Memory",
                name: "C03SRAM",
                base: 0x20000000,
                len: 0x8000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "S07SHRAM",
            {
                comment: "64KB On-Chip Shared RAM Memory",
                name: "S07SHRAM",
                base: 0x20008000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "CTOMMSGRAM",
            {
                comment: "C28 to M3 MSG RAM Memory",
                name: "CTOMMSGRAM",
                base: 0x2007F000,
                len: 0x800,
                space: "data",
                access: "R"
            }
        ],
        [
            "MTOCMSGRAM",
            {
                comment: "M3 to C28 MSG RAM Memory",
                name: "MTOCMSGRAM",
                base: 0x2007F800,
                len: 0x800,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config F28M35x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config F28M35x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.cpuCoreRevision = String "1.0";
config F28M35x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.dataWordSize = Int 4;
config F28M35x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.deviceHeader = String undefined;
config F28M35x.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x0,
            len: 0x10000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "FLASH_BOOT",
        {
            comment: "Branch for boot from Flash",
            name: "FLASH_BOOT",
            base: 0x200030,
            len: 0x4,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "512KB Flash memory",
            name: "FLASH",
            base: 0x200034,
            len: 0x7FFC8,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OTP",
        {
            comment: "4KB OTP memory",
            name: "OTP",
            base: 0x680000,
            len: 0x1000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "C03SRAM",
        {
            comment: "32KB On-Chip RAM Memory",
            name: "C03SRAM",
            base: 0x20000000,
            len: 0x8000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "S07SHRAM",
        {
            comment: "64KB On-Chip Shared RAM Memory",
            name: "S07SHRAM",
            base: 0x20008000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "CTOMMSGRAM",
        {
            comment: "C28 to M3 MSG RAM Memory",
            name: "CTOMMSGRAM",
            base: 0x2007F000,
            len: 0x800,
            space: "data",
            access: "R"
        }
    ],
    [
        "MTOCMSGRAM",
        {
            comment: "M3 to C28 MSG RAM Memory",
            name: "MTOCMSGRAM",
            base: 0x2007F800,
            len: 0x800,
            space: "data",
            access: "RW"
        }
    ]
];
config F28M35x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.minDataUnitSize = Int 1;
config F28M35x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.minProgUnitSize = Int 1;
config F28M35x.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config F28M35x.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.timer0 = Timer.Instance undefined;
config F28M35x.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.timer1 = Timer.Instance undefined;
config F28M35x.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.timer2 = Timer.Instance undefined;
config F28M35x.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new F28M35x.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = F28M35x.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
F28M35x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
F28M35x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.F28M35x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== F28M35x.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== F28M35x.xdc ========
    20     *  The F28M35x device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26
    27    metaonly module F28M35x inherits ti.catalog.ICpuDataSheet
    28    {
    29
    30    instance:
    31        override config string cpuCore           = "CM3";
    32        override config string isa               = "v7M";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        config ti.catalog.arm.peripherals.timers.Timer.Instance timer0;
    39        config ti.catalog.arm.peripherals.timers.Timer.Instance timer1;
    40        config ti.catalog.arm.peripherals.timers.Timer.Instance timer2;
    41        config ti.catalog.arm.peripherals.timers.Timer.Instance timer3;
    42
    43        /*!
    44         *  ======== memMap ========
    45         *  The memory map returned by getMemoryMap().
    46         */
    47        config xdc.platform.IPlatform.Memory memMap[string] = [
    48            ["BOOTROM", {
    49                comment: "On-Chip Boot ROM",
    50                name: "BOOTROM",
    51                base: 0x0,
    52                len:  0x10000,
    53                space: "code",
    54                access: "RX"
    55            }],
    56
    57            ["FLASH_BOOT", {
    58                comment: "Branch for boot from Flash",
    59                name: "FLASH_BOOT",
    60                base: 0x200030,
    61                len:  0x4,
    62                space: "code/data",
    63                access: "RWX"
    64            }],
    65
    66            ["FLASH", {
    67                comment: "512KB Flash memory",
    68                name: "FLASH",
    69                base: 0x200034,
    70                len:  0x7FFC8,
    71                space: "code/data",
    72                access: "RWX"
    73            }],
    74
    75            ["OTP", {
    76                comment: "4KB OTP memory",
    77                name: "OTP",
    78                base: 0x680000,
    79                len:  0x1000,
    80                space: "code",
    81                access: "RWX"
    82            }],
    83
    84            ["C03SRAM", {
    85                comment: "32KB On-Chip RAM Memory",
    86                name: "C03SRAM",
    87                base: 0x20000000,
    88                len:  0x8000,
    89                space: "code/data",
    90                access: "RWX"
    91            }],
    92
    93            ["S07SHRAM", {
    94                comment: "64KB On-Chip Shared RAM Memory",
    95                name: "S07SHRAM",
    96                base: 0x20008000,
    97                len:  0x10000,
    98                space: "code/data",
    99                access: "RWX"
   100            }],
   101
   102            ["CTOMMSGRAM", {
   103                comment: "C28 to M3 MSG RAM Memory",
   104                name: "CTOMMSGRAM",
   105                base: 0x2007F000,
   106                len:  0x800,
   107                space: "data",
   108                access: "R"
   109            }],
   110
   111            ["MTOCMSGRAM", {
   112                comment: "M3 to C28 MSG RAM Memory",
   113                name: "MTOCMSGRAM",
   114                base: 0x2007F800,
   115                len:  0x800,
   116                space: "data",
   117                access: "RW"
   118            }],
   119        ];
   120    };
   121
   122    /*
   123     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
   124     */
   125


interface ti.catalog.arm.cortexm3.ILM3Sx7xx

metaonly interface ti.catalog.arm.cortexm3.ILM3Sx7xx
index URL

The Stellaris device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
metaonly interface ILM3Sx7xx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
package ti.catalog.arm.cortexm3;
metaonly interface ILM3Sx7xx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned by getMemoryMap()[string] = [
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Timer.Instance timer0// ;
    config Timer.Instance timer1// ;
    config Timer.Instance timer2// ;
    config Timer.Instance timer3// ;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ILM3Sx7xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ILM3Sx7xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
override config String cpuCoreRevision = "1.0";
config ILM3Sx7xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
override config Int dataWordSize = 4;
config ILM3Sx7xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
config String deviceHeader;
config ILM3Sx7xx.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config ILM3Sx7xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
override config Int minDataUnitSize = 1;
config ILM3Sx7xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
override config Int minProgUnitSize = 1;
config ILM3Sx7xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
config IPeripheral.Instance peripherals[string];
config ILM3Sx7xx.timer0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
config Timer.Instance timer0;
config ILM3Sx7xx.timer1 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
config Timer.Instance timer1;
config ILM3Sx7xx.timer2 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
config Timer.Instance timer2;
config ILM3Sx7xx.timer3 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
config Timer.Instance timer3;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ILM3Sx7xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ILM3Sx7xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx7xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:17 GMT


interface ti.catalog.arm.cortexm3.ILM3Sx7xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ILM3Sx7xx.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ILM3Sx7xx.xdc ========
    20     *  The Stellaris device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26
    27    metaonly interface ILM3Sx7xx inherits ti.catalog.ICpuDataSheet
    28    {
    29
    30    instance:
    31        override config string cpuCore           = "CM3";
    32        override config string isa               = "v7M";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        config ti.catalog.arm.peripherals.timers.Timer.Instance timer0;
    39        config ti.catalog.arm.peripherals.timers.Timer.Instance timer1;
    40        config ti.catalog.arm.peripherals.timers.Timer.Instance timer2;
    41        config ti.catalog.arm.peripherals.timers.Timer.Instance timer3;
    42
    43        /*!
    44         *  ======== memMap ========
    45         *  The memory map returned by getMemoryMap().
    46         */
    47        config xdc.platform.IPlatform.Memory memMap[string] = [
    48            ["FRAM", {
    49                comment: "128KB FRAM",
    50                name: "FRAM",
    51                base: 0x00000000,
    52                len:  0x00020000
    53            }],
    54
    55            ["IRAM", {
    56                comment: "64KB IRAM",
    57                name: "IRAM",
    58                base: 0x20000000,
    59                len:  0x00010000
    60            }],
    61        ];
    62
    63    };
    64
    65    /*
    66     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


interface ti.catalog.arm.cortexm3.ILM3Sx9xx

metaonly interface ti.catalog.arm.cortexm3.ILM3Sx9xx
index URL

The Stellaris device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
metaonly interface ILM3Sx9xx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
package ti.catalog.arm.cortexm3;
metaonly interface ILM3Sx9xx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned by getMemoryMap()[string] = [
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Timer.Instance timer0// ;
    config Timer.Instance timer1// ;
    config Timer.Instance timer2// ;
    config Timer.Instance timer3// ;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ILM3Sx9xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ILM3Sx9xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
override config String cpuCoreRevision = "1.0";
config ILM3Sx9xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
override config Int dataWordSize = 4;
config ILM3Sx9xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
config String deviceHeader;
config ILM3Sx9xx.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config ILM3Sx9xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
override config Int minDataUnitSize = 1;
config ILM3Sx9xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
override config Int minProgUnitSize = 1;
config ILM3Sx9xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
config IPeripheral.Instance peripherals[string];
config ILM3Sx9xx.timer0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
config Timer.Instance timer0;
config ILM3Sx9xx.timer1 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
config Timer.Instance timer1;
config ILM3Sx9xx.timer2 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
config Timer.Instance timer2;
config ILM3Sx9xx.timer3 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
config Timer.Instance timer3;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ILM3Sx9xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ILM3Sx9xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3Sx9xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:17 GMT


interface ti.catalog.arm.cortexm3.ILM3Sx9xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ILM3Sx9xx.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ILM3Sx9xx.xdc ========
    20     *  The Stellaris device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26
    27    metaonly interface ILM3Sx9xx inherits ti.catalog.ICpuDataSheet
    28    {
    29
    30    instance:
    31        override config string cpuCore           = "CM3";
    32        override config string isa               = "v7M";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        config ti.catalog.arm.peripherals.timers.Timer.Instance timer0;
    39        config ti.catalog.arm.peripherals.timers.Timer.Instance timer1;
    40        config ti.catalog.arm.peripherals.timers.Timer.Instance timer2;
    41        config ti.catalog.arm.peripherals.timers.Timer.Instance timer3;
    42
    43        /*!
    44         *  ======== memMap ========
    45         *  The memory map returned by getMemoryMap().
    46         */
    47        config xdc.platform.IPlatform.Memory memMap[string] = [
    48            ["FRAM", {
    49                comment: "256KB FRAM",
    50                name: "FRAM",
    51                base: 0x00000000,
    52                len:  0x00040000
    53            }],
    54
    55            ["IRAM", {
    56                comment: "64KB IRAM",
    57                name: "IRAM",
    58                base: 0x20000000,
    59                len:  0x00010000
    60            }],
    61        ];
    62
    63    };
    64
    65    /*
    66     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


interface ti.catalog.arm.cortexm3.ILM3SxBxx

metaonly interface ti.catalog.arm.cortexm3.ILM3SxBxx
index URL

The Stellaris device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
metaonly interface ILM3SxBxx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
package ti.catalog.arm.cortexm3;
metaonly interface ILM3SxBxx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The memory map returned by getMemoryMap()[string] = [
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Timer.Instance timer0// ;
    config Timer.Instance timer1// ;
    config Timer.Instance timer2// ;
    config Timer.Instance timer3// ;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ILM3SxBxx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ILM3SxBxx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
override config String cpuCoreRevision = "1.0";
config ILM3SxBxx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
override config Int dataWordSize = 4;
config ILM3SxBxx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
config String deviceHeader;
config ILM3SxBxx.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config ILM3SxBxx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
override config Int minDataUnitSize = 1;
config ILM3SxBxx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
override config Int minProgUnitSize = 1;
config ILM3SxBxx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
config IPeripheral.Instance peripherals[string];
config ILM3SxBxx.timer0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
config Timer.Instance timer0;
config ILM3SxBxx.timer1 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
config Timer.Instance timer1;
config ILM3SxBxx.timer2 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
config Timer.Instance timer2;
config ILM3SxBxx.timer3 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
config Timer.Instance timer3;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ILM3SxBxx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ILM3SxBxx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ILM3SxBxx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:17 GMT


interface ti.catalog.arm.cortexm3.ILM3SxBxx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ILM3SxBxx.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ILM3SxBxx.xdc ========
    20     *  The Stellaris device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26
    27    metaonly interface ILM3SxBxx inherits ti.catalog.ICpuDataSheet
    28    {
    29
    30    instance:
    31        override config string cpuCore           = "CM3";
    32        override config string isa               = "v7M";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        config ti.catalog.arm.peripherals.timers.Timer.Instance timer0;
    39        config ti.catalog.arm.peripherals.timers.Timer.Instance timer1;
    40        config ti.catalog.arm.peripherals.timers.Timer.Instance timer2;
    41        config ti.catalog.arm.peripherals.timers.Timer.Instance timer3;
    42
    43        /*!
    44         *  ======== memMap ========
    45         *  The memory map returned by getMemoryMap().
    46         */
    47        config xdc.platform.IPlatform.Memory memMap[string] = [
    48            ["FRAM", {
    49                comment: "256KB FRAM",
    50                name: "FRAM",
    51                base: 0x00000000,
    52                len:  0x00040000
    53            }],
    54
    55            ["IRAM", {
    56                comment: "96KB IRAM",
    57                name: "IRAM",
    58                base: 0x20000000,
    59                len:  0x00018000
    60            }],
    61        ];
    62
    63    };
    64
    65    /*
    66     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


interface ti.catalog.arm.cortexm3.ITI811X

metaonly interface ti.catalog.arm.cortexm3.ITI811X
index URL

An interface implemented by all TI811X devices

This interface is defined to factor common data about all TI811X type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
metaonly interface ITI811X { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
package ti.catalog.arm.cortexm3;
metaonly interface ITI811X inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x00300000,
                len: 0x20000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI811X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI811X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
override config String cpuCoreRevision = "1.0";
config ITI811X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
override config Int dataWordSize = 4;
config ITI811X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
config String deviceHeader;
config ITI811X.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
config HDVICP2.Instance hdvicp0;
config ITI811X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x00300000,
            len: 0x20000
        }
    ]
];
config ITI811X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
override config Int minDataUnitSize = 1;
config ITI811X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
override config Int minProgUnitSize = 1;
config ITI811X.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI811X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI811X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI811X.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:17 GMT


interface ti.catalog.arm.cortexm3.ITI811X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI811X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITI811X ========
    20     *  An interface implemented by all TI811X devices
    21     *
    22     *  This interface is defined to factor common data about all TI811X type
    23     *  devices into a single place; they all have the same internal memory.
    24     */
    25    metaonly interface ITI811X inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    29
    30        override config string cpuCore           = "CM3";
    31        override config string isa               = "v7M";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string] = [
    42
    43            /*
    44             * AMMU mapped L2 BOOT virtual address
    45             * Physical address is 0x5502_0000, virt is 0x00000000
    46             * Reset vectors and other boot code is placed here.
    47             *
    48             * Note that actual L2 RAM is 256K starting at 0x5502_0000.
    49             * The first 16K is reserved for reset vectors (i.e. L2_BOOT).
    50             * The remaining 240K is placed in the L2_RAM definition.
    51             */
    52            ["L2_BOOT", {
    53                name: "L2_BOOT",
    54                base: 0x00000000,
    55                len:  0x4000
    56            }],
    57
    58            /*
    59             * AMMU mapped L2 RAM virtual address
    60             * Physical address is 0x5502_4000, virt is 0x2000_4000
    61             *
    62             * Note that actual L2 RAM is 256K starting at 0x5502_0000.
    63             * The first 16K is reserved for reset vectors (i.e. L2_BOOT).
    64             * The remaining 240K is placed in the L2_RAM definition.
    65             */
    66            ["L2_RAM", {
    67                name: "L2_RAM",
    68                base: 0x20004000,
    69                len:  0x3C000
    70            }],
    71
    72            /*
    73             * OCMC (On-chip RAM)
    74             * Physical address is 0x40300000
    75             * Size is 128K
    76             */
    77            ["OCMC", {
    78                name: "OCMC",
    79                base: 0x00300000,
    80                len:  0x20000
    81            }],
    82        ];
    83    };
    84    /*
    85     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    86     */
    87


interface ti.catalog.arm.cortexm3.ITI813X

metaonly interface ti.catalog.arm.cortexm3.ITI813X
index URL

An interface implemented by all TI813X devices

This interface is defined to factor common data about all TI813X type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
metaonly interface ITI813X { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
package ti.catalog.arm.cortexm3;
metaonly interface ITI813X inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x00300000,
                len: 0x20000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI813X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI813X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
override config String cpuCoreRevision = "1.0";
config ITI813X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
override config Int dataWordSize = 4;
config ITI813X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
config String deviceHeader;
config ITI813X.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
config HDVICP2.Instance hdvicp0;
config ITI813X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x00300000,
            len: 0x20000
        }
    ]
];
config ITI813X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
override config Int minDataUnitSize = 1;
config ITI813X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
override config Int minProgUnitSize = 1;
config ITI813X.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI813X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI813X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI813X.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:17 GMT


interface ti.catalog.arm.cortexm3.ITI813X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI813X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITI813X ========
    20     *  An interface implemented by all TI813X devices
    21     *
    22     *  This interface is defined to factor common data about all TI813X
    23     *  type devices into a single place; they all have the same internal memory.
    24     */
    25    metaonly interface ITI813X inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    29
    30        override config string cpuCore           = "CM3";
    31        override config string isa               = "v7M";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string] = [
    42
    43            /*
    44             * AMMU mapped L2 BOOT virtual address
    45             * Physical address is 0x5502_0000, virt is 0x00000000
    46             * Reset vectors and other boot code is placed here.
    47             *
    48             * Note that actual L2 RAM is 256K starting at 0x5502_0000.
    49             * The first 16K is reserved for reset vectors (i.e. L2_BOOT).
    50             * The remaining 240K is placed in the L2_RAM definition.
    51             */
    52            ["L2_BOOT", {
    53                name: "L2_BOOT",
    54                base: 0x00000000,
    55                len:  0x4000
    56            }],
    57
    58            /*
    59             * AMMU mapped L2 RAM virtual address
    60             * Physical address is 0x5502_4000, virt is 0x2000_4000
    61             *
    62             * Note that actual L2 RAM is 256K starting at 0x5502_0000.
    63             * The first 16K is reserved for reset vectors (i.e. L2_BOOT).
    64             * The remaining 240K is placed in the L2_RAM definition.
    65             */
    66            ["L2_RAM", {
    67                name: "L2_RAM",
    68                base: 0x20004000,
    69                len:  0x3C000
    70            }],
    71
    72            /*
    73             * OCMC (On-chip RAM)
    74             * Physical address is 0x40300000
    75             * Size is 128K
    76             */
    77            ["OCMC", {
    78                name: "OCMC",
    79                base: 0x00300000,
    80                len:  0x20000
    81            }],
    82        ];
    83    };
    84    /*
    85     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    86     */
    87


interface ti.catalog.arm.cortexm3.ITI8148

metaonly interface ti.catalog.arm.cortexm3.ITI8148
index URL

An interface implemented by all TI8148 devices

This interface is defined to factor common data about all TI8148 type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
metaonly interface ITI8148 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
package ti.catalog.arm.cortexm3;
metaonly interface ITI8148 inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x00300000,
                len: 0x20000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI8148.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI8148.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
override config String cpuCoreRevision = "1.0";
config ITI8148.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
override config Int dataWordSize = 4;
config ITI8148.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
config String deviceHeader;
config ITI8148.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
config HDVICP2.Instance hdvicp0;
config ITI8148.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x00300000,
            len: 0x20000
        }
    ]
];
config ITI8148.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
override config Int minDataUnitSize = 1;
config ITI8148.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
override config Int minProgUnitSize = 1;
config ITI8148.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI8148.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI8148.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8148.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


interface ti.catalog.arm.cortexm3.ITI8148

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI8148.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITI8148 ========
    20     *  An interface implemented by all TI8148 devices
    21     *
    22     *  This interface is defined to factor common data about all TI8148 type devices
    23     *  into a single place; they all have the same internal memory.
    24     */
    25    metaonly interface ITI8148 inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    29
    30        override config string cpuCore           = "CM3";
    31        override config string isa               = "v7M";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string] = [
    42
    43            /*
    44             * AMMU mapped L2 BOOT virtual address
    45             * Physical address is 0x5502_0000, virt is 0x00000000
    46             * Reset vectors and other boot code is placed here.
    47             *
    48             * Note that actual L2 RAM is 256K starting at 0x5502_0000.
    49             * The first 16K is reserved for reset vectors (i.e. L2_BOOT).
    50             * The remaining 240K is placed in the L2_RAM definition.
    51             */
    52            ["L2_BOOT", {
    53                name: "L2_BOOT",
    54                base: 0x00000000,
    55                len:  0x4000
    56            }],
    57
    58            /*
    59             * AMMU mapped L2 RAM virtual address
    60             * Physical address is 0x5502_4000, virt is 0x2000_4000
    61             *
    62             * Note that actual L2 RAM is 256K starting at 0x5502_0000.
    63             * The first 16K is reserved for reset vectors (i.e. L2_BOOT).
    64             * The remaining 240K is placed in the L2_RAM definition.
    65             */
    66            ["L2_RAM", {
    67                name: "L2_RAM",
    68                base: 0x20004000,
    69                len:  0x3C000
    70            }],
    71
    72            /*
    73             * OCMC (On-chip RAM)
    74             * Physical address is 0x40300000
    75             * Size is 128K
    76             */
    77            ["OCMC", {
    78                name: "OCMC",
    79                base: 0x00300000,
    80                len:  0x20000
    81            }],
    82        ];
    83    };
    84    /*
    85     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    86     */
    87


interface ti.catalog.arm.cortexm3.ITI8168

metaonly interface ti.catalog.arm.cortexm3.ITI8168
index URL

An interface implemented by all TI8168 devices

This interface is defined to factor common data about all TI8168 type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
metaonly interface ITI8168 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
package ti.catalog.arm.cortexm3;
metaonly interface ITI8168 inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "CM3";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config HDVICP2.Instance hdvicp1// ;
    config HDVICP2.Instance hdvicp2// ;
    config IPlatform.Memory memMap// The memory map returned be getMemoryMap()[string] = [
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x40000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x00400000,
                len: 0x40000
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI8168.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
override config String cpuCore = "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI8168.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
override config String cpuCoreRevision = "1.0";
config ITI8168.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
override config Int dataWordSize = 4;
config ITI8168.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
config String deviceHeader;
config ITI8168.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
config HDVICP2.Instance hdvicp0;
config ITI8168.hdvicp1 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
config HDVICP2.Instance hdvicp1;
config ITI8168.hdvicp2 // instance
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
config HDVICP2.Instance hdvicp2;
config ITI8168.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x40000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x00400000,
            len: 0x40000
        }
    ]
];
config ITI8168.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
override config Int minDataUnitSize = 1;
config ITI8168.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
override config Int minProgUnitSize = 1;
config ITI8168.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI8168.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI8168.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/arm/cortexm3/ITI8168.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


interface ti.catalog.arm.cortexm3.ITI8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI8168.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITI8168 ========
    20     *  An interface implemented by all TI8168 devices
    21     *
    22     *  This interface is defined to factor common data about all TI8168 type devices
    23     *  into a single place; they all have the same internal memory.
    24     */
    25    metaonly interface ITI8168 inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    29        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp1;
    30        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp2;
    31
    32        override config string cpuCore           = "CM3";
    33        override config string isa               = "v7M";
    34        override config string cpuCoreRevision   = "1.0";
    35        override config int    minProgUnitSize   = 1;
    36        override config int    minDataUnitSize   = 1;
    37        override config int    dataWordSize      = 4;
    38
    39        /*!
    40         *  ======== memMap ========
    41         *  The memory map returned be getMemoryMap().
    42         */
    43        config xdc.platform.IPlatform.Memory memMap[string] = [
    44
    45            /*
    46             * AMMU mapped L2 BOOT virtual address
    47             * Physical address is 0x5502_0000, virt is 0x00000000
    48             * Reset vectors and other boot code is placed here.
    49             *
    50             * Note that actual L2 RAM is 256K starting at 0x5502_0000.
    51             * The first 16K is reserved for reset vectors (i.e. L2_BOOT).
    52             * The remaining 240K is placed in the L2_RAM definition.
    53             */
    54            ["L2_BOOT", {
    55                name: "L2_BOOT",
    56                base: 0x00000000,
    57                len:  0x4000
    58            }],
    59
    60            /*
    61             * AMMU mapped L2 RAM virtual address
    62             * Physical address is 0x5502_4000, virt is 0x2000_4000
    63             *
    64             * Note that actual L2 RAM is 256K starting at 0x5502_0000.
    65             * The first 16K is reserved for reset vectors (i.e. L2_BOOT).
    66             * The remaining 240K is placed in the L2_RAM definition.
    67             */
    68            ["L2_RAM", {
    69                name: "L2_RAM",
    70                base: 0x20004000,
    71                len:  0x3C000
    72            }],
    73
    74            /*
    75             * OCMC (On-chip RAM) Bank 0
    76             * Physical address is 0x40300000
    77             * Size is 256K
    78             */
    79            ["OCMC_0", {
    80                name: "OCMC_0",
    81                base: 0x00300000,
    82                len:  0x40000
    83            }],
    84
    85            /*
    86             * OCMC (On-chip RAM) Bank 1
    87             * Physical address is 0x40400000
    88             * Size is 256K
    89             */
    90            ["OCMC_1", {
    91                name: "OCMC_1",
    92                base: 0x00400000,
    93                len:  0x40000
    94            }],
    95        ];
    96    };
    97    /*
    98     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    99     */
   100


module ti.catalog.arm.cortexm3.LM3S2793

metaonly module ti.catalog.arm.cortexm3.LM3S2793
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S2793.xdc
var LM3S2793 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S2793');
per-instance config parameters
    var params = new LM3S2793.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "128KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00020000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S2793.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S2793.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S2793.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S2793.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S2793.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.dataWordSize = Int 4;
config LM3S2793.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.deviceHeader = String undefined;
config LM3S2793.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S2793.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.minDataUnitSize = Int 1;
config LM3S2793.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.minProgUnitSize = Int 1;
config LM3S2793.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S2793.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S2793.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S2793.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S2793.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2793.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S2793.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S2793.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S2793.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S2793.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S2793

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S2793.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S2793 inherits ILM3Sx7xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S2B93

metaonly module ti.catalog.arm.cortexm3.LM3S2B93
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S2B93.xdc
var LM3S2B93 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S2B93');
per-instance config parameters
    var params = new LM3S2B93.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S2B93.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S2B93.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S2B93.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S2B93.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.dataWordSize = Int 4;
config LM3S2B93.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.deviceHeader = String undefined;
config LM3S2B93.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S2B93.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.minDataUnitSize = Int 1;
config LM3S2B93.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.minProgUnitSize = Int 1;
config LM3S2B93.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S2B93.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S2B93.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S2B93.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S2B93.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S2B93.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S2B93.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S2B93.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S2B93.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S2B93.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S2B93

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S2B93.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S2B93 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S5791

metaonly module ti.catalog.arm.cortexm3.LM3S5791
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S5791.xdc
var LM3S5791 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S5791');
per-instance config parameters
    var params = new LM3S5791.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "128KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00020000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S5791.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S5791.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S5791.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S5791.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S5791.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.dataWordSize = Int 4;
config LM3S5791.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.deviceHeader = String undefined;
config LM3S5791.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S5791.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.minDataUnitSize = Int 1;
config LM3S5791.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.minProgUnitSize = Int 1;
config LM3S5791.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S5791.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S5791.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S5791.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S5791.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5791.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S5791.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S5791.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S5791.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S5791.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S5791

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S5791.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S5791 inherits ILM3Sx7xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S5B91

metaonly module ti.catalog.arm.cortexm3.LM3S5B91
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S5B91.xdc
var LM3S5B91 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S5B91');
per-instance config parameters
    var params = new LM3S5B91.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S5B91.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S5B91.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S5B91.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S5B91.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.dataWordSize = Int 4;
config LM3S5B91.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.deviceHeader = String undefined;
config LM3S5B91.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S5B91.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.minDataUnitSize = Int 1;
config LM3S5B91.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.minProgUnitSize = Int 1;
config LM3S5B91.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S5B91.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S5B91.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S5B91.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S5B91.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S5B91.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S5B91.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S5B91.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S5B91.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S5B91.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S5B91

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S5B91.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S5B91 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S8962

metaonly module ti.catalog.arm.cortexm3.LM3S8962
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S8962.xdc
var LM3S8962 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S8962');
per-instance config parameters
    var params = new LM3S8962.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S8962.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S8962.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S8962.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S8962.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S8962.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.dataWordSize = Int 4;
config LM3S8962.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.deviceHeader = String undefined;
config LM3S8962.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S8962.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.minDataUnitSize = Int 1;
config LM3S8962.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.minProgUnitSize = Int 1;
config LM3S8962.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S8962.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S8962.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S8962.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S8962.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S8962.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S8962.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S8962.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S8962.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S8962.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S8962

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S8962.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S8962 inherits ILM3Sx9xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9790

metaonly module ti.catalog.arm.cortexm3.LM3S9790
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S9790.xdc
var LM3S9790 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S9790');
per-instance config parameters
    var params = new LM3S9790.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "128KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00020000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9790.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9790.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9790.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9790.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9790.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.dataWordSize = Int 4;
config LM3S9790.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.deviceHeader = String undefined;
config LM3S9790.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S9790.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9790.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9790.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9790.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9790.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9790.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9790.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9790.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9790.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9790.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9790.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9790.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S9790

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9790.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S9790 inherits ILM3Sx7xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9792

metaonly module ti.catalog.arm.cortexm3.LM3S9792
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S9792.xdc
var LM3S9792 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S9792');
per-instance config parameters
    var params = new LM3S9792.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "128KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00020000
                }
            ],
            [
                "IRAM",
                {
                    comment: "64KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9792.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9792.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "128KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00020000
            }
        ],
        [
            "IRAM",
            {
                comment: "64KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9792.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9792.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9792.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.dataWordSize = Int 4;
config LM3S9792.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.deviceHeader = String undefined;
config LM3S9792.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "128KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00020000
        }
    ],
    [
        "IRAM",
        {
            comment: "64KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config LM3S9792.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9792.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9792.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9792.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9792.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9792.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9792.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9792.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9792.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9792.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9792.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9792.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S9792

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9792.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S9792 inherits ILM3Sx7xx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9B90

metaonly module ti.catalog.arm.cortexm3.LM3S9B90
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S9B90.xdc
var LM3S9B90 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S9B90');
per-instance config parameters
    var params = new LM3S9B90.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9B90.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9B90.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9B90.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9B90.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.dataWordSize = Int 4;
config LM3S9B90.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.deviceHeader = String undefined;
config LM3S9B90.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S9B90.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9B90.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9B90.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9B90.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9B90.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9B90.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9B90.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B90.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9B90.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9B90.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9B90.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9B90.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S9B90

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9B90.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S9B90 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9B92

metaonly module ti.catalog.arm.cortexm3.LM3S9B92
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S9B92.xdc
var LM3S9B92 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S9B92');
per-instance config parameters
    var params = new LM3S9B92.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9B92.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9B92.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9B92.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9B92.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.dataWordSize = Int 4;
config LM3S9B92.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.deviceHeader = String undefined;
config LM3S9B92.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S9B92.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9B92.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9B92.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9B92.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9B92.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9B92.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9B92.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B92.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9B92.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9B92.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9B92.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9B92.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S9B92

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9B92.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S9B92 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9B95

metaonly module ti.catalog.arm.cortexm3.LM3S9B95
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S9B95.xdc
var LM3S9B95 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S9B95');
per-instance config parameters
    var params = new LM3S9B95.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9B95.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9B95.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9B95.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9B95.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.dataWordSize = Int 4;
config LM3S9B95.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.deviceHeader = String undefined;
config LM3S9B95.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S9B95.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9B95.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9B95.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9B95.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9B95.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9B95.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9B95.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B95.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9B95.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9B95.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9B95.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9B95.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S9B95

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9B95.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S9B95 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9B96

metaonly module ti.catalog.arm.cortexm3.LM3S9B96
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/LM3S9B96.xdc
var LM3S9B96 = xdc.useModule('ti.catalog.arm.cortexm3.LM3S9B96');
per-instance config parameters
    var params = new LM3S9B96.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned by getMemoryMap() = IPlatform.Memory[string] [
            [
                "FRAM",
                {
                    comment: "256KB FRAM",
                    name: "FRAM",
                    base: 0x00000000,
                    len: 0x00040000
                }
            ],
            [
                "IRAM",
                {
                    comment: "96KB IRAM",
                    name: "IRAM",
                    base: 0x20000000,
                    len: 0x00018000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer0// = Timer.Instance undefined;
        params.timer1// = Timer.Instance undefined;
        params.timer2// = Timer.Instance undefined;
        params.timer3// = Timer.Instance undefined;
per-instance creation
    var inst = LM3S9B96.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned by getMemoryMap()
        [
            "FRAM",
            {
                comment: "256KB FRAM",
                name: "FRAM",
                base: 0x00000000,
                len: 0x00040000
            }
        ],
        [
            "IRAM",
            {
                comment: "96KB IRAM",
                name: "IRAM",
                base: 0x20000000,
                len: 0x00018000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer0 = Timer.Instance undefined;
    //
    params.timer1 = Timer.Instance undefined;
    //
    params.timer2 = Timer.Instance undefined;
    //
    params.timer3 = Timer.Instance undefined;
    //
config LM3S9B96.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config LM3S9B96.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.cpuCoreRevision = String "1.0";
config LM3S9B96.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.dataWordSize = Int 4;
config LM3S9B96.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.deviceHeader = String undefined;
config LM3S9B96.memMap // instance
index URL

The memory map returned by getMemoryMap()

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "FRAM",
        {
            comment: "256KB FRAM",
            name: "FRAM",
            base: 0x00000000,
            len: 0x00040000
        }
    ],
    [
        "IRAM",
        {
            comment: "96KB IRAM",
            name: "IRAM",
            base: 0x20000000,
            len: 0x00018000
        }
    ]
];
config LM3S9B96.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.minDataUnitSize = Int 1;
config LM3S9B96.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.minProgUnitSize = Int 1;
config LM3S9B96.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config LM3S9B96.timer0 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.timer0 = Timer.Instance undefined;
config LM3S9B96.timer1 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.timer1 = Timer.Instance undefined;
config LM3S9B96.timer2 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.timer2 = Timer.Instance undefined;
config LM3S9B96.timer3 // instance
index URL
XDCscript usage meta-domain
var params = new LM3S9B96.Params;
...
params.timer3 = Timer.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LM3S9B96.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LM3S9B96.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
LM3S9B96.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
LM3S9B96.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.LM3S9B96

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== LM3S9B96.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3;
    19
    20    metaonly module LM3S9B96 inherits ILM3SxBxx
    21    {
    22    }
    23    /*
    24     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.OMAP4430

metaonly module ti.catalog.arm.cortexm3.OMAP4430
index URL

The OMAP4430 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/OMAP4430.xdc
var OMAP4430 = xdc.useModule('ti.catalog.arm.cortexm3.OMAP4430');
per-instance config parameters
    var params = new OMAP4430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_ROM",
                {
                    name: "L2_ROM",
                    base: 0x00000000,
                    len: 0x00004000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP4430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP4430.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP4430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP4430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP4430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.dataWordSize = Int 4;
config OMAP4430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.deviceHeader = String undefined;
config OMAP4430.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config OMAP4430.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config OMAP4430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.minDataUnitSize = Int 1;
config OMAP4430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.minProgUnitSize = Int 1;
config OMAP4430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP4430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP4430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP4430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP4430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:18 GMT


module ti.catalog.arm.cortexm3.OMAP4430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP4430.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== OMAP4430 ========
    20     *  The OMAP4430 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module OMAP4430 inherits ti.catalog.ICpuDataSheet
    27    {
    28    instance:
    29        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    30
    31        override config string cpuCore           = "CM3";
    32        override config string isa               = "v7M";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        /*!
    39         *  ======== memMap ========
    40         *  The memory map returned be getMemoryMap().
    41         */
    42        config xdc.platform.IPlatform.Memory memMap[string] = [
    43
    44            /*
    45             * AMMU mapped L2 ROM virtual address
    46             * Physical address is 0x55000000
    47             */
    48            ["L2_ROM", {
    49                name: "L2_ROM",
    50                base: 0x00000000,
    51                len:  0x00004000
    52            }],
    53
    54            /*
    55             * AMMU mapped L2 RAM virtual address
    56             * Physical address is 0x55020000
    57             */
    58            ["L2_RAM", {
    59                name: "L2_RAM",
    60                base: 0x20000000,
    61                len:  0x00010000
    62            }],
    63        ];
    64    };
    65    /*
    66     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:11; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


module ti.catalog.arm.cortexm3.Stellaris

metaonly module ti.catalog.arm.cortexm3.Stellaris
index URL

Generic Stellaris Cpu definition

  • XDCscript usage
  • Individual elements
This device represents all Stellaris devices independent.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/Stellaris.xdc
var Stellaris = xdc.useModule('ti.catalog.arm.cortexm3.Stellaris');
per-instance config parameters
    var params = new Stellaris.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Stellaris.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Stellaris.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Stellaris.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Stellaris.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.cpuCoreRevision = String "1.0";
config Stellaris.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.dataWordSize = Int 4;
config Stellaris.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.deviceHeader = String undefined;
config Stellaris.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.minDataUnitSize = Int 1;
config Stellaris.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.minProgUnitSize = Int 1;
config Stellaris.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Stellaris.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Stellaris.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Stellaris.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Stellaris.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:19 GMT


module ti.catalog.arm.cortexm3.Stellaris

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Stellaris.xdc ========
    15     *  Generic Stellaris Cpu definition
    16     *
    17     *  This device represents all Stellaris devices independent.
    18     */
    19
    20    metaonly module Stellaris inherits ti.catalog.ICpuDataSheet
    21    {
    22    instance:
    23        override config string   cpuCore        = "CM3";
    24        override config string   isa            = "v7M";
    25        override config string cpuCoreRevision   = "1.0";
    26        override config int    minProgUnitSize   = 1;
    27        override config int    minDataUnitSize   = 1;
    28        override config int    dataWordSize      = 4;
    29    }
    30    /*
    31     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.arm.cortexm3.TMS320C6A8149

metaonly module ti.catalog.arm.cortexm3.TMS320C6A8149
index URL

The TMS320C6A8149 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/TMS320C6A8149.xdc
var TMS320C6A8149 = xdc.useModule('ti.catalog.arm.cortexm3.TMS320C6A8149');
per-instance config parameters
    var params = new TMS320C6A8149.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_BOOT",
                {
                    name: "L2_BOOT",
                    base: 0x00000000,
                    len: 0x4000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20004000,
                    len: 0x3C000
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x00300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6A8149.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x00300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6A8149.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6A8149.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6A8149.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.dataWordSize = Int 4;
config TMS320C6A8149.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.deviceHeader = String undefined;
config TMS320C6A8149.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320C6A8149.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x00300000,
            len: 0x20000
        }
    ]
];
config TMS320C6A8149.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6A8149.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6A8149.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6A8149.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6A8149.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6A8149.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:19 GMT


module ti.catalog.arm.cortexm3.TMS320C6A8149

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6A8149.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320C6A8149 ========
    20     *  The TMS320C6A8149 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module TMS320C6A8149 inherits ITI8148
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320C6A8168

metaonly module ti.catalog.arm.cortexm3.TMS320C6A8168
index URL

The TMS320C6A8168 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/TMS320C6A8168.xdc
var TMS320C6A8168 = xdc.useModule('ti.catalog.arm.cortexm3.TMS320C6A8168');
per-instance config parameters
    var params = new TMS320C6A8168.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_BOOT",
                {
                    name: "L2_BOOT",
                    base: 0x00000000,
                    len: 0x4000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20004000,
                    len: 0x3C000
                }
            ],
            [
                "OCMC_0",
                {
                    name: "OCMC_0",
                    base: 0x00300000,
                    len: 0x40000
                }
            ],
            [
                "OCMC_1",
                {
                    name: "OCMC_1",
                    base: 0x00400000,
                    len: 0x40000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6A8168.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x40000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x00400000,
                len: 0x40000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6A8168.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6A8168.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6A8168.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.dataWordSize = Int 4;
config TMS320C6A8168.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.deviceHeader = String undefined;
config TMS320C6A8168.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320C6A8168.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320C6A8168.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320C6A8168.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x40000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x00400000,
            len: 0x40000
        }
    ]
];
config TMS320C6A8168.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6A8168.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6A8168.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6A8168.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6A8168.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6A8168.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:19 GMT


module ti.catalog.arm.cortexm3.TMS320C6A8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6A8168.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320C6A8168 ========
    20     *  The TMS320C6A8168 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module TMS320C6A8168 inherits ITI8168
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320DM8148

metaonly module ti.catalog.arm.cortexm3.TMS320DM8148
index URL

The TMS320DM8148 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/TMS320DM8148.xdc
var TMS320DM8148 = xdc.useModule('ti.catalog.arm.cortexm3.TMS320DM8148');
per-instance config parameters
    var params = new TMS320DM8148.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_BOOT",
                {
                    name: "L2_BOOT",
                    base: 0x00000000,
                    len: 0x4000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20004000,
                    len: 0x3C000
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x00300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM8148.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x00300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM8148.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM8148.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM8148.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.dataWordSize = Int 4;
config TMS320DM8148.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.deviceHeader = String undefined;
config TMS320DM8148.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320DM8148.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x00300000,
            len: 0x20000
        }
    ]
];
config TMS320DM8148.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM8148.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM8148.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM8148.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM8148.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM8148.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:19 GMT


module ti.catalog.arm.cortexm3.TMS320DM8148

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM8148.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320DM8148 ========
    20     *  The TMS320DM8148 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module TMS320DM8148 inherits ITI8148
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320DM8168

metaonly module ti.catalog.arm.cortexm3.TMS320DM8168
index URL

The TMS320DM8168 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/TMS320DM8168.xdc
var TMS320DM8168 = xdc.useModule('ti.catalog.arm.cortexm3.TMS320DM8168');
per-instance config parameters
    var params = new TMS320DM8168.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_BOOT",
                {
                    name: "L2_BOOT",
                    base: 0x00000000,
                    len: 0x4000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20004000,
                    len: 0x3C000
                }
            ],
            [
                "OCMC_0",
                {
                    name: "OCMC_0",
                    base: 0x00300000,
                    len: 0x40000
                }
            ],
            [
                "OCMC_1",
                {
                    name: "OCMC_1",
                    base: 0x00400000,
                    len: 0x40000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM8168.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x40000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x00400000,
                len: 0x40000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM8168.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM8168.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM8168.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.dataWordSize = Int 4;
config TMS320DM8168.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.deviceHeader = String undefined;
config TMS320DM8168.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320DM8168.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320DM8168.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320DM8168.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x40000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x00400000,
            len: 0x40000
        }
    ]
];
config TMS320DM8168.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM8168.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM8168.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM8168.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM8168.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM8168.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:19 GMT


module ti.catalog.arm.cortexm3.TMS320DM8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM8168.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320DM8168 ========
    20     *  The TMS320DM8168 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module TMS320DM8168 inherits ITI8168
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320TI811X

metaonly module ti.catalog.arm.cortexm3.TMS320TI811X
index URL

The TMS320TI811X device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/TMS320TI811X.xdc
var TMS320TI811X = xdc.useModule('ti.catalog.arm.cortexm3.TMS320TI811X');
per-instance config parameters
    var params = new TMS320TI811X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_BOOT",
                {
                    name: "L2_BOOT",
                    base: 0x00000000,
                    len: 0x4000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20004000,
                    len: 0x3C000
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x00300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI811X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x00300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI811X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI811X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI811X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI811X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI811X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI811X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x00300000,
            len: 0x20000
        }
    ]
];
config TMS320TI811X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI811X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI811X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI811X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI811X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI811X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:19 GMT


module ti.catalog.arm.cortexm3.TMS320TI811X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI811X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320TI811X ========
    20     *  The TMS320TI811X device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module TMS320TI811X inherits ITI811X
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320TI813X

metaonly module ti.catalog.arm.cortexm3.TMS320TI813X
index URL

The TMS320TI813X device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/TMS320TI813X.xdc
var TMS320TI813X = xdc.useModule('ti.catalog.arm.cortexm3.TMS320TI813X');
per-instance config parameters
    var params = new TMS320TI813X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_BOOT",
                {
                    name: "L2_BOOT",
                    base: 0x00000000,
                    len: 0x4000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20004000,
                    len: 0x3C000
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x00300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI813X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x00300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI813X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI813X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI813X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI813X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI813X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI813X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x00300000,
            len: 0x20000
        }
    ]
];
config TMS320TI813X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI813X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI813X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI813X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI813X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI813X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI813X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:19 GMT


module ti.catalog.arm.cortexm3.TMS320TI813X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI813X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320TI813X ========
    20     *  The TMS320TI813X device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module TMS320TI813X inherits ITI813X
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320TI814X

metaonly module ti.catalog.arm.cortexm3.TMS320TI814X
index URL

The TMS320TI814X device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/TMS320TI814X.xdc
var TMS320TI814X = xdc.useModule('ti.catalog.arm.cortexm3.TMS320TI814X');
per-instance config parameters
    var params = new TMS320TI814X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_BOOT",
                {
                    name: "L2_BOOT",
                    base: 0x00000000,
                    len: 0x4000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20004000,
                    len: 0x3C000
                }
            ],
            [
                "OCMC",
                {
                    name: "OCMC",
                    base: 0x00300000,
                    len: 0x20000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI814X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC",
            {
                name: "OCMC",
                base: 0x00300000,
                len: 0x20000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI814X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI814X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI814X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI814X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI814X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI814X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC",
        {
            name: "OCMC",
            base: 0x00300000,
            len: 0x20000
        }
    ]
];
config TMS320TI814X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI814X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI814X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI814X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI814X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI814X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:19 GMT


module ti.catalog.arm.cortexm3.TMS320TI814X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI814X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320TI814X ========
    20     *  The TMS320TI814X device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module TMS320TI814X inherits ITI8148
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320TI816X

metaonly module ti.catalog.arm.cortexm3.TMS320TI816X
index URL

The TMS320TI816X device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/TMS320TI816X.xdc
var TMS320TI816X = xdc.useModule('ti.catalog.arm.cortexm3.TMS320TI816X');
per-instance config parameters
    var params = new TMS320TI816X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_BOOT",
                {
                    name: "L2_BOOT",
                    base: 0x00000000,
                    len: 0x4000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20004000,
                    len: 0x3C000
                }
            ],
            [
                "OCMC_0",
                {
                    name: "OCMC_0",
                    base: 0x00300000,
                    len: 0x40000
                }
            ],
            [
                "OCMC_1",
                {
                    name: "OCMC_1",
                    base: 0x00400000,
                    len: 0x40000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI816X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_BOOT",
            {
                name: "L2_BOOT",
                base: 0x00000000,
                len: 0x4000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20004000,
                len: 0x3C000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x40000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x00400000,
                len: 0x40000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI816X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI816X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI816X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI816X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI816X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI816X.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320TI816X.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320TI816X.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_BOOT",
        {
            name: "L2_BOOT",
            base: 0x00000000,
            len: 0x4000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20004000,
            len: 0x3C000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x40000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x00400000,
            len: 0x40000
        }
    ]
];
config TMS320TI816X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI816X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI816X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI816X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI816X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI816X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:19 GMT


module ti.catalog.arm.cortexm3.TMS320TI816X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI816X.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320TI816X ========
    20     *  The TMS320TI816X device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module TMS320TI816X inherits ITI8168
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,155; 8-17-2012 22:13:12; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


package ti.catalog.arm.cortexm3.concertoInit
index URL

Concerto M3 boot time initialization support

XDCspec declarations sourced in ti/catalog/arm/cortexm3/concertoInit/package.xdc
package ti.catalog.arm.cortexm3.concertoInit [1, 0, 0] {
    module Boot;
    // Concerto M3 Boot Support
}
generated on Thu, 08 Nov 2012 02:15:20 GMT


package ti.catalog.arm.cortexm3.concertoInit

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ti.catalog.arm.cortexm3.concertoInit ========
    20     *  Concerto M3 boot time initialization support
    21     */
    22    package ti.catalog.arm.cortexm3.concertoInit[1,0,0] {
    23        module Boot;
    24    }
    25    /*
    26     *  @(#) ti.catalog.arm.cortexm3.concertoInit; 1, 0, 0,35; 8-17-2012 22:13:14; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.catalog.arm.cortexm3.concertoInit.Boot
index URL

Concerto M3 Boot Support

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
The Boot module supports boot initialization for the Concerto M3 core. A special boot init function is created based on the configuration settings for this module. This function is hooked into the xdc.runtime.Reset.fxns[] array and called very early at boot time (prior to cinit processing). [ more ... ]
C synopsis target-domain sourced in ti/catalog/arm/cortexm3/concertoInit/Boot.xdc
#include <ti/catalog/arm/cortexm3/concertoInit/Boot.h>
Constants
extern const Bool
Boot_configureClocks// Clock configuration flag, default is false;
DETAILS
The Boot module supports boot initialization for the Concerto M3 core. A special boot init function is created based on the configuration settings for this module. This function is hooked into the xdc.runtime.Reset.fxns[] array and called very early at boot time (prior to cinit processing).
The code to support the boot module is placed in a separate section named ".text:.bootCodeSection" to allow placement of this section in the linker .cmd file if necessary. This section is a subsection of the ".text" section so this code will be placed into the .text section unless explicitly placed, either through Program.sectMap or through a linker command file.
config Boot_configureClocks // module-wide
index URL

Clock configuration flag, default is false

C synopsis target-domain
extern const Bool Boot_configureClocks;
DETAILS
Set to true to configure the PLL and system and M3 subsystem clock dividers.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/concertoInit/Boot.xdc
var Boot = xdc.useModule('ti.catalog.arm.cortexm3.concertoInit.Boot');
module-wide constants & types
    values of type Boot.FractMult// System PLL Fractional Multiplier (SPLLFMULT) value
        const Boot.Fract_0// Fractional multiplier is 0;
        const Boot.Fract_25// Fractional multiplier is 0.25;
        const Boot.Fract_50// Fractional multiplier is 0.5;
        const Boot.Fract_75// Fractional multiplier is 0.75;
    values of type Boot.M3Div// M3 Subsystem Clock Divider (M3SSDIVSEL) value
        const Boot.M3Div_1// Divide by 1;
        const Boot.M3Div_2// Divide by 2;
        const Boot.M3Div_4// Divide by 4;
    values of type Boot.SysDiv// System Clock Divider (SYSDIVSEL) value
        const Boot.Div_1// Divide by 1;
        const Boot.Div_2// Divide by 2;
        const Boot.Div_4// Divide by 4;
        const Boot.Div_8// Divide by 8;
    var obj = new Boot.ModuleView// ;
        obj.configureClocks = Bool ...
        obj.OSCCLK = UInt ...
        obj.SPLLIMULT = UInt ...
        obj.SPLLFMULT = String ...
        obj.SYSDIVSEL = String ...
        obj.M3SSDIVSEL = String ...
        obj.bootC28 = Bool ...
module-wide config parameters
     Boot.configureClocks// Clock configuration flag, default is false = Bool false;
     Boot.M3SSDIVSEL// M3 Subsystem Clock Divider (M3SSDIVSEL) value = Boot.M3Div Boot.M3Div_4;
     Boot.OSCCLK// OSCCLK input frequency to PLL, in MHz. Default is 20 MHz = UInt 20;
     Boot.SPLLFMULT// System PLL Fractional Multiplier (SPLLFMULT) value = Boot.FractMult Boot.Fract_0;
     Boot.SPLLIMULT// System PLL Integer Multiplier (SPLLIMULT) value = UInt 1;
     Boot.SYSDIVSEL// System Clock Divider (SYSDIVSEL) value = Boot.SysDiv Boot.Div_8;
     Boot.bootC28// Initiate booting of the C28 processor. Default is false = Bool false;
     Boot.bootFromFlash// Boot from Flash flag. Default is true = Bool true;
     Boot.configureFlashWaitStates// Flash controller wait states configuration flag, default is true = Bool true;
     Boot.enableFlashDataCache// Flash controller data cache enable flag, default is true = Bool true;
     Boot.enableFlashProgramCache// Flash controller program cache enable flag, default is true = Bool true;
     Boot.initC28RAMs// Initialize C28 RAM regions before booting the C28 processor. Default is true = Bool true;
     Boot.limpAbortFunction// Function to be called when Limp mode is detected = Fxn undefined;
     Boot.rovViewInfo// = ViewInfo.Instance ViewInfo.create;
metaonly enum Boot.FractMult
index URL

System PLL Fractional Multiplier (SPLLFMULT) value

XDCscript usage meta-domain
values of type Boot.FractMult
    const Boot.Fract_0;
    // Fractional multiplier is 0
    const Boot.Fract_25;
    // Fractional multiplier is 0.25
    const Boot.Fract_50;
    // Fractional multiplier is 0.5
    const Boot.Fract_75;
    // Fractional multiplier is 0.75
metaonly enum Boot.M3Div
index URL

M3 Subsystem Clock Divider (M3SSDIVSEL) value

XDCscript usage meta-domain
values of type Boot.M3Div
    const Boot.M3Div_1;
    // Divide by 1
    const Boot.M3Div_2;
    // Divide by 2
    const Boot.M3Div_4;
    // Divide by 4
metaonly enum Boot.SysDiv
index URL

System Clock Divider (SYSDIVSEL) value

XDCscript usage meta-domain
values of type Boot.SysDiv
    const Boot.Div_1;
    // Divide by 1
    const Boot.Div_2;
    // Divide by 2
    const Boot.Div_4;
    // Divide by 4
    const Boot.Div_8;
    // Divide by 8
metaonly struct Boot.ModuleView
index URL
XDCscript usage meta-domain
var obj = new Boot.ModuleView;
    obj.configureClocks = Bool ...
    obj.OSCCLK = UInt ...
    obj.SPLLIMULT = UInt ...
    obj.SPLLFMULT = String ...
    obj.SYSDIVSEL = String ...
    obj.M3SSDIVSEL = String ...
    obj.bootC28 = Bool ...
config Boot.configureClocks // module-wide
index URL

Clock configuration flag, default is false

XDCscript usage meta-domain
Boot.configureClocks = Bool false;
DETAILS
Set to true to configure the PLL and system and M3 subsystem clock dividers.
C SYNOPSIS
Boot_configureClocks
metaonly config Boot.M3SSDIVSEL // module-wide
index URL

M3 Subsystem Clock Divider (M3SSDIVSEL) value

XDCscript usage meta-domain
Boot.M3SSDIVSEL = Boot.M3Div Boot.M3Div_4;
metaonly config Boot.OSCCLK // module-wide
index URL

OSCCLK input frequency to PLL, in MHz. Default is 20 MHz

XDCscript usage meta-domain
Boot.OSCCLK = UInt 20;
DETAILS
This is the frequency of the oscillator clock (OSCCLK) input to the PLL.
metaonly config Boot.SPLLFMULT // module-wide
index URL

System PLL Fractional Multiplier (SPLLFMULT) value

XDCscript usage meta-domain
Boot.SPLLFMULT = Boot.FractMult Boot.Fract_0;
metaonly config Boot.SPLLIMULT // module-wide
index URL

System PLL Integer Multiplier (SPLLIMULT) value

XDCscript usage meta-domain
Boot.SPLLIMULT = UInt 1;
metaonly config Boot.SYSDIVSEL // module-wide
index URL

System Clock Divider (SYSDIVSEL) value

XDCscript usage meta-domain
Boot.SYSDIVSEL = Boot.SysDiv Boot.Div_8;
metaonly config Boot.bootC28 // module-wide
index URL

Initiate booting of the C28 processor. Default is false

XDCscript usage meta-domain
Boot.bootC28 = Bool false;
DETAILS
Set to true to enable the M3 to initiate boot of the C28.
If enabled, this will occur after the optional clock configuration step, enabled by configureClocks.
metaonly config Boot.bootFromFlash // module-wide
index URL

Boot from Flash flag. Default is true

XDCscript usage meta-domain
Boot.bootFromFlash = Bool true;
DETAILS
Set to true to enable booting the M3 from Flash.
metaonly config Boot.configureFlashWaitStates // module-wide
index URL

Flash controller wait states configuration flag, default is true

XDCscript usage meta-domain
Boot.configureFlashWaitStates = Bool true;
DETAILS
Set to true to configure the Flash controller wait states. The number of wait states is computed based upon the CPU frequency.
metaonly config Boot.enableFlashDataCache // module-wide
index URL

Flash controller data cache enable flag, default is true

XDCscript usage meta-domain
Boot.enableFlashDataCache = Bool true;
DETAILS
Set to true to enable the Flash controller's data cache.
metaonly config Boot.enableFlashProgramCache // module-wide
index URL

Flash controller program cache enable flag, default is true

XDCscript usage meta-domain
Boot.enableFlashProgramCache = Bool true;
DETAILS
Set to true to enable the Flash controller's program cache.
metaonly config Boot.initC28RAMs // module-wide
index URL

Initialize C28 RAM regions before booting the C28 processor. Default is true

XDCscript usage meta-domain
Boot.initC28RAMs = Bool true;
DETAILS
Set to true to enable initialization of these C28 RAM regions: M1, CtoM, LO, L1, L2, and L3. RAM locations will be zeroed, and the ECC or parity bits will be initialized.
metaonly config Boot.limpAbortFunction // module-wide
index URL

Function to be called when Limp mode is detected

XDCscript usage meta-domain
Boot.limpAbortFunction = Fxn undefined;
DETAILS
This function is called when the Boot module is about to configure the PLL, but finds the device operating in Limp mode (i.e., the mode when a missing OSCCLK input has been detected).
If this function is not specified by the application, a default function will be used, which spins in an infinite loop.
metaonly config Boot.rovViewInfo // module-wide
index URL
XDCscript usage meta-domain
Boot.rovViewInfo = ViewInfo.Instance ViewInfo.create;
generated on Thu, 08 Nov 2012 02:15:20 GMT


module ti.catalog.arm.cortexm3.concertoInit.Boot

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Boot.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3.concertoInit;
    19
    20    import xdc.rov.ViewInfo;
    21
    22    /*!
    23     *  ======== Boot ========
    24     *  Concerto M3 Boot Support.
    25     *
    26     *  The Boot module supports boot initialization for the Concerto M3 core.
    27     *  A special boot init function is created based on the configuration
    28     *  settings for this module.  This function is hooked into the
    29     *  xdc.runtime.Reset.fxns[] array and called very early at boot time (prior
    30     *  to cinit processing).
    31     *
    32     *  The code to support the boot module is placed in a separate section
    33     *  named `".text:.bootCodeSection"` to allow placement of this section in
    34     *  the linker .cmd file if necessary. This section is a subsection of the
    35     *  `".text"` section so this code will be placed into the .text section unless
    36     *  explicitly placed, either through
    37     *  `{@link xdc.cfg.Program#sectMap Program.sectMap}` or through a linker
    38     *  command file.
    39     */
    40    @Template("./Boot.xdt")
    41    @NoRuntime
    42    module Boot
    43    {
    44        /*! System PLL Fractional Multiplier (SPLLFMULT) value */
    45        metaonly enum FractMult {
    46            Fract_0  = 0x000,       /*! Fractional multiplier is 0 */
    47            Fract_25 = 0x100,       /*! Fractional multiplier is 0.25 */
    48            Fract_50 = 0x200,       /*! Fractional multiplier is 0.5 */
    49            Fract_75 = 0x300        /*! Fractional multiplier is 0.75 */
    50        }
    51
    52        /*! System Clock Divider (SYSDIVSEL) value */
    53        metaonly enum SysDiv {
    54            Div_1 = 0x0,            /*! Divide by 1 */
    55            Div_2 = 0x1,            /*! Divide by 2 */
    56            Div_4 = 0x2,            /*! Divide by 4 */
    57            Div_8 = 0x3             /*! Divide by 8 */
    58        };
    59
    60        /*! M3 Subsystem Clock Divider (M3SSDIVSEL) value */
    61        metaonly enum M3Div {
    62            M3Div_1 = 0x0,          /*! Divide by 1 */
    63            M3Div_2 = 0x1,          /*! Divide by 2 */
    64            M3Div_4 = 0x2           /*! Divide by 4 */
    65        };
    66
    67        metaonly struct ModuleView {
    68            Bool configureClocks;
    69            UInt OSCCLK;
    70            UInt SPLLIMULT;
    71            String SPLLFMULT;
    72            String SYSDIVSEL;
    73            String M3SSDIVSEL;
    74            Bool bootC28;
    75        }
    76
    77        @Facet
    78        metaonly config ViewInfo.Instance rovViewInfo =
    79            ViewInfo.create({
    80                viewMap: [
    81                [
    82                    'Module',
    83                    {
    84                        type: ViewInfo.MODULE,
    85                        viewInitFxn: 'viewInitModule',
    86                        structName: 'ModuleView'
    87                    }
    88                ],
    89                ]
    90            });
    91
    92        /*!
    93         *  Clock configuration flag, default is false.
    94         *
    95         *  Set to true to configure the PLL and system and M3 subsystem clock
    96         *  dividers.
    97         */
    98        config Bool configureClocks = false;
    99
   100        /*!
   101         *  OSCCLK input frequency to PLL, in MHz. Default is 20 MHz.
   102         *
   103         *  This is the frequency of the oscillator clock (OSCCLK) input to the
   104         *  PLL.
   105         */
   106        metaonly config UInt OSCCLK = 20;
   107
   108        /*! System PLL Integer Multiplier (SPLLIMULT) value */
   109        metaonly config UInt SPLLIMULT = 1;
   110
   111        /*! System PLL Fractional Multiplier (SPLLFMULT) value */
   112        metaonly config FractMult SPLLFMULT = Fract_0;
   113
   114        /*! System Clock Divider (SYSDIVSEL) value */
   115        metaonly config SysDiv SYSDIVSEL = Div_8;
   116
   117        /*! M3 Subsystem Clock Divider (M3SSDIVSEL) value */
   118        metaonly config M3Div M3SSDIVSEL = M3Div_4;
   119
   120        /*!
   121         *  Flash controller wait states configuration flag, default is true.
   122         *
   123         *  Set to true to configure the Flash controller wait states.  The number
   124         *  of wait states is computed based upon the CPU frequency.
   125         */
   126        metaonly config Bool configureFlashWaitStates = true;
   127
   128        /*!
   129         *  Flash controller program cache enable flag, default is true.
   130         *
   131         *  Set to true to enable the Flash controller's program cache.
   132         */
   133        metaonly config Bool enableFlashProgramCache = true;
   134
   135        /*!
   136         *  Flash controller data cache enable flag, default is true.
   137         *
   138         *  Set to true to enable the Flash controller's data cache.
   139         */
   140        metaonly config Bool enableFlashDataCache = true;
   141
   142        /*!
   143         *  Function to be called when Limp mode is detected.
   144         *
   145         *  This function is called when the Boot module is about to configure
   146         *  the PLL, but finds the device operating in Limp mode (i.e., the mode
   147         *  when a missing OSCCLK input has been detected).
   148         *
   149         *  If this function is not specified by the application, a default
   150         *  function will be used, which spins in an infinite loop.
   151         */
   152        metaonly config Fxn limpAbortFunction;
   153
   154        /*!
   155         *  Boot from Flash flag.  Default is true.
   156         *
   157         *  Set to true to enable booting the M3 from Flash.
   158         */
   159        metaonly config Bool bootFromFlash = true;
   160
   161        /*!
   162         *  Initiate booting of the C28 processor.  Default is false.
   163         *
   164         *  Set to true to enable the M3 to initiate boot of the C28.
   165         *
   166         *  If enabled, this will occur after the optional clock configuration
   167         *  step, enabled by `{@link #configureClocks}`.
   168         */
   169        metaonly config Bool bootC28 = false;
   170
   171        /*!
   172         *  Initialize C28 RAM regions before booting the C28 processor.
   173         *  Default is true.
   174         *
   175         *  Set to true to enable initialization of these C28 RAM regions: M1,
   176         *  CtoM, LO, L1, L2, and L3.  RAM locations will be zeroed, and the ECC or
   177         *  parity bits will be initialized.
   178         */
   179        metaonly config Bool initC28RAMs = true;
   180
   181        /*!
   182         *  @_nodoc
   183         *  ======== getFrequency ========
   184         *  Gets the resulting M3 CPU frequency (in Hz) given the Clock
   185         *  configuration parameters.
   186         *
   187         */
   188        UInt32 getFrequency();
   189
   190        /*!
   191         *  @_nodoc
   192         *  ======== registerFreqListener ========
   193         *  Register a module to be notified whenever the frequency changes.
   194         *
   195         *  The registered module must have a function named 'fireFrequencyUpdate'
   196         *  which takes the new frequency as an argument.
   197         */
   198        function registerFreqListener();
   199
   200    internal:
   201
   202        /* The computed timestamp frequency */
   203        metaonly config UInt timestampFreq;
   204
   205        /* Used to display the computed M3 frequency value in the Grace page. */
   206        metaonly config String displayFrequency;
   207
   208        /* Used to display the computed C28 frequency value in the Grace page. */
   209        metaonly config String displayFrequency28;
   210
   211        /* The computed Flash wait states */
   212        metaonly config UInt flashWaitStates = 3;
   213
   214    };
   215    /*
   216     *  @(#) ti.catalog.arm.cortexm3.concertoInit; 1, 0, 0,35; 8-17-2012 22:13:13; /db/ztree/library/trees/platform/platform-n27x/src/
   217     */
   218


package ti.catalog.arm.cortexm3.lm3init
index URL

Cortex LM3 boot time initialization support

XDCspec declarations sourced in ti/catalog/arm/cortexm3/lm3init/package.xdc
package ti.catalog.arm.cortexm3.lm3init [1, 0, 0] {
    module Boot;
    // Stellaris M3 Boot Support
}
generated on Thu, 08 Nov 2012 02:15:20 GMT


package ti.catalog.arm.cortexm3.lm3init

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ti.catalog.arm.cortexm3.lm3init ========
    20     *  Cortex LM3 boot time initialization support
    21     */
    22    package ti.catalog.arm.cortexm3.lm3init [1,0,0] {
    23        module Boot;
    24    }
    25    /*
    26     *  @(#) ti.catalog.arm.cortexm3.lm3init; 1, 0, 0,155; 8-17-2012 22:13:16; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.catalog.arm.cortexm3.lm3init.Boot
index URL

Stellaris M3 Boot Support

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
The Boot module supports boot initialization for the Stellaris M3 devices. A special boot init function is created based on the configuration settings for this module. This function is hooked into the xdc.runtime.Reset.fxns[] array and called very early at boot time (prior to cinit processing). [ more ... ]
C synopsis target-domain sourced in ti/catalog/arm/cortexm3/lm3init/Boot.xdc
#include <ti/catalog/arm/cortexm3/lm3init/Boot.h>
Typedefs
typedef enum | Boot_LdoOut// ...
typedef enum | Boot_OscSrc// ...
typedef enum | Boot_PwmDiv// ...
typedef enum | Boot_SysDiv// ...
typedef enum | Boot_XtalFreq// ...
Constants
extern const Bool | Boot_configureClock// Clock configuration flag, default is false;
extern const Bool | Boot_configureLdo// LDO configuration flag, default is false;
extern const Bool | Boot_ioscDisable// Internal Oscillator Disable flag;
extern const Boot_LdoOut | Boot_ldoOut// LDO VADJ setting, default is 2.5V;
extern const Bool | Boot_moscDisable// Main Oscillator Disable flag;
extern const Boot_OscSrc | Boot_oscSrc// Oscillator Source;
extern const Bool | Boot_pllBypass// PLL Bypass flag;
extern const Bool | Boot_pllOutEnable// PLL Output Enable flag;
extern const Boot_PwmDiv | Boot_pwmClockDiv// PWM Clock Divisor;
extern const Boot_SysDiv | Boot_sysClockDiv// SYS Clock Divisor;
extern const Boot_XtalFreq | Boot_xtal// Crystal Value;
DETAILS
The Boot module supports boot initialization for the Stellaris M3 devices. A special boot init function is created based on the configuration settings for this module. This function is hooked into the xdc.runtime.Reset.fxns[] array and called very early at boot time (prior to cinit processing).
The code to support the boot module is placed in a separate section named ".text:.bootCodeSection" to allow placement of this section in the linker .cmd file if necessary. This section is a subsection of the ".text" section so this code will be placed into the .text section unless explicitly placed, either through Program.sectMap or through a linker command file.
enum Boot_LdoOut
index URL
C synopsis target-domain
typedef enum Boot_LdoOut {
    Boot_LDOPCTL_2_55V,
    // LDO output of 2.55V
    Boot_LDOPCTL_2_60V,
    // LDO output of 2.60V
    Boot_LDOPCTL_2_65V,
    // LDO output of 2.65V
    Boot_LDOPCTL_2_70V,
    // LDO output of 2.70V
    Boot_LDOPCTL_2_75V,
    // LDO output of 2.75V
    Boot_LDOPCTL_2_25V,
    // LDO output of 2.25V
    Boot_LDOPCTL_2_30V,
    // LDO output of 2.30V
    Boot_LDOPCTL_2_35V,
    // LDO output of 2.35V
    Boot_LDOPCTL_2_40V,
    // LDO output of 2.40V
    Boot_LDOPCTL_2_45V,
    // LDO output of 2.45V
    Boot_LDOPCTL_2_50V
    // LDO output of 2.50V
} Boot_LdoOut;
enum Boot_OscSrc
index URL
C synopsis target-domain
typedef enum Boot_OscSrc {
    Boot_OSCSRC_MAIN,
    // Use the main oscillator
    Boot_OSCSRC_INT,
    // Use the internal oscillator
    Boot_OSCSRC_INT4,
    // Use the internal oscillator / 4
    Boot_OSCSRC_30
    // 30 KHz internal oscillator
} Boot_OscSrc;
enum Boot_PwmDiv
index URL
C synopsis target-domain
typedef enum Boot_PwmDiv {
    Boot_PWMDIV_1,
    // PWM clock /1
    Boot_PWMDIV_2,
    // PWM clock /2
    Boot_PWMDIV_4,
    // PWM clock /4
    Boot_PWMDIV_8,
    // PWM clock /8
    Boot_PWMDIV_16,
    // PWM clock /16
    Boot_PWMDIV_32,
    // PWM clock /32
    Boot_PWMDIV_64
    // PWM clock /64
} Boot_PwmDiv;
enum Boot_SysDiv
index URL
C synopsis target-domain
typedef enum Boot_SysDiv {
    Boot_SYSDIV_1,
    // CPU clock is osc/pll / 1
    Boot_SYSDIV_2,
    // CPU clock is osc/pll / 2
    Boot_SYSDIV_3,
    // CPU clock is osc/pll / 3
    Boot_SYSDIV_4,
    // CPU clock is osc/pll / 4
    Boot_SYSDIV_5,
    // CPU clock is osc/pll / 5
    Boot_SYSDIV_6,
    // CPU clock is osc/pll / 6
    Boot_SYSDIV_7,
    // CPU clock is osc/pll / 7
    Boot_SYSDIV_8,
    // CPU clock is osc/pll / 8
    Boot_SYSDIV_9,
    // CPU clock is osc/pll / 9
    Boot_SYSDIV_10,
    // CPU clock is osc/pll / 10
    Boot_SYSDIV_11,
    // CPU clock is osc/pll / 11
    Boot_SYSDIV_12,
    // CPU clock is osc/pll / 12
    Boot_SYSDIV_13,
    // CPU clock is osc/pll / 13
    Boot_SYSDIV_14,
    // CPU clock is osc/pll / 14
    Boot_SYSDIV_15,
    // CPU clock is osc/pll / 15
    Boot_SYSDIV_16,
    // CPU clock is osc/pll / 16
    Boot_SYSDIV_17,
    // CPU clock is osc/pll / 17
    Boot_SYSDIV_18,
    // CPU clock is osc/pll / 18
    Boot_SYSDIV_19,
    // CPU clock is osc/pll / 19
    Boot_SYSDIV_20,
    // CPU clock is osc/pll / 20
    Boot_SYSDIV_21,
    // CPU clock is osc/pll / 21
    Boot_SYSDIV_22,
    // CPU clock is osc/pll / 22
    Boot_SYSDIV_23,
    // CPU clock is osc/pll / 23
    Boot_SYSDIV_24,
    // CPU clock is osc/pll / 24
    Boot_SYSDIV_25,
    // CPU clock is osc/pll / 25
    Boot_SYSDIV_26,
    // CPU clock is osc/pll / 26
    Boot_SYSDIV_27,
    // CPU clock is osc/pll / 27
    Boot_SYSDIV_28,
    // CPU clock is osc/pll / 28
    Boot_SYSDIV_29,
    // CPU clock is osc/pll / 29
    Boot_SYSDIV_30,
    // CPU clock is osc/pll / 30
    Boot_SYSDIV_31,
    // CPU clock is osc/pll / 31
    Boot_SYSDIV_32,
    // CPU clock is osc/pll / 32
    Boot_SYSDIV_33,
    // CPU clock is osc/pll / 33
    Boot_SYSDIV_34,
    // CPU clock is osc/pll / 34
    Boot_SYSDIV_35,
    // CPU clock is osc/pll / 35
    Boot_SYSDIV_36,
    // CPU clock is osc/pll / 36
    Boot_SYSDIV_37,
    // CPU clock is osc/pll / 37
    Boot_SYSDIV_38,
    // CPU clock is osc/pll / 38
    Boot_SYSDIV_39,
    // CPU clock is osc/pll / 39
    Boot_SYSDIV_40,
    // CPU clock is osc/pll / 40
    Boot_SYSDIV_41,
    // CPU clock is osc/pll / 41
    Boot_SYSDIV_42,
    // CPU clock is osc/pll / 42
    Boot_SYSDIV_43,
    // CPU clock is osc/pll / 43
    Boot_SYSDIV_44,
    // CPU clock is osc/pll / 44
    Boot_SYSDIV_45,
    // CPU clock is osc/pll / 45
    Boot_SYSDIV_46,
    // CPU clock is osc/pll / 46
    Boot_SYSDIV_47,
    // CPU clock is osc/pll / 47
    Boot_SYSDIV_48,
    // CPU clock is osc/pll / 48
    Boot_SYSDIV_49,
    // CPU clock is osc/pll / 49
    Boot_SYSDIV_50,
    // CPU clock is osc/pll / 50
    Boot_SYSDIV_51,
    // CPU clock is osc/pll / 51
    Boot_SYSDIV_52,
    // CPU clock is osc/pll / 52
    Boot_SYSDIV_53,
    // CPU clock is osc/pll / 53
    Boot_SYSDIV_54,
    // CPU clock is osc/pll / 54
    Boot_SYSDIV_55,
    // CPU clock is osc/pll / 55
    Boot_SYSDIV_56,
    // CPU clock is osc/pll / 56
    Boot_SYSDIV_57,
    // CPU clock is osc/pll / 57
    Boot_SYSDIV_58,
    // CPU clock is osc/pll / 58
    Boot_SYSDIV_59,
    // CPU clock is osc/pll / 59
    Boot_SYSDIV_60,
    // CPU clock is osc/pll / 60
    Boot_SYSDIV_61,
    // CPU clock is osc/pll / 61
    Boot_SYSDIV_62,
    // CPU clock is osc/pll / 62
    Boot_SYSDIV_63,
    // CPU clock is osc/pll / 63
    Boot_SYSDIV_64,
    // CPU clock is osc/pll / 64
    Boot_SYSDIV_2_5,
    // CPU clock is osc/pll / 2.5
    Boot_SYSDIV_3_5,
    // CPU clock is osc/pll / 3.5
    Boot_SYSDIV_4_5,
    // CPU clock is osc/pll / 4.5
    Boot_SYSDIV_5_5,
    // CPU clock is osc/pll / 5.5
    Boot_SYSDIV_6_5,
    // CPU clock is osc/pll / 6.5
    Boot_SYSDIV_7_5,
    // CPU clock is osc/pll / 7.5
    Boot_SYSDIV_8_5,
    // CPU clock is osc/pll / 8.5
    Boot_SYSDIV_9_5,
    // CPU clock is osc/pll / 9.5
    Boot_SYSDIV_10_5,
    // CPU clock is osc/pll / 10.5
    Boot_SYSDIV_11_5,
    // CPU clock is osc/pll / 11.5
    Boot_SYSDIV_12_5,
    // CPU clock is osc/pll / 12.5
    Boot_SYSDIV_13_5,
    // CPU clock is osc/pll / 13.5
    Boot_SYSDIV_14_5,
    // CPU clock is osc/pll / 14.5
    Boot_SYSDIV_15_5,
    // CPU clock is osc/pll / 15.5
    Boot_SYSDIV_16_5,
    // CPU clock is osc/pll / 16.5
    Boot_SYSDIV_17_5,
    // CPU clock is osc/pll / 17.5
    Boot_SYSDIV_18_5,
    // CPU clock is osc/pll / 18.5
    Boot_SYSDIV_19_5,
    // CPU clock is osc/pll / 19.5
    Boot_SYSDIV_20_5,
    // CPU clock is osc/pll / 20.5
    Boot_SYSDIV_21_5,
    // CPU clock is osc/pll / 21.5
    Boot_SYSDIV_22_5,
    // CPU clock is osc/pll / 22.5
    Boot_SYSDIV_23_5,
    // CPU clock is osc/pll / 23.5
    Boot_SYSDIV_24_5,
    // CPU clock is osc/pll / 24.5
    Boot_SYSDIV_25_5,
    // CPU clock is osc/pll / 25.5
    Boot_SYSDIV_26_5,
    // CPU clock is osc/pll / 26.5
    Boot_SYSDIV_27_5,
    // CPU clock is osc/pll / 27.5
    Boot_SYSDIV_28_5,
    // CPU clock is osc/pll / 28.5
    Boot_SYSDIV_29_5,
    // CPU clock is osc/pll / 29.5
    Boot_SYSDIV_30_5,
    // CPU clock is osc/pll / 30.5
    Boot_SYSDIV_31_5,
    // CPU clock is osc/pll / 31.5
    Boot_SYSDIV_32_5,
    // CPU clock is osc/pll / 32.5
    Boot_SYSDIV_33_5,
    // CPU clock is osc/pll / 33.5
    Boot_SYSDIV_34_5,
    // CPU clock is osc/pll / 34.5
    Boot_SYSDIV_35_5,
    // CPU clock is osc/pll / 35.5
    Boot_SYSDIV_36_5,
    // CPU clock is osc/pll / 36.5
    Boot_SYSDIV_37_5,
    // CPU clock is osc/pll / 37.5
    Boot_SYSDIV_38_5,
    // CPU clock is osc/pll / 38.5
    Boot_SYSDIV_39_5,
    // CPU clock is osc/pll / 39.5
    Boot_SYSDIV_40_5,
    // CPU clock is osc/pll / 40.5
    Boot_SYSDIV_41_5,
    // CPU clock is osc/pll / 41.5
    Boot_SYSDIV_42_5,
    // CPU clock is osc/pll / 42.5
    Boot_SYSDIV_43_5,
    // CPU clock is osc/pll / 43.5
    Boot_SYSDIV_44_5,
    // CPU clock is osc/pll / 44.5
    Boot_SYSDIV_45_5,
    // CPU clock is osc/pll / 45.5
    Boot_SYSDIV_46_5,
    // CPU clock is osc/pll / 46.5
    Boot_SYSDIV_47_5,
    // CPU clock is osc/pll / 47.5
    Boot_SYSDIV_48_5,
    // CPU clock is osc/pll / 48.5
    Boot_SYSDIV_49_5,
    // CPU clock is osc/pll / 49.5
    Boot_SYSDIV_50_5,
    // CPU clock is osc/pll / 50.5
    Boot_SYSDIV_51_5,
    // CPU clock is osc/pll / 51.5
    Boot_SYSDIV_52_5,
    // CPU clock is osc/pll / 52.5
    Boot_SYSDIV_53_5,
    // CPU clock is osc/pll / 53.5
    Boot_SYSDIV_54_5,
    // CPU clock is osc/pll / 54.5
    Boot_SYSDIV_55_5,
    // CPU clock is osc/pll / 55.5
    Boot_SYSDIV_56_5,
    // CPU clock is osc/pll / 56.5
    Boot_SYSDIV_57_5,
    // CPU clock is osc/pll / 57.5
    Boot_SYSDIV_58_5,
    // CPU clock is osc/pll / 58.5
    Boot_SYSDIV_59_5,
    // CPU clock is osc/pll / 59.5
    Boot_SYSDIV_60_5,
    // CPU clock is osc/pll / 60.5
    Boot_SYSDIV_61_5,
    // CPU clock is osc/pll / 61.5
    Boot_SYSDIV_62_5,
    // CPU clock is osc/pll / 62.5
    Boot_SYSDIV_63_5
    // CPU clock is osc/pll / 63.5
} Boot_SysDiv;
enum Boot_XtalFreq
index URL
C synopsis target-domain
typedef enum Boot_XtalFreq {
    Boot_XTAL_1MHZ,
    // Using a 1MHz crystal
    Boot_XTAL_1_84MHZ,
    // Using a 1.8432MHz crystal
    Boot_XTAL_2MHZ,
    // Using a 2MHz crystal
    Boot_XTAL_2_45MHZ,
    // Using a 2.4576MHz crystal
    Boot_XTAL_3_57MHZ,
    // Using a 3.579545MHz crystal
    Boot_XTAL_3_68MHZ,
    // Using a 3.6864MHz crystal
    Boot_XTAL_4MHZ,
    // Using a 4MHz crystal
    Boot_XTAL_4_09MHZ,
    // Using a 4.096MHz crystal
    Boot_XTAL_4_91MHZ,
    // Using a 4.9152MHz crystal
    Boot_XTAL_5MHZ,
    // Using a 5MHz crystal
    Boot_XTAL_5_12MHZ,
    // Using a 5.12MHz crystal
    Boot_XTAL_6MHZ,
    // Using a 6MHz crystal
    Boot_XTAL_6_14MHZ,
    // Using a 6.144MHz crystal
    Boot_XTAL_7_37MHZ,
    // Using a 7.3728MHz crystal
    Boot_XTAL_8MHZ,
    // Using a 8MHz crystal
    Boot_XTAL_8_19MHZ,
    // Using a 8.192MHz crystal
    Boot_XTAL_10MHZ,
    // 10.0 MHz (USB)
    Boot_XTAL_12MHZ,
    // 12.0 MHz (USB)
    Boot_XTAL_12_2MHZ,
    // 12.288 MHz
    Boot_XTAL_13_5MHZ,
    // 13.56 MHz
    Boot_XTAL_14_3MHZ,
    // 14.31818 MHz
    Boot_XTAL_16MHZ,
    // 16.0 MHz (USB)
    Boot_XTAL_16_3MHZ
    // 16.384 MHz
} Boot_XtalFreq;
config Boot_configureClock // module-wide
index URL

Clock configuration flag, default is false

C synopsis target-domain
extern const Bool Boot_configureClock;
DETAILS
Set to true to automatically configure the Clock.
config Boot_configureLdo // module-wide
index URL

LDO configuration flag, default is false

C synopsis target-domain
extern const Bool Boot_configureLdo;
DETAILS
Set to true to automatically configure the LDO.
config Boot_ioscDisable // module-wide
index URL

Internal Oscillator Disable flag

C synopsis target-domain
extern const Bool Boot_ioscDisable;
config Boot_ldoOut // module-wide
index URL

LDO VADJ setting, default is 2.5V

C synopsis target-domain
extern const Boot_LdoOut Boot_ldoOut;
config Boot_moscDisable // module-wide
index URL

Main Oscillator Disable flag

C synopsis target-domain
extern const Bool Boot_moscDisable;
config Boot_oscSrc // module-wide
index URL

Oscillator Source

C synopsis target-domain
extern const Boot_OscSrc Boot_oscSrc;
config Boot_pllBypass // module-wide
index URL

PLL Bypass flag

C synopsis target-domain
extern const Bool Boot_pllBypass;
config Boot_pllOutEnable // module-wide
index URL

PLL Output Enable flag

C synopsis target-domain
extern const Bool Boot_pllOutEnable;
config Boot_pwmClockDiv // module-wide
index URL

PWM Clock Divisor

C synopsis target-domain
extern const Boot_PwmDiv Boot_pwmClockDiv;
config Boot_sysClockDiv // module-wide
index URL

SYS Clock Divisor

C synopsis target-domain
extern const Boot_SysDiv Boot_sysClockDiv;
config Boot_xtal // module-wide
index URL

Crystal Value

C synopsis target-domain
extern const Boot_XtalFreq Boot_xtal;
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm3/lm3init/Boot.xdc
var Boot = xdc.useModule('ti.catalog.arm.cortexm3.lm3init.Boot');
module-wide constants & types
    values of type Boot.LdoOut//
        const Boot.LDOPCTL_2_55V// LDO output of 2.55V;
        const Boot.LDOPCTL_2_60V// LDO output of 2.60V;
        const Boot.LDOPCTL_2_65V// LDO output of 2.65V;
        const Boot.LDOPCTL_2_70V// LDO output of 2.70V;
        const Boot.LDOPCTL_2_75V// LDO output of 2.75V;
        const Boot.LDOPCTL_2_25V// LDO output of 2.25V;
        const Boot.LDOPCTL_2_30V// LDO output of 2.30V;
        const Boot.LDOPCTL_2_35V// LDO output of 2.35V;
        const Boot.LDOPCTL_2_40V// LDO output of 2.40V;
        const Boot.LDOPCTL_2_45V// LDO output of 2.45V;
        const Boot.LDOPCTL_2_50V// LDO output of 2.50V;
    values of type Boot.OscSrc//
        const Boot.OSCSRC_MAIN// Use the main oscillator;
        const Boot.OSCSRC_INT// Use the internal oscillator;
        const Boot.OSCSRC_INT4// Use the internal oscillator / 4;
        const Boot.OSCSRC_30// 30 KHz internal oscillator;
    values of type Boot.PwmDiv//
        const Boot.PWMDIV_1// PWM clock /1;
        const Boot.PWMDIV_2// PWM clock /2;
        const Boot.PWMDIV_4// PWM clock /4;
        const Boot.PWMDIV_8// PWM clock /8;
        const Boot.PWMDIV_16// PWM clock /16;
        const Boot.PWMDIV_32// PWM clock /32;
        const Boot.PWMDIV_64// PWM clock /64;
    values of type Boot.SysDiv//
        const Boot.SYSDIV_1// CPU clock is osc/pll / 1;
        const Boot.SYSDIV_2// CPU clock is osc/pll / 2;
        const Boot.SYSDIV_3// CPU clock is osc/pll / 3;
        const Boot.SYSDIV_4// CPU clock is osc/pll / 4;
        const Boot.SYSDIV_5// CPU clock is osc/pll / 5;
        const Boot.SYSDIV_6// CPU clock is osc/pll / 6;
        const Boot.SYSDIV_7// CPU clock is osc/pll / 7;
        const Boot.SYSDIV_8// CPU clock is osc/pll / 8;
        const Boot.SYSDIV_9// CPU clock is osc/pll / 9;
        const Boot.SYSDIV_10// CPU clock is osc/pll / 10;
        const Boot.SYSDIV_11// CPU clock is osc/pll / 11;
        const Boot.SYSDIV_12// CPU clock is osc/pll / 12;
        const Boot.SYSDIV_13// CPU clock is osc/pll / 13;
        const Boot.SYSDIV_14// CPU clock is osc/pll / 14;
        const Boot.SYSDIV_15// CPU clock is osc/pll / 15;
        const Boot.SYSDIV_16// CPU clock is osc/pll / 16;
        const Boot.SYSDIV_17// CPU clock is osc/pll / 17;
        const Boot.SYSDIV_18// CPU clock is osc/pll / 18;
        const Boot.SYSDIV_19// CPU clock is osc/pll / 19;
        const Boot.SYSDIV_20// CPU clock is osc/pll / 20;
        const Boot.SYSDIV_21// CPU clock is osc/pll / 21;
        const Boot.SYSDIV_22// CPU clock is osc/pll / 22;
        const Boot.SYSDIV_23// CPU clock is osc/pll / 23;
        const Boot.SYSDIV_24// CPU clock is osc/pll / 24;
        const Boot.SYSDIV_25// CPU clock is osc/pll / 25;
        const Boot.SYSDIV_26// CPU clock is osc/pll / 26;
        const Boot.SYSDIV_27// CPU clock is osc/pll / 27;
        const Boot.SYSDIV_28// CPU clock is osc/pll / 28;
        const Boot.SYSDIV_29// CPU clock is osc/pll / 29;
        const Boot.SYSDIV_30// CPU clock is osc/pll / 30;
        const Boot.SYSDIV_31// CPU clock is osc/pll / 31;
        const Boot.SYSDIV_32// CPU clock is osc/pll / 32;
        const Boot.SYSDIV_33// CPU clock is osc/pll / 33;
        const Boot.SYSDIV_34// CPU clock is osc/pll / 34;
        const Boot.SYSDIV_35// CPU clock is osc/pll / 35;
        const Boot.SYSDIV_36// CPU clock is osc/pll / 36;
        const Boot.SYSDIV_37// CPU clock is osc/pll / 37;
        const Boot.SYSDIV_38// CPU clock is osc/pll / 38;
        const Boot.SYSDIV_39// CPU clock is osc/pll / 39;
        const Boot.SYSDIV_40// CPU clock is osc/pll / 40;
        const Boot.SYSDIV_41// CPU clock is osc/pll / 41;
        const Boot.SYSDIV_42// CPU clock is osc/pll / 42;
        const Boot.SYSDIV_43// CPU clock is osc/pll / 43;
        const Boot.SYSDIV_44// CPU clock is osc/pll / 44;
        const Boot.SYSDIV_45// CPU clock is osc/pll / 45;
        const Boot.SYSDIV_46// CPU clock is osc/pll / 46;
        const Boot.SYSDIV_47// CPU clock is osc/pll / 47;
        const Boot.SYSDIV_48// CPU clock is osc/pll / 48;
        const Boot.SYSDIV_49// CPU clock is osc/pll / 49;
        const Boot.SYSDIV_50// CPU clock is osc/pll / 50;
        const Boot.SYSDIV_51// CPU clock is osc/pll / 51;
        const Boot.SYSDIV_52// CPU clock is osc/pll / 52;
        const Boot.SYSDIV_53// CPU clock is osc/pll / 53;
        const Boot.SYSDIV_54// CPU clock is osc/pll / 54;
        const Boot.SYSDIV_55// CPU clock is osc/pll / 55;
        const Boot.SYSDIV_56// CPU clock is osc/pll / 56;
        const Boot.SYSDIV_57// CPU clock is osc/pll / 57;
        const Boot.SYSDIV_58// CPU clock is osc/pll / 58;
        const Boot.SYSDIV_59// CPU clock is osc/pll / 59;
        const Boot.SYSDIV_60// CPU clock is osc/pll / 60;
        const Boot.SYSDIV_61// CPU clock is osc/pll / 61;
        const Boot.SYSDIV_62// CPU clock is osc/pll / 62;
        const Boot.SYSDIV_63// CPU clock is osc/pll / 63;
        const Boot.SYSDIV_64// CPU clock is osc/pll / 64;
        const Boot.SYSDIV_2_5// CPU clock is osc/pll / 2.5;
        const Boot.SYSDIV_3_5// CPU clock is osc/pll / 3.5;
        const Boot.SYSDIV_4_5// CPU clock is osc/pll / 4.5;
        const Boot.SYSDIV_5_5// CPU clock is osc/pll / 5.5;
        const Boot.SYSDIV_6_5// CPU clock is osc/pll / 6.5;
        const Boot.SYSDIV_7_5// CPU clock is osc/pll / 7.5;
        const Boot.SYSDIV_8_5// CPU clock is osc/pll / 8.5;
        const Boot.SYSDIV_9_5// CPU clock is osc/pll / 9.5;
        const Boot.SYSDIV_10_5// CPU clock is osc/pll / 10.5;
        const Boot.SYSDIV_11_5// CPU clock is osc/pll / 11.5;
        const Boot.SYSDIV_12_5// CPU clock is osc/pll / 12.5;
        const Boot.SYSDIV_13_5// CPU clock is osc/pll / 13.5;
        const Boot.SYSDIV_14_5// CPU clock is osc/pll / 14.5;
        const Boot.SYSDIV_15_5// CPU clock is osc/pll / 15.5;
        const Boot.SYSDIV_16_5// CPU clock is osc/pll / 16.5;
        const Boot.SYSDIV_17_5// CPU clock is osc/pll / 17.5;
        const Boot.SYSDIV_18_5// CPU clock is osc/pll / 18.5;
        const Boot.SYSDIV_19_5// CPU clock is osc/pll / 19.5;
        const Boot.SYSDIV_20_5// CPU clock is osc/pll / 20.5;
        const Boot.SYSDIV_21_5// CPU clock is osc/pll / 21.5;
        const Boot.SYSDIV_22_5// CPU clock is osc/pll / 22.5;
        const Boot.SYSDIV_23_5// CPU clock is osc/pll / 23.5;
        const Boot.SYSDIV_24_5// CPU clock is osc/pll / 24.5;
        const Boot.SYSDIV_25_5// CPU clock is osc/pll / 25.5;
        const Boot.SYSDIV_26_5// CPU clock is osc/pll / 26.5;
        const Boot.SYSDIV_27_5// CPU clock is osc/pll / 27.5;
        const Boot.SYSDIV_28_5// CPU clock is osc/pll / 28.5;
        const Boot.SYSDIV_29_5// CPU clock is osc/pll / 29.5;
        const Boot.SYSDIV_30_5// CPU clock is osc/pll / 30.5;
        const Boot.SYSDIV_31_5// CPU clock is osc/pll / 31.5;
        const Boot.SYSDIV_32_5// CPU clock is osc/pll / 32.5;
        const Boot.SYSDIV_33_5// CPU clock is osc/pll / 33.5;
        const Boot.SYSDIV_34_5// CPU clock is osc/pll / 34.5;
        const Boot.SYSDIV_35_5// CPU clock is osc/pll / 35.5;
        const Boot.SYSDIV_36_5// CPU clock is osc/pll / 36.5;
        const Boot.SYSDIV_37_5// CPU clock is osc/pll / 37.5;
        const Boot.SYSDIV_38_5// CPU clock is osc/pll / 38.5;
        const Boot.SYSDIV_39_5// CPU clock is osc/pll / 39.5;
        const Boot.SYSDIV_40_5// CPU clock is osc/pll / 40.5;
        const Boot.SYSDIV_41_5// CPU clock is osc/pll / 41.5;
        const Boot.SYSDIV_42_5// CPU clock is osc/pll / 42.5;
        const Boot.SYSDIV_43_5// CPU clock is osc/pll / 43.5;
        const Boot.SYSDIV_44_5// CPU clock is osc/pll / 44.5;
        const Boot.SYSDIV_45_5// CPU clock is osc/pll / 45.5;
        const Boot.SYSDIV_46_5// CPU clock is osc/pll / 46.5;
        const Boot.SYSDIV_47_5// CPU clock is osc/pll / 47.5;
        const Boot.SYSDIV_48_5// CPU clock is osc/pll / 48.5;
        const Boot.SYSDIV_49_5// CPU clock is osc/pll / 49.5;
        const Boot.SYSDIV_50_5// CPU clock is osc/pll / 50.5;
        const Boot.SYSDIV_51_5// CPU clock is osc/pll / 51.5;
        const Boot.SYSDIV_52_5// CPU clock is osc/pll / 52.5;
        const Boot.SYSDIV_53_5// CPU clock is osc/pll / 53.5;
        const Boot.SYSDIV_54_5// CPU clock is osc/pll / 54.5;
        const Boot.SYSDIV_55_5// CPU clock is osc/pll / 55.5;
        const Boot.SYSDIV_56_5// CPU clock is osc/pll / 56.5;
        const Boot.SYSDIV_57_5// CPU clock is osc/pll / 57.5;
        const Boot.SYSDIV_58_5// CPU clock is osc/pll / 58.5;
        const Boot.SYSDIV_59_5// CPU clock is osc/pll / 59.5;
        const Boot.SYSDIV_60_5// CPU clock is osc/pll / 60.5;
        const Boot.SYSDIV_61_5// CPU clock is osc/pll / 61.5;
        const Boot.SYSDIV_62_5// CPU clock is osc/pll / 62.5;
        const Boot.SYSDIV_63_5// CPU clock is osc/pll / 63.5;
    values of type Boot.XtalFreq//
        const Boot.XTAL_1MHZ// Using a 1MHz crystal;
        const Boot.XTAL_1_84MHZ// Using a 1.8432MHz crystal;
        const Boot.XTAL_2MHZ// Using a 2MHz crystal;
        const Boot.XTAL_2_45MHZ// Using a 2.4576MHz crystal;
        const Boot.XTAL_3_57MHZ// Using a 3.579545MHz crystal;
        const Boot.XTAL_3_68MHZ// Using a 3.6864MHz crystal;
        const Boot.XTAL_4MHZ// Using a 4MHz crystal;
        const Boot.XTAL_4_09MHZ// Using a 4.096MHz crystal;
        const Boot.XTAL_4_91MHZ// Using a 4.9152MHz crystal;
        const Boot.XTAL_5MHZ// Using a 5MHz crystal;
        const Boot.XTAL_5_12MHZ// Using a 5.12MHz crystal;
        const Boot.XTAL_6MHZ// Using a 6MHz crystal;
        const Boot.XTAL_6_14MHZ// Using a 6.144MHz crystal;
        const Boot.XTAL_7_37MHZ// Using a 7.3728MHz crystal;
        const Boot.XTAL_8MHZ// Using a 8MHz crystal;
        const Boot.XTAL_8_19MHZ// Using a 8.192MHz crystal;
        const Boot.XTAL_10MHZ// 10.0 MHz (USB);
        const Boot.XTAL_12MHZ// 12.0 MHz (USB);
        const Boot.XTAL_12_2MHZ// 12.288 MHz;
        const Boot.XTAL_13_5MHZ// 13.56 MHz;
        const Boot.XTAL_14_3MHZ// 14.31818 MHz;
        const Boot.XTAL_16MHZ// 16.0 MHz (USB);
        const Boot.XTAL_16_3MHZ// 16.384 MHz;
    var obj = new Boot.ModuleView// ;
        obj.configureClock = Bool ...
        obj.sysClockDivEnable = Bool ...
        obj.sysClockDiv = String ...
        obj.pwmClockDivEnable = Bool ...
        obj.pwmClockDiv = String ...
        obj.xtal = String ...
        obj.oscSrc = String ...
        obj.pllBypass = Bool ...
        obj.pllOutEnable = Bool ...
        obj.ioscDisable = Bool ...
        obj.moscDisable = Bool ...
        obj.configureLdo = Bool ...
        obj.ldoOut = String ...
module-wide config parameters
     Boot.configureClock// Clock configuration flag, default is false = Bool false;
     Boot.configureLdo// LDO configuration flag, default is false = Bool false;
     Boot.ioscDisable// Internal Oscillator Disable flag = Bool false;
     Boot.ldoOut// LDO VADJ setting, default is 2.5V = Boot.LdoOut Boot.LDOPCTL_2_50V;
     Boot.moscDisable// Main Oscillator Disable flag = Bool false;
     Boot.oscSrc// Oscillator Source = Boot.OscSrc Boot.OSCSRC_MAIN;
     Boot.pllBypass// PLL Bypass flag = Bool false;
     Boot.pllOutEnable// PLL Output Enable flag = Bool false;
     Boot.pwmClockDiv// PWM Clock Divisor = Boot.PwmDiv Boot.PWMDIV_1;
     Boot.sysClockDiv// SYS Clock Divisor = Boot.SysDiv Boot.SYSDIV_1;
     Boot.xtal// Crystal Value = Boot.XtalFreq Boot.XTAL_1MHZ;
     Boot.rovViewInfo// = ViewInfo.Instance ViewInfo.create;
enum Boot.LdoOut
index URL
XDCscript usage meta-domain
values of type Boot.LdoOut
    const Boot.LDOPCTL_2_55V;
    // LDO output of 2.55V
    const Boot.LDOPCTL_2_60V;
    // LDO output of 2.60V
    const Boot.LDOPCTL_2_65V;
    // LDO output of 2.65V
    const Boot.LDOPCTL_2_70V;
    // LDO output of 2.70V
    const Boot.LDOPCTL_2_75V;
    // LDO output of 2.75V
    const Boot.LDOPCTL_2_25V;
    // LDO output of 2.25V
    const Boot.LDOPCTL_2_30V;
    // LDO output of 2.30V
    const Boot.LDOPCTL_2_35V;
    // LDO output of 2.35V
    const Boot.LDOPCTL_2_40V;
    // LDO output of 2.40V
    const Boot.LDOPCTL_2_45V;
    // LDO output of 2.45V
    const Boot.LDOPCTL_2_50V;
    // LDO output of 2.50V
C SYNOPSIS
Boot_LdoOut
enum Boot.OscSrc
index URL
XDCscript usage meta-domain
values of type Boot.OscSrc
    const Boot.OSCSRC_MAIN;
    // Use the main oscillator
    const Boot.OSCSRC_INT;
    // Use the internal oscillator
    const Boot.OSCSRC_INT4;
    // Use the internal oscillator / 4
    const Boot.OSCSRC_30;
    // 30 KHz internal oscillator
C SYNOPSIS
Boot_OscSrc
enum Boot.PwmDiv
index URL
XDCscript usage meta-domain
values of type Boot.PwmDiv
    const Boot.PWMDIV_1;
    // PWM clock /1
    const Boot.PWMDIV_2;
    // PWM clock /2
    const Boot.PWMDIV_4;
    // PWM clock /4
    const Boot.PWMDIV_8;
    // PWM clock /8
    const Boot.PWMDIV_16;
    // PWM clock /16
    const Boot.PWMDIV_32;
    // PWM clock /32
    const Boot.PWMDIV_64;
    // PWM clock /64
C SYNOPSIS
Boot_PwmDiv
enum Boot.SysDiv
index URL
XDCscript usage meta-domain
values of type Boot.SysDiv
    const Boot.SYSDIV_1;
    // CPU clock is osc/pll / 1
    const Boot.SYSDIV_2;
    // CPU clock is osc/pll / 2
    const Boot.SYSDIV_3;
    // CPU clock is osc/pll / 3
    const Boot.SYSDIV_4;
    // CPU clock is osc/pll / 4
    const Boot.SYSDIV_5;
    // CPU clock is osc/pll / 5
    const Boot.SYSDIV_6;
    // CPU clock is osc/pll / 6
    const Boot.SYSDIV_7;
    // CPU clock is osc/pll / 7
    const Boot.SYSDIV_8;
    // CPU clock is osc/pll / 8
    const Boot.SYSDIV_9;
    // CPU clock is osc/pll / 9
    const Boot.SYSDIV_10;
    // CPU clock is osc/pll / 10
    const Boot.SYSDIV_11;
    // CPU clock is osc/pll / 11
    const Boot.SYSDIV_12;
    // CPU clock is osc/pll / 12
    const Boot.SYSDIV_13;
    // CPU clock is osc/pll / 13
    const Boot.SYSDIV_14;
    // CPU clock is osc/pll / 14
    const Boot.SYSDIV_15;
    // CPU clock is osc/pll / 15
    const Boot.SYSDIV_16;
    // CPU clock is osc/pll / 16
    const Boot.SYSDIV_17;
    // CPU clock is osc/pll / 17
    const Boot.SYSDIV_18;
    // CPU clock is osc/pll / 18
    const Boot.SYSDIV_19;
    // CPU clock is osc/pll / 19
    const Boot.SYSDIV_20;
    // CPU clock is osc/pll / 20
    const Boot.SYSDIV_21;
    // CPU clock is osc/pll / 21
    const Boot.SYSDIV_22;
    // CPU clock is osc/pll / 22
    const Boot.SYSDIV_23;
    // CPU clock is osc/pll / 23
    const Boot.SYSDIV_24;
    // CPU clock is osc/pll / 24
    const Boot.SYSDIV_25;
    // CPU clock is osc/pll / 25
    const Boot.SYSDIV_26;
    // CPU clock is osc/pll / 26
    const Boot.SYSDIV_27;
    // CPU clock is osc/pll / 27
    const Boot.SYSDIV_28;
    // CPU clock is osc/pll / 28
    const Boot.SYSDIV_29;
    // CPU clock is osc/pll / 29
    const Boot.SYSDIV_30;
    // CPU clock is osc/pll / 30
    const Boot.SYSDIV_31;
    // CPU clock is osc/pll / 31
    const Boot.SYSDIV_32;
    // CPU clock is osc/pll / 32
    const Boot.SYSDIV_33;
    // CPU clock is osc/pll / 33
    const Boot.SYSDIV_34;
    // CPU clock is osc/pll / 34
    const Boot.SYSDIV_35;
    // CPU clock is osc/pll / 35
    const Boot.SYSDIV_36;
    // CPU clock is osc/pll / 36
    const Boot.SYSDIV_37;
    // CPU clock is osc/pll / 37
    const Boot.SYSDIV_38;
    // CPU clock is osc/pll / 38
    const Boot.SYSDIV_39;
    // CPU clock is osc/pll / 39
    const Boot.SYSDIV_40;
    // CPU clock is osc/pll / 40
    const Boot.SYSDIV_41;
    // CPU clock is osc/pll / 41
    const Boot.SYSDIV_42;
    // CPU clock is osc/pll / 42
    const Boot.SYSDIV_43;
    // CPU clock is osc/pll / 43
    const Boot.SYSDIV_44;
    // CPU clock is osc/pll / 44
    const Boot.SYSDIV_45;
    // CPU clock is osc/pll / 45
    const Boot.SYSDIV_46;
    // CPU clock is osc/pll / 46
    const Boot.SYSDIV_47;
    // CPU clock is osc/pll / 47
    const Boot.SYSDIV_48;
    // CPU clock is osc/pll / 48
    const Boot.SYSDIV_49;
    // CPU clock is osc/pll / 49
    const Boot.SYSDIV_50;
    // CPU clock is osc/pll / 50
    const Boot.SYSDIV_51;
    // CPU clock is osc/pll / 51
    const Boot.SYSDIV_52;
    // CPU clock is osc/pll / 52
    const Boot.SYSDIV_53;
    // CPU clock is osc/pll / 53
    const Boot.SYSDIV_54;
    // CPU clock is osc/pll / 54
    const Boot.SYSDIV_55;
    // CPU clock is osc/pll / 55
    const Boot.SYSDIV_56;
    // CPU clock is osc/pll / 56
    const Boot.SYSDIV_57;
    // CPU clock is osc/pll / 57
    const Boot.SYSDIV_58;
    // CPU clock is osc/pll / 58
    const Boot.SYSDIV_59;
    // CPU clock is osc/pll / 59
    const Boot.SYSDIV_60;
    // CPU clock is osc/pll / 60
    const Boot.SYSDIV_61;
    // CPU clock is osc/pll / 61
    const Boot.SYSDIV_62;
    // CPU clock is osc/pll / 62
    const Boot.SYSDIV_63;
    // CPU clock is osc/pll / 63
    const Boot.SYSDIV_64;
    // CPU clock is osc/pll / 64
    const Boot.SYSDIV_2_5;
    // CPU clock is osc/pll / 2.5
    const Boot.SYSDIV_3_5;
    // CPU clock is osc/pll / 3.5
    const Boot.SYSDIV_4_5;
    // CPU clock is osc/pll / 4.5
    const Boot.SYSDIV_5_5;
    // CPU clock is osc/pll / 5.5
    const Boot.SYSDIV_6_5;
    // CPU clock is osc/pll / 6.5
    const Boot.SYSDIV_7_5;
    // CPU clock is osc/pll / 7.5
    const Boot.SYSDIV_8_5;
    // CPU clock is osc/pll / 8.5
    const Boot.SYSDIV_9_5;
    // CPU clock is osc/pll / 9.5
    const Boot.SYSDIV_10_5;
    // CPU clock is osc/pll / 10.5
    const Boot.SYSDIV_11_5;
    // CPU clock is osc/pll / 11.5
    const Boot.SYSDIV_12_5;
    // CPU clock is osc/pll / 12.5
    const Boot.SYSDIV_13_5;
    // CPU clock is osc/pll / 13.5
    const Boot.SYSDIV_14_5;
    // CPU clock is osc/pll / 14.5
    const Boot.SYSDIV_15_5;
    // CPU clock is osc/pll / 15.5
    const Boot.SYSDIV_16_5;
    // CPU clock is osc/pll / 16.5
    const Boot.SYSDIV_17_5;
    // CPU clock is osc/pll / 17.5
    const Boot.SYSDIV_18_5;
    // CPU clock is osc/pll / 18.5
    const Boot.SYSDIV_19_5;
    // CPU clock is osc/pll / 19.5
    const Boot.SYSDIV_20_5;
    // CPU clock is osc/pll / 20.5
    const Boot.SYSDIV_21_5;
    // CPU clock is osc/pll / 21.5
    const Boot.SYSDIV_22_5;
    // CPU clock is osc/pll / 22.5
    const Boot.SYSDIV_23_5;
    // CPU clock is osc/pll / 23.5
    const Boot.SYSDIV_24_5;
    // CPU clock is osc/pll / 24.5
    const Boot.SYSDIV_25_5;
    // CPU clock is osc/pll / 25.5
    const Boot.SYSDIV_26_5;
    // CPU clock is osc/pll / 26.5
    const Boot.SYSDIV_27_5;
    // CPU clock is osc/pll / 27.5
    const Boot.SYSDIV_28_5;
    // CPU clock is osc/pll / 28.5
    const Boot.SYSDIV_29_5;
    // CPU clock is osc/pll / 29.5
    const Boot.SYSDIV_30_5;
    // CPU clock is osc/pll / 30.5
    const Boot.SYSDIV_31_5;
    // CPU clock is osc/pll / 31.5
    const Boot.SYSDIV_32_5;
    // CPU clock is osc/pll / 32.5
    const Boot.SYSDIV_33_5;
    // CPU clock is osc/pll / 33.5
    const Boot.SYSDIV_34_5;
    // CPU clock is osc/pll / 34.5
    const Boot.SYSDIV_35_5;
    // CPU clock is osc/pll / 35.5
    const Boot.SYSDIV_36_5;
    // CPU clock is osc/pll / 36.5
    const Boot.SYSDIV_37_5;
    // CPU clock is osc/pll / 37.5
    const Boot.SYSDIV_38_5;
    // CPU clock is osc/pll / 38.5
    const Boot.SYSDIV_39_5;
    // CPU clock is osc/pll / 39.5
    const Boot.SYSDIV_40_5;
    // CPU clock is osc/pll / 40.5
    const Boot.SYSDIV_41_5;
    // CPU clock is osc/pll / 41.5
    const Boot.SYSDIV_42_5;
    // CPU clock is osc/pll / 42.5
    const Boot.SYSDIV_43_5;
    // CPU clock is osc/pll / 43.5
    const Boot.SYSDIV_44_5;
    // CPU clock is osc/pll / 44.5
    const Boot.SYSDIV_45_5;
    // CPU clock is osc/pll / 45.5
    const Boot.SYSDIV_46_5;
    // CPU clock is osc/pll / 46.5
    const Boot.SYSDIV_47_5;
    // CPU clock is osc/pll / 47.5
    const Boot.SYSDIV_48_5;
    // CPU clock is osc/pll / 48.5
    const Boot.SYSDIV_49_5;
    // CPU clock is osc/pll / 49.5
    const Boot.SYSDIV_50_5;
    // CPU clock is osc/pll / 50.5
    const Boot.SYSDIV_51_5;
    // CPU clock is osc/pll / 51.5
    const Boot.SYSDIV_52_5;
    // CPU clock is osc/pll / 52.5
    const Boot.SYSDIV_53_5;
    // CPU clock is osc/pll / 53.5
    const Boot.SYSDIV_54_5;
    // CPU clock is osc/pll / 54.5
    const Boot.SYSDIV_55_5;
    // CPU clock is osc/pll / 55.5
    const Boot.SYSDIV_56_5;
    // CPU clock is osc/pll / 56.5
    const Boot.SYSDIV_57_5;
    // CPU clock is osc/pll / 57.5
    const Boot.SYSDIV_58_5;
    // CPU clock is osc/pll / 58.5
    const Boot.SYSDIV_59_5;
    // CPU clock is osc/pll / 59.5
    const Boot.SYSDIV_60_5;
    // CPU clock is osc/pll / 60.5
    const Boot.SYSDIV_61_5;
    // CPU clock is osc/pll / 61.5
    const Boot.SYSDIV_62_5;
    // CPU clock is osc/pll / 62.5
    const Boot.SYSDIV_63_5;
    // CPU clock is osc/pll / 63.5
C SYNOPSIS
Boot_SysDiv
enum Boot.XtalFreq
index URL
XDCscript usage meta-domain
values of type Boot.XtalFreq
    const Boot.XTAL_1MHZ;
    // Using a 1MHz crystal
    const Boot.XTAL_1_84MHZ;
    // Using a 1.8432MHz crystal
    const Boot.XTAL_2MHZ;
    // Using a 2MHz crystal
    const Boot.XTAL_2_45MHZ;
    // Using a 2.4576MHz crystal
    const Boot.XTAL_3_57MHZ;
    // Using a 3.579545MHz crystal
    const Boot.XTAL_3_68MHZ;
    // Using a 3.6864MHz crystal
    const Boot.XTAL_4MHZ;
    // Using a 4MHz crystal
    const Boot.XTAL_4_09MHZ;
    // Using a 4.096MHz crystal
    const Boot.XTAL_4_91MHZ;
    // Using a 4.9152MHz crystal
    const Boot.XTAL_5MHZ;
    // Using a 5MHz crystal
    const Boot.XTAL_5_12MHZ;
    // Using a 5.12MHz crystal
    const Boot.XTAL_6MHZ;
    // Using a 6MHz crystal
    const Boot.XTAL_6_14MHZ;
    // Using a 6.144MHz crystal
    const Boot.XTAL_7_37MHZ;
    // Using a 7.3728MHz crystal
    const Boot.XTAL_8MHZ;
    // Using a 8MHz crystal
    const Boot.XTAL_8_19MHZ;
    // Using a 8.192MHz crystal
    const Boot.XTAL_10MHZ;
    // 10.0 MHz (USB)
    const Boot.XTAL_12MHZ;
    // 12.0 MHz (USB)
    const Boot.XTAL_12_2MHZ;
    // 12.288 MHz
    const Boot.XTAL_13_5MHZ;
    // 13.56 MHz
    const Boot.XTAL_14_3MHZ;
    // 14.31818 MHz
    const Boot.XTAL_16MHZ;
    // 16.0 MHz (USB)
    const Boot.XTAL_16_3MHZ;
    // 16.384 MHz
C SYNOPSIS
Boot_XtalFreq
metaonly struct Boot.ModuleView
index URL
XDCscript usage meta-domain
var obj = new Boot.ModuleView;
    obj.configureClock = Bool ...
    obj.sysClockDivEnable = Bool ...
    obj.sysClockDiv = String ...
    obj.pwmClockDivEnable = Bool ...
    obj.pwmClockDiv = String ...
    obj.xtal = String ...
    obj.oscSrc = String ...
    obj.pllBypass = Bool ...
    obj.pllOutEnable = Bool ...
    obj.ioscDisable = Bool ...
    obj.moscDisable = Bool ...
    obj.configureLdo = Bool ...
    obj.ldoOut = String ...
config Boot.configureClock // module-wide
index URL

Clock configuration flag, default is false

XDCscript usage meta-domain
Boot.configureClock = Bool false;
DETAILS
Set to true to automatically configure the Clock.
C SYNOPSIS
Boot_configureClock
config Boot.configureLdo // module-wide
index URL

LDO configuration flag, default is false

XDCscript usage meta-domain
Boot.configureLdo = Bool false;
DETAILS
Set to true to automatically configure the LDO.
C SYNOPSIS
Boot_configureLdo
config Boot.ioscDisable // module-wide
index URL

Internal Oscillator Disable flag

XDCscript usage meta-domain
Boot.ioscDisable = Bool false;
C SYNOPSIS
Boot_ioscDisable
config Boot.ldoOut // module-wide
index URL

LDO VADJ setting, default is 2.5V

XDCscript usage meta-domain
Boot.ldoOut = Boot.LdoOut Boot.LDOPCTL_2_50V;
C SYNOPSIS
Boot_ldoOut
config Boot.moscDisable // module-wide
index URL

Main Oscillator Disable flag

XDCscript usage meta-domain
Boot.moscDisable = Bool false;
C SYNOPSIS
Boot_moscDisable
config Boot.oscSrc // module-wide
index URL

Oscillator Source

XDCscript usage meta-domain
Boot.oscSrc = Boot.OscSrc Boot.OSCSRC_MAIN;
C SYNOPSIS
Boot_oscSrc
config Boot.pllBypass // module-wide
index URL

PLL Bypass flag

XDCscript usage meta-domain
Boot.pllBypass = Bool false;
C SYNOPSIS
Boot_pllBypass
config Boot.pllOutEnable // module-wide
index URL

PLL Output Enable flag

XDCscript usage meta-domain
Boot.pllOutEnable = Bool false;
C SYNOPSIS
Boot_pllOutEnable
config Boot.pwmClockDiv // module-wide
index URL

PWM Clock Divisor

XDCscript usage meta-domain
Boot.pwmClockDiv = Boot.PwmDiv Boot.PWMDIV_1;
C SYNOPSIS
Boot_pwmClockDiv
config Boot.sysClockDiv // module-wide
index URL

SYS Clock Divisor

XDCscript usage meta-domain
Boot.sysClockDiv = Boot.SysDiv Boot.SYSDIV_1;
C SYNOPSIS
Boot_sysClockDiv
config Boot.xtal // module-wide
index URL

Crystal Value

XDCscript usage meta-domain
Boot.xtal = Boot.XtalFreq Boot.XTAL_1MHZ;
C SYNOPSIS
Boot_xtal
metaonly config Boot.rovViewInfo // module-wide
index URL
XDCscript usage meta-domain
Boot.rovViewInfo = ViewInfo.Instance ViewInfo.create;
generated on Thu, 08 Nov 2012 02:15:20 GMT


module ti.catalog.arm.cortexm3.lm3init.Boot

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Boot.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arm.cortexm3.lm3init;
    19
    20    import xdc.rov.ViewInfo;
    21
    22    /*!
    23     *  ======== Boot ========
    24     *  Stellaris M3 Boot Support.
    25     *
    26     *  The Boot module supports boot initialization for the Stellaris M3 devices.
    27     *  A special boot init function is created based on the configuration
    28     *  settings for this module.  This function is hooked into the
    29     *  xdc.runtime.Reset.fxns[] array and called very early at boot time (prior
    30     *  to cinit processing).
    31     *
    32     *  The code to support the boot module is placed in a separate section
    33     *  named `".text:.bootCodeSection"` to allow placement of this section in
    34     *  the linker .cmd file if necessary. This section is a subsection of the
    35     *  `".text"` section so this code will be placed into the .text section unless
    36     *  explicitly placed, either through
    37     *  `{@link xdc.cfg.Program#sectMap Program.sectMap}` or through a linker
    38     *  command file.
    39     */
    40    @Template("./Boot.xdt")
    41    @NoRuntime
    42    module Boot
    43    {
    44        metaonly struct ModuleView {
    45            Bool    configureClock;
    46            Bool    sysClockDivEnable;
    47            String  sysClockDiv;
    48            Bool    pwmClockDivEnable;
    49            String  pwmClockDiv;
    50            String  xtal;
    51            String  oscSrc;
    52            Bool    pllBypass;
    53            Bool    pllOutEnable;
    54            Bool    ioscDisable;
    55            Bool    moscDisable;
    56            Bool    configureLdo;
    57            String  ldoOut;
    58        }
    59
    60        @Facet
    61        metaonly config ViewInfo.Instance rovViewInfo =
    62            ViewInfo.create({
    63                viewMap: [
    64                [
    65                    'Module',
    66                    {
    67                        type: ViewInfo.MODULE,
    68                        viewInitFxn: 'viewInitModule',
    69                        structName: 'ModuleView'
    70                    }
    71                ],
    72                ]
    73            });
    74
    75
    76        enum SysDiv {
    77            SYSDIV_1     = 0x07800000,  /*! CPU clock is osc/pll / 1 */
    78            SYSDIV_2     = 0x00C00000,  /*! CPU clock is osc/pll / 2 */
    79            SYSDIV_3     = 0x01400000,  /*! CPU clock is osc/pll / 3 */
    80            SYSDIV_4     = 0x01C00000,  /*! CPU clock is osc/pll / 4 */
    81            SYSDIV_5     = 0x02400000,  /*! CPU clock is osc/pll / 5 */
    82            SYSDIV_6     = 0x02C00000,  /*! CPU clock is osc/pll / 6 */
    83            SYSDIV_7     = 0x03400000,  /*! CPU clock is osc/pll / 7 */
    84            SYSDIV_8     = 0x03C00000,  /*! CPU clock is osc/pll / 8 */
    85            SYSDIV_9     = 0x04400000,  /*! CPU clock is osc/pll / 9 */
    86            SYSDIV_10    = 0x04C00000,  /*! CPU clock is osc/pll / 10 */
    87            SYSDIV_11    = 0x05400000,  /*! CPU clock is osc/pll / 11 */
    88            SYSDIV_12    = 0x05C00000,  /*! CPU clock is osc/pll / 12 */
    89            SYSDIV_13    = 0x06400000,  /*! CPU clock is osc/pll / 13 */
    90            SYSDIV_14    = 0x06C00000,  /*! CPU clock is osc/pll / 14 */
    91            SYSDIV_15    = 0x07400000,  /*! CPU clock is osc/pll / 15 */
    92            SYSDIV_16    = 0x07C00000,  /*! CPU clock is osc/pll / 16 */
    93            SYSDIV_17    = 0x88400000,  /*! CPU clock is osc/pll / 17 */
    94            SYSDIV_18    = 0x88C00000,  /*! CPU clock is osc/pll / 18 */
    95            SYSDIV_19    = 0x89400000,  /*! CPU clock is osc/pll / 19 */
    96            SYSDIV_20    = 0x89C00000,  /*! CPU clock is osc/pll / 20 */
    97            SYSDIV_21    = 0x8A400000,  /*! CPU clock is osc/pll / 21 */
    98            SYSDIV_22    = 0x8AC00000,  /*! CPU clock is osc/pll / 22 */
    99            SYSDIV_23    = 0x8B400000,  /*! CPU clock is osc/pll / 23 */
   100            SYSDIV_24    = 0x8BC00000,  /*! CPU clock is osc/pll / 24 */
   101            SYSDIV_25    = 0x8C400000,  /*! CPU clock is osc/pll / 25 */
   102            SYSDIV_26    = 0x8CC00000,  /*! CPU clock is osc/pll / 26 */
   103            SYSDIV_27    = 0x8D400000,  /*! CPU clock is osc/pll / 27 */
   104            SYSDIV_28    = 0x8DC00000,  /*! CPU clock is osc/pll / 28 */
   105            SYSDIV_29    = 0x8E400000,  /*! CPU clock is osc/pll / 29 */
   106            SYSDIV_30    = 0x8EC00000,  /*! CPU clock is osc/pll / 30 */
   107            SYSDIV_31    = 0x8F400000,  /*! CPU clock is osc/pll / 31 */
   108            SYSDIV_32    = 0x8FC00000,  /*! CPU clock is osc/pll / 32 */
   109            SYSDIV_33    = 0x90400000,  /*! CPU clock is osc/pll / 33 */
   110            SYSDIV_34    = 0x90C00000,  /*! CPU clock is osc/pll / 34 */
   111            SYSDIV_35    = 0x91400000,  /*! CPU clock is osc/pll / 35 */
   112            SYSDIV_36    = 0x91C00000,  /*! CPU clock is osc/pll / 36 */
   113            SYSDIV_37    = 0x92400000,  /*! CPU clock is osc/pll / 37 */
   114            SYSDIV_38    = 0x92C00000,  /*! CPU clock is osc/pll / 38 */
   115            SYSDIV_39    = 0x93400000,  /*! CPU clock is osc/pll / 39 */
   116            SYSDIV_40    = 0x93C00000,  /*! CPU clock is osc/pll / 40 */
   117            SYSDIV_41    = 0x94400000,  /*! CPU clock is osc/pll / 41 */
   118            SYSDIV_42    = 0x94C00000,  /*! CPU clock is osc/pll / 42 */
   119            SYSDIV_43    = 0x95400000,  /*! CPU clock is osc/pll / 43 */
   120            SYSDIV_44    = 0x95C00000,  /*! CPU clock is osc/pll / 44 */
   121            SYSDIV_45    = 0x96400000,  /*! CPU clock is osc/pll / 45 */
   122            SYSDIV_46    = 0x96C00000,  /*! CPU clock is osc/pll / 46 */
   123            SYSDIV_47    = 0x97400000,  /*! CPU clock is osc/pll / 47 */
   124            SYSDIV_48    = 0x97C00000,  /*! CPU clock is osc/pll / 48 */
   125            SYSDIV_49    = 0x98400000,  /*! CPU clock is osc/pll / 49 */
   126            SYSDIV_50    = 0x98C00000,  /*! CPU clock is osc/pll / 50 */
   127            SYSDIV_51    = 0x99400000,  /*! CPU clock is osc/pll / 51 */
   128            SYSDIV_52    = 0x99C00000,  /*! CPU clock is osc/pll / 52 */
   129            SYSDIV_53    = 0x9A400000,  /*! CPU clock is osc/pll / 53 */
   130            SYSDIV_54    = 0x9AC00000,  /*! CPU clock is osc/pll / 54 */
   131            SYSDIV_55    = 0x9B400000,  /*! CPU clock is osc/pll / 55 */
   132            SYSDIV_56    = 0x9BC00000,  /*! CPU clock is osc/pll / 56 */
   133            SYSDIV_57    = 0x9C400000,  /*! CPU clock is osc/pll / 57 */
   134            SYSDIV_58    = 0x9CC00000,  /*! CPU clock is osc/pll / 58 */
   135            SYSDIV_59    = 0x9D400000,  /*! CPU clock is osc/pll / 59 */
   136            SYSDIV_60    = 0x9DC00000,  /*! CPU clock is osc/pll / 60 */
   137            SYSDIV_61    = 0x9E400000,  /*! CPU clock is osc/pll / 61 */
   138            SYSDIV_62    = 0x9EC00000,  /*! CPU clock is osc/pll / 62 */
   139            SYSDIV_63    = 0x9F400000,  /*! CPU clock is osc/pll / 63 */
   140            SYSDIV_64    = 0x9FC00000,  /*! CPU clock is osc/pll / 64 */
   141            SYSDIV_2_5   = 0xC1000000,  /*! CPU clock is osc/pll / 2.5 */
   142            SYSDIV_3_5   = 0xC1800000,  /*! CPU clock is osc/pll / 3.5 */
   143            SYSDIV_4_5   = 0xC2000000,  /*! CPU clock is osc/pll / 4.5 */
   144            SYSDIV_5_5   = 0xC2800000,  /*! CPU clock is osc/pll / 5.5 */
   145            SYSDIV_6_5   = 0xC3000000,  /*! CPU clock is osc/pll / 6.5 */
   146            SYSDIV_7_5   = 0xC3800000,  /*! CPU clock is osc/pll / 7.5 */
   147            SYSDIV_8_5   = 0xC4000000,  /*! CPU clock is osc/pll / 8.5 */
   148            SYSDIV_9_5   = 0xC4800000,  /*! CPU clock is osc/pll / 9.5 */
   149            SYSDIV_10_5  = 0xC5000000,  /*! CPU clock is osc/pll / 10.5 */
   150            SYSDIV_11_5  = 0xC5800000,  /*! CPU clock is osc/pll / 11.5 */
   151            SYSDIV_12_5  = 0xC6000000,  /*! CPU clock is osc/pll / 12.5 */
   152            SYSDIV_13_5  = 0xC6800000,  /*! CPU clock is osc/pll / 13.5 */
   153            SYSDIV_14_5  = 0xC7000000,  /*! CPU clock is osc/pll / 14.5 */
   154            SYSDIV_15_5  = 0xC7800000,  /*! CPU clock is osc/pll / 15.5 */
   155            SYSDIV_16_5  = 0xC8000000,  /*! CPU clock is osc/pll / 16.5 */
   156            SYSDIV_17_5  = 0xC8800000,  /*! CPU clock is osc/pll / 17.5 */
   157            SYSDIV_18_5  = 0xC9000000,  /*! CPU clock is osc/pll / 18.5 */
   158            SYSDIV_19_5  = 0xC9800000,  /*! CPU clock is osc/pll / 19.5 */
   159            SYSDIV_20_5  = 0xCA000000,  /*! CPU clock is osc/pll / 20.5 */
   160            SYSDIV_21_5  = 0xCA800000,  /*! CPU clock is osc/pll / 21.5 */
   161            SYSDIV_22_5  = 0xCB000000,  /*! CPU clock is osc/pll / 22.5 */
   162            SYSDIV_23_5  = 0xCB800000,  /*! CPU clock is osc/pll / 23.5 */
   163            SYSDIV_24_5  = 0xCC000000,  /*! CPU clock is osc/pll / 24.5 */
   164            SYSDIV_25_5  = 0xCC800000,  /*! CPU clock is osc/pll / 25.5 */
   165            SYSDIV_26_5  = 0xCD000000,  /*! CPU clock is osc/pll / 26.5 */
   166            SYSDIV_27_5  = 0xCD800000,  /*! CPU clock is osc/pll / 27.5 */
   167            SYSDIV_28_5  = 0xCE000000,  /*! CPU clock is osc/pll / 28.5 */
   168            SYSDIV_29_5  = 0xCE800000,  /*! CPU clock is osc/pll / 29.5 */
   169            SYSDIV_30_5  = 0xCF000000,  /*! CPU clock is osc/pll / 30.5 */
   170            SYSDIV_31_5  = 0xCF800000,  /*! CPU clock is osc/pll / 31.5 */
   171            SYSDIV_32_5  = 0xD0000000,  /*! CPU clock is osc/pll / 32.5 */
   172            SYSDIV_33_5  = 0xD0800000,  /*! CPU clock is osc/pll / 33.5 */
   173            SYSDIV_34_5  = 0xD1000000,  /*! CPU clock is osc/pll / 34.5 */
   174            SYSDIV_35_5  = 0xD1800000,  /*! CPU clock is osc/pll / 35.5 */
   175            SYSDIV_36_5  = 0xD2000000,  /*! CPU clock is osc/pll / 36.5 */
   176            SYSDIV_37_5  = 0xD2800000,  /*! CPU clock is osc/pll / 37.5 */
   177            SYSDIV_38_5  = 0xD3000000,  /*! CPU clock is osc/pll / 38.5 */
   178            SYSDIV_39_5  = 0xD3800000,  /*! CPU clock is osc/pll / 39.5 */
   179            SYSDIV_40_5  = 0xD4000000,  /*! CPU clock is osc/pll / 40.5 */
   180            SYSDIV_41_5  = 0xD4800000,  /*! CPU clock is osc/pll / 41.5 */
   181            SYSDIV_42_5  = 0xD5000000,  /*! CPU clock is osc/pll / 42.5 */
   182            SYSDIV_43_5  = 0xD5800000,  /*! CPU clock is osc/pll / 43.5 */
   183            SYSDIV_44_5  = 0xD6000000,  /*! CPU clock is osc/pll / 44.5 */
   184            SYSDIV_45_5  = 0xD6800000,  /*! CPU clock is osc/pll / 45.5 */
   185            SYSDIV_46_5  = 0xD7000000,  /*! CPU clock is osc/pll / 46.5 */
   186            SYSDIV_47_5  = 0xD7800000,  /*! CPU clock is osc/pll / 47.5 */
   187            SYSDIV_48_5  = 0xD8000000,  /*! CPU clock is osc/pll / 48.5 */
   188            SYSDIV_49_5  = 0xD8800000,  /*! CPU clock is osc/pll / 49.5 */
   189            SYSDIV_50_5  = 0xD9000000,  /*! CPU clock is osc/pll / 50.5 */
   190            SYSDIV_51_5  = 0xD9800000,  /*! CPU clock is osc/pll / 51.5 */
   191            SYSDIV_52_5  = 0xDA000000,  /*! CPU clock is osc/pll / 52.5 */
   192            SYSDIV_53_5  = 0xDA800000,  /*! CPU clock is osc/pll / 53.5 */
   193            SYSDIV_54_5  = 0xDB000000,  /*! CPU clock is osc/pll / 54.5 */
   194            SYSDIV_55_5  = 0xDB800000,  /*! CPU clock is osc/pll / 55.5 */
   195            SYSDIV_56_5  = 0xDC000000,  /*! CPU clock is osc/pll / 56.5 */
   196            SYSDIV_57_5  = 0xDC800000,  /*! CPU clock is osc/pll / 57.5 */
   197            SYSDIV_58_5  = 0xDD000000,  /*! CPU clock is osc/pll / 58.5 */
   198            SYSDIV_59_5  = 0xDD800000,  /*! CPU clock is osc/pll / 59.5 */
   199            SYSDIV_60_5  = 0xDE000000,  /*! CPU clock is osc/pll / 60.5 */
   200            SYSDIV_61_5  = 0xDE800000,  /*! CPU clock is osc/pll / 61.5 */
   201            SYSDIV_62_5  = 0xDF000000,  /*! CPU clock is osc/pll / 62.5 */
   202            SYSDIV_63_5  = 0xDF800000   /*! CPU clock is osc/pll / 63.5 */
   203        }
   204
   205        enum PwmDiv {
   206            PWMDIV_1     = 0x00000000,  /*! PWM clock /1 */
   207            PWMDIV_2     = 0x00100000,  /*! PWM clock /2 */
   208            PWMDIV_4     = 0x00120000,  /*! PWM clock /4 */
   209            PWMDIV_8     = 0x00140000,  /*! PWM clock /8 */
   210            PWMDIV_16    = 0x00160000,  /*! PWM clock /16 */
   211            PWMDIV_32    = 0x00180000,  /*! PWM clock /32 */
   212            PWMDIV_64    = 0x001A0000   /*! PWM clock /64 */
   213        }
   214
   215        enum XtalFreq {
   216            XTAL_1MHZ    = 0x00000000,  /*! Using a 1MHz crystal */
   217            XTAL_1_84MHZ = 0x00000040,  /*! Using a 1.8432MHz crystal */
   218            XTAL_2MHZ    = 0x00000080,  /*! Using a 2MHz crystal */
   219            XTAL_2_45MHZ = 0x000000C0,  /*! Using a 2.4576MHz crystal */
   220            XTAL_3_57MHZ = 0x00000100,  /*! Using a 3.579545MHz crystal */
   221            XTAL_3_68MHZ = 0x00000140,  /*! Using a 3.6864MHz crystal */
   222            XTAL_4MHZ    = 0x00000180,  /*! Using a 4MHz crystal */
   223            XTAL_4_09MHZ = 0x000001C0,  /*! Using a 4.096MHz crystal */
   224            XTAL_4_91MHZ = 0x00000200,  /*! Using a 4.9152MHz crystal */
   225            XTAL_5MHZ    = 0x00000240,  /*! Using a 5MHz crystal */
   226            XTAL_5_12MHZ = 0x00000280,  /*! Using a 5.12MHz crystal */
   227            XTAL_6MHZ    = 0x000002C0,  /*! Using a 6MHz crystal */
   228            XTAL_6_14MHZ = 0x00000300,  /*! Using a 6.144MHz crystal */
   229            XTAL_7_37MHZ = 0x00000340,  /*! Using a 7.3728MHz crystal */
   230            XTAL_8MHZ    = 0x00000380,  /*! Using a 8MHz crystal */
   231            XTAL_8_19MHZ = 0x000003C0,  /*! Using a 8.192MHz crystal */
   232            XTAL_10MHZ   = 0x00000400,  /*! 10.0 MHz (USB) */
   233            XTAL_12MHZ   = 0x00000440,  /*! 12.0 MHz (USB) */
   234            XTAL_12_2MHZ = 0x00000480,  /*! 12.288 MHz */
   235            XTAL_13_5MHZ = 0x000004C0,  /*! 13.56 MHz */
   236            XTAL_14_3MHZ = 0x00000500,  /*! 14.31818 MHz */
   237            XTAL_16MHZ   = 0x00000540,  /*! 16.0 MHz (USB) */
   238            XTAL_16_3MHZ = 0x00000580   /*! 16.384 MHz */
   239        }
   240
   241        enum OscSrc {
   242            OSCSRC_MAIN  = 0x00000000,  /*! Use the main oscillator */
   243            OSCSRC_INT   = 0x00000010,  /*! Use the internal oscillator */
   244            OSCSRC_INT4  = 0x00000020,  /*! Use the internal oscillator / 4 */
   245            OSCSRC_30    = 0x00000030   /*! 30 KHz internal oscillator */
   246        }
   247
   248        enum LdoOut {
   249            LDOPCTL_2_55V    = 0x0000001F,  /*! LDO output of 2.55V */
   250            LDOPCTL_2_60V    = 0x0000001E,  /*! LDO output of 2.60V */
   251            LDOPCTL_2_65V    = 0x0000001D,  /*! LDO output of 2.65V */
   252            LDOPCTL_2_70V    = 0x0000001C,  /*! LDO output of 2.70V */
   253            LDOPCTL_2_75V    = 0x0000001B,  /*! LDO output of 2.75V */
   254            LDOPCTL_2_25V    = 0x00000005,  /*! LDO output of 2.25V */
   255            LDOPCTL_2_30V    = 0x00000004,  /*! LDO output of 2.30V */
   256            LDOPCTL_2_35V    = 0x00000003,  /*! LDO output of 2.35V */
   257            LDOPCTL_2_40V    = 0x00000002,  /*! LDO output of 2.40V */
   258            LDOPCTL_2_45V    = 0x00000001,  /*! LDO output of 2.45V */
   259            LDOPCTL_2_50V    = 0x00000000   /*! LDO output of 2.50V */
   260        }
   261
   262        /*!
   263         *  Clock configuration flag, default is false.
   264         *
   265         *  Set to true to automatically configure the Clock.
   266         */
   267        config Bool configureClock = false;
   268
   269        /*! SYS Clock Divisor */
   270        config SysDiv sysClockDiv = SYSDIV_1;
   271
   272        /*! PWM Clock Divisor */
   273        config PwmDiv pwmClockDiv = PWMDIV_1;
   274
   275        /*! Crystal Value */
   276        config XtalFreq xtal = XTAL_1MHZ;
   277
   278        /*! Oscillator Source */
   279        config OscSrc oscSrc = OSCSRC_MAIN;
   280
   281        /*! PLL Bypass flag */
   282        config Bool pllBypass = false;
   283
   284        /*! PLL Output Enable flag */
   285        config Bool pllOutEnable = false;
   286
   287        /*! Internal Oscillator Disable flag */
   288        config Bool ioscDisable = false;
   289
   290        /*! Main Oscillator Disable flag */
   291        config Bool moscDisable = false;
   292
   293        /*!
   294         *  LDO configuration flag, default is false.
   295         *
   296         *  Set to true to automatically configure the LDO.
   297         */
   298        config Bool configureLdo = false;
   299
   300        /*!
   301         *  LDO VADJ setting, default is 2.5V
   302         */
   303        config LdoOut ldoOut = LDOPCTL_2_50V;
   304
   305        /*!
   306         *  @_nodoc
   307         *  computed RCC value based on settings
   308         */
   309        config UInt ulConfig;
   310
   311        /*!
   312         *  @_nodoc
   313         *  ======== getFrequency ========
   314         *  Gets the resulting output frequency (in Hz) given the Clock
   315         *  configuration parameters.
   316         *
   317         *  Currently un-implemented.
   318         */
   319        UInt32 getFrequency();
   320
   321        /*!
   322         *  @_nodoc
   323         *  ======== registerFreqListener ========
   324         *  Register a module to be notified whenever the frequency changes.
   325         *
   326         *  The registered module must have a function named 'fireFrequencyUpdate'
   327         *  which takes the new frequency as an argument.
   328         */
   329        function registerFreqListener();
   330
   331    internal:
   332
   333        /*!
   334         *  @_nodoc
   335         *  computed cpu frequency based on clock settings
   336         */
   337        config UInt cpuFreq;
   338
   339    };
   340    /*
   341     *  @(#) ti.catalog.arm.cortexm3.lm3init; 1, 0, 0,155; 8-17-2012 22:13:16; /db/ztree/library/trees/platform/platform-n27x/src/
   342     */
   343


package ti.catalog.arm.cortexm4
index URL

Package of devices for the arm Cortex M4 family of Arm processors

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/arm/cortexm4/package.xdc
package ti.catalog.arm.cortexm4 [1, 0, 0] {
    module OMAP5430;
    // The OMAP5430 device data sheet module
    module Stellaris;
    // Generic Stellaris Cpu definition
    module Vayu;
    // The Vayu device data sheet module
}
generated on Thu, 08 Nov 2012 02:15:21 GMT


package ti.catalog.arm.cortexm4

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ti.catalog.arm.cortexm4 ========
    15     *  Package of devices for the arm Cortex M4 family of Arm processors.
    16     *
    17     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    18     *  interface. This interface is used by platforms (modules that implement
    19     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    20     */
    21    package ti.catalog.arm.cortexm4 [1,0,0] {
    22        module Stellaris;
    23        module OMAP5430;
    24        module Vayu;
    25    }
    26    /*
    27     *  @(#) ti.catalog.arm.cortexm4; 1, 0, 0,24; 8-17-2012 22:13:16; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.arm.cortexm4.OMAP5430

metaonly module ti.catalog.arm.cortexm4.OMAP5430
index URL

The OMAP5430 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm4/OMAP5430.xdc
var OMAP5430 = xdc.useModule('ti.catalog.arm.cortexm4.OMAP5430');
per-instance config parameters
    var params = new OMAP5430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM4";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_ROM",
                {
                    name: "L2_ROM",
                    base: 0x00000000,
                    len: 0x00004000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP5430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP5430.Params;
// Instance config-params object
    params.cpuCore = String "CM4";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP5430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.cpuCore = String "CM4";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP5430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP5430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.dataWordSize = Int 4;
config OMAP5430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.deviceHeader = String undefined;
config OMAP5430.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config OMAP5430.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config OMAP5430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.minDataUnitSize = Int 1;
config OMAP5430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.minProgUnitSize = Int 1;
config OMAP5430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP5430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP5430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP5430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP5430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:21 GMT


module ti.catalog.arm.cortexm4.OMAP5430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP5430.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== OMAP5430 ========
    20     *  The OMAP5430 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module OMAP5430 inherits ti.catalog.ICpuDataSheet
    27    {
    28    instance:
    29        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    30
    31        override config string cpuCore           = "CM4";
    32        override config string isa               = "v7M4";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        /*!
    39         *  ======== memMap ========
    40         *  The memory map returned be getMemoryMap().
    41         */
    42        config xdc.platform.IPlatform.Memory memMap[string] = [
    43
    44            /*
    45             * AMMU mapped L2 ROM virtual address
    46             * Physical address is 0x55000000
    47             */
    48            ["L2_ROM", {
    49                name: "L2_ROM",
    50                base: 0x00000000,
    51                len:  0x00004000
    52            }],
    53
    54            /*
    55             * AMMU mapped L2 RAM virtual address
    56             * Physical address is 0x55020000
    57             */
    58            ["L2_RAM", {
    59                name: "L2_RAM",
    60                base: 0x20000000,
    61                len:  0x00010000
    62            }],
    63        ];
    64    };
    65    /*
    66     *  @(#) ti.catalog.arm.cortexm4; 1, 0, 0,24; 8-17-2012 22:13:16; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


module ti.catalog.arm.cortexm4.Stellaris

metaonly module ti.catalog.arm.cortexm4.Stellaris
index URL

Generic Stellaris Cpu definition

  • XDCscript usage
  • Individual elements
This device represents all Stellaris devices independent.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm4/Stellaris.xdc
var Stellaris = xdc.useModule('ti.catalog.arm.cortexm4.Stellaris');
per-instance config parameters
    var params = new Stellaris.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM4";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Stellaris.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Stellaris.Params;
// Instance config-params object
    params.cpuCore = String "CM4";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Stellaris.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.cpuCore = String "CM4";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Stellaris.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.cpuCoreRevision = String "1.0";
config Stellaris.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.dataWordSize = Int 4;
config Stellaris.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.deviceHeader = String undefined;
config Stellaris.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.minDataUnitSize = Int 1;
config Stellaris.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.minProgUnitSize = Int 1;
config Stellaris.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Stellaris.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Stellaris.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Stellaris.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Stellaris.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Stellaris.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:21 GMT


module ti.catalog.arm.cortexm4.Stellaris

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Stellaris.xdc ========
    15     *  Generic Stellaris Cpu definition
    16     *
    17     *  This device represents all Stellaris devices independent.
    18     */
    19
    20    metaonly module Stellaris inherits ti.catalog.ICpuDataSheet
    21    {
    22    instance:
    23        override config string   cpuCore        = "CM4";
    24        override config string   isa            = "v7M4";
    25        override config string cpuCoreRevision   = "1.0";
    26        override config int    minProgUnitSize   = 1;
    27        override config int    minDataUnitSize   = 1;
    28        override config int    dataWordSize      = 4;
    29    }
    30    /*
    31     *  @(#) ti.catalog.arm.cortexm4; 1, 0, 0,24; 8-17-2012 22:13:16; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.arm.cortexm4.Vayu

metaonly module ti.catalog.arm.cortexm4.Vayu
index URL

The Vayu device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexm4/Vayu.xdc
var Vayu = xdc.useModule('ti.catalog.arm.cortexm4.Vayu');
per-instance config parameters
    var params = new Vayu.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM4";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_ROM",
                {
                    name: "L2_ROM",
                    base: 0x00000000,
                    len: 0x00004000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Vayu.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Vayu.Params;
// Instance config-params object
    params.cpuCore = String "CM4";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Vayu.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.cpuCore = String "CM4";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Vayu.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.cpuCoreRevision = String "1.0";
config Vayu.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.dataWordSize = Int 4;
config Vayu.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.deviceHeader = String undefined;
config Vayu.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config Vayu.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config Vayu.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.minDataUnitSize = Int 1;
config Vayu.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.minProgUnitSize = Int 1;
config Vayu.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Vayu.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Vayu.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Vayu.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Vayu.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:21 GMT


module ti.catalog.arm.cortexm4.Vayu

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Vayu.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Vayu ========
    20     *  The Vayu device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     */
    26    metaonly module Vayu inherits ti.catalog.ICpuDataSheet
    27    {
    28    instance:
    29        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    30
    31        override config string cpuCore           = "CM4";
    32        override config string isa               = "v7M4";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        /*!
    39         *  ======== memMap ========
    40         *  The memory map returned be getMemoryMap().
    41         */
    42        config xdc.platform.IPlatform.Memory memMap[string] = [
    43
    44            /*
    45             * AMMU mapped L2 ROM virtual address
    46             * Physical address is 0x55000000
    47             */
    48            ["L2_ROM", {
    49                name: "L2_ROM",
    50                base: 0x00000000,
    51                len:  0x00004000
    52            }],
    53
    54            /*
    55             * AMMU mapped L2 RAM virtual address
    56             * Physical address is 0x55020000
    57             */
    58            ["L2_RAM", {
    59                name: "L2_RAM",
    60                base: 0x20000000,
    61                len:  0x00010000
    62            }],
    63        ];
    64    };
    65    /*
    66     *  @(#) ti.catalog.arm.cortexm4; 1, 0, 0,24; 8-17-2012 22:13:16; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


package ti.catalog.arm.cortexr4
index URL

Package of devices for the arm Cortex R4 family of Arm processors

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/arm/cortexr4/package.xdc
requires xdc.platform;
package ti.catalog.arm.cortexr4 [1, 0, 0] {
    module TMS570LS20216;
    // The C470 device data sheet module
    module TMS570PSF762;
    // The C470 device data sheet module
}
generated on Thu, 08 Nov 2012 02:15:21 GMT


package ti.catalog.arm.cortexr4

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14
    15    /*!
    16     *  ======== ti.catalog.arm.cortexr4  ========
    17     *  Package of devices for the arm Cortex R4 family of Arm processors.
    18     *
    19     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    20     *  interface. This interface is used by platforms (modules that implement
    21     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    22     */
    23    package ti.catalog.arm.cortexr4 [1,0,0] {
    24        module TMS570PSF762, TMS570LS20216;
    25    }
    26    /*
    27     *  @(#) ti.catalog.arm.cortexr4; 1, 0, 0,155; 8-17-2012 22:13:16; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.arm.cortexr4.TMS570LS20216

metaonly module ti.catalog.arm.cortexr4.TMS570LS20216
index URL

The C470 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device. [ more ... ]
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexr4/TMS570LS20216.xdc
var TMS570LS20216 = xdc.useModule('ti.catalog.arm.cortexr4.TMS570LS20216');
per-instance config parameters
    var params = new TMS570LS20216.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "R4";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "LO_FLASH",
                {
                    name: "FLASH",
                    base: 0x00000000,
                    len: 0x00200000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "HI_IRAM",
                {
                    name: "IRAM",
                    base: 0x08000000,
                    len: 0x00028000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "HI_FLASH",
                {
                    name: "FLASH",
                    base: 0x20000000,
                    len: 0x00080000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "LO_IRAM",
                {
                    name: "IRAM",
                    base: 0x00000000,
                    len: 0x00028000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS570LS20216.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
DETAILS
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
Warning: The data for this module comes from the linker command file shipped with the TI 470 tools and does NOT come from any published data sheet.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
// Instance config-params object
    params.cpuCore = String "R4";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "LO_FLASH",
            {
                name: "FLASH",
                base: 0x00000000,
                len: 0x00200000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "HI_IRAM",
            {
                name: "IRAM",
                base: 0x08000000,
                len: 0x00028000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "HI_FLASH",
            {
                name: "FLASH",
                base: 0x20000000,
                len: 0x00080000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "LO_IRAM",
            {
                name: "IRAM",
                base: 0x00000000,
                len: 0x00028000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS570LS20216.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.cpuCore = String "R4";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS570LS20216.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS570LS20216.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.dataWordSize = Int 4;
config TMS570LS20216.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.deviceHeader = String undefined;
config TMS570LS20216.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "LO_FLASH",
        {
            name: "FLASH",
            base: 0x00000000,
            len: 0x00200000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "HI_IRAM",
        {
            name: "IRAM",
            base: 0x08000000,
            len: 0x00028000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "HI_FLASH",
        {
            name: "FLASH",
            base: 0x20000000,
            len: 0x00080000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "LO_IRAM",
        {
            name: "IRAM",
            base: 0x00000000,
            len: 0x00028000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS570LS20216.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.minDataUnitSize = Int 1;
config TMS570LS20216.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.minProgUnitSize = Int 1;
config TMS570LS20216.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS570LS20216.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS570LS20216.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS570LS20216.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS570LS20216.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:21 GMT


module ti.catalog.arm.cortexr4.TMS570LS20216

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS570LS20216.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS570LS20216 ========
    20     *  The C470 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     *  Warning: The data for this module comes from the linker command file
    26     *  shipped with the TI 470 tools and does NOT come from any published data
    27     *  sheet.
    28     */
    29    metaonly module TMS570LS20216 inherits ti.catalog.ICpuDataSheet
    30    {
    31    instance:
    32        override config string cpuCore           = "R4";
    33        override config string isa               = "v7R";
    34        override config string cpuCoreRevision   = "1.0";
    35        override config int    minProgUnitSize   = 1;
    36        override config int    minDataUnitSize   = 1;
    37        override config int    dataWordSize      = 4;
    38
    39        /*!
    40         *  ======== memMap ========
    41         *  The default memory map for this device
    42         */
    43        config xdc.platform.IPlatform.Memory memMap[string]  = [
    44            ["LO_FLASH", {
    45                name:       "FLASH",
    46                base:       0x00000000,
    47                len:        0x00200000,
    48                space:      "code",
    49                access:     "RX"
    50            }],
    51            ["HI_IRAM", {
    52                name:       "IRAM",
    53                base:       0x08000000,
    54                len:        0x00028000,
    55                space:      "code/data",
    56                access:     "RWX"
    57            }],
    58            ["HI_FLASH", {
    59                name:       "FLASH",
    60                base:       0x20000000,
    61                len:        0x00080000,
    62                space:      "code",
    63                access:     "RX"
    64            }],
    65            ["LO_IRAM", {
    66                name:       "IRAM",
    67                base:       0x00000000,
    68                len:        0x00028000,
    69                space:      "code/data",
    70                access:     "RWX"
    71            }],
    72        ];
    73    };
    74
    75    /*
    76     *  @(#) ti.catalog.arm.cortexr4; 1, 0, 0,155; 8-17-2012 22:13:16; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


module ti.catalog.arm.cortexr4.TMS570PSF762

metaonly module ti.catalog.arm.cortexr4.TMS570PSF762
index URL

The C470 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device. [ more ... ]
XDCscript usage meta-domain sourced in ti/catalog/arm/cortexr4/TMS570PSF762.xdc
var TMS570PSF762 = xdc.useModule('ti.catalog.arm.cortexr4.TMS570PSF762');
per-instance config parameters
    var params = new TMS570PSF762.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "R4";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "LO_FLASH",
                {
                    name: "FLASH",
                    base: 0x00000000,
                    len: 0x00080000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "HI_IRAM",
                {
                    name: "IRAM",
                    base: 0x08000000,
                    len: 0x0000A000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "HI_FLASH",
                {
                    name: "FLASH",
                    base: 0x20000000,
                    len: 0x00080000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "LO_IRAM",
                {
                    name: "IRAM",
                    base: 0x00000000,
                    len: 0x0000A000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS570PSF762.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
DETAILS
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
Warning: The data for this module comes from the linker command file shipped with the TI 470 tools and does NOT come from any published data sheet.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
// Instance config-params object
    params.cpuCore = String "R4";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "LO_FLASH",
            {
                name: "FLASH",
                base: 0x00000000,
                len: 0x00080000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "HI_IRAM",
            {
                name: "IRAM",
                base: 0x08000000,
                len: 0x0000A000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "HI_FLASH",
            {
                name: "FLASH",
                base: 0x20000000,
                len: 0x00080000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "LO_IRAM",
            {
                name: "IRAM",
                base: 0x00000000,
                len: 0x0000A000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS570PSF762.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.cpuCore = String "R4";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS570PSF762.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS570PSF762.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.dataWordSize = Int 4;
config TMS570PSF762.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.deviceHeader = String undefined;
config TMS570PSF762.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "LO_FLASH",
        {
            name: "FLASH",
            base: 0x00000000,
            len: 0x00080000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "HI_IRAM",
        {
            name: "IRAM",
            base: 0x08000000,
            len: 0x0000A000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "HI_FLASH",
        {
            name: "FLASH",
            base: 0x20000000,
            len: 0x00080000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "LO_IRAM",
        {
            name: "IRAM",
            base: 0x00000000,
            len: 0x0000A000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS570PSF762.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.minDataUnitSize = Int 1;
config TMS570PSF762.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.minProgUnitSize = Int 1;
config TMS570PSF762.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS570PSF762.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS570PSF762.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS570PSF762.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS570PSF762.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:21 GMT


module ti.catalog.arm.cortexr4.TMS570PSF762

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS570PSF762.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS570PSF762 ========
    20     *  The C470 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     *
    25     *  Warning: The data for this module comes from the linker command file
    26     *  shipped with the TI 470 tools and does NOT come from any published data
    27     *  sheet.
    28     */
    29    metaonly module TMS570PSF762 inherits ti.catalog.ICpuDataSheet
    30    {
    31
    32    instance:
    33        override config string cpuCore           = "R4";
    34        override config string isa               = "v7R";
    35        override config string cpuCoreRevision   = "1.0";
    36        override config int    minProgUnitSize   = 1;
    37        override config int    minDataUnitSize   = 1;
    38        override config int    dataWordSize      = 4;
    39
    40        /*!
    41         *  ======== memMap ========
    42         *  The default memory map for this device
    43         */
    44        config xdc.platform.IPlatform.Memory memMap[string]  = [
    45            ["LO_FLASH", {
    46                name:       "FLASH",
    47                base:       0x00000000,
    48                len:        0x00080000,
    49                space:      "code",
    50                access:     "RX"
    51            }],
    52            ["HI_IRAM", {
    53                name:       "IRAM",
    54                base:       0x08000000,
    55                len:        0x0000A000,
    56                space:      "code/data",
    57                access:     "RWX"
    58            }],
    59            ["HI_FLASH", {
    60                name:       "FLASH",
    61                base:       0x20000000,
    62                len:        0x00080000,
    63                space:      "code",
    64                access:     "RX"
    65            }],
    66            ["LO_IRAM", {
    67                name:       "IRAM",
    68                base:       0x00000000,
    69                len:        0x0000A000,
    70                space:      "code/data",
    71                access:     "RWX"
    72            }],
    73        ];
    74    };
    75
    76    /*
    77     *  @(#) ti.catalog.arm.cortexr4; 1, 0, 0,155; 8-17-2012 22:13:16; /db/ztree/library/trees/platform/platform-n27x/src/
    78     */
    79


package ti.catalog.arm.nda
index URL

Package of devices for the arm family of Arm processors

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/arm/nda/package.xdc
requires xdc.platform;
package ti.catalog.arm.nda [1, 0, 0, 0] {
    module Ducati;
    // The Ducati device data sheet module
}
generated on Thu, 08 Nov 2012 02:15:04 GMT


package ti.catalog.arm.nda

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14
    15    /*!
    16     *  ======== ti.catalog.arm.nda ========
    17     *  Package of devices for the arm family of Arm processors.
    18     *
    19     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    20     *  interface. This interface is used by platforms (modules that implement
    21     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    22     */
    23    package ti.catalog.arm.nda [1,0,0,0] {
    24        module Ducati;
    25    }
    26    /*
    27     *  @(#) ti.catalog.arm.nda; 1, 0, 0, 0,154; 8-17-2012 22:13:18; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.arm.nda.Ducati

metaonly module ti.catalog.arm.nda.Ducati
index URL

The Ducati device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arm/nda/Ducati.xdc
var Ducati = xdc.useModule('ti.catalog.arm.nda.Ducati');
per-instance config parameters
    var params = new Ducati.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "CM3";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "L2_ROM",
                {
                    name: "L2_ROM",
                    base: 0x00000000,
                    len: 0x00004000
                }
            ],
            [
                "L2_RAM",
                {
                    name: "L2_RAM",
                    base: 0x20000000,
                    len: 0x00010000
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Ducati.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Ducati.Params;
// Instance config-params object
    params.cpuCore = String "CM3";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "L2_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00010000
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Ducati.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Ducati.Params;
...
params.cpuCore = String "CM3";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Ducati.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Ducati.Params;
...
params.cpuCoreRevision = String "1.0";
config Ducati.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Ducati.Params;
...
params.dataWordSize = Int 4;
config Ducati.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Ducati.Params;
...
params.deviceHeader = String undefined;
config Ducati.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new Ducati.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00010000
        }
    ]
];
config Ducati.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Ducati.Params;
...
params.minDataUnitSize = Int 1;
config Ducati.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Ducati.Params;
...
params.minProgUnitSize = Int 1;
config Ducati.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Ducati.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Ducati.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Ducati.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Ducati.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Ducati.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:04 GMT


module ti.catalog.arm.nda.Ducati

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Ducati.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== Ducati ========
    19     *  The Ducati device data sheet module.
    20     *
    21     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    22     *  used by platforms to obtain "data sheet" information about this device.
    23     *
    24     */
    25    metaonly module Ducati inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        override config string cpuCore           = "CM3";
    29        override config string isa               = "v7M";
    30        override config string cpuCoreRevision   = "1.0";
    31        override config int    minProgUnitSize   = 1;
    32        override config int    minDataUnitSize   = 1;
    33        override config int    dataWordSize      = 4;
    34
    35        /*!
    36         *  ======== memMap ========
    37         *  The memory map returned be getMemoryMap().
    38         */
    39        config xdc.platform.IPlatform.Memory memMap[string] = [
    40
    41            /*
    42             * AMMU mapped L2 ROM virtual address
    43             * Physical address is 0x55000000
    44             */
    45            ["L2_ROM", {
    46                name: "L2_ROM",
    47                base: 0x00000000,
    48                len:  0x00004000
    49            }],
    50
    51            /*
    52             * AMMU mapped L2 RAM virtual address
    53             * Physical address is 0x55020000
    54             */
    55            ["L2_RAM", {
    56                name: "L2_RAM",
    57                base: 0x20000000,
    58                len:  0x00010000
    59            }],
    60        ];
    61    };
    62    /*
    63     *  @(#) ti.catalog.arm.nda; 1, 0, 0, 0,154; 8-17-2012 22:13:18; /db/ztree/library/trees/platform/platform-n27x/src/
    64     */
    65


package ti.catalog.arm.peripherals.timers
index URL

Arm timer peripherals

XDCspec declarations sourced in ti/catalog/arm/peripherals/timers/package.xdc
package ti.catalog.arm.peripherals.timers {
    module Timer;
    // Minimal timer definition
}
generated on Thu, 08 Nov 2012 02:15:21 GMT


package ti.catalog.arm.peripherals.timers

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ti.catalog.arm.peripherals.timers ========
    15     *  Arm timer peripherals
    16     */
    17    package ti.catalog.arm.peripherals.timers {
    18        module Timer;
    19    }
    20    /*
    21     *  @(#) ti.catalog.arm.peripherals.timers; 1,0,0,183; 8-17-2012 22:13:19; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.arm.peripherals.timers.Timer

metaonly module ti.catalog.arm.peripherals.timers.Timer
index URL

Minimal timer definition

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/arm/peripherals/timers/Timer.xdc
var Timer = xdc.useModule('ti.catalog.arm.peripherals.timers.Timer');
module-wide functions
     Timer.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.intNum// Interrupt source number = UInt undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
Timer.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.intNum = UInt undefined;
    // Interrupt source number
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer.Params;
...
params.intNum = UInt undefined;
config Timer.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer.Params;
...
params.owner = String undefined;
generated on Thu, 08 Nov 2012 02:15:21 GMT


module ti.catalog.arm.peripherals.timers.Timer

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Timer ========
    15     *  Minimal timer definition
    16     */
    17    metaonly module Timer inherits xdc.platform.IPeripheral {
    18
    19    instance:
    20        /*!
    21         *  ======== baseAddr ========
    22         *  Address of the peripheral's control register.
    23         *
    24         *  A peripheral's registers are commonly accessed through a structure
    25         *  that defines the offsets of a particular register from the lowest
    26         *  address mapped to a peripheral. That lowest address is specified by
    27         *  this parameter.
    28         */
    29        config UInt baseAddr;
    30
    31        /*!
    32         *  ======== intNum ========
    33         *  Interrupt source number
    34         *
    35         */
    36        config UInt intNum;
    37    }
    38    /*
    39     *  @(#) ti.catalog.arm.peripherals.timers; 1,0,0,183; 8-17-2012 22:13:19; /db/ztree/library/trees/platform/platform-n27x/src/
    40     */
    41


package ti.catalog.arp32
index URL

Package of devices for the arp32 family of DSPs

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/arp32/package.xdc
requires xdc.platform;
package ti.catalog.arp32 [1, 0, 0, 0] {
    module Arctic;
    // The Arctic device data sheet module
    module TMS320C6A8149;
    // The TMS320C6A8149 device data sheet module
    module Vayu;
    // The Vayu device data sheet module
}
generated on Thu, 08 Nov 2012 02:15:22 GMT


package ti.catalog.arp32

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14
    15    /*!
    16     *  ======== ti.catalog.arp32 ========
    17     *  Package of devices for the arp32 family of DSPs.
    18     *
    19     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    20     *  interface.  This interface is used by platforms (modules that implement
    21     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    22     */
    23    package ti.catalog.arp32 [1,0,0,0] {
    24        module TMS320C6A8149;
    25        module Arctic;
    26        module Vayu;
    27    }
    28    /*
    29     *  @(#) ti.catalog.arp32; 1, 0, 0, 0,60; 8-17-2012 22:13:20; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.arp32.Arctic

metaonly module ti.catalog.arp32.Arctic
index URL

The Arctic device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arp32/Arctic.xdc
var Arctic = xdc.useModule('ti.catalog.arp32.Arctic');
per-instance config parameters
    var params = new Arctic.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "ARP32";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "DMEM",
                {
                    comment: "32KB data memory",
                    name: "DMEM",
                    base: 0x40020000,
                    len: 0x8000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "WBUF",
                {
                    comment: "VCOP work buffer",
                    name: "WBUF",
                    base: 0x40040000,
                    len: 0x8000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFLA",
                {
                    comment: "Image buffer low copy A",
                    name: "IBUFLA",
                    base: 0x40050000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFHA",
                {
                    comment: "Image buffer high copy A",
                    name: "IBUFHA",
                    base: 0x40054000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFLB",
                {
                    comment: "Image buffer low copy B",
                    name: "IBUFLB",
                    base: 0x40070000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFHB",
                {
                    comment: "Image buffer high copy B",
                    name: "IBUFHB",
                    base: 0x40074000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "L3MEM",
                {
                    comment: "1MB L3 Memory",
                    name: "L3MEM",
                    base: 0x40300000,
                    len: 0x00100000,
                    space: "code/data",
                    page: 1,
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Arctic.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Arctic.Params;
// Instance config-params object
    params.cpuCore = String "ARP32";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "DMEM",
            {
                comment: "32KB data memory",
                name: "DMEM",
                base: 0x40020000,
                len: 0x8000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "WBUF",
            {
                comment: "VCOP work buffer",
                name: "WBUF",
                base: 0x40040000,
                len: 0x8000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFLA",
            {
                comment: "Image buffer low copy A",
                name: "IBUFLA",
                base: 0x40050000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFHA",
            {
                comment: "Image buffer high copy A",
                name: "IBUFHA",
                base: 0x40054000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFLB",
            {
                comment: "Image buffer low copy B",
                name: "IBUFLB",
                base: 0x40070000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFHB",
            {
                comment: "Image buffer high copy B",
                name: "IBUFHB",
                base: 0x40074000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "L3MEM",
            {
                comment: "1MB L3 Memory",
                name: "L3MEM",
                base: 0x40300000,
                len: 0x00100000,
                space: "code/data",
                page: 1,
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Arctic.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.cpuCore = String "ARP32";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Arctic.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.cpuCoreRevision = String "1.0";
config Arctic.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.dataWordSize = Int 4;
config Arctic.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.deviceHeader = String undefined;
config Arctic.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DMEM",
        {
            comment: "32KB data memory",
            name: "DMEM",
            base: 0x40020000,
            len: 0x8000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "WBUF",
        {
            comment: "VCOP work buffer",
            name: "WBUF",
            base: 0x40040000,
            len: 0x8000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFLA",
        {
            comment: "Image buffer low copy A",
            name: "IBUFLA",
            base: 0x40050000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFHA",
        {
            comment: "Image buffer high copy A",
            name: "IBUFHA",
            base: 0x40054000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFLB",
        {
            comment: "Image buffer low copy B",
            name: "IBUFLB",
            base: 0x40070000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFHB",
        {
            comment: "Image buffer high copy B",
            name: "IBUFHB",
            base: 0x40074000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "L3MEM",
        {
            comment: "1MB L3 Memory",
            name: "L3MEM",
            base: 0x40300000,
            len: 0x00100000,
            space: "code/data",
            page: 1,
            access: "RWX"
        }
    ]
];
config Arctic.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.minDataUnitSize = Int 1;
config Arctic.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.minProgUnitSize = Int 1;
config Arctic.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Arctic.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Arctic.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Arctic.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Arctic.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:22 GMT


module ti.catalog.arp32.Arctic

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Arctic.xdc ========
    15     */
    16
    17    package ti.catalog.arp32;
    18
    19    /*!
    20     *  ======== Arctic ========
    21     *  The Arctic device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     *
    26     */
    27    metaonly module Arctic inherits ti.catalog.ICpuDataSheet
    28    {
    29    instance:
    30        override config string cpuCore           = "ARP32";
    31        override config string isa               = "arp32";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string]  = [
    42
    43            ["DMEM", {
    44                comment: "32KB data memory",
    45                name: "DMEM",
    46                base: 0x40020000,
    47                len:  0x8000,
    48                space: "data",
    49                page: 1,
    50                access: "RW"
    51            }],
    52
    53            ["WBUF", {
    54                comment: "VCOP work buffer",
    55                name: "WBUF",
    56                base: 0x40040000,
    57                len:  0x8000,
    58                space: "data",
    59                page: 1,
    60                access: "RW"
    61            }],
    62
    63            ["IBUFLA", {
    64                comment: "Image buffer low copy A",
    65                name: "IBUFLA",
    66                base: 0x40050000,
    67                len:  0x4000,
    68                space: "data",
    69                page: 1,
    70                access: "RW"
    71            }],
    72
    73            ["IBUFHA", {
    74                comment: "Image buffer high copy A",
    75                name: "IBUFHA",
    76                base: 0x40054000,
    77                len:  0x4000,
    78                space: "data",
    79                page: 1,
    80                access: "RW"
    81            }],
    82
    83            ["IBUFLB", {
    84                comment: "Image buffer low copy B",
    85                name: "IBUFLB",
    86                base: 0x40070000,
    87                len:  0x4000,
    88                space: "data",
    89                page: 1,
    90                access: "RW"
    91            }],
    92
    93            ["IBUFHB", {
    94                comment: "Image buffer high copy B",
    95                name: "IBUFHB",
    96                base: 0x40074000,
    97                len:  0x4000,
    98                space: "data",
    99                page: 1,
   100                access: "RW"
   101            }],
   102
   103            ["L3MEM", {
   104                comment:    "1MB L3 Memory",
   105                name:       "L3MEM",
   106                base:       0x40300000,
   107                len:        0x00100000,
   108                space:      "code/data",
   109                page: 1,
   110                access:     "RWX"
   111            }],
   112        ];
   113    };
   114    /*
   115     *  @(#) ti.catalog.arp32; 1, 0, 0, 0,60; 8-17-2012 22:13:20; /db/ztree/library/trees/platform/platform-n27x/src/
   116     */
   117


module ti.catalog.arp32.TMS320C6A8149

metaonly module ti.catalog.arp32.TMS320C6A8149
index URL

The TMS320C6A8149 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arp32/TMS320C6A8149.xdc
var TMS320C6A8149 = xdc.useModule('ti.catalog.arp32.TMS320C6A8149');
per-instance config parameters
    var params = new TMS320C6A8149.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "ARP32";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "DMEM",
                {
                    comment: "32KB data memory",
                    name: "DMEM",
                    base: 0x40020000,
                    len: 0x8000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "WBUF",
                {
                    comment: "VCOP work buffer",
                    name: "WBUF",
                    base: 0x40040000,
                    len: 0x8000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFLA",
                {
                    comment: "Image buffer low copy A",
                    name: "IBUFLA",
                    base: 0x40050000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFHA",
                {
                    comment: "Image buffer high copy A",
                    name: "IBUFHA",
                    base: 0x40054000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFLB",
                {
                    comment: "Image buffer low copy B",
                    name: "IBUFLB",
                    base: 0x40070000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFHB",
                {
                    comment: "Image buffer high copy B",
                    name: "IBUFHB",
                    base: 0x40074000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "OCMC",
                {
                    comment: "128KB L3 OCMC Memory",
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x00020000,
                    space: "code/data",
                    page: 1,
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6A8149.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
// Instance config-params object
    params.cpuCore = String "ARP32";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "DMEM",
            {
                comment: "32KB data memory",
                name: "DMEM",
                base: 0x40020000,
                len: 0x8000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "WBUF",
            {
                comment: "VCOP work buffer",
                name: "WBUF",
                base: 0x40040000,
                len: 0x8000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFLA",
            {
                comment: "Image buffer low copy A",
                name: "IBUFLA",
                base: 0x40050000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFHA",
            {
                comment: "Image buffer high copy A",
                name: "IBUFHA",
                base: 0x40054000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFLB",
            {
                comment: "Image buffer low copy B",
                name: "IBUFLB",
                base: 0x40070000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFHB",
            {
                comment: "Image buffer high copy B",
                name: "IBUFHB",
                base: 0x40074000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "OCMC",
            {
                comment: "128KB L3 OCMC Memory",
                name: "OCMC",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                page: 1,
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6A8149.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.cpuCore = String "ARP32";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6A8149.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6A8149.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.dataWordSize = Int 4;
config TMS320C6A8149.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.deviceHeader = String undefined;
config TMS320C6A8149.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DMEM",
        {
            comment: "32KB data memory",
            name: "DMEM",
            base: 0x40020000,
            len: 0x8000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "WBUF",
        {
            comment: "VCOP work buffer",
            name: "WBUF",
            base: 0x40040000,
            len: 0x8000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFLA",
        {
            comment: "Image buffer low copy A",
            name: "IBUFLA",
            base: 0x40050000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFHA",
        {
            comment: "Image buffer high copy A",
            name: "IBUFHA",
            base: 0x40054000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFLB",
        {
            comment: "Image buffer low copy B",
            name: "IBUFLB",
            base: 0x40070000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFHB",
        {
            comment: "Image buffer high copy B",
            name: "IBUFHB",
            base: 0x40074000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "OCMC",
        {
            comment: "128KB L3 OCMC Memory",
            name: "OCMC",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            page: 1,
            access: "RWX"
        }
    ]
];
config TMS320C6A8149.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6A8149.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6A8149.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6A8149.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6A8149.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6A8149.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:22 GMT


module ti.catalog.arp32.TMS320C6A8149

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6A8149.xdc ========
    15     */
    16
    17    package ti.catalog.arp32;
    18
    19    /*!
    20     *  ======== TMS320C6A8149 ========
    21     *  The TMS320C6A8149 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     *
    26     */
    27    metaonly module TMS320C6A8149 inherits ti.catalog.ICpuDataSheet
    28    {
    29    instance:
    30        override config string cpuCore           = "ARP32";
    31        override config string isa               = "arp32";
    32        override config string cpuCoreRevision   = "1.0";
    33        override config int    minProgUnitSize   = 1;
    34        override config int    minDataUnitSize   = 1;
    35        override config int    dataWordSize      = 4;
    36
    37        /*!
    38         *  ======== memMap ========
    39         *  The memory map returned be getMemoryMap().
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string]  = [
    42
    43            ["DMEM", {
    44                comment: "32KB data memory",
    45                name: "DMEM",
    46                base: 0x40020000,
    47                len:  0x8000,
    48                space: "data",
    49                page: 1,
    50                access: "RW"
    51            }],
    52
    53            ["WBUF", {
    54                comment: "VCOP work buffer",
    55                name: "WBUF",
    56                base: 0x40040000,
    57                len:  0x8000,
    58                space: "data",
    59                page: 1,
    60                access: "RW"
    61            }],
    62
    63            ["IBUFLA", {
    64                comment: "Image buffer low copy A",
    65                name: "IBUFLA",
    66                base: 0x40050000,
    67                len:  0x4000,
    68                space: "data",
    69                page: 1,
    70                access: "RW"
    71            }],
    72
    73            ["IBUFHA", {
    74                comment: "Image buffer high copy A",
    75                name: "IBUFHA",
    76                base: 0x40054000,
    77                len:  0x4000,
    78                space: "data",
    79                page: 1,
    80                access: "RW"
    81            }],
    82
    83            ["IBUFLB", {
    84                comment: "Image buffer low copy B",
    85                name: "IBUFLB",
    86                base: 0x40070000,
    87                len:  0x4000,
    88                space: "data",
    89                page: 1,
    90                access: "RW"
    91            }],
    92
    93            ["IBUFHB", {
    94                comment: "Image buffer high copy B",
    95                name: "IBUFHB",
    96                base: 0x40074000,
    97                len:  0x4000,
    98                space: "data",
    99                page: 1,
   100                access: "RW"
   101            }],
   102
   103            ["OCMC", {
   104                comment:    "128KB L3 OCMC Memory",
   105                name:       "OCMC",
   106                base:       0x40300000,
   107                len:        0x00020000,
   108                space:      "code/data",
   109                page: 1,
   110                access:     "RWX"
   111            }],
   112        ];
   113    };
   114    /*
   115     *  @(#) ti.catalog.arp32; 1, 0, 0, 0,60; 8-17-2012 22:13:20; /db/ztree/library/trees/platform/platform-n27x/src/
   116     */
   117


module ti.catalog.arp32.Vayu

metaonly module ti.catalog.arp32.Vayu
index URL

The Vayu device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/arp32/Vayu.xdc
var Vayu = xdc.useModule('ti.catalog.arp32.Vayu');
per-instance config parameters
    var params = new Vayu.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "ARP32";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The memory map returned be getMemoryMap() = IPlatform.Memory[string] [
            [
                "DMEM",
                {
                    comment: "32KB data memory",
                    name: "DMEM",
                    base: 0x40020000,
                    len: 0x8000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "WBUF",
                {
                    comment: "VCOP work buffer",
                    name: "WBUF",
                    base: 0x40040000,
                    len: 0x8000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFLA",
                {
                    comment: "Image buffer low copy A",
                    name: "IBUFLA",
                    base: 0x40050000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFHA",
                {
                    comment: "Image buffer high copy A",
                    name: "IBUFHA",
                    base: 0x40054000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFLB",
                {
                    comment: "Image buffer low copy B",
                    name: "IBUFLB",
                    base: 0x40070000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ],
            [
                "IBUFHB",
                {
                    comment: "Image buffer high copy B",
                    name: "IBUFHB",
                    base: 0x40074000,
                    len: 0x4000,
                    space: "data",
                    page: 1,
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Vayu.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Vayu.Params;
// Instance config-params object
    params.cpuCore = String "ARP32";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The memory map returned be getMemoryMap()
        [
            "DMEM",
            {
                comment: "32KB data memory",
                name: "DMEM",
                base: 0x40020000,
                len: 0x8000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "WBUF",
            {
                comment: "VCOP work buffer",
                name: "WBUF",
                base: 0x40040000,
                len: 0x8000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFLA",
            {
                comment: "Image buffer low copy A",
                name: "IBUFLA",
                base: 0x40050000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFHA",
            {
                comment: "Image buffer high copy A",
                name: "IBUFHA",
                base: 0x40054000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFLB",
            {
                comment: "Image buffer low copy B",
                name: "IBUFLB",
                base: 0x40070000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ],
        [
            "IBUFHB",
            {
                comment: "Image buffer high copy B",
                name: "IBUFHB",
                base: 0x40074000,
                len: 0x4000,
                space: "data",
                page: 1,
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Vayu.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.cpuCore = String "ARP32";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Vayu.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.cpuCoreRevision = String "1.0";
config Vayu.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.dataWordSize = Int 4;
config Vayu.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.deviceHeader = String undefined;
config Vayu.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DMEM",
        {
            comment: "32KB data memory",
            name: "DMEM",
            base: 0x40020000,
            len: 0x8000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "WBUF",
        {
            comment: "VCOP work buffer",
            name: "WBUF",
            base: 0x40040000,
            len: 0x8000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFLA",
        {
            comment: "Image buffer low copy A",
            name: "IBUFLA",
            base: 0x40050000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFHA",
        {
            comment: "Image buffer high copy A",
            name: "IBUFHA",
            base: 0x40054000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFLB",
        {
            comment: "Image buffer low copy B",
            name: "IBUFLB",
            base: 0x40070000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ],
    [
        "IBUFHB",
        {
            comment: "Image buffer high copy B",
            name: "IBUFHB",
            base: 0x40074000,
            len: 0x4000,
            space: "data",
            page: 1,
            access: "RW"
        }
    ]
];
config Vayu.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.minDataUnitSize = Int 1;
config Vayu.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.minProgUnitSize = Int 1;
config Vayu.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Vayu.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Vayu.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Vayu.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Vayu.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:22 GMT


module ti.catalog.arp32.Vayu

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Vayu.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.arp32;
    19
    20    /*!
    21     *  ======== Vayu ========
    22     *  The Vayu device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     *
    27     */
    28    metaonly module Vayu inherits ti.catalog.ICpuDataSheet
    29    {
    30    instance:
    31        override config string cpuCore           = "ARP32";
    32        override config string isa               = "arp32";
    33        override config string cpuCoreRevision   = "1.0";
    34        override config int    minProgUnitSize   = 1;
    35        override config int    minDataUnitSize   = 1;
    36        override config int    dataWordSize      = 4;
    37
    38        /*!
    39         *  ======== memMap ========
    40         *  The memory map returned be getMemoryMap().
    41         */
    42        config xdc.platform.IPlatform.Memory memMap[string]  = [
    43
    44            ["DMEM", {
    45                comment: "32KB data memory",
    46                name: "DMEM",
    47                base: 0x40020000,
    48                len:  0x8000,
    49                space: "data",
    50                page: 1,
    51                access: "RW"
    52            }],
    53
    54            ["WBUF", {
    55                comment: "VCOP work buffer",
    56                name: "WBUF",
    57                base: 0x40040000,
    58                len:  0x8000,
    59                space: "data",
    60                page: 1,
    61                access: "RW"
    62            }],
    63
    64            ["IBUFLA", {
    65                comment: "Image buffer low copy A",
    66                name: "IBUFLA",
    67                base: 0x40050000,
    68                len:  0x4000,
    69                space: "data",
    70                page: 1,
    71                access: "RW"
    72            }],
    73
    74            ["IBUFHA", {
    75                comment: "Image buffer high copy A",
    76                name: "IBUFHA",
    77                base: 0x40054000,
    78                len:  0x4000,
    79                space: "data",
    80                page: 1,
    81                access: "RW"
    82            }],
    83
    84            ["IBUFLB", {
    85                comment: "Image buffer low copy B",
    86                name: "IBUFLB",
    87                base: 0x40070000,
    88                len:  0x4000,
    89                space: "data",
    90                page: 1,
    91                access: "RW"
    92            }],
    93
    94            ["IBUFHB", {
    95                comment: "Image buffer high copy B",
    96                name: "IBUFHB",
    97                base: 0x40074000,
    98                len:  0x4000,
    99                space: "data",
   100                page: 1,
   101                access: "RW"
   102            }]
   103        ];
   104    };
   105    /*
   106     *  @(#) ti.catalog.arp32; 1, 0, 0, 0,60; 8-17-2012 22:13:20; /db/ztree/library/trees/platform/platform-n27x/src/
   107     */
   108


package ti.catalog.c2800
index URL

Package of devices for the c2800 family of DSPs

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/c2800/package.xdc
requires xdc.platform;
package ti.catalog.c2800 [1, 0, 0, 0] {
    interface ITMS320C28026;
    // The C28026 device data sheet module
    interface ITMS320C28027;
    // The C28027 device data sheet module
    interface ITMS320C28032;
    // The C28032 device data sheet module
    interface ITMS320C28034;
    // The C28034 device data sheet module
    interface ITMS320C28342;
    // The C28342 device data sheet module
    interface ITMS320C28344;
    // The C28344 device data sheet module
    interface ITMS320C28346;
    // The C28346 device data sheet module
    interface ITMS320C283xx;
    // An interface implemented by all TMS320C28xx devices
    interface ITMS320C28xx;
    // An interface implemented by all TMS320C28xx devices
    interface ITMS320F28065;
    interface ITMS320F28069;
    module F28M35x;
    // The F28M35x device data sheet module
    module TMS320C2801;
    // The C2801 device data sheet module
    module TMS320C28015;
    // The C28015 device data sheet module
    module TMS320C28016;
    // The C28016 device data sheet module
    module TMS320C2802;
    // The C2802 device data sheet module
    module TMS320C28020;
    // The C28020 device data sheet module
    module TMS320C28021;
    // The C28021 device data sheet module
    module TMS320C28022;
    module TMS320C28023;
    module TMS320C28026;
    module TMS320C28027;
    module TMS320C28030;
    // The C28030 device data sheet module
    module TMS320C28031;
    // The C28031 device data sheet module
    module TMS320C28032;
    module TMS320C28033;
    module TMS320C28034;
    module TMS320C28035;
    module TMS320C28044;
    // The C28044 device data sheet module
    module TMS320C2806;
    // The C2806 device data sheet module
    module TMS320C2808;
    // The C2808 device data sheet module
    module TMS320C2809;
    // The C2809 device data sheet module
    module TMS320C2810;
    // The C2810 device data sheet module
    module TMS320C2811;
    // The C2811 device data sheet module
    module TMS320C2812;
    // The C2812 device data sheet module
    module TMS320C28232;
    // The 28232 device data sheet module
    module TMS320C28234;
    // The 28234 device data sheet module
    module TMS320C28235;
    // The C28235 device data sheet module
    module TMS320C28332;
    // The C28332 device data sheet module
    module TMS320C28334;
    // The C28334 device data sheet module
    module TMS320C28335;
    // The C28335 device data sheet module
    module TMS320C28341;
    module TMS320C28342;
    module TMS320C28343;
    module TMS320C28344;
    module TMS320C28345;
    module TMS320C28346;
    module TMS320F28062;
    // The F28062 device data sheet module
    module TMS320F28063;
    // The F28063 device data sheet module
    module TMS320F28064;
    // The F28064 device data sheet module
    module TMS320F28065;
    // The F28065 device data sheet module
    module TMS320F28066;
    // The F28066 device data sheet module
    module TMS320F28067;
    // The F28067 device data sheet module
    module TMS320F28068;
    // The F28068 device data sheet module
    module TMS320F28069;
    // The F28069 device data sheet module
}
generated on Thu, 08 Nov 2012 02:15:32 GMT


package ti.catalog.c2800

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14
    15    /*!
    16     *  ======== ti.catalog.c2800 ========
    17     *  Package of devices for the c2800 family of DSPs.
    18     *
    19     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    20     *  interface. This interface is used by platforms (modules that implement
    21     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    22     */
    23    package ti.catalog.c2800 [1,0,0,0] {
    24        interface ITMS320C28xx,ITMS320C283xx;
    25
    26        module TMS320C2801, TMS320C2802, TMS320C2806, TMS320C2808, TMS320C2809;
    27        module TMS320C2810, TMS320C2811, TMS320C2812, TMS320C28015, TMS320C28016;
    28        module TMS320C28232, TMS320C28234, TMS320C28235;
    29        module TMS320C28332, TMS320C28334, TMS320C28335;
    30
    31        /* Piccolo Devices */
    32        module TMS320C28020, TMS320C28021;
    33        interface ITMS320C28026;
    34        module TMS320C28022, TMS320C28026;
    35        interface ITMS320C28027;
    36        module TMS320C28023, TMS320C28027;
    37
    38        /* Piccolo-B Devices */
    39        module TMS320C28030, TMS320C28031;
    40        interface ITMS320C28032;
    41        module TMS320C28032, TMS320C28033;
    42        interface ITMS320C28034;
    43        module TMS320C28034, TMS320C28035;
    44
    45        module TMS320C28044;
    46
    47        /* Delfino Devices */
    48        interface ITMS320C28342;
    49        module TMS320C28341, TMS320C28342;
    50        interface ITMS320C28344;
    51        module TMS320C28343, TMS320C28344;
    52        interface ITMS320C28346;
    53        module TMS320C28345, TMS320C28346;
    54
    55        /* Octave Devices */
    56        module TMS320F28062, TMS320F28063;
    57        interface ITMS320F28065;
    58        module TMS320F28064, TMS320F28065;
    59        module TMS320F28066;
    60        interface ITMS320F28069;
    61        module TMS320F28067, TMS320F28068, TMS320F28069;
    62
    63        module F28M35x;
    64    }
    65    /*
    66     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


module ti.catalog.c2800.F28M35x

metaonly module ti.catalog.c2800.F28M35x
index URL

The F28M35x device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/F28M35x.xdc
var F28M35x = xdc.useModule('ti.catalog.c2800.F28M35x');
per-instance config parameters
    var params = new F28M35x.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "M01SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "M01SARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 1,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 0,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x4000,
                    page: 1,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "S07SHRAM",
                {
                    comment: "On-Chip Shared RAM Memory",
                    name: "S07SHRAM",
                    base: 0xC000,
                    len: 0x8000,
                    page: 1,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "CTOMMSGRAM",
                {
                    comment: "C28 to M3 MSG RAM Memory",
                    name: "CTOMMSGRAM",
                    base: 0x3F800,
                    len: 0x00400,
                    page: 1,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MTOCMSGRAM",
                {
                    comment: "M3 to C28 MSG RAM Memory",
                    name: "MTOCMSGRAM",
                    base: 0x3FC00,
                    len: 0x00400,
                    page: 1,
                    space: "data",
                    access: "R"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x240400,
                    len: 0x000400,
                    page: 0,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "256K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x100000,
                    len: 0x03fffe,
                    page: 0,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "Used for Flash boot",
                    name: "BEGIN",
                    base: 0x13fffe,
                    len: 0x000002,
                    page: 0,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3f8000,
                    len: 0x008000,
                    page: 0,
                    space: "code",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = F28M35x.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new F28M35x.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "M01SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "M01SARAM",
                base: 0x0,
                len: 0x800,
                page: 1,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 0,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x4000,
                page: 1,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "S07SHRAM",
            {
                comment: "On-Chip Shared RAM Memory",
                name: "S07SHRAM",
                base: 0xC000,
                len: 0x8000,
                page: 1,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "CTOMMSGRAM",
            {
                comment: "C28 to M3 MSG RAM Memory",
                name: "CTOMMSGRAM",
                base: 0x3F800,
                len: 0x00400,
                page: 1,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MTOCMSGRAM",
            {
                comment: "M3 to C28 MSG RAM Memory",
                name: "MTOCMSGRAM",
                base: 0x3FC00,
                len: 0x00400,
                page: 1,
                space: "data",
                access: "R"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x240400,
                len: 0x000400,
                page: 0,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "256K X 16 Flash memory",
                name: "FLASH",
                base: 0x100000,
                len: 0x03fffe,
                page: 0,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "BEGIN",
            {
                comment: "Used for Flash boot",
                name: "BEGIN",
                base: 0x13fffe,
                len: 0x000002,
                page: 0,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3f8000,
                len: 0x008000,
                page: 0,
                space: "code",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config F28M35x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config F28M35x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.cpuCoreRevision = String "1.0";
config F28M35x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.dataWordSize = Int 2;
config F28M35x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.deviceHeader = String undefined;
config F28M35x.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "M01SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "M01SARAM",
            base: 0x0,
            len: 0x800,
            page: 1,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 0,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x4000,
            page: 1,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "S07SHRAM",
        {
            comment: "On-Chip Shared RAM Memory",
            name: "S07SHRAM",
            base: 0xC000,
            len: 0x8000,
            page: 1,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "CTOMMSGRAM",
        {
            comment: "C28 to M3 MSG RAM Memory",
            name: "CTOMMSGRAM",
            base: 0x3F800,
            len: 0x00400,
            page: 1,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MTOCMSGRAM",
        {
            comment: "M3 to C28 MSG RAM Memory",
            name: "MTOCMSGRAM",
            base: 0x3FC00,
            len: 0x00400,
            page: 1,
            space: "data",
            access: "R"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x240400,
            len: 0x000400,
            page: 0,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "256K X 16 Flash memory",
            name: "FLASH",
            base: 0x100000,
            len: 0x03fffe,
            page: 0,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "BEGIN",
        {
            comment: "Used for Flash boot",
            name: "BEGIN",
            base: 0x13fffe,
            len: 0x000002,
            page: 0,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3f8000,
            len: 0x008000,
            page: 0,
            space: "code",
            access: "RX"
        }
    ]
];
config F28M35x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.minDataUnitSize = Int 1;
config F28M35x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.minProgUnitSize = Int 2;
config F28M35x.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new F28M35x.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new F28M35x.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = F28M35x.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
F28M35x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
F28M35x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


module ti.catalog.c2800.F28M35x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== F28M35x.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== F28M35x ========
    21     *  The F28M35x device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module F28M35x inherits ITMS320C283xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["M01SARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "M01SARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 1,
    42                space: "code/data",
    43                access: "RWX"
    44            }],
    45
    46            ["PIEVECT", {
    47                comment: "On-Chip PIEVECT RAM Memory",
    48                name: "PIEVECT",
    49                base: 0xD00,
    50                len:  0x100,
    51                page: 0,
    52                space: "data",
    53                access: "RW"
    54            }],
    55
    56            ["L03SARAM", {
    57                comment: "On-Chip RAM Memory",
    58                name: "L03SARAM",
    59                base: 0x8000,
    60                len:  0x4000,
    61                page: 1,
    62                space: "code/data",
    63                access: "RWX"
    64            }],
    65
    66            ["S07SHRAM", {
    67                comment: "On-Chip Shared RAM Memory",
    68                name: "S07SHRAM",
    69                base: 0xC000,
    70                len:  0x8000,
    71                page: 1,
    72                space: "code/data",
    73                access: "RWX"
    74            }],
    75
    76            ["CTOMMSGRAM", {
    77                comment: "C28 to M3 MSG RAM Memory",
    78                name: "CTOMMSGRAM",
    79                base: 0x3F800,
    80                len:  0x00400,
    81                page: 1,
    82                space: "data",
    83                access: "RW"
    84            }],
    85
    86            ["MTOCMSGRAM", {
    87                comment: "M3 to C28 MSG RAM Memory",
    88                name: "MTOCMSGRAM",
    89                base: 0x3FC00,
    90                len:  0x00400,
    91                page: 1,
    92                space: "data",
    93                access: "R"
    94            }],
    95
    96            ["OTP", {
    97                comment: "1K X 16 OTP memory",
    98                name: "OTP",
    99                base: 0x240400,
   100                len:  0x000400,
   101                page: 0,
   102                space: "code",
   103                access: "RWX"
   104            }],
   105
   106            ["FLASH", {
   107                comment: "256K X 16 Flash memory",
   108                name: "FLASH",
   109                base: 0x100000,
   110                len:  0x03fffe,
   111                page: 0,
   112                space: "code/data",
   113                access: "RWX"
   114            }],
   115
   116            ["BEGIN", {
   117                comment: "Used for Flash boot",
   118                name: "BEGIN",
   119                base: 0x13fffe,
   120                len:  0x000002,
   121                page: 0,
   122                space: "code/data",
   123                access: "RWX"
   124            }],
   125
   126            ["BOOTROM", {
   127                comment: "On-Chip Boot ROM",
   128                name: "BOOTROM",
   129                base: 0x3f8000,
   130                len:  0x008000,
   131                page: 0,
   132                space: "code",
   133                access: "RX"
   134            }],
   135        ];
   136    };
   137    /*
   138     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   139     */
   140


interface ti.catalog.c2800.ITMS320C28026

metaonly interface ti.catalog.c2800.ITMS320C28026
index URL

The C28026 device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c2800/ITMS320C28026.xdc
metaonly interface ITMS320C28026 { ...
// inherits ti.catalog.c2800.ITMS320C28xx
    // inherits ti.catalog.ICpuDataSheet
        // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
package ti.catalog.c2800;
metaonly interface ITMS320C28026 inherits ITMS320C28xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "L0 SARAM (4K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "16K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f4000,
                len: 0x003f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C28026.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C28026.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C28026.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
override config Int dataWordSize = 2;
config ITMS320C28026.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
config String deviceHeader;
config ITMS320C28026.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
config IPlatform.Memory memMap[string] = [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "L0 SARAM (4K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "16K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f4000,
            len: 0x003f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config ITMS320C28026.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
override config Int minDataUnitSize = 1;
config ITMS320C28026.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
override config Int minProgUnitSize = 2;
config ITMS320C28026.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C28026.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C28026.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28026.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:27 GMT


interface ti.catalog.c2800.ITMS320C28026

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28026.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== ITMS320C28026 ========
    20     *  The C28026 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly interface ITMS320C28026 inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["LSARAM", {
    54                comment: "L0 SARAM (4K x 16)",
    55                name: "LSARAM",
    56                base: 0x8000,
    57                len:  0x1000,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["FLASH", {
    63                comment: "16K X 16 Flash memory",
    64                name: "FLASH",
    65                base: 0x3f4000,
    66                len:  0x003f80,
    67                page: 0,
    68                space: "code"
    69            }],
    70
    71            ["BEGIN", {
    72                comment: "FLASH boot entry point",
    73                name: "BEGIN",
    74                base: 0x3f7ff6,
    75                len:  0x000002,
    76                page: 0,
    77                space: "code"
    78            }],
    79
    80            ["BOOTROM", {
    81                comment: "On-Chip Boot ROM",
    82                name: "BOOTROM",
    83                base: 0x3fe000,
    84                len:  0x001fc0,
    85                page: 0,
    86                space: "code"
    87            }],
    88        ];
    89    }
    90    /*
    91     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    92     */
    93


interface ti.catalog.c2800.ITMS320C28027

metaonly interface ti.catalog.c2800.ITMS320C28027
index URL

The C28027 device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c2800/ITMS320C28027.xdc
metaonly interface ITMS320C28027 { ...
// inherits ti.catalog.c2800.ITMS320C28xx
    // inherits ti.catalog.ICpuDataSheet
        // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
package ti.catalog.c2800;
metaonly interface ITMS320C28027 inherits ITMS320C28xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "L0 SARAM (4K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f0000,
                len: 0x007f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C28027.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C28027.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C28027.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
override config Int dataWordSize = 2;
config ITMS320C28027.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
config String deviceHeader;
config ITMS320C28027.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
config IPlatform.Memory memMap[string] = [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "L0 SARAM (4K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f0000,
            len: 0x007f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config ITMS320C28027.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
override config Int minDataUnitSize = 1;
config ITMS320C28027.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
override config Int minProgUnitSize = 2;
config ITMS320C28027.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C28027.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C28027.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28027.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:27 GMT


interface ti.catalog.c2800.ITMS320C28027

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28027.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== ITMS320C28027 ========
    20     *  The C28027 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly interface ITMS320C28027 inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["LSARAM", {
    54                comment: "L0 SARAM (4K x 16)",
    55                name: "LSARAM",
    56                base: 0x8000,
    57                len:  0x1000,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["FLASH", {
    63                comment: "32K X 16 Flash memory",
    64                name: "FLASH",
    65                base: 0x3f0000,
    66                len:  0x007f80,
    67                page: 0,
    68                space: "code"
    69            }],
    70
    71            ["BEGIN", {
    72                comment: "FLASH boot entry point",
    73                name: "BEGIN",
    74                base: 0x3f7ff6,
    75                len:  0x000002,
    76                page: 0,
    77                space: "code"
    78            }],
    79            ["BOOTROM", {
    80                comment: "On-Chip Boot ROM",
    81                name: "BOOTROM",
    82                base: 0x3fe000,
    83                len:  0x001fc0,
    84                page: 0,
    85                space: "code"
    86            }],
    87        ];
    88    }
    89    /*
    90     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    91     */
    92


interface ti.catalog.c2800.ITMS320C28032

metaonly interface ti.catalog.c2800.ITMS320C28032
index URL

The C28032 device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c2800/ITMS320C28032.xdc
metaonly interface ITMS320C28032 { ...
// inherits ti.catalog.c2800.ITMS320C28xx
    // inherits ti.catalog.ICpuDataSheet
        // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
package ti.catalog.c2800;
metaonly interface ITMS320C28032 inherits ITMS320C28xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "DPSARAM",
            {
                comment: "DPSARAM (6K x 16)",
                name: "DPSARAM",
                base: 0x8800,
                len: 0xa000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f0000,
                len: 0x007f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C28032.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C28032.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C28032.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
override config Int dataWordSize = 2;
config ITMS320C28032.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
config String deviceHeader;
config ITMS320C28032.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
config IPlatform.Memory memMap[string] = [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "DPSARAM",
        {
            comment: "DPSARAM (6K x 16)",
            name: "DPSARAM",
            base: 0x8800,
            len: 0xa000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f0000,
            len: 0x007f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config ITMS320C28032.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
override config Int minDataUnitSize = 1;
config ITMS320C28032.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
override config Int minProgUnitSize = 2;
config ITMS320C28032.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C28032.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C28032.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28032.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:27 GMT


interface ti.catalog.c2800.ITMS320C28032

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28032.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== ITMS320C28032 ========
    20     *  The C28032 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly interface ITMS320C28032 inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["LSARAM", {
    54                comment: "On-Chip RAM Memory",
    55                name: "LSARAM",
    56                base: 0x8000,
    57                len:  0x800,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["DPSARAM", {
    63                comment: "DPSARAM (6K x 16)",
    64                name: "DPSARAM",
    65                base: 0x8800,
    66                len:  0xa000,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["FLASH", {
    72                comment: "32K X 16 Flash memory",
    73                name: "FLASH",
    74                base: 0x3f0000,
    75                len:  0x007f80,
    76                page: 0,
    77                space: "code"
    78            }],
    79
    80            ["BEGIN", {
    81                comment: "FLASH boot entry point",
    82                name: "BEGIN",
    83                base: 0x3f7ff6,
    84                len:  0x000002,
    85                page: 0,
    86                space: "code"
    87            }],
    88
    89            ["BOOTROM", {
    90                comment: "On-Chip Boot ROM",
    91                name: "BOOTROM",
    92                base: 0x3fe000,
    93                len:  0x001fc0,
    94                page: 0,
    95                space: "code"
    96            }],
    97        ];
    98    }
    99    /*
   100     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   101     */
   102


interface ti.catalog.c2800.ITMS320C28034

metaonly interface ti.catalog.c2800.ITMS320C28034
index URL

The C28034 device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c2800/ITMS320C28034.xdc
metaonly interface ITMS320C28034 { ...
// inherits ti.catalog.c2800.ITMS320C28xx
    // inherits ti.catalog.ICpuDataSheet
        // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
package ti.catalog.c2800;
metaonly interface ITMS320C28034 inherits ITMS320C28xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "LSARAM (2K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x0800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "DPSARAM",
            {
                comment: "DPSARAM (6K x 16)",
                name: "DPSARAM",
                base: 0x8800,
                len: 0x1800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3e8000,
                len: 0x00ff80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C28034.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C28034.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C28034.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
override config Int dataWordSize = 2;
config ITMS320C28034.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
config String deviceHeader;
config ITMS320C28034.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
config IPlatform.Memory memMap[string] = [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "LSARAM (2K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x0800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "DPSARAM",
        {
            comment: "DPSARAM (6K x 16)",
            name: "DPSARAM",
            base: 0x8800,
            len: 0x1800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3e8000,
            len: 0x00ff80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config ITMS320C28034.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
override config Int minDataUnitSize = 1;
config ITMS320C28034.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
override config Int minProgUnitSize = 2;
config ITMS320C28034.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C28034.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C28034.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28034.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:27 GMT


interface ti.catalog.c2800.ITMS320C28034

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28034.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== ITMS320C28034 ========
    20     *  The C28034 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly interface ITMS320C28034 inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["LSARAM", {
    54                comment: "LSARAM (2K x 16)",
    55                name: "LSARAM",
    56                base: 0x8000,
    57                len:  0x0800,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["DPSARAM", {
    63                comment: "DPSARAM (6K x 16)",
    64                name: "DPSARAM",
    65                base: 0x8800,
    66                len:  0x1800,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["FLASH", {
    72                comment: "64K X 16 Flash memory",
    73                name: "FLASH",
    74                base: 0x3e8000,
    75                len:  0x00ff80,
    76                page: 0,
    77                space: "code"
    78            }],
    79
    80            ["BEGIN", {
    81                comment: "FLASH boot entry point",
    82                name: "BEGIN",
    83                base: 0x3f7ff6,
    84                len:  0x000002,
    85                page: 0,
    86                space: "code"
    87            }],
    88
    89            ["BOOTROM", {
    90                comment: "On-Chip Boot ROM",
    91                name: "BOOTROM",
    92                base: 0x3fe000,
    93                len:  0x001fc0,
    94                page: 0,
    95                space: "code"
    96            }],
    97        ];
    98    }
    99    /*
   100     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   101     */
   102


interface ti.catalog.c2800.ITMS320C28342

metaonly interface ti.catalog.c2800.ITMS320C28342
index URL

The C28342 device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c2800/ITMS320C28342.xdc
metaonly interface ITMS320C28342 { ...
// inherits ti.catalog.c2800.ITMS320C283xx
    // inherits ti.catalog.c2800.ITMS320C28xx
        // inherits ti.catalog.ICpuDataSheet
            // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
package ti.catalog.c2800;
metaonly interface ITMS320C28342 inherits ITMS320C283xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "H01SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H01SARAM",
                base: 0x300000,
                len: 0x010000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C28342.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C28342.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C28342.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
override config Int dataWordSize = 2;
config ITMS320C28342.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
config String deviceHeader;
config ITMS320C28342.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
config IPlatform.Memory memMap[string] = [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "H01SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H01SARAM",
            base: 0x300000,
            len: 0x010000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config ITMS320C28342.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
override config Int minDataUnitSize = 1;
config ITMS320C28342.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
override config Int minProgUnitSize = 2;
config ITMS320C28342.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C28342.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C28342.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28342.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


interface ti.catalog.c2800.ITMS320C28342

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28342.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320C28342 ========
    20     *  The C28342 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly interface ITMS320C28342 inherits ITMS320C283xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name:    "PIEVECT",
    48                base:    0xD00,
    49                len:     0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["L03SARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "L03SARAM",
    57                base: 0x8000,
    58                len:  0x8000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["H01SARAM", {
    64                comment: "On-Chip RAM Memory",
    65                name: "H01SARAM",
    66                base: 0x300000,
    67                len:  0x010000,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["BOOTROM", {
    73                comment: "On-Chip Boot ROM",
    74                name: "BOOTROM",
    75                base: 0x3fe000,
    76                len:  0x1fc0,
    77                page: 0,
    78                space: "code"
    79            }],
    80        ];
    81    }
    82    /*
    83     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    84     */
    85


interface ti.catalog.c2800.ITMS320C28344

metaonly interface ti.catalog.c2800.ITMS320C28344
index URL

The C28344 device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c2800/ITMS320C28344.xdc
metaonly interface ITMS320C28344 { ...
// inherits ti.catalog.c2800.ITMS320C283xx
    // inherits ti.catalog.c2800.ITMS320C28xx
        // inherits ti.catalog.ICpuDataSheet
            // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
package ti.catalog.c2800;
metaonly interface ITMS320C28344 inherits ITMS320C283xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0x10000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "H01SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H01SARAM",
                base: 0x300000,
                len: 0x010000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C28344.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C28344.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C28344.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
override config Int dataWordSize = 2;
config ITMS320C28344.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
config String deviceHeader;
config ITMS320C28344.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
config IPlatform.Memory memMap[string] = [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0x10000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "H01SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H01SARAM",
            base: 0x300000,
            len: 0x010000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config ITMS320C28344.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
override config Int minDataUnitSize = 1;
config ITMS320C28344.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
override config Int minProgUnitSize = 2;
config ITMS320C28344.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C28344.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C28344.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28344.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


interface ti.catalog.c2800.ITMS320C28344

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28344.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320C28344 ========
    20     *  The C28344 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly interface ITMS320C28344 inherits ITMS320C283xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["L03SARAM", {
    54                comment: "On-Chip RAM Memory",
    55                name: "L03SARAM",
    56                base: 0x8000,
    57                len:  0x8000,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["L47SARAM", {
    63                comment: "On-Chip RAM Memory",
    64                name: "L47SARAM",
    65                base: 0x10000,
    66                len:  0x8000,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["H01SARAM", {
    72                comment: "On-Chip RAM Memory",
    73                name: "H01SARAM",
    74                base: 0x300000,
    75                len:  0x010000,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["BOOTROM", {
    81                comment: "On-Chip Boot ROM",
    82                name: "BOOTROM",
    83                base: 0x3fe000,
    84                len:  0x1fc0,
    85                page: 0,
    86                space: "code"
    87            }],
    88        ];
    89    }
    90    /*
    91     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    92     */
    93


interface ti.catalog.c2800.ITMS320C28346

metaonly interface ti.catalog.c2800.ITMS320C28346
index URL

The C28346 device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c2800/ITMS320C28346.xdc
metaonly interface ITMS320C28346 { ...
// inherits ti.catalog.c2800.ITMS320C283xx
    // inherits ti.catalog.c2800.ITMS320C28xx
        // inherits ti.catalog.ICpuDataSheet
            // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
package ti.catalog.c2800;
metaonly interface ITMS320C28346 inherits ITMS320C283xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0x10000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "H05SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H05SARAM",
                base: 0x300000,
                len: 0x030000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C28346.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C28346.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C28346.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
override config Int dataWordSize = 2;
config ITMS320C28346.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
config String deviceHeader;
config ITMS320C28346.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
config IPlatform.Memory memMap[string] = [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0x10000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "H05SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H05SARAM",
            base: 0x300000,
            len: 0x030000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config ITMS320C28346.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
override config Int minDataUnitSize = 1;
config ITMS320C28346.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
override config Int minProgUnitSize = 2;
config ITMS320C28346.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C28346.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C28346.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28346.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


interface ti.catalog.c2800.ITMS320C28346

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28346.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320C28346 ========
    20     *  The C28346 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly interface ITMS320C28346 inherits ITMS320C283xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["L03SARAM", {
    54                comment: "On-Chip RAM Memory",
    55                name: "L03SARAM",
    56                base: 0x8000,
    57                len:  0x8000,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["L47SARAM", {
    63                comment: "On-Chip RAM Memory",
    64                name: "L47SARAM",
    65                base: 0x10000,
    66                len:  0x8000,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["H05SARAM", {
    72                comment: "On-Chip RAM Memory",
    73                name: "H05SARAM",
    74                base: 0x300000,
    75                len:  0x030000,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["BOOTROM", {
    81                comment: "On-Chip Boot ROM",
    82                name: "BOOTROM",
    83                base: 0x3fe000,
    84                len:  0x1fc0,
    85                page: 0,
    86                space: "code"
    87            }],
    88        ];
    89    };
    90    /*
    91     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    92     */
    93


interface ti.catalog.c2800.ITMS320C283xx

metaonly interface ti.catalog.c2800.ITMS320C283xx
index URL

An interface implemented by all TMS320C28xx devices

This interface is defined to factor common data about this family into a single place; all TMS320C28xx devices extend this interface.
XDCspec summary sourced in ti/catalog/c2800/ITMS320C283xx.xdc
metaonly interface ITMS320C283xx { ...
// inherits ti.catalog.c2800.ITMS320C28xx
    // inherits ti.catalog.ICpuDataSheet
        // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
package ti.catalog.c2800;
metaonly interface ITMS320C283xx inherits ITMS320C28xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C283xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C283xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
config String cpuCoreRevision;
config ITMS320C283xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
override config Int dataWordSize = 2;
config ITMS320C283xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
config String deviceHeader;
config ITMS320C283xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
override config Int minDataUnitSize = 1;
config ITMS320C283xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
override config Int minProgUnitSize = 2;
config ITMS320C283xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C283xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C283xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C283xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


interface ti.catalog.c2800.ITMS320C283xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C283xx.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== ITMS320C283xx ========
    20     *  An interface implemented by all TMS320C28xx devices.
    21     *
    22     *  This interface is defined to factor common data about this family into
    23     *  a single place; all TMS320C28xx devices extend this interface.
    24     */
    25    metaonly interface ITMS320C283xx inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   isa            = "28FP";
    29    };
    30    /*
    31     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


interface ti.catalog.c2800.ITMS320C28xx

metaonly interface ti.catalog.c2800.ITMS320C28xx
index URL

An interface implemented by all TMS320C28xx devices

This interface is defined to factor common data about this family into a single place; all TMS320C28xx devices extend this interface.
XDCspec summary sourced in ti/catalog/c2800/ITMS320C28xx.xdc
metaonly interface ITMS320C28xx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
package ti.catalog.c2800;
metaonly interface ITMS320C28xx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C28xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C28xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
config String cpuCoreRevision;
config ITMS320C28xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
override config Int dataWordSize = 2;
config ITMS320C28xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
config String deviceHeader;
config ITMS320C28xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
override config Int minDataUnitSize = 1;
config ITMS320C28xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
override config Int minProgUnitSize = 2;
config ITMS320C28xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C28xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C28xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320C28xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


interface ti.catalog.c2800.ITMS320C28xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28xx.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== ITMS320C28xx ========
    20     *  An interface implemented by all TMS320C28xx devices.
    21     *
    22     *  This interface is defined to factor common data about this family into
    23     *  a single place; all TMS320C28xx devices extend this interface.
    24     */
    25    metaonly interface ITMS320C28xx inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        override config string   cpuCore        = "2800";
    29        override config string   isa            = "28";
    30
    31        override config int     minProgUnitSize = 2;
    32        override config int     minDataUnitSize = 1;
    33        override config int     dataWordSize    = 2;
    34    };
    35    /*
    36     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    37     */
    38


interface ti.catalog.c2800.ITMS320F28065

metaonly interface ti.catalog.c2800.ITMS320F28065
index URL
XDCspec summary sourced in ti/catalog/c2800/ITMS320F28065.xdc
metaonly interface ITMS320F28065 { ...
// inherits ti.catalog.c2800.ITMS320C283xx
    // inherits ti.catalog.c2800.ITMS320C28xx
        // inherits ti.catalog.ICpuDataSheet
            // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
package ti.catalog.c2800;
metaonly interface ITMS320F28065 inherits ITMS320C283xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L56DPSARAM",
            {
                comment: "L5-L6 DPSARAM (16K x 16)",
                name: "L56DPSARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L78DPSARAM",
            {
                comment: "L7-L8 DPSARAM (16K x 16)",
                name: "L78DPSARAM",
                base: 0x10000,
                len: 0x04000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3E8000,
                len: 0x00FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320F28065.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320F28065.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320F28065.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
override config Int dataWordSize = 2;
config ITMS320F28065.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
config String deviceHeader;
config ITMS320F28065.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
config IPlatform.Memory memMap[string] = [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L56DPSARAM",
        {
            comment: "L5-L6 DPSARAM (16K x 16)",
            name: "L56DPSARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L78DPSARAM",
        {
            comment: "L7-L8 DPSARAM (16K x 16)",
            name: "L78DPSARAM",
            base: 0x10000,
            len: 0x04000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3E8000,
            len: 0x00FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config ITMS320F28065.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
override config Int minDataUnitSize = 1;
config ITMS320F28065.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
override config Int minProgUnitSize = 2;
config ITMS320F28065.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320F28065.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320F28065.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28065.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


interface ti.catalog.c2800.ITMS320F28065

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320F28065.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== ITMS320F28065 ========
    20     */
    21    metaonly interface ITMS320F28065 inherits ITMS320C283xx
    22    {
    23    instance:
    24        override config string   cpuCoreRevision = "1.0";
    25
    26        /*!
    27         *  ======== memMap ========
    28         *  The default memory map for this device
    29         */
    30        config xdc.platform.IPlatform.Memory memMap[string]  = [
    31            ["MSARAM", {
    32                comment: "On-Chip RAM Memory",
    33                name: "MSARAM",
    34                base: 0x0,
    35                len:  0x800,
    36                page: 0,
    37                space: "code/data"
    38            }],
    39
    40            ["PIEVECT", {
    41                comment: "On-Chip PIEVECT RAM Memory",
    42                name:    "PIEVECT",
    43                base:    0xD00,
    44                len:     0x100,
    45                page: 1,
    46                space:   "data"
    47            }],
    48
    49            ["L03DPSARAM", {
    50                comment: "L0-L3 DPSARAM (8K x 16)",
    51                name: "L03DPSARAM",
    52                base: 0x8000,
    53                len:  0x2000,
    54                page: 0,
    55                space: "code/data"
    56            }],
    57
    58            ["L4SARAM", {
    59                comment: "L4 SARAM (8K x 16)",
    60                name: "L4SARAM",
    61                base: 0xA000,
    62                len:  0x2000,
    63                page: 0,
    64                space: "code/data"
    65            }],
    66
    67            /* L5-L8 DPSARAM had to be split on 0xFFFF, to allow stack allocation
    68             * to L56DPSARAM and still be sure stack will stay below 0xFFFF.
    69             */
    70            ["L56DPSARAM", {
    71                comment: "L5-L6 DPSARAM (16K x 16)",
    72                name: "L56DPSARAM",
    73                base: 0xC000,
    74                len:  0x4000,
    75                page: 0,
    76                space: "code/data"
    77            }],
    78
    79            ["L78DPSARAM", {
    80                comment: "L7-L8 DPSARAM (16K x 16)",
    81                name: "L78DPSARAM",
    82                base: 0x10000,
    83                len:  0x04000,
    84                page: 0,
    85                space: "code/data"
    86            }],
    87
    88            ["OTP", {
    89                comment: "1K X 16 OTP memory",
    90                name: "OTP",
    91                base: 0x3D7800,
    92                len:  0x0003FA,
    93                page: 0,
    94                space: "code"
    95            }],
    96
    97            ["FLASH", {
    98                comment: "64K X 16 Flash memory",
    99                name: "FLASH",
   100                base: 0x3E8000,
   101                len:  0x00FF80,
   102                page: 0,
   103                space: "code"
   104            }],
   105
   106            ["BEGIN", {
   107                comment: "FLASH boot entry point",
   108                name: "BEGIN",
   109                base: 0x3f7ff6,
   110                len:  0x000002,
   111                page: 0,
   112                space: "code"
   113            }],
   114
   115            ["BOOTROM", {
   116                comment: "On-Chip Boot ROM",
   117                name: "BOOTROM",
   118                base: 0x3F8000,
   119                len:  0x007FC0,
   120                page: 0,
   121                space: "code"
   122            }],
   123        ];
   124    }
   125    /*
   126     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   127     */
   128


interface ti.catalog.c2800.ITMS320F28069

metaonly interface ti.catalog.c2800.ITMS320F28069
index URL
XDCspec summary sourced in ti/catalog/c2800/ITMS320F28069.xdc
metaonly interface ITMS320F28069 { ...
// inherits ti.catalog.c2800.ITMS320C283xx
    // inherits ti.catalog.c2800.ITMS320C28xx
        // inherits ti.catalog.ICpuDataSheet
            // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
package ti.catalog.c2800;
metaonly interface ITMS320F28069 inherits ITMS320C283xx {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "2800";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L56DPSARAM",
            {
                comment: "L5-L6 DPSARAM (16K x 16)",
                name: "L56DPSARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L78DPSARAM",
            {
                comment: "L7-L8 DPSARAM (16K x 16)",
                name: "L78DPSARAM",
                base: 0x10000,
                len: 0x04000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "128K X 16 Flash memory",
                name: "FLASH",
                base: 0x3D8000,
                len: 0x01FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320F28069.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
override config String cpuCore = "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320F28069.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320F28069.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
override config Int dataWordSize = 2;
config ITMS320F28069.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
config String deviceHeader;
config ITMS320F28069.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
config IPlatform.Memory memMap[string] = [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L56DPSARAM",
        {
            comment: "L5-L6 DPSARAM (16K x 16)",
            name: "L56DPSARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L78DPSARAM",
        {
            comment: "L7-L8 DPSARAM (16K x 16)",
            name: "L78DPSARAM",
            base: 0x10000,
            len: 0x04000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "128K X 16 Flash memory",
            name: "FLASH",
            base: 0x3D8000,
            len: 0x01FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config ITMS320F28069.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
override config Int minDataUnitSize = 1;
config ITMS320F28069.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
override config Int minProgUnitSize = 2;
config ITMS320F28069.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320F28069.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320F28069.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c2800/ITMS320F28069.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


interface ti.catalog.c2800.ITMS320F28069

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320F28069.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== ITMS320F28069 ========
    20     */
    21    metaonly interface ITMS320F28069 inherits ITMS320C283xx
    22    {
    23    instance:
    24        override config string   cpuCoreRevision = "1.0";
    25
    26        /*!
    27         *  ======== memMap ========
    28         *  The default memory map for this device
    29         */
    30        config xdc.platform.IPlatform.Memory memMap[string]  = [
    31            ["MSARAM", {
    32                comment: "On-Chip RAM Memory",
    33                name: "MSARAM",
    34                base: 0x0,
    35                len:  0x800,
    36                page: 0,
    37                space: "code/data"
    38            }],
    39
    40            ["PIEVECT", {
    41                comment: "On-Chip PIEVECT RAM Memory",
    42                name:    "PIEVECT",
    43                base:    0xD00,
    44                len:     0x100,
    45                page: 1,
    46                space:   "data"
    47            }],
    48
    49            ["L03DPSARAM", {
    50                comment: "L0-L3 DPSARAM (8K x 16)",
    51                name: "L03DPSARAM",
    52                base: 0x8000,
    53                len:  0x2000,
    54                page: 0,
    55                space: "code/data"
    56            }],
    57
    58            ["L4SARAM", {
    59                comment: "L4 SARAM (8K x 16)",
    60                name: "L4SARAM",
    61                base: 0xA000,
    62                len:  0x2000,
    63                page: 0,
    64                space: "code/data"
    65            }],
    66
    67            /* L5-L8 DPSARAM had to be split on 0xFFFF, to allow stack allocation
    68             * to L56DPSARAM and still be sure stack will stay below 0xFFFF.
    69             */
    70            ["L56DPSARAM", {
    71                comment: "L5-L6 DPSARAM (16K x 16)",
    72                name: "L56DPSARAM",
    73                base: 0xC000,
    74                len:  0x4000,
    75                page: 0,
    76                space: "code/data"
    77            }],
    78
    79            ["L78DPSARAM", {
    80                comment: "L7-L8 DPSARAM (16K x 16)",
    81                name: "L78DPSARAM",
    82                base: 0x10000,
    83                len:  0x04000,
    84                page: 0,
    85                space: "code/data"
    86            }],
    87
    88            ["OTP", {
    89                comment: "1K X 16 OTP memory",
    90                name: "OTP",
    91                base: 0x3D7800,
    92                len:  0x0003FA,
    93                page: 0,
    94                space: "code"
    95            }],
    96
    97            ["FLASH", {
    98                comment: "128K X 16 Flash memory",
    99                name: "FLASH",
   100                base: 0x3D8000,
   101                len:  0x01FF80,
   102                page: 0,
   103                space: "code"
   104            }],
   105
   106            ["BEGIN", {
   107                comment: "FLASH boot entry point",
   108                name: "BEGIN",
   109                base: 0x3f7ff6,
   110                len:  0x000002,
   111                page: 0,
   112                space: "code"
   113            }],
   114
   115            ["BOOTROM", {
   116                comment: "On-Chip Boot ROM",
   117                name: "BOOTROM",
   118                base: 0x3F8000,
   119                len:  0x007FC0,
   120                page: 0,
   121                space: "code"
   122            }],
   123        ];
   124    }
   125    /*
   126     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   127     */
   128


module ti.catalog.c2800.TMS320C2801

metaonly module ti.catalog.c2800.TMS320C2801
index URL

The C2801 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C2801.xdc
var TMS320C2801 = xdc.useModule('ti.catalog.c2800.TMS320C2801');
per-instance config parameters
    var params = new TMS320C2801.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "16K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3F4000,
                    len: 0x004000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FF000,
                    len: 0x000FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2801.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "16K X 16 Flash memory",
                name: "FLASH",
                base: 0x3F4000,
                len: 0x004000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FF000,
                len: 0x000FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2801.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2801.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2801.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
...
params.dataWordSize = Int 2;
config TMS320C2801.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
...
params.deviceHeader = String undefined;
config TMS320C2801.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "16K X 16 Flash memory",
            name: "FLASH",
            base: 0x3F4000,
            len: 0x004000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FF000,
            len: 0x000FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C2801.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2801.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2801.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2801.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2801.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2801.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2801.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


module ti.catalog.c2800.TMS320C2801

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2801.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C2801 ========
    21     *  The C2801 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C2801 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name: "PIEVECT",
    48                base: 0xD00,
    49                len:  0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["LSARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "LSARAM",
    57                base: 0x8000,
    58                len:  0x1000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["OTP", {
    64                comment: "1K X 16 OTP memory",
    65                name: "OTP",
    66                base: 0x3D7800,
    67                len:  0x000400,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["FLASH", {
    73                comment: "16K X 16 Flash memory",
    74                name: "FLASH",
    75                base: 0x3F4000,
    76                len:  0x004000,
    77                page: 0,
    78                space: "code/data"
    79            }],
    80
    81            ["BOOTROM", {
    82                comment: "On-Chip Boot ROM",
    83                name: "BOOTROM",
    84                base: 0x3FF000,
    85                len:  0x000FC0,
    86                page: 0,
    87                space: "code/data"
    88            }],
    89        ];
    90    };
    91    /*
    92     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    93     */
    94


module ti.catalog.c2800.TMS320C28015

metaonly module ti.catalog.c2800.TMS320C28015
index URL

The C28015 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28015.xdc
var TMS320C28015 = xdc.useModule('ti.catalog.c2800.TMS320C28015');
per-instance config parameters
    var params = new TMS320C28015.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "16K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3F4000,
                    len: 0x003f80,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FF000,
                    len: 0x000FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28015.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "16K X 16 Flash memory",
                name: "FLASH",
                base: 0x3F4000,
                len: 0x003f80,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FF000,
                len: 0x000FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28015.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28015.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28015.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
...
params.dataWordSize = Int 2;
config TMS320C28015.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
...
params.deviceHeader = String undefined;
config TMS320C28015.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "16K X 16 Flash memory",
            name: "FLASH",
            base: 0x3F4000,
            len: 0x003f80,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FF000,
            len: 0x000FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C28015.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28015.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28015.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28015.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28015.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28015.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28015.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


module ti.catalog.c2800.TMS320C28015

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28015.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C28015 ========
    21     *  The C28015 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C28015 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name: "PIEVECT",
    48                base: 0xD00,
    49                len:  0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["LSARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "LSARAM",
    57                base: 0x8000,
    58                len:  0x1000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["OTP", {
    64                comment: "1K X 16 OTP memory",
    65                name: "OTP",
    66                base: 0x3D7800,
    67                len:  0x000400,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["FLASH", {
    73                comment: "16K X 16 Flash memory",
    74                name: "FLASH",
    75                base: 0x3F4000,
    76                len:  0x003f80,
    77                page: 0,
    78                space: "code/data"
    79            }],
    80
    81            ["BEGIN", {
    82                comment: "FLASH boot entry point",
    83                name: "BEGIN",
    84                base: 0x3f7ff6,
    85                len:  0x000002,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BOOTROM", {
    91                comment: "On-Chip Boot ROM",
    92                name: "BOOTROM",
    93                base: 0x3FF000,
    94                len:  0x000FC0,
    95                page: 0,
    96                space: "code/data"
    97            }],
    98        ];
    99    };
   100    /*
   101     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   102     */
   103


module ti.catalog.c2800.TMS320C28016

metaonly module ti.catalog.c2800.TMS320C28016
index URL

The C28016 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28016.xdc
var TMS320C28016 = xdc.useModule('ti.catalog.c2800.TMS320C28016');
per-instance config parameters
    var params = new TMS320C28016.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "16K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3F4000,
                    len: 0x003f80,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FF000,
                    len: 0x000FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28016.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "16K X 16 Flash memory",
                name: "FLASH",
                base: 0x3F4000,
                len: 0x003f80,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FF000,
                len: 0x000FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28016.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28016.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28016.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
...
params.dataWordSize = Int 2;
config TMS320C28016.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
...
params.deviceHeader = String undefined;
config TMS320C28016.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "16K X 16 Flash memory",
            name: "FLASH",
            base: 0x3F4000,
            len: 0x003f80,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FF000,
            len: 0x000FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C28016.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28016.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28016.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28016.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28016.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28016.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28016.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


module ti.catalog.c2800.TMS320C28016

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28016.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C28016 ========
    21     *  The C28016 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C28016 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name: "PIEVECT",
    48                base: 0xD00,
    49                len:  0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["LSARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "LSARAM",
    57                base: 0x8000,
    58                len:  0x1000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["OTP", {
    64                comment: "1K X 16 OTP memory",
    65                name: "OTP",
    66                base: 0x3D7800,
    67                len:  0x000400,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["FLASH", {
    73                comment: "16K X 16 Flash memory",
    74                name: "FLASH",
    75                base: 0x3F4000,
    76                len:  0x003f80,
    77                page: 0,
    78                space: "code/data"
    79            }],
    80
    81            ["BEGIN", {
    82                comment: "FLASH boot entry point",
    83                name: "BEGIN",
    84                base: 0x3f7ff6,
    85                len:  0x000002,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BOOTROM", {
    91                comment: "On-Chip Boot ROM",
    92                name: "BOOTROM",
    93                base: 0x3FF000,
    94                len:  0x000FC0,
    95                page: 0,
    96                space: "code/data"
    97            }],
    98        ];
    99    };
   100    /*
   101     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   102     */
   103


module ti.catalog.c2800.TMS320C2802

metaonly module ti.catalog.c2800.TMS320C2802
index URL

The C2802 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C2802.xdc
var TMS320C2802 = xdc.useModule('ti.catalog.c2800.TMS320C2802');
per-instance config parameters
    var params = new TMS320C2802.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "32K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3F0000,
                    len: 0x008000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FF000,
                    len: 0x000FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2802.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3F0000,
                len: 0x008000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FF000,
                len: 0x000FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2802.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2802.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2802.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
...
params.dataWordSize = Int 2;
config TMS320C2802.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
...
params.deviceHeader = String undefined;
config TMS320C2802.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3F0000,
            len: 0x008000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FF000,
            len: 0x000FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C2802.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2802.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2802.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2802.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2802.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2802.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2802.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:28 GMT


module ti.catalog.c2800.TMS320C2802

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2802.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C2802 ========
    21     *  The C2802 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C2802 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name: "PIEVECT",
    48                base: 0xD00,
    49                len:  0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["LSARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "LSARAM",
    57                base: 0x8000,
    58                len:  0x1000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["OTP", {
    64                comment: "1K X 16 OTP memory",
    65                name: "OTP",
    66                base: 0x3D7800,
    67                len:  0x000400,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["FLASH", {
    73                comment: "32K X 16 Flash memory",
    74                name: "FLASH",
    75                base: 0x3F0000,
    76                len:  0x008000,
    77                page: 0,
    78                space: "code/data"
    79            }],
    80
    81            ["BOOTROM", {
    82                comment: "On-Chip Boot ROM",
    83                name: "BOOTROM",
    84                base: 0x3FF000,
    85                len:  0x000FC0,
    86                page: 0,
    87                space: "code/data"
    88            }],
    89        ];
    90    };
    91    /*
    92     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    93     */
    94


module ti.catalog.c2800.TMS320C28020

metaonly module ti.catalog.c2800.TMS320C28020
index URL

The C28020 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28020.xdc
var TMS320C28020 = xdc.useModule('ti.catalog.c2800.TMS320C28020');
per-instance config parameters
    var params = new TMS320C28020.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "L0 SARAM (1K x 16)",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x0400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "16K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3f4000,
                    len: 0x003f80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28020.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "L0 SARAM (1K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x0400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "16K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f4000,
                len: 0x003f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28020.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28020.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28020.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
...
params.dataWordSize = Int 2;
config TMS320C28020.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
...
params.deviceHeader = String undefined;
config TMS320C28020.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "L0 SARAM (1K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x0400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "16K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f4000,
            len: 0x003f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28020.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28020.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28020.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28020.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28020.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28020.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28020.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28020

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28020.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320C28020 ========
    20     *  The C28020 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C28020 inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["LSARAM", {
    54                comment: "L0 SARAM (1K x 16)",
    55                name: "LSARAM",
    56                base: 0x8000,
    57                len:  0x0400,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["FLASH", {
    63                comment: "16K X 16 Flash memory",
    64                name: "FLASH",
    65                base: 0x3f4000,
    66                len:  0x003f80,
    67                page: 0,
    68                space: "code"
    69            }],
    70
    71            ["BEGIN", {
    72                comment: "FLASH boot entry point",
    73                name: "BEGIN",
    74                base: 0x3f7ff6,
    75                len:  0x000002,
    76                page: 0,
    77                space: "code"
    78            }],
    79
    80            ["BOOTROM", {
    81                comment: "On-Chip Boot ROM",
    82                name: "BOOTROM",
    83                base: 0x3fe000,
    84                len:  0x001fc0,
    85                page: 0,
    86                space: "code"
    87            }],
    88        ];
    89    }
    90    /*
    91     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    92     */
    93


module ti.catalog.c2800.TMS320C28021

metaonly module ti.catalog.c2800.TMS320C28021
index URL

The C28021 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28021.xdc
var TMS320C28021 = xdc.useModule('ti.catalog.c2800.TMS320C28021');
per-instance config parameters
    var params = new TMS320C28021.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "L0 SARAM (3K x 16)",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x0c00,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "32K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3f0000,
                    len: 0x007f80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28021.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "L0 SARAM (3K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x0c00,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f0000,
                len: 0x007f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28021.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28021.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28021.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
...
params.dataWordSize = Int 2;
config TMS320C28021.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
...
params.deviceHeader = String undefined;
config TMS320C28021.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "L0 SARAM (3K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x0c00,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f0000,
            len: 0x007f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28021.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28021.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28021.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28021.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28021.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28021.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28021.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28021

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C28021.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320C28021 ========
    20     *  The C28021 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C28021 inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["LSARAM", {
    54                comment: "L0 SARAM (3K x 16)",
    55                name: "LSARAM",
    56                base: 0x8000,
    57                len:  0x0c00,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["FLASH", {
    63                comment: "32K X 16 Flash memory",
    64                name: "FLASH",
    65                base: 0x3f0000,
    66                len:  0x007f80,
    67                page: 0,
    68                space: "code"
    69            }],
    70
    71            ["BEGIN", {
    72                comment: "FLASH boot entry point",
    73                name: "BEGIN",
    74                base: 0x3f7ff6,
    75                len:  0x000002,
    76                page: 0,
    77                space: "code"
    78            }],
    79
    80            ["BOOTROM", {
    81                comment: "On-Chip Boot ROM",
    82                name: "BOOTROM",
    83                base: 0x3fe000,
    84                len:  0x001fc0,
    85                page: 0,
    86                space: "code"
    87            }],
    88        ];
    89    }
    90    /*
    91     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    92     */
    93


module ti.catalog.c2800.TMS320C28022

metaonly module ti.catalog.c2800.TMS320C28022
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28022.xdc
var TMS320C28022 = xdc.useModule('ti.catalog.c2800.TMS320C28022');
per-instance config parameters
    var params = new TMS320C28022.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "L0 SARAM (4K x 16)",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "16K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3f4000,
                    len: 0x003f80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28022.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "L0 SARAM (4K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "16K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f4000,
                len: 0x003f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28022.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28022.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28022.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
...
params.dataWordSize = Int 2;
config TMS320C28022.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
...
params.deviceHeader = String undefined;
config TMS320C28022.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "L0 SARAM (4K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "16K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f4000,
            len: 0x003f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28022.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28022.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28022.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28022.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28022.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28022.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28022.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28022

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28022 inherits ITMS320C28026
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28023

metaonly module ti.catalog.c2800.TMS320C28023
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28023.xdc
var TMS320C28023 = xdc.useModule('ti.catalog.c2800.TMS320C28023');
per-instance config parameters
    var params = new TMS320C28023.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "L0 SARAM (4K x 16)",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "32K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3f0000,
                    len: 0x007f80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28023.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "L0 SARAM (4K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f0000,
                len: 0x007f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28023.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28023.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28023.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
...
params.dataWordSize = Int 2;
config TMS320C28023.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
...
params.deviceHeader = String undefined;
config TMS320C28023.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "L0 SARAM (4K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f0000,
            len: 0x007f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28023.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28023.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28023.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28023.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28023.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28023.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28023.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28023

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28023 inherits ITMS320C28027
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28026

metaonly module ti.catalog.c2800.TMS320C28026
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28026.xdc
var TMS320C28026 = xdc.useModule('ti.catalog.c2800.TMS320C28026');
per-instance config parameters
    var params = new TMS320C28026.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "L0 SARAM (4K x 16)",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "16K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3f4000,
                    len: 0x003f80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28026.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "L0 SARAM (4K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "16K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f4000,
                len: 0x003f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28026.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28026.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28026.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
...
params.dataWordSize = Int 2;
config TMS320C28026.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
...
params.deviceHeader = String undefined;
config TMS320C28026.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "L0 SARAM (4K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "16K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f4000,
            len: 0x003f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28026.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28026.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28026.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28026.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28026.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28026.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28026.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28026

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28026 inherits ITMS320C28026
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28027

metaonly module ti.catalog.c2800.TMS320C28027
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28027.xdc
var TMS320C28027 = xdc.useModule('ti.catalog.c2800.TMS320C28027');
per-instance config parameters
    var params = new TMS320C28027.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "L0 SARAM (4K x 16)",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "32K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3f0000,
                    len: 0x007f80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28027.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "L0 SARAM (4K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f0000,
                len: 0x007f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28027.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28027.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28027.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
...
params.dataWordSize = Int 2;
config TMS320C28027.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
...
params.deviceHeader = String undefined;
config TMS320C28027.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "L0 SARAM (4K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f0000,
            len: 0x007f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28027.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28027.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28027.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28027.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28027.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28027.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28027.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28027

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28027 inherits ITMS320C28027
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28030

metaonly module ti.catalog.c2800.TMS320C28030
index URL

The C28030 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28030.xdc
var TMS320C28030 = xdc.useModule('ti.catalog.c2800.TMS320C28030');
per-instance config parameters
    var params = new TMS320C28030.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "DPSARAM",
                {
                    comment: "On-Chip DPSARAM Memory",
                    name: "DPSARAM",
                    base: 0x9000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "16K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3F4000,
                    len: 0x003f80,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "L0SARAM",
                {
                    comment: "On-Chip L0 SARAM Memory",
                    name: "L0SARAM",
                    base: 0x3F8000,
                    len: 0x000800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FE000,
                    len: 0x001FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28030.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "DPSARAM",
            {
                comment: "On-Chip DPSARAM Memory",
                name: "DPSARAM",
                base: 0x9000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "16K X 16 Flash memory",
                name: "FLASH",
                base: 0x3F4000,
                len: 0x003f80,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "L0SARAM",
            {
                comment: "On-Chip L0 SARAM Memory",
                name: "L0SARAM",
                base: 0x3F8000,
                len: 0x000800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FE000,
                len: 0x001FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28030.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28030.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28030.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
...
params.dataWordSize = Int 2;
config TMS320C28030.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
...
params.deviceHeader = String undefined;
config TMS320C28030.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "DPSARAM",
        {
            comment: "On-Chip DPSARAM Memory",
            name: "DPSARAM",
            base: 0x9000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "16K X 16 Flash memory",
            name: "FLASH",
            base: 0x3F4000,
            len: 0x003f80,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "L0SARAM",
        {
            comment: "On-Chip L0 SARAM Memory",
            name: "L0SARAM",
            base: 0x3F8000,
            len: 0x000800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FE000,
            len: 0x001FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C28030.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28030.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28030.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28030.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28030.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28030.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28030.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28030

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28030.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320C28030 ========
    20     *  The C28030 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C28030 inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name: "PIEVECT",
    47                base: 0xD00,
    48                len:  0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["DPSARAM", {
    54                comment: "On-Chip DPSARAM Memory",
    55                name: "DPSARAM",
    56                base: 0x9000,
    57                len:  0x1000,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["OTP", {
    63                comment: "1K X 16 OTP memory",
    64                name: "OTP",
    65                base: 0x3D7800,
    66                len:  0x000400,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["FLASH", {
    72                comment: "16K X 16 Flash memory",
    73                name: "FLASH",
    74                base: 0x3F4000,
    75                len:  0x003f80,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["BEGIN", {
    81                comment: "FLASH boot entry point",
    82                name: "BEGIN",
    83                base: 0x3f7ff6,
    84                len:  0x000002,
    85                page: 0,
    86                space: "code"
    87            }],
    88
    89            ["L0SARAM", {
    90                comment: "On-Chip L0 SARAM Memory",
    91                name: "L0SARAM",
    92                base: 0x3F8000,
    93                len:  0x000800,
    94                page: 0,
    95                space: "code/data"
    96            }],
    97
    98            ["BOOTROM", {
    99                comment: "On-Chip Boot ROM",
   100                name: "BOOTROM",
   101                base: 0x3FE000,
   102                len:  0x001FC0,
   103                page: 0,
   104                space: "code/data"
   105            }],
   106        ];
   107    };
   108    /*
   109     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   110     */
   111


module ti.catalog.c2800.TMS320C28031

metaonly module ti.catalog.c2800.TMS320C28031
index URL

The C28031 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28031.xdc
var TMS320C28031 = xdc.useModule('ti.catalog.c2800.TMS320C28031');
per-instance config parameters
    var params = new TMS320C28031.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "DPSARAM",
                {
                    comment: "On-Chip DPSARAM Memory",
                    name: "DPSARAM",
                    base: 0x8800,
                    len: 0x1800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "32K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3F0000,
                    len: 0x007f80,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "L0SARAM",
                {
                    comment: "On-Chip L0 SARAM Memory",
                    name: "L0SARAM",
                    base: 0x3F8000,
                    len: 0x000800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FE000,
                    len: 0x001FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28031.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "DPSARAM",
            {
                comment: "On-Chip DPSARAM Memory",
                name: "DPSARAM",
                base: 0x8800,
                len: 0x1800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3F0000,
                len: 0x007f80,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "L0SARAM",
            {
                comment: "On-Chip L0 SARAM Memory",
                name: "L0SARAM",
                base: 0x3F8000,
                len: 0x000800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FE000,
                len: 0x001FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28031.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28031.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28031.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
...
params.dataWordSize = Int 2;
config TMS320C28031.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
...
params.deviceHeader = String undefined;
config TMS320C28031.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "DPSARAM",
        {
            comment: "On-Chip DPSARAM Memory",
            name: "DPSARAM",
            base: 0x8800,
            len: 0x1800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3F0000,
            len: 0x007f80,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "L0SARAM",
        {
            comment: "On-Chip L0 SARAM Memory",
            name: "L0SARAM",
            base: 0x3F8000,
            len: 0x000800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FE000,
            len: 0x001FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C28031.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28031.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28031.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28031.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28031.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28031.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28031.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28031

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28031.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320C28031 ========
    20     *  The C28031 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C28031 inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name: "PIEVECT",
    47                base: 0xD00,
    48                len:  0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["DPSARAM", {
    54                comment: "On-Chip DPSARAM Memory",
    55                name: "DPSARAM",
    56                base: 0x8800,
    57                len:  0x1800,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["OTP", {
    63                comment: "1K X 16 OTP memory",
    64                name: "OTP",
    65                base: 0x3D7800,
    66                len:  0x000400,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["FLASH", {
    72                comment: "32K X 16 Flash memory",
    73                name: "FLASH",
    74                base: 0x3F0000,
    75                len:  0x007f80,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["BEGIN", {
    81                comment: "FLASH boot entry point",
    82                name: "BEGIN",
    83                base: 0x3f7ff6,
    84                len:  0x000002,
    85                page: 0,
    86                space: "code"
    87            }],
    88
    89            ["L0SARAM", {
    90                comment: "On-Chip L0 SARAM Memory",
    91                name: "L0SARAM",
    92                base: 0x3F8000,
    93                len:  0x000800,
    94                page: 0,
    95                space: "code/data"
    96            }],
    97
    98            ["BOOTROM", {
    99                comment: "On-Chip Boot ROM",
   100                name: "BOOTROM",
   101                base: 0x3FE000,
   102                len:  0x001FC0,
   103                page: 0,
   104                space: "code/data"
   105            }],
   106        ];
   107    };
   108    /*
   109     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   110     */
   111


module ti.catalog.c2800.TMS320C28032

metaonly module ti.catalog.c2800.TMS320C28032
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28032.xdc
var TMS320C28032 = xdc.useModule('ti.catalog.c2800.TMS320C28032');
per-instance config parameters
    var params = new TMS320C28032.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "DPSARAM",
                {
                    comment: "DPSARAM (6K x 16)",
                    name: "DPSARAM",
                    base: 0x8800,
                    len: 0xa000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "32K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3f0000,
                    len: 0x007f80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28032.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "DPSARAM",
            {
                comment: "DPSARAM (6K x 16)",
                name: "DPSARAM",
                base: 0x8800,
                len: 0xa000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f0000,
                len: 0x007f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28032.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28032.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28032.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
...
params.dataWordSize = Int 2;
config TMS320C28032.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
...
params.deviceHeader = String undefined;
config TMS320C28032.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "DPSARAM",
        {
            comment: "DPSARAM (6K x 16)",
            name: "DPSARAM",
            base: 0x8800,
            len: 0xa000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f0000,
            len: 0x007f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28032.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28032.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28032.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28032.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28032.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28032.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28032.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28032

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28032 inherits ITMS320C28032
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28033

metaonly module ti.catalog.c2800.TMS320C28033
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28033.xdc
var TMS320C28033 = xdc.useModule('ti.catalog.c2800.TMS320C28033');
per-instance config parameters
    var params = new TMS320C28033.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "DPSARAM",
                {
                    comment: "DPSARAM (6K x 16)",
                    name: "DPSARAM",
                    base: 0x8800,
                    len: 0xa000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "32K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3f0000,
                    len: 0x007f80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28033.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "DPSARAM",
            {
                comment: "DPSARAM (6K x 16)",
                name: "DPSARAM",
                base: 0x8800,
                len: 0xa000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3f0000,
                len: 0x007f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28033.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28033.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28033.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
...
params.dataWordSize = Int 2;
config TMS320C28033.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
...
params.deviceHeader = String undefined;
config TMS320C28033.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "DPSARAM",
        {
            comment: "DPSARAM (6K x 16)",
            name: "DPSARAM",
            base: 0x8800,
            len: 0xa000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3f0000,
            len: 0x007f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28033.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28033.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28033.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28033.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28033.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28033.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28033.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28033

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28033 inherits ITMS320C28032
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28034

metaonly module ti.catalog.c2800.TMS320C28034
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28034.xdc
var TMS320C28034 = xdc.useModule('ti.catalog.c2800.TMS320C28034');
per-instance config parameters
    var params = new TMS320C28034.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "LSARAM (2K x 16)",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x0800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "DPSARAM",
                {
                    comment: "DPSARAM (6K x 16)",
                    name: "DPSARAM",
                    base: 0x8800,
                    len: 0x1800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3e8000,
                    len: 0x00ff80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28034.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "LSARAM (2K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x0800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "DPSARAM",
            {
                comment: "DPSARAM (6K x 16)",
                name: "DPSARAM",
                base: 0x8800,
                len: 0x1800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3e8000,
                len: 0x00ff80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28034.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28034.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28034.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
...
params.dataWordSize = Int 2;
config TMS320C28034.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
...
params.deviceHeader = String undefined;
config TMS320C28034.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "LSARAM (2K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x0800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "DPSARAM",
        {
            comment: "DPSARAM (6K x 16)",
            name: "DPSARAM",
            base: 0x8800,
            len: 0x1800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3e8000,
            len: 0x00ff80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28034.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28034.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28034.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28034.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28034.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28034.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28034.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:29 GMT


module ti.catalog.c2800.TMS320C28034

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28034 inherits ITMS320C28034
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28035

metaonly module ti.catalog.c2800.TMS320C28035
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28035.xdc
var TMS320C28035 = xdc.useModule('ti.catalog.c2800.TMS320C28035');
per-instance config parameters
    var params = new TMS320C28035.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "LSARAM (2K x 16)",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x0800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "DPSARAM",
                {
                    comment: "DPSARAM (6K x 16)",
                    name: "DPSARAM",
                    base: 0x8800,
                    len: 0x1800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3e8000,
                    len: 0x00ff80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x001fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28035.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "LSARAM (2K x 16)",
                name: "LSARAM",
                base: 0x8000,
                len: 0x0800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "DPSARAM",
            {
                comment: "DPSARAM (6K x 16)",
                name: "DPSARAM",
                base: 0x8800,
                len: 0x1800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3e8000,
                len: 0x00ff80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x001fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28035.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28035.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28035.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
...
params.dataWordSize = Int 2;
config TMS320C28035.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
...
params.deviceHeader = String undefined;
config TMS320C28035.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "LSARAM (2K x 16)",
            name: "LSARAM",
            base: 0x8000,
            len: 0x0800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "DPSARAM",
        {
            comment: "DPSARAM (6K x 16)",
            name: "DPSARAM",
            base: 0x8800,
            len: 0x1800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3e8000,
            len: 0x00ff80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x001fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28035.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28035.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28035.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28035.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28035.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28035.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28035.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C28035

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28035 inherits ITMS320C28034
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28044

metaonly module ti.catalog.c2800.TMS320C28044
index URL

The C28044 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28044.xdc
var TMS320C28044 = xdc.useModule('ti.catalog.c2800.TMS320C28044');
per-instance config parameters
    var params = new TMS320C28044.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L0SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L0SARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L1SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L1SARAM",
                    base: 0x9000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3E8000,
                    len: 0x00ff80,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FF000,
                    len: 0x000FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28044.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L0SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L0SARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L1SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L1SARAM",
                base: 0x9000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3E8000,
                len: 0x00ff80,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FF000,
                len: 0x000FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28044.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28044.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28044.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
...
params.dataWordSize = Int 2;
config TMS320C28044.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
...
params.deviceHeader = String undefined;
config TMS320C28044.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L0SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L0SARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L1SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L1SARAM",
            base: 0x9000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3E8000,
            len: 0x00ff80,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FF000,
            len: 0x000FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C28044.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28044.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28044.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28044.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28044.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28044.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28044.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C28044

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28044.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C28044 ========
    21     *  The C28044 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C28044 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name:    "PIEVECT",
    48                base:    0xD00,
    49                len:     0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["L0SARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "L0SARAM",
    57                base: 0x8000,
    58                len:  0x1000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["L1SARAM", {
    64                comment: "On-Chip RAM Memory",
    65                name: "L1SARAM",
    66                base: 0x9000,
    67                len:  0x1000,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["OTP", {
    73                comment: "1K X 16 OTP memory",
    74                name: "OTP",
    75                base: 0x3D7800,
    76                len:  0x000400,
    77                page: 0,
    78                space: "code/data"
    79            }],
    80
    81            ["FLASH", {
    82                comment: "64K X 16 Flash memory",
    83                name: "FLASH",
    84                base: 0x3E8000,
    85                len:  0x00ff80,
    86                page: 0,
    87                space: "code/data"
    88            }],
    89
    90            ["BEGIN", {
    91                comment: "FLASH boot entry point",
    92                name: "BEGIN",
    93                base: 0x3f7ff6,
    94                len:  0x000002,
    95                page: 0,
    96                space: "code"
    97            }],
    98
    99            ["BOOTROM", {
   100                comment: "On-Chip Boot ROM",
   101                name: "BOOTROM",
   102                base: 0x3FF000,
   103                len:  0x000FC0,
   104                page: 0,
   105                space: "code/data"
   106            }],
   107        ];
   108    };
   109    /*
   110     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   111     */
   112


module ti.catalog.c2800.TMS320C2806

metaonly module ti.catalog.c2800.TMS320C2806
index URL

The C2806 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C2806.xdc
var TMS320C2806 = xdc.useModule('ti.catalog.c2800.TMS320C2806');
per-instance config parameters
    var params = new TMS320C2806.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L0SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L0SARAM",
                    base: 0x8000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L1SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L1SARAM",
                    base: 0x9000,
                    len: 0x1000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "32K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3F0000,
                    len: 0x007f80,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FC000,
                    len: 0x003FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2806.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L0SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L0SARAM",
                base: 0x8000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L1SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L1SARAM",
                base: 0x9000,
                len: 0x1000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "32K X 16 Flash memory",
                name: "FLASH",
                base: 0x3F0000,
                len: 0x007f80,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FC000,
                len: 0x003FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2806.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2806.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2806.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
...
params.dataWordSize = Int 2;
config TMS320C2806.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
...
params.deviceHeader = String undefined;
config TMS320C2806.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L0SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L0SARAM",
            base: 0x8000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L1SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L1SARAM",
            base: 0x9000,
            len: 0x1000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "32K X 16 Flash memory",
            name: "FLASH",
            base: 0x3F0000,
            len: 0x007f80,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FC000,
            len: 0x003FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C2806.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2806.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2806.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2806.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2806.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2806.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2806.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C2806

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2806.xdc ========
    15     *
    16     *! 07-Apr-2005 sasha   Moved L1SARAM from 0x3F9000 to 0x9000 (Cindy's review)
    17     *! 17-Mar-2005 sasha   Created
    18     */
    19    package ti.catalog.c2800;
    20
    21    /*!
    22     *  ======== TMS320C2806 ========
    23     *  The C2806 device data sheet module.
    24     *
    25     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    26     *  by platforms to obtain "data sheet" information about this device.
    27     */
    28    metaonly module TMS320C2806 inherits ITMS320C28xx
    29    {
    30    instance:
    31        override config string   cpuCoreRevision = "1.0";
    32
    33        /*!
    34         *  ======== memMap ========
    35         *  The default memory map for this device
    36         */
    37        config xdc.platform.IPlatform.Memory memMap[string]  = [
    38            ["MSARAM", {
    39                comment: "On-Chip RAM Memory",
    40                name: "MSARAM",
    41                base: 0x0,
    42                len:  0x800,
    43                page: 0,
    44                space: "code/data"
    45            }],
    46
    47            ["PIEVECT", {
    48                comment: "On-Chip PIEVECT RAM Memory",
    49                name:    "PIEVECT",
    50                base:    0xD00,
    51                len:     0x100,
    52                page: 1,
    53                space:   "data"
    54            }],
    55
    56            ["L0SARAM", {
    57                comment: "On-Chip RAM Memory",
    58                name: "L0SARAM",
    59                base: 0x8000,
    60                len:  0x1000,
    61                page: 0,
    62                space: "code/data"
    63            }],
    64
    65            ["L1SARAM", {
    66                comment: "On-Chip RAM Memory",
    67                name: "L1SARAM",
    68                base: 0x9000,
    69                len:  0x1000,
    70                page: 0,
    71                space: "code/data"
    72            }],
    73
    74            ["OTP", {
    75                comment: "1K X 16 OTP memory",
    76                name: "OTP",
    77                base: 0x3D7800,
    78                len:  0x000400,
    79                page: 0,
    80                space: "code/data"
    81            }],
    82
    83            ["FLASH", {
    84                comment: "32K X 16 Flash memory",
    85                name: "FLASH",
    86                base: 0x3F0000,
    87                len:  0x007f80,
    88                page: 0,
    89                space: "code/data"
    90            }],
    91
    92            ["BEGIN", {
    93                comment: "FLASH boot entry point",
    94                name: "BEGIN",
    95                base: 0x3f7ff6,
    96                len:  0x000002,
    97                page: 0,
    98                space: "code"
    99            }],
   100
   101            ["BOOTROM", {
   102                comment: "On-Chip Boot ROM",
   103                name: "BOOTROM",
   104                base: 0x3FC000,
   105                len:  0x003FC0,
   106                page: 0,
   107                space: "code/data"
   108            }],
   109        ];
   110    };
   111    /*
   112     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   113     */
   114


module ti.catalog.c2800.TMS320C2808

metaonly module ti.catalog.c2800.TMS320C2808
index URL

The C2808 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C2808.xdc
var TMS320C2808 = xdc.useModule('ti.catalog.c2800.TMS320C2808');
per-instance config parameters
    var params = new TMS320C2808.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3E8000,
                    len: 0x00ff80,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "H0SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "H0SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FF000,
                    len: 0x000FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2808.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3E8000,
                len: 0x00ff80,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "H0SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H0SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FF000,
                len: 0x000FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2808.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2808.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2808.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
...
params.dataWordSize = Int 2;
config TMS320C2808.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
...
params.deviceHeader = String undefined;
config TMS320C2808.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3E8000,
            len: 0x00ff80,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "H0SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H0SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FF000,
            len: 0x000FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C2808.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2808.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2808.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2808.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2808.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2808.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2808.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C2808

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2808.xdc ========
    15     *
    16     *! 07-Apr-2005 sasha   Moved H0SARAM from 0x3FA000 to 0xA000 (Cindy's review)
    17     *! 08-Mar-2005 sasha   Created from C2808.tci.
    18     */
    19    package ti.catalog.c2800;
    20
    21    /*!
    22     *  ======== TMS320C2808 ========
    23     *  The C2808 device data sheet module.
    24     *
    25     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    26     *  by platforms to obtain "data sheet" information about this device.
    27     */
    28    metaonly module TMS320C2808 inherits ITMS320C28xx
    29    {
    30    instance:
    31        override config string   cpuCoreRevision = "1.0";
    32
    33        /*!
    34         *  ======== memMap ========
    35         *  The default memory map for this device
    36         */
    37        config xdc.platform.IPlatform.Memory memMap[string]  = [
    38            ["MSARAM", {
    39                comment: "On-Chip RAM Memory",
    40                name: "MSARAM",
    41                base: 0x0,
    42                len:  0x800,
    43                page: 0,
    44                space: "code/data"
    45            }],
    46
    47            ["PIEVECT", {
    48                comment: "On-Chip PIEVECT RAM Memory",
    49                name:    "PIEVECT",
    50                base:    0xD00,
    51                len:     0x100,
    52                page: 1,
    53                space:   "data"
    54            }],
    55
    56            ["LSARAM", {
    57                comment: "On-Chip RAM Memory",
    58                name: "LSARAM",
    59                base: 0x8000,
    60                len:  0x2000,
    61                page: 0,
    62                space: "code/data"
    63            }],
    64
    65            ["OTP", {
    66                comment: "1K X 16 OTP memory",
    67                name: "OTP",
    68                base: 0x3D7800,
    69                len:  0x000400,
    70                page: 0,
    71                space: "code/data"
    72            }],
    73
    74            ["FLASH", {
    75                comment: "64K X 16 Flash memory",
    76                name: "FLASH",
    77                base: 0x3E8000,
    78                len:  0x00ff80,
    79                page: 0,
    80                space: "code/data"
    81            }],
    82
    83            ["BEGIN", {
    84                comment: "FLASH boot entry point",
    85                name: "BEGIN",
    86                base: 0x3f7ff6,
    87                len:  0x000002,
    88                page: 0,
    89                space: "code"
    90            }],
    91
    92            ["H0SARAM", {
    93                comment: "On-Chip RAM Memory",
    94                name: "H0SARAM",
    95                base: 0xA000,
    96                len:  0x2000,
    97                page: 0,
    98                space: "code/data"
    99            }],
   100
   101            ["BOOTROM", {
   102                comment: "On-Chip Boot ROM",
   103                name: "BOOTROM",
   104                base: 0x3FF000,
   105                len:  0x000FC0,
   106                page: 0,
   107                space: "code/data"
   108            }],
   109        ];
   110    };
   111    /*
   112     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   113     */
   114


module ti.catalog.c2800.TMS320C2809

metaonly module ti.catalog.c2800.TMS320C2809
index URL

The C2809 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C2809.xdc
var TMS320C2809 = xdc.useModule('ti.catalog.c2800.TMS320C2809');
per-instance config parameters
    var params = new TMS320C2809.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x000400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "128K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3D8000,
                    len: 0x01ff80,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "H0SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "H0SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3FF000,
                    len: 0x000FC0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2809.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x000400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "128K X 16 Flash memory",
                name: "FLASH",
                base: 0x3D8000,
                len: 0x01ff80,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "H0SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H0SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3FF000,
                len: 0x000FC0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2809.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2809.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2809.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
...
params.dataWordSize = Int 2;
config TMS320C2809.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
...
params.deviceHeader = String undefined;
config TMS320C2809.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x000400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "128K X 16 Flash memory",
            name: "FLASH",
            base: 0x3D8000,
            len: 0x01ff80,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "H0SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H0SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3FF000,
            len: 0x000FC0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C2809.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2809.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2809.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2809.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2809.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2809.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2809.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C2809

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2809.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C2809 ========
    21     *  The C2809 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C2809 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name:    "PIEVECT",
    48                base:    0xD00,
    49                len:     0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["LSARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "LSARAM",
    57                base: 0x8000,
    58                len:  0x2000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["OTP", {
    64                comment: "1K X 16 OTP memory",
    65                name: "OTP",
    66                base: 0x3D7800,
    67                len:  0x000400,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["FLASH", {
    73                comment: "128K X 16 Flash memory",
    74                name: "FLASH",
    75                base: 0x3D8000,
    76                len:  0x01ff80,
    77                page: 0,
    78                space: "code/data"
    79            }],
    80
    81            ["BEGIN", {
    82                comment: "FLASH boot entry point",
    83                name: "BEGIN",
    84                base: 0x3f7ff6,
    85                len:  0x000002,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["H0SARAM", {
    91                comment: "On-Chip RAM Memory",
    92                name: "H0SARAM",
    93                base: 0xA000,
    94                len:  0x2000,
    95                page: 0,
    96                space: "code/data"
    97            }],
    98
    99            ["BOOTROM", {
   100                comment: "On-Chip Boot ROM",
   101                name: "BOOTROM",
   102                base: 0x3FF000,
   103                len:  0x000FC0,
   104                page: 0,
   105                space: "code/data"
   106            }],
   107        ];
   108    };
   109    /*
   110     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
   111     */
   112


module ti.catalog.c2800.TMS320C2810

metaonly module ti.catalog.c2800.TMS320C2810
index URL

The C2810 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C2810.xdc
var TMS320C2810 = xdc.useModule('ti.catalog.c2800.TMS320C2810');
per-instance config parameters
    var params = new TMS320C2810.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] TMS320C2812.memMap;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2810.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] TMS320C2812.memMap;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2810.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2810.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2810.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
...
params.dataWordSize = Int 2;
config TMS320C2810.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
...
params.deviceHeader = String undefined;
config TMS320C2810.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
...
params.memMap = IPlatform.Memory[string] TMS320C2812.memMap;
config TMS320C2810.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2810.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2810.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2810.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2810.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2810.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2810.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C2810

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2810.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C2810 ========
    21     *  The C2810 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C2810 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35
    36        config xdc.platform.IPlatform.Memory memMap[string]  = TMS320C2812.memMap;
    37    };
    38    /*
    39     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    40     */
    41


module ti.catalog.c2800.TMS320C2811

metaonly module ti.catalog.c2800.TMS320C2811
index URL

The C2811 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C2811.xdc
var TMS320C2811 = xdc.useModule('ti.catalog.c2800.TMS320C2811');
per-instance config parameters
    var params = new TMS320C2811.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] TMS320C2812.memMap;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2811.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] TMS320C2812.memMap;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2811.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2811.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2811.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
...
params.dataWordSize = Int 2;
config TMS320C2811.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
...
params.deviceHeader = String undefined;
config TMS320C2811.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
...
params.memMap = IPlatform.Memory[string] TMS320C2812.memMap;
config TMS320C2811.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2811.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2811.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2811.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2811.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2811.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2811.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C2811

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2811.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C2811 ========
    21     *  The C2811 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C2811 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35
    36        config xdc.platform.IPlatform.Memory memMap[string]  = TMS320C2812.memMap;
    37    };
    38    /*
    39     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:25; /db/ztree/library/trees/platform/platform-n27x/src/
    40     */
    41


module ti.catalog.c2800.TMS320C2812

metaonly module ti.catalog.c2800.TMS320C2812
index URL

The C2812 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C2812.xdc
var TMS320C2812 = xdc.useModule('ti.catalog.c2800.TMS320C2812');
per-instance config parameters
    var params = new TMS320C2812.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "LSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "LSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "2K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3d7800,
                    len: 0x400,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "FLASH",
                {
                    comment: "128K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3d8000,
                    len: 0x1ff80,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "H0SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "H0SARAM",
                    base: 0x3f8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3ff000,
                    len: 0xfc0,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2812.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "LSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "LSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "2K X 16 OTP memory",
                name: "OTP",
                base: 0x3d7800,
                len: 0x400,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "FLASH",
            {
                comment: "128K X 16 Flash memory",
                name: "FLASH",
                base: 0x3d8000,
                len: 0x1ff80,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "H0SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H0SARAM",
                base: 0x3f8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3ff000,
                len: 0xfc0,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2812.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2812.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2812.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
...
params.dataWordSize = Int 2;
config TMS320C2812.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
...
params.deviceHeader = String undefined;
config TMS320C2812.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "LSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "LSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "2K X 16 OTP memory",
            name: "OTP",
            base: 0x3d7800,
            len: 0x400,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "FLASH",
        {
            comment: "128K X 16 Flash memory",
            name: "FLASH",
            base: 0x3d8000,
            len: 0x1ff80,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "H0SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H0SARAM",
            base: 0x3f8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3ff000,
            len: 0xfc0,
            page: 0,
            space: "code/data"
        }
    ]
];
config TMS320C2812.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2812.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2812.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2812.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2812.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2812.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2812.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C2812

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2812.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320C2812 ========
    20     *  The C2812 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C2812 inherits ITMS320C28xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["LSARAM", {
    54                comment: "On-Chip RAM Memory",
    55                name: "LSARAM",
    56                base: 0x8000,
    57                len:  0x2000,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["OTP", {
    63                comment: "2K X 16 OTP memory",
    64                name: "OTP",
    65                base: 0x3d7800,
    66                len:  0x400,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["FLASH", {
    72                comment: "128K X 16 Flash memory",
    73                name: "FLASH",
    74                base: 0x3d8000,
    75                len:  0x1ff80,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["BEGIN", {
    81                comment: "FLASH boot entry point",
    82                name: "BEGIN",
    83                base: 0x3f7ff6,
    84                len:  0x000002,
    85                page: 0,
    86                space: "code"
    87            }],
    88
    89            ["H0SARAM", {
    90                comment: "On-Chip RAM Memory",
    91                name: "H0SARAM",
    92                base: 0x3f8000,
    93                len:  0x2000,
    94                page: 0,
    95                space: "code/data"
    96            }],
    97
    98            ["BOOTROM", {
    99                comment: "On-Chip Boot ROM",
   100                name: "BOOTROM",
   101                base: 0x3ff000,
   102                len:  0xfc0,
   103                page: 0,
   104                space: "code/data"
   105            }],
   106        ];
   107    };
   108    /*
   109     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   110     */
   111


module ti.catalog.c2800.TMS320C28232

metaonly module ti.catalog.c2800.TMS320C28232
index URL

The 28232 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28232.xdc
var TMS320C28232 = xdc.useModule('ti.catalog.c2800.TMS320C28232');
per-instance config parameters
    var params = new TMS320C28232.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0xC000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x380400,
                    len: 0x400,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x330000,
                    len: 0x00ff80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x33fff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28232.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0xC000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x380400,
                len: 0x400,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x330000,
                len: 0x00ff80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x33fff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28232.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28232.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28232.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
...
params.dataWordSize = Int 2;
config TMS320C28232.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
...
params.deviceHeader = String undefined;
config TMS320C28232.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0xC000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x380400,
            len: 0x400,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x330000,
            len: 0x00ff80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x33fff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28232.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28232.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28232.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28232.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28232.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28232.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28232.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C28232

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28232.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C28232 ========
    21     *  The 28232 device data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C28232 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name:    "PIEVECT",
    48                base:    0xD00,
    49                len:     0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["L03SARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "L03SARAM",
    57                base: 0x8000,
    58                len:  0x4000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["L47SARAM", {
    64                comment: "On-Chip RAM Memory",
    65                name: "L47SARAM",
    66                base: 0xC000,
    67                len:  0x2000,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["OTP", {
    73                comment: "1K X 16 OTP memory",
    74                name: "OTP",
    75                base: 0x380400,
    76                len:  0x400,
    77                page: 0,
    78                space: "code"
    79            }],
    80
    81            ["FLASH", {
    82                comment: "64K X 16 Flash memory",
    83                name: "FLASH",
    84                base: 0x330000,
    85                len:  0x00ff80,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BEGIN", {
    91                comment: "FLASH boot entry point",
    92                name: "BEGIN",
    93                base: 0x33fff6,
    94                len:  0x000002,
    95                page: 0,
    96                space: "code"
    97            }],
    98
    99            ["BOOTROM", {
   100                comment: "On-Chip Boot ROM",
   101                name: "BOOTROM",
   102                base: 0x3fe000,
   103                len:  0x1fc0,
   104                page: 0,
   105                space: "code"
   106            }],
   107        ];
   108    };
   109
   110    /*
   111     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   112     */
   113


module ti.catalog.c2800.TMS320C28234

metaonly module ti.catalog.c2800.TMS320C28234
index URL

The 28234 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28234.xdc
var TMS320C28234 = xdc.useModule('ti.catalog.c2800.TMS320C28234');
per-instance config parameters
    var params = new TMS320C28234.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x380400,
                    len: 0x400,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "128K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x320000,
                    len: 0x01ff80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x33fff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28234.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x380400,
                len: 0x400,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "128K X 16 Flash memory",
                name: "FLASH",
                base: 0x320000,
                len: 0x01ff80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x33fff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28234.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28234.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28234.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
...
params.dataWordSize = Int 2;
config TMS320C28234.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
...
params.deviceHeader = String undefined;
config TMS320C28234.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x380400,
            len: 0x400,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "128K X 16 Flash memory",
            name: "FLASH",
            base: 0x320000,
            len: 0x01ff80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x33fff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28234.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28234.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28234.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28234.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28234.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28234.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28234.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:30 GMT


module ti.catalog.c2800.TMS320C28234

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28234.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C28234 ========
    21     *  The 28234 device data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C28234 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name:    "PIEVECT",
    48                base:    0xD00,
    49                len:     0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["L03SARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "L03SARAM",
    57                base: 0x8000,
    58                len:  0x4000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["L47SARAM", {
    64                comment: "On-Chip RAM Memory",
    65                name: "L47SARAM",
    66                base: 0xC000,
    67                len:  0x4000,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["OTP", {
    73                comment: "1K X 16 OTP memory",
    74                name: "OTP",
    75                base: 0x380400,
    76                len:  0x400,
    77                page: 0,
    78                space: "code"
    79            }],
    80
    81            ["FLASH", {
    82                comment: "128K X 16 Flash memory",
    83                name: "FLASH",
    84                base: 0x320000,
    85                len:  0x01ff80,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BEGIN", {
    91                comment: "FLASH boot entry point",
    92                name: "BEGIN",
    93                base: 0x33fff6,
    94                len:  0x000002,
    95                page: 0,
    96                space: "code"
    97            }],
    98
    99            ["BOOTROM", {
   100                comment: "On-Chip Boot ROM",
   101                name: "BOOTROM",
   102                base: 0x3fe000,
   103                len:  0x1fc0,
   104                page: 0,
   105                space: "code"
   106            }],
   107        ];
   108    };
   109
   110    /*
   111     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   112     */
   113


module ti.catalog.c2800.TMS320C28235

metaonly module ti.catalog.c2800.TMS320C28235
index URL

The C28235 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28235.xdc
var TMS320C28235 = xdc.useModule('ti.catalog.c2800.TMS320C28235');
per-instance config parameters
    var params = new TMS320C28235.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x380400,
                    len: 0x400,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "256K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x300000,
                    len: 0x03ff80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x33fff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28235.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x380400,
                len: 0x400,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "256K X 16 Flash memory",
                name: "FLASH",
                base: 0x300000,
                len: 0x03ff80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x33fff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28235.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28235.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28235.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
...
params.dataWordSize = Int 2;
config TMS320C28235.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
...
params.deviceHeader = String undefined;
config TMS320C28235.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x380400,
            len: 0x400,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "256K X 16 Flash memory",
            name: "FLASH",
            base: 0x300000,
            len: 0x03ff80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x33fff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28235.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28235.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28235.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28235.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28235.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28235.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28235.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28235

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28235.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C28235 ========
    21     *  The C28235 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C28235 inherits ITMS320C28xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name:    "PIEVECT",
    48                base:    0xD00,
    49                len:     0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["L03SARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "L03SARAM",
    57                base: 0x8000,
    58                len:  0x4000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["L47SARAM", {
    64                comment: "On-Chip RAM Memory",
    65                name: "L47SARAM",
    66                base: 0xC000,
    67                len:  0x4000,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["OTP", {
    73                comment: "1K X 16 OTP memory",
    74                name: "OTP",
    75                base: 0x380400,
    76                len:  0x400,
    77                page: 0,
    78                space: "code"
    79            }],
    80
    81            ["FLASH", {
    82                comment: "256K X 16 Flash memory",
    83                name: "FLASH",
    84                base: 0x300000,
    85                len:  0x03ff80,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BEGIN", {
    91                comment: "FLASH boot entry point",
    92                name: "BEGIN",
    93                base: 0x33fff6,
    94                len:  0x000002,
    95                page: 0,
    96                space: "code"
    97            }],
    98
    99            ["BOOTROM", {
   100                comment: "On-Chip Boot ROM",
   101                name: "BOOTROM",
   102                base: 0x3fe000,
   103                len:  0x1fc0,
   104                page: 0,
   105                space: "code"
   106            }],
   107        ];
   108    };
   109    /*
   110     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   111     */
   112


module ti.catalog.c2800.TMS320C28332

metaonly module ti.catalog.c2800.TMS320C28332
index URL

The C28332 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28332.xdc
var TMS320C28332 = xdc.useModule('ti.catalog.c2800.TMS320C28332');
per-instance config parameters
    var params = new TMS320C28332.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0xC000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x380400,
                    len: 0x400,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x330000,
                    len: 0x00ff80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x33fff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28332.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0xC000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x380400,
                len: 0x400,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x330000,
                len: 0x00ff80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x33fff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28332.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28332.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28332.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
...
params.dataWordSize = Int 2;
config TMS320C28332.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
...
params.deviceHeader = String undefined;
config TMS320C28332.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0xC000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x380400,
            len: 0x400,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x330000,
            len: 0x00ff80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x33fff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28332.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28332.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28332.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28332.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28332.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28332.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28332.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28332

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28332.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C28332 ========
    21     *  The C28332 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C28332 inherits ITMS320C283xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name:    "PIEVECT",
    48                base:    0xD00,
    49                len:     0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["L03SARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "L03SARAM",
    57                base: 0x8000,
    58                len:  0x4000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["L47SARAM", {
    64                comment: "On-Chip RAM Memory",
    65                name: "L47SARAM",
    66                base: 0xC000,
    67                len:  0x2000,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["OTP", {
    73                comment: "1K X 16 OTP memory",
    74                name: "OTP",
    75                base: 0x380400,
    76                len:  0x400,
    77                page: 0,
    78                space: "code"
    79            }],
    80
    81            ["FLASH", {
    82                comment: "64K X 16 Flash memory",
    83                name: "FLASH",
    84                base: 0x330000,
    85                len:  0x00ff80,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BEGIN", {
    91                comment: "FLASH boot entry point",
    92                name: "BEGIN",
    93                base: 0x33fff6,
    94                len:  0x000002,
    95                page: 0,
    96                space: "code"
    97            }],
    98
    99            ["BOOTROM", {
   100                comment: "On-Chip Boot ROM",
   101                name: "BOOTROM",
   102                base: 0x3fe000,
   103                len:  0x1fc0,
   104                page: 0,
   105                space: "code"
   106            }],
   107        ];
   108    };
   109    /*
   110     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   111     */
   112


module ti.catalog.c2800.TMS320C28334

metaonly module ti.catalog.c2800.TMS320C28334
index URL

The C28334 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28334.xdc
var TMS320C28334 = xdc.useModule('ti.catalog.c2800.TMS320C28334');
per-instance config parameters
    var params = new TMS320C28334.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x380400,
                    len: 0x400,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "128K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x320000,
                    len: 0x01ff80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x33fff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28334.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x380400,
                len: 0x400,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "128K X 16 Flash memory",
                name: "FLASH",
                base: 0x320000,
                len: 0x01ff80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x33fff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28334.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28334.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28334.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
...
params.dataWordSize = Int 2;
config TMS320C28334.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
...
params.deviceHeader = String undefined;
config TMS320C28334.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x380400,
            len: 0x400,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "128K X 16 Flash memory",
            name: "FLASH",
            base: 0x320000,
            len: 0x01ff80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x33fff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28334.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28334.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28334.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28334.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28334.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28334.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28334.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28334

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28334.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C28334 ========
    21     *  The C28334 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C28334 inherits ITMS320C283xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name:    "PIEVECT",
    48                base:    0xD00,
    49                len:     0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["L03SARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "L03SARAM",
    57                base: 0x8000,
    58                len:  0x4000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["L47SARAM", {
    64                comment: "On-Chip RAM Memory",
    65                name: "L47SARAM",
    66                base: 0xC000,
    67                len:  0x4000,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["OTP", {
    73                comment: "1K X 16 OTP memory",
    74                name: "OTP",
    75                base: 0x380400,
    76                len:  0x400,
    77                page: 0,
    78                space: "code"
    79            }],
    80
    81            ["FLASH", {
    82                comment: "128K X 16 Flash memory",
    83                name: "FLASH",
    84                base: 0x320000,
    85                len:  0x01ff80,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BEGIN", {
    91                comment: "FLASH boot entry point",
    92                name: "BEGIN",
    93                base: 0x33fff6,
    94                len:  0x000002,
    95                page: 0,
    96                space: "code"
    97            }],
    98
    99            ["BOOTROM", {
   100                comment: "On-Chip Boot ROM",
   101                name: "BOOTROM",
   102                base: 0x3fe000,
   103                len:  0x1fc0,
   104                page: 0,
   105                space: "code"
   106            }],
   107        ];
   108    };
   109    /*
   110     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   111     */
   112


module ti.catalog.c2800.TMS320C28335

metaonly module ti.catalog.c2800.TMS320C28335
index URL

The C28335 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28335.xdc
var TMS320C28335 = xdc.useModule('ti.catalog.c2800.TMS320C28335');
per-instance config parameters
    var params = new TMS320C28335.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x380400,
                    len: 0x400,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "256K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x300000,
                    len: 0x03ff80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x33fff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28335.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x380400,
                len: 0x400,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "256K X 16 Flash memory",
                name: "FLASH",
                base: 0x300000,
                len: 0x03ff80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x33fff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28335.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28335.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28335.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
...
params.dataWordSize = Int 2;
config TMS320C28335.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
...
params.deviceHeader = String undefined;
config TMS320C28335.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x380400,
            len: 0x400,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "256K X 16 Flash memory",
            name: "FLASH",
            base: 0x300000,
            len: 0x03ff80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x33fff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28335.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28335.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28335.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28335.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28335.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28335.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28335.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28335

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C28335.xdc ========
    15     *
    16     */
    17    package ti.catalog.c2800;
    18
    19    /*!
    20     *  ======== TMS320C28335 ========
    21     *  The C28335 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C28335 inherits ITMS320C283xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["MSARAM", {
    37                comment: "On-Chip RAM Memory",
    38                name: "MSARAM",
    39                base: 0x0,
    40                len:  0x800,
    41                page: 0,
    42                space: "code/data"
    43            }],
    44
    45            ["PIEVECT", {
    46                comment: "On-Chip PIEVECT RAM Memory",
    47                name:    "PIEVECT",
    48                base:    0xD00,
    49                len:     0x100,
    50                page: 1,
    51                space:   "data"
    52            }],
    53
    54            ["L03SARAM", {
    55                comment: "On-Chip RAM Memory",
    56                name: "L03SARAM",
    57                base: 0x8000,
    58                len:  0x4000,
    59                page: 0,
    60                space: "code/data"
    61            }],
    62
    63            ["L47SARAM", {
    64                comment: "On-Chip RAM Memory",
    65                name: "L47SARAM",
    66                base: 0xC000,
    67                len:  0x4000,
    68                page: 0,
    69                space: "code/data"
    70            }],
    71
    72            ["OTP", {
    73                comment: "1K X 16 OTP memory",
    74                name: "OTP",
    75                base: 0x380400,
    76                len:  0x400,
    77                page: 0,
    78                space: "code"
    79            }],
    80
    81            ["FLASH", {
    82                comment: "256K X 16 Flash memory",
    83                name: "FLASH",
    84                base: 0x300000,
    85                len:  0x03ff80,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BEGIN", {
    91                comment: "FLASH boot entry point",
    92                name: "BEGIN",
    93                base: 0x33fff6,
    94                len:  0x000002,
    95                page: 0,
    96                space: "code"
    97            }],
    98
    99            ["BOOTROM", {
   100                comment: "On-Chip Boot ROM",
   101                name: "BOOTROM",
   102                base: 0x3fe000,
   103                len:  0x1fc0,
   104                page: 0,
   105                space: "code"
   106            }],
   107        ];
   108    };
   109    /*
   110     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   111     */
   112


module ti.catalog.c2800.TMS320C28341

metaonly module ti.catalog.c2800.TMS320C28341
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28341.xdc
var TMS320C28341 = xdc.useModule('ti.catalog.c2800.TMS320C28341');
per-instance config parameters
    var params = new TMS320C28341.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "H01SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "H01SARAM",
                    base: 0x300000,
                    len: 0x010000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28341.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "H01SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H01SARAM",
                base: 0x300000,
                len: 0x010000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28341.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28341.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28341.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
...
params.dataWordSize = Int 2;
config TMS320C28341.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
...
params.deviceHeader = String undefined;
config TMS320C28341.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "H01SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H01SARAM",
            base: 0x300000,
            len: 0x010000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28341.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28341.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28341.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28341.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28341.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28341.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28341.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28341

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28341 inherits ITMS320C28342
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28342

metaonly module ti.catalog.c2800.TMS320C28342
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28342.xdc
var TMS320C28342 = xdc.useModule('ti.catalog.c2800.TMS320C28342');
per-instance config parameters
    var params = new TMS320C28342.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "H01SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "H01SARAM",
                    base: 0x300000,
                    len: 0x010000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28342.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "H01SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H01SARAM",
                base: 0x300000,
                len: 0x010000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28342.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28342.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28342.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
...
params.dataWordSize = Int 2;
config TMS320C28342.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
...
params.deviceHeader = String undefined;
config TMS320C28342.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "H01SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H01SARAM",
            base: 0x300000,
            len: 0x010000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28342.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28342.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28342.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28342.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28342.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28342.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28342.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28342

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28342 inherits ITMS320C28342
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28343

metaonly module ti.catalog.c2800.TMS320C28343
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28343.xdc
var TMS320C28343 = xdc.useModule('ti.catalog.c2800.TMS320C28343');
per-instance config parameters
    var params = new TMS320C28343.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0x10000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "H01SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "H01SARAM",
                    base: 0x300000,
                    len: 0x010000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28343.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0x10000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "H01SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H01SARAM",
                base: 0x300000,
                len: 0x010000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28343.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28343.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28343.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
...
params.dataWordSize = Int 2;
config TMS320C28343.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
...
params.deviceHeader = String undefined;
config TMS320C28343.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0x10000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "H01SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H01SARAM",
            base: 0x300000,
            len: 0x010000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28343.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28343.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28343.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28343.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28343.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28343.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28343.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28343

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28343 inherits ITMS320C28344
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28344

metaonly module ti.catalog.c2800.TMS320C28344
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28344.xdc
var TMS320C28344 = xdc.useModule('ti.catalog.c2800.TMS320C28344');
per-instance config parameters
    var params = new TMS320C28344.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0x10000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "H01SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "H01SARAM",
                    base: 0x300000,
                    len: 0x010000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28344.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0x10000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "H01SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H01SARAM",
                base: 0x300000,
                len: 0x010000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28344.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28344.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28344.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
...
params.dataWordSize = Int 2;
config TMS320C28344.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
...
params.deviceHeader = String undefined;
config TMS320C28344.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0x10000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "H01SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H01SARAM",
            base: 0x300000,
            len: 0x010000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28344.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28344.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28344.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28344.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28344.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28344.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28344.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28344

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28344 inherits ITMS320C28344
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28345

metaonly module ti.catalog.c2800.TMS320C28345
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28345.xdc
var TMS320C28345 = xdc.useModule('ti.catalog.c2800.TMS320C28345');
per-instance config parameters
    var params = new TMS320C28345.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0x10000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "H05SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "H05SARAM",
                    base: 0x300000,
                    len: 0x030000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28345.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0x10000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "H05SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H05SARAM",
                base: 0x300000,
                len: 0x030000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28345.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28345.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28345.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
...
params.dataWordSize = Int 2;
config TMS320C28345.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
...
params.deviceHeader = String undefined;
config TMS320C28345.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0x10000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "H05SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H05SARAM",
            base: 0x300000,
            len: 0x030000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28345.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28345.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28345.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28345.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28345.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28345.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28345.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28345

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28345 inherits ITMS320C28346
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28346

metaonly module ti.catalog.c2800.TMS320C28346
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320C28346.xdc
var TMS320C28346 = xdc.useModule('ti.catalog.c2800.TMS320C28346');
per-instance config parameters
    var params = new TMS320C28346.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L03SARAM",
                    base: 0x8000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L47SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "L47SARAM",
                    base: 0x10000,
                    len: 0x8000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "H05SARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "H05SARAM",
                    base: 0x300000,
                    len: 0x030000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3fe000,
                    len: 0x1fc0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C28346.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L03SARAM",
                base: 0x8000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L47SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "L47SARAM",
                base: 0x10000,
                len: 0x8000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "H05SARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "H05SARAM",
                base: 0x300000,
                len: 0x030000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3fe000,
                len: 0x1fc0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C28346.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C28346.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C28346.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
...
params.dataWordSize = Int 2;
config TMS320C28346.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
...
params.deviceHeader = String undefined;
config TMS320C28346.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L03SARAM",
            base: 0x8000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L47SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "L47SARAM",
            base: 0x10000,
            len: 0x8000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "H05SARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "H05SARAM",
            base: 0x300000,
            len: 0x030000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3fe000,
            len: 0x1fc0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320C28346.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C28346.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C28346.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C28346.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C28346.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C28346.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C28346.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:31 GMT


module ti.catalog.c2800.TMS320C28346

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    metaonly module TMS320C28346 inherits ITMS320C28346
    14    {
    15    }
    16    /*
    17     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    18     */
    19


module ti.catalog.c2800.TMS320F28062

metaonly module ti.catalog.c2800.TMS320F28062
index URL

The F28062 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320F28062.xdc
var TMS320F28062 = xdc.useModule('ti.catalog.c2800.TMS320F28062');
per-instance config parameters
    var params = new TMS320F28062.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03DPSARAM",
                {
                    comment: "L0-L3 DPSARAM (8K x 16)",
                    name: "L03DPSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L4SARAM",
                {
                    comment: "L4 SARAM (8K x 16)",
                    name: "L4SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L5DPSARAM",
                {
                    comment: "L5 DPSARAM (8K x 16)",
                    name: "L5DPSARAM",
                    base: 0xC000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x0003FA,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3E8000,
                    len: 0x00FF80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3F8000,
                    len: 0x007FC0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320F28062.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L5DPSARAM",
            {
                comment: "L5 DPSARAM (8K x 16)",
                name: "L5DPSARAM",
                base: 0xC000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3E8000,
                len: 0x00FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320F28062.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320F28062.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320F28062.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
...
params.dataWordSize = Int 2;
config TMS320F28062.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
...
params.deviceHeader = String undefined;
config TMS320F28062.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L5DPSARAM",
        {
            comment: "L5 DPSARAM (8K x 16)",
            name: "L5DPSARAM",
            base: 0xC000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3E8000,
            len: 0x00FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320F28062.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
...
params.minDataUnitSize = Int 1;
config TMS320F28062.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
...
params.minProgUnitSize = Int 2;
config TMS320F28062.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320F28062.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320F28062.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320F28062.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320F28062.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:32 GMT


module ti.catalog.c2800.TMS320F28062

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320F28062.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320F28062 ========
    20     *  The F28062 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320F28062 inherits ITMS320C283xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["L03DPSARAM", {
    54                comment: "L0-L3 DPSARAM (8K x 16)",
    55                name: "L03DPSARAM",
    56                base: 0x8000,
    57                len:  0x2000,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["L4SARAM", {
    63                comment: "L4 SARAM (8K x 16)",
    64                name: "L4SARAM",
    65                base: 0xA000,
    66                len:  0x2000,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["L5DPSARAM", {
    72                comment: "L5 DPSARAM (8K x 16)",
    73                name: "L5DPSARAM",
    74                base: 0xC000,
    75                len:  0x2000,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["OTP", {
    81                comment: "1K X 16 OTP memory",
    82                name: "OTP",
    83                base: 0x3D7800,
    84                len:  0x0003FA,
    85                page: 0,
    86                space: "code"
    87            }],
    88
    89            ["FLASH", {
    90                comment: "64K X 16 Flash memory",
    91                name: "FLASH",
    92                base: 0x3E8000,
    93                len:  0x00FF80,
    94                page: 0,
    95                space: "code"
    96            }],
    97
    98            ["BEGIN", {
    99                comment: "FLASH boot entry point",
   100                name: "BEGIN",
   101                base: 0x3f7ff6,
   102                len:  0x000002,
   103                page: 0,
   104                space: "code"
   105            }],
   106
   107            ["BOOTROM", {
   108                comment: "On-Chip Boot ROM",
   109                name: "BOOTROM",
   110                base: 0x3F8000,
   111                len:  0x007FC0,
   112                page: 0,
   113                space: "code"
   114            }],
   115        ];
   116    }
   117    /*
   118     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   119     */
   120


module ti.catalog.c2800.TMS320F28063

metaonly module ti.catalog.c2800.TMS320F28063
index URL

The F28063 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320F28063.xdc
var TMS320F28063 = xdc.useModule('ti.catalog.c2800.TMS320F28063');
per-instance config parameters
    var params = new TMS320F28063.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03DPSARAM",
                {
                    comment: "L0-L3 DPSARAM (8K x 16)",
                    name: "L03DPSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L4SARAM",
                {
                    comment: "L4 SARAM (8K x 16)",
                    name: "L4SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L56DPSARAM",
                {
                    comment: "L5-L6 DPSARAM (16K x 16)",
                    name: "L56DPSARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x0003FA,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3E8000,
                    len: 0x00FF80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3F8000,
                    len: 0x007FC0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320F28063.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L56DPSARAM",
            {
                comment: "L5-L6 DPSARAM (16K x 16)",
                name: "L56DPSARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3E8000,
                len: 0x00FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320F28063.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320F28063.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320F28063.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
...
params.dataWordSize = Int 2;
config TMS320F28063.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
...
params.deviceHeader = String undefined;
config TMS320F28063.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L56DPSARAM",
        {
            comment: "L5-L6 DPSARAM (16K x 16)",
            name: "L56DPSARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3E8000,
            len: 0x00FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320F28063.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
...
params.minDataUnitSize = Int 1;
config TMS320F28063.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
...
params.minProgUnitSize = Int 2;
config TMS320F28063.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320F28063.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320F28063.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320F28063.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320F28063.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:32 GMT


module ti.catalog.c2800.TMS320F28063

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320F28063.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320F28063 ========
    20     *  The F28063 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320F28063 inherits ITMS320C283xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["L03DPSARAM", {
    54                comment: "L0-L3 DPSARAM (8K x 16)",
    55                name: "L03DPSARAM",
    56                base: 0x8000,
    57                len:  0x2000,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["L4SARAM", {
    63                comment: "L4 SARAM (8K x 16)",
    64                name: "L4SARAM",
    65                base: 0xA000,
    66                len:  0x2000,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["L56DPSARAM", {
    72                comment: "L5-L6 DPSARAM (16K x 16)",
    73                name: "L56DPSARAM",
    74                base: 0xC000,
    75                len:  0x4000,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["OTP", {
    81                comment: "1K X 16 OTP memory",
    82                name: "OTP",
    83                base: 0x3D7800,
    84                len:  0x0003FA,
    85                page: 0,
    86                space: "code"
    87            }],
    88
    89            ["FLASH", {
    90                comment: "64K X 16 Flash memory",
    91                name: "FLASH",
    92                base: 0x3E8000,
    93                len:  0x00FF80,
    94                page: 0,
    95                space: "code"
    96            }],
    97
    98            ["BEGIN", {
    99                comment: "FLASH boot entry point",
   100                name: "BEGIN",
   101                base: 0x3f7ff6,
   102                len:  0x000002,
   103                page: 0,
   104                space: "code"
   105            }],
   106
   107            ["BOOTROM", {
   108                comment: "On-Chip Boot ROM",
   109                name: "BOOTROM",
   110                base: 0x3F8000,
   111                len:  0x007FC0,
   112                page: 0,
   113                space: "code"
   114            }],
   115        ];
   116    }
   117    /*
   118     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   119     */
   120


module ti.catalog.c2800.TMS320F28064

metaonly module ti.catalog.c2800.TMS320F28064
index URL

The F28064 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320F28064.xdc
var TMS320F28064 = xdc.useModule('ti.catalog.c2800.TMS320F28064');
per-instance config parameters
    var params = new TMS320F28064.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03DPSARAM",
                {
                    comment: "L0-L3 DPSARAM (8K x 16)",
                    name: "L03DPSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L4SARAM",
                {
                    comment: "L4 SARAM (8K x 16)",
                    name: "L4SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L56DPSARAM",
                {
                    comment: "L5-L6 DPSARAM (16K x 16)",
                    name: "L56DPSARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L78DPSARAM",
                {
                    comment: "L7-L8 DPSARAM (16K x 16)",
                    name: "L78DPSARAM",
                    base: 0x10000,
                    len: 0x04000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x0003FA,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3E8000,
                    len: 0x00FF80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3F8000,
                    len: 0x007FC0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320F28064.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L56DPSARAM",
            {
                comment: "L5-L6 DPSARAM (16K x 16)",
                name: "L56DPSARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L78DPSARAM",
            {
                comment: "L7-L8 DPSARAM (16K x 16)",
                name: "L78DPSARAM",
                base: 0x10000,
                len: 0x04000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3E8000,
                len: 0x00FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320F28064.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320F28064.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320F28064.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
...
params.dataWordSize = Int 2;
config TMS320F28064.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
...
params.deviceHeader = String undefined;
config TMS320F28064.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L56DPSARAM",
        {
            comment: "L5-L6 DPSARAM (16K x 16)",
            name: "L56DPSARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L78DPSARAM",
        {
            comment: "L7-L8 DPSARAM (16K x 16)",
            name: "L78DPSARAM",
            base: 0x10000,
            len: 0x04000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3E8000,
            len: 0x00FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320F28064.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
...
params.minDataUnitSize = Int 1;
config TMS320F28064.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
...
params.minProgUnitSize = Int 2;
config TMS320F28064.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320F28064.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320F28064.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320F28064.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320F28064.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:32 GMT


module ti.catalog.c2800.TMS320F28064

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320F28064.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320F28064 ========
    20     *  The F28064 device data sheet module.
    21     *
    22     */
    23    metaonly module TMS320F28064 inherits ITMS320F28065
    24    {
    25    }
    26    /*
    27     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c2800.TMS320F28065

metaonly module ti.catalog.c2800.TMS320F28065
index URL

The F28065 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320F28065.xdc
var TMS320F28065 = xdc.useModule('ti.catalog.c2800.TMS320F28065');
per-instance config parameters
    var params = new TMS320F28065.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03DPSARAM",
                {
                    comment: "L0-L3 DPSARAM (8K x 16)",
                    name: "L03DPSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L4SARAM",
                {
                    comment: "L4 SARAM (8K x 16)",
                    name: "L4SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L56DPSARAM",
                {
                    comment: "L5-L6 DPSARAM (16K x 16)",
                    name: "L56DPSARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L78DPSARAM",
                {
                    comment: "L7-L8 DPSARAM (16K x 16)",
                    name: "L78DPSARAM",
                    base: 0x10000,
                    len: 0x04000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x0003FA,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "64K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3E8000,
                    len: 0x00FF80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3F8000,
                    len: 0x007FC0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320F28065.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L56DPSARAM",
            {
                comment: "L5-L6 DPSARAM (16K x 16)",
                name: "L56DPSARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L78DPSARAM",
            {
                comment: "L7-L8 DPSARAM (16K x 16)",
                name: "L78DPSARAM",
                base: 0x10000,
                len: 0x04000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3E8000,
                len: 0x00FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320F28065.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320F28065.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320F28065.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
...
params.dataWordSize = Int 2;
config TMS320F28065.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
...
params.deviceHeader = String undefined;
config TMS320F28065.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L56DPSARAM",
        {
            comment: "L5-L6 DPSARAM (16K x 16)",
            name: "L56DPSARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L78DPSARAM",
        {
            comment: "L7-L8 DPSARAM (16K x 16)",
            name: "L78DPSARAM",
            base: 0x10000,
            len: 0x04000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3E8000,
            len: 0x00FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320F28065.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
...
params.minDataUnitSize = Int 1;
config TMS320F28065.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
...
params.minProgUnitSize = Int 2;
config TMS320F28065.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320F28065.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320F28065.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320F28065.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320F28065.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:32 GMT


module ti.catalog.c2800.TMS320F28065

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320F28065.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320F28065 ========
    20     *  The F28065 device data sheet module.
    21     *
    22     */
    23    metaonly module TMS320F28065 inherits ITMS320F28065
    24    {
    25    }
    26    /*
    27     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c2800.TMS320F28066

metaonly module ti.catalog.c2800.TMS320F28066
index URL

The F28066 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320F28066.xdc
var TMS320F28066 = xdc.useModule('ti.catalog.c2800.TMS320F28066');
per-instance config parameters
    var params = new TMS320F28066.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03DPSARAM",
                {
                    comment: "L0-L3 DPSARAM (8K x 16)",
                    name: "L03DPSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L4SARAM",
                {
                    comment: "L4 SARAM (8K x 16)",
                    name: "L4SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L56DPSARAM",
                {
                    comment: "L5-L6 DPSARAM (16K x 16)",
                    name: "L56DPSARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x0003FA,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "128K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3D8000,
                    len: 0x01FF80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3F8000,
                    len: 0x007FC0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320F28066.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L56DPSARAM",
            {
                comment: "L5-L6 DPSARAM (16K x 16)",
                name: "L56DPSARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "128K X 16 Flash memory",
                name: "FLASH",
                base: 0x3D8000,
                len: 0x01FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320F28066.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320F28066.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320F28066.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
...
params.dataWordSize = Int 2;
config TMS320F28066.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
...
params.deviceHeader = String undefined;
config TMS320F28066.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L56DPSARAM",
        {
            comment: "L5-L6 DPSARAM (16K x 16)",
            name: "L56DPSARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "128K X 16 Flash memory",
            name: "FLASH",
            base: 0x3D8000,
            len: 0x01FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320F28066.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
...
params.minDataUnitSize = Int 1;
config TMS320F28066.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
...
params.minProgUnitSize = Int 2;
config TMS320F28066.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320F28066.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320F28066.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320F28066.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320F28066.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:32 GMT


module ti.catalog.c2800.TMS320F28066

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320F28066.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== ITMS320F28066 ========
    20     *  The F28066 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320F28066 inherits ITMS320C283xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["MSARAM", {
    36                comment: "On-Chip RAM Memory",
    37                name: "MSARAM",
    38                base: 0x0,
    39                len:  0x800,
    40                page: 0,
    41                space: "code/data"
    42            }],
    43
    44            ["PIEVECT", {
    45                comment: "On-Chip PIEVECT RAM Memory",
    46                name:    "PIEVECT",
    47                base:    0xD00,
    48                len:     0x100,
    49                page: 1,
    50                space:   "data"
    51            }],
    52
    53            ["L03DPSARAM", {
    54                comment: "L0-L3 DPSARAM (8K x 16)",
    55                name: "L03DPSARAM",
    56                base: 0x8000,
    57                len:  0x2000,
    58                page: 0,
    59                space: "code/data"
    60            }],
    61
    62            ["L4SARAM", {
    63                comment: "L4 SARAM (8K x 16)",
    64                name: "L4SARAM",
    65                base: 0xA000,
    66                len:  0x2000,
    67                page: 0,
    68                space: "code/data"
    69            }],
    70
    71            ["L56DPSARAM", {
    72                comment: "L5-L6 DPSARAM (16K x 16)",
    73                name: "L56DPSARAM",
    74                base: 0xC000,
    75                len:  0x4000,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["OTP", {
    81                comment: "1K X 16 OTP memory",
    82                name: "OTP",
    83                base: 0x3D7800,
    84                len:  0x0003FA,
    85                page: 0,
    86                space: "code"
    87            }],
    88
    89            ["FLASH", {
    90                comment: "128K X 16 Flash memory",
    91                name: "FLASH",
    92                base: 0x3D8000,
    93                len:  0x01FF80,
    94                page: 0,
    95                space: "code"
    96            }],
    97
    98            ["BEGIN", {
    99                comment: "FLASH boot entry point",
   100                name: "BEGIN",
   101                base: 0x3f7ff6,
   102                len:  0x000002,
   103                page: 0,
   104                space: "code"
   105            }],
   106
   107            ["BOOTROM", {
   108                comment: "On-Chip Boot ROM",
   109                name: "BOOTROM",
   110                base: 0x3F8000,
   111                len:  0x007FC0,
   112                page: 0,
   113                space: "code"
   114            }],
   115        ];
   116    }
   117    /*
   118     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
   119     */
   120


module ti.catalog.c2800.TMS320F28067

metaonly module ti.catalog.c2800.TMS320F28067
index URL

The F28067 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320F28067.xdc
var TMS320F28067 = xdc.useModule('ti.catalog.c2800.TMS320F28067');
per-instance config parameters
    var params = new TMS320F28067.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03DPSARAM",
                {
                    comment: "L0-L3 DPSARAM (8K x 16)",
                    name: "L03DPSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L4SARAM",
                {
                    comment: "L4 SARAM (8K x 16)",
                    name: "L4SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L56DPSARAM",
                {
                    comment: "L5-L6 DPSARAM (16K x 16)",
                    name: "L56DPSARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L78DPSARAM",
                {
                    comment: "L7-L8 DPSARAM (16K x 16)",
                    name: "L78DPSARAM",
                    base: 0x10000,
                    len: 0x04000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x0003FA,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "128K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3D8000,
                    len: 0x01FF80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3F8000,
                    len: 0x007FC0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320F28067.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L56DPSARAM",
            {
                comment: "L5-L6 DPSARAM (16K x 16)",
                name: "L56DPSARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L78DPSARAM",
            {
                comment: "L7-L8 DPSARAM (16K x 16)",
                name: "L78DPSARAM",
                base: 0x10000,
                len: 0x04000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "128K X 16 Flash memory",
                name: "FLASH",
                base: 0x3D8000,
                len: 0x01FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320F28067.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320F28067.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320F28067.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
...
params.dataWordSize = Int 2;
config TMS320F28067.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
...
params.deviceHeader = String undefined;
config TMS320F28067.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L56DPSARAM",
        {
            comment: "L5-L6 DPSARAM (16K x 16)",
            name: "L56DPSARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L78DPSARAM",
        {
            comment: "L7-L8 DPSARAM (16K x 16)",
            name: "L78DPSARAM",
            base: 0x10000,
            len: 0x04000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "128K X 16 Flash memory",
            name: "FLASH",
            base: 0x3D8000,
            len: 0x01FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320F28067.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
...
params.minDataUnitSize = Int 1;
config TMS320F28067.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
...
params.minProgUnitSize = Int 2;
config TMS320F28067.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320F28067.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320F28067.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320F28067.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320F28067.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:32 GMT


module ti.catalog.c2800.TMS320F28067

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320F28067.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320F28067 ========
    20     *  The F28067 device data sheet module.
    21     *
    22     */
    23    metaonly module TMS320F28067 inherits ITMS320F28069
    24    {
    25    }
    26    /*
    27     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c2800.TMS320F28068

metaonly module ti.catalog.c2800.TMS320F28068
index URL

The F28068 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320F28068.xdc
var TMS320F28068 = xdc.useModule('ti.catalog.c2800.TMS320F28068');
per-instance config parameters
    var params = new TMS320F28068.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03DPSARAM",
                {
                    comment: "L0-L3 DPSARAM (8K x 16)",
                    name: "L03DPSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L4SARAM",
                {
                    comment: "L4 SARAM (8K x 16)",
                    name: "L4SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L56DPSARAM",
                {
                    comment: "L5-L6 DPSARAM (16K x 16)",
                    name: "L56DPSARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L78DPSARAM",
                {
                    comment: "L7-L8 DPSARAM (16K x 16)",
                    name: "L78DPSARAM",
                    base: 0x10000,
                    len: 0x04000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x0003FA,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "128K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3D8000,
                    len: 0x01FF80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3F8000,
                    len: 0x007FC0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320F28068.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L56DPSARAM",
            {
                comment: "L5-L6 DPSARAM (16K x 16)",
                name: "L56DPSARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L78DPSARAM",
            {
                comment: "L7-L8 DPSARAM (16K x 16)",
                name: "L78DPSARAM",
                base: 0x10000,
                len: 0x04000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "128K X 16 Flash memory",
                name: "FLASH",
                base: 0x3D8000,
                len: 0x01FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320F28068.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320F28068.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320F28068.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
...
params.dataWordSize = Int 2;
config TMS320F28068.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
...
params.deviceHeader = String undefined;
config TMS320F28068.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L56DPSARAM",
        {
            comment: "L5-L6 DPSARAM (16K x 16)",
            name: "L56DPSARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L78DPSARAM",
        {
            comment: "L7-L8 DPSARAM (16K x 16)",
            name: "L78DPSARAM",
            base: 0x10000,
            len: 0x04000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "128K X 16 Flash memory",
            name: "FLASH",
            base: 0x3D8000,
            len: 0x01FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320F28068.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
...
params.minDataUnitSize = Int 1;
config TMS320F28068.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
...
params.minProgUnitSize = Int 2;
config TMS320F28068.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320F28068.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320F28068.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320F28068.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320F28068.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:32 GMT


module ti.catalog.c2800.TMS320F28068

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320F28068.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320F28068 ========
    20     *  The F28068 device data sheet module.
    21     *
    22     */
    23    metaonly module TMS320F28068 inherits ITMS320F28069
    24    {
    25    }
    26    /*
    27     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c2800.TMS320F28069

metaonly module ti.catalog.c2800.TMS320F28069
index URL

The F28069 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c2800/TMS320F28069.xdc
var TMS320F28069 = xdc.useModule('ti.catalog.c2800.TMS320F28069');
per-instance config parameters
    var params = new TMS320F28069.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "2800";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
            ],
            [
                "L03DPSARAM",
                {
                    comment: "L0-L3 DPSARAM (8K x 16)",
                    name: "L03DPSARAM",
                    base: 0x8000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L4SARAM",
                {
                    comment: "L4 SARAM (8K x 16)",
                    name: "L4SARAM",
                    base: 0xA000,
                    len: 0x2000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L56DPSARAM",
                {
                    comment: "L5-L6 DPSARAM (16K x 16)",
                    name: "L56DPSARAM",
                    base: 0xC000,
                    len: 0x4000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "L78DPSARAM",
                {
                    comment: "L7-L8 DPSARAM (16K x 16)",
                    name: "L78DPSARAM",
                    base: 0x10000,
                    len: 0x04000,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "OTP",
                {
                    comment: "1K X 16 OTP memory",
                    name: "OTP",
                    base: 0x3D7800,
                    len: 0x0003FA,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "FLASH",
                {
                    comment: "128K X 16 Flash memory",
                    name: "FLASH",
                    base: 0x3D8000,
                    len: 0x01FF80,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BEGIN",
                {
                    comment: "FLASH boot entry point",
                    name: "BEGIN",
                    base: 0x3f7ff6,
                    len: 0x000002,
                    page: 0,
                    space: "code"
                }
            ],
            [
                "BOOTROM",
                {
                    comment: "On-Chip Boot ROM",
                    name: "BOOTROM",
                    base: 0x3F8000,
                    len: 0x007FC0,
                    page: 0,
                    space: "code"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320F28069.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
// Instance config-params object
    params.cpuCore = String "2800";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MSARAM",
            {
                comment: "On-Chip RAM Memory",
                name: "MSARAM",
                base: 0x0,
                len: 0x800,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "PIEVECT",
            {
                comment: "On-Chip PIEVECT RAM Memory",
                name: "PIEVECT",
                base: 0xD00,
                len: 0x100,
                page: 1,
                space: "data"
            }
        ],
        [
            "L03DPSARAM",
            {
                comment: "L0-L3 DPSARAM (8K x 16)",
                name: "L03DPSARAM",
                base: 0x8000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L4SARAM",
            {
                comment: "L4 SARAM (8K x 16)",
                name: "L4SARAM",
                base: 0xA000,
                len: 0x2000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L56DPSARAM",
            {
                comment: "L5-L6 DPSARAM (16K x 16)",
                name: "L56DPSARAM",
                base: 0xC000,
                len: 0x4000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "L78DPSARAM",
            {
                comment: "L7-L8 DPSARAM (16K x 16)",
                name: "L78DPSARAM",
                base: 0x10000,
                len: 0x04000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "OTP",
            {
                comment: "1K X 16 OTP memory",
                name: "OTP",
                base: 0x3D7800,
                len: 0x0003FA,
                page: 0,
                space: "code"
            }
        ],
        [
            "FLASH",
            {
                comment: "128K X 16 Flash memory",
                name: "FLASH",
                base: 0x3D8000,
                len: 0x01FF80,
                page: 0,
                space: "code"
            }
        ],
        [
            "BEGIN",
            {
                comment: "FLASH boot entry point",
                name: "BEGIN",
                base: 0x3f7ff6,
                len: 0x000002,
                page: 0,
                space: "code"
            }
        ],
        [
            "BOOTROM",
            {
                comment: "On-Chip Boot ROM",
                name: "BOOTROM",
                base: 0x3F8000,
                len: 0x007FC0,
                page: 0,
                space: "code"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320F28069.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
...
params.cpuCore = String "2800";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320F28069.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320F28069.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
...
params.dataWordSize = Int 2;
config TMS320F28069.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
...
params.deviceHeader = String undefined;
config TMS320F28069.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MSARAM",
        {
            comment: "On-Chip RAM Memory",
            name: "MSARAM",
            base: 0x0,
            len: 0x800,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "PIEVECT",
        {
            comment: "On-Chip PIEVECT RAM Memory",
            name: "PIEVECT",
            base: 0xD00,
            len: 0x100,
            page: 1,
            space: "data"
        }
    ],
    [
        "L03DPSARAM",
        {
            comment: "L0-L3 DPSARAM (8K x 16)",
            name: "L03DPSARAM",
            base: 0x8000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L4SARAM",
        {
            comment: "L4 SARAM (8K x 16)",
            name: "L4SARAM",
            base: 0xA000,
            len: 0x2000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L56DPSARAM",
        {
            comment: "L5-L6 DPSARAM (16K x 16)",
            name: "L56DPSARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "L78DPSARAM",
        {
            comment: "L7-L8 DPSARAM (16K x 16)",
            name: "L78DPSARAM",
            base: 0x10000,
            len: 0x04000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "OTP",
        {
            comment: "1K X 16 OTP memory",
            name: "OTP",
            base: 0x3D7800,
            len: 0x0003FA,
            page: 0,
            space: "code"
        }
    ],
    [
        "FLASH",
        {
            comment: "128K X 16 Flash memory",
            name: "FLASH",
            base: 0x3D8000,
            len: 0x01FF80,
            page: 0,
            space: "code"
        }
    ],
    [
        "BEGIN",
        {
            comment: "FLASH boot entry point",
            name: "BEGIN",
            base: 0x3f7ff6,
            len: 0x000002,
            page: 0,
            space: "code"
        }
    ],
    [
        "BOOTROM",
        {
            comment: "On-Chip Boot ROM",
            name: "BOOTROM",
            base: 0x3F8000,
            len: 0x007FC0,
            page: 0,
            space: "code"
        }
    ]
];
config TMS320F28069.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
...
params.minDataUnitSize = Int 1;
config TMS320F28069.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
...
params.minProgUnitSize = Int 2;
config TMS320F28069.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320F28069.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320F28069.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320F28069.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320F28069.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:32 GMT


module ti.catalog.c2800.TMS320F28069

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320F28069.xdc ========
    15     */
    16    package ti.catalog.c2800;
    17
    18    /*!
    19     *  ======== TMS320F28069 ========
    20     *  The F28069 device data sheet module.
    21     *
    22     */
    23    metaonly module TMS320F28069 inherits ITMS320F28069
    24    {
    25    }
    26    /*
    27     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,401; 8-17-2012 22:13:26; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


package ti.catalog.c2800.concertoInit
index URL

Concerto 28xx boot time initialization support

XDCspec declarations sourced in ti/catalog/c2800/concertoInit/package.xdc
package ti.catalog.c2800.concertoInit [1, 0, 0] {
    module Boot;
    // Concerto C28 Boot Support
}
generated on Thu, 08 Nov 2012 02:15:33 GMT


package ti.catalog.c2800.concertoInit

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ti.catalog.c2800.concertoInit ========
    20     *  Concerto 28xx boot time initialization support
    21     */
    22    package ti.catalog.c2800.concertoInit[1,0,0] {
    23        module Boot;
    24    }
    25    /*
    26     *  @(#) ti.catalog.c2800.concertoInit; 1, 0, 0,34; 8-17-2012 22:13:23; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.catalog.c2800.concertoInit.Boot
index URL

Concerto C28 Boot Support

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This Boot module can be used to generate a small section that supports booting the C28 processor from Flash. It consists of a single "LB _c_int00" instruction. [ more ... ]
C synopsis target-domain sourced in ti/catalog/c2800/concertoInit/Boot.xdc
#include <ti/catalog/c2800/concertoInit/Boot.h>
DETAILS
This Boot module can be used to generate a small section that supports booting the C28 processor from Flash. It consists of a single "LB _c_int00" instruction.
When bootFromFlash is true, the instruction will be placed at "BEGIN", as defined in the linker command file.
Boot also supports initializing Flash controller wait states, enabling program prefetches, and data caching within the Flash controller.
XDCscript usage meta-domain sourced in ti/catalog/c2800/concertoInit/Boot.xdc
var Boot = xdc.useModule('ti.catalog.c2800.concertoInit.Boot');
module-wide config parameters
     Boot.bootFromFlash// Boot from Flash flag. Default is true = Bool true;
     Boot.configureFlashWaitStates// Flash controller wait states configuration flag, default is true = Bool true;
     Boot.enableFlashDataCache// Flash controller data cache enable flag, default is true = Bool true;
     Boot.enableFlashProgramPrefetch// Flash controller program prefetch enable flag, default is false = Bool false;
metaonly config Boot.bootFromFlash // module-wide
index URL

Boot from Flash flag. Default is true

XDCscript usage meta-domain
Boot.bootFromFlash = Bool true;
DETAILS
Set to true to enable booting the C28 from Flash.
metaonly config Boot.configureFlashWaitStates // module-wide
index URL

Flash controller wait states configuration flag, default is true

XDCscript usage meta-domain
Boot.configureFlashWaitStates = Bool true;
DETAILS
Set to true to configure the Flash controller wait states. The number of wait states is computed based upon the CPU frequency.
metaonly config Boot.enableFlashDataCache // module-wide
index URL

Flash controller data cache enable flag, default is true

XDCscript usage meta-domain
Boot.enableFlashDataCache = Bool true;
DETAILS
Set to true to enable the Flash controller's data cache.
metaonly config Boot.enableFlashProgramPrefetch // module-wide
index URL

Flash controller program prefetch enable flag, default is false

XDCscript usage meta-domain
Boot.enableFlashProgramPrefetch = Bool false;
DETAILS
Set to true to enable the Flash controller's program prefetch.
WARNING: Program prefetch must not be enabled on pre Revision A devices if there are any fast branch instructions in the program image. See the device errata for more information.
generated on Thu, 08 Nov 2012 02:15:33 GMT


module ti.catalog.c2800.concertoInit.Boot

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Boot.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c2800.concertoInit;
    19
    20    /*!
    21     *  ======== Boot ========
    22     *  Concerto C28 Boot Support.
    23     *
    24     *  This Boot module can be used to generate a small section that supports
    25     *  booting the C28 processor from Flash.  It consists of a single
    26     *  "LB _c_int00" instruction.
    27     *
    28     *  When `{@link #bootFromFlash}` is true, the instruction will be placed
    29     *  at "BEGIN", as defined in the linker command file.
    30     *
    31     *  Boot also supports initializing Flash controller wait states, enabling
    32     *  program prefetches, and data caching within the Flash controller.
    33     */
    34    @Template("./Boot.xdt")
    35    @NoRuntime
    36    module Boot
    37    {
    38        /*!
    39         *  Boot from Flash flag.  Default is true.
    40         *
    41         *  Set to true to enable booting the C28 from Flash.
    42         */
    43        metaonly config Bool bootFromFlash = true;
    44
    45        /*!
    46         *  Flash controller wait states configuration flag, default is true.
    47         *
    48         *  Set to true to configure the Flash controller wait states.  The number
    49         *  of wait states is computed based upon the CPU frequency.
    50         */
    51        metaonly config Bool configureFlashWaitStates = true;
    52
    53        /*!
    54         *  Flash controller program prefetch enable flag, default is false.
    55         *
    56         *  Set to true to enable the Flash controller's program prefetch.
    57         *
    58         *  WARNING: Program prefetch must not be enabled on pre Revision A devices
    59         *  if there are any fast branch instructions in the program image.  See
    60         *  the device errata for more information.
    61         */
    62        metaonly config Bool enableFlashProgramPrefetch = false;
    63
    64        /*!
    65         *  Flash controller data cache enable flag, default is true.
    66         *
    67         *  Set to true to enable the Flash controller's data cache.
    68         */
    69        metaonly config Bool enableFlashDataCache = true;
    70
    71    internal:
    72
    73        /* The computed Flash wait states */
    74        metaonly config UInt flashWaitStates = 3;
    75    };
    76    /*
    77     *  @(#) ti.catalog.c2800.concertoInit; 1, 0, 0,34; 8-17-2012 22:13:23; /db/ztree/library/trees/platform/platform-n27x/src/
    78     */
    79


package ti.catalog.c2800.init
index URL

C28xx boot time initialization support

XDCspec declarations sourced in ti/catalog/c2800/init/package.xdc
package ti.catalog.c2800.init [1, 0, 0] {
    module Boot;
    // 28x Boot Support
}
generated on Thu, 08 Nov 2012 02:15:33 GMT


package ti.catalog.c2800.init

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ti.catalog.c2800.init ========
    20     *  C28xx boot time initialization support
    21     */
    22    package ti.catalog.c2800.init[1,0,0] {
    23        module Boot;
    24    }
    25    /*
    26     *  @(#) ti.catalog.c2800.init; 1, 0, 0,250; 8-17-2012 22:13:24; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.catalog.c2800.init.Boot
index URL

28x Boot Support

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
The Boot module supports boot initialization for the 28x devices. A special boot init function is created based on the configuration settings for this module. This function is hooked into the xdc.runtime.Reset.fxns[] array and called very early at boot time (prior to cinit processing). [ more ... ]
C synopsis target-domain sourced in ti/catalog/c2800/init/Boot.xdc
#include <ti/catalog/c2800/init/Boot.h>
DETAILS
The Boot module supports boot initialization for the 28x devices. A special boot init function is created based on the configuration settings for this module. This function is hooked into the xdc.runtime.Reset.fxns[] array and called very early at boot time (prior to cinit processing).
The code to support the boot module is placed in a separate section named ".text:.bootCodeSection" to allow placement of this section in the linker .cmd file if necessary. This section is a subsection of the ".text" section so this code will be placed into the .text section unless explicitly placed, either through Program.sectMap or through a linker command file.
XDCscript usage meta-domain sourced in ti/catalog/c2800/init/Boot.xdc
var Boot = xdc.useModule('ti.catalog.c2800.init.Boot');
module-wide constants & types
    values of type Boot.Type// PLL type
        const Boot.Type_280x// 280x (PLL configuration not supported for this type);
        const Boot.Type_281x// 281x (PLL configuration not supported for this type);
        const Boot.Type_282xx_283xx// 282xx or 283xx;
        const Boot.Type_2802x_2803x_2806x// 2802x or 2803x or 2806x;
        const Boot.Type_2834x// 2834x;
    var obj = new Boot.ModuleView// ;
        obj.disableWatchdog = Bool ...
        obj.configurePll = Bool ...
        obj.pllcrDIV = UInt ...
        obj.pllstsDIVSEL = UInt ...
module-wide config parameters
     Boot.bootFromFlash// Boot from FLASH flag, default is false = Bool false;
     Boot.configurePll// PLL configuration flag, default is false = Bool false;
     Boot.disableWatchdog// Watchdog disable flag, default is false = Bool false;
     Boot.enableEzdspXintfConfig// Configure the external memory interface (XINTF) for eZdsp283xx boards = Bool false;
     Boot.limpAbortFunction// Function to be called when Limp mode is detected = Fxn undefined;
     Boot.pllOSCCLK// OSCCLK input frequency to PLL, in MHz. Default is 10 MHz = UInt 10;
     Boot.pllType// PLL type = Boot.Type undefined;
     Boot.pllcrDIV// PLLCR[DIV] clocking ratio value. Default is 10 = UInt 10;
     Boot.pllstsDIVSEL// PLLSTS[DIVSEL] divide select value. Default is 2 = UInt 2;
     Boot.rovViewInfo// = ViewInfo.Instance ViewInfo.create;
module-wide functions
     Boot.getFrequency// Gets the resulting output frequency (in Hz) given the PLL configuration parameters() returns UInt32
     Boot.registerFreqListener// Register a module to be notified whenever the frequency changes(Any listener) returns Any
metaonly enum Boot.Type
index URL

PLL type

XDCscript usage meta-domain
values of type Boot.Type
    const Boot.Type_280x;
    // 280x (PLL configuration not supported for this type)
    const Boot.Type_281x;
    // 281x (PLL configuration not supported for this type)
    const Boot.Type_282xx_283xx;
    // 282xx or 283xx
    const Boot.Type_2802x_2803x_2806x;
    // 2802x or 2803x or 2806x
    const Boot.Type_2834x;
    // 2834x
metaonly struct Boot.ModuleView
index URL
XDCscript usage meta-domain
var obj = new Boot.ModuleView;
    obj.disableWatchdog = Bool ...
    obj.configurePll = Bool ...
    obj.pllcrDIV = UInt ...
    obj.pllstsDIVSEL = UInt ...
metaonly config Boot.bootFromFlash // module-wide
index URL

Boot from FLASH flag, default is false

XDCscript usage meta-domain
Boot.bootFromFlash = Bool false;
DETAILS
Set to true to enable booting from FLASH. When set to true, a long branch (LB) to the c_int00 entry point will be placed at the BEGIN section address defined in the linker command file.
metaonly config Boot.configurePll // module-wide
index URL

PLL configuration flag, default is false

XDCscript usage meta-domain
Boot.configurePll = Bool false;
DETAILS
Set to true to configure the PLL.
metaonly config Boot.disableWatchdog // module-wide
index URL

Watchdog disable flag, default is false

XDCscript usage meta-domain
Boot.disableWatchdog = Bool false;
DETAILS
Set to true to disable the watchdog timer.
metaonly config Boot.enableEzdspXintfConfig // module-wide
index URL

Configure the external memory interface (XINTF) for eZdsp283xx boards

XDCscript usage meta-domain
Boot.enableEzdspXintfConfig = Bool false;
DETAILS
This external memory interface configuration is applicable only for eZdsp283xx boards; it should not be enabled for any other boards.
metaonly config Boot.limpAbortFunction // module-wide
index URL

Function to be called when Limp mode is detected

XDCscript usage meta-domain
Boot.limpAbortFunction = Fxn undefined;
DETAILS
This function is called when the Boot module is about to configure the PLL, but finds the device operating in Limp mode (i.e., the mode when a missing OSCCLK input has been detected).
If this function is not specified by the application, a default function will be used, which does an ESTOP0 and then enters an infinite loop.
metaonly config Boot.pllOSCCLK // module-wide
index URL

OSCCLK input frequency to PLL, in MHz. Default is 10 MHz

XDCscript usage meta-domain
Boot.pllOSCCLK = UInt 10;
DETAILS
This is the frequency of the oscillator clock (OSCCLK) input to the PLL. On some devices (e.g., TMS320C28346) this will correspond to the frequency of an external crystal or clock input. On others (e.g., TMS320F28069) this will correspond to the frequency of an internal oscillator which is the default OSCCLK coming out of reset.
metaonly config Boot.pllType // module-wide
index URL

PLL type

XDCscript usage meta-domain
Boot.pllType = Boot.Type undefined;
DETAILS
The default will be determined by platform specification, or by the device ID for the generic (tms320c28) platform.
metaonly config Boot.pllcrDIV // module-wide
index URL

PLLCR[DIV] clocking ratio value. Default is 10

XDCscript usage meta-domain
Boot.pllcrDIV = UInt 10;
DETAILS
This is the actual value written to the DIV bits in the PLL Control Register (PLLCR)
metaonly config Boot.pllstsDIVSEL // module-wide
index URL

PLLSTS[DIVSEL] divide select value. Default is 2

XDCscript usage meta-domain
Boot.pllstsDIVSEL = UInt 2;
DETAILS
This is the actual value written to the DIVSEL bits in the PLL Status Register (PLLSTS).
This configuration parameter applies for all of the enumerated PLL types, except for "Type_280x".
metaonly config Boot.rovViewInfo // module-wide
index URL
XDCscript usage meta-domain
Boot.rovViewInfo = ViewInfo.Instance ViewInfo.create;
metaonly Boot.getFrequency() // module-wide
index URL

Gets the resulting output frequency (in Hz) given the PLL configuration parameters

XDCscript usage meta-domain
Boot.getFrequency() returns UInt32
metaonly Boot.registerFreqListener() // module-wide
index URL

Register a module to be notified whenever the frequency changes

XDCscript usage meta-domain
Boot.registerFreqListener(Any listener) returns Any
DETAILS
The registered module must have a function named 'fireFrequencyUpdate' which takes the new frequency as an argument.
generated on Thu, 08 Nov 2012 02:15:33 GMT


module ti.catalog.c2800.init.Boot

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Boot.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c2800.init;
    19
    20    import xdc.rov.ViewInfo;
    21
    22    /*!
    23     *  ======== Boot ========
    24     *  28x Boot Support.
    25     *
    26     *  The Boot module supports boot initialization for the 28x devices.
    27     *  A special boot init function is created based on the configuration
    28     *  settings for this module.  This function is hooked into the
    29     *  xdc.runtime.Reset.fxns[] array and called very early at boot time (prior
    30     *  to cinit processing).
    31     *
    32     *  The code to support the boot module is placed in a separate section
    33     *  named `".text:.bootCodeSection"` to allow placement of this section in
    34     *  the linker .cmd file if necessary. This section is a subsection of the
    35     *  `".text"` section so this code will be placed into the .text section unless
    36     *  explicitly placed, either through
    37     *  `{@link xdc.cfg.Program#sectMap Program.sectMap}` or through a linker
    38     *  command file.
    39     */
    40    @Template("./Boot.xdt")
    41    @NoRuntime
    42    module Boot
    43    {
    44        /*! PLL type */
    45        metaonly enum Type {
    46            Type_280x,   /*! 280x (PLL configuration not supported for this type) */
    47            Type_281x,   /*! 281x (PLL configuration not supported for this type) */
    48            Type_282xx_283xx,         /*! 282xx or 283xx */
    49            Type_2802x_2803x_2806x,   /*! 2802x or 2803x or 2806x */
    50            Type_2834x                /*! 2834x */
    51        };
    52
    53        metaonly struct ModuleView {
    54            Bool         disableWatchdog;
    55            Bool         configurePll;
    56            UInt         pllcrDIV;
    57            UInt         pllstsDIVSEL;
    58        }
    59
    60        @Facet
    61        metaonly config ViewInfo.Instance rovViewInfo =
    62            ViewInfo.create({
    63                viewMap: [
    64                [
    65                    'Module',
    66                    {
    67                        type: ViewInfo.MODULE,
    68                        viewInitFxn: 'viewInitModule',
    69                        structName: 'ModuleView'
    70                    }
    71                ],
    72                ]
    73            });
    74
    75        /*!
    76         *  Watchdog disable flag, default is false.
    77         *
    78         *  Set to true to disable the watchdog timer.
    79         */
    80        metaonly config Bool disableWatchdog = false;
    81
    82        /*!
    83         *  PLL type.
    84         *
    85         *  The default will be determined by platform specification, or by the
    86         *  device ID for the generic (tms320c28) platform.
    87         */
    88        metaonly config Type pllType;
    89
    90        /*!
    91         *  PLL configuration flag, default is false.
    92         *
    93         *  Set to true to configure the PLL.
    94         */
    95        metaonly config Bool configurePll = false;
    96
    97        /*!
    98         *  OSCCLK input frequency to PLL, in MHz. Default is 10 MHz.
    99         *
   100         *  This is the frequency of the oscillator clock (OSCCLK) input to the
   101         *  PLL.  On some devices (e.g., TMS320C28346) this will correspond to the
   102         *  frequency of an external crystal or clock input.  On others
   103         *  (e.g., TMS320F28069) this will correspond to the frequency of an
   104         *  internal oscillator which is the default OSCCLK coming out of reset.
   105         */
   106        metaonly config UInt pllOSCCLK = 10;
   107
   108        /*!
   109         *  PLLCR[DIV] clocking ratio value. Default is 10.
   110         *
   111         *  This is the actual value written to the DIV bits in
   112         *  the PLL Control Register (PLLCR)
   113         */
   114        metaonly config UInt pllcrDIV = 10;
   115
   116        /*!
   117         *  PLLSTS[DIVSEL] divide select value. Default is 2.
   118         *
   119         *  This is the actual value written to the DIVSEL bits in
   120         *  the PLL Status Register (PLLSTS).
   121         *
   122         *  This configuration parameter applies for all of the
   123         *  enumerated PLL types, except for "Type_280x".
   124         */
   125        metaonly config UInt pllstsDIVSEL = 2;
   126
   127        /*!
   128         *  Function to be called when Limp mode is detected.
   129         *
   130         *  This function is called when the Boot module is about to configure
   131         *  the PLL, but finds the device operating in Limp mode (i.e., the mode
   132         *  when a missing OSCCLK input has been detected).
   133         *
   134         *  If this function is not specified by the application, a default
   135         *  function will be used, which does an ESTOP0 and then enters an
   136         *  infinite loop.
   137         */
   138        metaonly config Fxn limpAbortFunction;
   139
   140        /*!
   141         *  Boot from FLASH flag, default is false.
   142         *
   143         *  Set to true to enable booting from FLASH.  When set to true,
   144         *  a long branch (LB) to the c_int00 entry point will be placed at
   145         *  the BEGIN section address defined in the linker command file.
   146         */
   147        metaonly config Bool bootFromFlash = false;
   148
   149        /*!
   150         * Configure the external memory interface (XINTF) for eZdsp283xx
   151         * boards.
   152         *
   153         * This external memory interface configuration is applicable only for
   154         * eZdsp283xx boards; it should not be enabled for any other boards.
   155         */
   156        metaonly config Bool enableEzdspXintfConfig = false;
   157
   158        /*!
   159         * @_nodoc
   160         *  Default abort function to be called when PLL Limp mode is detected
   161         */
   162        metaonly Void defaultLimpAbort();
   163
   164        /*!
   165         *  ======== getFrequency ========
   166         *  Gets the resulting output frequency (in Hz) given the PLL configuration
   167         *  parameters.
   168         */
   169        metaonly UInt32 getFrequency();
   170
   171        /*!
   172         *  ======== registerFreqListener ========
   173         *  Register a module to be notified whenever the frequency changes.
   174         *
   175         *  The registered module must have a function named 'fireFrequencyUpdate'
   176         *  which takes the new frequency as an argument.
   177         */
   178        metaonly function registerFreqListener(listener);
   179
   180    internal:
   181
   182        /* Used to display the computed frequency value in the Grace page. */
   183        metaonly config String displayFrequency;
   184
   185        /* Used to indicate if using on a Concerto device */
   186        metaonly config Bool concertoDevice = false;
   187
   188    };
   189    /*
   190     *  @(#) ti.catalog.c2800.init; 1, 0, 0,250; 8-17-2012 22:13:23; /db/ztree/library/trees/platform/platform-n27x/src/
   191     */
   192


package ti.catalog.c5400
index URL

Package of devices for the c5400 family of DSPs

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/c5400/package.xdc
requires xdc.platform;
requires ti.catalog;
package ti.catalog.c5400 [1, 0, 0, 0] {
    interface ITMS320C54xx;
    // An interface implemented by all ITMS320C54xx devices
    module TMS320C5401;
    // The C5401 device data sheet module
    module TMS320C5402;
    // The C5402 device data sheet module
    module TMS320C5402A;
    // The C5402A device data sheet module
    module TMS320C5404;
    // The C5404 device data sheet module
    module TMS320C5405;
    // The C5405 device data sheet module
    module TMS320C5407;
    // The C5407 device data sheet module
    module TMS320C5409;
    // The C5409 device data sheet module
    module TMS320C5409A;
    // The C5409A device data sheet module
    module TMS320C5410;
    // The C5410 device data sheet module
    module TMS320C5410A;
    // The C5410A device data sheet module
    module TMS320C5416;
    // The C5416 device data sheet module
    module TMS320C5420;
    // The C5420 device data sheet module
    module TMS320C5470;
    // The C5470 device data sheet module
    module TMS320C5471;
    // The C5470 device data sheet module
    module TMS320C54CST;
    // The C54CST device data sheet module
    module TMS320CDM270;
    // The DM270 device data sheet module
    module TMS320CDM310;
    // The DM310 device data sheet module
    module TMS320CDM320;
    // The DM320 device data sheet module
}
generated on Thu, 08 Nov 2012 02:15:37 GMT


package ti.catalog.c5400

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14    requires ti.catalog;
    15
    16    /*!
    17     *  ======== ti.catalog.c5400 ========
    18     *  Package of devices for the c5400 family of DSPs.
    19     *
    20     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    21     *  interface. This interface is used by platforms (modules that implement
    22     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    23     */
    24    package ti.catalog.c5400 [1,0,0,0] {
    25        interface ITMS320C54xx;
    26        module TMS320C5401;
    27        module TMS320C5402;
    28        module TMS320C5402A;
    29        module TMS320C5404;
    30        module TMS320C5405;
    31        module TMS320C5407;
    32        module TMS320C5409;
    33        module TMS320C5409A;
    34        module TMS320C5410;
    35        module TMS320C5410A;
    36        module TMS320C5416;
    37        module TMS320C5420;
    38        module TMS320C5470;
    39        module TMS320C5471;
    40        module TMS320CDM270;
    41        module TMS320CDM310;
    42        module TMS320CDM320;
    43        module TMS320C54CST;
    44    }
    45    /*
    46     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:28; /db/ztree/library/trees/platform/platform-n27x/src/
    47     */
    48


interface ti.catalog.c5400.ITMS320C54xx

metaonly interface ti.catalog.c5400.ITMS320C54xx
index URL

An interface implemented by all ITMS320C54xx devices

This interface is defined to factor common data about this family into a single place; all ITMS320C54xx devices extend this interface.
XDCspec summary sourced in ti/catalog/c5400/ITMS320C54xx.xdc
metaonly interface ITMS320C54xx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
package ti.catalog.c5400;
metaonly interface ITMS320C54xx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "5400";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 2;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C54xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
override config String cpuCore = "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C54xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
config String cpuCoreRevision;
config ITMS320C54xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
override config Int dataWordSize = 2;
config ITMS320C54xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
config String deviceHeader;
config ITMS320C54xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
override config Int minDataUnitSize = 2;
config ITMS320C54xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
override config Int minProgUnitSize = 2;
config ITMS320C54xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C54xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C54xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c5400/ITMS320C54xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:35 GMT


interface ti.catalog.c5400.ITMS320C54xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C54xx.xdc ========
    15     */
    16    package ti.catalog.c5400;
    17
    18    /*!
    19     *  ======== ITMS320C54xx ========
    20     *  An interface implemented by all ITMS320C54xx devices.
    21     *
    22     *  This interface is defined to factor common data about this family into
    23     *  a single place; all ITMS320C54xx devices extend this interface.
    24     */
    25    metaonly interface ITMS320C54xx inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        override config string   cpuCore        = "5400";
    29        override config string   isa            = "54";
    30        override config int     minProgUnitSize = 2;
    31        override config int     minDataUnitSize = 2;
    32        override config int     dataWordSize    = 2;
    33    };
    34    /*
    35     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
    36     */
    37


module ti.catalog.c5400.TMS320C5401

metaonly module ti.catalog.c5400.TMS320C5401
index URL

The C5401 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5401.xdc
var TMS320C5401 = xdc.useModule('ti.catalog.c5400.TMS320C5401');
module-wide config parameters
     TMS320C5401.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x1000,
                len: 0x2000,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0xf000,
                len: 0x0f00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xff80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x1000,
                len: 0x2000,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xf000,
                len: 0x0f00,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5401.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5401.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5401.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5401.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x1000,
            len: 0x2000,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0xf000,
            len: 0x0f00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xff80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x1000,
            len: 0x2000,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xf000,
            len: 0x0f00,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5401.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5401.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5401.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
...
params.dataWordSize = Int 2;
config TMS320C5401.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
...
params.deviceHeader = String undefined;
config TMS320C5401.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5401.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5401.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5401.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5401.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5401.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5401.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5401.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:35 GMT


module ti.catalog.c5400.TMS320C5401

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5401.xdc ========
    15     */
    16    package ti.catalog.c5400;
    17
    18    /*!
    19     *  ======== TMS320C5401 ========
    20     *  The C5401 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C5401 inherits ITMS320C54xx
    26    {
    27        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    28            ["P_DARAM", {
    29                comment: "On-Chip Program DARAM",
    30                name: "P_DARAM",
    31                base: 0x1000,
    32                len:  0x2000,
    33                space: "code"
    34            }],
    35
    36            ["P_ROM", {
    37                comment: "On-Chip Program ROM",
    38                name: "P_ROM",
    39                base: 0xf000,
    40                len:  0x0f00,
    41                space: "code"
    42            }],
    43
    44            ["VECT", {
    45                comment: "On-Chip Interrupts",
    46                name: "VECT",
    47                base: 0xff80,
    48                len:  0x0080,
    49                space: "code"
    50            }],
    51
    52            ["D_SPRAM", {
    53                comment: "Scratch-Pad RAM",
    54                name: "D_SPRAM",
    55                base: 0x60,
    56                len:  0x20,
    57                space: "data"
    58            }],
    59
    60            ["D_DARAM", {
    61                comment: "On-Chip Data DARAM",
    62                name: "D_DARAM",
    63                base: 0x1000,
    64                len:  0x2000,
    65                space: "data"
    66            }],
    67
    68            ["D_ROM", {
    69                comment: "On-Chip Data ROM",
    70                name: "D_ROM",
    71                base: 0xf000,
    72                len:  0x0f00,
    73                space: "data"
    74            }],
    75        ];
    76
    77    instance:
    78        override config string   cpuCoreRevision = "1.0";
    79
    80        /*!
    81         *  ======== memMap ========
    82         *  The default memory map for this device
    83         */
    84        config xdc.platform.IPlatform.Memory memMap[string];
    85    };
    86    /*
    87     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
    88     */
    89


module ti.catalog.c5400.TMS320C5402

metaonly module ti.catalog.c5400.TMS320C5402
index URL

The C5402 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5402.xdc
var TMS320C5402 = xdc.useModule('ti.catalog.c5400.TMS320C5402');
module-wide config parameters
     TMS320C5402.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x80,
                len: 0x3f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0xf000,
                len: 0xf00,
                page: 0,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xff80,
                len: 0x80,
                page: 0,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                page: 1,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x80,
                len: 0x3f80,
                page: 1,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xf000,
                len: 0xf00,
                page: 1,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5402.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5402.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5402.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5402.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x80,
            len: 0x3f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0xf000,
            len: 0xf00,
            page: 0,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xff80,
            len: 0x80,
            page: 0,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            page: 1,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x80,
            len: 0x3f80,
            page: 1,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xf000,
            len: 0xf00,
            page: 1,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5402.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5402.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5402.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
...
params.dataWordSize = Int 2;
config TMS320C5402.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
...
params.deviceHeader = String undefined;
config TMS320C5402.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5402.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5402.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5402.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5402.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5402.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5402.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5402.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:35 GMT


module ti.catalog.c5400.TMS320C5402

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5402.xdc ========
    15     */
    16    package ti.catalog.c5400;
    17
    18    /*!
    19     *  ======== TMS320C5402 ========
    20     *  The C5402 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C5402 inherits ITMS320C54xx
    26    {
    27        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    28            ["P_DARAM", {
    29                comment: "On-Chip Program DARAM",
    30                name: "P_DARAM",
    31                base: 0x80,
    32                len:  0x3f80,
    33                page: 0,
    34                space: "code"
    35            }],
    36
    37            ["P_ROM", {
    38                comment: "On-Chip Program ROM",
    39                name: "P_ROM",
    40                base: 0xf000,
    41                len:  0xf00,
    42                page: 0,
    43                space: "code"
    44            }],
    45
    46            ["VECT", {
    47                comment: "On-Chip Interrupts",
    48                name: "VECT",
    49                base: 0xff80,
    50                len:  0x80,
    51                page: 0,
    52                space: "code"
    53            }],
    54
    55            ["D_SPRAM", {
    56                comment: "Scratch-Pad RAM",
    57                name: "D_SPRAM",
    58                base: 0x60,
    59                len:  0x20,
    60                page: 1,
    61                space: "data"
    62            }],
    63
    64            ["D_DARAM", {
    65                comment: "On-Chip Data DARAM",
    66                name: "D_DARAM",
    67                base: 0x80,
    68                len:  0x3f80,
    69                page: 1,
    70                space: "data"
    71            }],
    72
    73            ["D_ROM", {
    74                comment: "On-Chip Data ROM",
    75                name: "D_ROM",
    76                base: 0xf000,
    77                len:  0xf00,
    78                page: 1,
    79                space: "data"
    80            }],
    81        ];
    82
    83    instance:
    84        override config string   cpuCoreRevision = "1.0";
    85
    86        /*!
    87         *  ======== memMap ========
    88         *  The default memory map for this device
    89         */
    90        config xdc.platform.IPlatform.Memory memMap[string];
    91    };
    92    /*
    93     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
    94     */
    95


module ti.catalog.c5400.TMS320C5402A

metaonly module ti.catalog.c5400.TMS320C5402A
index URL

The C5402A device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5402A.xdc
var TMS320C5402A = xdc.useModule('ti.catalog.c5400.TMS320C5402A');
module-wide config parameters
     TMS320C5402A.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x80,
                len: 0x3f80,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0xC000,
                len: 0x3F00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xff80,
                len: 0x80,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x80,
                len: 0x3f80,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5402A.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5402A.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5402A.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5402A.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x80,
            len: 0x3f80,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0xC000,
            len: 0x3F00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xff80,
            len: 0x80,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x80,
            len: 0x3f80,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5402A.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5402A.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5402A.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
...
params.dataWordSize = Int 2;
config TMS320C5402A.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
...
params.deviceHeader = String undefined;
config TMS320C5402A.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5402A.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5402A.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5402A.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5402A.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5402A.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5402A.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5402A.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:35 GMT


module ti.catalog.c5400.TMS320C5402A

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5402A.xdc ========
    15     */
    16    package ti.catalog.c5400;
    17
    18    /*!
    19     *  ======== TMS320C5402A ========
    20     *  The C5402A device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C5402A inherits ITMS320C54xx
    26    {
    27        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    28            ["P_DARAM", {
    29                comment: "On-Chip Program DARAM",
    30                name: "P_DARAM",
    31                base: 0x80,
    32                len:  0x3f80,
    33                space: "code"
    34            }],
    35
    36            ["P_ROM", {
    37                comment: "On-Chip Program ROM",
    38                name: "P_ROM",
    39                base: 0xC000,
    40                len:  0x3F00,
    41                space: "code"
    42            }],
    43
    44            ["VECT", {
    45                comment: "On-Chip Interrupts",
    46                name: "VECT",
    47                base: 0xff80,
    48                len:  0x80,
    49                space: "code"
    50            }],
    51
    52            ["D_SPRAM", {
    53                comment: "Scratch-Pad RAM",
    54                name: "D_SPRAM",
    55                base: 0x60,
    56                len:  0x20,
    57                space: "data"
    58            }],
    59
    60            ["D_DARAM", {
    61                comment: "On-Chip Data DARAM",
    62                name: "D_DARAM",
    63                base: 0x80,
    64                len:  0x3f80,
    65                space: "data"
    66            }],
    67
    68        ];
    69
    70    instance:
    71        override config string   cpuCoreRevision = "1.0";
    72
    73        /*!
    74         *  ======== memMap ========
    75         *  The default memory map for this device
    76         */
    77        config xdc.platform.IPlatform.Memory memMap[string];
    78    };
    79    /*
    80     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
    81     */
    82


module ti.catalog.c5400.TMS320C5404

metaonly module ti.catalog.c5400.TMS320C5404
index URL

The C5404 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5404.xdc
var TMS320C5404 = xdc.useModule('ti.catalog.c5400.TMS320C5404');
module-wide config parameters
     TMS320C5404.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x3F80,
                space: "code"
            }
        ],
        [
            "P_ROM0",
            {
                comment: "On-Chip Program ROM0",
                name: "P_ROM0",
                base: 0x8000,
                len: 0x7F00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xff80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "P_ROM1",
            {
                comment: "On-Chip Program ROM1",
                name: "P_ROM1",
                base: 0x18000,
                len: 0x08000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x3F80,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xC000,
                len: 0x4000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5404.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5404.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5404.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5404.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x3F80,
            space: "code"
        }
    ],
    [
        "P_ROM0",
        {
            comment: "On-Chip Program ROM0",
            name: "P_ROM0",
            base: 0x8000,
            len: 0x7F00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xff80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "P_ROM1",
        {
            comment: "On-Chip Program ROM1",
            name: "P_ROM1",
            base: 0x18000,
            len: 0x08000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x3F80,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xC000,
            len: 0x4000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5404.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5404.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5404.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
...
params.dataWordSize = Int 2;
config TMS320C5404.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
...
params.deviceHeader = String undefined;
config TMS320C5404.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5404.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5404.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5404.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5404.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5404.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5404.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5404.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:35 GMT


module ti.catalog.c5400.TMS320C5404

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5404.xdc ========
    15     */
    16    package ti.catalog.c5400;
    17
    18    /*!
    19     *  ======== TMS320C5404 ========
    20     *  The C5404 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C5404 inherits ITMS320C54xx
    26    {
    27        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    28            ["P_DARAM", {
    29                comment: "On-Chip Program DARAM",
    30                name: "P_DARAM",
    31                base: 0x0080,
    32                len:  0x3F80,
    33                space: "code"
    34            }],
    35
    36            ["P_ROM0", {
    37                comment: "On-Chip Program ROM0",
    38                name: "P_ROM0",
    39                base: 0x8000,
    40                len:  0x7F00,
    41                space: "code"
    42            }],
    43
    44            ["VECT", {
    45                comment: "On-Chip Interrupts",
    46                name: "VECT",
    47                base: 0xff80,
    48                len:  0x0080,
    49                space: "code"
    50            }],
    51
    52            ["P_ROM1", {
    53                comment: "On-Chip Program ROM1",
    54                name: "P_ROM1",
    55                base: 0x18000,
    56                len:  0x08000,
    57                space: "code"
    58            }],
    59
    60            ["D_SPRAM", {
    61                comment: "Scratch-Pad RAM",
    62                name: "D_SPRAM",
    63                base: 0x60,
    64                len:  0x20,
    65                space: "data"
    66            }],
    67
    68            ["D_DARAM", {
    69                comment: "On-Chip Data DARAM",
    70                name: "D_DARAM",
    71                base: 0x0080,
    72                len:  0x3F80,
    73                space: "data"
    74            }],
    75
    76            ["D_ROM", {
    77                comment: "On-Chip Data ROM",
    78                name: "D_ROM",
    79                base: 0xC000,
    80                len:  0x4000,
    81                space: "data"
    82            }],
    83        ];
    84
    85    instance:
    86        override config string   cpuCoreRevision = "1.0";
    87
    88        /*!
    89         *  ======== memMap ========
    90         *  The default memory map for this device
    91         */
    92        config xdc.platform.IPlatform.Memory memMap[string];
    93    };
    94    /*
    95     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
    96     */
    97


module ti.catalog.c5400.TMS320C5405

metaonly module ti.catalog.c5400.TMS320C5405
index URL

The C5405 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5405.xdc
var TMS320C5405 = xdc.useModule('ti.catalog.c5400.TMS320C5405');
module-wide config parameters
     TMS320C5405.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x3F80,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0xF000,
                len: 0x0F00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xFF80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x3F80,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xF000,
                len: 0x0F00,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5405.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5405.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5405.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5405.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x3F80,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0xF000,
            len: 0x0F00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xFF80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x3F80,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xF000,
            len: 0x0F00,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5405.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5405.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5405.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
...
params.dataWordSize = Int 2;
config TMS320C5405.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
...
params.deviceHeader = String undefined;
config TMS320C5405.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5405.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5405.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5405.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5405.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5405.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5405.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5405.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:35 GMT


module ti.catalog.c5400.TMS320C5405

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5405.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C5405 ========
    21     *  The C5405 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5405 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x3F80,
    34                space: "code"
    35            }],
    36
    37            ["P_ROM", {
    38                comment: "On-Chip Program ROM",
    39                name: "P_ROM",
    40                base: 0xF000,
    41                len:  0x0F00,
    42                space: "code"
    43            }],
    44
    45            ["VECT", {
    46                comment: "On-Chip Interrupts",
    47                name: "VECT",
    48                base: 0xFF80,
    49                len:  0x0080,
    50                space: "code"
    51            }],
    52
    53            ["D_SPRAM", {
    54                comment: "Scratch-Pad RAM",
    55                name: "D_SPRAM",
    56                base: 0x60,
    57                len:  0x20,
    58                space: "data"
    59            }],
    60
    61            ["D_DARAM", {
    62                comment: "On-Chip Data DARAM",
    63                name: "D_DARAM",
    64                base: 0x0080,
    65                len:  0x3F80,
    66                space: "data"
    67            }],
    68
    69            ["D_ROM", {
    70                comment: "On-Chip Data ROM",
    71                name: "D_ROM",
    72                base: 0xF000,
    73                len:  0x0F00,
    74                space: "data"
    75            }],
    76        ];
    77
    78    instance:
    79        override config string   cpuCoreRevision = "1.0";
    80
    81        /*!
    82         *  ======== memMap ========
    83         *  The default memory map for this device
    84         */
    85        config xdc.platform.IPlatform.Memory memMap[string];
    86    };
    87    /*
    88     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
    89     */
    90


module ti.catalog.c5400.TMS320C5407

metaonly module ti.catalog.c5400.TMS320C5407
index URL

The C5407 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5407.xdc
var TMS320C5407 = xdc.useModule('ti.catalog.c5400.TMS320C5407');
module-wide config parameters
     TMS320C5407.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM02",
            {
                comment: "On-Chip Program DARAM02",
                name: "P_DARAM02",
                base: 0x0080,
                len: 0x5F80,
                space: "code"
            }
        ],
        [
            "P_DARAM04",
            {
                comment: "On-Chip Program DARAM04",
                name: "P_DARAM04",
                base: 0x0080,
                len: 0x9F80,
                space: "code"
            }
        ],
        [
            "P_ROM0",
            {
                comment: "On-Chip Program ROM0",
                name: "P_ROM0",
                base: 0x6000,
                len: 0x9F00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xFF80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "P_ROM1",
            {
                comment: "On-Chip Program ROM1",
                name: "P_ROM1",
                base: 0x18000,
                len: 0x08000,
                space: "code"
            }
        ],
        [
            "P_ROM2",
            {
                comment: "On-Chip Program ROM2",
                name: "P_ROM2",
                base: 0x28000,
                len: 0x08000,
                space: "code"
            }
        ],
        [
            "P_ROM3",
            {
                comment: "On-Chip Program ROM3",
                name: "P_ROM3",
                base: 0x38000,
                len: 0x06000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM04",
            {
                comment: "On-Chip Data DARAM04",
                name: "D_DARAM04",
                base: 0x0080,
                len: 0x9F80,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xC000,
                len: 0x4000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5407.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5407.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5407.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5407.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM02",
        {
            comment: "On-Chip Program DARAM02",
            name: "P_DARAM02",
            base: 0x0080,
            len: 0x5F80,
            space: "code"
        }
    ],
    [
        "P_DARAM04",
        {
            comment: "On-Chip Program DARAM04",
            name: "P_DARAM04",
            base: 0x0080,
            len: 0x9F80,
            space: "code"
        }
    ],
    [
        "P_ROM0",
        {
            comment: "On-Chip Program ROM0",
            name: "P_ROM0",
            base: 0x6000,
            len: 0x9F00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xFF80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "P_ROM1",
        {
            comment: "On-Chip Program ROM1",
            name: "P_ROM1",
            base: 0x18000,
            len: 0x08000,
            space: "code"
        }
    ],
    [
        "P_ROM2",
        {
            comment: "On-Chip Program ROM2",
            name: "P_ROM2",
            base: 0x28000,
            len: 0x08000,
            space: "code"
        }
    ],
    [
        "P_ROM3",
        {
            comment: "On-Chip Program ROM3",
            name: "P_ROM3",
            base: 0x38000,
            len: 0x06000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM04",
        {
            comment: "On-Chip Data DARAM04",
            name: "D_DARAM04",
            base: 0x0080,
            len: 0x9F80,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xC000,
            len: 0x4000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5407.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5407.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5407.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
...
params.dataWordSize = Int 2;
config TMS320C5407.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
...
params.deviceHeader = String undefined;
config TMS320C5407.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5407.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5407.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5407.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5407.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5407.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5407.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5407.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C5407

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5407.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C5407 ========
    21     *  The C5407 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5407 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM02", {
    30                comment: "On-Chip Program DARAM02",
    31                name: "P_DARAM02",
    32                base: 0x0080,
    33                len:  0x5F80,
    34                space: "code"
    35            }],
    36
    37            ["P_DARAM04", {
    38                comment: "On-Chip Program DARAM04",
    39                name: "P_DARAM04",
    40                base: 0x0080,
    41                len:  0x9F80,
    42                space: "code"
    43            }],
    44
    45            ["P_ROM0", {
    46                comment: "On-Chip Program ROM0",
    47                name: "P_ROM0",
    48                base: 0x6000,
    49                len:  0x9F00,
    50                space: "code"
    51            }],
    52
    53            ["VECT", {
    54                comment: "On-Chip Interrupts",
    55                name: "VECT",
    56                base: 0xFF80,
    57                len:  0x0080,
    58                space: "code"
    59            }],
    60
    61            ["P_ROM1", {
    62                comment: "On-Chip Program ROM1",
    63                name: "P_ROM1",
    64                base: 0x18000,
    65                len:  0x08000,
    66                space: "code"
    67            }],
    68
    69            ["P_ROM2", {
    70                comment: "On-Chip Program ROM2",
    71                name: "P_ROM2",
    72                base: 0x28000,
    73                len:  0x08000,
    74                space: "code"
    75            }],
    76
    77            ["P_ROM3", {
    78                comment: "On-Chip Program ROM3",
    79                name: "P_ROM3",
    80                base: 0x38000,
    81                len:  0x06000,
    82                space: "code"
    83            }],
    84
    85            ["D_SPRAM", {
    86                comment: "Scratch-Pad RAM",
    87                name: "D_SPRAM",
    88                base: 0x60,
    89                len:  0x20,
    90                space: "data"
    91            }],
    92
    93            ["D_DARAM04", {
    94                comment: "On-Chip Data DARAM04",
    95                name: "D_DARAM04",
    96                base: 0x0080,
    97                len:  0x9F80,
    98                space: "data"
    99            }],
   100
   101            ["D_ROM", {
   102                comment: "On-Chip Data ROM",
   103                name: "D_ROM",
   104                base: 0xC000,
   105                len:  0x4000,
   106                space: "data"
   107            }],
   108
   109        ];
   110
   111    instance:
   112        override config string   cpuCoreRevision = "1.0";
   113
   114        /*!
   115         *  ======== memMap ========
   116         *  The default memory map for this device
   117         */
   118        config xdc.platform.IPlatform.Memory memMap[string];
   119    };
   120    /*
   121     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
   122     */
   123


module ti.catalog.c5400.TMS320C5409

metaonly module ti.catalog.c5400.TMS320C5409
index URL

The C5409 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5409.xdc
var TMS320C5409 = xdc.useModule('ti.catalog.c5400.TMS320C5409');
module-wide config parameters
     TMS320C5409.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x7F80,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0xC000,
                len: 0x3F00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xFF80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x7F80,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xC000,
                len: 0x3F00,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5409.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5409.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5409.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5409.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x7F80,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0xC000,
            len: 0x3F00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xFF80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x7F80,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xC000,
            len: 0x3F00,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5409.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5409.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5409.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
...
params.dataWordSize = Int 2;
config TMS320C5409.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
...
params.deviceHeader = String undefined;
config TMS320C5409.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5409.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5409.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5409.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5409.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5409.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5409.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5409.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C5409

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5409.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C5409 ========
    21     *  The C5409 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5409 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x7F80,
    34                space: "code"
    35            }],
    36
    37            ["P_ROM", {
    38                comment: "On-Chip Program ROM",
    39                name: "P_ROM",
    40                base: 0xC000,
    41                len:  0x3F00,
    42                space: "code"
    43            }],
    44
    45            ["VECT", {
    46                comment: "On-Chip Interrupts",
    47                name: "VECT",
    48                base: 0xFF80,
    49                len:  0x0080,
    50                space: "code"
    51            }],
    52
    53            ["D_SPRAM", {
    54                comment: "Scratch-Pad RAM",
    55                name: "D_SPRAM",
    56                base: 0x60,
    57                len:  0x20,
    58                space: "data"
    59            }],
    60
    61            ["D_DARAM", {
    62                comment: "On-Chip Data DARAM",
    63                name: "D_DARAM",
    64                base: 0x0080,
    65                len:  0x7F80,
    66                space: "data"
    67            }],
    68
    69            ["D_ROM", {
    70                comment: "On-Chip Data ROM",
    71                name: "D_ROM",
    72                base: 0xC000,
    73                len:  0x3F00,
    74                space: "data"
    75            }],
    76
    77        ];
    78
    79    instance:
    80        override config string   cpuCoreRevision = "1.0";
    81
    82        /*!
    83         *  ======== memMap ========
    84         *  The default memory map for this device
    85         */
    86        config xdc.platform.IPlatform.Memory memMap[string];
    87    };
    88    /*
    89     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
    90     */
    91


module ti.catalog.c5400.TMS320C5409A

metaonly module ti.catalog.c5400.TMS320C5409A
index URL

The C5409A device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5409A.xdc
var TMS320C5409A = xdc.useModule('ti.catalog.c5400.TMS320C5409A');
module-wide config parameters
     TMS320C5409A.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x7F80,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0xC000,
                len: 0x3F00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xFF80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x7F80,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5409A.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5409A.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5409A.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5409A.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x7F80,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0xC000,
            len: 0x3F00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xFF80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x7F80,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5409A.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5409A.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5409A.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
...
params.dataWordSize = Int 2;
config TMS320C5409A.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
...
params.deviceHeader = String undefined;
config TMS320C5409A.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5409A.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5409A.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5409A.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5409A.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5409A.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5409A.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5409A.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C5409A

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5409A.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C5409A ========
    21     *  The C5409A device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5409A inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x7F80,
    34                space: "code"
    35            }],
    36
    37            ["P_ROM", {
    38                comment: "On-Chip Program ROM",
    39                name: "P_ROM",
    40                base: 0xC000,
    41                len:  0x3F00,
    42                space: "code"
    43            }],
    44
    45            ["VECT", {
    46                comment: "On-Chip Interrupts",
    47                name: "VECT",
    48                base: 0xFF80,
    49                len:  0x0080,
    50                space: "code"
    51            }],
    52
    53            ["D_SPRAM", {
    54                comment: "Scratch-Pad RAM",
    55                name: "D_SPRAM",
    56                base: 0x60,
    57                len:  0x20,
    58                space: "data"
    59            }],
    60
    61            ["D_DARAM", {
    62                comment: "On-Chip Data DARAM",
    63                name: "D_DARAM",
    64                base: 0x0080,
    65                len:  0x7F80,
    66                space: "data"
    67            }],
    68
    69        ];
    70
    71    instance:
    72        override config string   cpuCoreRevision = "1.0";
    73
    74        /*!
    75         *  ======== memMap ========
    76         *  The default memory map for this device
    77         */
    78        config xdc.platform.IPlatform.Memory memMap[string];
    79    };
    80    /*
    81     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
    82     */
    83


module ti.catalog.c5400.TMS320C5410

metaonly module ti.catalog.c5400.TMS320C5410
index URL

The C5410 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5410.xdc
var TMS320C5410 = xdc.useModule('ti.catalog.c5400.TMS320C5410');
module-wide config parameters
     TMS320C5410.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x1F80,
                space: "code"
            }
        ],
        [
            "P_SARAM1",
            {
                comment: "On-Chip Program SARAM1",
                name: "P_SARAM1",
                base: 0x2000,
                len: 0x6000,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0xC000,
                len: 0x3F80,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xFF80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "P_SARAM2",
            {
                comment: "On-Chip Program SARAM2",
                name: "P_SARAM2",
                base: 0x18000,
                len: 0x08000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "On-Chip Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x1F80,
                space: "data"
            }
        ],
        [
            "D_SARAM1",
            {
                comment: "On-Chip Data SARAM1",
                name: "D_SARAM1",
                base: 0x2000,
                len: 0x6000,
                space: "data"
            }
        ],
        [
            "D_SARAM2",
            {
                comment: "On-Chip Data SARAM2",
                name: "D_SARAM2",
                base: 0x8000,
                len: 0x8000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5410.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5410.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5410.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5410.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x1F80,
            space: "code"
        }
    ],
    [
        "P_SARAM1",
        {
            comment: "On-Chip Program SARAM1",
            name: "P_SARAM1",
            base: 0x2000,
            len: 0x6000,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0xC000,
            len: 0x3F80,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xFF80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "P_SARAM2",
        {
            comment: "On-Chip Program SARAM2",
            name: "P_SARAM2",
            base: 0x18000,
            len: 0x08000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "On-Chip Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x1F80,
            space: "data"
        }
    ],
    [
        "D_SARAM1",
        {
            comment: "On-Chip Data SARAM1",
            name: "D_SARAM1",
            base: 0x2000,
            len: 0x6000,
            space: "data"
        }
    ],
    [
        "D_SARAM2",
        {
            comment: "On-Chip Data SARAM2",
            name: "D_SARAM2",
            base: 0x8000,
            len: 0x8000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5410.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5410.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5410.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
...
params.dataWordSize = Int 2;
config TMS320C5410.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
...
params.deviceHeader = String undefined;
config TMS320C5410.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5410.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5410.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5410.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5410.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5410.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5410.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5410.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C5410

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5410.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C5410 ========
    21     *  The C5410 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5410 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x1F80,
    34                space: "code"
    35            }],
    36
    37            ["P_SARAM1", {
    38                comment: "On-Chip Program SARAM1",
    39                name: "P_SARAM1",
    40                base: 0x2000,
    41                len:  0x6000,
    42                space:  "code"
    43            }],
    44
    45            ["P_ROM", {
    46                comment: "On-Chip Program ROM",
    47                name: "P_ROM",
    48                base: 0xC000,
    49                len:  0x3F80,
    50                space: "code"
    51            }],
    52
    53            ["VECT", {
    54                comment: "On-Chip Interrupts",
    55                name: "VECT",
    56                base: 0xFF80,
    57                len:  0x0080,
    58                space: "code"
    59            }],
    60
    61            ["P_SARAM2", {
    62                comment: "On-Chip Program SARAM2",
    63                name: "P_SARAM2",
    64                base: 0x18000,
    65                len:  0x08000,
    66                space:  "code"
    67            }],
    68
    69            ["D_SPRAM", {
    70                comment: "On-Chip Scratch-Pad RAM",
    71                name: "D_SPRAM",
    72                base: 0x60,
    73                len:  0x20,
    74                space: "data"
    75            }],
    76
    77            ["D_DARAM", {
    78                comment: "On-Chip Data DARAM",
    79                name: "D_DARAM",
    80                base: 0x0080,
    81                len:  0x1F80,
    82                space: "data"
    83            }],
    84
    85            ["D_SARAM1", {
    86                comment: "On-Chip Data SARAM1",
    87                name: "D_SARAM1",
    88                base: 0x2000,
    89                len:  0x6000,
    90                space: "data"
    91            }],
    92
    93            ["D_SARAM2", {
    94                comment: "On-Chip Data SARAM2",
    95                name: "D_SARAM2",
    96                base: 0x8000,
    97                len:  0x8000,
    98                space: "data"
    99            }],
   100
   101        ];
   102
   103    instance:
   104        override config string cpuCoreRevision = "1.0";
   105
   106        /*!
   107         *  ======== memMap ========
   108         *  The default memory map for this device
   109         */
   110        config xdc.platform.IPlatform.Memory memMap[string];
   111    }
   112    /*
   113     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
   114     */
   115


module ti.catalog.c5400.TMS320C5410A

metaonly module ti.catalog.c5400.TMS320C5410A
index URL

The C5410A device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5410A.xdc
var TMS320C5410A = xdc.useModule('ti.catalog.c5400.TMS320C5410A');
module-wide config parameters
     TMS320C5410A.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM03",
            {
                comment: "On-Chip Program DARAM 0-3",
                name: "P_DARAM03",
                base: 0x0080,
                len: 0x7F80,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip ROM",
                name: "P_ROM",
                base: 0xC000,
                len: 0x3F00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xff80,
                len: 0x80,
                space: "code"
            }
        ],
        [
            "P_DARAM47",
            {
                comment: "On-Chip Program DARAM 4-7",
                name: "P_DARAM47",
                base: 0x18000,
                len: 0x08000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "On-Chip Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM03",
            {
                comment: "On-Chip Data DARAM 0-3",
                name: "D_DARAM03",
                base: 0x0080,
                len: 0x7f80,
                space: "data"
            }
        ],
        [
            "D_DARAM47",
            {
                comment: "On-Chip Data DARAM 4-7",
                name: "D_DARAM47",
                base: 0x8000,
                len: 0x8000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5410A.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5410A.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5410A.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5410A.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM03",
        {
            comment: "On-Chip Program DARAM 0-3",
            name: "P_DARAM03",
            base: 0x0080,
            len: 0x7F80,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip ROM",
            name: "P_ROM",
            base: 0xC000,
            len: 0x3F00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xff80,
            len: 0x80,
            space: "code"
        }
    ],
    [
        "P_DARAM47",
        {
            comment: "On-Chip Program DARAM 4-7",
            name: "P_DARAM47",
            base: 0x18000,
            len: 0x08000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "On-Chip Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM03",
        {
            comment: "On-Chip Data DARAM 0-3",
            name: "D_DARAM03",
            base: 0x0080,
            len: 0x7f80,
            space: "data"
        }
    ],
    [
        "D_DARAM47",
        {
            comment: "On-Chip Data DARAM 4-7",
            name: "D_DARAM47",
            base: 0x8000,
            len: 0x8000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5410A.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5410A.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5410A.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
...
params.dataWordSize = Int 2;
config TMS320C5410A.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
...
params.deviceHeader = String undefined;
config TMS320C5410A.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5410A.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5410A.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5410A.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5410A.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5410A.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5410A.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5410A.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C5410A

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5410A.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C5410A ========
    21     *  The C5410A device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5410A inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM03", {
    30                comment: "On-Chip Program DARAM 0-3",
    31                name: "P_DARAM03",
    32                base: 0x0080,
    33                len:  0x7F80,
    34                space: "code"
    35            }],
    36
    37            ["P_ROM", {
    38                comment: "On-Chip ROM",
    39                name: "P_ROM",
    40                base: 0xC000,
    41                len:  0x3F00,
    42                space: "code"
    43            }],
    44
    45            ["VECT", {
    46                comment: "On-Chip Interrupts",
    47                name: "VECT",
    48                base: 0xff80,
    49                len:  0x80,
    50                space: "code"
    51            }],
    52
    53            ["P_DARAM47", {
    54                comment: "On-Chip Program DARAM 4-7",
    55                name: "P_DARAM47",
    56                base: 0x18000,
    57                len:  0x08000,
    58                space: "code"
    59            }],
    60
    61            ["D_SPRAM", {
    62                comment: "On-Chip Scratch-Pad RAM",
    63                name: "D_SPRAM",
    64                base: 0x60,
    65                len:  0x20,
    66                space: "data"
    67            }],
    68
    69            ["D_DARAM03", {
    70                comment: "On-Chip Data DARAM 0-3",
    71                name: "D_DARAM03",
    72                base: 0x0080,
    73                len:  0x7f80,
    74                space: "data"
    75            }],
    76
    77            ["D_DARAM47", {
    78                comment: "On-Chip Data DARAM 4-7",
    79                name: "D_DARAM47",
    80                base: 0x8000,
    81                len:  0x8000,
    82                space: "data"
    83            }],
    84
    85        ];
    86
    87    instance:
    88        override config string cpuCoreRevision = "1.0";
    89
    90        /*!
    91         *  ======== memMap ========
    92         *  The default memory map for this device
    93         */
    94        config xdc.platform.IPlatform.Memory memMap[string];
    95    }
    96    /*
    97     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
    98     */
    99


module ti.catalog.c5400.TMS320C5416

metaonly module ti.catalog.c5400.TMS320C5416
index URL

The C5416 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5416.xdc
var TMS320C5416 = xdc.useModule('ti.catalog.c5400.TMS320C5416');
module-wide config parameters
     TMS320C5416.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM03",
            {
                comment: "On-Chip Program DARAM 0-3",
                name: "P_DARAM03",
                base: 0x80,
                len: 0x7f80,
                page: 0,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip ROM",
                name: "P_ROM",
                base: 0xc000,
                len: 0x3f00,
                page: 0,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xff80,
                len: 0x80,
                page: 0,
                space: "code"
            }
        ],
        [
            "P_DARAM47",
            {
                comment: "On-Chip Program DARAM 4-7",
                name: "P_DARAM47",
                base: 0x18000,
                len: 0x8000,
                page: 1,
                space: "code"
            }
        ],
        [
            "P_SARAM03",
            {
                comment: "On-Chip Program SARAM 0-3",
                name: "P_SARAM03",
                base: 0x28000,
                len: 0x8000,
                page: 2,
                space: "code"
            }
        ],
        [
            "P_SARAM47",
            {
                comment: "On-Chip Program SARAM 4-7",
                name: "P_SARAM47",
                base: 0x38000,
                len: 0x8000,
                page: 3,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "On-Chip Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                page: 1,
                space: "data"
            }
        ],
        [
            "D_DARAM03",
            {
                comment: "On-Chip Data DARAM 0-3",
                name: "D_DARAM03",
                base: 0x80,
                len: 0x7f80,
                page: 1,
                space: "data"
            }
        ],
        [
            "D_DARAM47",
            {
                comment: "On-Chip Data DARAM 4-7",
                name: "D_DARAM47",
                base: 0x8000,
                len: 0x8000,
                page: 1,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5416.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5416.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5416.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5416.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM03",
        {
            comment: "On-Chip Program DARAM 0-3",
            name: "P_DARAM03",
            base: 0x80,
            len: 0x7f80,
            page: 0,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip ROM",
            name: "P_ROM",
            base: 0xc000,
            len: 0x3f00,
            page: 0,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xff80,
            len: 0x80,
            page: 0,
            space: "code"
        }
    ],
    [
        "P_DARAM47",
        {
            comment: "On-Chip Program DARAM 4-7",
            name: "P_DARAM47",
            base: 0x18000,
            len: 0x8000,
            page: 1,
            space: "code"
        }
    ],
    [
        "P_SARAM03",
        {
            comment: "On-Chip Program SARAM 0-3",
            name: "P_SARAM03",
            base: 0x28000,
            len: 0x8000,
            page: 2,
            space: "code"
        }
    ],
    [
        "P_SARAM47",
        {
            comment: "On-Chip Program SARAM 4-7",
            name: "P_SARAM47",
            base: 0x38000,
            len: 0x8000,
            page: 3,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "On-Chip Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            page: 1,
            space: "data"
        }
    ],
    [
        "D_DARAM03",
        {
            comment: "On-Chip Data DARAM 0-3",
            name: "D_DARAM03",
            base: 0x80,
            len: 0x7f80,
            page: 1,
            space: "data"
        }
    ],
    [
        "D_DARAM47",
        {
            comment: "On-Chip Data DARAM 4-7",
            name: "D_DARAM47",
            base: 0x8000,
            len: 0x8000,
            page: 1,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5416.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5416.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5416.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
...
params.dataWordSize = Int 2;
config TMS320C5416.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
...
params.deviceHeader = String undefined;
config TMS320C5416.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5416.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5416.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5416.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5416.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5416.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5416.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5416.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C5416

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5416.xdc ========
    15     */
    16    package ti.catalog.c5400;
    17
    18    /*!
    19     *  ======== TMS320C5416 ========
    20     *  The C5416 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    23     *  by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C5416 inherits ITMS320C54xx
    26    {
    27        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    28            ["P_DARAM03", {
    29                comment: "On-Chip Program DARAM 0-3",
    30                name: "P_DARAM03",
    31                base: 0x80,
    32                len:  0x7f80,
    33                page: 0,
    34                space: "code"
    35            }],
    36
    37            ["P_ROM", {
    38                comment: "On-Chip ROM",
    39                name: "P_ROM",
    40                base: 0xc000,
    41                len:  0x3f00,
    42                page: 0,
    43                space: "code"
    44            }],
    45
    46            ["VECT", {
    47                comment: "On-Chip Interrupts",
    48                name: "VECT",
    49                base: 0xff80,
    50                len:  0x80,
    51                page: 0,
    52                space: "code"
    53            }],
    54
    55            ["P_DARAM47", {
    56                comment: "On-Chip Program DARAM 4-7",
    57                name: "P_DARAM47",
    58                base: 0x18000,
    59                len:  0x8000,
    60                page: 1,
    61                space: "code"
    62            }],
    63
    64            ["P_SARAM03", {
    65                comment: "On-Chip Program SARAM 0-3",
    66                name: "P_SARAM03",
    67                base: 0x28000,
    68                len:  0x8000,
    69                page: 2,
    70                space:  "code"
    71            }],
    72
    73            ["P_SARAM47", {
    74                comment: "On-Chip Program SARAM 4-7",
    75                name: "P_SARAM47",
    76                base: 0x38000,
    77                len:  0x8000,
    78                page: 3,
    79                space:  "code"
    80            }],
    81
    82            ["D_SPRAM", {
    83                comment: "On-Chip Scratch-Pad RAM",
    84                name: "D_SPRAM",
    85                base: 0x60,
    86                len:  0x20,
    87                page: 1,
    88                space: "data"
    89            }],
    90
    91            ["D_DARAM03", {
    92                comment: "On-Chip Data DARAM 0-3",
    93                name: "D_DARAM03",
    94                base: 0x80,
    95                len:  0x7f80,
    96                page: 1,
    97                space: "data"
    98            }],
    99
   100            ["D_DARAM47", {
   101                comment: "On-Chip Data DARAM 4-7",
   102                name: "D_DARAM47",
   103                base: 0x8000,
   104                len:  0x8000,
   105                page: 1,
   106                space: "data"
   107            }],
   108        ];
   109
   110    instance:
   111        override config string cpuCoreRevision = "1.0";
   112
   113        /*!
   114         *  ======== memMap ========
   115         *  The default memory map for this device
   116         */
   117        config xdc.platform.IPlatform.Memory memMap[string];
   118    }
   119    /*
   120     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
   121     */
   122


module ti.catalog.c5400.TMS320C5420

metaonly module ti.catalog.c5400.TMS320C5420
index URL

The C5420 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5420.xdc
var TMS320C5420 = xdc.useModule('ti.catalog.c5400.TMS320C5420');
module-wide config parameters
     TMS320C5420.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM0",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM0",
                base: 0x0080,
                len: 0x3F80,
                space: "code"
            }
        ],
        [
            "P_SARAM1",
            {
                comment: "On-Chip Program SARAM1",
                name: "P_SARAM1",
                base: 0x4000,
                len: 0x4000,
                space: "code"
            }
        ],
        [
            "P_SARAM2",
            {
                comment: "On-Chip Program SARAM2",
                name: "P_SARAM2",
                base: 0x8000,
                len: 0x7F80,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xFF80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "P_SARAM3",
            {
                comment: "On-Chip Program SARAM3",
                name: "P_SARAM3",
                base: 0x18000,
                len: 0x08000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "On-Chip Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM0",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM0",
                base: 0x0080,
                len: 0x3F80,
                space: "data"
            }
        ],
        [
            "D_SARAM1",
            {
                comment: "On-Chip Data SARAM1",
                name: "D_SARAM1",
                base: 0x4000,
                len: 0x4000,
                space: "data"
            }
        ],
        [
            "D_SARAM2",
            {
                comment: "On-Chip Data SARAM2",
                name: "D_SARAM2",
                base: 0x8000,
                len: 0x8000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5420.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5420.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5420.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5420.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM0",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM0",
            base: 0x0080,
            len: 0x3F80,
            space: "code"
        }
    ],
    [
        "P_SARAM1",
        {
            comment: "On-Chip Program SARAM1",
            name: "P_SARAM1",
            base: 0x4000,
            len: 0x4000,
            space: "code"
        }
    ],
    [
        "P_SARAM2",
        {
            comment: "On-Chip Program SARAM2",
            name: "P_SARAM2",
            base: 0x8000,
            len: 0x7F80,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xFF80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "P_SARAM3",
        {
            comment: "On-Chip Program SARAM3",
            name: "P_SARAM3",
            base: 0x18000,
            len: 0x08000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "On-Chip Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM0",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM0",
            base: 0x0080,
            len: 0x3F80,
            space: "data"
        }
    ],
    [
        "D_SARAM1",
        {
            comment: "On-Chip Data SARAM1",
            name: "D_SARAM1",
            base: 0x4000,
            len: 0x4000,
            space: "data"
        }
    ],
    [
        "D_SARAM2",
        {
            comment: "On-Chip Data SARAM2",
            name: "D_SARAM2",
            base: 0x8000,
            len: 0x8000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5420.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5420.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5420.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
...
params.dataWordSize = Int 2;
config TMS320C5420.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
...
params.deviceHeader = String undefined;
config TMS320C5420.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5420.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5420.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5420.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5420.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5420.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5420.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5420.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C5420

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5420.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C5420 ========
    21     *  The C5420 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5420 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM0", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM0",
    32                base: 0x0080,
    33                len:  0x3F80,
    34                space: "code"
    35            }],
    36
    37            ["P_SARAM1", {
    38                comment: "On-Chip Program SARAM1",
    39                name: "P_SARAM1",
    40                base: 0x4000,
    41                len:  0x4000,
    42                space:  "code"
    43            }],
    44
    45            ["P_SARAM2", {
    46                comment: "On-Chip Program SARAM2",
    47                name: "P_SARAM2",
    48                base: 0x8000,
    49                len:  0x7F80,
    50                space:  "code"
    51            }],
    52
    53            ["VECT", {
    54                comment: "On-Chip Interrupts",
    55                name: "VECT",
    56                base: 0xFF80,
    57                len:  0x0080,
    58                space: "code"
    59            }],
    60
    61            ["P_SARAM3", {
    62                comment: "On-Chip Program SARAM3",
    63                name: "P_SARAM3",
    64                base: 0x18000,
    65                len:  0x08000,
    66                space:  "code"
    67            }],
    68
    69            ["D_SPRAM", {
    70                comment: "On-Chip Scratch-Pad RAM",
    71                name: "D_SPRAM",
    72                base: 0x60,
    73                len:  0x20,
    74                space: "data"
    75            }],
    76
    77            ["D_DARAM0", {
    78                comment: "On-Chip Data DARAM",
    79                name: "D_DARAM0",
    80                base: 0x0080,
    81                len:  0x3F80,
    82                space: "data"
    83            }],
    84
    85            ["D_SARAM1", {
    86                comment: "On-Chip Data SARAM1",
    87                name: "D_SARAM1",
    88                base: 0x4000,
    89                len:  0x4000,
    90                space: "data"
    91            }],
    92
    93            ["D_SARAM2", {
    94                comment: "On-Chip Data SARAM2",
    95                name: "D_SARAM2",
    96                base: 0x8000,
    97                len:  0x8000,
    98                space: "data"
    99            }],
   100
   101        ];
   102
   103    instance:
   104        override config string cpuCoreRevision = "1.0";
   105
   106        /*!
   107         *  ======== memMap ========
   108         *  The default memory map for this device
   109         */
   110        config xdc.platform.IPlatform.Memory memMap[string];
   111    }
   112    /*
   113     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
   114     */
   115


module ti.catalog.c5400.TMS320C5470

metaonly module ti.catalog.c5400.TMS320C5470
index URL

The C5470 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5470.xdc
var TMS320C5470 = xdc.useModule('ti.catalog.c5400.TMS320C5470');
module-wide config parameters
     TMS320C5470.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x1F80,
                space: "code"
            }
        ],
        [
            "P_APIDARAM",
            {
                comment: "On-Chip DARAM API Accessible",
                name: "P_APIDARAM",
                base: 0x2000,
                len: 0x2000,
                space: "code"
            }
        ],
        [
            "P_SARAM0",
            {
                comment: "On-Chip Program SARAM0",
                name: "P_SARAM0",
                base: 0x4000,
                len: 0x2000,
                space: "code"
            }
        ],
        [
            "P_SARAM1",
            {
                comment: "On-Chip Program SARAM1",
                name: "P_SARAM1",
                base: 0x6000,
                len: 0x2000,
                space: "code"
            }
        ],
        [
            "P_SARAM2",
            {
                comment: "On-Chip Program SARAM2",
                name: "P_SARAM2",
                base: 0x8000,
                len: 0x8000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "On-Chip Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x1F80,
                space: "data"
            }
        ],
        [
            "D_APIDARAM",
            {
                comment: "On-Chip DARAM API Accessible",
                name: "D_APIDARAM",
                base: 0x2000,
                len: 0x2000,
                space: "data"
            }
        ],
        [
            "D_SARAM0",
            {
                comment: "On-Chip Data SARAM0",
                name: "D_SARAM0",
                base: 0x4000,
                len: 0x2000,
                space: "data"
            }
        ],
        [
            "D_SARAM1",
            {
                comment: "On-Chip Data SARAM1",
                name: "D_SARAM1",
                base: 0x6000,
                len: 0x2000,
                space: "data"
            }
        ],
        [
            "D_SARAM2",
            {
                comment: "On-Chip Data SARAM2",
                name: "D_SARAM2",
                base: 0xC000,
                len: 0x4000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5470.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5470.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5470.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5470.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x1F80,
            space: "code"
        }
    ],
    [
        "P_APIDARAM",
        {
            comment: "On-Chip DARAM API Accessible",
            name: "P_APIDARAM",
            base: 0x2000,
            len: 0x2000,
            space: "code"
        }
    ],
    [
        "P_SARAM0",
        {
            comment: "On-Chip Program SARAM0",
            name: "P_SARAM0",
            base: 0x4000,
            len: 0x2000,
            space: "code"
        }
    ],
    [
        "P_SARAM1",
        {
            comment: "On-Chip Program SARAM1",
            name: "P_SARAM1",
            base: 0x6000,
            len: 0x2000,
            space: "code"
        }
    ],
    [
        "P_SARAM2",
        {
            comment: "On-Chip Program SARAM2",
            name: "P_SARAM2",
            base: 0x8000,
            len: 0x8000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "On-Chip Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x1F80,
            space: "data"
        }
    ],
    [
        "D_APIDARAM",
        {
            comment: "On-Chip DARAM API Accessible",
            name: "D_APIDARAM",
            base: 0x2000,
            len: 0x2000,
            space: "data"
        }
    ],
    [
        "D_SARAM0",
        {
            comment: "On-Chip Data SARAM0",
            name: "D_SARAM0",
            base: 0x4000,
            len: 0x2000,
            space: "data"
        }
    ],
    [
        "D_SARAM1",
        {
            comment: "On-Chip Data SARAM1",
            name: "D_SARAM1",
            base: 0x6000,
            len: 0x2000,
            space: "data"
        }
    ],
    [
        "D_SARAM2",
        {
            comment: "On-Chip Data SARAM2",
            name: "D_SARAM2",
            base: 0xC000,
            len: 0x4000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5470.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5470.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5470.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
...
params.dataWordSize = Int 2;
config TMS320C5470.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
...
params.deviceHeader = String undefined;
config TMS320C5470.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5470.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5470.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5470.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5470.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5470.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5470.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5470.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C5470

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5470.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C5470 ========
    21     *  The C5470 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5470 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x1F80,
    34                space: "code"
    35            }],
    36
    37            ["P_APIDARAM", {
    38                comment: "On-Chip DARAM API Accessible",
    39                name: "P_APIDARAM",
    40                base: 0x2000,
    41                len:  0x2000,
    42                space: "code"
    43            }],
    44
    45            ["P_SARAM0", {
    46                comment: "On-Chip Program SARAM0",
    47                name: "P_SARAM0",
    48                base: 0x4000,
    49                len:  0x2000,
    50                space:  "code"
    51            }],
    52
    53            ["P_SARAM1", {
    54                comment: "On-Chip Program SARAM1",
    55                name: "P_SARAM1",
    56                base: 0x6000,
    57                len:  0x2000,
    58                space:  "code"
    59            }],
    60
    61            ["P_SARAM2", {
    62                comment: "On-Chip Program SARAM2",
    63                name: "P_SARAM2",
    64                base: 0x8000,
    65                len:  0x8000,
    66                space:  "code"
    67            }],
    68
    69            ["D_SPRAM", {
    70                comment: "On-Chip Scratch-Pad RAM",
    71                name: "D_SPRAM",
    72                base: 0x60,
    73                len:  0x20,
    74                space: "data"
    75            }],
    76
    77            ["D_DARAM", {
    78                comment: "On-Chip Data DARAM",
    79                name: "D_DARAM",
    80                base: 0x0080,
    81                len:  0x1F80,
    82                space: "data"
    83            }],
    84
    85            ["D_APIDARAM", {
    86                comment: "On-Chip DARAM API Accessible",
    87                name: "D_APIDARAM",
    88                base: 0x2000,
    89                len:  0x2000,
    90                space: "data"
    91            }],
    92
    93            ["D_SARAM0", {
    94                comment: "On-Chip Data SARAM0",
    95                name: "D_SARAM0",
    96                base: 0x4000,
    97                len:  0x2000,
    98                space: "data"
    99            }],
   100
   101            ["D_SARAM1", {
   102                comment: "On-Chip Data SARAM1",
   103                name: "D_SARAM1",
   104                base: 0x6000,
   105                len:  0x2000,
   106                space: "data"
   107            }],
   108
   109            ["D_SARAM2", {
   110                comment: "On-Chip Data SARAM2",
   111                name: "D_SARAM2",
   112                base: 0xC000,
   113                len:  0x4000,
   114                space: "data"
   115            }],
   116
   117        ];
   118
   119    instance:
   120        override config string cpuCoreRevision = "1.0";
   121
   122        /*!
   123         *  ======== memMap ========
   124         *  The default memory map for this device
   125         */
   126        config xdc.platform.IPlatform.Memory memMap[string];
   127    }
   128    /*
   129     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:27; /db/ztree/library/trees/platform/platform-n27x/src/
   130     */
   131


module ti.catalog.c5400.TMS320C5471

metaonly module ti.catalog.c5400.TMS320C5471
index URL

The C5470 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C5471.xdc
var TMS320C5471 = xdc.useModule('ti.catalog.c5400.TMS320C5471');
module-wide config parameters
     TMS320C5471.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x1F80,
                space: "code"
            }
        ],
        [
            "P_APIDARAM",
            {
                comment: "On-Chip DARAM API Accessible",
                name: "P_APIDARAM",
                base: 0x2000,
                len: 0x2000,
                space: "code"
            }
        ],
        [
            "P_SARAM0",
            {
                comment: "On-Chip Program SARAM0",
                name: "P_SARAM0",
                base: 0x4000,
                len: 0x2000,
                space: "code"
            }
        ],
        [
            "P_SARAM1",
            {
                comment: "On-Chip Program SARAM1",
                name: "P_SARAM1",
                base: 0x6000,
                len: 0x2000,
                space: "code"
            }
        ],
        [
            "P_SARAM2",
            {
                comment: "On-Chip Program SARAM2",
                name: "P_SARAM2",
                base: 0x8000,
                len: 0x8000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "On-Chip Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x1A,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x1F80,
                space: "data"
            }
        ],
        [
            "D_APIDARAM",
            {
                comment: "On-Chip DARAM API Accessible",
                name: "D_APIDARAM",
                base: 0x2000,
                len: 0x2000,
                space: "data"
            }
        ],
        [
            "D_SARAM0",
            {
                comment: "On-Chip Data SARAM0",
                name: "D_SARAM0",
                base: 0x4000,
                len: 0x2000,
                space: "data"
            }
        ],
        [
            "D_SARAM1",
            {
                comment: "On-Chip Data SARAM1",
                name: "D_SARAM1",
                base: 0x6000,
                len: 0x2000,
                space: "data"
            }
        ],
        [
            "D_SARAM2",
            {
                comment: "On-Chip Data SARAM2",
                name: "D_SARAM2",
                base: 0xC000,
                len: 0x3800,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C5471.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5471.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C5471.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C5471.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x1F80,
            space: "code"
        }
    ],
    [
        "P_APIDARAM",
        {
            comment: "On-Chip DARAM API Accessible",
            name: "P_APIDARAM",
            base: 0x2000,
            len: 0x2000,
            space: "code"
        }
    ],
    [
        "P_SARAM0",
        {
            comment: "On-Chip Program SARAM0",
            name: "P_SARAM0",
            base: 0x4000,
            len: 0x2000,
            space: "code"
        }
    ],
    [
        "P_SARAM1",
        {
            comment: "On-Chip Program SARAM1",
            name: "P_SARAM1",
            base: 0x6000,
            len: 0x2000,
            space: "code"
        }
    ],
    [
        "P_SARAM2",
        {
            comment: "On-Chip Program SARAM2",
            name: "P_SARAM2",
            base: 0x8000,
            len: 0x8000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "On-Chip Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x1A,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x1F80,
            space: "data"
        }
    ],
    [
        "D_APIDARAM",
        {
            comment: "On-Chip DARAM API Accessible",
            name: "D_APIDARAM",
            base: 0x2000,
            len: 0x2000,
            space: "data"
        }
    ],
    [
        "D_SARAM0",
        {
            comment: "On-Chip Data SARAM0",
            name: "D_SARAM0",
            base: 0x4000,
            len: 0x2000,
            space: "data"
        }
    ],
    [
        "D_SARAM1",
        {
            comment: "On-Chip Data SARAM1",
            name: "D_SARAM1",
            base: 0x6000,
            len: 0x2000,
            space: "data"
        }
    ],
    [
        "D_SARAM2",
        {
            comment: "On-Chip Data SARAM2",
            name: "D_SARAM2",
            base: 0xC000,
            len: 0x3800,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5471.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5471.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5471.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
...
params.dataWordSize = Int 2;
config TMS320C5471.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
...
params.deviceHeader = String undefined;
config TMS320C5471.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C5471.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C5471.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5471.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5471.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5471.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5471.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5471.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C5471

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5471.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C5471 ========
    21     *  The C5470 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5471 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x1F80,
    34                space: "code"
    35            }],
    36
    37            ["P_APIDARAM", {
    38                comment: "On-Chip DARAM API Accessible",
    39                name: "P_APIDARAM",
    40                base: 0x2000,
    41                len:  0x2000,
    42                space: "code"
    43            }],
    44
    45            ["P_SARAM0", {
    46                comment: "On-Chip Program SARAM0",
    47                name: "P_SARAM0",
    48                base: 0x4000,
    49                len:  0x2000,
    50                space:  "code"
    51            }],
    52
    53            ["P_SARAM1", {
    54                comment: "On-Chip Program SARAM1",
    55                name: "P_SARAM1",
    56                base: 0x6000,
    57                len:  0x2000,
    58                space:  "code"
    59            }],
    60
    61            ["P_SARAM2", {
    62                comment: "On-Chip Program SARAM2",
    63                name: "P_SARAM2",
    64                base: 0x8000,
    65                len:  0x8000,
    66                space:  "code"
    67            }],
    68
    69            ["D_SPRAM", {
    70                comment: "On-Chip Scratch-Pad RAM",
    71                name: "D_SPRAM",
    72                base: 0x60,
    73                len:  0x1A,
    74                space: "data"
    75            }],
    76
    77            ["D_DARAM", {
    78                comment: "On-Chip Data DARAM",
    79                name: "D_DARAM",
    80                base: 0x0080,
    81                len:  0x1F80,
    82                space: "data"
    83            }],
    84
    85            ["D_APIDARAM", {
    86                comment: "On-Chip DARAM API Accessible",
    87                name: "D_APIDARAM",
    88                base: 0x2000,
    89                len:  0x2000,
    90                space: "data"
    91            }],
    92
    93            ["D_SARAM0", {
    94                comment: "On-Chip Data SARAM0",
    95                name: "D_SARAM0",
    96                base: 0x4000,
    97                len:  0x2000,
    98                space: "data"
    99            }],
   100
   101            ["D_SARAM1", {
   102                comment: "On-Chip Data SARAM1",
   103                name: "D_SARAM1",
   104                base: 0x6000,
   105                len:  0x2000,
   106                space: "data"
   107            }],
   108
   109            ["D_SARAM2", {
   110                comment: "On-Chip Data SARAM2",
   111                name: "D_SARAM2",
   112                base: 0xC000,
   113                len:  0x3800,
   114                space: "data"
   115            }],
   116
   117        ];
   118
   119    instance:
   120        override config string cpuCoreRevision = "1.0";
   121
   122        /*!
   123         *  ======== memMap ========
   124         *  The default memory map for this device
   125         */
   126        config xdc.platform.IPlatform.Memory memMap[string];
   127    }
   128    /*
   129     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:28; /db/ztree/library/trees/platform/platform-n27x/src/
   130     */
   131


module ti.catalog.c5400.TMS320C54CST

metaonly module ti.catalog.c5400.TMS320C54CST
index URL

The C54CST device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320C54CST.xdc
var TMS320C54CST = xdc.useModule('ti.catalog.c5400.TMS320C54CST');
module-wide config parameters
     TMS320C54CST.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM0",
            {
                comment: "3 blocks of 8K words on-chip DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x5F80,
                space: "code"
            }
        ],
        [
            "P_DARAM1",
            {
                comment: "2 blocks of 8K words on-chip DARAM",
                name: "P_DARAM",
                base: 0x6000,
                len: 0x4000,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0x6000,
                len: 0x9F80,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xFF80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x9F80,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xC000,
                len: 0x4000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C54CST.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C54CST.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C54CST.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C54CST.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM0",
        {
            comment: "3 blocks of 8K words on-chip DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x5F80,
            space: "code"
        }
    ],
    [
        "P_DARAM1",
        {
            comment: "2 blocks of 8K words on-chip DARAM",
            name: "P_DARAM",
            base: 0x6000,
            len: 0x4000,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0x6000,
            len: 0x9F80,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xFF80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x9F80,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xC000,
            len: 0x4000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C54CST.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C54CST.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C54CST.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
...
params.dataWordSize = Int 2;
config TMS320C54CST.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
...
params.deviceHeader = String undefined;
config TMS320C54CST.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C54CST.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
...
params.minDataUnitSize = Int 2;
config TMS320C54CST.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C54CST.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C54CST.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C54CST.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C54CST.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C54CST.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320C54CST

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C54CST.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320C54CST ========
    21     *  The C54CST device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C54CST inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM0", {
    30                comment: "3 blocks of 8K words on-chip DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x5F80,
    34                space: "code"
    35            }],
    36
    37            ["P_DARAM1", {
    38                comment: "2 blocks of 8K words on-chip DARAM",
    39                name: "P_DARAM",
    40                base: 0x6000,
    41                len:  0x4000,
    42                space: "code"
    43            }],
    44
    45            ["P_ROM", {
    46                comment: "On-Chip Program ROM",
    47                name: "P_ROM",
    48                base: 0x6000,
    49                len:  0x9F80,
    50                space: "code"
    51            }],
    52
    53            ["VECT", {
    54                comment: "On-Chip Interrupts",
    55                name: "VECT",
    56                base: 0xFF80,
    57                len:  0x0080,
    58                space: "code"
    59            }],
    60
    61            ["D_SPRAM", {
    62                comment: "Scratch-Pad RAM",
    63                name: "D_SPRAM",
    64                base: 0x60,
    65                len:  0x20,
    66                space: "data"
    67            }],
    68
    69            ["D_DARAM", {
    70                comment: "On-Chip Data DARAM",
    71                name: "D_DARAM",
    72                base: 0x0080,
    73                len:  0x9F80,
    74                space: "data"
    75            }],
    76
    77            ["D_ROM", {
    78                comment: "On-Chip Data ROM",
    79                name: "D_ROM",
    80                base: 0xC000,
    81                len:  0x4000,
    82                space: "data"
    83            }],
    84
    85        ];
    86
    87    instance:
    88        override config string   cpuCoreRevision = "1.0";
    89
    90        /*!
    91         *  ======== memMap ========
    92         *  The default memory map for this device
    93         */
    94        config xdc.platform.IPlatform.Memory memMap[string];
    95    };
    96    /*
    97     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:28; /db/ztree/library/trees/platform/platform-n27x/src/
    98     */
    99


module ti.catalog.c5400.TMS320CDM270

metaonly module ti.catalog.c5400.TMS320CDM270
index URL

The DM270 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320CDM270.xdc
var TMS320CDM270 = xdc.useModule('ti.catalog.c5400.TMS320CDM270');
module-wide config parameters
     TMS320CDM270.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x7F80,
                space: "code"
            }
        ],
        [
            "P_ROM1",
            {
                comment: "On-Chip Program ROM not controlled by MP/MC",
                name: "P_ROM1",
                base: 0x8000,
                len: 0x4000,
                space: "code"
            }
        ],
        [
            "P_ROM2",
            {
                comment: "On-Chip Program ROM controlled by MP/MC",
                name: "P_ROM2",
                base: 0xC000,
                len: 0x3F00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xFF00,
                len: 0x0100,
                space: "code"
            }
        ],
        [
            "P_SARAM",
            {
                comment: "On-Chip SARAM",
                name: "P_SARAM",
                base: 0x1C000,
                len: 0x04000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x7F80,
                space: "data"
            }
        ],
        [
            "D_SARAM",
            {
                comment: "On-Chip SARAM",
                name: "D_SARAM",
                base: 0x8000,
                len: 0x4000,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xC000,
                len: 0x4000,
                space: "data"
            }
        ],
        [
            "IMAGE_BUFFER",
            {
                comment: "Co-processor Shared Memory (Image Buffer)",
                name: "IMAGE_BUFFER",
                base: 0x0000C000,
                len: 0x00004000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM270.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM270.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM270.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM270.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x7F80,
            space: "code"
        }
    ],
    [
        "P_ROM1",
        {
            comment: "On-Chip Program ROM not controlled by MP/MC",
            name: "P_ROM1",
            base: 0x8000,
            len: 0x4000,
            space: "code"
        }
    ],
    [
        "P_ROM2",
        {
            comment: "On-Chip Program ROM controlled by MP/MC",
            name: "P_ROM2",
            base: 0xC000,
            len: 0x3F00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xFF00,
            len: 0x0100,
            space: "code"
        }
    ],
    [
        "P_SARAM",
        {
            comment: "On-Chip SARAM",
            name: "P_SARAM",
            base: 0x1C000,
            len: 0x04000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x7F80,
            space: "data"
        }
    ],
    [
        "D_SARAM",
        {
            comment: "On-Chip SARAM",
            name: "D_SARAM",
            base: 0x8000,
            len: 0x4000,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xC000,
            len: 0x4000,
            space: "data"
        }
    ],
    [
        "IMAGE_BUFFER",
        {
            comment: "Co-processor Shared Memory (Image Buffer)",
            name: "IMAGE_BUFFER",
            base: 0x0000C000,
            len: 0x00004000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM270.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM270.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM270.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
...
params.dataWordSize = Int 2;
config TMS320CDM270.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM270.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320CDM270.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
...
params.minDataUnitSize = Int 2;
config TMS320CDM270.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
...
params.minProgUnitSize = Int 2;
config TMS320CDM270.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM270.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM270.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM270.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM270.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320CDM270

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM270.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320CDM270 ========
    21     *  The DM270 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM270 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x7F80,
    34                space: "code"
    35            }],
    36
    37            ["P_ROM1", {
    38                comment: "On-Chip Program ROM not controlled by MP/MC",
    39                name: "P_ROM1",
    40                base: 0x8000,
    41                len:  0x4000,
    42                space: "code"
    43            }],
    44
    45            ["P_ROM2", {
    46                comment: "On-Chip Program ROM controlled by MP/MC",
    47                name: "P_ROM2",
    48                base: 0xC000,
    49                len:  0x3F00,
    50                space: "code"
    51            }],
    52
    53            ["VECT", {
    54                comment: "On-Chip Interrupts",
    55                name: "VECT",
    56                base: 0xFF00,
    57                len:  0x0100,
    58                space: "code"
    59            }],
    60
    61            ["P_SARAM", {
    62                comment: "On-Chip SARAM",
    63                name:    "P_SARAM",
    64                base:    0x1C000,
    65                len:     0x04000,
    66                space:   "code"
    67            }],
    68
    69            ["D_SPRAM", {
    70                comment: "Scratch-Pad RAM",
    71                name: "D_SPRAM",
    72                base: 0x60,
    73                len:  0x20,
    74                space: "data"
    75            }],
    76
    77            ["D_DARAM", {
    78                comment: "On-Chip Data DARAM",
    79                name: "D_DARAM",
    80                base: 0x0080,
    81                len:  0x7F80,
    82                space: "data"
    83            }],
    84
    85            ["D_SARAM", {
    86                comment: "On-Chip SARAM",
    87                name:    "D_SARAM",
    88                base:    0x8000,
    89                len:     0x4000,
    90                space:   "data"
    91            }],
    92
    93            ["D_ROM", {
    94                comment: "On-Chip Data ROM",
    95                name: "D_ROM",
    96                base: 0xC000,
    97                len:  0x4000,
    98                space: "data"
    99            }],
   100
   101            ["IMAGE_BUFFER", {
   102                comment: "Co-processor Shared Memory (Image Buffer)",
   103                name:    "IMAGE_BUFFER",
   104                base:    0x0000C000,
   105                len:     0x00004000,
   106                space:   "data"
   107            }],
   108        ];
   109
   110    instance:
   111        override config string   cpuCoreRevision = "1.0";
   112
   113        /*!
   114         *  ======== memMap ========
   115         *  The default memory map for this device
   116         */
   117        config xdc.platform.IPlatform.Memory memMap[string];
   118    };
   119    /*
   120     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:28; /db/ztree/library/trees/platform/platform-n27x/src/
   121     */
   122


module ti.catalog.c5400.TMS320CDM310

metaonly module ti.catalog.c5400.TMS320CDM310
index URL

The DM310 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320CDM310.xdc
var TMS320CDM310 = xdc.useModule('ti.catalog.c5400.TMS320CDM310');
module-wide config parameters
     TMS320CDM310.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x7F80,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0xC000,
                len: 0x4000,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0x7F80,
                len: 0x0080,
                space: "code"
            }
        ],
        [
            "P_SARAM",
            {
                comment: "On-Chip SARAM",
                name: "P_SARAM",
                base: 0x18000,
                len: 0x08000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x7F00,
                space: "data"
            }
        ],
        [
            "D_SARAM",
            {
                comment: "On-Chip SARAM",
                name: "D_SARAM",
                base: 0x8000,
                len: 0x4000,
                space: "data"
            }
        ],
        [
            "IMAGE_BUFFER_AC",
            {
                comment: "Co-processor Shared Memory (Image Buffer) A/C",
                name: "IMAGE_BUFFER_AC",
                base: 0x00008000,
                len: 0x00002000,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xC000,
                len: 0x4000,
                space: "data"
            }
        ],
        [
            "IMAGE_BUFFER_B",
            {
                comment: "Co-processor Shared Memory (Image Buffer) B",
                name: "IMAGE_BUFFER",
                base: 0x0000A000,
                len: 0x00002000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM310.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM310.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM310.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM310.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x7F80,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0xC000,
            len: 0x4000,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0x7F80,
            len: 0x0080,
            space: "code"
        }
    ],
    [
        "P_SARAM",
        {
            comment: "On-Chip SARAM",
            name: "P_SARAM",
            base: 0x18000,
            len: 0x08000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x7F00,
            space: "data"
        }
    ],
    [
        "D_SARAM",
        {
            comment: "On-Chip SARAM",
            name: "D_SARAM",
            base: 0x8000,
            len: 0x4000,
            space: "data"
        }
    ],
    [
        "IMAGE_BUFFER_AC",
        {
            comment: "Co-processor Shared Memory (Image Buffer) A/C",
            name: "IMAGE_BUFFER_AC",
            base: 0x00008000,
            len: 0x00002000,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xC000,
            len: 0x4000,
            space: "data"
        }
    ],
    [
        "IMAGE_BUFFER_B",
        {
            comment: "Co-processor Shared Memory (Image Buffer) B",
            name: "IMAGE_BUFFER",
            base: 0x0000A000,
            len: 0x00002000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM310.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM310.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM310.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
...
params.dataWordSize = Int 2;
config TMS320CDM310.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM310.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320CDM310.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
...
params.minDataUnitSize = Int 2;
config TMS320CDM310.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
...
params.minProgUnitSize = Int 2;
config TMS320CDM310.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM310.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM310.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM310.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM310.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:36 GMT


module ti.catalog.c5400.TMS320CDM310

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM310.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320CDM310 ========
    21     *  The DM310 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM310 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x7F80,
    34                space: "code"
    35            }],
    36
    37            ["P_ROM", {
    38                comment: "On-Chip Program ROM",
    39                name: "P_ROM",
    40                base: 0xC000,
    41                len:  0x4000,
    42                space: "code"
    43            }],
    44
    45            ["VECT", {
    46                comment: "On-Chip Interrupts",
    47                name: "VECT",
    48                base: 0x7F80,
    49                len:  0x0080,
    50                space: "code"
    51            }],
    52
    53            ["P_SARAM", {
    54                comment: "On-Chip SARAM",
    55                name:    "P_SARAM",
    56                base:    0x18000,
    57                len:     0x08000,
    58                space:   "code"
    59            }],
    60
    61            ["D_SPRAM", {
    62                comment: "Scratch-Pad RAM",
    63                name: "D_SPRAM",
    64                base: 0x60,
    65                len:  0x20,
    66                space: "data"
    67            }],
    68
    69            ["D_DARAM", {
    70                comment: "On-Chip Data DARAM",
    71                name: "D_DARAM",
    72                base: 0x0080,
    73                len:  0x7F00,
    74                space: "data"
    75            }],
    76
    77            ["D_SARAM", {
    78                comment: "On-Chip SARAM",
    79                name:    "D_SARAM",
    80                base:    0x8000,
    81                len:     0x4000,
    82                space:   "data"
    83            }],
    84
    85            ["IMAGE_BUFFER_AC", {
    86                comment: "Co-processor Shared Memory (Image Buffer) A/C",
    87                name:    "IMAGE_BUFFER_AC",
    88                base:    0x00008000,
    89                len:     0x00002000,
    90                space:   "data"
    91            }],
    92
    93            ["D_ROM", {
    94                comment: "On-Chip Data ROM",
    95                name: "D_ROM",
    96                base: 0xC000,
    97                len:  0x4000,
    98                space: "data"
    99            }],
   100
   101            ["IMAGE_BUFFER_B", {
   102                comment: "Co-processor Shared Memory (Image Buffer) B",
   103                name:    "IMAGE_BUFFER",
   104                base:    0x0000A000,
   105                len:     0x00002000,
   106                space:   "data"
   107            }],
   108        ];
   109
   110    instance:
   111        override config string   cpuCoreRevision = "1.0";
   112
   113        /*!
   114         *  ======== memMap ========
   115         *  The default memory map for this device
   116         */
   117        config xdc.platform.IPlatform.Memory memMap[string];
   118    };
   119    /*
   120     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:28; /db/ztree/library/trees/platform/platform-n27x/src/
   121     */
   122


module ti.catalog.c5400.TMS320CDM320

metaonly module ti.catalog.c5400.TMS320CDM320
index URL

The DM320 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5400/TMS320CDM320.xdc
var TMS320CDM320 = xdc.useModule('ti.catalog.c5400.TMS320CDM320');
module-wide config parameters
     TMS320CDM320.memBlock// = IPlatform.Memory[string] [
        [
            "P_DARAM",
            {
                comment: "On-Chip Program DARAM",
                name: "P_DARAM",
                base: 0x0080,
                len: 0x7F80,
                space: "code"
            }
        ],
        [
            "P_ROM",
            {
                comment: "On-Chip Program ROM",
                name: "P_ROM",
                base: 0x8000,
                len: 0x7F00,
                space: "code"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupts",
                name: "VECT",
                base: 0xFF00,
                len: 0x0100,
                space: "code"
            }
        ],
        [
            "P_SARAM",
            {
                comment: "On-Chip SARAM",
                name: "P_SARAM",
                base: 0x1C000,
                len: 0x04000,
                space: "code"
            }
        ],
        [
            "D_SPRAM",
            {
                comment: "Scratch-Pad RAM",
                name: "D_SPRAM",
                base: 0x60,
                len: 0x20,
                space: "data"
            }
        ],
        [
            "D_DARAM",
            {
                comment: "On-Chip Data DARAM",
                name: "D_DARAM",
                base: 0x0080,
                len: 0x7F80,
                space: "data"
            }
        ],
        [
            "D_SARAM",
            {
                comment: "On-Chip SARAM",
                name: "D_SARAM",
                base: 0x8000,
                len: 0x4000,
                space: "data"
            }
        ],
        [
            "D_ROM",
            {
                comment: "On-Chip Data ROM",
                name: "D_ROM",
                base: 0xC000,
                len: 0x4000,
                space: "data"
            }
        ],
        [
            "IMAGE_BUFFER",
            {
                comment: "Co-processor Shared Memory (Image Buffer)",
                name: "IMAGE_BUFFER",
                base: 0x0000C000,
                len: 0x00004000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM320.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 2;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM320.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM320.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM320.memBlock = IPlatform.Memory[string] [
    [
        "P_DARAM",
        {
            comment: "On-Chip Program DARAM",
            name: "P_DARAM",
            base: 0x0080,
            len: 0x7F80,
            space: "code"
        }
    ],
    [
        "P_ROM",
        {
            comment: "On-Chip Program ROM",
            name: "P_ROM",
            base: 0x8000,
            len: 0x7F00,
            space: "code"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupts",
            name: "VECT",
            base: 0xFF00,
            len: 0x0100,
            space: "code"
        }
    ],
    [
        "P_SARAM",
        {
            comment: "On-Chip SARAM",
            name: "P_SARAM",
            base: 0x1C000,
            len: 0x04000,
            space: "code"
        }
    ],
    [
        "D_SPRAM",
        {
            comment: "Scratch-Pad RAM",
            name: "D_SPRAM",
            base: 0x60,
            len: 0x20,
            space: "data"
        }
    ],
    [
        "D_DARAM",
        {
            comment: "On-Chip Data DARAM",
            name: "D_DARAM",
            base: 0x0080,
            len: 0x7F80,
            space: "data"
        }
    ],
    [
        "D_SARAM",
        {
            comment: "On-Chip SARAM",
            name: "D_SARAM",
            base: 0x8000,
            len: 0x4000,
            space: "data"
        }
    ],
    [
        "D_ROM",
        {
            comment: "On-Chip Data ROM",
            name: "D_ROM",
            base: 0xC000,
            len: 0x4000,
            space: "data"
        }
    ],
    [
        "IMAGE_BUFFER",
        {
            comment: "Co-processor Shared Memory (Image Buffer)",
            name: "IMAGE_BUFFER",
            base: 0x0000C000,
            len: 0x00004000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
// Instance config-params object
    params.cpuCore = String "5400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 2;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM320.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
...
params.cpuCore = String "5400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM320.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM320.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
...
params.dataWordSize = Int 2;
config TMS320CDM320.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM320.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320CDM320.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
...
params.minDataUnitSize = Int 2;
config TMS320CDM320.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
...
params.minProgUnitSize = Int 2;
config TMS320CDM320.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM320.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM320.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM320.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM320.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:37 GMT


module ti.catalog.c5400.TMS320CDM320

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM320.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5400;
    18
    19    /*!
    20     *  ======== TMS320CDM320 ========
    21     *  The DM320 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is used
    24     *  by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM320 inherits ITMS320C54xx
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["P_DARAM", {
    30                comment: "On-Chip Program DARAM",
    31                name: "P_DARAM",
    32                base: 0x0080,
    33                len:  0x7F80,
    34                space: "code"
    35            }],
    36
    37            ["P_ROM", {
    38                comment: "On-Chip Program ROM",
    39                name: "P_ROM",
    40                base: 0x8000,
    41                len:  0x7F00,
    42                space: "code"
    43            }],
    44
    45            ["VECT", {
    46                comment: "On-Chip Interrupts",
    47                name: "VECT",
    48                base: 0xFF00,
    49                len:  0x0100,
    50                space: "code"
    51            }],
    52
    53            ["P_SARAM", {
    54                comment: "On-Chip SARAM",
    55                name:    "P_SARAM",
    56                base:    0x1C000,
    57                len:     0x04000,
    58                space:   "code"
    59            }],
    60
    61            ["D_SPRAM", {
    62                comment: "Scratch-Pad RAM",
    63                name: "D_SPRAM",
    64                base: 0x60,
    65                len:  0x20,
    66                space: "data"
    67            }],
    68
    69            ["D_DARAM", {
    70                comment: "On-Chip Data DARAM",
    71                name: "D_DARAM",
    72                base: 0x0080,
    73                len:  0x7F80,
    74                space: "data"
    75            }],
    76
    77            ["D_SARAM", {
    78                comment: "On-Chip SARAM",
    79                name:    "D_SARAM",
    80                base:    0x8000,
    81                len:     0x4000,
    82                space:   "data"
    83            }],
    84
    85            ["D_ROM", {
    86                comment: "On-Chip Data ROM",
    87                name: "D_ROM",
    88                base: 0xC000,
    89                len:  0x4000,
    90                space: "data"
    91            }],
    92
    93            ["IMAGE_BUFFER", {
    94                comment: "Co-processor Shared Memory (Image Buffer)",
    95                name:    "IMAGE_BUFFER",
    96                base:    0x0000C000,
    97                len:     0x00004000,
    98                space:   "data"
    99            }],
   100        ];
   101
   102    instance:
   103        override config string   cpuCoreRevision = "1.0";
   104
   105        /*!
   106         *  ======== memMap ========
   107         *  The default memory map for this device
   108         */
   109        config xdc.platform.IPlatform.Memory memMap[string];
   110    };
   111    /*
   112     *  @(#) ti.catalog.c5400; 1, 0, 0, 0,397; 8-17-2012 22:13:28; /db/ztree/library/trees/platform/platform-n27x/src/
   113     */
   114


package ti.catalog.c5500
index URL

Package of devices for the c5500 family of DSPs

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/c5500/package.xdc
requires xdc.platform;
requires ti.catalog;
package ti.catalog.c5500 [1, 0, 0, 0] {
    interface IOMAP;
    // An interface implemented by all OMAP devices
    interface ITMS320C55xx;
    // An interface implemented by all TMS320C55xx devices
    module TMS320C1035;
    // The C1035 device data sheet module
    module TMS320C1510;
    // The C1510 device data sheet module
    module TMS320C1610;
    // The C1610 device data sheet module
    module TMS320C1710;
    // The C1710 device data sheet module
    module TMS320C2320;
    // The C2320 device data sheet module
    module TMS320C2420;
    // The C2420 device data sheet module
    module TMS320C5501;
    // The C5501 device data sheet module
    module TMS320C5502;
    // The C5502 device data sheet module
    module TMS320C5503;
    // The C5503 device data sheet module
    module TMS320C5504;
    // The C5504 device data sheet module
    module TMS320C5505;
    // The C5505 device data sheet module
    module TMS320C5507;
    // The C5507 device data sheet module
    module TMS320C5509;
    // The C5509 device data sheet module
    module TMS320C5509A;
    // The C5509A device data sheet module
    module TMS320C5510;
    // The C5510 device data sheet module
    module TMS320C5510A;
    // The C5510A device data sheet module
    module TMS320C5514;
    // The C5514 device data sheet module
    module TMS320C5515;
    // The C5515 device data sheet module
    module TMS320C5561;
    // The C5561 device data sheet module
    module TMS320C5903;
    // The C5903 device data sheet module
    module TMS320C5905;
    // The C5905 device data sheet module
    module TMS320C5910;
    // The C5910 device data sheet module
    module TMS320C5912;
    // The C5912 device data sheet module
    module TMS320C5944;
    // The C5944 device data sheet module
    module TMS320C5946;
    // The C5946 device data sheet module
    module TMS320C5948;
    // The C5948 device data sheet module
    module TMS320CDA255;
    // The DA255 device data sheet module
    module TMS320CDA295;
    // The DA295 device data sheet module
    module TMS320CDA300;
    // The DA300 device data sheet module
    module TMS320CRYUJIN;
    // The CRYUJIN device data sheet module
    module TNETV1050;
    // The TNETV1050 device data sheet module
    module TNETV1055;
    // The TNETV1055 device data sheet module
}
generated on Thu, 08 Nov 2012 02:15:42 GMT


package ti.catalog.c5500

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14    requires ti.catalog;
    15
    16    /*!
    17     *  ======== ti.catalog.c5500 ========
    18     *  Package of devices for the c5500 family of DSPs.
    19     *
    20     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    21     *  interface. This interface is used by platforms (modules that implement
    22     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    23     */
    24    package ti.catalog.c5500 [1,0,0,0] {
    25        interface IOMAP, ITMS320C55xx;
    26        module TMS320C5501;
    27        module TMS320C5502;
    28        module TMS320C5503;
    29        module TMS320C5504;
    30        module TMS320C5505;
    31        module TMS320C5507;
    32        module TMS320C5509;
    33        module TMS320C5509A;
    34        module TMS320C5510;
    35        module TMS320C5510A;
    36        module TMS320C5514;
    37        module TMS320C5515;
    38        module TMS320C5561;
    39        module TMS320C1035;
    40        module TMS320C1510;
    41        module TMS320C1610;
    42        module TMS320C1710;
    43        module TMS320C2320;
    44        module TMS320C2420;
    45        module TMS320C5903;
    46        module TMS320C5905;
    47        module TMS320C5910;
    48        module TMS320C5912;
    49        module TMS320C5944;
    50        module TMS320C5946;
    51        module TMS320C5948;
    52        module TMS320CRYUJIN;
    53        module TMS320CDA255;
    54        module TMS320CDA295;
    55        module TMS320CDA300;
    56        module TNETV1050, TNETV1055;
    57    }
    58    /*
    59     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    60     */
    61


interface ti.catalog.c5500.IOMAP

metaonly interface ti.catalog.c5500.IOMAP
index URL

An interface implemented by all OMAP devices

This interface is defined to factor common data about this family into a single place; all OMAP devices extend this interface.
XDCspec summary sourced in ti/catalog/c5500/IOMAP.xdc
metaonly interface IOMAP { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
package ti.catalog.c5500;
metaonly interface IOMAP inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "5500";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden[string] = [
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IOMAP.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
override config String cpuCore = "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IOMAP.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
config String cpuCoreRevision;
config IOMAP.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
override config Int dataWordSize = 2;
config IOMAP.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
config String deviceHeader;
config IOMAP.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
config IPlatform.Memory memMap[string] = [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config IOMAP.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
override config Int minDataUnitSize = 1;
config IOMAP.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
override config Int minProgUnitSize = 2;
config IOMAP.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IOMAP.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IOMAP.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c5500/IOMAP.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:39 GMT


interface ti.catalog.c5500.IOMAP

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IOMAP.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== IOMAP ========
    21     *  An interface implemented by all OMAP devices.
    22     *
    23     *  This interface is defined to factor common data about this family into
    24     *  a single place; all OMAP devices extend this interface.
    25     */
    26    metaonly interface IOMAP inherits ti.catalog.ICpuDataSheet
    27    {
    28    instance:
    29        override config string   cpuCore        = "5500";
    30        override config string   isa            = "55";
    31        override config int     minProgUnitSize = 2;
    32        override config int     minDataUnitSize = 1;
    33        override config int     dataWordSize    = 2;
    34
    35        /*!
    36         *  ======== memMap ========
    37         *  The default memory map for OMAP device. For 1510 and like devices,
    38         *  this memory map doesn't change, but for 1710, 2420, 594x and some
    39         *  others, it needs to be overridden.
    40         */
    41        config xdc.platform.IPlatform.Memory memMap[string]  = [
    42            ["DARAM", {
    43                comment: "8 blocks of 8K bytes",
    44                name: "DARAM",
    45                base: 0x000000,
    46                len:  0x010000,
    47                space: "code/data",
    48                access: "RWX"
    49            }],
    50
    51            ["SARAM", {
    52                comment: "12 blocks of 8K bytes",
    53                name: "SARAM",
    54                base: 0x010000,
    55                len:  0x018000,
    56                space: "code/data",
    57                access: "RWX"
    58            }],
    59
    60            ["PDROM", {
    61                comment: "32K bytes On-Chip ROM",
    62                name: "PDROM",
    63                base: 0xff8000,
    64                len:  0x008000,
    65                space: "code/data",
    66                access: "RX"
    67            }],
    68        ];
    69
    70    };
    71    /*
    72     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    73     */
    74


interface ti.catalog.c5500.ITMS320C55xx

metaonly interface ti.catalog.c5500.ITMS320C55xx
index URL

An interface implemented by all TMS320C55xx devices

This interface is defined to factor common data about this family into a single place; all TMS320C55xx devices extend this interface.
XDCspec summary sourced in ti/catalog/c5500/ITMS320C55xx.xdc
metaonly interface ITMS320C55xx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
package ti.catalog.c5500;
metaonly interface ITMS320C55xx inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "5500";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 2;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C55xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
override config String cpuCore = "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C55xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
config String cpuCoreRevision;
config ITMS320C55xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
override config Int dataWordSize = 2;
config ITMS320C55xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
config String deviceHeader;
config ITMS320C55xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
override config Int minDataUnitSize = 1;
config ITMS320C55xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
override config Int minProgUnitSize = 2;
config ITMS320C55xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C55xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C55xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c5500/ITMS320C55xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:39 GMT


interface ti.catalog.c5500.ITMS320C55xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C55xx.xdc ========
    15     */
    16    package ti.catalog.c5500;
    17
    18    /*!
    19     *  ======== ITMS320C55xx ========
    20     *  An interface implemented by all TMS320C55xx devices.
    21     *
    22     *  This interface is defined to factor common data about this family into
    23     *  a single place; all TMS320C55xx devices extend this interface.
    24     */
    25    metaonly interface ITMS320C55xx inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        override config string   cpuCore        = "5500";
    29        override config string   isa            = "55";
    30        override config int     minProgUnitSize = 2;
    31        override config int     minDataUnitSize = 1;
    32        override config int     dataWordSize    = 2;
    33    };
    34    /*
    35     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    36     */
    37


module ti.catalog.c5500.TMS320C1035

metaonly module ti.catalog.c5500.TMS320C1035
index URL

The C1035 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C1035.xdc
var TMS320C1035 = xdc.useModule('ti.catalog.c5500.TMS320C1035');
per-instance config parameters
    var params = new TMS320C1035.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "20 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x018000,
                    len: 0x028000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "320K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xfb0000,
                    len: 0x050000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C1035.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "20 blocks of 8K bytes",
                name: "SARAM",
                base: 0x018000,
                len: 0x028000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "320K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xfb0000,
                len: 0x050000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C1035.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C1035.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C1035.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
...
params.dataWordSize = Int 2;
config TMS320C1035.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
...
params.deviceHeader = String undefined;
config TMS320C1035.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "20 blocks of 8K bytes",
            name: "SARAM",
            base: 0x018000,
            len: 0x028000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "320K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xfb0000,
            len: 0x050000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C1035.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C1035.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C1035.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C1035.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C1035.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C1035.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C1035.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:39 GMT


module ti.catalog.c5500.TMS320C1035

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C1035.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C1035 ========
    21     *  The C1035 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C1035 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "12 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x018000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "20 blocks of 8K bytes",
    47                name: "SARAM",
    48                base: 0x018000,
    49                len:  0x028000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53
    54            ["PDROM", {
    55                comment: "320K bytes On-Chip ROM",
    56                name: "PDROM",
    57                base: 0xfb0000,
    58                len:  0x050000,
    59                space: "code/data",
    60                access: "RX"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C1510

metaonly module ti.catalog.c5500.TMS320C1510
index URL

The C1510 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C1510.xdc
var TMS320C1510 = xdc.useModule('ti.catalog.c5500.TMS320C1510');
per-instance config parameters
    var params = new TMS320C1510.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "32K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C1510.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C1510.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C1510.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C1510.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
...
params.dataWordSize = Int 2;
config TMS320C1510.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
...
params.deviceHeader = String undefined;
config TMS320C1510.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C1510.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C1510.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C1510.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C1510.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C1510.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C1510.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C1510.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C1510

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C1510.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C1510 ========
    21     *  The C1510 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C1510 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C1610

metaonly module ti.catalog.c5500.TMS320C1610
index URL

The C1610 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C1610.xdc
var TMS320C1610 = xdc.useModule('ti.catalog.c5500.TMS320C1610');
per-instance config parameters
    var params = new TMS320C1610.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "32K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C1610.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C1610.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C1610.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C1610.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
...
params.dataWordSize = Int 2;
config TMS320C1610.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
...
params.deviceHeader = String undefined;
config TMS320C1610.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C1610.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C1610.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C1610.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C1610.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C1610.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C1610.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C1610.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C1610

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C1610.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C1610 ========
    21     *  The C1610 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C1610 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C1710

metaonly module ti.catalog.c5500.TMS320C1710
index URL

The C1710 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C1710.xdc
var TMS320C1710 = xdc.useModule('ti.catalog.c5500.TMS320C1710');
per-instance config parameters
    var params = new TMS320C1710.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "64K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff0000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C1710.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "64K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff0000,
                len: 0x010000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C1710.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C1710.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C1710.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
...
params.dataWordSize = Int 2;
config TMS320C1710.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
...
params.deviceHeader = String undefined;
config TMS320C1710.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "64K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff0000,
            len: 0x010000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C1710.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C1710.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C1710.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C1710.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C1710.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C1710.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C1710.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C1710

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C1710.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C1710 ========
    21     *  The C1710 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C1710 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "12 blocks of 8K bytes",
    47                name: "SARAM",
    48                base: 0x010000,
    49                len:  0x018000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53
    54            ["PDROM", {
    55                comment: "64K bytes On-Chip ROM",
    56                name: "PDROM",
    57                base: 0xff0000,
    58                len:  0x010000,
    59                space: "code/data",
    60                access: "RX"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C2320

metaonly module ti.catalog.c5500.TMS320C2320
index URL

The C2320 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C2320.xdc
var TMS320C2320 = xdc.useModule('ti.catalog.c5500.TMS320C2320');
per-instance config parameters
    var params = new TMS320C2320.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "20 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x018000,
                    len: 0x028000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "320K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xfb0000,
                    len: 0x050000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2320.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "20 blocks of 8K bytes",
                name: "SARAM",
                base: 0x018000,
                len: 0x028000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "320K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xfb0000,
                len: 0x050000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2320.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2320.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2320.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
...
params.dataWordSize = Int 2;
config TMS320C2320.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
...
params.deviceHeader = String undefined;
config TMS320C2320.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "20 blocks of 8K bytes",
            name: "SARAM",
            base: 0x018000,
            len: 0x028000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "320K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xfb0000,
            len: 0x050000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C2320.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2320.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2320.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2320.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2320.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2320.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2320.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C2320

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2320.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C2320 ========
    21     *  The C2320 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C2320 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "12 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x018000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "20 blocks of 8K bytes",
    47                name: "SARAM",
    48                base: 0x018000,
    49                len:  0x028000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53
    54            ["PDROM", {
    55                comment: "320K bytes On-Chip ROM",
    56                name: "PDROM",
    57                base: 0xfb0000,
    58                len:  0x050000,
    59                space: "code/data",
    60                access: "RX"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C2420

metaonly module ti.catalog.c5500.TMS320C2420
index URL

The C2420 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C2420.xdc
var TMS320C2420 = xdc.useModule('ti.catalog.c5500.TMS320C2420');
per-instance config parameters
    var params = new TMS320C2420.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "64K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff0000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2420.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "64K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff0000,
                len: 0x010000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2420.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2420.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2420.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
...
params.dataWordSize = Int 2;
config TMS320C2420.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
...
params.deviceHeader = String undefined;
config TMS320C2420.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "64K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff0000,
            len: 0x010000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C2420.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2420.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C2420.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2420.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2420.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2420.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2420.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C2420

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2420.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C2420 ========
    21     *  The C2420 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C2420 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "12 blocks of 8K bytes",
    47                name: "SARAM",
    48                base: 0x010000,
    49                len:  0x018000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53
    54            ["PDROM", {
    55                comment: "64K bytes On-Chip ROM",
    56                name: "PDROM",
    57                base: 0xff0000,
    58                len:  0x010000,
    59                space: "code/data",
    60                access: "RX"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C5501

metaonly module ti.catalog.c5500.TMS320C5501
index URL

The C5501 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5501.xdc
var TMS320C5501 = xdc.useModule('ti.catalog.c5500.TMS320C5501');
per-instance config parameters
    var params = new TMS320C5501.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "32K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5501.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x008000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "32K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5501.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5501.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5501.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
...
params.dataWordSize = Int 2;
config TMS320C5501.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
...
params.deviceHeader = String undefined;
config TMS320C5501.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x008000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "32K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5501.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5501.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5501.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5501.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5501.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5501.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5501.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5501

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5501.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5501 ========
    21     *  The C5501 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5501 inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x008000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["ROM", {
    46                comment: "32K bytes One-Wait-State On-Chip ROM",
    47                name: "ROM",
    48                base: 0xff8000,
    49                len:  0x008000,
    50                space: "code/data",
    51                access: "RX"
    52            }],
    53        ];
    54    };
    55    /*
    56     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    57     */
    58


module ti.catalog.c5500.TMS320C5502

metaonly module ti.catalog.c5500.TMS320C5502
index URL

The C5502 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5502.xdc
var TMS320C5502 = xdc.useModule('ti.catalog.c5500.TMS320C5502');
per-instance config parameters
    var params = new TMS320C5502.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "32K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5502.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "32K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5502.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5502.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5502.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
...
params.dataWordSize = Int 2;
config TMS320C5502.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
...
params.deviceHeader = String undefined;
config TMS320C5502.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "32K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5502.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5502.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5502.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5502.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5502.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5502.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5502.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5502

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5502.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5502 ========
    21     *  The C5502 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5502 inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["ROM", {
    46                comment: "32K bytes One-Wait-State On-Chip ROM",
    47                name: "ROM",
    48                base: 0xff8000,
    49                len:  0x008000,
    50                space: "code/data",
    51                access: "RX"
    52            }],
    53        ];
    54    };
    55    /*
    56     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    57     */
    58


module ti.catalog.c5500.TMS320C5503

metaonly module ti.catalog.c5500.TMS320C5503
index URL

The C5503 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5503.xdc
var TMS320C5503 = xdc.useModule('ti.catalog.c5500.TMS320C5503');
per-instance config parameters
    var params = new TMS320C5503.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "64K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xff0000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5503.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "64K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xff0000,
                len: 0x010000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5503.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5503.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5503.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
...
params.dataWordSize = Int 2;
config TMS320C5503.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
...
params.deviceHeader = String undefined;
config TMS320C5503.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "64K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xff0000,
            len: 0x010000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5503.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5503.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5503.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5503.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5503.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5503.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5503.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5503

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5503.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5503 ========
    21     *  The C5503 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5503 inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["ROM", {
    46                comment: "64K bytes One-Wait-State On-Chip ROM",
    47                name: "ROM",
    48                base: 0xff0000,
    49                len:  0x010000,
    50                space: "code/data",
    51                access: "RX"
    52            }],
    53        ];
    54    };
    55    /*
    56     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    57     */
    58


module ti.catalog.c5500.TMS320C5504

metaonly module ti.catalog.c5500.TMS320C5504
index URL

The C5504 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5504.xdc
var TMS320C5504 = xdc.useModule('ti.catalog.c5500.TMS320C5504');
per-instance config parameters
    var params = new TMS320C5504.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MMR",
                {
                    comment: "Memory Mapped Registers",
                    name: "MMR",
                    base: 0x000000,
                    len: 0x0000c0,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x0000c0,
                    len: 0x00ff40,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "24 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x030000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "128K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xfe0000,
                    len: 0x020000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5504.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MMR",
            {
                comment: "Memory Mapped Registers",
                name: "MMR",
                base: 0x000000,
                len: 0x0000c0,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x0000c0,
                len: 0x00ff40,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "24 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "128K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xfe0000,
                len: 0x020000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5504.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5504.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5504.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
...
params.dataWordSize = Int 2;
config TMS320C5504.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
...
params.deviceHeader = String undefined;
config TMS320C5504.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MMR",
        {
            comment: "Memory Mapped Registers",
            name: "MMR",
            base: 0x000000,
            len: 0x0000c0,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x0000c0,
            len: 0x00ff40,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "24 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "128K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xfe0000,
            len: 0x020000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5504.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5504.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5504.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5504.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5504.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5504.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5504.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5504

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5504.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== TMS320C5504 ========
    22     *  The C5504 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TMS320C5504 inherits ITMS320C55xx
    28    {
    29    instance:
    30
    31        override config string   cpuCoreRevision = "1.0";
    32
    33        /*!
    34         *  ======== memMap ========
    35         *  The default memory map for this device
    36         */
    37        config xdc.platform.IPlatform.Memory memMap[string]  = [
    38            ["MMR", {
    39                comment: "Memory Mapped Registers",
    40                name: "MMR",
    41                base: 0x000000,
    42                len:  0x0000c0,
    43                space: "code/data",
    44                access: "RWX"
    45            }],
    46
    47            ["DARAM", {
    48                comment: "8 blocks of 8K bytes",
    49                name: "DARAM",
    50                base: 0x0000c0,
    51                len:  0x00ff40,
    52                space: "code/data",
    53                access: "RWX"
    54            }],
    55
    56            ["SARAM", {
    57                comment: "24 blocks of 8K bytes",
    58                name: "SARAM",
    59                base: 0x010000,
    60                len:  0x030000,
    61                space: "code/data",
    62                access: "RWX"
    63            }],
    64
    65            ["ROM", {
    66                comment: "128K bytes One-Wait-State On-Chip ROM",
    67                name: "ROM",
    68                base: 0xfe0000,
    69                len:  0x020000,
    70                space: "code/data",
    71                access: "RX"
    72            }],
    73        ];
    74    };
    75    /*
    76     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


module ti.catalog.c5500.TMS320C5505

metaonly module ti.catalog.c5500.TMS320C5505
index URL

The C5505 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5505.xdc
var TMS320C5505 = xdc.useModule('ti.catalog.c5500.TMS320C5505');
per-instance config parameters
    var params = new TMS320C5505.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MMR",
                {
                    comment: "Memory Mapped Registers",
                    name: "MMR",
                    base: 0x000000,
                    len: 0x0000c0,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x0000c0,
                    len: 0x00ff40,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "32 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "128K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xfe0000,
                    len: 0x020000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5505.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MMR",
            {
                comment: "Memory Mapped Registers",
                name: "MMR",
                base: 0x000000,
                len: 0x0000c0,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x0000c0,
                len: 0x00ff40,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "32 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "128K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xfe0000,
                len: 0x020000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5505.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5505.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5505.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
...
params.dataWordSize = Int 2;
config TMS320C5505.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
...
params.deviceHeader = String undefined;
config TMS320C5505.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MMR",
        {
            comment: "Memory Mapped Registers",
            name: "MMR",
            base: 0x000000,
            len: 0x0000c0,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x0000c0,
            len: 0x00ff40,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "32 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "128K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xfe0000,
            len: 0x020000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5505.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5505.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5505.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5505.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5505.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5505.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5505.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5505

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5505.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== TMS320C5505 ========
    22     *  The C5505 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TMS320C5505 inherits ITMS320C55xx
    28    {
    29    instance:
    30
    31        override config string   cpuCoreRevision = "1.0";
    32
    33        /*!
    34         *  ======== memMap ========
    35         *  The default memory map for this device
    36         */
    37        config xdc.platform.IPlatform.Memory memMap[string]  = [
    38            ["MMR", {
    39                comment: "Memory Mapped Registers",
    40                name: "MMR",
    41                base: 0x000000,
    42                len:  0x0000c0,
    43                space: "code/data",
    44                access: "RWX"
    45            }],
    46
    47            ["DARAM", {
    48                comment: "8 blocks of 8K bytes",
    49                name: "DARAM",
    50                base: 0x0000c0,
    51                len:  0x00ff40,
    52                space: "code/data",
    53                access: "RWX"
    54            }],
    55
    56            ["SARAM", {
    57                comment: "32 blocks of 8K bytes",
    58                name: "SARAM",
    59                base: 0x010000,
    60                len:  0x040000,
    61                space: "code/data",
    62                access: "RWX"
    63            }],
    64
    65            ["ROM", {
    66                comment: "128K bytes One-Wait-State On-Chip ROM",
    67                name: "ROM",
    68                base: 0xfe0000,
    69                len:  0x020000,
    70                space: "code/data",
    71                access: "RX"
    72            }],
    73        ];
    74    };
    75    /*
    76     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


module ti.catalog.c5500.TMS320C5507

metaonly module ti.catalog.c5500.TMS320C5507
index URL

The C5507 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5507.xdc
var TMS320C5507 = xdc.useModule('ti.catalog.c5500.TMS320C5507');
per-instance config parameters
    var params = new TMS320C5507.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x10000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "64K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xff0000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5507.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "SARAM",
                base: 0x10000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "64K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xff0000,
                len: 0x010000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5507.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5507.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5507.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
...
params.dataWordSize = Int 2;
config TMS320C5507.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
...
params.deviceHeader = String undefined;
config TMS320C5507.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "SARAM",
            base: 0x10000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "64K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xff0000,
            len: 0x010000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5507.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5507.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5507.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5507.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5507.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5507.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5507.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5507

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5507.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5507 ========
    21     *  The C5507 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5507 inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "8 blocks of 8K bytes",
    47                name: "SARAM",
    48                base: 0x10000,
    49                len:  0x10000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53
    54            ["ROM", {
    55                comment: "64K bytes One-Wait-State On-Chip ROM",
    56                name: "ROM",
    57                base: 0xff0000,
    58                len:  0x010000,
    59                space: "code/data",
    60                access: "RX"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C5509

metaonly module ti.catalog.c5500.TMS320C5509
index URL

The C5509 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5509.xdc
var TMS320C5509 = xdc.useModule('ti.catalog.c5500.TMS320C5509');
per-instance config parameters
    var params = new TMS320C5509.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "24 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x10000,
                    len: 0x30000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "64K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xff0000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5509.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "24 blocks of 8K bytes",
                name: "SARAM",
                base: 0x10000,
                len: 0x30000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "64K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xff0000,
                len: 0x010000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5509.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5509.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5509.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
...
params.dataWordSize = Int 2;
config TMS320C5509.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
...
params.deviceHeader = String undefined;
config TMS320C5509.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "24 blocks of 8K bytes",
            name: "SARAM",
            base: 0x10000,
            len: 0x30000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "64K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xff0000,
            len: 0x010000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5509.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5509.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5509.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5509.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5509.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5509.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5509.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5509

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5509.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5509 ========
    21     *  The C5509 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5509 inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "24 blocks of 8K bytes",
    47                name: "SARAM",
    48                base: 0x10000,
    49                len:  0x30000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53
    54            ["ROM", {
    55                comment: "64K bytes One-Wait-State On-Chip ROM",
    56                name: "ROM",
    57                base: 0xff0000,
    58                len:  0x010000,
    59                space: "code/data",
    60                access: "RX"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C5509A

metaonly module ti.catalog.c5500.TMS320C5509A
index URL

The C5509A device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5509A.xdc
var TMS320C5509A = xdc.useModule('ti.catalog.c5500.TMS320C5509A');
per-instance config parameters
    var params = new TMS320C5509A.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "24 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x10000,
                    len: 0x30000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "64K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xff0000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5509A.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "24 blocks of 8K bytes",
                name: "SARAM",
                base: 0x10000,
                len: 0x30000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "64K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xff0000,
                len: 0x010000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5509A.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5509A.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5509A.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
...
params.dataWordSize = Int 2;
config TMS320C5509A.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
...
params.deviceHeader = String undefined;
config TMS320C5509A.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "24 blocks of 8K bytes",
            name: "SARAM",
            base: 0x10000,
            len: 0x30000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "64K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xff0000,
            len: 0x010000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5509A.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5509A.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5509A.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5509A.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5509A.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5509A.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5509A.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5509A

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5509A.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5509A ========
    21     *  The C5509A device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5509A inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "24 blocks of 8K bytes",
    47                name: "SARAM",
    48                base: 0x10000,
    49                len:  0x30000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53
    54            ["ROM", {
    55                comment: "64K bytes One-Wait-State On-Chip ROM",
    56                name: "ROM",
    57                base: 0xff0000,
    58                len:  0x010000,
    59                space: "code/data",
    60                access: "RX"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C5510

metaonly module ti.catalog.c5500.TMS320C5510
index URL

The C5510 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5510.xdc
var TMS320C5510 = xdc.useModule('ti.catalog.c5500.TMS320C5510');
per-instance config parameters
    var params = new TMS320C5510.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes of on-chip Dual-Access RAM",
                    name: "DARAM",
                    base: 0x0000c0,
                    len: 0x00ff40,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "32 blocks of 8K bytes of on-chip Single-Access RAM",
                    name: "SARAM",
                    base: 0x10000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "32K bytes of on-chip ROM",
                    name: "ROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5510.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes of on-chip Dual-Access RAM",
                name: "DARAM",
                base: 0x0000c0,
                len: 0x00ff40,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "32 blocks of 8K bytes of on-chip Single-Access RAM",
                name: "SARAM",
                base: 0x10000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "32K bytes of on-chip ROM",
                name: "ROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5510.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5510.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5510.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
...
params.dataWordSize = Int 2;
config TMS320C5510.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
...
params.deviceHeader = String undefined;
config TMS320C5510.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes of on-chip Dual-Access RAM",
            name: "DARAM",
            base: 0x0000c0,
            len: 0x00ff40,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "32 blocks of 8K bytes of on-chip Single-Access RAM",
            name: "SARAM",
            base: 0x10000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "32K bytes of on-chip ROM",
            name: "ROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5510.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5510.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5510.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5510.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5510.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5510.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5510.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5510

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5510.xdc ========
    15     */
    16    package ti.catalog.c5500;
    17
    18    /*!
    19     *  ======== TMS320C5510 ========
    20     *  The C5510 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C5510 inherits ITMS320C55xx
    26    {
    27    instance:
    28        override config string   cpuCoreRevision = "1.0";
    29
    30        /*!
    31         *  ======== memMap ========
    32         *  The default memory map for this device
    33         */
    34        config xdc.platform.IPlatform.Memory memMap[string]  = [
    35            ["DARAM", {
    36                comment: "8 blocks of 8K bytes of on-chip Dual-Access RAM",
    37                name: "DARAM",
    38                base: 0x0000c0,
    39                len:  0x00ff40,
    40                space: "code/data",
    41                access: "RWX"
    42            }],
    43
    44            ["SARAM", {
    45                comment: "32 blocks of 8K bytes of on-chip Single-Access RAM",
    46                name: "SARAM",
    47                base: 0x10000,
    48                len:  0x40000,
    49                space: "code/data",
    50                access: "RWX"
    51            }],
    52
    53            ["ROM", {
    54                comment: "32K bytes of on-chip ROM",
    55                name: "ROM",
    56                base: 0xff8000,
    57                len:  0x008000,
    58                space: "code/data",
    59                access: "RX"
    60            }],
    61        ];
    62    };
    63    /*
    64     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    65     */
    66


module ti.catalog.c5500.TMS320C5510A

metaonly module ti.catalog.c5500.TMS320C5510A
index URL

The C5510A device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5510A.xdc
var TMS320C5510A = xdc.useModule('ti.catalog.c5500.TMS320C5510A');
per-instance config parameters
    var params = new TMS320C5510A.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes of on-chip Dual-Access RAM",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "32 blocks of 8K bytes of on-chip Single-Access RAM",
                    name: "SARAM",
                    base: 0x10000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5510A.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes of on-chip Dual-Access RAM",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "32 blocks of 8K bytes of on-chip Single-Access RAM",
                name: "SARAM",
                base: 0x10000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5510A.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5510A.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5510A.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
...
params.dataWordSize = Int 2;
config TMS320C5510A.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
...
params.deviceHeader = String undefined;
config TMS320C5510A.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes of on-chip Dual-Access RAM",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "32 blocks of 8K bytes of on-chip Single-Access RAM",
            name: "SARAM",
            base: 0x10000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C5510A.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5510A.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5510A.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5510A.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5510A.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5510A.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5510A.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:40 GMT


module ti.catalog.c5500.TMS320C5510A

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5510A.xdc ========
    15     *! 05-Nov-2004 sasa    Created
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5510A ========
    21     *  The C5510A device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5510A inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes of on-chip Dual-Access RAM",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "32 blocks of 8K bytes of on-chip Single-Access RAM",
    47                name: "SARAM",
    48                base: 0x10000,
    49                len:  0x40000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53        ];
    54    };
    55    /*
    56     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    57     */
    58


module ti.catalog.c5500.TMS320C5514

metaonly module ti.catalog.c5500.TMS320C5514
index URL

The C5514 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5514.xdc
var TMS320C5514 = xdc.useModule('ti.catalog.c5500.TMS320C5514');
per-instance config parameters
    var params = new TMS320C5514.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MMR",
                {
                    comment: "Memory Mapped Registers",
                    name: "MMR",
                    base: 0x000000,
                    len: 0x0000c0,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x0000c0,
                    len: 0x00ff40,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "25 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x032000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "128K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xfe0000,
                    len: 0x020000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5514.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MMR",
            {
                comment: "Memory Mapped Registers",
                name: "MMR",
                base: 0x000000,
                len: 0x0000c0,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x0000c0,
                len: 0x00ff40,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "25 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x032000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "128K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xfe0000,
                len: 0x020000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5514.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5514.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5514.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
...
params.dataWordSize = Int 2;
config TMS320C5514.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
...
params.deviceHeader = String undefined;
config TMS320C5514.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MMR",
        {
            comment: "Memory Mapped Registers",
            name: "MMR",
            base: 0x000000,
            len: 0x0000c0,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x0000c0,
            len: 0x00ff40,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "25 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x032000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "128K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xfe0000,
            len: 0x020000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5514.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5514.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5514.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5514.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5514.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5514.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5514.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5514

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5514.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== TMS320C5514 ========
    22     *  The C5514 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TMS320C5514 inherits ITMS320C55xx
    28    {
    29    instance:
    30
    31        override config string   cpuCoreRevision = "1.0";
    32
    33        /*!
    34         *  ======== memMap ========
    35         *  The default memory map for this device
    36         */
    37        config xdc.platform.IPlatform.Memory memMap[string]  = [
    38            ["MMR", {
    39                comment: "Memory Mapped Registers",
    40                name: "MMR",
    41                base: 0x000000,
    42                len:  0x0000c0,
    43                space: "code/data",
    44                access: "RWX"
    45            }],
    46
    47            ["DARAM", {
    48                comment: "8 blocks of 8K bytes",
    49                name: "DARAM",
    50                base: 0x0000c0,
    51                len:  0x00ff40,
    52                space: "code/data",
    53                access: "RWX"
    54            }],
    55
    56            ["SARAM", {
    57                comment: "25 blocks of 8K bytes",
    58                name: "SARAM",
    59                base: 0x010000,
    60                len:  0x032000,
    61                space: "code/data",
    62                access: "RWX"
    63            }],
    64
    65            ["ROM", {
    66                comment: "128K bytes One-Wait-State On-Chip ROM",
    67                name: "ROM",
    68                base: 0xfe0000,
    69                len:  0x020000,
    70                space: "code/data",
    71                access: "RX"
    72            }],
    73        ];
    74    };
    75    /*
    76     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


module ti.catalog.c5500.TMS320C5515

metaonly module ti.catalog.c5500.TMS320C5515
index URL

The C5515 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5515.xdc
var TMS320C5515 = xdc.useModule('ti.catalog.c5500.TMS320C5515');
per-instance config parameters
    var params = new TMS320C5515.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "MMR",
                {
                    comment: "Memory Mapped Registers",
                    name: "MMR",
                    base: 0x000000,
                    len: 0x0000c0,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x0000c0,
                    len: 0x00ff40,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "32 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "128K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xfe0000,
                    len: 0x020000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5515.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "MMR",
            {
                comment: "Memory Mapped Registers",
                name: "MMR",
                base: 0x000000,
                len: 0x0000c0,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x0000c0,
                len: 0x00ff40,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "32 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "128K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xfe0000,
                len: 0x020000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5515.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5515.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5515.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
...
params.dataWordSize = Int 2;
config TMS320C5515.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
...
params.deviceHeader = String undefined;
config TMS320C5515.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "MMR",
        {
            comment: "Memory Mapped Registers",
            name: "MMR",
            base: 0x000000,
            len: 0x0000c0,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x0000c0,
            len: 0x00ff40,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "32 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "128K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xfe0000,
            len: 0x020000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5515.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5515.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5515.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5515.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5515.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5515.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5515.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5515

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5515.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== TMS320C5515 ========
    22     *  The C5515 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TMS320C5515 inherits ITMS320C55xx
    28    {
    29    instance:
    30
    31        override config string   cpuCoreRevision = "1.0";
    32
    33        /*!
    34         *  ======== memMap ========
    35         *  The default memory map for this device
    36         */
    37        config xdc.platform.IPlatform.Memory memMap[string]  = [
    38            ["MMR", {
    39                comment: "Memory Mapped Registers",
    40                name: "MMR",
    41                base: 0x000000,
    42                len:  0x0000c0,
    43                space: "code/data",
    44                access: "RWX"
    45            }],
    46
    47            ["DARAM", {
    48                comment: "8 blocks of 8K bytes",
    49                name: "DARAM",
    50                base: 0x0000c0,
    51                len:  0x00ff40,
    52                space: "code/data",
    53                access: "RWX"
    54            }],
    55
    56            ["SARAM", {
    57                comment: "32 blocks of 8K bytes",
    58                name: "SARAM",
    59                base: 0x010000,
    60                len:  0x040000,
    61                space: "code/data",
    62                access: "RWX"
    63            }],
    64
    65            ["ROM", {
    66                comment: "128K bytes One-Wait-State On-Chip ROM",
    67                name: "ROM",
    68                base: 0xfe0000,
    69                len:  0x020000,
    70                space: "code/data",
    71                access: "RX"
    72            }],
    73        ];
    74    };
    75    /*
    76     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


module ti.catalog.c5500.TMS320C5561

metaonly module ti.catalog.c5500.TMS320C5561
index URL

The C5561 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5561.xdc
var TMS320C5561 = xdc.useModule('ti.catalog.c5500.TMS320C5561');
per-instance config parameters
    var params = new TMS320C5561.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "4 blocks of 16K bytes on-chip Dual-Access RAM",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "64K bytes on-chip Single-Access RAM",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM1",
                {
                    comment: "4 blocks of 64K bytes on-chip Single-Access RAM",
                    name: "SARAM1",
                    base: 0x020000,
                    len: 0x040000,
                    space: "data",
                    access: "RWX"
                }
            ],
            [
                "SHRAM",
                {
                    comment: "2 block of 256K bytes shared memory",
                    name: "SHRAM",
                    base: 0xf80000,
                    len: 0x07f000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "4K byte on-chip ROM",
                    name: "ROM",
                    base: 0xfff000,
                    len: 0x001000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5561.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "4 blocks of 16K bytes on-chip Dual-Access RAM",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "64K bytes on-chip Single-Access RAM",
                name: "SARAM",
                base: 0x010000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM1",
            {
                comment: "4 blocks of 64K bytes on-chip Single-Access RAM",
                name: "SARAM1",
                base: 0x020000,
                len: 0x040000,
                space: "data",
                access: "RWX"
            }
        ],
        [
            "SHRAM",
            {
                comment: "2 block of 256K bytes shared memory",
                name: "SHRAM",
                base: 0xf80000,
                len: 0x07f000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "4K byte on-chip ROM",
                name: "ROM",
                base: 0xfff000,
                len: 0x001000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5561.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5561.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5561.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
...
params.dataWordSize = Int 2;
config TMS320C5561.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
...
params.deviceHeader = String undefined;
config TMS320C5561.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "4 blocks of 16K bytes on-chip Dual-Access RAM",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "64K bytes on-chip Single-Access RAM",
            name: "SARAM",
            base: 0x010000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM1",
        {
            comment: "4 blocks of 64K bytes on-chip Single-Access RAM",
            name: "SARAM1",
            base: 0x020000,
            len: 0x040000,
            space: "data",
            access: "RWX"
        }
    ],
    [
        "SHRAM",
        {
            comment: "2 block of 256K bytes shared memory",
            name: "SHRAM",
            base: 0xf80000,
            len: 0x07f000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "4K byte on-chip ROM",
            name: "ROM",
            base: 0xfff000,
            len: 0x001000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5561.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5561.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5561.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5561.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5561.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5561.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5561.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5561

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5561.xdc ========
    15     *  The chip configuration settings are based on document SPRS012B.
    16     *
    17     */
    18    package ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== TMS320C5561 ========
    22     *  The C5561 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TMS320C5561 inherits ITMS320C55xx
    28    {
    29    instance:
    30        override config string   cpuCoreRevision = "1.0";
    31
    32        /*!
    33         *  ======== memMap ========
    34         *  The default memory map for this device
    35         */
    36        config xdc.platform.IPlatform.Memory memMap[string]  = [
    37            ["DARAM", {
    38                comment: "4 blocks of 16K bytes on-chip Dual-Access RAM",
    39                name: "DARAM",
    40                base: 0x000000,
    41                len:  0x010000,
    42                space: "data",
    43                access: "RWX"
    44            }],
    45
    46            ["SARAM", {
    47                comment: "64K bytes on-chip Single-Access RAM",
    48                name: "SARAM",
    49                base: 0x010000,
    50                len:  0x010000,
    51                space: "code/data",
    52                access: "RWX"
    53            }],
    54
    55            ["SARAM1", {
    56                comment: "4 blocks of 64K bytes on-chip Single-Access RAM",
    57                name: "SARAM1",
    58                base: 0x020000,
    59                len:  0x040000,
    60                space: "data",
    61                access: "RWX"
    62            }],
    63
    64            ["SHRAM", {
    65                comment: "2 block of 256K bytes shared memory",
    66                name: "SHRAM",
    67                base: 0xf80000,
    68                len:  0x07f000,
    69                space: "code/data",
    70                access: "RWX"
    71            }],
    72
    73            ["ROM", {
    74                comment: "4K byte on-chip ROM",
    75                name: "ROM",
    76                base: 0xfff000,
    77                len:  0x001000,
    78                space: "code/data",
    79                access: "RX"
    80            }],
    81        ];
    82    };
    83    /*
    84     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    85     */
    86


module ti.catalog.c5500.TMS320C5903

metaonly module ti.catalog.c5500.TMS320C5903
index URL

The C5903 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5903.xdc
var TMS320C5903 = xdc.useModule('ti.catalog.c5500.TMS320C5903');
per-instance config parameters
    var params = new TMS320C5903.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "32K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5903.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5903.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5903.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5903.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
...
params.dataWordSize = Int 2;
config TMS320C5903.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
...
params.deviceHeader = String undefined;
config TMS320C5903.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5903.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5903.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5903.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5903.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5903.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5903.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5903.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5903

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5903.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5903 ========
    21     *  The C5903 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5903 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5905

metaonly module ti.catalog.c5500.TMS320C5905
index URL

The C5905 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5905.xdc
var TMS320C5905 = xdc.useModule('ti.catalog.c5500.TMS320C5905');
per-instance config parameters
    var params = new TMS320C5905.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "32K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5905.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5905.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5905.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5905.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
...
params.dataWordSize = Int 2;
config TMS320C5905.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
...
params.deviceHeader = String undefined;
config TMS320C5905.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5905.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5905.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5905.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5905.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5905.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5905.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5905.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5905

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5905.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5905 ========
    21     *  The C5905 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5905 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5910

metaonly module ti.catalog.c5500.TMS320C5910
index URL

The C5910 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5910.xdc
var TMS320C5910 = xdc.useModule('ti.catalog.c5500.TMS320C5910');
per-instance config parameters
    var params = new TMS320C5910.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "32K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5910.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5910.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5910.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5910.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
...
params.dataWordSize = Int 2;
config TMS320C5910.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
...
params.deviceHeader = String undefined;
config TMS320C5910.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5910.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5910.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5910.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5910.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5910.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5910.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5910.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5910

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5910.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5910 ========
    21     *  The C5910 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5910 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5912

metaonly module ti.catalog.c5500.TMS320C5912
index URL

The C5912 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5912.xdc
var TMS320C5912 = xdc.useModule('ti.catalog.c5500.TMS320C5912');
per-instance config parameters
    var params = new TMS320C5912.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "32K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5912.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5912.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5912.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5912.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.dataWordSize = Int 2;
config TMS320C5912.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.deviceHeader = String undefined;
config TMS320C5912.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5912.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5912.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5912.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5912.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5912.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5912.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5912.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5912

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5912.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5912 ========
    21     *  The C5912 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5912 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5944

metaonly module ti.catalog.c5500.TMS320C5944
index URL

The C5944 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5944.xdc
var TMS320C5944 = xdc.useModule('ti.catalog.c5500.TMS320C5944');
per-instance config parameters
    var params = new TMS320C5944.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "32K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5944.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5944.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5944.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5944.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
...
params.dataWordSize = Int 2;
config TMS320C5944.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
...
params.deviceHeader = String undefined;
config TMS320C5944.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5944.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5944.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5944.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5944.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5944.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5944.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5944.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5944

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5944.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5944 ========
    21     *  The C5944 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5944 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5946

metaonly module ti.catalog.c5500.TMS320C5946
index URL

The C5946 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5946.xdc
var TMS320C5946 = xdc.useModule('ti.catalog.c5500.TMS320C5946');
per-instance config parameters
    var params = new TMS320C5946.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "32K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5946.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5946.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5946.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5946.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
...
params.dataWordSize = Int 2;
config TMS320C5946.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
...
params.deviceHeader = String undefined;
config TMS320C5946.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5946.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5946.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5946.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5946.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5946.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5946.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5946.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5946

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5946.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5946 ========
    21     *  The C5946 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5946 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5948

metaonly module ti.catalog.c5500.TMS320C5948
index URL

The C5948 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320C5948.xdc
var TMS320C5948 = xdc.useModule('ti.catalog.c5500.TMS320C5948');
per-instance config parameters
    var params = new TMS320C5948.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "12 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "32K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xff8000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C5948.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "12 blocks of 8K bytes",
                name: "SARAM",
                base: 0x010000,
                len: 0x018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "32K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xff8000,
                len: 0x008000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C5948.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C5948.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C5948.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
...
params.dataWordSize = Int 2;
config TMS320C5948.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
...
params.deviceHeader = String undefined;
config TMS320C5948.memMap // instance
index URL

The default memory map for OMAP device. For 1510 and like devices, this memory map doesn't change, but for 1710, 2420, 594x and some others, it needs to be overridden

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "12 blocks of 8K bytes",
            name: "SARAM",
            base: 0x010000,
            len: 0x018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "32K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xff8000,
            len: 0x008000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320C5948.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C5948.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
...
params.minProgUnitSize = Int 2;
config TMS320C5948.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C5948.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C5948.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C5948.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C5948.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320C5948

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C5948.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320C5948 ========
    21     *  The C5948 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C5948 inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c5500.TMS320CDA255

metaonly module ti.catalog.c5500.TMS320CDA255
index URL

The DA255 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320CDA255.xdc
var TMS320CDA255 = xdc.useModule('ti.catalog.c5500.TMS320CDA255');
per-instance config parameters
    var params = new TMS320CDA255.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "8 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "24 blocks of 8K bytes",
                    name: "SARAM",
                    base: 0x10000,
                    len: 0x30000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "64K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xff0000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDA255.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "8 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "24 blocks of 8K bytes",
                name: "SARAM",
                base: 0x10000,
                len: 0x30000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "64K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xff0000,
                len: 0x010000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDA255.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDA255.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDA255.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
...
params.dataWordSize = Int 2;
config TMS320CDA255.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
...
params.deviceHeader = String undefined;
config TMS320CDA255.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "8 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "24 blocks of 8K bytes",
            name: "SARAM",
            base: 0x10000,
            len: 0x30000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "64K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xff0000,
            len: 0x010000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320CDA255.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDA255.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
...
params.minProgUnitSize = Int 2;
config TMS320CDA255.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDA255.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDA255.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDA255.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDA255.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320CDA255

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDA255.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320CDA255 ========
    21     *  The DA255 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDA255 inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "8 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "24 blocks of 8K bytes",
    47                name: "SARAM",
    48                base: 0x10000,
    49                len:  0x30000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53
    54            ["ROM", {
    55                comment: "64K bytes One-Wait-State On-Chip ROM",
    56                name: "ROM",
    57                base: 0xff0000,
    58                len:  0x010000,
    59                space: "code/data",
    60                access: "RX"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c5500.TMS320CDA295

metaonly module ti.catalog.c5500.TMS320CDA295
index URL

The DA295 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320CDA295.xdc
var TMS320CDA295 = xdc.useModule('ti.catalog.c5500.TMS320CDA295');
per-instance config parameters
    var params = new TMS320CDA295.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.4";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "24 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x030000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "64K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xff0000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDA295.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.4";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "24 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "64K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xff0000,
                len: 0x010000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDA295.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDA295.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
...
params.cpuCoreRevision = String "1.4";
config TMS320CDA295.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
...
params.dataWordSize = Int 2;
config TMS320CDA295.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
...
params.deviceHeader = String undefined;
config TMS320CDA295.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "24 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "64K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xff0000,
            len: 0x010000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320CDA295.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDA295.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
...
params.minProgUnitSize = Int 2;
config TMS320CDA295.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDA295.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDA295.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDA295.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDA295.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320CDA295

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDA295.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320CDA295 =========
    21     *  The DA295 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDA295 inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.4";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "24 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x030000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["ROM", {
    46                comment: "64K bytes One-Wait-State On-Chip ROM",
    47                name: "ROM",
    48                base: 0xff0000,
    49                len:  0x010000,
    50                space: "code/data",
    51                access: "RX"
    52            }],
    53        ];
    54    };
    55    /*
    56     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    57     */
    58


module ti.catalog.c5500.TMS320CDA300

metaonly module ti.catalog.c5500.TMS320CDA300
index URL

The DA300 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320CDA300.xdc
var TMS320CDA300 = xdc.useModule('ti.catalog.c5500.TMS320CDA300');
per-instance config parameters
    var params = new TMS320CDA300.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.4";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM",
                {
                    comment: "24 blocks of 8K bytes",
                    name: "DARAM",
                    base: 0x000000,
                    len: 0x030000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "ROM",
                {
                    comment: "64K bytes One-Wait-State On-Chip ROM",
                    name: "ROM",
                    base: 0xff0000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDA300.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.4";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM",
            {
                comment: "24 blocks of 8K bytes",
                name: "DARAM",
                base: 0x000000,
                len: 0x030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ROM",
            {
                comment: "64K bytes One-Wait-State On-Chip ROM",
                name: "ROM",
                base: 0xff0000,
                len: 0x010000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDA300.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDA300.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
...
params.cpuCoreRevision = String "1.4";
config TMS320CDA300.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
...
params.dataWordSize = Int 2;
config TMS320CDA300.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
...
params.deviceHeader = String undefined;
config TMS320CDA300.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM",
        {
            comment: "24 blocks of 8K bytes",
            name: "DARAM",
            base: 0x000000,
            len: 0x030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ROM",
        {
            comment: "64K bytes One-Wait-State On-Chip ROM",
            name: "ROM",
            base: 0xff0000,
            len: 0x010000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320CDA300.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDA300.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
...
params.minProgUnitSize = Int 2;
config TMS320CDA300.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDA300.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDA300.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDA300.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDA300.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320CDA300

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDA300.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320CDA300 =========
    21     *  The DA300 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDA300 inherits ITMS320C55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.4";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["DARAM", {
    37                comment: "24 blocks of 8K bytes",
    38                name: "DARAM",
    39                base: 0x000000,
    40                len:  0x030000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["ROM", {
    46                comment: "64K bytes One-Wait-State On-Chip ROM",
    47                name: "ROM",
    48                base: 0xff0000,
    49                len:  0x010000,
    50                space: "code/data",
    51                access: "RX"
    52            }],
    53        ];
    54    };
    55    /*
    56     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    57     */
    58


module ti.catalog.c5500.TMS320CRYUJIN

metaonly module ti.catalog.c5500.TMS320CRYUJIN
index URL

The CRYUJIN device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TMS320CRYUJIN.xdc
var TMS320CRYUJIN = xdc.useModule('ti.catalog.c5500.TMS320CRYUJIN');
per-instance config parameters
    var params = new TMS320CRYUJIN.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "BANKED_SARAM",
                {
                    comment: "64K bytes in 16 banks of SARAM",
                    name: "BANKED_SARAM",
                    base: 0x000000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "192K bytes On-Chip Single-Access RAM",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x030000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "PDROM",
                {
                    comment: "128K bytes On-Chip ROM",
                    name: "PDROM",
                    base: 0xfe0000,
                    len: 0x020000,
                    space: "code/data",
                    access: "RX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CRYUJIN.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "BANKED_SARAM",
            {
                comment: "64K bytes in 16 banks of SARAM",
                name: "BANKED_SARAM",
                base: 0x000000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "192K bytes On-Chip Single-Access RAM",
                name: "SARAM",
                base: 0x010000,
                len: 0x030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "PDROM",
            {
                comment: "128K bytes On-Chip ROM",
                name: "PDROM",
                base: 0xfe0000,
                len: 0x020000,
                space: "code/data",
                access: "RX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CRYUJIN.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CRYUJIN.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CRYUJIN.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
...
params.dataWordSize = Int 2;
config TMS320CRYUJIN.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
...
params.deviceHeader = String undefined;
config TMS320CRYUJIN.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "BANKED_SARAM",
        {
            comment: "64K bytes in 16 banks of SARAM",
            name: "BANKED_SARAM",
            base: 0x000000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "192K bytes On-Chip Single-Access RAM",
            name: "SARAM",
            base: 0x010000,
            len: 0x030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "PDROM",
        {
            comment: "128K bytes On-Chip ROM",
            name: "PDROM",
            base: 0xfe0000,
            len: 0x020000,
            space: "code/data",
            access: "RX"
        }
    ]
];
config TMS320CRYUJIN.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CRYUJIN.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
...
params.minProgUnitSize = Int 2;
config TMS320CRYUJIN.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CRYUJIN.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CRYUJIN.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CRYUJIN.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CRYUJIN.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TMS320CRYUJIN

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CRYUJIN.xdc ========
    15     *
    16     */
    17    package ti.catalog.c5500;
    18
    19    /*!
    20     *  ======== TMS320CRYUJIN ========
    21     *  The CRYUJIN device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CRYUJIN inherits IOMAP
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["BANKED_SARAM", {
    37                comment: "64K bytes in 16 banks of SARAM",
    38                name: "BANKED_SARAM",
    39                base: 0x000000,
    40                len:  0x010000,
    41                space: "code/data",
    42                access: "RWX"
    43            }],
    44
    45            ["SARAM", {
    46                comment: "192K bytes On-Chip Single-Access RAM",
    47                name: "SARAM",
    48                base: 0x010000,
    49                len:  0x030000,
    50                space: "code/data",
    51                access: "RWX"
    52            }],
    53
    54            ["PDROM", {
    55                comment: "128K bytes On-Chip ROM",
    56                name: "PDROM",
    57                base: 0xfe0000,
    58                len:  0x020000,
    59                space: "code/data",
    60                access: "RX"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c5500.TNETV1050

metaonly module ti.catalog.c5500.TNETV1050
index URL

The TNETV1050 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TNETV1050.xdc
var TNETV1050 = xdc.useModule('ti.catalog.c5500.TNETV1050');
per-instance config parameters
    var params = new TNETV1050.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "DARAM01",
                {
                    comment: "2 blocks of 16K bytes on-chip Dual-Access RAM",
                    name: "DARAM01",
                    base: 0x000000,
                    len: 0x008000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "DARAM23",
                {
                    comment: "2 blocks of 16K bytes on-chip Dual-Access RAM",
                    name: "DARAM23",
                    base: 0x008000,
                    len: 0x008000,
                    space: "data",
                    access: "RWX"
                }
            ],
            [
                "SARAM",
                {
                    comment: "64K bytes on-chip Single-Access RAM",
                    name: "SARAM",
                    base: 0x010000,
                    len: 0x010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "VECT",
                {
                    comment: "On-Chip Interrupt Vector Table",
                    name: "VECT",
                    base: 0xfff800,
                    len: 0x000100,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TNETV1050.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TNETV1050.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "DARAM01",
            {
                comment: "2 blocks of 16K bytes on-chip Dual-Access RAM",
                name: "DARAM01",
                base: 0x000000,
                len: 0x008000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "DARAM23",
            {
                comment: "2 blocks of 16K bytes on-chip Dual-Access RAM",
                name: "DARAM23",
                base: 0x008000,
                len: 0x008000,
                space: "data",
                access: "RWX"
            }
        ],
        [
            "SARAM",
            {
                comment: "64K bytes on-chip Single-Access RAM",
                name: "SARAM",
                base: 0x010000,
                len: 0x010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "VECT",
            {
                comment: "On-Chip Interrupt Vector Table",
                name: "VECT",
                base: 0xfff800,
                len: 0x000100,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TNETV1050.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TNETV1050.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TNETV1050.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TNETV1050.Params;
...
params.cpuCoreRevision = String "1.0";
config TNETV1050.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV1050.Params;
...
params.dataWordSize = Int 2;
config TNETV1050.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TNETV1050.Params;
...
params.deviceHeader = String undefined;
config TNETV1050.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TNETV1050.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "DARAM01",
        {
            comment: "2 blocks of 16K bytes on-chip Dual-Access RAM",
            name: "DARAM01",
            base: 0x000000,
            len: 0x008000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "DARAM23",
        {
            comment: "2 blocks of 16K bytes on-chip Dual-Access RAM",
            name: "DARAM23",
            base: 0x008000,
            len: 0x008000,
            space: "data",
            access: "RWX"
        }
    ],
    [
        "SARAM",
        {
            comment: "64K bytes on-chip Single-Access RAM",
            name: "SARAM",
            base: 0x010000,
            len: 0x010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "VECT",
        {
            comment: "On-Chip Interrupt Vector Table",
            name: "VECT",
            base: 0xfff800,
            len: 0x000100,
            space: "code",
            access: "RWX"
        }
    ]
];
config TNETV1050.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV1050.Params;
...
params.minDataUnitSize = Int 1;
config TNETV1050.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV1050.Params;
...
params.minProgUnitSize = Int 2;
config TNETV1050.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TNETV1050.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TNETV1050.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TNETV1050.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TNETV1050.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TNETV1050.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:41 GMT


module ti.catalog.c5500.TNETV1050

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TNETV1050.xdc ========
    15     *  The chip configuration settings are based on document SPRS238C.
    16     *
    17     */
    18    package ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== TNETV1050 ========
    22     *  The TNETV1050 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TNETV1050 inherits ITMS320C55xx
    28    {
    29    instance:
    30        override config string   cpuCoreRevision = "1.0";
    31
    32        /*!
    33         *  ======== memMap ========
    34         *  The default memory map for this device
    35         */
    36        config xdc.platform.IPlatform.Memory memMap[string]  = [
    37            ["DARAM01", {
    38                comment: "2 blocks of 16K bytes on-chip Dual-Access RAM",
    39                name: "DARAM01",
    40                base: 0x000000,
    41                len:  0x008000,
    42                space: "code/data",
    43                access: "RWX"
    44            }],
    45
    46            ["DARAM23", {
    47                comment: "2 blocks of 16K bytes on-chip Dual-Access RAM",
    48                name: "DARAM23",
    49                base: 0x008000,
    50                len:  0x008000,
    51                space: "data",
    52                access: "RWX"
    53            }],
    54
    55            ["SARAM", {
    56                comment: "64K bytes on-chip Single-Access RAM",
    57                name: "SARAM",
    58                base: 0x010000,
    59                len:  0x010000,
    60                space: "code/data",
    61                access: "RWX"
    62            }],
    63
    64            ["VECT", {
    65                comment: "On-Chip Interrupt Vector Table",
    66                name: "VECT",
    67                base: 0xfff800,
    68                len:  0x000100,
    69                space: "code",
    70                access: "RWX"
    71            }],
    72        ];
    73    };
    74    /*
    75     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    76     */
    77


module ti.catalog.c5500.TNETV1055

metaonly module ti.catalog.c5500.TNETV1055
index URL

The TNETV1055 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c5500/TNETV1055.xdc
var TNETV1055 = xdc.useModule('ti.catalog.c5500.TNETV1055');
per-instance config parameters
    var params = new TNETV1055.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "5500";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] TNETV1050.memMap;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 2;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TNETV1055.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TNETV1055.Params;
// Instance config-params object
    params.cpuCore = String "5500";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] TNETV1050.memMap;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 2;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TNETV1055.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TNETV1055.Params;
...
params.cpuCore = String "5500";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TNETV1055.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TNETV1055.Params;
...
params.cpuCoreRevision = String "1.0";
config TNETV1055.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV1055.Params;
...
params.dataWordSize = Int 2;
config TNETV1055.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TNETV1055.Params;
...
params.deviceHeader = String undefined;
config TNETV1055.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TNETV1055.Params;
...
params.memMap = IPlatform.Memory[string] TNETV1050.memMap;
config TNETV1055.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV1055.Params;
...
params.minDataUnitSize = Int 1;
config TNETV1055.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV1055.Params;
...
params.minProgUnitSize = Int 2;
config TNETV1055.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TNETV1055.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TNETV1055.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TNETV1055.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TNETV1055.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TNETV1055.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:42 GMT


module ti.catalog.c5500.TNETV1055

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TNETV1055.xdc ========
    15     *  The chip configuration settings are based on document SPRS256A.
    16     *
    17     */
    18    package ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== TNETV1055 ========
    22     *  The TNETV1055 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TNETV1055 inherits ITMS320C55xx
    28    {
    29    instance:
    30        override config string   cpuCoreRevision = "1.0";
    31
    32        /*!
    33         *  ======== memMap ========
    34         *  The default memory map for this device
    35         */
    36        config xdc.platform.IPlatform.Memory memMap[string] = TNETV1050.memMap;
    37    };
    38    /*
    39     *  @(#) ti.catalog.c5500; 1, 0, 0, 0,397; 8-17-2012 22:13:30; /db/ztree/library/trees/platform/platform-n27x/src/
    40     */
    41


package ti.catalog.c6000
index URL

Package of devices for the c6000 family of DSPs

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/c6000/package.xdc
requires xdc.platform;
package ti.catalog.c6000 [1, 0, 0, 0] {
    interface IAntara;
    // The Antara device data sheet module
    interface ICacheInfo;
    interface IDaVinci;
    // An interface implemented by all DaVinci devices
    interface IHimalaya;
    // An interface implemented by all Himalaya devices
    interface IOMAP2x3x;
    // An interface implemented by all OMAP2x3x devices
    interface IOMAP3xxx;
    // An interface implemented by all OMAP3xxx devices
    interface ITI811X;
    // An interface implemented by all TI811X devices
    interface ITI8148;
    // An interface implemented by all TI8148 devices
    interface ITI8168;
    // An interface implemented by all TI8168 devices
    interface ITMS320C642x;
    // The C642x device data sheet module
    interface ITMS320C6452;
    // The interface for 6452 and similar devices' data sheet module
    interface ITMS320C64_128K;
    // An interface implemented by all TMS320C64xx devices with 128KB of internal memory
    interface ITMS320C64_1M;
    // An interface implemented by all TMS320C64xx devices with 1MB of internal memory
    interface ITMS320C64_256K;
    // An interface implemented by all TMS320C64xx devices with 256KB of internal memory
    interface ITMS320C64_512K;
    // An interface implemented by all TMS320C64xx devices with 512KB of internal memory
    interface ITMS320C6655;
    interface ITMS320C6x0x;
    // An interface implemented by all TMS320C6x0x devices
    interface ITMS320C6x1x;
    // An interface implemented by all TMS320C6x1x devices
    interface ITMS320CDM6467;
    // An interface implemented by all DaVinci-HD devices
    interface ITMS320CDRA44x;
    // An interface implemented by all DRA44x devices
    interface ITMS320CDRA45x;
    // An interface implemented by all DRA45x devices
    interface ITMS320CDRx40x;
    // An interface implemented by all DRx40x and DRx41x devices
    interface ITMS320CTCI6484;
    interface ITMS320CTCI6486;
    // An interface implemented by TCI6486 like devices
    interface ITMS320CTCI648x;
    // An interface implemented by TCI6487 and TCI6488 devices
    interface ITMS320CTCI6497;
    interface ITMS320DA8xx;
    // An interface implemented by TMS320DA8xx devices
    interface ITMS320TCI6608;
    interface ITMS320TCI6616;
    interface ITMS320TCI663x;
    module Arctic;
    // The Arctic device data sheet module
    module Kepler;
    module OMAP2431;
    // OMAP2431 device data sheet module
    module OMAP2530;
    // OMAP2530 device data sheet module
    module OMAP2531;
    // OMAP2531 device data sheet module
    module OMAP3425;
    // OMAP3425 device data sheet module
    module OMAP3525;
    // OMAP3525 device data sheet module
    module OMAP3530;
    // OMAP3530 device data sheet module
    module OMAP4430;
    // The C64T device data sheet module
    module OMAP5430;
    // The C64T device data sheet module
    module OMAPL137;
    // The C64P device data sheet module
    module OMAPL138;
    // The C64P device data sheet module
    module TMS320C2430;
    // The OMAP2430 device data sheet module
    module TMS320C3430;
    // The C64P device data sheet module
    module TMS320C6201;
    // The C6201 device data sheet module
    module TMS320C6202;
    // The C6202 device data sheet module
    module TMS320C6203;
    // The C6203 device data sheet module
    module TMS320C6203B;
    // The C6203B device data sheet module
    module TMS320C6204;
    // The C6204 device data sheet module
    module TMS320C6205;
    // The C6205 device data sheet module
    module TMS320C6211;
    // The C6211 device data sheet module
    module TMS320C6211B;
    // The C6211B device data sheet module
    module TMS320C6410;
    // The 6410 device data sheet module
    module TMS320C6411;
    // The 6411 device data sheet module
    module TMS320C6412;
    // The 6412 device data sheet module
    module TMS320C6413;
    // The 6413 device data sheet module
    module TMS320C6414;
    // The C6414 device data sheet module
    module TMS320C6415;
    // The C6415 device data sheet module
    module TMS320C6416;
    // The C6416 device data sheet module
    module TMS320C6418;
    // The C6418 device data sheet module
    module TMS320C6421;
    // The C6421 device data sheet module
    module TMS320C6424;
    // The C6424 device data sheet module
    module TMS320C6428;
    // The 6428 device data sheet module
    module TMS320C6452;
    // The 6452 device data sheet module
    module TMS320C6454;
    // The 6454 device data sheet module
    module TMS320C6455;
    // The 6455 device data sheet module
    module TMS320C6457;
    // The 6457 device data sheet module
    module TMS320C6472;
    // The 6472 device data sheet module
    module TMS320C6474;
    // The 6474 device data sheet module
    module TMS320C6654;
    module TMS320C6655;
    module TMS320C6657;
    module TMS320C6670;
    module TMS320C6671;
    module TMS320C6672;
    module TMS320C6674;
    module TMS320C6678;
    module TMS320C6701;
    // The C6701 device data sheet module
    module TMS320C6711;
    // The C6711B device data sheet module
    module TMS320C6711B;
    // The C6711B device data sheet module
    module TMS320C6712;
    // The C6712 device data sheet module
    module TMS320C6713;
    // The C6713 device data sheet module
    module TMS320C6722;
    // The C6722 device data sheet module
    module TMS320C6726;
    // The C6726 device data sheet module
    module TMS320C6727;
    // The C6727 device data sheet module
    module TMS320C6742;
    // The C6742 device data sheet module
    module TMS320C6743;
    module TMS320C6745;
    module TMS320C6746;
    // The C6746 device data sheet module
    module TMS320C6747;
    // The C6747 device data sheet module
    module TMS320C6748;
    // The C6748 device data sheet module
    module TMS320C6A8149;
    // The C674 device data sheet module
    module TMS320C6A8168;
    // The C674 device data sheet module
    module TMS320CDA700;
    // The C67P device data sheet module
    module TMS320CDA700SIM;
    // The C67P device data sheet module
    module TMS320CDA705;
    // The DA705 device data sheet module
    module TMS320CDA707;
    // The DA707 device data sheet module
    module TMS320CDA710;
    // The DA710 device data sheet module
    module TMS320CDM415;
    // The DM415 device data sheet module
    module TMS320CDM420;
    // The DM420 device data sheet module
    module TMS320CDM421;
    // The DM421 device data sheet module
    module TMS320CDM425;
    // The DM425 device data sheet module
    module TMS320CDM426;
    // The DM426 device data sheet module
    module TMS320CDM640;
    // The DM640 device data sheet module
    module TMS320CDM641;
    // The DM641 device data sheet module
    module TMS320CDM642;
    // The DM642 device data sheet module
    module TMS320CDM6431;
    // The DM6431 device data sheet module
    module TMS320CDM6433;
    // The DM6433 device data sheet module
    module TMS320CDM6435;
    // The DM6435 device data sheet module
    module TMS320CDM6437;
    // The DM6437 device data sheet module
    module TMS320CDM6441;
    // The DM6441 device data sheet module
    module TMS320CDM6443;
    // The DM6443 device data sheet module
    module TMS320CDM6446;
    // The DM6446 device data sheet module
    module TMS320CDM6467;
    // The DM6467 device data sheet module
    module TMS320CDM647;
    // The DM647 device data sheet module
    module TMS320CDM648;
    // The DM648 device data sheet module
    module TMS320CDM730;
    // The C674 device data sheet module
    module TMS320CDM740;
    // The C674 device data sheet module
    module TMS320CDRA402;
    // The DRA402 device data sheet module
    module TMS320CDRA404;
    // The DRA404 device data sheet module
    module TMS320CDRA406;
    // The DRA406 device data sheet module
    module TMS320CDRA414;
    // The DRA414 device data sheet module
    module TMS320CDRA416;
    // The DRA416 device data sheet module
    module TMS320CDRA442;
    // The DRA442 device data sheet module
    module TMS320CDRA444;
    // The DRA444 device data sheet module
    module TMS320CDRA446;
    // The DRA446 device data sheet module
    module TMS320CDRA447;
    // The DRA447 device data sheet module
    module TMS320CDRA457;
    // The DRA457 device data sheet module
    module TMS320CDRA459;
    // The DRA459 device data sheet module
    module TMS320CDRI300;
    // The DRI300 device data sheet module
    module TMS320CF761990;
    // The C64P device data sheet module
    module TMS320CTCI6482;
    // The TCI6482 device data sheet module
    module TMS320CTCI6484;
    module TMS320CTCI6486;
    // The TCI6486 device data sheet module
    module TMS320CTCI6487;
    // The TCI6487 device data sheet module
    module TMS320CTCI6488;
    // The TCI6488 device data sheet module
    module TMS320CTCI6498;
    module TMS320CTNETV2685;
    // The TNETV2685 device data sheet module
    module TMS320DA802;
    // The DA802 device data sheet module
    module TMS320DA803;
    // The DA803 device data sheet module
    module TMS320DA804;
    // The DA804 device data sheet module
    module TMS320DA805;
    module TMS320DA807;
    module TMS320DA808;
    module TMS320DA810;
    module TMS320DA828;
    // The C64P device data sheet module
    module TMS320DA830;
    // The C64P device data sheet module
    module TMS320DA840;
    // The C64P device data sheet module
    module TMS320DA850;
    // The C64P device data sheet module
    module TMS320DM357;
    // The DM357 device data sheet module
    module TMS320DM8148;
    // The C674 device data sheet module
    module TMS320DM8168;
    // The C674 device data sheet module
    module TMS320TCI6485;
    // The TCI6485 device data sheet module
    module TMS320TCI6489;
    // The TCI6489 device data sheet module
    module TMS320TCI6608;
    module TMS320TCI6614;
    module TMS320TCI6616;
    module TMS320TCI6618;
    module TMS320TCI6634;
    module TMS320TCI6636;
    module TMS320TCI6638;
    module TMS320TI811X;
    // The C674 device data sheet module
    module TMS320TI814X;
    // The C674 device data sheet module
    module TMS320TI816X;
    // The C674 device data sheet module
    module TNETV107X;
    module Vayu;
    // The Vayu device data sheet module
}
generated on Thu, 08 Nov 2012 02:16:18 GMT


package ti.catalog.c6000

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14
    15    /*!
    16     *  ======== ti.catalog.c6000 ========
    17     *  Package of devices for the c6000 family of DSPs.
    18     *
    19     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    20     *  interface.  This interface is used by platforms (modules that implement
    21     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    22     */
    23    package ti.catalog.c6000 [1,0,0,0] {
    24        interface ICacheInfo;
    25        interface ITMS320C6x0x, ITMS320C6x1x;
    26        interface ITMS320C64_1M, ITMS320C64_128K, ITMS320C64_256K, ITMS320C64_512K;
    27        interface IAntara, IDaVinci, IHimalaya;
    28        interface ITMS320C642x;
    29        interface ITMS320CTCI648x, ITMS320CTCI6484, ITMS320CTCI6486;
    30        interface ITMS320CTCI6497;
    31        interface ITMS320TCI6608, ITMS320TCI6616;
    32        interface ITMS320CDRx40x, ITMS320CDRA44x, ITMS320CDRA45x;
    33        interface ITMS320DA8xx;
    34        interface ITMS320C6452, ITMS320CDM6467;
    35        module TMS320C6452, TMS320CDM647, TMS320CDM648, TMS320CTNETV2685;
    36        module TMS320C6428;
    37        module TMS320C6711;
    38        module TMS320C6711B;
    39        module TMS320C6712;
    40        module TMS320C6713;
    41        module TMS320C6211;
    42        module TMS320C6211B;
    43        module TMS320C6410;
    44        module TMS320C6411;
    45        module TMS320C6412;
    46        module TMS320C6413;
    47        module TMS320C6414;
    48        module TMS320C6415;
    49        module TMS320C6416;
    50        module TMS320C6418;
    51        module TMS320C6421, TMS320C6424;
    52        module TMS320CDM640;
    53        module TMS320CDM641;
    54        module TMS320CDM642;
    55        module TMS320CDA700;
    56        module TMS320CDA705;
    57        module TMS320CDA707;
    58        module TMS320CDA710;
    59        module TMS320CDA700SIM;
    60        module TMS320CDRA442, TMS320CDRA444, TMS320CDRA446, TMS320CDRA447;
    61        module TMS320CDRA457, TMS320CDRA459;
    62        module TMS320C6722, TMS320C6726, TMS320C6727;
    63        module TMS320CDM415;
    64        module TMS320CDM420;
    65        module TMS320CDM421;
    66        module TMS320CDM425;
    67        module TMS320CDM426;
    68        module TMS320CDM6431, TMS320CDM6433, TMS320CDM6435, TMS320CDM6437;
    69        module TMS320CDM6441, TMS320CDM6443;
    70        module TMS320CDM6446, TMS320DM357;
    71        module TMS320CDM6467;
    72        module TMS320CDRI300;
    73        module TMS320CTCI6482, TMS320CTCI6484;
    74        module TMS320CTCI6486;
    75        module TMS320TCI6485, TMS320CTCI6487, TMS320CTCI6488, TMS320TCI6489;
    76        module TMS320CTCI6498;
    77        module TMS320TCI6608, TMS320TCI6614, TMS320TCI6616, TMS320TCI6618;
    78        module TMS320C6670, TMS320C6671, TMS320C6672, TMS320C6674, TMS320C6678;
    79        module Kepler;
    80        module TMS320C6454, TMS320C6455;
    81        module TMS320C2430;
    82        module TMS320C3430;
    83        module TMS320C6701, TMS320C6201, TMS320C6202, TMS320C6203, TMS320C6203B;
    84        module TMS320C6204;
    85        module TMS320C6205;
    86        module TMS320CDRA406, TMS320CDRA402, TMS320CDRA404;
    87        module TMS320CDRA414, TMS320CDRA416;
    88        module TMS320CF761990;
    89
    90        interface IOMAP2x3x, IOMAP3xxx;
    91        module OMAP2431, OMAP2530, OMAP2531, OMAP3425, OMAP3525, OMAP3530, OMAP4430, OMAP5430;
    92        module TMS320DA802, TMS320DA803, TMS320DA804;
    93        module TMS320DA805, TMS320DA807, TMS320DA808, TMS320DA810;
    94        module TMS320DA828, TMS320DA830;
    95        module TMS320C6472, TMS320C6474;
    96        module TMS320C6747, TMS320C6745, TMS320C6743;
    97        module OMAPL137, OMAPL138;
    98        module TMS320C6457;
    99        module TMS320DA840, TMS320DA850;
   100        module TMS320C6742, TMS320C6746, TMS320C6748;
   101        module TNETV107X;
   102
   103        interface ITI8168;
   104        module TMS320TI816X;
   105        module TMS320CDM740, TMS320CDM730, TMS320DM8168;
   106        module TMS320C6A8168;
   107
   108        interface ITI8148;
   109        module TMS320TI814X;
   110        module TMS320DM8148;
   111
   112        interface ITI811X;
   113        module TMS320TI811X;
   114
   115        module Arctic;
   116        module TMS320C6A8149;
   117
   118        interface ITMS320C6655;
   119        module TMS320C6654;
   120        module TMS320C6655;
   121        module TMS320C6657;
   122
   123        module Vayu;
   124
   125        interface ITMS320TCI663x;
   126        module TMS320TCI6634;
   127        module TMS320TCI6636;
   128        module TMS320TCI6638;
   129    }
   130    /*
   131     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
   132     */
   133


module ti.catalog.c6000.Arctic

metaonly module ti.catalog.c6000.Arctic
index URL

The Arctic device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/Arctic.xdc
var Arctic = xdc.useModule('ti.catalog.c6000.Arctic');
module-wide config parameters
    const Arctic.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ],
                    [
                        "512k",
                        0x80000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     Arctic.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     Arctic.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ],
        [
            "512k",
            0x80000
        ]
    ];
per-instance config parameters
    var params = new Arctic.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 512KB L2 RAM/cache memory",
                    name: "IRAM",
                    base: 0x00800000,
                    len: 0x00080000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program/cache memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data/cache memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3MEM",
                {
                    comment: "1MB L3 Memory",
                    name: "L3MEM",
                    base: 0x40300000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "DMEM",
                {
                    comment: "ARP32 Internal data memory",
                    name: "DMEM",
                    base: 0x59020000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Arctic.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config Arctic.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const Arctic.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ],
                [
                    "512k",
                    0x80000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config Arctic.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
Arctic.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config Arctic.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
Arctic.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ],
    [
        "512k",
        0x80000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Arctic.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 512KB L2 RAM/cache memory",
                name: "IRAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program/cache memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data/cache memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3MEM",
            {
                comment: "1MB L3 Memory",
                name: "L3MEM",
                base: 0x40300000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "DMEM",
            {
                comment: "ARP32 Internal data memory",
                name: "DMEM",
                base: 0x59020000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Arctic.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Arctic.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.cpuCoreRevision = String "1.0";
config Arctic.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.dataWordSize = Int 4;
config Arctic.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.deviceHeader = String undefined;
config Arctic.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 512KB L2 RAM/cache memory",
            name: "IRAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program/cache memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data/cache memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3MEM",
        {
            comment: "1MB L3 Memory",
            name: "L3MEM",
            base: 0x40300000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "DMEM",
        {
            comment: "ARP32 Internal data memory",
            name: "DMEM",
            base: 0x59020000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ]
];
config Arctic.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.minDataUnitSize = Int 1;
config Arctic.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.minProgUnitSize = Int 1;
config Arctic.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Arctic.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Arctic.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Arctic.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Arctic.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Arctic.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:01 GMT


module ti.catalog.c6000.Arctic

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Arctic.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Arctic ========
    20     *  The Arctic device data sheet module.
    21     *
    22     *  This module implements the ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module Arctic inherits ti.catalog.ICpuDataSheet
    26    {
    27        config long cacheSizeL1[string] = [
    28            ["0k",  0x0000],
    29            ["4k",  0x1000],
    30            ["8k",  0x2000],
    31            ["16k", 0x4000],
    32            ["32k", 0x8000],
    33        ];
    34
    35        config long cacheSizeL2[string] = [
    36            ["0k",   0x00000],
    37            ["32k",  0x08000],
    38            ["64k",  0x10000],
    39            ["128k", 0x20000],
    40            ["256k", 0x40000],
    41            ["512k", 0x80000],
    42        ];
    43
    44        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    45             ['l1PMode',{desc:"L1P Cache",
    46                         base: 0xE00000,
    47                         map : [["0k",0x0000],
    48                                ["4k",0x1000],
    49                                ["8k",0x2000],
    50                                ["16k",0x4000],
    51                                ["32k",0x8000]],
    52                         defaultValue: "32k",
    53                         memorySection: "L1PSRAM"}],
    54
    55                     ['l1DMode',{desc:"L1D Cache",
    56                         base: 0xF00000,
    57                         map : [["0k",0x0000],
    58                                ["4k",0x1000],
    59                                ["8k",0x2000],
    60                                ["16k",0x4000],
    61                                ["32k",0x8000]],
    62                         defaultValue: "32k",
    63                         memorySection: "L1DSRAM"}],
    64
    65             ['l2Mode',{desc:"L2 Cache",
    66                         base: 0x800000,
    67                         map : [["0k",0x0000],
    68                                ["32k",0x8000],
    69                                ["64k",0x10000],
    70                                ["128k",0x20000],
    71                                ["256k",0x40000],
    72                                ["512k",0x80000]],
    73                         defaultValue: "0k",
    74                         memorySection: "IRAM"}],
    75        ];
    76
    77    instance:
    78
    79        override config string   cpuCore        = "C674";
    80        override config string   isa = "674";
    81        override config string   cpuCoreRevision = "1.0";
    82
    83        override config int     minProgUnitSize = 1;
    84        override config int     minDataUnitSize = 1;
    85        override config int     dataWordSize    = 4;
    86
    87        /*!
    88         *  ======== memMap ========
    89         *  The default memory map for this device
    90         */
    91        config xdc.platform.IPlatform.Memory memMap[string]  = [
    92            ["IRAM", {
    93                comment:    "Internal 512KB L2 RAM/cache memory",
    94                name:       "IRAM",
    95                base:       0x00800000,
    96                len:        0x00080000,
    97                space:      "code/data",
    98                access:     "RWX"
    99            }],
   100
   101            ["L1PSRAM", {
   102                comment:    "Internal 32KB L1 program/cache memory",
   103                name:       "L1PSRAM",
   104                base:       0x00E00000,
   105                len:        0x00008000,
   106                space:      "code",
   107                access:     "RX"
   108            }],
   109
   110            ["L1DSRAM", {
   111                comment:    "Internal 32KB L1 data/cache memory",
   112                name:       "L1DSRAM",
   113                base:       0x00F00000,
   114                len:        0x00008000,
   115                space:      "data",
   116                access:     "RW"
   117            }],
   118
   119            ["L3MEM", {
   120                comment:    "1MB L3 Memory",
   121                name:       "L3MEM",
   122                base:       0x40300000,
   123                len:        0x00100000,
   124                space:      "code/data",
   125                access:     "RWX"
   126            }],
   127
   128            ["DMEM", {
   129                comment:    "ARP32 Internal data memory",
   130                name:       "DMEM",
   131                base:       0x59020000,
   132                len:        0x8000,
   133                space:      "data",
   134                access:     "RW"
   135            }],
   136        ];
   137    };
   138    /*
   139     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:29; /db/ztree/library/trees/platform/platform-n27x/src/
   140     */
   141


interface ti.catalog.c6000.IAntara

metaonly interface ti.catalog.c6000.IAntara
index URL

The Antara device data sheet module

This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c6000/IAntara.xdc
metaonly interface IAntara { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
package ti.catalog.c6000;
metaonly interface IAntara inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "67x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// [string] = [
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal memory",
                base: 0x10000000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IAntara.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
override config String cpuCore = "67x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IAntara.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
override config String cpuCoreRevision = "1.0";
config IAntara.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
override config Int dataWordSize = 4;
config IAntara.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
config String deviceHeader;
config IAntara.memMap // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal memory",
            base: 0x10000000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config IAntara.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
override config Int minDataUnitSize = 1;
config IAntara.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
override config Int minProgUnitSize = 1;
config IAntara.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IAntara.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IAntara.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/IAntara.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:58 GMT


interface ti.catalog.c6000.IAntara

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IAntara.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== IAntara ========
    21     *  The Antara device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly interface IAntara inherits ti.catalog.ICpuDataSheet
    27    {
    28    instance:
    29        override config int     minProgUnitSize = 1;
    30        override config int     minDataUnitSize = 1;
    31        override config int     dataWordSize    = 4;
    32
    33        override config string   cpuCore        = "67x+";
    34        override config string   isa = "67P";
    35        override config string   cpuCoreRevision = "1.0";
    36
    37        config xdc.platform.IPlatform.Memory memMap[string]  = [
    38            ["IRAM", {
    39                name:       "IRAM",
    40                comment:    "Internal memory",
    41                base:       0x10000000,
    42                len:        0x00040000,
    43                space:      "code/data",
    44                access:     "RWX"
    45            }],
    46        ];
    47    };
    48    /*
    49     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
    50     */
    51


interface ti.catalog.c6000.ICacheInfo

metaonly interface ti.catalog.c6000.ICacheInfo
index URL
XDCspec summary sourced in ti/catalog/c6000/ICacheInfo.xdc
metaonly interface ICacheInfo { ...
XDCspec declarations sourced in ti/catalog/c6000/ICacheInfo.xdc
package ti.catalog.c6000;
metaonly interface ICacheInfo {
}
generated on Thu, 08 Nov 2012 02:15:58 GMT


interface ti.catalog.c6000.ICacheInfo

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ICacheInfo.xdc ========
    15     */
    16
    17
    18    package ti.catalog.c6000;
    19
    20    metaonly interface ICacheInfo {
    21        /*!
    22         *  ======== CacheDesc ========
    23         *  Structure used by ICpuDataSheet implementations to
    24         *  specify device cache modes.
    25         *
    26         *  A map is defined by an ICpuDataSheet implementation
    27         *  that maps a string denoting a device register setting
    28         *  to a CacheDesc structure. This maybe used in implementing
    29         *  the 'getMemoryMap' method. An example of such a map is shown below :
    30         *
    31         *   readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    32             *    ['l1PMode',{desc:"L1P Cache",
    33             *                map : [["0k",0x0000],
    34             *                       ["4k",0x1000],
    35             *                       ["8k",0x2000],
    36             *                       ["16k",0x4000],
    37             *                       ["32k",0x8000]],
    38             *                defaultValue: "32k",
    39             *                memorySection: "L1PSRAM"}],
    40             *
    41             *        ['l1DMode',{desc:"L1D Cache",
    42             *                map : [["0k",0x0000],
    43             *                       ["4k",0x1000],
    44             *                       ["8k",0x2000],
    45             *                       ["16k",0x4000],
    46             *                       ["32k",0x8000]],
    47             *                defaultValue: "32k",
    48             *                memorySection: "L1DSRAM"}],
    49             *
    50             *    ['l2Mode',{desc:"L2 Cache",
    51             *                map : [["0k",0x0000],
    52             *                       ["32k",0x8000],
    53             *                       ["64k",0x10000],
    54             *                       ["128k",0x20000],
    55             *                       ["256k",0x40000]],
    56             *                defaultValue: "0k",
    57             *                memorySection: "IRAM"}],
    58         *
    59         *   ];
    60         *
    61         *  @_nodoc
    62         */
    63        struct CacheDesc {
    64            string desc;          /*! String describing the register setting */
    65            Int base;             /*! base address of cache */
    66            unsigned map[string]; /*! A hash of cache modes to cache size*/
    67            string defaultValue;  /*! The default cache mode for the device */
    68            string memorySection; /*! The associated memory section */
    69        };
    70
    71
    72    }
    73    /*
    74     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
    75     */
    76


interface ti.catalog.c6000.IDaVinci

metaonly interface ti.catalog.c6000.IDaVinci
index URL

An interface implemented by all DaVinci devices

This interface is defined to factor common data about all DaVinci devices into a single place; they are all the same from the configuration point of view.
XDCspec summary sourced in ti/catalog/c6000/IDaVinci.xdc
metaonly interface IDaVinci { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
package ti.catalog.c6000;
metaonly interface IDaVinci inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IDaVinci.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config IDaVinci.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config IDaVinci.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
config IDaVinci.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IDaVinci.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
override config String cpuCoreRevision = "1.0";
config IDaVinci.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
override config Int dataWordSize = 4;
config IDaVinci.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
config String deviceHeader;
config IDaVinci.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config IDaVinci.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
override config Int minDataUnitSize = 1;
config IDaVinci.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
override config Int minProgUnitSize = 1;
config IDaVinci.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IDaVinci.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IDaVinci.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/IDaVinci.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:58 GMT


interface ti.catalog.c6000.IDaVinci

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IDaVinci.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== IDaVinci ========
    21     *  An interface implemented by all DaVinci devices
    22     *
    23     *  This interface is defined to factor common data about all DaVinci devices
    24     *  into a single place; they are all the same from the configuration point of
    25     *  view.
    26     */
    27    metaonly interface IDaVinci inherits ti.catalog.ICpuDataSheet
    28    {
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x8000],
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",  0x00000],
    39            ["32k", 0x08000],
    40            ["64k", 0x10000]
    41        ];
    42
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44                 ['l1PMode',{desc: "L1P Cache",
    45                             base: 0x11E08000,
    46                             map : [["0k",0x0000],
    47                                    ["4k",0x1000],
    48                                    ["8k",0x2000],
    49                                    ["16k",0x4000],
    50                                    ["32k",0x8000]],
    51                             defaultValue: "32k",
    52                             memorySection: "L1PSRAM"}],
    53
    54                     ['l1DMode',{desc: "L1D Cache",
    55                             base: 0x11F04000,
    56                             map : [["0k",0x0000],
    57                                    ["4k",0x1000],
    58                                    ["8k",0x2000],
    59                                    ["16k",0x4000],
    60                                    ["32k",0x8000]],
    61                             defaultValue: "32k",
    62                             memorySection: "L1DSRAM"}],
    63
    64                 ['l2Mode',{desc: "L2 Cache",
    65                             base: 0x11800000,
    66                             map : [["0k",0x0000],
    67                                    ["32k",0x8000],
    68                                    ["64k",0x10000]],
    69                             defaultValue: "0k",
    70                             memorySection: "IRAM"}],
    71
    72        ];
    73
    74    instance:
    75
    76        override config string   cpuCore        = "64x+";
    77        override config string   isa = "64P";
    78        override config string   cpuCoreRevision = "1.0";
    79
    80        override config int     minProgUnitSize = 1;
    81        override config int     minDataUnitSize = 1;
    82        override config int     dataWordSize    = 4;
    83
    84        /*!
    85         *  ======== memMap ========
    86         *  The default memory map for this device
    87         */
    88        config xdc.platform.IPlatform.Memory memMap[string]  = [
    89            ["IRAM", {
    90                comment:    "Internal 64KB UMAP0 memory",
    91                name:       "IRAM",
    92                base:       0x11800000,
    93                len:        0x00010000,
    94                space:      "code/data",
    95                access:     "RWX"
    96            }],
    97
    98            ["L1PSRAM", {
    99                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   100                name:       "L1PSRAM",
   101                base:       0x11E08000,
   102                len:        0x00008000,
   103                space:      "code",
   104                access:     "RWX"
   105            }],
   106
   107            ["L1DSRAM", {
   108                comment:    "Internal 80KB RAM/CACHE L1 data memory",
   109                name:       "L1DSRAM",
   110                base:       0x11F04000,
   111                len:        0x00014000,
   112                space:      "data",
   113                access:     "RW"
   114            }],
   115
   116            ["ARM_RAM", {
   117                comment:    "Internal ARM RAM memory",
   118                name:       "ARM_RAM",
   119                base:       0x10008000,
   120                len:        0x00004000,
   121                space:      "data",
   122                access:     "RW"
   123            }],
   124        ];
   125    };
   126    /*
   127     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   128     */
   129


interface ti.catalog.c6000.IHimalaya

metaonly interface ti.catalog.c6000.IHimalaya
index URL

An interface implemented by all Himalaya devices

This interface is defined to factor common data about all Himalaya devices into a single place; they are all the same from the configuration point of view.
XDCspec summary sourced in ti/catalog/c6000/IHimalaya.xdc
metaonly interface IHimalaya { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
package ti.catalog.c6000;
metaonly interface IHimalaya inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                comment: "Internal 2MB UMAP0 memory",
                name: "IRAM",
                base: 0x800000,
                len: 0x200000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IHimalaya.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config IHimalaya.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config IHimalaya.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config IHimalaya.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IHimalaya.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
override config String cpuCoreRevision = "1.0";
config IHimalaya.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
override config Int dataWordSize = 4;
config IHimalaya.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
config String deviceHeader;
config IHimalaya.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 2MB UMAP0 memory",
            name: "IRAM",
            base: 0x800000,
            len: 0x200000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config IHimalaya.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
override config Int minDataUnitSize = 1;
config IHimalaya.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
override config Int minProgUnitSize = 1;
config IHimalaya.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IHimalaya.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IHimalaya.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/IHimalaya.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:58 GMT


interface ti.catalog.c6000.IHimalaya

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IHimalaya.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== IHimalaya ========
    21     *  An interface implemented by all Himalaya devices
    22     *
    23     *  This interface is defined to factor common data about all Himalaya devices
    24     *  into a single place; they are all the same from the configuration point of
    25     *  view.
    26     */
    27    metaonly interface IHimalaya inherits ti.catalog.ICpuDataSheet
    28    {
    29
    30        config long cacheSizeL1[string] = [
    31            ["0k",  0x0000],
    32            ["4k",  0x1000],
    33            ["8k",  0x2000],
    34            ["16k", 0x4000],
    35            ["32k", 0x8000],
    36        ];
    37
    38        config long cacheSizeL2[string] = [
    39            ["0k",   0x00000],
    40            ["32k",  0x08000],
    41            ["64k",  0x10000],
    42            ["128k", 0x20000],
    43            ["256k", 0x40000]
    44        ];
    45
    46        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    47                 ['l1PMode',{desc:"L1P Cache",
    48                             base:0xE00000,
    49                             map : [["0k",0x0000],
    50                                    ["4k",0x1000],
    51                                    ["8k",0x2000],
    52                                    ["16k",0x4000],
    53                                    ["32k",0x8000]],
    54                             defaultValue: "32k",
    55                             memorySection: "L1PSRAM"}],
    56
    57                     ['l1DMode',{desc:"L1D Cache",
    58                             base:0xF00000,
    59                             map : [["0k",0x0000],
    60                                    ["4k",0x1000],
    61                                    ["8k",0x2000],
    62                                    ["16k",0x4000],
    63                                    ["32k",0x8000]],
    64                             defaultValue: "32k",
    65                             memorySection: "L1DSRAM"}],
    66
    67                 ['l2Mode',{desc:"L2 Cache",
    68                             base:0x800000,
    69                             map : [["0k",0x0000],
    70                                    ["32k",0x8000],
    71                                    ["64k",0x10000],
    72                                    ["128k", 0x20000],
    73                                ["256k", 0x40000]],
    74                             defaultValue: "0k",
    75                             memorySection: "IRAM"}],
    76
    77        ];
    78
    79    instance:
    80
    81        override config string   cpuCore         = "64x+";
    82        override config string   isa = "64P";
    83        override config string   cpuCoreRevision = "1.0";
    84
    85        override config int     minProgUnitSize = 1;
    86        override config int     minDataUnitSize = 1;
    87        override config int     dataWordSize    = 4;
    88
    89        /*!
    90         *  ======== memMap ========
    91         *  The default memory map for this device
    92         */
    93        config xdc.platform.IPlatform.Memory memMap[string]  = [
    94            ["IRAM", {
    95                comment:    "Internal 2MB UMAP0 memory",
    96                name:       "IRAM",
    97                base:       0x800000,
    98                len:        0x200000,
    99                space:      "code/data",
   100                access:     "RWX"
   101            }],
   102
   103            ["L1PSRAM", {
   104                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   105                name:       "L1PSRAM",
   106                base:       0xE00000,
   107                len:        0x008000,
   108                space:      "code",
   109                access:     "RWX"
   110            }],
   111
   112            ["L1DSRAM", {
   113                comment:    "Internal 32KB RAM/CACHE L1 data memory",
   114                name:       "L1DSRAM",
   115                base:       0xF00000,
   116                len:        0x008000,
   117                space:      "data",
   118                access:     "RW"
   119            }],
   120
   121        ];
   122    };
   123    /*
   124     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   125     */
   126


interface ti.catalog.c6000.IOMAP2x3x

metaonly interface ti.catalog.c6000.IOMAP2x3x
index URL

An interface implemented by all OMAP2x3x devices

This interface is defined to factor common data about all OMAP2x3x devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/c6000/IOMAP2x3x.xdc
metaonly interface IOMAP2x3x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
package ti.catalog.c6000;
metaonly interface IOMAP2x3x inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// [string] = [
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IOMAP2x3x.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config IOMAP2x3x.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config IOMAP2x3x.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
config IOMAP2x3x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IOMAP2x3x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config String cpuCoreRevision;
config IOMAP2x3x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
override config Int dataWordSize = 4;
config IOMAP2x3x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config String deviceHeader;
config IOMAP2x3x.memMap // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config IOMAP2x3x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
override config Int minDataUnitSize = 1;
config IOMAP2x3x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
override config Int minProgUnitSize = 1;
config IOMAP2x3x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IOMAP2x3x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IOMAP2x3x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:58 GMT


interface ti.catalog.c6000.IOMAP2x3x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IOMAP2x3x.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== IOMAP2x3x ========
    21     *  An interface implemented by all OMAP2x3x devices
    22     *
    23     *  This interface is defined to factor common data about all OMAP2x3x devices
    24     *  into a single place; they all have the same internal memory.
    25     */
    26    metaonly interface IOMAP2x3x inherits ti.catalog.ICpuDataSheet
    27    {
    28
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x8000],
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",  0x00000],
    39            ["32k", 0x08000],
    40            ["64k", 0x10000]
    41        ];
    42
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44                 ['l1PMode',{desc:"L1P Cache",
    45                             base:0x10E00000,
    46                             map : [["0k",0x0000],
    47                                    ["4k",0x1000],
    48                                    ["8k",0x2000],
    49                                    ["16k",0x4000],
    50                                    ["32k",0x8000]],
    51                             defaultValue: "32k",
    52                             memorySection: "L1PSRAM"}],
    53
    54                     ['l1DMode',{desc:"L1D Cache",
    55                             base:0x10F04000,
    56                             map : [["0k",0x0000],
    57                                    ["4k",0x1000],
    58                                    ["8k",0x2000],
    59                                    ["16k",0x4000],
    60                                    ["32k",0x8000]],
    61                             defaultValue: "32k",
    62                             memorySection: "L1DSRAM"}],
    63
    64                 ['l2Mode',{desc:"L2 Cache",
    65                             base: 0x10800000,
    66                             map : [["0k",0x0000],
    67                                    ["32k",0x8000],
    68                                    ["64k",0x10000]],
    69                             defaultValue: "0k",
    70                             memorySection: "IRAM"}],
    71
    72        ];
    73
    74    instance:
    75        override config int     minProgUnitSize = 1;
    76        override config int     minDataUnitSize = 1;
    77        override config int     dataWordSize    = 4;
    78
    79        override config string   cpuCore        = "64x+";
    80        override config string   isa = "64P";
    81
    82        config xdc.platform.IPlatform.Memory memMap[string]  = [
    83            ["IRAM", {
    84                comment:    "Internal 64KB L2 UMAP0 memory",
    85                name:       "IRAM",
    86                base:       0x10800000,
    87                len:        0x00010000,
    88                space:      "code/data",
    89                access:     "RWX"
    90            }],
    91
    92            ["L1PSRAM", {
    93                comment:    "Internal 32KB L1 program memory",
    94                name:       "L1PSRAM",
    95                base:       0x10E00000,
    96                len:        0x00008000,
    97                space:      "code",
    98                access:     "RWX"
    99            }],
   100
   101            ["L1DSRAM", {
   102                comment:    "Internal 80KB L1 data memory",
   103                name:       "L1DSRAM",
   104                base:       0x10F04000,
   105                len:        0x00014000,
   106                space:      "data",
   107                access:     "RW"
   108            }],
   109        ];
   110    };
   111    /*
   112     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   113     */
   114


interface ti.catalog.c6000.IOMAP3xxx

metaonly interface ti.catalog.c6000.IOMAP3xxx
index URL

An interface implemented by all OMAP3xxx devices

This interface is defined to factor common data about all OMAP3xxx devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/c6000/IOMAP3xxx.xdc
metaonly interface IOMAP3xxx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
package ti.catalog.c6000;
metaonly interface IOMAP3xxx inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x107F8000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// [string] = [
        [
            "IRAM",
            {
                comment: "Internal 96KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x107F8000,
                len: 0x00018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IOMAP3xxx.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x107F8000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config IOMAP3xxx.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config IOMAP3xxx.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
config IOMAP3xxx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IOMAP3xxx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
config String cpuCoreRevision;
config IOMAP3xxx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
override config Int dataWordSize = 4;
config IOMAP3xxx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
config String deviceHeader;
config IOMAP3xxx.memMap // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 96KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x107F8000,
            len: 0x00018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config IOMAP3xxx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
override config Int minDataUnitSize = 1;
config IOMAP3xxx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
override config Int minProgUnitSize = 1;
config IOMAP3xxx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IOMAP3xxx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IOMAP3xxx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/IOMAP3xxx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:58 GMT


interface ti.catalog.c6000.IOMAP3xxx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== IOMAP3xxx.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== IOMAP3xxx ========
    21     *  An interface implemented by all OMAP3xxx devices
    22     *
    23     *  This interface is defined to factor common data about all OMAP3xxx devices
    24     *  into a single place; they all have the same internal memory.
    25     */
    26    metaonly interface IOMAP3xxx inherits ti.catalog.ICpuDataSheet
    27    {
    28
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x8000],
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",  0x00000],
    39            ["32k", 0x08000],
    40            ["64k", 0x10000]
    41        ];
    42
    43       readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44                 ['l1PMode',{desc:"L1P Cache",
    45                             base:0x10E00000,
    46                             map : [["0k",0x0000],
    47                                    ["4k",0x1000],
    48                                    ["8k",0x2000],
    49                                    ["16k",0x4000],
    50                                    ["32k",0x8000]],
    51                             defaultValue: "32k",
    52                             memorySection: "L1PSRAM"}],
    53
    54                     ['l1DMode',{desc:"L1D Cache",
    55                             base:0x10F04000,
    56                             map : [["0k",0x0000],
    57                                    ["4k",0x1000],
    58                                    ["8k",0x2000],
    59                                    ["16k",0x4000],
    60                                    ["32k",0x8000]],
    61                             defaultValue: "32k",
    62                             memorySection: "L1DSRAM"}],
    63
    64                 ['l2Mode',{desc:"L2 Cache",
    65                             base:0x107F8000,
    66                             map : [["0k",0x0000],
    67                                    ["32k",0x8000],
    68                                    ["64k",0x10000]],
    69                             defaultValue: "0k",
    70                             memorySection: "IRAM"}],
    71
    72        ];
    73
    74    instance:
    75        override config int     minProgUnitSize = 1;
    76        override config int     minDataUnitSize = 1;
    77        override config int     dataWordSize    = 4;
    78
    79        override config string   cpuCore        = "64x+";
    80        override config string   isa = "64P";
    81
    82        config xdc.platform.IPlatform.Memory memMap[string]  = [
    83            ["IRAM", {
    84                comment:    "Internal 96KB L2 UMAP0 memory",
    85                name:       "IRAM",
    86                base:       0x107F8000,
    87                len:        0x00018000,
    88                space:      "code/data",
    89                access:     "RWX"
    90            }],
    91
    92            ["L1PSRAM", {
    93                comment:    "Internal 32KB L1 program memory",
    94                name:       "L1PSRAM",
    95                base:       0x10E00000,
    96                len:        0x00008000,
    97                space:      "code",
    98                access:     "RWX"
    99            }],
   100
   101            ["L1DSRAM", {
   102                comment:    "Internal 80KB L1 data memory",
   103                name:       "L1DSRAM",
   104                base:       0x10F04000,
   105                len:        0x00014000,
   106                space:      "data",
   107                access:     "RW"
   108            }],
   109        ];
   110    };
   111    /*
   112     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   113     */
   114


interface ti.catalog.c6000.ITI811X

metaonly interface ti.catalog.c6000.ITI811X
index URL

An interface implemented by all TI811X devices

This interface is defined to factor common data about all TI811X type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/c6000/ITI811X.xdc
metaonly interface ITI811X { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
package ti.catalog.c6000;
metaonly interface ITI811X inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "674";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config IPlatform.Memory memMap// [string] = [
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC",
            {
                comment: "OCMC (On-chip RAM) (128KB)",
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI811X.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITI811X.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITI811X.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITI811X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
override config String cpuCore = "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI811X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
override config String cpuCoreRevision = "1.0";
config ITI811X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
override config Int dataWordSize = 4;
config ITI811X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
config String deviceHeader;
config ITI811X.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
config HDVICP2.Instance hdvicp0;
config ITI811X.memMap // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC",
        {
            comment: "OCMC (On-chip RAM) (128KB)",
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITI811X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
override config Int minDataUnitSize = 1;
config ITI811X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
override config Int minProgUnitSize = 1;
config ITI811X.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI811X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI811X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITI811X.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:58 GMT


interface ti.catalog.c6000.ITI811X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI811X.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITI811X ========
    21     *  An interface implemented by all TI811X devices
    22     *
    23     *  This interface is defined to factor common data about all TI811X type
    24     *  devices into a single place; they all have the same internal memory.
    25     */
    26    metaonly interface ITI811X inherits ti.catalog.ICpuDataSheet
    27    {
    28        config long cacheSizeL1[string] = [
    29            ["0k",  0x0000],
    30            ["4k",  0x1000],
    31            ["8k",  0x2000],
    32            ["16k", 0x4000],
    33            ["32k", 0x8000],
    34        ];
    35
    36        config long cacheSizeL2[string] = [
    37            ["0k",  0x00000],
    38            ["32k", 0x08000],
    39            ["64k", 0x10000],
    40            ["128k",0x20000],
    41            ["256k",0x40000],
    42        ];
    43
    44        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    45                 ['l1PMode',{desc:"L1P Cache",
    46                                 base:0x10E00000,
    47                             map : [["0k",0x0000],
    48                                    ["4k",0x1000],
    49                                    ["8k",0x2000],
    50                                    ["16k",0x4000],
    51                                    ["32k",0x8000]],
    52                             defaultValue: "32k",
    53                             memorySection: "L1PSRAM"}],
    54
    55                     ['l1DMode',{desc:"L1D Cache",
    56                                 base:0x10F00000,
    57                             map : [["0k",0x0000],
    58                                    ["4k",0x1000],
    59                                    ["8k",0x2000],
    60                                    ["16k",0x4000],
    61                                    ["32k",0x8000]],
    62                             defaultValue: "32k",
    63                             memorySection: "L1DSRAM"}],
    64
    65                 ['l2Mode',{desc:"L2 Cache",
    66                                 base:0x10800000,
    67                             map : [["0k",0x0000],
    68                                    ["32k",0x8000],
    69                                    ["64k",0x10000],
    70                                    ["128k",0x20000],
    71                                    ["256k",0x40000]],
    72                             defaultValue: "0k",
    73                             memorySection: "IRAM"}],
    74
    75        ];
    76
    77    instance:
    78        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    79
    80        override config int     minProgUnitSize = 1;
    81        override config int     minDataUnitSize = 1;
    82        override config int     dataWordSize    = 4;
    83
    84        override config string   cpuCore        = "674";
    85        override config string   isa            = "674";
    86        override config string   cpuCoreRevision = "1.0";
    87
    88        config xdc.platform.IPlatform.Memory memMap[string]  = [
    89
    90            ["IRAM", {
    91                comment:    "Internal 256KB L2 memory",
    92                name:       "IRAM",
    93                base:       0x10800000,
    94                len:        0x40000,
    95                space:      "code/data",
    96                access:     "RWX"
    97            }],
    98
    99            ["L1PSRAM", {
   100                comment:    "Internal 32KB L1 program memory",
   101                name:       "L1PSRAM",
   102                base:       0x10E00000,
   103                len:        0x8000,
   104                space:      "code",
   105                access:     "RWX"
   106            }],
   107
   108            ["L1DSRAM", {
   109                comment:    "Internal 32KB L1 data memory",
   110                name:       "L1DSRAM",
   111                base:       0x10F00000,
   112                len:        0x8000,
   113                space:      "data",
   114                access:     "RW"
   115            }],
   116
   117            ["OCMC", {
   118                comment:    "OCMC (On-chip RAM) (128KB)",
   119                name:       "OCMC",
   120                base:       0x40300000,
   121                len:        0x20000,
   122                space:      "code/data",
   123                access:     "RWX"
   124            }],
   125        ];
   126    };
   127    /*
   128     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   129     */
   130


interface ti.catalog.c6000.ITI8148

metaonly interface ti.catalog.c6000.ITI8148
index URL

An interface implemented by all TI8148 devices

This interface is defined to factor common data about all TI8148 type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/c6000/ITI8148.xdc
metaonly interface ITI8148 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
package ti.catalog.c6000;
metaonly interface ITI8148 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "674";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config IPlatform.Memory memMap// [string] = [
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC",
            {
                comment: "OCMC (On-chip RAM) (128KB)",
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI8148.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITI8148.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITI8148.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITI8148.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
override config String cpuCore = "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI8148.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
override config String cpuCoreRevision = "1.0";
config ITI8148.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
override config Int dataWordSize = 4;
config ITI8148.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
config String deviceHeader;
config ITI8148.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
config HDVICP2.Instance hdvicp0;
config ITI8148.memMap // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC",
        {
            comment: "OCMC (On-chip RAM) (128KB)",
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITI8148.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
override config Int minDataUnitSize = 1;
config ITI8148.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
override config Int minProgUnitSize = 1;
config ITI8148.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI8148.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI8148.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITI8148.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:58 GMT


interface ti.catalog.c6000.ITI8148

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI8148.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITI8148 ========
    21     *  An interface implemented by all TI8148 devices
    22     *
    23     *  This interface is defined to factor common data about all TI8148 type devices
    24     *  into a single place; they all have the same internal memory.
    25     */
    26    metaonly interface ITI8148 inherits ti.catalog.ICpuDataSheet
    27    {
    28        config long cacheSizeL1[string] = [
    29            ["0k",  0x0000],
    30            ["4k",  0x1000],
    31            ["8k",  0x2000],
    32            ["16k", 0x4000],
    33            ["32k", 0x8000],
    34        ];
    35
    36        config long cacheSizeL2[string] = [
    37            ["0k",  0x00000],
    38            ["32k", 0x08000],
    39            ["64k", 0x10000],
    40            ["128k",0x20000],
    41            ["256k",0x40000],
    42        ];
    43
    44        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    45                 ['l1PMode',{desc:"L1P Cache",
    46                                 base:0x10E00000,
    47                             map : [["0k",0x0000],
    48                                    ["4k",0x1000],
    49                                    ["8k",0x2000],
    50                                    ["16k",0x4000],
    51                                    ["32k",0x8000]],
    52                             defaultValue: "32k",
    53                             memorySection: "L1PSRAM"}],
    54
    55                     ['l1DMode',{desc:"L1D Cache",
    56                                 base:0x10F00000,
    57                             map : [["0k",0x0000],
    58                                    ["4k",0x1000],
    59                                    ["8k",0x2000],
    60                                    ["16k",0x4000],
    61                                    ["32k",0x8000]],
    62                             defaultValue: "32k",
    63                             memorySection: "L1DSRAM"}],
    64
    65                 ['l2Mode',{desc:"L2 Cache",
    66                                 base:0x10800000,
    67                             map : [["0k",0x0000],
    68                                    ["32k",0x8000],
    69                                    ["64k",0x10000],
    70                                    ["128k",0x20000],
    71                                    ["256k",0x40000]],
    72                             defaultValue: "0k",
    73                             memorySection: "IRAM"}],
    74
    75        ];
    76
    77    instance:
    78        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    79
    80        override config int     minProgUnitSize = 1;
    81        override config int     minDataUnitSize = 1;
    82        override config int     dataWordSize    = 4;
    83
    84        override config string   cpuCore        = "674";
    85        override config string   isa            = "674";
    86        override config string   cpuCoreRevision = "1.0";
    87
    88        config xdc.platform.IPlatform.Memory memMap[string]  = [
    89
    90            ["IRAM", {
    91                comment:    "Internal 256KB L2 memory",
    92                name:       "IRAM",
    93                base:       0x10800000,
    94                len:        0x40000,
    95                space:      "code/data",
    96                access:     "RWX"
    97            }],
    98
    99            ["L1PSRAM", {
   100                comment:    "Internal 32KB L1 program memory",
   101                name:       "L1PSRAM",
   102                base:       0x10E00000,
   103                len:        0x8000,
   104                space:      "code",
   105                access:     "RWX"
   106            }],
   107
   108            ["L1DSRAM", {
   109                comment:    "Internal 32KB L1 data memory",
   110                name:       "L1DSRAM",
   111                base:       0x10F00000,
   112                len:        0x8000,
   113                space:      "data",
   114                access:     "RW"
   115            }],
   116
   117            ["OCMC", {
   118                comment:    "OCMC (On-chip RAM) (128KB)",
   119                name:       "OCMC",
   120                base:       0x40300000,
   121                len:        0x20000,
   122                space:      "code/data",
   123                access:     "RWX"
   124            }],
   125        ];
   126    };
   127    /*
   128     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   129     */
   130


interface ti.catalog.c6000.ITI8168

metaonly interface ti.catalog.c6000.ITI8168
index URL

An interface implemented by all TI8168 devices

This interface is defined to factor common data about all TI8168 type devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/c6000/ITI8168.xdc
metaonly interface ITI8168 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
package ti.catalog.c6000;
metaonly interface ITI8168 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x00000
                    ],
                    [
                        "32k",
                        0x08000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "674";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config HDVICP2.Instance hdvicp0// ;
    config HDVICP2.Instance hdvicp1// ;
    config HDVICP2.Instance hdvicp2// ;
    config IPlatform.Memory memMap// [string] = [
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITI8168.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x00000
                ],
                [
                    "32k",
                    0x08000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITI8168.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITI8168.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITI8168.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
override config String cpuCore = "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITI8168.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
override config String cpuCoreRevision = "1.0";
config ITI8168.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
override config Int dataWordSize = 4;
config ITI8168.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
config String deviceHeader;
config ITI8168.hdvicp0 // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
config HDVICP2.Instance hdvicp0;
config ITI8168.hdvicp1 // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
config HDVICP2.Instance hdvicp1;
config ITI8168.hdvicp2 // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
config HDVICP2.Instance hdvicp2;
config ITI8168.memMap // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITI8168.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
override config Int minDataUnitSize = 1;
config ITI8168.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
override config Int minProgUnitSize = 1;
config ITI8168.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITI8168.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITI8168.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITI8168.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:58 GMT


interface ti.catalog.c6000.ITI8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITI8168.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITI8168 ========
    21     *  An interface implemented by all TI8168 devices
    22     *
    23     *  This interface is defined to factor common data about all TI8168 type devices
    24     *  into a single place; they all have the same internal memory.
    25     */
    26    metaonly interface ITI8168 inherits ti.catalog.ICpuDataSheet
    27    {
    28
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x8000],
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",   0x00000],
    39            ["32k",  0x08000],
    40            ["64k",  0x10000],
    41            ["128k", 0x20000],
    42            ["256k", 0x40000],
    43        ];
    44
    45        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    46                 ['l1PMode', {desc: "L1P Cache",
    47                             base: 0x10E00000,
    48                             map : [["0k",  0x0000],
    49                                    ["4k",  0x1000],
    50                                    ["8k",  0x2000],
    51                                    ["16k", 0x4000],
    52                                    ["32k", 0x8000]],
    53                             defaultValue: "32k",
    54                             memorySection: "L1PSRAM"}],
    55
    56                     ['l1DMode', {desc: "L1D Cache",
    57                             base: 0x10F00000,
    58                             map : [["0k",  0x0000],
    59                                    ["4k",  0x1000],
    60                                    ["8k",  0x2000],
    61                                    ["16k", 0x4000],
    62                                    ["32k", 0x8000]],
    63                             defaultValue: "32k",
    64                             memorySection: "L1DSRAM"}],
    65
    66                 ['l2Mode', {desc: "L2 Cache",
    67                             base: 0x10800000,
    68                             map : [["0k",   0x00000],
    69                                    ["32k",  0x08000],
    70                                    ["64k",  0x10000],
    71                                    ["128k", 0x20000],
    72                                    ["256k", 0x40000]],
    73                             defaultValue: "0k",
    74                             memorySection: "IRAM"}],
    75
    76        ];
    77
    78    instance:
    79        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    80        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp1;
    81        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp2;
    82
    83        override config int     minProgUnitSize = 1;
    84        override config int     minDataUnitSize = 1;
    85        override config int     dataWordSize    = 4;
    86
    87        override config string   cpuCore        = "674";
    88        override config string   isa            = "674";
    89        override config string   cpuCoreRevision = "1.0";
    90
    91        config xdc.platform.IPlatform.Memory memMap[string]  = [
    92
    93            ["IRAM", {
    94                comment:    "Internal 256KB L2 memory",
    95                name:       "IRAM",
    96                base:       0x10800000,
    97                len:        0x40000,
    98                space:      "code/data",
    99                access:     "RWX"
   100            }],
   101
   102            ["L1PSRAM", {
   103                comment:    "Internal 32KB L1 program memory",
   104                name:       "L1PSRAM",
   105                base:       0x10E00000,
   106                len:        0x8000,
   107                space:      "code",
   108                access:     "RWX"
   109            }],
   110
   111            ["L1DSRAM", {
   112                comment:    "Internal 32KB L1 data memory",
   113                name:       "L1DSRAM",
   114                base:       0x10F00000,
   115                len:        0x8000,
   116                space:      "data",
   117                access:     "RW"
   118            }],
   119
   120            ["OCMC_0", {
   121                comment:    "OCMC (On-chip RAM) Bank 0 (256KB)",
   122                name:       "OCMC_0",
   123                base:       0x40300000,
   124                len:        0x40000,
   125                space:      "code/data",
   126                access:     "RWX"
   127            }],
   128
   129            ["OCMC_1", {
   130                comment:    "OCMC (On-chip RAM) Bank 1 (256KB)",
   131                name:       "OCMC_1",
   132                base:       0x40400000,
   133                len:        0x40000,
   134                space:      "code/data",
   135                access:     "RWX"
   136            }],
   137        ];
   138    };
   139    /*
   140     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   141     */
   142


interface ti.catalog.c6000.ITMS320C642x

metaonly interface ti.catalog.c6000.ITMS320C642x
index URL

The C642x device data sheet module

This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c6000/ITMS320C642x.xdc
metaonly interface ITMS320C642x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
package ti.catalog.c6000;
metaonly interface ITMS320C642x inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x10E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C642x.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320C642x.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320C642x.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
config ITMS320C642x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C642x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C642x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
override config Int dataWordSize = 4;
config ITMS320C642x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
config String deviceHeader;
config ITMS320C642x.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x10E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config ITMS320C642x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
override config Int minDataUnitSize = 1;
config ITMS320C642x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
override config Int minProgUnitSize = 1;
config ITMS320C642x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C642x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C642x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C642x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320C642x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C642x.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITMS320C642x ========
    20     *  The C642x device data sheet module.
    21     *
    22     *  This module implements the ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly interface ITMS320C642x inherits ti.catalog.ICpuDataSheet
    26    {
    27        config long cacheSizeL1[string] = [
    28            ["0k",  0x0000],
    29            ["4k",  0x1000],
    30            ["8k",  0x2000],
    31            ["16k", 0x4000],
    32            ["32k", 0x8000],
    33        ];
    34
    35        config long cacheSizeL2[string] = [
    36            ["0k",   0x00000],
    37            ["32k",  0x08000],
    38            ["64k",  0x10000],
    39            ["128k", 0x20000]
    40        ];
    41
    42        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    43                 ['l1PMode',{desc:"L1P Cache",
    44                             base:0x10E08000,
    45                             map : [["0k",0x0000],
    46                                    ["4k",0x1000],
    47                                    ["8k",0x2000],
    48                                    ["16k",0x4000],
    49                                    ["32k",0x8000]],
    50                             defaultValue: "32k",
    51                             memorySection: "L1PSRAM"}],
    52
    53                     ['l1DMode',{desc:"L1D Cache",
    54                             base:0x10F04000,
    55                             map : [["0k",0x0000],
    56                                    ["4k",0x1000],
    57                                    ["8k",0x2000],
    58                                    ["16k",0x4000],
    59                                    ["32k",0x8000]],
    60                             defaultValue: "32k",
    61                             memorySection: "L1DSRAM"}],
    62
    63                 ['l2Mode',{desc:"L2 Cache",
    64                             base:0x10800000,
    65                             map : [["0k",0x0000],
    66                                    ["32k",0x8000],
    67                                    ["64k",0x10000],
    68                                    ["128k",0x20000]],
    69                             defaultValue: "0k",
    70                             memorySection: "IRAM"}],
    71
    72        ];
    73
    74    instance:
    75
    76        override config string   cpuCore        = "64x+";
    77        override config string   isa = "64P";
    78        override config string   cpuCoreRevision = "1.0";
    79
    80        override config int     minProgUnitSize = 1;
    81        override config int     minDataUnitSize = 1;
    82        override config int     dataWordSize    = 4;
    83
    84        /*!
    85         *  ======== memMap ========
    86         *  The default memory map for this device
    87         */
    88        config xdc.platform.IPlatform.Memory memMap[string]  = [
    89            ["IRAM", {
    90                comment:    "Internal 128KB UMAP0 memory",
    91                name:       "IRAM",
    92                base:       0x10800000,
    93                len:        0x00020000,
    94                space:      "code/data",
    95                access:     "RWX"
    96            }],
    97
    98            ["L1PSRAM", {
    99                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   100                name:       "L1PSRAM",
   101                base:       0x10E08000,
   102                len:        0x00008000,
   103                space:      "code",
   104                access:     "RWX"
   105            }],
   106
   107            ["L1DSRAM", {
   108                comment:    "Internal 80KB RAM/CACHE L1 data memory",
   109                name:       "L1DSRAM",
   110                base:       0x10F04000,
   111                len:        0x00014000,
   112                space:      "data",
   113                access:     "RW"
   114            }],
   115        ];
   116    };
   117    /*
   118     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   119     */
   120


interface ti.catalog.c6000.ITMS320C6452

metaonly interface ti.catalog.c6000.ITMS320C6452
index URL

The interface for 6452 and similar devices' data sheet module

This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCspec summary sourced in ti/catalog/c6000/ITMS320C6452.xdc
metaonly interface ITMS320C6452 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
package ti.catalog.c6000;
metaonly interface ITMS320C6452 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0xA00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                comment: "Internal 1408KB L2 RAM/CACHE",
                name: "IRAM",
                base: 0xA00000,
                len: 0x160000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C6452.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0xA00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320C6452.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320C6452.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITMS320C6452.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C6452.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C6452.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
override config Int dataWordSize = 4;
config ITMS320C6452.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
config String deviceHeader;
config ITMS320C6452.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 1408KB L2 RAM/CACHE",
            name: "IRAM",
            base: 0xA00000,
            len: 0x160000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config ITMS320C6452.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
override config Int minDataUnitSize = 1;
config ITMS320C6452.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
override config Int minProgUnitSize = 1;
config ITMS320C6452.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C6452.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C6452.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6452.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320C6452

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C6452.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320C6452 ========
    21     *  The interface for 6452 and similar devices' data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly interface ITMS320C6452 inherits ti.catalog.ICpuDataSheet
    27    {
    28
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x8000],
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",   0x00000],
    39            ["32k",  0x08000],
    40            ["64k",  0x10000],
    41            ["128k", 0x20000],
    42            ["256k", 0x40000]
    43        ];
    44
    45        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    46                 ['l1PMode',{desc:"L1P Cache",
    47                             base:0xE00000,
    48                             map : [["0k",0x0000],
    49                                    ["4k",0x1000],
    50                                    ["8k",0x2000],
    51                                    ["16k",0x4000],
    52                                    ["32k",0x8000]],
    53                             defaultValue: "32k",
    54                             memorySection: "L1PSRAM"}],
    55
    56                     ['l1DMode',{desc:"L1D Cache",
    57                             base:0xF00000,
    58                             map : [["0k",0x0000],
    59                                    ["4k",0x1000],
    60                                    ["8k",0x2000],
    61                                    ["16k",0x4000],
    62                                    ["32k",0x8000]],
    63                             defaultValue: "32k",
    64                             memorySection: "L1DSRAM"}],
    65
    66                 ['l2Mode',{desc:"L2 Cache",
    67                             base:0xA00000,
    68                             map : [["0k",0x0000],
    69                                    ["32k",0x8000],
    70                                    ["64k",0x10000],
    71                                    ["128k",0x20000],
    72                                    ["256k",0x40000]],
    73                             defaultValue: "0k",
    74                             memorySection: "IRAM"}],
    75        ];
    76
    77    instance:
    78
    79        override config string   cpuCore        = "64x+";
    80        override config string   isa = "64P";
    81        override config string   cpuCoreRevision = "1.0";
    82
    83        override config int     minProgUnitSize = 1;
    84        override config int     minDataUnitSize = 1;
    85        override config int     dataWordSize    = 4;
    86
    87        /*!
    88         *  ======== memMap ========
    89         *  The default memory map for this device
    90         */
    91        config xdc.platform.IPlatform.Memory memMap[string]  = [
    92            ["IRAM", {
    93                comment:    "Internal 1408KB L2 RAM/CACHE",
    94                name:       "IRAM",
    95                base:       0xA00000,
    96                len:        0x160000,
    97                space:      "code/data",
    98                access:     "RWX"
    99            }],
   100
   101            ["L1PSRAM", {
   102                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   103                name:       "L1PSRAM",
   104                base:       0xE00000,
   105                len:        0x008000,
   106                space:      "code",
   107                access:     "RWX"
   108            }],
   109
   110            ["L1DSRAM", {
   111                comment:    "Internal 32KB RAM/CACHE L1 data memory",
   112                name:       "L1DSRAM",
   113                base:       0xF00000,
   114                len:        0x008000,
   115                space:      "data",
   116                access:     "RW"
   117            }],
   118
   119        ];
   120    };
   121    /*
   122     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   123     */
   124


interface ti.catalog.c6000.ITMS320C64_128K

metaonly interface ti.catalog.c6000.ITMS320C64_128K
index URL

An interface implemented by all TMS320C64xx devices with 128KB of internal memory

This interface is defined to factor common data about this family into a single place; all TMS320C64xx devices with 128KB of internal memory extend this interface.
XDCspec summary sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
metaonly interface ITMS320C64_128K { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
package ti.catalog.c6000;
metaonly interface ITMS320C64_128K inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSize// [string] = [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "6400";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C64_128K.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320C64_128K.cacheSize // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
config Long cacheSize[string] = [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
config ITMS320C64_128K.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
override config String cpuCore = "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C64_128K.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C64_128K.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
override config Int dataWordSize = 4;
config ITMS320C64_128K.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
config String deviceHeader;
config ITMS320C64_128K.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320C64_128K.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
override config Int minDataUnitSize = 1;
config ITMS320C64_128K.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
override config Int minProgUnitSize = 1;
config ITMS320C64_128K.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C64_128K.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C64_128K.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_128K.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320C64_128K

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C64_128K.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320C64_128K ========
    21     *  An interface implemented by all TMS320C64xx devices with 128KB of internal
    22     *  memory.
    23     *
    24     *  This interface is defined to factor common data about this family into
    25     *  a single place; all TMS320C64xx devices with 128KB of internal
    26     *  memory extend this interface.
    27     */
    28    metaonly interface ITMS320C64_128K inherits ti.catalog.ICpuDataSheet
    29    {
    30
    31        config long cacheSize[string] = [
    32            ["4-way cache (0k)",   0x00000],
    33            ["4-way cache (32k)",  0x08000],
    34            ["4-way cache (64k)",  0x10000],
    35            ["4-way cache (128k)", 0x20000],
    36            ["0k",   0x00000],
    37            ["32k",  0x08000],
    38            ["64k",  0x10000],
    39            ["128k", 0x20000],
    40        ];
    41
    42        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    43             ['l2Mode',{desc:"L2 Cache",
    44                         map : [["4-way cache (0k)",0x0000],
    45                                ["4-way cache (32k)",0x8000],
    46                                ["4-way cache (64k)",0x10000],
    47                                ["4-way cache (128k)",0x20000]],
    48                         defaultValue: "4-way cache (0k)",
    49                         memorySection: "IRAM"}]
    50        ];
    51
    52    instance:
    53        override config int     minProgUnitSize = 1;
    54        override config int     minDataUnitSize = 1;
    55        override config int     dataWordSize    = 4;
    56
    57        override config string   cpuCore        = "6400";
    58        override config string   isa = "64";
    59        override config string   cpuCoreRevision = "1.0";
    60
    61        /*!
    62         *  ======== memMap ========
    63         *  The default memory map for this device
    64         */
    65        config xdc.platform.IPlatform.Memory memMap[string]  = [
    66            ["IRAM", {
    67                name:       "IRAM",
    68                comment:    "Internal L2 memory",
    69                base:       0x00000,
    70                len:        0x20000,
    71                space:      "code/data",
    72                access:     "RWX"
    73            }],
    74        ];
    75    }
    76    /*
    77     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
    78     */
    79


interface ti.catalog.c6000.ITMS320C64_1M

metaonly interface ti.catalog.c6000.ITMS320C64_1M
index URL

An interface implemented by all TMS320C64xx devices with 1MB of internal memory

This interface is defined to factor common data about this family into a single place; all TMS320C64xx devices with 1MB of internal memory extend this interface.
XDCspec summary sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
metaonly interface ITMS320C64_1M { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
package ti.catalog.c6000;
metaonly interface ITMS320C64_1M inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSize// [string] = [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "6400";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x000000,
                len: 0x100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C64_1M.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320C64_1M.cacheSize // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
config Long cacheSize[string] = [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITMS320C64_1M.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
override config String cpuCore = "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C64_1M.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C64_1M.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
override config Int dataWordSize = 4;
config ITMS320C64_1M.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
config String deviceHeader;
config ITMS320C64_1M.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x000000,
            len: 0x100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320C64_1M.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
override config Int minDataUnitSize = 1;
config ITMS320C64_1M.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
override config Int minProgUnitSize = 1;
config ITMS320C64_1M.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C64_1M.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C64_1M.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_1M.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320C64_1M

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C64_1M.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320C64_1M ========
    21     *  An interface implemented by all TMS320C64xx devices with 1MB of internal
    22     *  memory.
    23     *
    24     *  This interface is defined to factor common data about this family into
    25     *  a single place; all TMS320C64xx devices with 1MB of internal
    26     *  memory extend this interface.
    27     */
    28    metaonly interface ITMS320C64_1M inherits ti.catalog.ICpuDataSheet
    29    {
    30
    31        config long cacheSize[string] = [
    32            ["4-way cache (0k)",   0x00000],
    33            ["4-way cache (32k)",  0x08000],
    34            ["4-way cache (64k)",  0x10000],
    35            ["4-way cache (128k)", 0x20000],
    36            ["4-way cache (256k)", 0x40000],
    37            ["0k",   0x00000],
    38            ["32k",  0x08000],
    39            ["64k",  0x10000],
    40            ["128k", 0x20000],
    41            ["256k", 0x40000],
    42        ];
    43
    44        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    45             ['l2Mode',{desc:"L2 Cache",
    46                         map : [["4-way cache (0k)",0x0000],
    47                                ["4-way cache (32k)",0x8000],
    48                                ["4-way cache (64k)",0x10000],
    49                                ["4-way cache (128k)",0x20000],
    50                                ["4-way cache (256k)",0x40000]],
    51                         defaultValue: "4-way cache (0k)",
    52                         memorySection: "IRAM"}]
    53        ];
    54
    55
    56    instance:
    57        override config int     minProgUnitSize = 1;
    58        override config int     minDataUnitSize = 1;
    59        override config int     dataWordSize    = 4;
    60
    61        override config string   cpuCore        = "6400";
    62        override config string   isa = "64";
    63        override config string   cpuCoreRevision = "1.0";
    64
    65        /*!
    66         *  ======== memMap ========
    67         *  The default memory map for this device
    68         */
    69        config xdc.platform.IPlatform.Memory memMap[string]  = [
    70            ["IRAM", {
    71                name:       "IRAM",
    72                comment:    "Internal L2 memory",
    73                base:       0x000000,
    74                len:        0x100000,
    75                space:      "code/data",
    76                access:     "RWX"
    77            }],
    78        ];
    79    }
    80    /*
    81     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
    82     */
    83


interface ti.catalog.c6000.ITMS320C64_256K

metaonly interface ti.catalog.c6000.ITMS320C64_256K
index URL

An interface implemented by all TMS320C64xx devices with 256KB of internal memory

This interface is defined to factor common data about this family into a single place; all TMS320C64xx devices with 256KB of internal memory extend this interface.
XDCspec summary sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
metaonly interface ITMS320C64_256K { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
package ti.catalog.c6000;
metaonly interface ITMS320C64_256K inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSize// [string] = [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "6400";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C64_256K.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320C64_256K.cacheSize // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
config Long cacheSize[string] = [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITMS320C64_256K.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
override config String cpuCore = "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C64_256K.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C64_256K.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
override config Int dataWordSize = 4;
config ITMS320C64_256K.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
config String deviceHeader;
config ITMS320C64_256K.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320C64_256K.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
override config Int minDataUnitSize = 1;
config ITMS320C64_256K.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
override config Int minProgUnitSize = 1;
config ITMS320C64_256K.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C64_256K.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C64_256K.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_256K.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320C64_256K

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C64_256K.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320C64_256K ========
    21     *  An interface implemented by all TMS320C64xx devices with 256KB of internal
    22     *  memory.
    23     *
    24     *  This interface is defined to factor common data about this family into
    25     *  a single place; all TMS320C64xx devices with 256KB of internal
    26     *  memory extend this interface.
    27     */
    28    metaonly interface ITMS320C64_256K inherits ti.catalog.ICpuDataSheet
    29    {
    30
    31        config long cacheSize[string] = [
    32            ["4-way cache (0k)",   0x00000],
    33            ["4-way cache (32k)",  0x08000],
    34            ["4-way cache (64k)",  0x10000],
    35            ["4-way cache (128k)", 0x20000],
    36            ["4-way cache (256k)", 0x40000],
    37            ["0k",   0x00000],
    38            ["32k",  0x08000],
    39            ["64k",  0x10000],
    40            ["128k", 0x20000],
    41            ["256k", 0x40000],
    42        ];
    43
    44        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    45             ['l2Mode',{desc:"L2 Cache",
    46                         map : [["4-way cache (0k)",0x0000],
    47                                ["4-way cache (32k)",0x8000],
    48                                ["4-way cache (64k)",0x10000],
    49                                ["4-way cache (128k)",0x20000],
    50                                ["4-way cache (256k)",0x40000]],
    51                         defaultValue: "4-way cache (0k)",
    52                         memorySection: "IRAM"}]
    53        ];
    54
    55    instance:
    56        override config int     minProgUnitSize = 1;
    57        override config int     minDataUnitSize = 1;
    58        override config int     dataWordSize    = 4;
    59
    60        override config string   cpuCore        = "6400";
    61        override config string   isa = "64";
    62        override config string   cpuCoreRevision = "1.0";
    63
    64        /*!
    65         *  ======== memMap ========
    66         *  The default memory map for this device
    67         */
    68        config xdc.platform.IPlatform.Memory memMap[string]  = [
    69            ["IRAM", {
    70                name:       "IRAM",
    71                comment:    "Internal L2 memory",
    72                base:       0x00000,
    73                len:        0x40000,
    74                space:      "code/data",
    75                access:     "RWX"
    76            }],
    77        ];
    78    }
    79    /*
    80     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
    81     */
    82


interface ti.catalog.c6000.ITMS320C64_512K

metaonly interface ti.catalog.c6000.ITMS320C64_512K
index URL

An interface implemented by all TMS320C64xx devices with 512KB of internal memory

This interface is defined to factor common data about this family into a single place; all TMS320C64xx devices with 512KB of internal memory extend this interface.
XDCspec summary sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
metaonly interface ITMS320C64_512K { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
package ti.catalog.c6000;
metaonly interface ITMS320C64_512K inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSize// [string] = [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "6400";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x80000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C64_512K.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320C64_512K.cacheSize // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
config Long cacheSize[string] = [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITMS320C64_512K.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
override config String cpuCore = "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C64_512K.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C64_512K.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
override config Int dataWordSize = 4;
config ITMS320C64_512K.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
config String deviceHeader;
config ITMS320C64_512K.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x80000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320C64_512K.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
override config Int minDataUnitSize = 1;
config ITMS320C64_512K.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
override config Int minProgUnitSize = 1;
config ITMS320C64_512K.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C64_512K.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C64_512K.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C64_512K.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320C64_512K

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C64_512K.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320C64_512K ========
    21     *  An interface implemented by all TMS320C64xx devices with 512KB of internal
    22     *  memory.
    23     *
    24     *  This interface is defined to factor common data about this family into
    25     *  a single place; all TMS320C64xx devices with 512KB of internal
    26     *  memory extend this interface.
    27     */
    28    metaonly interface ITMS320C64_512K inherits ti.catalog.ICpuDataSheet
    29    {
    30
    31        config long cacheSize[string] = [
    32            ["4-way cache (0k)",   0x00000],
    33            ["4-way cache (32k)",  0x08000],
    34            ["4-way cache (64k)",  0x10000],
    35            ["4-way cache (128k)", 0x20000],
    36            ["4-way cache (256k)", 0x40000],
    37            ["0k",   0x00000],
    38            ["32k",  0x08000],
    39            ["64k",  0x10000],
    40            ["128k", 0x20000],
    41            ["256k", 0x40000],
    42        ];
    43
    44        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    45             ['l2Mode',{desc:"L2 Cache",
    46                         map : [["4-way cache (0k)",0x0000],
    47                                ["4-way cache (32k)",0x8000],
    48                                ["4-way cache (64k)",0x10000],
    49                                ["4-way cache (128k)",0x20000],
    50                                ["4-way cache (256k)",0x40000]],
    51                         defaultValue: "4-way cache (0k)",
    52                         memorySection: "IRAM"}]
    53        ];
    54
    55    instance:
    56        override config int     minProgUnitSize = 1;
    57        override config int     minDataUnitSize = 1;
    58        override config int     dataWordSize    = 4;
    59
    60        override config string   cpuCore        = "6400";
    61        override config string   isa="64";
    62        override config string   cpuCoreRevision = "1.0";
    63
    64        /*!
    65         *  ======== memMap ========
    66         *  The default memory map for this device
    67         */
    68        config xdc.platform.IPlatform.Memory memMap[string]  = [
    69            ["IRAM", {
    70                name:       "IRAM",
    71                comment:    "Internal L2 memory",
    72                base:       0x00000,
    73                len:        0x80000,
    74                space:      "code/data",
    75                access:     "RWX"
    76            }],
    77        ];
    78    }
    79    /*
    80     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
    81     */
    82


interface ti.catalog.c6000.ITMS320C6655

metaonly interface ti.catalog.c6000.ITMS320C6655
index URL
XDCspec summary sourced in ti/catalog/c6000/ITMS320C6655.xdc
metaonly interface ITMS320C6655 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
package ti.catalog.c6000;
metaonly interface ITMS320C6655 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "6600";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "1MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C6655.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config ITMS320C6655.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320C6655.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
config ITMS320C6655.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
override config String cpuCore = "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C6655.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C6655.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
override config Int dataWordSize = 4;
config ITMS320C6655.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
config String deviceHeader;
config ITMS320C6655.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "1MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320C6655.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
override config Int minDataUnitSize = 1;
config ITMS320C6655.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
override config Int minProgUnitSize = 1;
config ITMS320C6655.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C6655.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C6655.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6655.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320C6655

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C6655.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    metaonly interface ITMS320C6655 inherits ti.catalog.ICpuDataSheet
    21    {
    22        config long cacheSizeL1[string] = [
    23            ["0k",  0x0000],
    24            ["4k",  0x1000],
    25            ["8k",  0x2000],
    26            ["16k", 0x4000],
    27            ["32k", 0x8000],
    28        ];
    29
    30        config long cacheSizeL2[string] = [
    31            ["0k",    0x000000],
    32            ["32k",   0x008000],
    33            ["64k",   0x010000],
    34            ["128k",  0x020000],
    35            ["256k",  0x040000],
    36            ["512k",  0x080000],
    37            ["1024k", 0x100000]
    38        ];
    39
    40        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    41            ['l1PMode', {
    42                desc:"L1P Cache",
    43                base: 0x00E00000,
    44                map : [
    45                    ["0k",0x0000],
    46                    ["4k",0x1000],
    47                    ["8k",0x2000],
    48                    ["16k",0x4000],
    49                    ["32k",0x8000]
    50                ],
    51                defaultValue: "32k",
    52                memorySection: "L1PSRAM"
    53            }],
    54            ['l1DMode', {
    55                desc:"L1D Cache",
    56                base: 0x00F00000,
    57                map : [
    58                    ["0k",0x0000],
    59                    ["4k",0x1000],
    60                    ["8k",0x2000],
    61                    ["16k",0x4000],
    62                    ["32k",0x8000]
    63                ],
    64                defaultValue: "32k",
    65                memorySection: "L1DSRAM"
    66            }],
    67            ['l2Mode', {
    68                desc:"L2 Cache",
    69                base: 0x00800000,
    70                map : [
    71                    ["0k",0x0000],
    72                    ["32k",0x8000],
    73                    ["64k",0x10000],
    74                    ["128k",0x020000],
    75                    ["256k",0x040000],
    76                    ["512k",0x080000],
    77                    ["1024k", 0x100000]
    78                ],
    79                defaultValue: "0k",
    80                memorySection: "L2SRAM"
    81            }],
    82        ];
    83
    84    instance:
    85
    86        override config string   cpuCore        = "6600";
    87        override config string   isa = "66";
    88        override config string   cpuCoreRevision = "1.0";
    89
    90        override config int     minProgUnitSize = 1;
    91        override config int     minDataUnitSize = 1;
    92        override config int     dataWordSize    = 4;
    93
    94        /*!
    95         *  ======== memMap ========
    96         *  The default memory map for this device
    97         */
    98        config xdc.platform.IPlatform.Memory memMap[string]  = [
    99            ["L2SRAM", {
   100                comment:    "1MB L2 SRAM/CACHE",
   101                name:       "L2SRAM",
   102                base:       0x00800000,
   103                len:        0x00100000,
   104                space:      "code/data",
   105                access:     "RWX"
   106            }],
   107
   108            ["L1PSRAM", {
   109                comment:    "32KB RAM/CACHE L1 program memory",
   110                name:       "L1PSRAM",
   111                base:       0x00E00000,
   112                len:        0x00008000,
   113                space:      "code",
   114                access:     "RWX"
   115            }],
   116
   117            ["L1DSRAM", {
   118                comment:    "32KB RAM/CACHE L1 data memory",
   119                name:       "L1DSRAM",
   120                base:       0x00F00000,
   121                len:        0x00008000,
   122                space:      "data",
   123                access:     "RW"
   124            }],
   125
   126            ["MSMCSRAM", {
   127                comment:    "1MB MSMC SRAM",
   128                name:       "MSMCSRAM",
   129                base:       0x0C000000,
   130                len:        0x00100000,
   131                space:      "code/data",
   132                access:     "RWX"
   133            }],
   134        ];
   135    };
   136    /*
   137     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   138     */
   139


interface ti.catalog.c6000.ITMS320C6x0x

metaonly interface ti.catalog.c6000.ITMS320C6x0x
index URL

An interface implemented by all TMS320C6x0x devices

This interface is defined to factor common data about this family into a single place; all TMS320C6x0x devices extend this interface.
XDCspec summary sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
metaonly interface ITMS320C6x0x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
package ti.catalog.c6000;
metaonly interface ITMS320C6x0x inherits ICpuDataSheet {
module-wide config parameters
    config IPlatform.Memory memBlock// [string] = [
        [
            "IPRAM0",
            {
                comment: "Internal Program memory map 0",
                name: "IPRAM",
                base: 0x1400000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IPRAM1",
            {
                comment: "Internal Program memory map 1",
                name: "IPRAM",
                base: 0x0000000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IDRAM",
            {
                comment: "Internal Data memory",
                name: "IDRAM",
                base: 0x80000000,
                len: 0x00010000,
                space: "data"
            }
        ]
    ];
instance:
per-instance config parameters
    config String cpuCore// A string identifying the CPU Core;
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C6x0x.memBlock // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
config IPlatform.Memory memBlock[string] = [
    [
        "IPRAM0",
        {
            comment: "Internal Program memory map 0",
            name: "IPRAM",
            base: 0x1400000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IPRAM1",
        {
            comment: "Internal Program memory map 1",
            name: "IPRAM",
            base: 0x0000000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IDRAM",
        {
            comment: "Internal Data memory",
            name: "IDRAM",
            base: 0x80000000,
            len: 0x00010000,
            space: "data"
        }
    ]
];
config ITMS320C6x0x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
config String cpuCore;
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C6x0x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C6x0x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
override config Int dataWordSize = 4;
config ITMS320C6x0x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
config String deviceHeader;
config ITMS320C6x0x.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
config IPlatform.Memory memMap[string];
config ITMS320C6x0x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
override config Int minDataUnitSize = 1;
config ITMS320C6x0x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
override config Int minProgUnitSize = 1;
config ITMS320C6x0x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C6x0x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C6x0x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x0x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320C6x0x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C6x0x.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320C6x0x ========
    21     *  An interface implemented by all TMS320C6x0x devices.
    22     *
    23     *  This interface is defined to factor common data about this family into
    24     *  a single place; all TMS320C6x0x devices extend this interface.
    25     */
    26    metaonly interface ITMS320C6x0x inherits ti.catalog.ICpuDataSheet
    27    {
    28        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["IPRAM0", {
    30                comment: "Internal Program memory map 0",
    31                name: "IPRAM",
    32                base: 0x1400000,
    33                len:  0x0010000,
    34                space: "code"
    35            }],
    36
    37            ["IPRAM1", {
    38                comment: "Internal Program memory map 1",
    39                name: "IPRAM",
    40                base: 0x0000000,
    41                len:  0x0010000,
    42                space: "code"
    43            }],
    44
    45            ["IDRAM", {
    46                comment: "Internal Data memory",
    47                name: "IDRAM",
    48                base: 0x80000000,
    49                len:  0x00010000,
    50                space: "data"
    51            }],
    52        ];
    53
    54
    55    instance:
    56        override config string   cpuCoreRevision = "1.0";
    57
    58        override config int     minProgUnitSize = 1;
    59        override config int     minDataUnitSize = 1;
    60        override config int     dataWordSize    = 4;
    61
    62        /*!
    63         *  ======== memMap ========
    64         *  The default memory map for this device
    65         */
    66        config xdc.platform.IPlatform.Memory memMap[string];
    67    }
    68    /*
    69     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
    70     */
    71


interface ti.catalog.c6000.ITMS320C6x1x

metaonly interface ti.catalog.c6000.ITMS320C6x1x
index URL

An interface implemented by all TMS320C6x1x devices

This interface is defined to factor common data about this family into a single place; all TMS320C6x1x devices extend this interface.
XDCspec summary sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
metaonly interface ITMS320C6x1x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
package ti.catalog.c6000;
metaonly interface ITMS320C6x1x inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "SRAM",
                        0x0000
                    ],
                    [
                        "1-way cache",
                        0x4000
                    ],
                    [
                        "2-way cache",
                        0x8000
                    ],
                    [
                        "3-way cache",
                        0xc000
                    ],
                    [
                        "4-way cache",
                        0x10000
                    ]
                ],
                defaultValue: "4-way cache",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSize// [string] = [
        [
            "SRAM",
            0x0000
        ],
        [
            "1-way cache",
            0x4000
        ],
        [
            "2-way cache",
            0x8000
        ],
        [
            "3-way cache",
            0xc000
        ],
        [
            "4-way cache",
            0x10000
        ],
        [
            "0k",
            0x0000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ],
        [
            "48k",
            0xc000
        ],
        [
            "64k",
            0x10000
        ]
    ];
instance:
per-instance config parameters
    config String cpuCore// A string identifying the CPU Core;
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320C6x1x.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "SRAM",
                    0x0000
                ],
                [
                    "1-way cache",
                    0x4000
                ],
                [
                    "2-way cache",
                    0x8000
                ],
                [
                    "3-way cache",
                    0xc000
                ],
                [
                    "4-way cache",
                    0x10000
                ]
            ],
            defaultValue: "4-way cache",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320C6x1x.cacheSize // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
config Long cacheSize[string] = [
    [
        "SRAM",
        0x0000
    ],
    [
        "1-way cache",
        0x4000
    ],
    [
        "2-way cache",
        0x8000
    ],
    [
        "3-way cache",
        0xc000
    ],
    [
        "4-way cache",
        0x10000
    ],
    [
        "0k",
        0x0000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ],
    [
        "48k",
        0xc000
    ],
    [
        "64k",
        0x10000
    ]
];
config ITMS320C6x1x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
config String cpuCore;
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320C6x1x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320C6x1x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
override config Int dataWordSize = 4;
config ITMS320C6x1x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
config String deviceHeader;
config ITMS320C6x1x.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
config IPlatform.Memory memMap[string];
config ITMS320C6x1x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
override config Int minDataUnitSize = 1;
config ITMS320C6x1x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
override config Int minProgUnitSize = 1;
config ITMS320C6x1x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320C6x1x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320C6x1x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320C6x1x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320C6x1x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320C6x1x.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320C6x1x ========
    21     *  An interface implemented by all TMS320C6x1x devices.
    22     *
    23     *  This interface is defined to factor common data about this family into
    24     *  a single place; all TMS320C6x1x devices extend this interface.
    25     */
    26    metaonly interface ITMS320C6x1x inherits ti.catalog.ICpuDataSheet
    27    {
    28        config long cacheSize[string] = [
    29        ["SRAM",        0x0000],
    30            ["1-way cache", 0x4000],
    31            ["2-way cache", 0x8000],
    32            ["3-way cache", 0xc000],
    33            ["4-way cache", 0x10000],
    34            ["0k",  0x0000],
    35            ["16k", 0x4000],
    36            ["32k", 0x8000],
    37            ["48k", 0xc000],
    38            ["64k", 0x10000],
    39        ];
    40
    41        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    42             ['l2Mode',{desc:"L2 Cache",
    43                         map : [["SRAM",0x0000],
    44                                ["1-way cache",0x4000],
    45                                ["2-way cache",0x8000],
    46                                ["3-way cache",0xc000],
    47                                ["4-way cache",0x10000]],
    48                         defaultValue: "4-way cache",
    49                         memorySection: "IRAM"}]
    50        ];
    51
    52    instance:
    53        override config string   cpuCoreRevision = "1.0";
    54
    55        override config int     minProgUnitSize = 1;
    56        override config int     minDataUnitSize = 1;
    57        override config int     dataWordSize    = 4;
    58
    59        /*!
    60         *  ======== memMap ========
    61         *  The default memory map for this device
    62         */
    63        config xdc.platform.IPlatform.Memory memMap[string];
    64    }
    65    /*
    66     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
    67     */
    68


interface ti.catalog.c6000.ITMS320CDM6467

metaonly interface ti.catalog.c6000.ITMS320CDM6467
index URL

An interface implemented by all DaVinci-HD devices

This interface is defined to factor common data about all DaVinci-HD devices into a single place; they are all the same from the configuration point of view.
XDCspec summary sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
metaonly interface ITMS320CDM6467 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
package ti.catalog.c6000;
metaonly interface ITMS320CDM6467 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11818000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10010000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x11818000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320CDM6467.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11818000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320CDM6467.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320CDM6467.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
config ITMS320CDM6467.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320CDM6467.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320CDM6467.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
override config Int dataWordSize = 4;
config ITMS320CDM6467.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
config String deviceHeader;
config ITMS320CDM6467.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
config IPlatform.Memory memMap[string] = [
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10010000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x11818000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config ITMS320CDM6467.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
override config Int minDataUnitSize = 1;
config ITMS320CDM6467.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
override config Int minProgUnitSize = 1;
config ITMS320CDM6467.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320CDM6467.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320CDM6467.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDM6467.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320CDM6467

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320CDM6467.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320CDM6467 ========
    21     *  An interface implemented by all DaVinci-HD devices
    22     *
    23     *  This interface is defined to factor common data about all DaVinci-HD devices
    24     *  into a single place; they are all the same from the configuration point of
    25     *  view.
    26     */
    27    metaonly interface ITMS320CDM6467 inherits ti.catalog.ICpuDataSheet
    28    {
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x8000],
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",   0x00000],
    39            ["32k",  0x08000],
    40            ["64k",  0x10000],
    41            ["128k", 0x20000],
    42        ];
    43
    44        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    45             ['l1PMode',{desc:"L1P Cache",
    46                         base:0x11E00000,
    47                         map : [["0k",0x0000],
    48                                ["4k",0x1000],
    49                                ["8k",0x2000],
    50                                ["16k",0x4000],
    51                                ["32k",0x8000]],
    52                         defaultValue: "32k",
    53                         memorySection: "L1PSRAM"}],
    54
    55             ['l1DMode',{desc:"L1D Cache",
    56                         base: 0x11F00000,
    57                         map : [["0k",0x0000],
    58                                ["4k",0x1000],
    59                                ["8k",0x2000],
    60                                ["16k",0x4000],
    61                                ["32k",0x8000]],
    62                         defaultValue: "32k",
    63                         memorySection: "L1DSRAM"}],
    64
    65             ['l2Mode',{desc:"L2 Cache",
    66                         base:0x11818000,
    67                         map : [["0k",0x0000],
    68                                ["32k",0x8000],
    69                                ["64k",0x10000],
    70                                ["128k",0x20000]],
    71                         defaultValue: "0k",
    72                         memorySection: "IRAM"}]
    73
    74        ];
    75
    76    instance:
    77
    78        override config string   cpuCore        = "64x+";
    79        override config string   isa = "64P";
    80        override config string   cpuCoreRevision = "1.0";
    81
    82        override config int     minProgUnitSize = 1;
    83        override config int     minDataUnitSize = 1;
    84        override config int     dataWordSize    = 4;
    85
    86        /*!
    87         *  ======== memMap ========
    88         *  The default memory map for this device
    89         */
    90        config xdc.platform.IPlatform.Memory memMap[string]  = [
    91            ["ARM_RAM", {
    92                comment:    "Internal ARM RAM memory",
    93                name:       "ARM_RAM",
    94                base:       0x10010000,
    95                len:        0x00008000,
    96                space:      "data",
    97                access:     "RW"
    98            }],
    99
   100            ["IRAM", {
   101                comment:    "Internal 128KB UMAP0 memory",
   102                name:       "IRAM",
   103                base:       0x11818000,
   104                len:        0x00020000,
   105                space:      "code/data",
   106                access:     "RWX"
   107            }],
   108
   109            ["L1PSRAM", {
   110                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   111                name:       "L1PSRAM",
   112                base:       0x11E00000,
   113                len:        0x00008000,
   114                space:      "code",
   115                access:     "RWX"
   116            }],
   117
   118            ["L1DSRAM", {
   119                comment:    "Internal 32KB RAM/CACHE L1 data memory",
   120                name:       "L1DSRAM",
   121                base:       0x11F00000,
   122                len:        0x00008000,
   123                space:      "data",
   124                access:     "RW"
   125            }],
   126        ];
   127    };
   128    /*
   129     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   130     */
   131


interface ti.catalog.c6000.ITMS320CDRA44x

metaonly interface ti.catalog.c6000.ITMS320CDRA44x
index URL

An interface implemented by all DRA44x devices

This interface is defined to factor common data about all DRA44x devices into a single place; they are all the same from the configuration point of view.
XDCspec summary sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
metaonly interface ITMS320CDRA44x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
package ti.catalog.c6000;
metaonly interface ITMS320CDRA44x inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320CDRA44x.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320CDRA44x.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320CDRA44x.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
config ITMS320CDRA44x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320CDRA44x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320CDRA44x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
override config Int dataWordSize = 4;
config ITMS320CDRA44x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
config String deviceHeader;
config ITMS320CDRA44x.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config ITMS320CDRA44x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
override config Int minDataUnitSize = 1;
config ITMS320CDRA44x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
override config Int minProgUnitSize = 1;
config ITMS320CDRA44x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320CDRA44x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320CDRA44x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA44x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:15:59 GMT


interface ti.catalog.c6000.ITMS320CDRA44x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320CDRA44x.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITMS320CDRA44x ========
    20     *  An interface implemented by all DRA44x devices
    21     *
    22     *  This interface is defined to factor common data about all DRA44x devices
    23     *  into a single place; they are all the same from the configuration point of
    24     *  view.
    25     */
    26    metaonly interface ITMS320CDRA44x inherits ti.catalog.ICpuDataSheet
    27    {
    28        config long cacheSizeL1[string] = [
    29            ["0k",  0x0000],
    30            ["4k",  0x1000],
    31            ["8k",  0x2000],
    32            ["16k", 0x4000],
    33            ["32k", 0x8000],
    34        ];
    35
    36        config long cacheSizeL2[string] = [
    37            ["0k",  0x00000],
    38            ["32k", 0x08000],
    39            ["64k", 0x10000]
    40        ];
    41
    42        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    43             ['l1PMode',{desc:"L1P Cache",
    44                         base: 0x11E08000,
    45                         map : [["0k",0x0000],
    46                                ["4k",0x1000],
    47                                ["8k",0x2000],
    48                                ["16k",0x4000],
    49                                ["32k",0x8000]],
    50                         defaultValue: "32k",
    51                         memorySection: "L1PSRAM"}],
    52
    53             ['l1DMode',{desc:"L1D Cache",
    54                         base:0x11F04000,
    55                         map : [["0k",0x0000],
    56                                ["4k",0x1000],
    57                                ["8k",0x2000],
    58                                ["16k",0x4000],
    59                                ["32k",0x8000]],
    60                         defaultValue: "32k",
    61                         memorySection: "L1DSRAM"}],
    62
    63             ['l2Mode',{desc:"L2 Cache",
    64                         base:0x11800000,
    65                         map : [["0k",0x0000],
    66                                ["32k",0x8000],
    67                                ["64k",0x10000]],
    68                         defaultValue: "0k",
    69                         memorySection: "IRAM"}]
    70
    71        ];
    72
    73    instance:
    74
    75        override config string   cpuCore        = "64x+";
    76        override config string   isa            = "64P";
    77        override config string   cpuCoreRevision = "1.0";
    78
    79        override config int     minProgUnitSize = 1;
    80        override config int     minDataUnitSize = 1;
    81        override config int     dataWordSize    = 4;
    82
    83        /*!
    84         *  ======== memMap ========
    85         *  The default memory map for this device
    86         */
    87        config xdc.platform.IPlatform.Memory memMap[string]  = [
    88            ["IRAM", {
    89                comment:    "Internal 64KB UMAP0 memory",
    90                name:       "IRAM",
    91                base:       0x11800000,
    92                len:        0x00010000,
    93                space:      "code/data",
    94                access:     "RWX"
    95            }],
    96
    97            ["L1PSRAM", {
    98                comment:    "Internal 32KB RAM/CACHE L1 program memory",
    99                name:       "L1PSRAM",
   100                base:       0x11E08000,
   101                len:        0x00008000,
   102                space:      "code",
   103                access:     "RWX"
   104            }],
   105
   106            ["L1DSRAM", {
   107                comment:    "Internal 80KB RAM/CACHE L1 data memory",
   108                name:       "L1DSRAM",
   109                base:       0x11F04000,
   110                len:        0x00014000,
   111                space:      "data",
   112                access:     "RW"
   113            }],
   114
   115            ["ARM_RAM", {
   116                comment:    "Internal ARM RAM memory",
   117                name:       "ARM_RAM",
   118                base:       0x10008000,
   119                len:        0x00004000,
   120                space:      "data",
   121                access:     "RW"
   122            }],
   123        ];
   124    };
   125    /*
   126     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   127     */
   128


interface ti.catalog.c6000.ITMS320CDRA45x

metaonly interface ti.catalog.c6000.ITMS320CDRA45x
index URL

An interface implemented by all DRA45x devices

This interface is defined to factor common data about all DRA45x devices into a single place; they are all the same from the configuration point of view.
XDCspec summary sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
metaonly interface ITMS320CDRA45x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
package ti.catalog.c6000;
metaonly interface ITMS320CDRA45x inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320CDRA45x.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320CDRA45x.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320CDRA45x.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
config ITMS320CDRA45x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320CDRA45x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320CDRA45x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
override config Int dataWordSize = 4;
config ITMS320CDRA45x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
config String deviceHeader;
config ITMS320CDRA45x.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config ITMS320CDRA45x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
override config Int minDataUnitSize = 1;
config ITMS320CDRA45x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
override config Int minProgUnitSize = 1;
config ITMS320CDRA45x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320CDRA45x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320CDRA45x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRA45x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:00 GMT


interface ti.catalog.c6000.ITMS320CDRA45x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320CDRA45x.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITMS320CDRA45x ========
    20     *  An interface implemented by all DRA45x devices
    21     *
    22     *  This interface is defined to factor common data about all DRA45x devices
    23     *  into a single place; they are all the same from the configuration point of
    24     *  view.
    25     */
    26    metaonly interface ITMS320CDRA45x inherits ti.catalog.ICpuDataSheet
    27    {
    28        config long cacheSizeL1[string] = [
    29            ["0k",  0x0000],
    30            ["4k",  0x1000],
    31            ["8k",  0x2000],
    32            ["16k", 0x4000],
    33            ["32k", 0x8000],
    34        ];
    35
    36        config long cacheSizeL2[string] = [
    37            ["0k",  0x00000],
    38            ["32k", 0x08000],
    39            ["64k", 0x10000],
    40            ["128k", 0x20000]
    41        ];
    42
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44                 ['l1PMode',{desc:"L1P Cache",
    45                             base:0x11E08000,
    46                             map : [["0k",0x0000],
    47                                    ["4k",0x1000],
    48                                    ["8k",0x2000],
    49                                    ["16k",0x4000],
    50                                    ["32k",0x8000]],
    51                             defaultValue: "32k",
    52                             memorySection: "L1PSRAM"}],
    53
    54                 ['l1DMode',{desc:"L1D Cache",
    55                             base:0x11F04000,
    56                             map : [["0k",0x0000],
    57                                    ["4k",0x1000],
    58                                    ["8k",0x2000],
    59                                    ["16k",0x4000],
    60                                    ["32k",0x8000]],
    61                             defaultValue: "32k",
    62                             memorySection: "L1DSRAM"}],
    63
    64                 ['l2Mode',{desc:"L2 Cache",
    65                             base:0x11800000,
    66                             map : [["0k",0x0000],
    67                                    ["32k",0x8000],
    68                                    ["64k",0x10000],
    69                                    ["128k",0x20000]],
    70                             defaultValue: "0k",
    71                             memorySection: "IRAM"}],
    72
    73        ];
    74
    75    instance:
    76
    77        override config string   cpuCore        = "64x+";
    78        override config string   isa            = "64P";
    79        override config string   cpuCoreRevision = "1.0";
    80
    81        override config int     minProgUnitSize = 1;
    82        override config int     minDataUnitSize = 1;
    83        override config int     dataWordSize    = 4;
    84
    85        /*!
    86         *  ======== memMap ========
    87         *  The default memory map for this device
    88         */
    89        config xdc.platform.IPlatform.Memory memMap[string]  = [
    90            ["IRAM", {
    91                comment:    "Internal 128KB UMAP0 memory",
    92                name:       "IRAM",
    93                base:       0x11800000,
    94                len:        0x00020000,
    95                space:      "code/data",
    96                access:     "RWX"
    97            }],
    98
    99            ["L1PSRAM", {
   100                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   101                name:       "L1PSRAM",
   102                base:       0x11E08000,
   103                len:        0x00008000,
   104                space:      "code",
   105                access:     "RWX"
   106            }],
   107
   108            ["L1DSRAM", {
   109                comment:    "Internal 80KB RAM/CACHE L1 data memory",
   110                name:       "L1DSRAM",
   111                base:       0x11F04000,
   112                len:        0x00014000,
   113                space:      "data",
   114                access:     "RW"
   115            }],
   116
   117            ["ARM_RAM", {
   118                comment:    "Internal ARM RAM memory",
   119                name:       "ARM_RAM",
   120                base:       0x10008000,
   121                len:        0x00004000,
   122                space:      "data",
   123                access:     "RW"
   124            }],
   125        ];
   126    };
   127    /*
   128     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   129     */
   130


interface ti.catalog.c6000.ITMS320CDRx40x

metaonly interface ti.catalog.c6000.ITMS320CDRx40x
index URL

An interface implemented by all DRx40x and DRx41x devices

This interface is defined to factor common data about all DRA40x and DRA41x devices into a single file; they are all configured in the same way.
XDCspec summary sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
metaonly interface ITMS320CDRx40x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
package ti.catalog.c6000;
metaonly interface ITMS320CDRx40x inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11810000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                comment: "Internal 192KB UMAP0 memory",
                name: "IRAM",
                base: 0x11810000,
                len: 0x00030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 16KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00004000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320CDRx40x.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11810000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320CDRx40x.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320CDRx40x.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
config ITMS320CDRx40x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320CDRx40x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320CDRx40x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
override config Int dataWordSize = 4;
config ITMS320CDRx40x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
config String deviceHeader;
config ITMS320CDRx40x.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 192KB UMAP0 memory",
            name: "IRAM",
            base: 0x11810000,
            len: 0x00030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 16KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00004000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config ITMS320CDRx40x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
override config Int minDataUnitSize = 1;
config ITMS320CDRx40x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
override config Int minProgUnitSize = 1;
config ITMS320CDRx40x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320CDRx40x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320CDRx40x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CDRx40x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:00 GMT


interface ti.catalog.c6000.ITMS320CDRx40x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320CDRx40x.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITMS320CDRx40x ========
    20     *  An interface implemented by all DRx40x and DRx41x devices
    21     *
    22     *  This interface is defined to factor common data about all DRA40x and
    23     *  DRA41x devices into a single file; they are all configured in the same way.
    24     */
    25    metaonly interface ITMS320CDRx40x inherits ti.catalog.ICpuDataSheet
    26    {
    27        config long cacheSizeL1[string] = [
    28            ["0k",  0x0000],
    29            ["4k",  0x1000],
    30            ["8k",  0x2000],
    31            ["16k", 0x4000],
    32            ["32k", 0x8000],
    33        ];
    34
    35        config long cacheSizeL2[string] = [
    36            ["0k",  0x00000],
    37            ["32k", 0x08000],
    38            ["64k", 0x10000],
    39            ["128k",0x20000],
    40        ];
    41
    42        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    43             ['l1PMode',{desc:"L1P Cache",
    44                         base:0x11E00000,
    45                         map : [["0k",0x0000],
    46                                ["4k",0x1000],
    47                                ["8k",0x2000],
    48                                ["16k",0x4000],
    49                                ["32k",0x8000]],
    50                         defaultValue: "32k",
    51                         memorySection: "L1PSRAM"}],
    52
    53             ['l1DMode',{desc:"L1D Cache",
    54                         base:0x11F00000,
    55                         map : [["0k",0x0000],
    56                                ["4k",0x1000],
    57                                ["8k",0x2000],
    58                                ["16k",0x4000],
    59                                ["32k",0x8000]],
    60                         defaultValue: "32k",
    61                         memorySection: "L1DSRAM"}],
    62
    63             ['l2Mode',{desc:"L2 Cache",
    64                         base: 0x11810000,
    65                         map : [["0k",0x0000],
    66                                ["32k",0x8000],
    67                                ["64k",0x10000],
    68                                ["128k",0x20000]],
    69                         defaultValue: "0k",
    70                         memorySection: "IRAM"}]
    71
    72        ];
    73
    74    instance:
    75
    76        override config string   cpuCore        = "64x+";
    77        override config string   isa            = "64P";
    78        override config string   cpuCoreRevision = "1.0";
    79
    80        override config int     minProgUnitSize = 1;
    81        override config int     minDataUnitSize = 1;
    82        override config int     dataWordSize    = 4;
    83
    84        /*!
    85         *  ======== memMap ========
    86         *  The default memory map for this device
    87         */
    88        config xdc.platform.IPlatform.Memory memMap[string]  = [
    89            ["IRAM", {
    90                comment:    "Internal 192KB UMAP0 memory",
    91                name:       "IRAM",
    92                base:       0x11810000,
    93                len:        0x00030000,
    94                space:      "code/data",
    95                access:     "RWX"
    96            }],
    97
    98            ["L1PSRAM", {
    99                comment:    "Internal 16KB RAM/CACHE L1 program memory",
   100                name:       "L1PSRAM",
   101                base:       0x11E00000,
   102                len:        0x00004000,
   103                space:      "code",
   104                access:     "RWX"
   105            }],
   106
   107            ["L1DSRAM", {
   108                comment:    "Internal 32KB RAM/CACHE L1 data memory",
   109                name:       "L1DSRAM",
   110                base:       0x11F00000,
   111                len:        0x00008000,
   112                space:      "data",
   113                access:     "RW"
   114            }],
   115
   116            ["ARM_RAM", {
   117                comment:    "Internal ARM RAM memory",
   118                name:       "ARM_RAM",
   119                base:       0x10008000,
   120                len:        0x00004000,
   121                space:      "data",
   122                access:     "RW"
   123            }],
   124        ];
   125    };
   126    /*
   127     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   128     */
   129


interface ti.catalog.c6000.ITMS320CTCI6484

metaonly interface ti.catalog.c6000.ITMS320CTCI6484
index URL
XDCspec summary sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
metaonly interface ITMS320CTCI6484 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
package ti.catalog.c6000;
metaonly interface ITMS320CTCI6484 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "IRAM",
            {
                comment: "Internal 2MB L2 memory",
                name: "IRAM",
                base: 0x800000,
                len: 0x200000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320CTCI6484.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320CTCI6484.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320CTCI6484.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
config ITMS320CTCI6484.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320CTCI6484.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320CTCI6484.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
override config Int dataWordSize = 4;
config ITMS320CTCI6484.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
config String deviceHeader;
config ITMS320CTCI6484.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 2MB L2 memory",
            name: "IRAM",
            base: 0x800000,
            len: 0x200000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config ITMS320CTCI6484.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
override config Int minDataUnitSize = 1;
config ITMS320CTCI6484.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
override config Int minProgUnitSize = 1;
config ITMS320CTCI6484.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320CTCI6484.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320CTCI6484.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6484.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:00 GMT


interface ti.catalog.c6000.ITMS320CTCI6484

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320CTCI6484.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320CTCI6484 ========
    21     */
    22    metaonly interface ITMS320CTCI6484 inherits ti.catalog.ICpuDataSheet
    23    {
    24
    25        config long cacheSizeL1[string] = [
    26            ["0k",  0x0000],
    27            ["4k",  0x1000],
    28            ["8k",  0x2000],
    29            ["16k", 0x4000],
    30            ["32k", 0x8000],
    31        ];
    32
    33        config long cacheSizeL2[string] = [
    34            ["0k",    0x000000],
    35            ["32k",   0x008000],
    36            ["64k",   0x010000],
    37            ["128k",  0x020000],
    38            ["256k",  0x040000],
    39            ["512k",  0x080000],
    40            ["1024k", 0x100000]
    41        ];
    42
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44             ['l1PMode',{desc:"L1P Cache",
    45                         base: 0xE00000,
    46                         map : [["0k",0x0000],
    47                                ["4k",0x1000],
    48                                ["8k",0x2000],
    49                                ["16k",0x4000],
    50                                ["32k",0x8000]],
    51                         defaultValue: "32k",
    52                         memorySection: "L1PSRAM"}],
    53
    54             ['l1DMode',{desc:"L1D Cache",
    55                         base:0xF00000,
    56                         map : [["0k",0x0000],
    57                                ["4k",0x1000],
    58                                ["8k",0x2000],
    59                                ["16k",0x4000],
    60                                ["32k",0x8000]],
    61                         defaultValue: "32k",
    62                         memorySection: "L1DSRAM"}],
    63
    64             ['l2Mode',{desc:"L2 Cache",
    65                         base:0x800000,
    66                         map : [["0k",0x0000],
    67                                ["32k",0x8000],
    68                                ["64k",0x10000],
    69                                ["128k",0x20000],
    70                                ["256k",0x40000],
    71                                ["512k",  0x080000],
    72                                ["1024k", 0x100000]],
    73                         defaultValue: "0k",
    74                         memorySection: "IRAM"}],
    75
    76        ];
    77
    78    instance:
    79
    80        override config string   cpuCore        = "64x+";
    81        override config string   isa            = "64P";
    82        override config string   cpuCoreRevision = "1.0";
    83
    84        override config int     minProgUnitSize = 1;
    85        override config int     minDataUnitSize = 1;
    86        override config int     dataWordSize    = 4;
    87
    88        /*!
    89         *  ======== memMap ========
    90         *  The default memory map for this device
    91         */
    92        config xdc.platform.IPlatform.Memory memMap[string]  = [
    93            ["IRAM", {
    94                comment:    "Internal 2MB L2 memory",
    95                name:       "IRAM",
    96                base:       0x800000,
    97                len:        0x200000,
    98                space:      "code/data",
    99                access:     "RWX"
   100            }],
   101
   102            ["L1PSRAM", {
   103                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   104                name:       "L1PSRAM",
   105                base:       0xE00000,
   106                len:        0x008000,
   107                space:      "code",
   108                access:     "RWX"
   109            }],
   110
   111            ["L1DSRAM", {
   112                comment:    "Internal 32KB RAM/CACHE L1 data memory",
   113                name:       "L1DSRAM",
   114                base:       0xF00000,
   115                len:        0x008000,
   116                space:      "data",
   117                access:     "RW"
   118            }],
   119
   120        ];
   121    };
   122    /*
   123     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   124     */
   125


interface ti.catalog.c6000.ITMS320CTCI6486

metaonly interface ti.catalog.c6000.ITMS320CTCI6486
index URL

An interface implemented by TCI6486 like devices

XDCspec summary sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
metaonly interface ITMS320CTCI6486 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
package ti.catalog.c6000;
metaonly interface ITMS320CTCI6486 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "LL2RAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "LL2RAM",
            {
                comment: "608K Local L2 RAM/CACHE memory",
                name: "LL2RAM",
                base: 0x00800000,
                len: 0x00098000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "SL2RAM",
            {
                comment: "768K Shared L2 RAM memory",
                name: "SL2RAM",
                base: 0x00200000,
                len: 0x000C0000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320CTCI6486.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "LL2RAM"
        }
    ]
];
config ITMS320CTCI6486.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320CTCI6486.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITMS320CTCI6486.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320CTCI6486.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320CTCI6486.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
override config Int dataWordSize = 4;
config ITMS320CTCI6486.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
config String deviceHeader;
config ITMS320CTCI6486.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
config IPlatform.Memory memMap[string] = [
    [
        "LL2RAM",
        {
            comment: "608K Local L2 RAM/CACHE memory",
            name: "LL2RAM",
            base: 0x00800000,
            len: 0x00098000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "SL2RAM",
        {
            comment: "768K Shared L2 RAM memory",
            name: "SL2RAM",
            base: 0x00200000,
            len: 0x000C0000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320CTCI6486.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
override config Int minDataUnitSize = 1;
config ITMS320CTCI6486.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
override config Int minProgUnitSize = 1;
config ITMS320CTCI6486.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320CTCI6486.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320CTCI6486.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6486.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:00 GMT


interface ti.catalog.c6000.ITMS320CTCI6486

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320CTCI6486.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITMS320CTCI6486 ========
    20     *  An interface implemented by TCI6486 like devices
    21     *
    22     */
    23    metaonly interface ITMS320CTCI6486 inherits ti.catalog.ICpuDataSheet
    24    {
    25        config long cacheSizeL1[string] = [
    26            ["0k",  0x0000],
    27            ["4k",  0x1000],
    28            ["8k",  0x2000],
    29            ["16k", 0x4000],
    30            ["32k", 0x8000],
    31        ];
    32
    33        config long cacheSizeL2[string] = [
    34            ["0k",   0x00000],
    35            ["32k",  0x08000],
    36            ["64k",  0x10000],
    37            ["128k", 0x20000],
    38            ["256k", 0x40000]
    39        ];
    40
    41        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =
    42
    43            [
    44                     ['l1PMode',{desc:"L1P Cache",
    45                                 base:0xE00000,
    46                                 map : [["0k",0x0000],
    47                                        ["4k",0x1000],
    48                                        ["8k",0x2000],
    49                                        ["16k",0x4000],
    50                                        ["32k",0x8000]],
    51                                 defaultValue: "32k",
    52                                 memorySection: "L1PSRAM"}],
    53
    54                     ['l1DMode',{desc:"L1D Cache",
    55                                 base:0xF00000,
    56                                 map : [["0k",0x0000],
    57                                        ["4k",0x1000],
    58                                        ["8k",0x2000],
    59                                        ["16k",0x4000],
    60                                        ["32k",0x8000]],
    61                                 defaultValue: "32k",
    62                                 memorySection: "L1DSRAM"}],
    63
    64                 ['l2Mode',{desc:"L2 Cache",
    65                                 base:0x00800000,
    66                                 map : [["0k",0x0000],
    67                                    ["32k",0x8000],
    68                                    ["64k",0x10000],
    69                                    ["128k",0x20000],
    70                                    ["256k",0x40000]],
    71                                 defaultValue: "0k",
    72                                 memorySection: "LL2RAM"}],
    73
    74            ];
    75
    76    instance:
    77
    78        override config string   cpuCore        = "64x+";
    79        override config string   isa="64P";
    80        override config string   cpuCoreRevision = "1.0";
    81
    82        override config int     minProgUnitSize = 1;
    83        override config int     minDataUnitSize = 1;
    84        override config int     dataWordSize    = 4;
    85
    86        /*!
    87         *  ======== memMap ========
    88         *  The default memory map for this device
    89         */
    90        config xdc.platform.IPlatform.Memory memMap[string]  = [
    91            ["LL2RAM", {
    92                comment:    "608K Local L2 RAM/CACHE memory",
    93                name:       "LL2RAM",
    94                base:       0x00800000,
    95                len:        0x00098000,
    96                space:      "code/data",
    97                access:     "RWX"
    98            }],
    99
   100            ["L1PSRAM", {
   101                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   102                name:       "L1PSRAM",
   103                base:       0xE00000,
   104                len:        0x008000,
   105                space:      "code",
   106                access:     "RWX"
   107            }],
   108
   109            ["L1DSRAM", {
   110                comment:    "Internal 32KB RAM/CACHE L1 data memory",
   111                name:       "L1DSRAM",
   112                base:       0xF00000,
   113                len:        0x008000,
   114                space:      "data",
   115                access:     "RW"
   116            }],
   117
   118            ["SL2RAM", {
   119                comment:    "768K Shared L2 RAM memory",
   120                name:       "SL2RAM",
   121                base:       0x00200000,
   122                len:        0x000C0000,
   123                space:      "code/data",
   124                access:     "RWX"
   125            }],
   126        ];
   127    };
   128    /*
   129     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:33; /db/ztree/library/trees/platform/platform-n27x/src/
   130     */
   131


interface ti.catalog.c6000.ITMS320CTCI648x

metaonly interface ti.catalog.c6000.ITMS320CTCI648x
index URL

An interface implemented by TCI6487 and TCI6488 devices

This interface is defined to factor common data about TCI6487 and TCI6488 devices into a single place; they are all the same from the configuration point of view.
XDCspec summary sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
metaonly interface ITMS320CTCI648x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
package ti.catalog.c6000;
metaonly interface ITMS320CTCI648x inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2RAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
    config IPlatform.Memory memBlock// [string] = [
        [
            "ASYMGEM0L2RAM",
            {
                comment: "1536K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00180000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM1L2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM2L2RAM",
            {
                comment: "512K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SYMGEML2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320CTCI648x.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2RAM"
        }
    ]
];
config ITMS320CTCI648x.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320CTCI648x.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITMS320CTCI648x.memBlock // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
config IPlatform.Memory memBlock[string] = [
    [
        "ASYMGEM0L2RAM",
        {
            comment: "1536K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00180000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM1L2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM2L2RAM",
        {
            comment: "512K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SYMGEML2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320CTCI648x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320CTCI648x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320CTCI648x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
override config Int dataWordSize = 4;
config ITMS320CTCI648x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
config String deviceHeader;
config ITMS320CTCI648x.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config ITMS320CTCI648x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
override config Int minDataUnitSize = 1;
config ITMS320CTCI648x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
override config Int minProgUnitSize = 1;
config ITMS320CTCI648x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320CTCI648x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320CTCI648x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI648x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:00 GMT


interface ti.catalog.c6000.ITMS320CTCI648x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320CTCI648x.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== ITMS320CTCI648x ========
    20     *  An interface implemented by TCI6487 and TCI6488 devices
    21     *
    22     *  This interface is defined to factor common data about TCI6487 and TCI6488
    23     *  devices into a single place; they are all the same from the configuration
    24     *  point of view.
    25     */
    26    metaonly interface ITMS320CTCI648x inherits ti.catalog.ICpuDataSheet
    27    {
    28
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x8000],
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",   0x00000],
    39            ["32k",  0x08000],
    40            ["64k",  0x10000],
    41            ["128k", 0x20000],
    42            ["256k", 0x40000]
    43        ];
    44
    45        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    46                     ['l1PMode',{desc:"L1P Cache",
    47                                 base: 0xE00000,
    48                                 map : [["0k",0x0000],
    49                                        ["4k",0x1000],
    50                                        ["8k",0x2000],
    51                                        ["16k",0x4000],
    52                                        ["32k",0x8000]],
    53                                 defaultValue: "32k",
    54                                 memorySection: "L1PSRAM"}],
    55
    56                             ['l1DMode',{desc:"L1D Cache",
    57                                 base: 0xF00000,
    58                                 map : [["0k",0x0000],
    59                                        ["4k",0x1000],
    60                                        ["8k",0x2000],
    61                                        ["16k",0x4000],
    62                                        ["32k",0x8000]],
    63                                 defaultValue: "32k",
    64                                 memorySection: "L1DSRAM"}],
    65
    66                 ['l2Mode',{desc:"L2 Cache",
    67                                 base: 0x00800000,
    68                                 map : [["0k",0x0000],
    69                                    ["32k",0x8000],
    70                                    ["64k",0x10000],
    71                                    ["128k",0x20000],
    72                                    ["256k",0x40000]],
    73                                 defaultValue: "0k",
    74                                 memorySection: "L2RAM"}]
    75
    76        ];
    77
    78        config xdc.platform.IPlatform.Memory memBlock[string]  = [
    79            ["ASYMGEM0L2RAM", {
    80                comment:    "1536K L2 RAM/CACHE memory",
    81                name:       "L2RAM",
    82                base:       0x00800000,
    83                len:        0x00180000,
    84                space:      "code/data",
    85                access:     "RWX"
    86            }],
    87
    88            ["ASYMGEM1L2RAM", {
    89                comment:    "1024K L2 RAM/CACHE memory",
    90                name:       "L2RAM",
    91                base:       0x00800000,
    92                len:        0x00100000,
    93                space:      "code/data",
    94                access:     "RWX"
    95            }],
    96
    97            ["ASYMGEM2L2RAM", {
    98                comment:    "512K L2 RAM/CACHE memory",
    99                name:       "L2RAM",
   100                base:       0x00800000,
   101                len:        0x00080000,
   102                space:      "code/data",
   103                access:     "RWX"
   104            }],
   105
   106            ["SYMGEML2RAM", {
   107                comment:    "1024K L2 RAM/CACHE memory",
   108                name:       "L2RAM",
   109                base:       0x00800000,
   110                len:        0x00100000,
   111                space:      "code/data",
   112                access:     "RWX"
   113            }],
   114
   115        ];
   116
   117    instance:
   118
   119        override config string   cpuCore        = "64x+";
   120        override config string   isa = "64P";
   121        override config string   cpuCoreRevision = "1.0";
   122
   123        override config int     minProgUnitSize = 1;
   124        override config int     minDataUnitSize = 1;
   125        override config int     dataWordSize    = 4;
   126
   127        /*!
   128         *  ======== memMap ========
   129         *  The default memory map for this device
   130         */
   131        config xdc.platform.IPlatform.Memory memMap[string] = [
   132
   133            ["L1PSRAM", {
   134                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   135                name:       "L1PSRAM",
   136                base:       0xE00000,
   137                len:        0x008000,
   138                space:      "code",
   139                access:     "RWX"
   140            }],
   141
   142            ["L1DSRAM", {
   143                comment:    "Internal 32KB RAM/CACHE L1 data memory",
   144                name:       "L1DSRAM",
   145                base:       0xF00000,
   146                len:        0x008000,
   147                space:      "data",
   148                access:     "RW"
   149            }],
   150        ];
   151
   152    };
   153    /*
   154     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   155     */
   156


interface ti.catalog.c6000.ITMS320CTCI6497

metaonly interface ti.catalog.c6000.ITMS320CTCI6497
index URL
XDCspec summary sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
metaonly interface ITMS320CTCI6497 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
package ti.catalog.c6000;
metaonly interface ITMS320CTCI6497 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "2MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00200000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320CTCI6497.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config ITMS320CTCI6497.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320CTCI6497.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
config ITMS320CTCI6497.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
override config String cpuCore = "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320CTCI6497.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320CTCI6497.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
override config Int dataWordSize = 4;
config ITMS320CTCI6497.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
config String deviceHeader;
config ITMS320CTCI6497.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "2MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00200000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320CTCI6497.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
override config Int minDataUnitSize = 1;
config ITMS320CTCI6497.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
override config Int minProgUnitSize = 1;
config ITMS320CTCI6497.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320CTCI6497.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320CTCI6497.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320CTCI6497.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:00 GMT


interface ti.catalog.c6000.ITMS320CTCI6497

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320CTCI6497.xdc ========
    15     *
    16     */
    17
    18     package ti.catalog.c6000;
    19
    20    metaonly interface ITMS320CTCI6497 inherits ti.catalog.ICpuDataSheet
    21    {
    22
    23        config long cacheSizeL1[string] = [
    24            ["0k",  0x0000],
    25            ["4k",  0x1000],
    26            ["8k",  0x2000],
    27            ["16k", 0x4000],
    28            ["32k", 0x8000],
    29        ];
    30
    31        config long cacheSizeL2[string] = [
    32            ["0k",    0x000000],
    33            ["32k",   0x008000],
    34            ["64k",   0x010000],
    35            ["128k",  0x020000],
    36            ["256k",  0x040000],
    37            ["512k",  0x080000],
    38            ["1024k", 0x100000]
    39        ];
    40
    41        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    42                 ['l1PMode',{desc:"L1P Cache",
    43                             base: 0x00E00000,
    44                             map : [["0k",0x0000],
    45                                    ["4k",0x1000],
    46                                    ["8k",0x2000],
    47                                    ["16k",0x4000],
    48                                    ["32k",0x8000]],
    49                             defaultValue: "32k",
    50                             memorySection: "L1PSRAM"}],
    51
    52                     ['l1DMode',{desc:"L1D Cache",
    53                             base: 0x00F00000,
    54                             map : [["0k",0x0000],
    55                                    ["4k",0x1000],
    56                                    ["8k",0x2000],
    57                                    ["16k",0x4000],
    58                                    ["32k",0x8000]],
    59                             defaultValue: "32k",
    60                             memorySection: "L1DSRAM"}],
    61
    62                 ['l2Mode',{desc:"L2 Cache",
    63                             base: 0x00800000,
    64                             map : [["0k",0x0000],
    65                                    ["32k",0x8000],
    66                                    ["64k",0x10000],
    67                                ["128k",  0x020000],
    68                                    ["256k",  0x040000],
    69                                    ["512k",  0x080000],
    70                                ["1024k", 0x100000]],
    71                             defaultValue: "0k",
    72                             memorySection: "L2SRAM"}],
    73
    74        ];
    75
    76    instance:
    77
    78        override config string   cpuCore        = "64x+";
    79        override config string   isa = "64P";
    80        override config string   cpuCoreRevision = "1.0";
    81
    82        override config int     minProgUnitSize = 1;
    83        override config int     minDataUnitSize = 1;
    84        override config int     dataWordSize    = 4;
    85
    86        /*!
    87         *  ======== memMap ========
    88         *  The default memory map for this device
    89         */
    90        config xdc.platform.IPlatform.Memory memMap[string]  = [
    91            ["L2SRAM", {
    92                comment:    "1MB L2 SRAM/CACHE",
    93                name:       "L2SRAM",
    94                base:       0x00800000,
    95                len:        0x00100000,
    96                space:      "code/data",
    97                access:     "RWX"
    98            }],
    99
   100            ["L1PSRAM", {
   101                comment:    "32KB RAM/CACHE L1 program memory",
   102                name:       "L1PSRAM",
   103                base:       0x00E00000,
   104                len:        0x00008000,
   105                space:      "code",
   106                access:     "RWX"
   107            }],
   108
   109            ["L1DSRAM", {
   110                comment:    "32KB RAM/CACHE L1 data memory",
   111                name:       "L1DSRAM",
   112                base:       0x00F00000,
   113                len:        0x00008000,
   114                space:      "data",
   115                access:     "RW"
   116            }],
   117
   118            ["MSMCSRAM", {
   119                comment:    "2MB MSMC SRAM",
   120                name:       "MSMCSRAM",
   121                base:       0x0C000000,
   122                len:        0x00200000,
   123                space:      "code/data",
   124                access:     "RWX"
   125            }],
   126        ];
   127    };
   128    /*
   129     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   130     */
   131


interface ti.catalog.c6000.ITMS320DA8xx

metaonly interface ti.catalog.c6000.ITMS320DA8xx
index URL

An interface implemented by TMS320DA8xx devices

XDCspec summary sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
metaonly interface ITMS320DA8xx { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
package ti.catalog.c6000;
metaonly interface ITMS320DA8xx inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "C674";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// [string] = [
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320DA8xx.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config ITMS320DA8xx.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320DA8xx.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config ITMS320DA8xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
override config String cpuCore = "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320DA8xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320DA8xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
override config Int dataWordSize = 4;
config ITMS320DA8xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
config String deviceHeader;
config ITMS320DA8xx.memMap // instance
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320DA8xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
override config Int minDataUnitSize = 1;
config ITMS320DA8xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
override config Int minProgUnitSize = 1;
config ITMS320DA8xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320DA8xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320DA8xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320DA8xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:00 GMT


interface ti.catalog.c6000.ITMS320DA8xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320DA8xx.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== ITMS320DA8xx ========
    21     *  An interface implemented by TMS320DA8xx devices.
    22     *
    23     */
    24    metaonly interface ITMS320DA8xx inherits ti.catalog.ICpuDataSheet
    25    {
    26
    27        config long cacheSizeL1[string] = [
    28            ["0k",  0x0000],
    29            ["4k",  0x1000],
    30            ["8k",  0x2000],
    31            ["16k", 0x4000],
    32            ["32k", 0x8000],
    33        ];
    34
    35        config long cacheSizeL2[string] = [
    36            ["0k",  0x00000],
    37            ["32k", 0x08000],
    38            ["64k", 0x10000],
    39            ["128k",0x20000],
    40            ["256k",0x40000],
    41        ];
    42
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44                 ['l1PMode',{desc:"L1P Cache",
    45                             base: 0x11E00000,
    46                             map : [["0k",0x0000],
    47                                    ["4k",0x1000],
    48                                    ["8k",0x2000],
    49                                    ["16k",0x4000],
    50                                    ["32k",0x8000]],
    51                             defaultValue: "32k",
    52                             memorySection: "L1PSRAM"}],
    53
    54                     ['l1DMode',{desc:"L1D Cache",
    55                             base: 0x11F00000,
    56                             map : [["0k",0x0000],
    57                                    ["4k",0x1000],
    58                                    ["8k",0x2000],
    59                                    ["16k",0x4000],
    60                                    ["32k",0x8000]],
    61                             defaultValue: "32k",
    62                             memorySection: "L1DSRAM"}],
    63
    64                 ['l2Mode',{desc:"L2 Cache",
    65                             base: 0x11800000,
    66                             map : [["0k",0x0000],
    67                                    ["32k",0x8000],
    68                                    ["64k",0x10000],
    69                                    ["128k",0x20000],
    70                                    ["256k",0x40000]],
    71                             defaultValue: "0k",
    72                             memorySection: "IRAM"}],
    73
    74        ];
    75
    76    instance:
    77        override config int     minProgUnitSize = 1;
    78        override config int     minDataUnitSize = 1;
    79        override config int     dataWordSize    = 4;
    80
    81        override config string   cpuCore        = "C674";
    82        override config string   isa = "674";
    83        override config string   cpuCoreRevision = "1.0";
    84
    85        config xdc.platform.IPlatform.Memory memMap[string]  = [
    86            ["IROM", {
    87                comment:    "Internal 1MB L2 ROM",
    88                name:       "IROM",
    89                base:       0x11700000,
    90                len:        0x00100000,
    91                space:      "code/data",
    92                access:     "RX"
    93            }],
    94
    95            ["IRAM", {
    96                comment:    "Internal 256KB L2 memory",
    97                name:       "IRAM",
    98                base:       0x11800000,
    99                len:        0x00040000,
   100                space:      "code/data",
   101                access:     "RWX"
   102            }],
   103
   104            ["L1PSRAM", {
   105                comment:    "Internal 32KB L1 program memory",
   106                name:       "L1PSRAM",
   107                base:       0x11E00000,
   108                len:        0x00008000,
   109                space:      "code",
   110                access:     "RWX"
   111            }],
   112
   113            ["L1DSRAM", {
   114                comment:    "Internal 32KB L1 data memory",
   115                name:       "L1DSRAM",
   116                base:       0x11F00000,
   117                len:        0x00008000,
   118                space:      "data",
   119                access:     "RW"
   120            }],
   121
   122            ["L3_CBA_RAM", {
   123                comment:    "128KB ARM/DSP local shared RAM",
   124                name:       "L3_CBA_RAM",
   125                base:       0x80000000,
   126                len:        0x00020000,
   127                space:      "code/data",
   128                access:     "RWX"
   129            }],
   130        ];
   131    };
   132    /*
   133     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   134     */
   135


interface ti.catalog.c6000.ITMS320TCI6608

metaonly interface ti.catalog.c6000.ITMS320TCI6608
index URL
XDCspec summary sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
metaonly interface ITMS320TCI6608 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
package ti.catalog.c6000;
metaonly interface ITMS320TCI6608 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "6600";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "L2SRAM",
            {
                comment: "512KB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "4MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00400000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320TCI6608.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config ITMS320TCI6608.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320TCI6608.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ]
];
config ITMS320TCI6608.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
override config String cpuCore = "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320TCI6608.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320TCI6608.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
override config Int dataWordSize = 4;
config ITMS320TCI6608.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
config String deviceHeader;
config ITMS320TCI6608.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L2SRAM",
        {
            comment: "512KB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "4MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00400000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320TCI6608.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
override config Int minDataUnitSize = 1;
config ITMS320TCI6608.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
override config Int minProgUnitSize = 1;
config ITMS320TCI6608.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320TCI6608.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320TCI6608.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6608.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:01 GMT


interface ti.catalog.c6000.ITMS320TCI6608

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320TCI6608.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    metaonly interface ITMS320TCI6608 inherits ti.catalog.ICpuDataSheet
    21    {
    22
    23        config long cacheSizeL1[string] = [
    24            ["0k",  0x0000],
    25            ["4k",  0x1000],
    26            ["8k",  0x2000],
    27            ["16k", 0x4000],
    28            ["32k", 0x8000],
    29        ];
    30
    31        config long cacheSizeL2[string] = [
    32            ["0k",    0x000000],
    33            ["32k",   0x008000],
    34            ["64k",   0x010000],
    35            ["128k",  0x020000],
    36            ["256k",  0x040000],
    37            ["512k",  0x080000]
    38        ];
    39
    40        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    41                 ['l1PMode',{desc:"L1P Cache",
    42                             base: 0x00E00000,
    43                             map : [["0k",0x0000],
    44                                    ["4k",0x1000],
    45                                    ["8k",0x2000],
    46                                    ["16k",0x4000],
    47                                    ["32k",0x8000]],
    48                             defaultValue: "32k",
    49                             memorySection: "L1PSRAM"}],
    50
    51                     ['l1DMode',{desc:"L1D Cache",
    52                             base: 0x00F00000,
    53                             map : [["0k",0x0000],
    54                                    ["4k",0x1000],
    55                                    ["8k",0x2000],
    56                                    ["16k",0x4000],
    57                                    ["32k",0x8000]],
    58                             defaultValue: "32k",
    59                             memorySection: "L1DSRAM"}],
    60
    61                 ['l2Mode',{desc:"L2 Cache",
    62                             base: 0x00800000,
    63                             map : [["0k",0x0000],
    64                                    ["32k",0x8000],
    65                                    ["64k",0x10000],
    66                                ["128k",  0x020000],
    67                                    ["256k",  0x040000],
    68                                    ["512k",  0x080000]],
    69                             defaultValue: "0k",
    70                             memorySection: "L2SRAM"}],
    71
    72        ];
    73
    74    instance:
    75
    76        override config string   cpuCore        = "6600";
    77        override config string   isa = "66";
    78        override config string   cpuCoreRevision = "1.0";
    79
    80        override config int     minProgUnitSize = 1;
    81        override config int     minDataUnitSize = 1;
    82        override config int     dataWordSize    = 4;
    83
    84        /*!
    85         *  ======== memMap ========
    86         *  The default memory map for this device
    87         */
    88        config xdc.platform.IPlatform.Memory memMap[string]  = [
    89            ["L2SRAM", {
    90                comment:    "512KB L2 SRAM/CACHE",
    91                name:       "L2SRAM",
    92                base:       0x00800000,
    93                len:        0x00080000,
    94                space:      "code/data",
    95                access:     "RWX"
    96            }],
    97
    98            ["L1PSRAM", {
    99                comment:    "32KB RAM/CACHE L1 program memory",
   100                name:       "L1PSRAM",
   101                base:       0x00E00000,
   102                len:        0x00008000,
   103                space:      "code",
   104                access:     "RWX"
   105            }],
   106
   107            ["L1DSRAM", {
   108                comment:    "32KB RAM/CACHE L1 data memory",
   109                name:       "L1DSRAM",
   110                base:       0x00F00000,
   111                len:        0x00008000,
   112                space:      "data",
   113                access:     "RW"
   114            }],
   115
   116            ["MSMCSRAM", {
   117                comment:    "4MB MSMC SRAM",
   118                name:       "MSMCSRAM",
   119                base:       0x0C000000,
   120                len:        0x00400000,
   121                space:      "code/data",
   122                access:     "RWX"
   123            }],
   124        ];
   125    };
   126    /*
   127     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   128     */
   129


interface ti.catalog.c6000.ITMS320TCI6616

metaonly interface ti.catalog.c6000.ITMS320TCI6616
index URL
XDCspec summary sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
metaonly interface ITMS320TCI6616 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
package ti.catalog.c6000;
metaonly interface ITMS320TCI6616 inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "6600";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "2MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00200000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320TCI6616.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config ITMS320TCI6616.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320TCI6616.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
config ITMS320TCI6616.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
override config String cpuCore = "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320TCI6616.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320TCI6616.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
override config Int dataWordSize = 4;
config ITMS320TCI6616.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
config String deviceHeader;
config ITMS320TCI6616.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "2MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00200000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320TCI6616.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
override config Int minDataUnitSize = 1;
config ITMS320TCI6616.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
override config Int minProgUnitSize = 1;
config ITMS320TCI6616.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320TCI6616.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320TCI6616.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI6616.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:01 GMT


interface ti.catalog.c6000.ITMS320TCI6616

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320TCI6616.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    metaonly interface ITMS320TCI6616 inherits ti.catalog.ICpuDataSheet
    21    {
    22
    23        config long cacheSizeL1[string] = [
    24            ["0k",  0x0000],
    25            ["4k",  0x1000],
    26            ["8k",  0x2000],
    27            ["16k", 0x4000],
    28            ["32k", 0x8000],
    29        ];
    30
    31        config long cacheSizeL2[string] = [
    32            ["0k",    0x000000],
    33            ["32k",   0x008000],
    34            ["64k",   0x010000],
    35            ["128k",  0x020000],
    36            ["256k",  0x040000],
    37            ["512k",  0x080000],
    38            ["1024k", 0x100000]
    39        ];
    40
    41        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    42                 ['l1PMode',{desc:"L1P Cache",
    43                             base: 0x00E00000,
    44                             map : [["0k",0x0000],
    45                                    ["4k",0x1000],
    46                                    ["8k",0x2000],
    47                                    ["16k",0x4000],
    48                                    ["32k",0x8000]],
    49                             defaultValue: "32k",
    50                             memorySection: "L1PSRAM"}],
    51
    52                     ['l1DMode',{desc:"L1D Cache",
    53                             base: 0x00F00000,
    54                             map : [["0k",0x0000],
    55                                    ["4k",0x1000],
    56                                    ["8k",0x2000],
    57                                    ["16k",0x4000],
    58                                    ["32k",0x8000]],
    59                             defaultValue: "32k",
    60                             memorySection: "L1DSRAM"}],
    61
    62                 ['l2Mode',{desc:"L2 Cache",
    63                             base: 0x00800000,
    64                             map : [["0k",0x0000],
    65                                    ["32k",0x8000],
    66                                    ["64k",0x10000],
    67                                ["128k",  0x020000],
    68                                    ["256k",  0x040000],
    69                                    ["512k",  0x080000],
    70                                ["1024k", 0x100000]],
    71                             defaultValue: "0k",
    72                             memorySection: "L2SRAM"}],
    73
    74        ];
    75
    76    instance:
    77
    78        override config string   cpuCore        = "6600";
    79        override config string   isa = "66";
    80        override config string   cpuCoreRevision = "1.0";
    81
    82        override config int     minProgUnitSize = 1;
    83        override config int     minDataUnitSize = 1;
    84        override config int     dataWordSize    = 4;
    85
    86        /*!
    87         *  ======== memMap ========
    88         *  The default memory map for this device
    89         */
    90        config xdc.platform.IPlatform.Memory memMap[string]  = [
    91            ["L2SRAM", {
    92                comment:    "1MB L2 SRAM/CACHE",
    93                name:       "L2SRAM",
    94                base:       0x00800000,
    95                len:        0x00100000,
    96                space:      "code/data",
    97                access:     "RWX"
    98            }],
    99
   100            ["L1PSRAM", {
   101                comment:    "32KB RAM/CACHE L1 program memory",
   102                name:       "L1PSRAM",
   103                base:       0x00E00000,
   104                len:        0x00008000,
   105                space:      "code",
   106                access:     "RWX"
   107            }],
   108
   109            ["L1DSRAM", {
   110                comment:    "32KB RAM/CACHE L1 data memory",
   111                name:       "L1DSRAM",
   112                base:       0x00F00000,
   113                len:        0x00008000,
   114                space:      "data",
   115                access:     "RW"
   116            }],
   117
   118            ["MSMCSRAM", {
   119                comment:    "2MB MSMC SRAM",
   120                name:       "MSMCSRAM",
   121                base:       0x0C000000,
   122                len:        0x00200000,
   123                space:      "code/data",
   124                access:     "RWX"
   125            }],
   126        ];
   127    };
   128    /*
   129     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   130     */
   131


interface ti.catalog.c6000.ITMS320TCI663x

metaonly interface ti.catalog.c6000.ITMS320TCI663x
index URL
XDCspec summary sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
metaonly interface ITMS320TCI663x { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
package ti.catalog.c6000;
metaonly interface ITMS320TCI663x inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "6600";
    override config String cpuCoreRevision// A string that uniquely identifies a revision of the core = "1.0";
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 4;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config IPlatform.Memory memMap// The default memory map for this device[string] = [
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "6MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00600000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config ITMS320TCI663x.cacheMap // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config ITMS320TCI663x.cacheSizeL1 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config ITMS320TCI663x.cacheSizeL2 // module-wide
index URL
XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
config ITMS320TCI663x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
override config String cpuCore = "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ITMS320TCI663x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
override config String cpuCoreRevision = "1.0";
config ITMS320TCI663x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
override config Int dataWordSize = 4;
config ITMS320TCI663x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
config String deviceHeader;
config ITMS320TCI663x.memMap // instance
index URL

The default memory map for this device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
config IPlatform.Memory memMap[string] = [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "6MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00600000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config ITMS320TCI663x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
override config Int minDataUnitSize = 1;
config ITMS320TCI663x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
override config Int minProgUnitSize = 1;
config ITMS320TCI663x.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ITMS320TCI663x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ITMS320TCI663x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/ITMS320TCI663x.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:01 GMT


interface ti.catalog.c6000.ITMS320TCI663x

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== ITMS320TCI663x.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    metaonly interface ITMS320TCI663x inherits ti.catalog.ICpuDataSheet
    21    {
    22        /* These are the available sizes for L1 caches */
    23        config long cacheSizeL1[string] = [
    24            ["0k",  0x0000],
    25            ["4k",  0x1000],
    26            ["8k",  0x2000],
    27            ["16k", 0x4000],
    28            ["32k", 0x8000],
    29        ];
    30
    31        /* These are the available sizes for L2 cche */
    32        config long cacheSizeL2[string] = [
    33            ["0k",    0x000000],
    34            ["32k",   0x008000],
    35            ["64k",   0x010000],
    36            ["128k",  0x020000],
    37            ["256k",  0x040000],
    38            ["512k",  0x080000],
    39            ["1024k", 0x100000]
    40        ];
    41
    42        /* This is used by platform wizard for setting default cache sizes */
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44            ['l1PMode', {
    45                desc:"L1P Cache",
    46                base: 0x00E00000,
    47                map : [
    48                    ["0k",0x0000],
    49                    ["4k",0x1000],
    50                    ["8k",0x2000],
    51                    ["16k",0x4000],
    52                    ["32k",0x8000]
    53                ],
    54                defaultValue: "32k",
    55                memorySection: "L1PSRAM"
    56            }],
    57            ['l1DMode', {
    58                desc:"L1D Cache",
    59                base: 0x00F00000,
    60                map : [
    61                    ["0k",0x0000],
    62                    ["4k",0x1000],
    63                    ["8k",0x2000],
    64                    ["16k",0x4000],
    65                    ["32k",0x8000]
    66                ],
    67                defaultValue: "32k",
    68                memorySection: "L1DSRAM"
    69            }],
    70            ['l2Mode', {
    71                desc:"L2 Cache",
    72                base: 0x00800000,
    73                map : [
    74                    ["0k",0x0000],
    75                    ["32k",0x8000],
    76                    ["64k",0x10000],
    77                    ["128k",  0x020000],
    78                    ["256k",  0x040000],
    79                    ["512k",  0x080000],
    80                    ["1024k", 0x100000]
    81                ],
    82                defaultValue: "0k",
    83                memorySection: "L2SRAM"}
    84            ],
    85        ];
    86
    87    instance:
    88
    89        override config string   cpuCore        = "6600";
    90        override config string   isa = "66";
    91        override config string   cpuCoreRevision = "1.0";
    92
    93        override config int     minProgUnitSize = 1;
    94        override config int     minDataUnitSize = 1;
    95        override config int     dataWordSize    = 4;
    96
    97        /*!
    98         *  ======== memMap ========
    99         *  The default memory map for this device
   100         */
   101        config xdc.platform.IPlatform.Memory memMap[string]  = [
   102            ["L2SRAM", {
   103                comment:    "1MB L2 SRAM/CACHE",
   104                name:       "L2SRAM",
   105                base:       0x00800000,
   106                len:        0x00100000,
   107                space:      "code/data",
   108                access:     "RWX"
   109            }],
   110
   111            ["L1PSRAM", {
   112                comment:    "32KB RAM/CACHE L1 program memory",
   113                name:       "L1PSRAM",
   114                base:       0x00E00000,
   115                len:        0x00008000,
   116                space:      "code",
   117                access:     "RWX"
   118            }],
   119
   120            ["L1DSRAM", {
   121                comment:    "32KB RAM/CACHE L1 data memory",
   122                name:       "L1DSRAM",
   123                base:       0x00F00000,
   124                len:        0x00008000,
   125                space:      "data",
   126                access:     "RW"
   127            }],
   128
   129            ["MSMCSRAM", {
   130                comment:    "6MB MSMC SRAM",
   131                name:       "MSMCSRAM",
   132                base:       0x0C000000,
   133                len:        0x00600000,
   134                space:      "code/data",
   135                access:     "RWX"
   136            }],
   137        ];
   138    };
   139    /*
   140     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   141     */
   142


module ti.catalog.c6000.Kepler

metaonly module ti.catalog.c6000.Kepler
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/Kepler.xdc
var Kepler = xdc.useModule('ti.catalog.c6000.Kepler');
module-wide config parameters
    const Kepler.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     Kepler.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     Kepler.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new Kepler.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "6MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00600000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Kepler.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config Kepler.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const Kepler.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config Kepler.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
Kepler.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config Kepler.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
Kepler.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Kepler.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "6MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00600000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Kepler.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Kepler.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Kepler.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Kepler.Params;
...
params.cpuCoreRevision = String "1.0";
config Kepler.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Kepler.Params;
...
params.dataWordSize = Int 4;
config Kepler.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Kepler.Params;
...
params.deviceHeader = String undefined;
config Kepler.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new Kepler.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "6MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00600000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config Kepler.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Kepler.Params;
...
params.minDataUnitSize = Int 1;
config Kepler.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Kepler.Params;
...
params.minProgUnitSize = Int 1;
config Kepler.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Kepler.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Kepler.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Kepler.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Kepler.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Kepler.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:01 GMT


module ti.catalog.c6000.Kepler

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Kepler.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    metaonly module Kepler inherits ti.catalog.ICpuDataSheet
    21    {
    22
    23        config long cacheSizeL1[string] = [
    24            ["0k",  0x0000],
    25            ["4k",  0x1000],
    26            ["8k",  0x2000],
    27            ["16k", 0x4000],
    28            ["32k", 0x8000],
    29        ];
    30
    31        config long cacheSizeL2[string] = [
    32            ["0k",    0x000000],
    33            ["32k",   0x008000],
    34            ["64k",   0x010000],
    35            ["128k",  0x020000],
    36            ["256k",  0x040000],
    37            ["512k",  0x080000],
    38            ["1024k", 0x100000]
    39        ];
    40
    41        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    42            ['l1PMode',
    43                {desc:"L1P Cache",
    44                    base: 0x00E00000,
    45                        map : [["0k",0x0000],
    46                               ["4k",0x1000],
    47                               ["8k",0x2000],
    48                               ["16k",0x4000],
    49                               ["32k",0x8000]],
    50                         defaultValue: "32k",
    51                         memorySection: "L1PSRAM"
    52                }
    53            ],
    54            ['l1DMode',
    55                {desc:"L1D Cache",
    56                     base: 0x00F00000,
    57                         map : [["0k",0x0000],
    58                                ["4k",0x1000],
    59                                ["8k",0x2000],
    60                                ["16k",0x4000],
    61                                ["32k",0x8000]],
    62                         defaultValue: "32k",
    63                         memorySection: "L1DSRAM"
    64                }
    65            ],
    66            ['l2Mode',
    67                {desc:"L2 Cache",
    68                     base: 0x00800000,
    69                         map : [["0k",0x0000],
    70                                ["32k",0x8000],
    71                                ["64k",0x10000],
    72                                ["128k",  0x020000],
    73                                ["256k",  0x040000],
    74                                ["512k",  0x080000],
    75                                ["1024k", 0x100000]],
    76                         defaultValue: "0k",
    77                         memorySection: "L2SRAM"
    78                }
    79            ],
    80        ];
    81
    82    instance:
    83
    84        override config string   cpuCore        = "6600";
    85        override config string   isa = "66";
    86        override config string   cpuCoreRevision = "1.0";
    87
    88        override config int     minProgUnitSize = 1;
    89        override config int     minDataUnitSize = 1;
    90        override config int     dataWordSize    = 4;
    91
    92        /*!
    93         *  ======== memMap ========
    94         *  The default memory map for this device
    95         */
    96        config xdc.platform.IPlatform.Memory memMap[string]  = [
    97            ["L2SRAM", {
    98                comment:    "1MB L2 SRAM/CACHE",
    99                name:       "L2SRAM",
   100                base:       0x00800000,
   101                len:        0x00100000,
   102                space:      "code/data",
   103                access:     "RWX"
   104            }],
   105
   106            ["L1PSRAM", {
   107                comment:    "32KB RAM/CACHE L1 program memory",
   108                name:       "L1PSRAM",
   109                base:       0x00E00000,
   110                len:        0x00008000,
   111                space:      "code",
   112                access:     "RWX"
   113            }],
   114
   115            ["L1DSRAM", {
   116                comment:    "32KB RAM/CACHE L1 data memory",
   117                name:       "L1DSRAM",
   118                base:       0x00F00000,
   119                len:        0x00008000,
   120                space:      "data",
   121                access:     "RW"
   122            }],
   123
   124            ["MSMCSRAM", {
   125                comment:    "6MB MSMC SRAM",
   126                name:       "MSMCSRAM",
   127                base:       0x0C000000,
   128                len:        0x00600000,
   129                space:      "code/data",
   130                access:     "RWX"
   131            }],
   132        ];
   133    };
   134    /*
   135     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   136     */
   137


module ti.catalog.c6000.OMAP2431

metaonly module ti.catalog.c6000.OMAP2431
index URL

OMAP2431 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAP2431.xdc
var OMAP2431 = xdc.useModule('ti.catalog.c6000.OMAP2431');
module-wide config parameters
    const OMAP2431.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     OMAP2431.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     OMAP2431.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new OMAP2431.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB L2 UMAP0 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP2431.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config OMAP2431.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const OMAP2431.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config OMAP2431.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
OMAP2431.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config OMAP2431.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
OMAP2431.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP2431.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP2431.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP2431.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP2431.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.dataWordSize = Int 4;
config OMAP2431.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.deviceHeader = String undefined;
config OMAP2431.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config OMAP2431.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.minDataUnitSize = Int 1;
config OMAP2431.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.minProgUnitSize = Int 1;
config OMAP2431.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP2431.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP2431.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP2431.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP2431.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP2431.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:01 GMT


module ti.catalog.c6000.OMAP2431

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP2431.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAP2431 ========
    21     *  OMAP2431 device data sheet module
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module OMAP2431 inherits IOMAP2x3x
    27    {
    28
    29    instance:
    30
    31        override config string   cpuCoreRevision = "1.0";
    32    };
    33    /*
    34     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    35     */
    36


module ti.catalog.c6000.OMAP2530

metaonly module ti.catalog.c6000.OMAP2530
index URL

OMAP2530 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAP2530.xdc
var OMAP2530 = xdc.useModule('ti.catalog.c6000.OMAP2530');
module-wide config parameters
    const OMAP2530.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     OMAP2530.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     OMAP2530.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new OMAP2530.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB L2 UMAP0 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP2530.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config OMAP2530.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const OMAP2530.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config OMAP2530.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
OMAP2530.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config OMAP2530.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
OMAP2530.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP2530.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP2530.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP2530.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP2530.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.dataWordSize = Int 4;
config OMAP2530.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.deviceHeader = String undefined;
config OMAP2530.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config OMAP2530.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.minDataUnitSize = Int 1;
config OMAP2530.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.minProgUnitSize = Int 1;
config OMAP2530.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP2530.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP2530.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP2530.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP2530.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP2530.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:01 GMT


module ti.catalog.c6000.OMAP2530

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP2530.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAP2530 ========
    21     *  OMAP2530 device data sheet module
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module OMAP2530 inherits IOMAP2x3x
    27    {
    28
    29    instance:
    30
    31        override config string   cpuCoreRevision = "1.0";
    32
    33    };
    34    /*
    35     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    36     */
    37


module ti.catalog.c6000.OMAP2531

metaonly module ti.catalog.c6000.OMAP2531
index URL

OMAP2531 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAP2531.xdc
var OMAP2531 = xdc.useModule('ti.catalog.c6000.OMAP2531');
module-wide config parameters
    const OMAP2531.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     OMAP2531.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     OMAP2531.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new OMAP2531.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB L2 UMAP0 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP2531.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config OMAP2531.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const OMAP2531.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config OMAP2531.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
OMAP2531.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config OMAP2531.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
OMAP2531.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP2531.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP2531.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP2531.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP2531.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.dataWordSize = Int 4;
config OMAP2531.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.deviceHeader = String undefined;
config OMAP2531.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config OMAP2531.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.minDataUnitSize = Int 1;
config OMAP2531.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.minProgUnitSize = Int 1;
config OMAP2531.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP2531.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP2531.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP2531.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP2531.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP2531.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:02 GMT


module ti.catalog.c6000.OMAP2531

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP2531.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAP2531 ========
    21     *  OMAP2531 device data sheet module
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module OMAP2531 inherits IOMAP2x3x
    27    {
    28
    29    instance:
    30
    31        override config string   cpuCoreRevision = "1.0";
    32
    33    };
    34    /*
    35     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    36     */
    37


module ti.catalog.c6000.OMAP3425

metaonly module ti.catalog.c6000.OMAP3425
index URL

OMAP3425 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAP3425.xdc
var OMAP3425 = xdc.useModule('ti.catalog.c6000.OMAP3425');
module-wide config parameters
    const OMAP3425.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x107F8000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     OMAP3425.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     OMAP3425.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new OMAP3425.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "2.1";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 96KB L2 UMAP0 memory",
                    name: "IRAM",
                    base: 0x107F8000,
                    len: 0x00018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3425.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config OMAP3425.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const OMAP3425.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x107F8000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config OMAP3425.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
OMAP3425.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config OMAP3425.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
OMAP3425.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3425.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "2.1";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 96KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x107F8000,
                len: 0x00018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3425.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3425.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.cpuCoreRevision = String "2.1";
config OMAP3425.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.dataWordSize = Int 4;
config OMAP3425.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.deviceHeader = String undefined;
config OMAP3425.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 96KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x107F8000,
            len: 0x00018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config OMAP3425.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3425.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3425.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3425.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3425.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3425.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3425.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3425.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:02 GMT


module ti.catalog.c6000.OMAP3425

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3425.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAP3425 ========
    21     *  OMAP3425 device data sheet module
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module OMAP3425 inherits IOMAP3xxx
    27    {
    28
    29    instance:
    30        override config string   cpuCoreRevision = "2.1";
    31    };
    32    /*
    33     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    34     */
    35


module ti.catalog.c6000.OMAP3525

metaonly module ti.catalog.c6000.OMAP3525
index URL

OMAP3525 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAP3525.xdc
var OMAP3525 = xdc.useModule('ti.catalog.c6000.OMAP3525');
module-wide config parameters
    const OMAP3525.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x107F8000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     OMAP3525.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     OMAP3525.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new OMAP3525.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "2.1";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 96KB L2 UMAP0 memory",
                    name: "IRAM",
                    base: 0x107F8000,
                    len: 0x00018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3525.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config OMAP3525.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const OMAP3525.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x107F8000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config OMAP3525.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
OMAP3525.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config OMAP3525.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
OMAP3525.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3525.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "2.1";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 96KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x107F8000,
                len: 0x00018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3525.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3525.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.cpuCoreRevision = String "2.1";
config OMAP3525.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.dataWordSize = Int 4;
config OMAP3525.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.deviceHeader = String undefined;
config OMAP3525.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 96KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x107F8000,
            len: 0x00018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config OMAP3525.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3525.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3525.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3525.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3525.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3525.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3525.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3525.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:02 GMT


module ti.catalog.c6000.OMAP3525

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3525.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAP3525 ========
    21     *  OMAP3525 device data sheet module
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module OMAP3525 inherits IOMAP3xxx
    27    {
    28
    29    instance:
    30        override config string   cpuCoreRevision = "2.1";
    31    };
    32    /*
    33     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    34     */
    35


module ti.catalog.c6000.OMAP3530

metaonly module ti.catalog.c6000.OMAP3530
index URL

OMAP3530 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAP3530.xdc
var OMAP3530 = xdc.useModule('ti.catalog.c6000.OMAP3530');
module-wide config parameters
    const OMAP3530.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x107F8000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     OMAP3530.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     OMAP3530.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new OMAP3530.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "2.1";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 96KB L2 UMAP0 memory",
                    name: "IRAM",
                    base: 0x107F8000,
                    len: 0x00018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP3530.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config OMAP3530.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const OMAP3530.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x107F8000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config OMAP3530.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
OMAP3530.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config OMAP3530.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
OMAP3530.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP3530.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "2.1";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 96KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x107F8000,
                len: 0x00018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP3530.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP3530.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.cpuCoreRevision = String "2.1";
config OMAP3530.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.dataWordSize = Int 4;
config OMAP3530.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.deviceHeader = String undefined;
config OMAP3530.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 96KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x107F8000,
            len: 0x00018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config OMAP3530.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.minDataUnitSize = Int 1;
config OMAP3530.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.minProgUnitSize = Int 1;
config OMAP3530.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP3530.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP3530.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP3530.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP3530.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP3530.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:02 GMT


module ti.catalog.c6000.OMAP3530

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP3530.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAP3530 ========
    21     *  OMAP3530 device data sheet module
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module OMAP3530 inherits IOMAP3xxx
    27    {
    28
    29    instance:
    30        override config string   cpuCoreRevision = "2.1";
    31    };
    32    /*
    33     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    34     */
    35


module ti.catalog.c6000.OMAP4430

metaonly module ti.catalog.c6000.OMAP4430
index URL

The C64T device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAP4430.xdc
var OMAP4430 = xdc.useModule('ti.catalog.c6000.OMAP4430');
per-instance config parameters
    var params = new OMAP4430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "Shared 256KB SRAM",
                    name: "L2SRAM",
                    base: 0x10900000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP4430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP4430.Params;
// Instance config-params object
    params.cpuCore = String "64T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "L2SRAM",
            {
                comment: "Shared 256KB SRAM",
                name: "L2SRAM",
                base: 0x10900000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP4430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.cpuCore = String "64T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP4430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP4430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.dataWordSize = Int 4;
config OMAP4430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.deviceHeader = String undefined;
config OMAP4430.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config OMAP4430.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "Shared 256KB SRAM",
            name: "L2SRAM",
            base: 0x10900000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP4430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.minDataUnitSize = Int 1;
config OMAP4430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.minProgUnitSize = Int 1;
config OMAP4430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP4430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP4430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP4430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP4430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP4430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:02 GMT


module ti.catalog.c6000.OMAP4430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP4430.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAP4430 ========
    21     *  The C64T device data sheet module.
    22     */
    23    metaonly module OMAP4430 inherits ti.catalog.ICpuDataSheet
    24    {
    25
    26    instance:
    27        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    28
    29        override config int     minProgUnitSize = 1;
    30        override config int     minDataUnitSize = 1;
    31        override config int     dataWordSize    = 4;
    32
    33        override config string   cpuCore         = "64T";
    34        override config string   isa             = "64T";
    35        override config string   cpuCoreRevision = "1.0";
    36
    37        config xdc.platform.IPlatform.Memory memMap[string]  = [
    38
    39            ["L2SRAM", {
    40                comment:    "Shared 256KB SRAM",
    41                name:       "L2SRAM",
    42                base:       0x10900000,
    43                len:        0x00040000,
    44                space:      "code/data",
    45                access:     "RWX"
    46            }],
    47        ];
    48    };
    49    /*
    50     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    51     */
    52


module ti.catalog.c6000.OMAP5430

metaonly module ti.catalog.c6000.OMAP5430
index URL

The C64T device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAP5430.xdc
var OMAP5430 = xdc.useModule('ti.catalog.c6000.OMAP5430');
per-instance config parameters
    var params = new OMAP5430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64T";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "Shared 256KB SRAM",
                    name: "L2SRAM",
                    base: 0x10900000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAP5430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAP5430.Params;
// Instance config-params object
    params.cpuCore = String "64T";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "L2SRAM",
            {
                comment: "Shared 256KB SRAM",
                name: "L2SRAM",
                base: 0x10900000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAP5430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.cpuCore = String "64T";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAP5430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAP5430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.dataWordSize = Int 4;
config OMAP5430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.deviceHeader = String undefined;
config OMAP5430.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config OMAP5430.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "Shared 256KB SRAM",
            name: "L2SRAM",
            base: 0x10900000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAP5430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.minDataUnitSize = Int 1;
config OMAP5430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.minProgUnitSize = Int 1;
config OMAP5430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAP5430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAP5430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAP5430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAP5430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAP5430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:02 GMT


module ti.catalog.c6000.OMAP5430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAP5430.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAP5430 ========
    21     *  The C64T device data sheet module.
    22     */
    23    metaonly module OMAP5430 inherits ti.catalog.ICpuDataSheet
    24    {
    25
    26    instance:
    27        config ti.catalog.peripherals.hdvicp2.HDVICP2.Instance hdvicp0;
    28
    29        override config int     minProgUnitSize = 1;
    30        override config int     minDataUnitSize = 1;
    31        override config int     dataWordSize    = 4;
    32
    33        override config string   cpuCore         = "64T";
    34        override config string   isa             = "64T";
    35        override config string   cpuCoreRevision = "1.0";
    36
    37        config xdc.platform.IPlatform.Memory memMap[string]  = [
    38
    39            ["L2SRAM", {
    40                comment:    "Shared 256KB SRAM",
    41                name:       "L2SRAM",
    42                base:       0x10900000,
    43                len:        0x00040000,
    44                space:      "code/data",
    45                access:     "RWX"
    46            }],
    47        ];
    48    };
    49    /*
    50     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    51     */
    52


module ti.catalog.c6000.OMAPL137

metaonly module ti.catalog.c6000.OMAPL137
index URL

The C64P device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAPL137.xdc
var OMAPL137 = xdc.useModule('ti.catalog.c6000.OMAPL137');
module-wide config parameters
    const OMAPL137.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     OMAPL137.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     OMAPL137.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new OMAPL137.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAPL137.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config OMAPL137.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const OMAPL137.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config OMAPL137.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
OMAPL137.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config OMAPL137.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
OMAPL137.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAPL137.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAPL137.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAPL137.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAPL137.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.dataWordSize = Int 4;
config OMAPL137.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.deviceHeader = String undefined;
config OMAPL137.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAPL137.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.minDataUnitSize = Int 1;
config OMAPL137.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.minProgUnitSize = Int 1;
config OMAPL137.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAPL137.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAPL137.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAPL137.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAPL137.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAPL137.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:02 GMT


module ti.catalog.c6000.OMAPL137

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAPL137.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAPL137 ========
    21     *  The C64P device data sheet module.
    22     */
    23    metaonly module OMAPL137 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.OMAPL138

metaonly module ti.catalog.c6000.OMAPL138
index URL

The C64P device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/OMAPL138.xdc
var OMAPL138 = xdc.useModule('ti.catalog.c6000.OMAPL138');
module-wide config parameters
    const OMAPL138.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     OMAPL138.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     OMAPL138.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new OMAPL138.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = OMAPL138.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config OMAPL138.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const OMAPL138.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config OMAPL138.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
OMAPL138.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config OMAPL138.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
OMAPL138.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OMAPL138.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config OMAPL138.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config OMAPL138.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.cpuCoreRevision = String "1.0";
config OMAPL138.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.dataWordSize = Int 4;
config OMAPL138.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.deviceHeader = String undefined;
config OMAPL138.memMap // instance
index URL
XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config OMAPL138.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.minDataUnitSize = Int 1;
config OMAPL138.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.minProgUnitSize = Int 1;
config OMAPL138.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new OMAPL138.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OMAPL138.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OMAPL138.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
OMAPL138.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
OMAPL138.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:02 GMT


module ti.catalog.c6000.OMAPL138

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== OMAPL138.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== OMAPL138 ========
    21     *  The C64P device data sheet module.
    22     */
    23    metaonly module OMAPL138 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320C2430

metaonly module ti.catalog.c6000.TMS320C2430
index URL

The OMAP2430 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C2430.xdc
var TMS320C2430 = xdc.useModule('ti.catalog.c6000.TMS320C2430');
module-wide config parameters
    const TMS320C2430.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C2430.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C2430.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320C2430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB L2 UMAP0 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C2430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C2430.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C2430.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C2430.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C2430.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C2430.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C2430.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C2430.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C2430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C2430.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C2430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C2430.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C2430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2430.Params;
...
params.dataWordSize = Int 4;
config TMS320C2430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C2430.Params;
...
params.deviceHeader = String undefined;
config TMS320C2430.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C2430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C2430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2430.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C2430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C2430.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C2430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C2430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C2430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C2430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C2430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C2430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:02 GMT


module ti.catalog.c6000.TMS320C2430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C2430.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C2430 ========
    21     *  The OMAP2430 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C2430 inherits IOMAP2x3x
    27    {
    28
    29    instance:
    30        override config string   cpuCoreRevision = "1.0";
    31
    32    };
    33    /*
    34     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    35     */
    36


module ti.catalog.c6000.TMS320C3430

metaonly module ti.catalog.c6000.TMS320C3430
index URL

The C64P device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C3430.xdc
var TMS320C3430 = xdc.useModule('ti.catalog.c6000.TMS320C3430');
module-wide config parameters
    const TMS320C3430.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x107F8000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C3430.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C3430.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320C3430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "2.1";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 96KB L2 UMAP0 memory",
                    name: "IRAM",
                    base: 0x107F8000,
                    len: 0x00018000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C3430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C3430.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C3430.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x107F8000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C3430.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C3430.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C3430.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C3430.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "2.1";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 96KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x107F8000,
                len: 0x00018000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C3430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C3430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.cpuCoreRevision = String "2.1";
config TMS320C3430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.dataWordSize = Int 4;
config TMS320C3430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.deviceHeader = String undefined;
config TMS320C3430.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 96KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x107F8000,
            len: 0x00018000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C3430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C3430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C3430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C3430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C3430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C3430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C3430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C3430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C3430.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C3430 ========
    21     *  The C64P device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C3430 inherits IOMAP3xxx
    27    {
    28
    29    instance:
    30        override config string   cpuCoreRevision = "2.1";
    31    };
    32    /*
    33     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6201

metaonly module ti.catalog.c6000.TMS320C6201
index URL

The C6201 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6201.xdc
var TMS320C6201 = xdc.useModule('ti.catalog.c6000.TMS320C6201');
module-wide config parameters
     TMS320C6201.memBlock// = IPlatform.Memory[string] [
        [
            "IPRAM0",
            {
                comment: "Internal Program memory map 0",
                name: "IPRAM",
                base: 0x1400000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IPRAM1",
            {
                comment: "Internal Program memory map 1",
                name: "IPRAM",
                base: 0x0000000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IDRAM",
            {
                comment: "Internal Data memory",
                name: "IDRAM",
                base: 0x80000000,
                len: 0x00010000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C6201.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6200";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6201.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6201.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C6201.memBlock = IPlatform.Memory[string] [
    [
        "IPRAM0",
        {
            comment: "Internal Program memory map 0",
            name: "IPRAM",
            base: 0x1400000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IPRAM1",
        {
            comment: "Internal Program memory map 1",
            name: "IPRAM",
            base: 0x0000000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IDRAM",
        {
            comment: "Internal Data memory",
            name: "IDRAM",
            base: 0x80000000,
            len: 0x00010000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
// Instance config-params object
    params.cpuCore = String "6200";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6201.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
...
params.cpuCore = String "6200";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6201.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6201.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
...
params.dataWordSize = Int 4;
config TMS320C6201.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
...
params.deviceHeader = String undefined;
config TMS320C6201.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C6201.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6201.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6201.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6201.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6201.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6201.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6201.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6201

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6201.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6201 ========
    21     *  The C6201 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6201 inherits ITMS320C6x0x
    27    {
    28    instance:
    29        override config string   cpuCore        = "6200";
    30        override config string   isa = "62";
    31    };
    32    /*
    33     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6202

metaonly module ti.catalog.c6000.TMS320C6202
index URL

The C6202 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6202.xdc
var TMS320C6202 = xdc.useModule('ti.catalog.c6000.TMS320C6202');
module-wide config parameters
     TMS320C6202.memBlock// = IPlatform.Memory[string] [
        [
            "IPRAM0",
            {
                comment: "Internal Program memory map 0",
                name: "IPRAM",
                base: 0x1400000,
                len: 0x0040000,
                space: "code"
            }
        ],
        [
            "IPRAM1",
            {
                comment: "Internal Program memory map 1",
                name: "IPRAM",
                base: 0x0000000,
                len: 0x0040000,
                space: "code"
            }
        ],
        [
            "IDRAM",
            {
                comment: "Internal Data memory",
                name: "IDRAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C6202.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6200";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6202.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6202.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C6202.memBlock = IPlatform.Memory[string] [
    [
        "IPRAM0",
        {
            comment: "Internal Program memory map 0",
            name: "IPRAM",
            base: 0x1400000,
            len: 0x0040000,
            space: "code"
        }
    ],
    [
        "IPRAM1",
        {
            comment: "Internal Program memory map 1",
            name: "IPRAM",
            base: 0x0000000,
            len: 0x0040000,
            space: "code"
        }
    ],
    [
        "IDRAM",
        {
            comment: "Internal Data memory",
            name: "IDRAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
// Instance config-params object
    params.cpuCore = String "6200";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6202.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
...
params.cpuCore = String "6200";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6202.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6202.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
...
params.dataWordSize = Int 4;
config TMS320C6202.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
...
params.deviceHeader = String undefined;
config TMS320C6202.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C6202.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6202.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6202.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6202.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6202.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6202.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6202.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6202

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6202.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6202 ========
    21     *  The C6202 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6202 inherits ITMS320C6x0x
    27    {
    28        override config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["IPRAM0", {
    30                comment: "Internal Program memory map 0",
    31                name: "IPRAM",
    32                base: 0x1400000,
    33                len:  0x0040000,
    34                space: "code"
    35            }],
    36
    37            ["IPRAM1", {
    38                comment: "Internal Program memory map 1",
    39                name: "IPRAM",
    40                base: 0x0000000,
    41                len:  0x0040000,
    42                space: "code"
    43            }],
    44
    45            ["IDRAM", {
    46                comment: "Internal Data memory",
    47                name: "IDRAM",
    48                base: 0x80000000,
    49                len:  0x00020000,
    50                space: "data"
    51            }],
    52        ];
    53
    54    instance:
    55        override config string   cpuCore        = "6200";
    56        override config string   isa = "62";
    57    };
    58    /*
    59     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    60     */
    61


module ti.catalog.c6000.TMS320C6203

metaonly module ti.catalog.c6000.TMS320C6203
index URL

The C6203 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6203.xdc
var TMS320C6203 = xdc.useModule('ti.catalog.c6000.TMS320C6203');
module-wide config parameters
     TMS320C6203.memBlock// = IPlatform.Memory[string] [
        [
            "IPRAM0",
            {
                comment: "Internal Program memory map 0",
                name: "IPRAM",
                base: 0x1400000,
                len: 0x0060000,
                space: "code"
            }
        ],
        [
            "IPRAM1",
            {
                comment: "Internal Program memory map 1",
                name: "IPRAM",
                base: 0x0000000,
                len: 0x0060000,
                space: "code"
            }
        ],
        [
            "IDRAM",
            {
                comment: "Internal Data memory",
                name: "IDRAM",
                base: 0x80000000,
                len: 0x00080000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C6203.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6200";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6203.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6203.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C6203.memBlock = IPlatform.Memory[string] [
    [
        "IPRAM0",
        {
            comment: "Internal Program memory map 0",
            name: "IPRAM",
            base: 0x1400000,
            len: 0x0060000,
            space: "code"
        }
    ],
    [
        "IPRAM1",
        {
            comment: "Internal Program memory map 1",
            name: "IPRAM",
            base: 0x0000000,
            len: 0x0060000,
            space: "code"
        }
    ],
    [
        "IDRAM",
        {
            comment: "Internal Data memory",
            name: "IDRAM",
            base: 0x80000000,
            len: 0x00080000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
// Instance config-params object
    params.cpuCore = String "6200";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6203.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
...
params.cpuCore = String "6200";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6203.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6203.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
...
params.dataWordSize = Int 4;
config TMS320C6203.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
...
params.deviceHeader = String undefined;
config TMS320C6203.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C6203.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6203.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6203.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6203.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6203.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6203.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6203.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6203

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6203.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6203 ========
    21     *  The C6203 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6203 inherits ITMS320C6x0x
    27    {
    28        override config xdc.platform.IPlatform.Memory memBlock[string]  = [
    29            ["IPRAM0", {
    30                comment: "Internal Program memory map 0",
    31                name: "IPRAM",
    32                base: 0x1400000,
    33                len:  0x0060000,
    34                space: "code"
    35            }],
    36
    37            ["IPRAM1", {
    38                comment: "Internal Program memory map 1",
    39                name: "IPRAM",
    40                base: 0x0000000,
    41                len:  0x0060000,
    42                space: "code"
    43            }],
    44
    45            ["IDRAM", {
    46                comment: "Internal Data memory",
    47                name: "IDRAM",
    48                base: 0x80000000,
    49                len:  0x00080000,
    50                space: "data"
    51            }],
    52        ];
    53
    54    instance:
    55        override config string   cpuCore        = "6200";
    56        override config string   isa = "62";
    57
    58    };
    59    /*
    60     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    61     */
    62


module ti.catalog.c6000.TMS320C6203B

metaonly module ti.catalog.c6000.TMS320C6203B
index URL

The C6203B device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6203B.xdc
var TMS320C6203B = xdc.useModule('ti.catalog.c6000.TMS320C6203B');
module-wide config parameters
     TMS320C6203B.memBlock// = IPlatform.Memory[string] TMS320C6203.memBlock;
per-instance config parameters
    var params = new TMS320C6203B.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6200";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6203B.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6203B.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C6203B.memBlock = IPlatform.Memory[string] TMS320C6203.memBlock;
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
// Instance config-params object
    params.cpuCore = String "6200";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6203B.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
...
params.cpuCore = String "6200";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6203B.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6203B.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
...
params.dataWordSize = Int 4;
config TMS320C6203B.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
...
params.deviceHeader = String undefined;
config TMS320C6203B.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C6203B.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6203B.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6203B.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6203B.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6203B.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6203B.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6203B.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6203B

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6203B.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6203B ========
    21     *  The C6203B device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6203B inherits ITMS320C6x0x
    27    {
    28        override config xdc.platform.IPlatform.Memory memBlock[string] =
    29            TMS320C6203.memBlock;
    30    instance:
    31        override config string   cpuCore        = "6200";
    32        override config string   isa = "62";
    33
    34    };
    35    /*
    36     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    37     */
    38


module ti.catalog.c6000.TMS320C6204

metaonly module ti.catalog.c6000.TMS320C6204
index URL

The C6204 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6204.xdc
var TMS320C6204 = xdc.useModule('ti.catalog.c6000.TMS320C6204');
module-wide config parameters
     TMS320C6204.memBlock// = IPlatform.Memory[string] [
        [
            "IPRAM0",
            {
                comment: "Internal Program memory map 0",
                name: "IPRAM",
                base: 0x1400000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IPRAM1",
            {
                comment: "Internal Program memory map 1",
                name: "IPRAM",
                base: 0x0000000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IDRAM",
            {
                comment: "Internal Data memory",
                name: "IDRAM",
                base: 0x80000000,
                len: 0x00010000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C6204.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6200";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6204.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6204.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C6204.memBlock = IPlatform.Memory[string] [
    [
        "IPRAM0",
        {
            comment: "Internal Program memory map 0",
            name: "IPRAM",
            base: 0x1400000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IPRAM1",
        {
            comment: "Internal Program memory map 1",
            name: "IPRAM",
            base: 0x0000000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IDRAM",
        {
            comment: "Internal Data memory",
            name: "IDRAM",
            base: 0x80000000,
            len: 0x00010000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
// Instance config-params object
    params.cpuCore = String "6200";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6204.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
...
params.cpuCore = String "6200";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6204.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6204.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
...
params.dataWordSize = Int 4;
config TMS320C6204.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
...
params.deviceHeader = String undefined;
config TMS320C6204.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C6204.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6204.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6204.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6204.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6204.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6204.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6204.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6204

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6204.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6204 ========
    21     *  The C6204 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6204 inherits ITMS320C6x0x
    27    {
    28    instance:
    29        override config string   cpuCore        = "6200";
    30        override config string   isa = "62";
    31    };
    32    /*
    33     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6205

metaonly module ti.catalog.c6000.TMS320C6205
index URL

The C6205 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6205.xdc
var TMS320C6205 = xdc.useModule('ti.catalog.c6000.TMS320C6205');
module-wide config parameters
     TMS320C6205.memBlock// = IPlatform.Memory[string] [
        [
            "IPRAM0",
            {
                comment: "Internal Program memory map 0",
                name: "IPRAM",
                base: 0x1400000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IPRAM1",
            {
                comment: "Internal Program memory map 1",
                name: "IPRAM",
                base: 0x0000000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IDRAM",
            {
                comment: "Internal Data memory",
                name: "IDRAM",
                base: 0x80000000,
                len: 0x00010000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C6205.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6200";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6205.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6205.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C6205.memBlock = IPlatform.Memory[string] [
    [
        "IPRAM0",
        {
            comment: "Internal Program memory map 0",
            name: "IPRAM",
            base: 0x1400000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IPRAM1",
        {
            comment: "Internal Program memory map 1",
            name: "IPRAM",
            base: 0x0000000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IDRAM",
        {
            comment: "Internal Data memory",
            name: "IDRAM",
            base: 0x80000000,
            len: 0x00010000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
// Instance config-params object
    params.cpuCore = String "6200";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6205.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
...
params.cpuCore = String "6200";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6205.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6205.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
...
params.dataWordSize = Int 4;
config TMS320C6205.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
...
params.deviceHeader = String undefined;
config TMS320C6205.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C6205.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6205.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6205.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6205.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6205.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6205.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6205.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6205

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6205.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6205 ========
    21     *  The C6205 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6205 inherits ITMS320C6x0x
    27    {
    28    instance:
    29        override config string   cpuCore        = "6200";
    30        override config string   isa = "62";
    31    };
    32    /*
    33     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6211

metaonly module ti.catalog.c6000.TMS320C6211
index URL

The C6211 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6211.xdc
var TMS320C6211 = xdc.useModule('ti.catalog.c6000.TMS320C6211');
module-wide config parameters
    const TMS320C6211.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "SRAM",
                        0x0000
                    ],
                    [
                        "1-way cache",
                        0x4000
                    ],
                    [
                        "2-way cache",
                        0x8000
                    ],
                    [
                        "3-way cache",
                        0xc000
                    ],
                    [
                        "4-way cache",
                        0x10000
                    ]
                ],
                defaultValue: "4-way cache",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6211.cacheSize// = Long[string] [
        [
            "SRAM",
            0x0000
        ],
        [
            "1-way cache",
            0x4000
        ],
        [
            "2-way cache",
            0x8000
        ],
        [
            "3-way cache",
            0xc000
        ],
        [
            "4-way cache",
            0x10000
        ],
        [
            "0k",
            0x0000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ],
        [
            "48k",
            0xc000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6211.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6200";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x10000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6211.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6211.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6211.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "SRAM",
                    0x0000
                ],
                [
                    "1-way cache",
                    0x4000
                ],
                [
                    "2-way cache",
                    0x8000
                ],
                [
                    "3-way cache",
                    0xc000
                ],
                [
                    "4-way cache",
                    0x10000
                ]
            ],
            defaultValue: "4-way cache",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6211.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6211.cacheSize = Long[string] [
    [
        "SRAM",
        0x0000
    ],
    [
        "1-way cache",
        0x4000
    ],
    [
        "2-way cache",
        0x8000
    ],
    [
        "3-way cache",
        0xc000
    ],
    [
        "4-way cache",
        0x10000
    ],
    [
        "0k",
        0x0000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ],
    [
        "48k",
        0xc000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
// Instance config-params object
    params.cpuCore = String "6200";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x10000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6211.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
...
params.cpuCore = String "6200";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6211.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6211.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
...
params.dataWordSize = Int 4;
config TMS320C6211.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
...
params.deviceHeader = String undefined;
config TMS320C6211.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x10000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6211.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6211.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6211.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6211.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6211.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6211.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6211.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6211

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6211.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6211 ========
    21     *  The C6211 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6211 inherits ITMS320C6x1x
    27    {
    28
    29    instance:
    30        override config string   cpuCore        = "6200";
    31        override config string   isa = "62";
    32
    33        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    34            ["IRAM", {
    35                name:       "IRAM",
    36                comment:    "Internal L2 memory",
    37                base:       0x00000,
    38                len:        0x10000,
    39                space:      "code/data",
    40                access:     "RWX"
    41            }],
    42        ];
    43    };
    44    /*
    45     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    46     */
    47


module ti.catalog.c6000.TMS320C6211B

metaonly module ti.catalog.c6000.TMS320C6211B
index URL

The C6211B device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6211B.xdc
var TMS320C6211B = xdc.useModule('ti.catalog.c6000.TMS320C6211B');
module-wide config parameters
    const TMS320C6211B.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "SRAM",
                        0x0000
                    ],
                    [
                        "1-way cache",
                        0x4000
                    ],
                    [
                        "2-way cache",
                        0x8000
                    ],
                    [
                        "3-way cache",
                        0xc000
                    ],
                    [
                        "4-way cache",
                        0x10000
                    ]
                ],
                defaultValue: "4-way cache",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6211B.cacheSize// = Long[string] [
        [
            "SRAM",
            0x0000
        ],
        [
            "1-way cache",
            0x4000
        ],
        [
            "2-way cache",
            0x8000
        ],
        [
            "3-way cache",
            0xc000
        ],
        [
            "4-way cache",
            0x10000
        ],
        [
            "0k",
            0x0000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ],
        [
            "48k",
            0xc000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6211B.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6200";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] TMS320C6211.memMap;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6211B.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6211B.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6211B.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "SRAM",
                    0x0000
                ],
                [
                    "1-way cache",
                    0x4000
                ],
                [
                    "2-way cache",
                    0x8000
                ],
                [
                    "3-way cache",
                    0xc000
                ],
                [
                    "4-way cache",
                    0x10000
                ]
            ],
            defaultValue: "4-way cache",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6211B.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6211B.cacheSize = Long[string] [
    [
        "SRAM",
        0x0000
    ],
    [
        "1-way cache",
        0x4000
    ],
    [
        "2-way cache",
        0x8000
    ],
    [
        "3-way cache",
        0xc000
    ],
    [
        "4-way cache",
        0x10000
    ],
    [
        "0k",
        0x0000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ],
    [
        "48k",
        0xc000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
// Instance config-params object
    params.cpuCore = String "6200";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] TMS320C6211.memMap;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6211B.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
...
params.cpuCore = String "6200";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6211B.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6211B.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
...
params.dataWordSize = Int 4;
config TMS320C6211B.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
...
params.deviceHeader = String undefined;
config TMS320C6211B.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
...
params.memMap = IPlatform.Memory[string] TMS320C6211.memMap;
config TMS320C6211B.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6211B.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6211B.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6211B.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6211B.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6211B.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6211B.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6211B

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6211B.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6211B ========
    21     *  The C6211B device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6211B inherits ITMS320C6x1x
    27    {
    28
    29    instance:
    30        override config string   cpuCore        = "6200";
    31        override config string   isa = "62";
    32
    33        /*!
    34         *  ======== memMap ========
    35         *  The default memory map for this device
    36         */
    37
    38        override config xdc.platform.IPlatform.Memory memMap[string] =
    39            TMS320C6211.memMap;
    40    };
    41    /*
    42     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.catalog.c6000.TMS320C6410

metaonly module ti.catalog.c6000.TMS320C6410
index URL

The 6410 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6410.xdc
var TMS320C6410 = xdc.useModule('ti.catalog.c6000.TMS320C6410');
module-wide config parameters
    const TMS320C6410.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6410.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6410.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x20000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6410.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6410.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6410.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6410.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6410.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6410.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6410.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6410.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
...
params.dataWordSize = Int 4;
config TMS320C6410.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
...
params.deviceHeader = String undefined;
config TMS320C6410.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6410.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6410.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6410.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6410.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6410.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6410.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6410.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6410

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6410.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6410 ========
    21     *  The 6410 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6410 inherits ITMS320C64_128K
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6411

metaonly module ti.catalog.c6000.TMS320C6411
index URL

The 6411 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6411.xdc
var TMS320C6411 = xdc.useModule('ti.catalog.c6000.TMS320C6411');
module-wide config parameters
    const TMS320C6411.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6411.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6411.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6411.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6411.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6411.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6411.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6411.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6411.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6411.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6411.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
...
params.dataWordSize = Int 4;
config TMS320C6411.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
...
params.deviceHeader = String undefined;
config TMS320C6411.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6411.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6411.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6411.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6411.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6411.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6411.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6411.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6411

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6411.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6411 ========
    21     *  The 6411 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6411 inherits ITMS320C64_256K
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6412

metaonly module ti.catalog.c6000.TMS320C6412
index URL

The 6412 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6412.xdc
var TMS320C6412 = xdc.useModule('ti.catalog.c6000.TMS320C6412');
module-wide config parameters
    const TMS320C6412.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6412.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6412.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6412.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6412.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6412.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6412.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6412.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6412.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6412.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6412.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
...
params.dataWordSize = Int 4;
config TMS320C6412.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
...
params.deviceHeader = String undefined;
config TMS320C6412.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6412.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6412.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6412.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6412.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6412.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6412.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6412.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6412

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6412.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6412 ========
    21     *  The 6412 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6412 inherits ITMS320C64_256K
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6413

metaonly module ti.catalog.c6000.TMS320C6413
index URL

The 6413 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6413.xdc
var TMS320C6413 = xdc.useModule('ti.catalog.c6000.TMS320C6413');
module-wide config parameters
    const TMS320C6413.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6413.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6413.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6413.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6413.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6413.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6413.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6413.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6413.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6413.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6413.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
...
params.dataWordSize = Int 4;
config TMS320C6413.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
...
params.deviceHeader = String undefined;
config TMS320C6413.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6413.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6413.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6413.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6413.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6413.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6413.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6413.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:03 GMT


module ti.catalog.c6000.TMS320C6413

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6413.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6413 ========
    21     *  The 6413 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6413 inherits ITMS320C64_256K
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6414

metaonly module ti.catalog.c6000.TMS320C6414
index URL

The C6414 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6414.xdc
var TMS320C6414 = xdc.useModule('ti.catalog.c6000.TMS320C6414');
module-wide config parameters
    const TMS320C6414.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6414.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6414.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x000000,
                    len: 0x100000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6414.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6414.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6414.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6414.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6414.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x000000,
                len: 0x100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6414.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6414.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6414.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
...
params.dataWordSize = Int 4;
config TMS320C6414.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
...
params.deviceHeader = String undefined;
config TMS320C6414.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x000000,
            len: 0x100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6414.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6414.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6414.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6414.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6414.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6414.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6414.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:04 GMT


module ti.catalog.c6000.TMS320C6414

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6414.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6414 ========
    21     *  The C6414 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6414 inherits ITMS320C64_1M
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6415

metaonly module ti.catalog.c6000.TMS320C6415
index URL

The C6415 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6415.xdc
var TMS320C6415 = xdc.useModule('ti.catalog.c6000.TMS320C6415');
module-wide config parameters
    const TMS320C6415.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6415.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6415.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x000000,
                    len: 0x100000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6415.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6415.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6415.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6415.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6415.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x000000,
                len: 0x100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6415.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6415.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6415.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
...
params.dataWordSize = Int 4;
config TMS320C6415.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
...
params.deviceHeader = String undefined;
config TMS320C6415.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x000000,
            len: 0x100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6415.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6415.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6415.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6415.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6415.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6415.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6415.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:04 GMT


module ti.catalog.c6000.TMS320C6415

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6415.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6415 ========
    21     *  The C6415 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6415 inherits ITMS320C64_1M
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6416

metaonly module ti.catalog.c6000.TMS320C6416
index URL

The C6416 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6416.xdc
var TMS320C6416 = xdc.useModule('ti.catalog.c6000.TMS320C6416');
module-wide config parameters
    const TMS320C6416.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6416.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6416.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x000000,
                    len: 0x100000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6416.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6416.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6416.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6416.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6416.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x000000,
                len: 0x100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6416.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6416.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6416.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
...
params.dataWordSize = Int 4;
config TMS320C6416.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
...
params.deviceHeader = String undefined;
config TMS320C6416.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x000000,
            len: 0x100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6416.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6416.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6416.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6416.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6416.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6416.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6416.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:04 GMT


module ti.catalog.c6000.TMS320C6416

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6416.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6416 ========
    21     *  The C6416 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6416 inherits ITMS320C64_1M
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6418

metaonly module ti.catalog.c6000.TMS320C6418
index URL

The C6418 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6418.xdc
var TMS320C6418 = xdc.useModule('ti.catalog.c6000.TMS320C6418');
module-wide config parameters
    const TMS320C6418.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6418.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6418.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x80000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6418.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6418.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6418.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6418.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6418.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x80000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6418.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6418.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6418.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
...
params.dataWordSize = Int 4;
config TMS320C6418.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
...
params.deviceHeader = String undefined;
config TMS320C6418.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x80000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6418.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6418.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6418.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6418.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6418.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6418.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6418.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:04 GMT


module ti.catalog.c6000.TMS320C6418

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6418.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6418 ========
    21     *  The C6418 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6418 inherits ITMS320C64_512K
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6421

metaonly module ti.catalog.c6000.TMS320C6421
index URL

The C6421 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6421.xdc
var TMS320C6421 = xdc.useModule('ti.catalog.c6000.TMS320C6421');
module-wide config parameters
    const TMS320C6421.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E0C000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F0C000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10810000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6421.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x4000
        ]
    ];
     TMS320C6421.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6421.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB L2 RAM/CACHE in UMAP0 memory",
                    name: "IRAM",
                    base: 0x10810000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 16KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E0C000,
                    len: 0x00004000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 48KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F0C000,
                    len: 0x0000C000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6421.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6421.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6421.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E0C000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F0C000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10810000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6421.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6421.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x4000
    ]
];
config TMS320C6421.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6421.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 RAM/CACHE in UMAP0 memory",
                name: "IRAM",
                base: 0x10810000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 16KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x10E0C000,
                len: 0x00004000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 48KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x10F0C000,
                len: 0x0000C000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6421.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6421.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6421.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
...
params.dataWordSize = Int 4;
config TMS320C6421.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
...
params.deviceHeader = String undefined;
config TMS320C6421.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 RAM/CACHE in UMAP0 memory",
            name: "IRAM",
            base: 0x10810000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 16KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x10E0C000,
            len: 0x00004000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 48KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x10F0C000,
            len: 0x0000C000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6421.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6421.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6421.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6421.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6421.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6421.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6421.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:04 GMT


module ti.catalog.c6000.TMS320C6421

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6421.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    /*!
    21     *  ======== TMS320C6421 ========
    22     *  The C6421 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TMS320C6421 inherits ti.catalog.ICpuDataSheet
    28    {
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x4000]
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",   0x00000],
    39            ["32k",  0x08000],
    40            ["64k",  0x10000]
    41        ];
    42
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44                     ['l1PMode',{desc:"L1P Cache",
    45                                 base: 0x10E0C000,
    46                                 map : [["0k",0x0000],
    47                                        ["4k",0x1000],
    48                                        ["8k",0x2000],
    49                                        ["16k",0x4000],
    50                                        ["32k",0x8000]],
    51                                 defaultValue: "32k",
    52                                 memorySection: "L1PSRAM"}],
    53
    54                             ['l1DMode',{desc:"L1D Cache",
    55                                 base: 0x10F0C000,
    56                                 map : [["0k",0x0000],
    57                                        ["4k",0x1000],
    58                                        ["8k",0x2000],
    59                                        ["16k",0x4000],
    60                                        ["32k",0x8000]],
    61                                 defaultValue: "32k",
    62                                 memorySection: "L1DSRAM"}],
    63
    64                 ['l2Mode',{desc:"L2 Cache",
    65                                 base: 0x10810000,
    66                                 map : [["0k",0x0000],
    67                                    ["32k",0x8000],
    68                                    ["64k",0x10000]],
    69                                 defaultValue: "0k",
    70                                 memorySection: "IRAM"}],
    71
    72        ];
    73
    74    instance:
    75
    76        override config string   cpuCore        = "64x+";
    77        override config string   isa = "64P";
    78        override config string   cpuCoreRevision = "1.0";
    79
    80        override config int     minProgUnitSize = 1;
    81        override config int     minDataUnitSize = 1;
    82        override config int     dataWordSize    = 4;
    83
    84        /*!
    85         *  ======== memMap ========
    86         *  The default memory map for this device
    87         */
    88        config xdc.platform.IPlatform.Memory memMap[string]  = [
    89            ["IRAM", {
    90                comment:    "Internal 64KB L2 RAM/CACHE in UMAP0 memory",
    91                name:       "IRAM",
    92                base:       0x10810000,
    93                len:        0x00010000,
    94                space:      "code/data",
    95                access:     "RWX"
    96            }],
    97
    98            ["L1PSRAM", {
    99                comment:    "Internal 16KB RAM/CACHE L1 program memory",
   100                name:       "L1PSRAM",
   101                base:       0x10E0C000,
   102                len:        0x00004000,
   103                space:      "code",
   104                access:     "RWX"
   105            }],
   106
   107            ["L1DSRAM", {
   108                comment:    "Internal 48KB RAM/CACHE L1 data memory",
   109                name:       "L1DSRAM",
   110                base:       0x10F0C000,
   111                len:        0x0000C000,
   112                space:      "data",
   113                access:     "RW"
   114            }],
   115        ];
   116    };
   117    /*
   118     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   119     */
   120


module ti.catalog.c6000.TMS320C6424

metaonly module ti.catalog.c6000.TMS320C6424
index URL

The C6424 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6424.xdc
var TMS320C6424 = xdc.useModule('ti.catalog.c6000.TMS320C6424');
module-wide config parameters
    const TMS320C6424.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6424.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6424.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6424.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 128KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6424.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6424.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6424.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6424.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6424.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6424.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6424.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x10E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6424.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6424.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6424.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
...
params.dataWordSize = Int 4;
config TMS320C6424.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
...
params.deviceHeader = String undefined;
config TMS320C6424.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x10E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6424.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6424.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6424.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6424.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6424.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6424.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6424.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:04 GMT


module ti.catalog.c6000.TMS320C6424

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6424.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6424 ========
    21     *  The C6424 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6424 inherits ITMS320C642x
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6428

metaonly module ti.catalog.c6000.TMS320C6428
index URL

The 6428 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6428.xdc
var TMS320C6428 = xdc.useModule('ti.catalog.c6000.TMS320C6428');
module-wide config parameters
    const TMS320C6428.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0xA00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6428.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6428.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6428.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 512KB L2 RAM/CACHE",
                    name: "IRAM",
                    base: 0xA00000,
                    len: 0x080000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6428.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6428.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6428.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0xA00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6428.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6428.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6428.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6428.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 512KB L2 RAM/CACHE",
                name: "IRAM",
                base: 0xA00000,
                len: 0x080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6428.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6428.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6428.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
...
params.dataWordSize = Int 4;
config TMS320C6428.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
...
params.deviceHeader = String undefined;
config TMS320C6428.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 512KB L2 RAM/CACHE",
            name: "IRAM",
            base: 0xA00000,
            len: 0x080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6428.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6428.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6428.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6428.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6428.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6428.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6428.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:04 GMT


module ti.catalog.c6000.TMS320C6428

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6428.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6428 ========
    21     *  The 6428 device data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6428 inherits ITMS320C6452
    27    {
    28
    29    instance:
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        override config xdc.platform.IPlatform.Memory memMap[string] = [
    36            ["IRAM", {
    37                comment:    "Internal 512KB L2 RAM/CACHE",
    38                name:       "IRAM",
    39                base:       0xA00000,
    40                len:        0x080000,
    41                space:      "code/data",
    42                access:     "RWX"
    43            }],
    44
    45            ["L1PSRAM", {
    46                comment:    "Internal 32KB RAM/CACHE L1 program memory",
    47                name:       "L1PSRAM",
    48                base:       0xE00000,
    49                len:        0x008000,
    50                space:      "code",
    51                access:     "RWX"
    52            }],
    53
    54            ["L1DSRAM", {
    55                comment:    "Internal 32KB RAM/CACHE L1 data memory",
    56                name:       "L1DSRAM",
    57                base:       0xF00000,
    58                len:        0x008000,
    59                space:      "data",
    60                access:     "RW"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c6000.TMS320C6452

metaonly module ti.catalog.c6000.TMS320C6452
index URL

The 6452 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6452.xdc
var TMS320C6452 = xdc.useModule('ti.catalog.c6000.TMS320C6452');
module-wide config parameters
    const TMS320C6452.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0xA00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6452.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6452.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6452.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 1408KB L2 RAM/CACHE",
                    name: "IRAM",
                    base: 0xA00000,
                    len: 0x160000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6452.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6452.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6452.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0xA00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6452.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6452.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6452.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6452.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 1408KB L2 RAM/CACHE",
                name: "IRAM",
                base: 0xA00000,
                len: 0x160000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6452.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6452.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6452.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
...
params.dataWordSize = Int 4;
config TMS320C6452.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
...
params.deviceHeader = String undefined;
config TMS320C6452.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 1408KB L2 RAM/CACHE",
            name: "IRAM",
            base: 0xA00000,
            len: 0x160000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6452.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6452.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6452.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6452.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6452.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6452.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6452.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:04 GMT


module ti.catalog.c6000.TMS320C6452

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6452.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6452 ========
    21     *  The 6452 device data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6452 inherits ITMS320C6452
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6454

metaonly module ti.catalog.c6000.TMS320C6454
index URL

The 6454 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6454.xdc
var TMS320C6454 = xdc.useModule('ti.catalog.c6000.TMS320C6454');
module-wide config parameters
    const TMS320C6454.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6454.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6454.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6454.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 1MB UMAP0 memory",
                    name: "IRAM",
                    base: 0x800000,
                    len: 0x100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6454.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6454.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6454.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6454.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6454.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6454.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6454.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 1MB UMAP0 memory",
                name: "IRAM",
                base: 0x800000,
                len: 0x100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6454.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6454.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6454.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
...
params.dataWordSize = Int 4;
config TMS320C6454.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
...
params.deviceHeader = String undefined;
config TMS320C6454.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 1MB UMAP0 memory",
            name: "IRAM",
            base: 0x800000,
            len: 0x100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6454.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6454.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6454.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6454.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6454.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6454.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6454.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:05 GMT


module ti.catalog.c6000.TMS320C6454

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6454.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320C6454 ========
    20     *  The 6454 device data sheet module.
    21     *
    22     *  This module implements the ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C6454 inherits ti.catalog.ICpuDataSheet
    26    {
    27        config long cacheSizeL1[string] = [
    28            ["0k",  0x0000],
    29            ["4k",  0x1000],
    30            ["8k",  0x2000],
    31            ["16k", 0x4000],
    32            ["32k", 0x8000],
    33        ];
    34
    35        config long cacheSizeL2[string] = [
    36            ["0k",   0x00000],
    37            ["32k",  0x08000],
    38            ["64k",  0x10000],
    39            ["128k", 0x20000],
    40            ["256k", 0x40000]
    41        ];
    42
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44             ['l1PMode',{desc:"L1P Cache",
    45                         base: 0xE00000,
    46                         map : [["0k",0x0000],
    47                                ["4k",0x1000],
    48                                ["8k",0x2000],
    49                                ["16k",0x4000],
    50                                ["32k",0x8000]],
    51                         defaultValue: "32k",
    52                         memorySection: "L1PSRAM"}],
    53
    54                     ['l1DMode',{desc:"L1D Cache",
    55                         base: 0xF00000,
    56                         map : [["0k",0x0000],
    57                                ["4k",0x1000],
    58                                ["8k",0x2000],
    59                                ["16k",0x4000],
    60                                ["32k",0x8000]],
    61                         defaultValue: "32k",
    62                         memorySection: "L1DSRAM"}],
    63
    64             ['l2Mode',{desc:"L2 Cache",
    65                         base: 0x800000,
    66                         map : [["0k",0x0000],
    67                                ["32k",0x8000],
    68                                ["64k",0x10000],
    69                                ["128k",0x20000],
    70                                ["256k",0x40000]],
    71                         defaultValue: "0k",
    72                         memorySection: "IRAM"}],
    73        ];
    74
    75    instance:
    76
    77        override config string   cpuCore        = "64x+";
    78        override config string   isa = "64P";
    79        override config string   cpuCoreRevision = "1.0";
    80
    81        override config int     minProgUnitSize = 1;
    82        override config int     minDataUnitSize = 1;
    83        override config int     dataWordSize    = 4;
    84
    85        /*!
    86         *  ======== memMap ========
    87         *  The default memory map for this device
    88         */
    89        config xdc.platform.IPlatform.Memory memMap[string]  = [
    90            ["IRAM", {
    91                comment:    "Internal 1MB UMAP0 memory",
    92                name:       "IRAM",
    93                base:       0x800000,
    94                len:        0x100000,
    95                space:      "code/data",
    96                access:     "RWX"
    97            }],
    98
    99            ["L1PSRAM", {
   100                comment:    "Internal 32KB RAM/CACHE L1 program memory",
   101                name:       "L1PSRAM",
   102                base:       0xE00000,
   103                len:        0x008000,
   104                space:      "code",
   105                access:     "RWX"
   106            }],
   107
   108            ["L1DSRAM", {
   109                comment:    "Internal 32KB RAM/CACHE L1 data memory",
   110                name:       "L1DSRAM",
   111                base:       0xF00000,
   112                len:        0x008000,
   113                space:      "data",
   114                access:     "RW"
   115            }],
   116
   117        ];
   118    };
   119    /*
   120     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   121     */
   122


module ti.catalog.c6000.TMS320C6455

metaonly module ti.catalog.c6000.TMS320C6455
index URL

The 6455 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6455.xdc
var TMS320C6455 = xdc.useModule('ti.catalog.c6000.TMS320C6455');
module-wide config parameters
    const TMS320C6455.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6455.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6455.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6455.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 2MB UMAP0 memory",
                    name: "IRAM",
                    base: 0x800000,
                    len: 0x200000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6455.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6455.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6455.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6455.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6455.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6455.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6455.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 2MB UMAP0 memory",
                name: "IRAM",
                base: 0x800000,
                len: 0x200000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6455.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6455.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6455.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
...
params.dataWordSize = Int 4;
config TMS320C6455.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
...
params.deviceHeader = String undefined;
config TMS320C6455.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 2MB UMAP0 memory",
            name: "IRAM",
            base: 0x800000,
            len: 0x200000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6455.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6455.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6455.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6455.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6455.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6455.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6455.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:05 GMT


module ti.catalog.c6000.TMS320C6455

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6455.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6455 ========
    21     *  The 6455 device data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6455 inherits IHimalaya
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6457

metaonly module ti.catalog.c6000.TMS320C6457
index URL

The 6457 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6457.xdc
var TMS320C6457 = xdc.useModule('ti.catalog.c6000.TMS320C6457');
module-wide config parameters
    const TMS320C6457.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6457.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6457.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6457.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 2MB L2 memory",
                    name: "IRAM",
                    base: 0x800000,
                    len: 0x200000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6457.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6457.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6457.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6457.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6457.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6457.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6457.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 2MB L2 memory",
                name: "IRAM",
                base: 0x800000,
                len: 0x200000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6457.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6457.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6457.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
...
params.dataWordSize = Int 4;
config TMS320C6457.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
...
params.deviceHeader = String undefined;
config TMS320C6457.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 2MB L2 memory",
            name: "IRAM",
            base: 0x800000,
            len: 0x200000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6457.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6457.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6457.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6457.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6457.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6457.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6457.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:05 GMT


module ti.catalog.c6000.TMS320C6457

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6457.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320C6457 ========
    20     *  The 6457 device data sheet module.
    21     *
    22     *  This module implements the ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C6457 inherits ITMS320CTCI6484
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320C6472

metaonly module ti.catalog.c6000.TMS320C6472
index URL

The 6472 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6472.xdc
var TMS320C6472 = xdc.useModule('ti.catalog.c6000.TMS320C6472');
module-wide config parameters
    const TMS320C6472.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "LL2RAM"
            }
        ]
    ];
     TMS320C6472.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6472.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6472.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "LL2RAM",
                {
                    comment: "608K Local L2 RAM/CACHE memory",
                    name: "LL2RAM",
                    base: 0x00800000,
                    len: 0x00098000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "SL2RAM",
                {
                    comment: "768K Shared L2 RAM memory",
                    name: "SL2RAM",
                    base: 0x00200000,
                    len: 0x000C0000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6472.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6472.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6472.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "LL2RAM"
        }
    ]
];
config TMS320C6472.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6472.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6472.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6472.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "LL2RAM",
            {
                comment: "608K Local L2 RAM/CACHE memory",
                name: "LL2RAM",
                base: 0x00800000,
                len: 0x00098000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "SL2RAM",
            {
                comment: "768K Shared L2 RAM memory",
                name: "SL2RAM",
                base: 0x00200000,
                len: 0x000C0000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6472.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6472.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6472.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
...
params.dataWordSize = Int 4;
config TMS320C6472.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
...
params.deviceHeader = String undefined;
config TMS320C6472.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "LL2RAM",
        {
            comment: "608K Local L2 RAM/CACHE memory",
            name: "LL2RAM",
            base: 0x00800000,
            len: 0x00098000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "SL2RAM",
        {
            comment: "768K Shared L2 RAM memory",
            name: "SL2RAM",
            base: 0x00200000,
            len: 0x000C0000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6472.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6472.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6472.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6472.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6472.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6472.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6472.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:05 GMT


module ti.catalog.c6000.TMS320C6472

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6472.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320C6472 ========
    20     *  The 6472 device data sheet module.
    21     *
    22     */
    23    metaonly module TMS320C6472 inherits ITMS320CTCI6486
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320C6474

metaonly module ti.catalog.c6000.TMS320C6474
index URL

The 6474 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6474.xdc
var TMS320C6474 = xdc.useModule('ti.catalog.c6000.TMS320C6474');
module-wide config parameters
    const TMS320C6474.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2RAM"
            }
        ]
    ];
     TMS320C6474.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6474.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
     TMS320C6474.memBlock// = IPlatform.Memory[string] [
        [
            "ASYMGEM0L2RAM",
            {
                comment: "1536K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00180000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM1L2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM2L2RAM",
            {
                comment: "512K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SYMGEML2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C6474.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6474.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6474.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6474.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2RAM"
        }
    ]
];
config TMS320C6474.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6474.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6474.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6474.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config TMS320C6474.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C6474.memBlock = IPlatform.Memory[string] [
    [
        "ASYMGEM0L2RAM",
        {
            comment: "1536K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00180000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM1L2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM2L2RAM",
        {
            comment: "512K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SYMGEML2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6474.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6474.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6474.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
...
params.dataWordSize = Int 4;
config TMS320C6474.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
...
params.deviceHeader = String undefined;
config TMS320C6474.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6474.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6474.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6474.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6474.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6474.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6474.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6474.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:05 GMT


module ti.catalog.c6000.TMS320C6474

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6474.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320C6474 ========
    20     *  The 6474 device data sheet module.
    21     *
    22     *  This module implements the ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320C6474 inherits ITMS320CTCI648x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320C6654

metaonly module ti.catalog.c6000.TMS320C6654
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6654.xdc
var TMS320C6654 = xdc.useModule('ti.catalog.c6000.TMS320C6654');
module-wide config parameters
    const TMS320C6654.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320C6654.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6654.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6654.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6654.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6654.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6654.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320C6654.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6654.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6654.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6654.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6654.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6654.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6654.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
...
params.dataWordSize = Int 4;
config TMS320C6654.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
...
params.deviceHeader = String undefined;
config TMS320C6654.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6654.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6654.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6654.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6654.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6654.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6654.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6654.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:05 GMT


module ti.catalog.c6000.TMS320C6654

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6654.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    metaonly module TMS320C6654 inherits ti.catalog.ICpuDataSheet
    21    {
    22        config long cacheSizeL1[string] = [
    23            ["0k",  0x0000],
    24            ["4k",  0x1000],
    25            ["8k",  0x2000],
    26            ["16k", 0x4000],
    27            ["32k", 0x8000],
    28        ];
    29
    30        config long cacheSizeL2[string] = [
    31            ["0k",    0x000000],
    32            ["32k",   0x008000],
    33            ["64k",   0x010000],
    34            ["128k",  0x020000],
    35            ["256k",  0x040000],
    36            ["512k",  0x080000],
    37            ["1024k", 0x100000]
    38        ];
    39
    40        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    41            ['l1PMode', {
    42                desc:"L1P Cache",
    43                base: 0x00E00000,
    44                map : [
    45                    ["0k",0x0000],
    46                    ["4k",0x1000],
    47                    ["8k",0x2000],
    48                    ["16k",0x4000],
    49                    ["32k",0x8000]
    50                ],
    51                defaultValue: "32k",
    52                memorySection: "L1PSRAM"
    53            }],
    54            ['l1DMode', {
    55                desc:"L1D Cache",
    56                base: 0x00F00000,
    57                map : [
    58                    ["0k",0x0000],
    59                    ["4k",0x1000],
    60                    ["8k",0x2000],
    61                    ["16k",0x4000],
    62                    ["32k",0x8000]
    63                ],
    64                defaultValue: "32k",
    65                memorySection: "L1DSRAM"
    66            }],
    67            ['l2Mode', {
    68                desc:"L2 Cache",
    69                base: 0x00800000,
    70                map : [
    71                    ["0k",0x0000],
    72                    ["32k",0x8000],
    73                    ["64k",0x10000],
    74                    ["128k",0x020000],
    75                    ["256k",0x040000],
    76                    ["512k",0x080000],
    77                    ["1024k", 0x100000]
    78                ],
    79                defaultValue: "0k",
    80                memorySection: "L2SRAM"
    81            }],
    82        ];
    83
    84    instance:
    85
    86        override config string   cpuCore        = "6600";
    87        override config string   isa = "66";
    88        override config string   cpuCoreRevision = "1.0";
    89
    90        override config int     minProgUnitSize = 1;
    91        override config int     minDataUnitSize = 1;
    92        override config int     dataWordSize    = 4;
    93
    94        /*!
    95         *  ======== memMap ========
    96         *  The default memory map for this device
    97         */
    98        config xdc.platform.IPlatform.Memory memMap[string]  = [
    99            ["L2SRAM", {
   100                comment:    "1MB L2 SRAM/CACHE",
   101                name:       "L2SRAM",
   102                base:       0x00800000,
   103                len:        0x00100000,
   104                space:      "code/data",
   105                access:     "RWX"
   106            }],
   107
   108            ["L1PSRAM", {
   109                comment:    "32KB RAM/CACHE L1 program memory",
   110                name:       "L1PSRAM",
   111                base:       0x00E00000,
   112                len:        0x00008000,
   113                space:      "code",
   114                access:     "RWX"
   115            }],
   116
   117            ["L1DSRAM", {
   118                comment:    "32KB RAM/CACHE L1 data memory",
   119                name:       "L1DSRAM",
   120                base:       0x00F00000,
   121                len:        0x00008000,
   122                space:      "data",
   123                access:     "RW"
   124            }],
   125        ];
   126    };
   127    /*
   128     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
   129     */
   130


module ti.catalog.c6000.TMS320C6655

metaonly module ti.catalog.c6000.TMS320C6655
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6655.xdc
var TMS320C6655 = xdc.useModule('ti.catalog.c6000.TMS320C6655');
module-wide config parameters
    const TMS320C6655.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320C6655.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6655.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6655.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "1MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6655.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6655.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6655.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320C6655.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6655.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6655.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6655.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "1MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6655.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6655.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6655.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
...
params.dataWordSize = Int 4;
config TMS320C6655.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
...
params.deviceHeader = String undefined;
config TMS320C6655.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "1MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6655.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6655.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6655.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6655.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6655.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6655.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6655.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:05 GMT


module ti.catalog.c6000.TMS320C6655

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6655.xdc ========
    15     */
    16
    17    metaonly module TMS320C6655 inherits ITMS320C6655
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6657

metaonly module ti.catalog.c6000.TMS320C6657
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6657.xdc
var TMS320C6657 = xdc.useModule('ti.catalog.c6000.TMS320C6657');
module-wide config parameters
    const TMS320C6657.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320C6657.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6657.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6657.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "1MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6657.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6657.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6657.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320C6657.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6657.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6657.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6657.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "1MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6657.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6657.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6657.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
...
params.dataWordSize = Int 4;
config TMS320C6657.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
...
params.deviceHeader = String undefined;
config TMS320C6657.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "1MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6657.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6657.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6657.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6657.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6657.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6657.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6657.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:06 GMT


module ti.catalog.c6000.TMS320C6657

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6657.xdc ========
    15     */
    16
    17    metaonly module TMS320C6657 inherits ITMS320C6655
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6670

metaonly module ti.catalog.c6000.TMS320C6670
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6670.xdc
var TMS320C6670 = xdc.useModule('ti.catalog.c6000.TMS320C6670');
module-wide config parameters
    const TMS320C6670.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320C6670.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6670.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6670.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "2MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00200000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6670.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6670.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6670.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320C6670.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6670.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6670.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6670.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "2MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00200000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6670.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6670.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6670.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
...
params.dataWordSize = Int 4;
config TMS320C6670.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
...
params.deviceHeader = String undefined;
config TMS320C6670.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "2MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00200000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6670.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6670.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6670.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6670.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6670.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6670.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6670.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:06 GMT


module ti.catalog.c6000.TMS320C6670

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6670.xdc ========
    15     */
    16
    17    metaonly module TMS320C6670 inherits ITMS320TCI6616
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6671

metaonly module ti.catalog.c6000.TMS320C6671
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6671.xdc
var TMS320C6671 = xdc.useModule('ti.catalog.c6000.TMS320C6671');
module-wide config parameters
    const TMS320C6671.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320C6671.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6671.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6671.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "512KB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00080000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "4MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00400000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6671.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6671.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6671.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320C6671.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6671.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6671.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6671.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "512KB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "4MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00400000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6671.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6671.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6671.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
...
params.dataWordSize = Int 4;
config TMS320C6671.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
...
params.deviceHeader = String undefined;
config TMS320C6671.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "512KB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "4MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00400000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6671.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6671.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6671.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6671.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6671.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6671.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6671.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:06 GMT


module ti.catalog.c6000.TMS320C6671

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6671.xdc ========
    15     */
    16
    17    metaonly module TMS320C6671 inherits ITMS320TCI6608
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6672

metaonly module ti.catalog.c6000.TMS320C6672
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6672.xdc
var TMS320C6672 = xdc.useModule('ti.catalog.c6000.TMS320C6672');
module-wide config parameters
    const TMS320C6672.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320C6672.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6672.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6672.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "512KB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00080000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "4MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00400000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6672.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6672.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6672.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320C6672.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6672.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6672.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6672.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "512KB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "4MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00400000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6672.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6672.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6672.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
...
params.dataWordSize = Int 4;
config TMS320C6672.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
...
params.deviceHeader = String undefined;
config TMS320C6672.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "512KB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "4MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00400000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6672.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6672.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6672.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6672.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6672.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6672.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6672.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:06 GMT


module ti.catalog.c6000.TMS320C6672

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6672.xdc ========
    15     */
    16
    17    metaonly module TMS320C6672 inherits ITMS320TCI6608
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6674

metaonly module ti.catalog.c6000.TMS320C6674
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6674.xdc
var TMS320C6674 = xdc.useModule('ti.catalog.c6000.TMS320C6674');
module-wide config parameters
    const TMS320C6674.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320C6674.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6674.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6674.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "512KB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00080000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "4MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00400000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6674.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6674.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6674.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320C6674.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6674.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6674.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6674.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "512KB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "4MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00400000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6674.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6674.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6674.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
...
params.dataWordSize = Int 4;
config TMS320C6674.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
...
params.deviceHeader = String undefined;
config TMS320C6674.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "512KB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "4MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00400000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6674.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6674.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6674.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6674.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6674.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6674.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6674.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:06 GMT


module ti.catalog.c6000.TMS320C6674

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6674.xdc ========
    15     */
    16
    17    metaonly module TMS320C6674 inherits ITMS320TCI6608
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6678

metaonly module ti.catalog.c6000.TMS320C6678
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6678.xdc
var TMS320C6678 = xdc.useModule('ti.catalog.c6000.TMS320C6678');
module-wide config parameters
    const TMS320C6678.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320C6678.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6678.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6678.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "512KB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00080000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "4MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00400000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6678.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6678.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6678.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320C6678.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6678.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6678.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6678.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "512KB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "4MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00400000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6678.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6678.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6678.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
...
params.dataWordSize = Int 4;
config TMS320C6678.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
...
params.deviceHeader = String undefined;
config TMS320C6678.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "512KB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "4MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00400000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6678.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6678.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6678.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6678.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6678.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6678.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6678.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:06 GMT


module ti.catalog.c6000.TMS320C6678

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6678.xdc ========
    15     */
    16
    17    metaonly module TMS320C6678 inherits ITMS320TCI6608
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6701

metaonly module ti.catalog.c6000.TMS320C6701
index URL

The C6701 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6701.xdc
var TMS320C6701 = xdc.useModule('ti.catalog.c6000.TMS320C6701');
module-wide config parameters
     TMS320C6701.memBlock// = IPlatform.Memory[string] [
        [
            "IPRAM0",
            {
                comment: "Internal Program memory map 0",
                name: "IPRAM",
                base: 0x1400000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IPRAM1",
            {
                comment: "Internal Program memory map 1",
                name: "IPRAM",
                base: 0x0000000,
                len: 0x0010000,
                space: "code"
            }
        ],
        [
            "IDRAM",
            {
                comment: "Internal Data memory",
                name: "IDRAM",
                base: 0x80000000,
                len: 0x00010000,
                space: "data"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320C6701.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6700";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6701.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6701.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320C6701.memBlock = IPlatform.Memory[string] [
    [
        "IPRAM0",
        {
            comment: "Internal Program memory map 0",
            name: "IPRAM",
            base: 0x1400000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IPRAM1",
        {
            comment: "Internal Program memory map 1",
            name: "IPRAM",
            base: 0x0000000,
            len: 0x0010000,
            space: "code"
        }
    ],
    [
        "IDRAM",
        {
            comment: "Internal Data memory",
            name: "IDRAM",
            base: 0x80000000,
            len: 0x00010000,
            space: "data"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
// Instance config-params object
    params.cpuCore = String "6700";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] undefined;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6701.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
...
params.cpuCore = String "6700";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6701.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6701.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
...
params.dataWordSize = Int 4;
config TMS320C6701.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
...
params.deviceHeader = String undefined;
config TMS320C6701.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
...
params.memMap = IPlatform.Memory[string] undefined;
config TMS320C6701.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6701.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6701.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6701.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6701.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6701.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6701.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:06 GMT


module ti.catalog.c6000.TMS320C6701

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6701.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6701 ========
    21     *  The C6701 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6701 inherits ITMS320C6x0x
    27    {
    28    instance:
    29        override config string   cpuCore        = "6700";
    30        override config string   isa = "67";
    31    };
    32    /*
    33     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6711

metaonly module ti.catalog.c6000.TMS320C6711
index URL

The C6711B device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6711.xdc
var TMS320C6711 = xdc.useModule('ti.catalog.c6000.TMS320C6711');
module-wide config parameters
    const TMS320C6711.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "SRAM",
                        0x0000
                    ],
                    [
                        "1-way cache",
                        0x4000
                    ],
                    [
                        "2-way cache",
                        0x8000
                    ],
                    [
                        "3-way cache",
                        0xc000
                    ],
                    [
                        "4-way cache",
                        0x10000
                    ]
                ],
                defaultValue: "4-way cache",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6711.cacheSize// = Long[string] [
        [
            "SRAM",
            0x0000
        ],
        [
            "1-way cache",
            0x4000
        ],
        [
            "2-way cache",
            0x8000
        ],
        [
            "3-way cache",
            0xc000
        ],
        [
            "4-way cache",
            0x10000
        ],
        [
            "0k",
            0x0000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ],
        [
            "48k",
            0xc000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6711.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6700";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] TMS320C6211.memMap;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6711.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6711.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6711.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "SRAM",
                    0x0000
                ],
                [
                    "1-way cache",
                    0x4000
                ],
                [
                    "2-way cache",
                    0x8000
                ],
                [
                    "3-way cache",
                    0xc000
                ],
                [
                    "4-way cache",
                    0x10000
                ]
            ],
            defaultValue: "4-way cache",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6711.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6711.cacheSize = Long[string] [
    [
        "SRAM",
        0x0000
    ],
    [
        "1-way cache",
        0x4000
    ],
    [
        "2-way cache",
        0x8000
    ],
    [
        "3-way cache",
        0xc000
    ],
    [
        "4-way cache",
        0x10000
    ],
    [
        "0k",
        0x0000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ],
    [
        "48k",
        0xc000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
// Instance config-params object
    params.cpuCore = String "6700";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] TMS320C6211.memMap;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6711.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
...
params.cpuCore = String "6700";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6711.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6711.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
...
params.dataWordSize = Int 4;
config TMS320C6711.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
...
params.deviceHeader = String undefined;
config TMS320C6711.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
...
params.memMap = IPlatform.Memory[string] TMS320C6211.memMap;
config TMS320C6711.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6711.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6711.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6711.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6711.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6711.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6711.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:06 GMT


module ti.catalog.c6000.TMS320C6711

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6711.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6711 ========
    21     *  The C6711B device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6711 inherits ITMS320C6x1x
    27    {
    28
    29    instance:
    30        override config string   cpuCore        = "6700";
    31        override config string   isa = "67";
    32
    33        /*!
    34         *  ======== memMap ========
    35         *  The default memory map for this device
    36         */
    37
    38        override config xdc.platform.IPlatform.Memory memMap[string] = TMS320C6211.memMap;
    39    };
    40    /*
    41     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    42     */
    43


module ti.catalog.c6000.TMS320C6711B

metaonly module ti.catalog.c6000.TMS320C6711B
index URL

The C6711B device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6711B.xdc
var TMS320C6711B = xdc.useModule('ti.catalog.c6000.TMS320C6711B');
module-wide config parameters
    const TMS320C6711B.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "SRAM",
                        0x0000
                    ],
                    [
                        "1-way cache",
                        0x4000
                    ],
                    [
                        "2-way cache",
                        0x8000
                    ],
                    [
                        "3-way cache",
                        0xc000
                    ],
                    [
                        "4-way cache",
                        0x10000
                    ]
                ],
                defaultValue: "4-way cache",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6711B.cacheSize// = Long[string] [
        [
            "SRAM",
            0x0000
        ],
        [
            "1-way cache",
            0x4000
        ],
        [
            "2-way cache",
            0x8000
        ],
        [
            "3-way cache",
            0xc000
        ],
        [
            "4-way cache",
            0x10000
        ],
        [
            "0k",
            0x0000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ],
        [
            "48k",
            0xc000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6711B.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6700";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] TMS320C6211.memMap;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6711B.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6711B.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6711B.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "SRAM",
                    0x0000
                ],
                [
                    "1-way cache",
                    0x4000
                ],
                [
                    "2-way cache",
                    0x8000
                ],
                [
                    "3-way cache",
                    0xc000
                ],
                [
                    "4-way cache",
                    0x10000
                ]
            ],
            defaultValue: "4-way cache",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6711B.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6711B.cacheSize = Long[string] [
    [
        "SRAM",
        0x0000
    ],
    [
        "1-way cache",
        0x4000
    ],
    [
        "2-way cache",
        0x8000
    ],
    [
        "3-way cache",
        0xc000
    ],
    [
        "4-way cache",
        0x10000
    ],
    [
        "0k",
        0x0000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ],
    [
        "48k",
        0xc000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
// Instance config-params object
    params.cpuCore = String "6700";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] TMS320C6211.memMap;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6711B.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
...
params.cpuCore = String "6700";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6711B.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6711B.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
...
params.dataWordSize = Int 4;
config TMS320C6711B.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
...
params.deviceHeader = String undefined;
config TMS320C6711B.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
...
params.memMap = IPlatform.Memory[string] TMS320C6211.memMap;
config TMS320C6711B.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6711B.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6711B.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6711B.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6711B.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6711B.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6711B.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6711B

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C67111B.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6711B ========
    21     *  The C6711B device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6711B inherits ITMS320C6x1x
    27    {
    28
    29    instance:
    30        override config string   cpuCore        = "6700";
    31        override config string   isa = "67";
    32        /*!
    33         *  ======== memMap ========
    34         *  The default memory map for this device
    35         */
    36
    37        override config xdc.platform.IPlatform.Memory memMap[string] =
    38            TMS320C6211.memMap;
    39    };
    40    /*
    41     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    42     */
    43


module ti.catalog.c6000.TMS320C6712

metaonly module ti.catalog.c6000.TMS320C6712
index URL

The C6712 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6712.xdc
var TMS320C6712 = xdc.useModule('ti.catalog.c6000.TMS320C6712');
module-wide config parameters
    const TMS320C6712.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "SRAM",
                        0x0000
                    ],
                    [
                        "1-way cache",
                        0x4000
                    ],
                    [
                        "2-way cache",
                        0x8000
                    ],
                    [
                        "3-way cache",
                        0xc000
                    ],
                    [
                        "4-way cache",
                        0x10000
                    ]
                ],
                defaultValue: "4-way cache",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6712.cacheSize// = Long[string] [
        [
            "SRAM",
            0x0000
        ],
        [
            "1-way cache",
            0x4000
        ],
        [
            "2-way cache",
            0x8000
        ],
        [
            "3-way cache",
            0xc000
        ],
        [
            "4-way cache",
            0x10000
        ],
        [
            "0k",
            0x0000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ],
        [
            "48k",
            0xc000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6712.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6700";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] TMS320C6211.memMap;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6712.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6712.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6712.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "SRAM",
                    0x0000
                ],
                [
                    "1-way cache",
                    0x4000
                ],
                [
                    "2-way cache",
                    0x8000
                ],
                [
                    "3-way cache",
                    0xc000
                ],
                [
                    "4-way cache",
                    0x10000
                ]
            ],
            defaultValue: "4-way cache",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6712.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6712.cacheSize = Long[string] [
    [
        "SRAM",
        0x0000
    ],
    [
        "1-way cache",
        0x4000
    ],
    [
        "2-way cache",
        0x8000
    ],
    [
        "3-way cache",
        0xc000
    ],
    [
        "4-way cache",
        0x10000
    ],
    [
        "0k",
        0x0000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ],
    [
        "48k",
        0xc000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
// Instance config-params object
    params.cpuCore = String "6700";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] TMS320C6211.memMap;
    // The default memory map for this device
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6712.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
...
params.cpuCore = String "6700";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6712.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6712.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
...
params.dataWordSize = Int 4;
config TMS320C6712.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
...
params.deviceHeader = String undefined;
config TMS320C6712.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
...
params.memMap = IPlatform.Memory[string] TMS320C6211.memMap;
config TMS320C6712.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6712.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6712.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6712.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6712.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6712.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6712.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6712

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6712.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6712 ========
    21     *  The C6712 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6712 inherits ITMS320C6x1x
    27    {
    28
    29    instance:
    30        override config string   cpuCore        = "6700";
    31        override config string   isa = "67";
    32
    33        override config xdc.platform.IPlatform.Memory memMap[string] =
    34            TMS320C6211.memMap;
    35
    36    };
    37    /*
    38     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.catalog.c6000.TMS320C6713

metaonly module ti.catalog.c6000.TMS320C6713
index URL

The C6713 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6713.xdc
var TMS320C6713 = xdc.useModule('ti.catalog.c6000.TMS320C6713');
module-wide config parameters
    const TMS320C6713.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "SRAM",
                        0x0000
                    ],
                    [
                        "1-way cache",
                        0x4000
                    ],
                    [
                        "2-way cache",
                        0x8000
                    ],
                    [
                        "3-way cache",
                        0xc000
                    ],
                    [
                        "4-way cache",
                        0x10000
                    ]
                ],
                defaultValue: "4-way cache",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6713.cacheSize// = Long[string] [
        [
            "SRAM",
            0x0000
        ],
        [
            "1-way cache",
            0x4000
        ],
        [
            "2-way cache",
            0x8000
        ],
        [
            "3-way cache",
            0xc000
        ],
        [
            "4-way cache",
            0x10000
        ],
        [
            "0k",
            0x0000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ],
        [
            "48k",
            0xc000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6713.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6700";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x0,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6713.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6713.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6713.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "SRAM",
                    0x0000
                ],
                [
                    "1-way cache",
                    0x4000
                ],
                [
                    "2-way cache",
                    0x8000
                ],
                [
                    "3-way cache",
                    0xc000
                ],
                [
                    "4-way cache",
                    0x10000
                ]
            ],
            defaultValue: "4-way cache",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6713.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320C6713.cacheSize = Long[string] [
    [
        "SRAM",
        0x0000
    ],
    [
        "1-way cache",
        0x4000
    ],
    [
        "2-way cache",
        0x8000
    ],
    [
        "3-way cache",
        0xc000
    ],
    [
        "4-way cache",
        0x10000
    ],
    [
        "0k",
        0x0000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ],
    [
        "48k",
        0xc000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
// Instance config-params object
    params.cpuCore = String "6700";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x0,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6713.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
...
params.cpuCore = String "6700";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6713.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6713.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
...
params.dataWordSize = Int 4;
config TMS320C6713.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
...
params.deviceHeader = String undefined;
config TMS320C6713.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x0,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6713.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6713.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6713.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6713.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6713.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6713.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6713.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6713

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6713.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6713 ========
    21     *  The C6713 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6713 inherits ITMS320C6x1x
    27    {
    28
    29    instance:
    30        override config string   cpuCore        = "6700";
    31        override config string   isa = "67";
    32
    33        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    34            ["IRAM", {
    35                name:       "IRAM",
    36                comment:    "Internal L2 memory",
    37                base:       0x0,
    38                len:        0x40000,
    39                space:      "code/data",
    40                access:     "RWX"
    41            }],
    42        ];
    43    };
    44    /*
    45     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    46     */
    47


module ti.catalog.c6000.TMS320C6722

metaonly module ti.catalog.c6000.TMS320C6722
index URL

The C6722 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6722.xdc
var TMS320C6722 = xdc.useModule('ti.catalog.c6000.TMS320C6722');
per-instance config parameters
    var params = new TMS320C6722.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "67x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal memory",
                    base: 0x10000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6722.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6722.Params;
// Instance config-params object
    params.cpuCore = String "67x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal memory",
                base: 0x10000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6722.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6722.Params;
...
params.cpuCore = String "67x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6722.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6722.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6722.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6722.Params;
...
params.dataWordSize = Int 4;
config TMS320C6722.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6722.Params;
...
params.deviceHeader = String undefined;
config TMS320C6722.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6722.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal memory",
            base: 0x10000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6722.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6722.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6722.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6722.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6722.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6722.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6722.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6722.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6722.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6722.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6722

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6722.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6722 ========
    21     *  The C6722 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6722 inherits IAntara
    27    {
    28    instance:
    29        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    30            ["IRAM", {
    31                name:       "IRAM",
    32                comment:    "Internal memory",
    33                base:       0x10000000,
    34                len:        0x00020000,
    35                space:      "code/data",
    36                access:     "RWX"
    37            }],
    38        ];
    39
    40    };
    41    /*
    42     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.catalog.c6000.TMS320C6726

metaonly module ti.catalog.c6000.TMS320C6726
index URL

The C6726 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6726.xdc
var TMS320C6726 = xdc.useModule('ti.catalog.c6000.TMS320C6726');
per-instance config parameters
    var params = new TMS320C6726.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "67x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal memory",
                    base: 0x10000000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6726.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6726.Params;
// Instance config-params object
    params.cpuCore = String "67x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal memory",
                base: 0x10000000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6726.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6726.Params;
...
params.cpuCore = String "67x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6726.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6726.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6726.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6726.Params;
...
params.dataWordSize = Int 4;
config TMS320C6726.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6726.Params;
...
params.deviceHeader = String undefined;
config TMS320C6726.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6726.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal memory",
            base: 0x10000000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6726.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6726.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6726.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6726.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6726.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6726.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6726.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6726.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6726.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6726.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6726

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6726.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6726 ========
    21     *  The C6726 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6726 inherits IAntara
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6727

metaonly module ti.catalog.c6000.TMS320C6727
index URL

The C6727 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6727.xdc
var TMS320C6727 = xdc.useModule('ti.catalog.c6000.TMS320C6727');
per-instance config parameters
    var params = new TMS320C6727.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "67x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal memory",
                    base: 0x10000000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6727.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6727.Params;
// Instance config-params object
    params.cpuCore = String "67x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal memory",
                base: 0x10000000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6727.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6727.Params;
...
params.cpuCore = String "67x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6727.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6727.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6727.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6727.Params;
...
params.dataWordSize = Int 4;
config TMS320C6727.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6727.Params;
...
params.deviceHeader = String undefined;
config TMS320C6727.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6727.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal memory",
            base: 0x10000000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6727.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6727.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6727.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6727.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6727.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6727.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6727.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6727.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6727.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6727.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6727

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6727.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6727 ========
    21     *  The C6727 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6727 inherits IAntara
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6742

metaonly module ti.catalog.c6000.TMS320C6742
index URL

The C6742 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6742.xdc
var TMS320C6742 = xdc.useModule('ti.catalog.c6000.TMS320C6742');
module-wide config parameters
    const TMS320C6742.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6742.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6742.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6742.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "L2ROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 64KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6742.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6742.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6742.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6742.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6742.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6742.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6742.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6742.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "L2ROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6742.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6742.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6742.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6742.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6742.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6742.Params;
...
params.dataWordSize = Int 4;
config TMS320C6742.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6742.Params;
...
params.deviceHeader = String undefined;
config TMS320C6742.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6742.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2ROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6742.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6742.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6742.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6742.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6742.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6742.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6742.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6742.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6742.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6742.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6742

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6742.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6742 ========
    21     *  The C6742 device data sheet module.
    22     */
    23    metaonly module TMS320C6742 inherits ITMS320DA8xx
    24    {
    25    instance:
    26        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    27            ["L2ROM", {
    28                comment:    "Internal 1MB L2 ROM",
    29                name:       "IROM",
    30                base:       0x11700000,
    31                len:        0x00100000,
    32                space:      "code/data",
    33                access:     "RX"
    34            }],
    35
    36            ["IRAM", {
    37                comment:    "Internal 64KB L2 memory",
    38                name:       "IRAM",
    39                base:       0x11800000,
    40                len:        0x00010000,
    41                space:      "code/data",
    42                access:     "RWX"
    43            }],
    44
    45            ["L1PSRAM", {
    46                comment:    "Internal 32KB L1 program memory",
    47                name:       "L1PSRAM",
    48                base:       0x11E00000,
    49                len:        0x00008000,
    50                space:      "code",
    51                access:     "RWX"
    52            }],
    53
    54            ["L1DSRAM", {
    55                comment:    "Internal 32KB L1 data memory",
    56                name:       "L1DSRAM",
    57                base:       0x11F00000,
    58                len:        0x00008000,
    59                space:      "data",
    60                access:     "RW"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c6000.TMS320C6743

metaonly module ti.catalog.c6000.TMS320C6743
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6743.xdc
var TMS320C6743 = xdc.useModule('ti.catalog.c6000.TMS320C6743');
module-wide config parameters
    const TMS320C6743.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6743.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6743.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6743.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "L2ROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 128KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6743.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6743.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6743.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6743.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6743.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6743.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6743.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6743.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "L2ROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 128KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6743.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6743.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6743.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6743.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6743.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6743.Params;
...
params.dataWordSize = Int 4;
config TMS320C6743.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6743.Params;
...
params.deviceHeader = String undefined;
config TMS320C6743.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6743.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2ROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 128KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6743.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6743.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6743.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6743.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6743.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6743.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6743.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6743.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6743.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6743.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6743

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6743.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6743 ========
    21     */
    22    metaonly module TMS320C6743 inherits ITMS320DA8xx
    23    {
    24    instance:
    25        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    26            ["L2ROM", {
    27                comment:    "Internal 1MB L2 ROM",
    28                name:       "IROM",
    29                base:       0x11700000,
    30                len:        0x00100000,
    31                space:      "code/data",
    32                access:     "RX"
    33            }],
    34
    35            ["IRAM", {
    36                comment:    "Internal 128KB L2 memory",
    37                name:       "IRAM",
    38                base:       0x11800000,
    39                len:        0x00020000,
    40                space:      "code/data",
    41                access:     "RWX"
    42            }],
    43
    44            ["L1PSRAM", {
    45                comment:    "Internal 32KB L1 program memory",
    46                name:       "L1PSRAM",
    47                base:       0x11E00000,
    48                len:        0x00008000,
    49                space:      "code",
    50                access:     "RWX"
    51            }],
    52
    53            ["L1DSRAM", {
    54                comment:    "Internal 32KB L1 data memory",
    55                name:       "L1DSRAM",
    56                base:       0x11F00000,
    57                len:        0x00008000,
    58                space:      "data",
    59                access:     "RW"
    60            }],
    61        ];
    62    };
    63    /*
    64     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    65     */
    66


module ti.catalog.c6000.TMS320C6745

metaonly module ti.catalog.c6000.TMS320C6745
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6745.xdc
var TMS320C6745 = xdc.useModule('ti.catalog.c6000.TMS320C6745');
module-wide config parameters
    const TMS320C6745.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6745.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6745.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6745.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "L2ROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6745.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6745.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6745.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6745.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6745.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6745.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6745.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6745.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "L2ROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6745.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6745.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6745.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6745.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6745.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6745.Params;
...
params.dataWordSize = Int 4;
config TMS320C6745.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6745.Params;
...
params.deviceHeader = String undefined;
config TMS320C6745.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6745.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2ROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320C6745.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6745.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6745.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6745.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6745.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6745.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6745.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6745.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6745.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6745.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6745

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6745.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6745 ========
    21     */
    22    metaonly module TMS320C6745 inherits ITMS320DA8xx
    23    {
    24    instance:
    25        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    26            ["L2ROM", {
    27                comment:    "Internal 1MB L2 ROM",
    28                name:       "IROM",
    29                base:       0x11700000,
    30                len:        0x00100000,
    31                space:      "code/data",
    32                access:     "RX"
    33            }],
    34
    35            ["IRAM", {
    36                comment:    "Internal 256KB L2 memory",
    37                name:       "IRAM",
    38                base:       0x11800000,
    39                len:        0x00040000,
    40                space:      "code/data",
    41                access:     "RWX"
    42            }],
    43
    44            ["L1PSRAM", {
    45                comment:    "Internal 32KB L1 program memory",
    46                name:       "L1PSRAM",
    47                base:       0x11E00000,
    48                len:        0x00008000,
    49                space:      "code",
    50                access:     "RWX"
    51            }],
    52
    53            ["L1DSRAM", {
    54                comment:    "Internal 32KB L1 data memory",
    55                name:       "L1DSRAM",
    56                base:       0x11F00000,
    57                len:        0x00008000,
    58                space:      "data",
    59                access:     "RW"
    60            }],
    61        ];
    62    };
    63    /*
    64     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    65     */
    66


module ti.catalog.c6000.TMS320C6746

metaonly module ti.catalog.c6000.TMS320C6746
index URL

The C6746 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6746.xdc
var TMS320C6746 = xdc.useModule('ti.catalog.c6000.TMS320C6746');
module-wide config parameters
    const TMS320C6746.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6746.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6746.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6746.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6746.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6746.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6746.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6746.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6746.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6746.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6746.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6746.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6746.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6746.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6746.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6746.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6746.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6746.Params;
...
params.dataWordSize = Int 4;
config TMS320C6746.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6746.Params;
...
params.deviceHeader = String undefined;
config TMS320C6746.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6746.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6746.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6746.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6746.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6746.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6746.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6746.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6746.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6746.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6746.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6746.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:07 GMT


module ti.catalog.c6000.TMS320C6746

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6746.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6746 ========
    21     *  The C6746 device data sheet module.
    22     */
    23    metaonly module TMS320C6746 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320C6747

metaonly module ti.catalog.c6000.TMS320C6747
index URL

The C6747 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6747.xdc
var TMS320C6747 = xdc.useModule('ti.catalog.c6000.TMS320C6747');
module-wide config parameters
    const TMS320C6747.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6747.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6747.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6747.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6747.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6747.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6747.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6747.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6747.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6747.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6747.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6747.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6747.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6747.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6747.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6747.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6747.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6747.Params;
...
params.dataWordSize = Int 4;
config TMS320C6747.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6747.Params;
...
params.deviceHeader = String undefined;
config TMS320C6747.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6747.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6747.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6747.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6747.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6747.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6747.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6747.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6747.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6747.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6747.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6747.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:08 GMT


module ti.catalog.c6000.TMS320C6747

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6747.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6747 ========
    21     *  The C6747 device data sheet module.
    22     */
    23    metaonly module TMS320C6747 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320C6748

metaonly module ti.catalog.c6000.TMS320C6748
index URL

The C6748 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6748.xdc
var TMS320C6748 = xdc.useModule('ti.catalog.c6000.TMS320C6748');
module-wide config parameters
    const TMS320C6748.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6748.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6748.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6748.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6748.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6748.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6748.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6748.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6748.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6748.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6748.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6748.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6748.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6748.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6748.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6748.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6748.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6748.Params;
...
params.dataWordSize = Int 4;
config TMS320C6748.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6748.Params;
...
params.deviceHeader = String undefined;
config TMS320C6748.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6748.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6748.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6748.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6748.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6748.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6748.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6748.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6748.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6748.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6748.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6748.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:08 GMT


module ti.catalog.c6000.TMS320C6748

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6748.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6748 ========
    21     *  The C6748 device data sheet module.
    22     */
    23    metaonly module TMS320C6748 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320C6A8149

metaonly module ti.catalog.c6000.TMS320C6A8149
index URL

The C674 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6A8149.xdc
var TMS320C6A8149 = xdc.useModule('ti.catalog.c6000.TMS320C6A8149');
module-wide config parameters
    const TMS320C6A8149.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6A8149.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6A8149.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6A8149.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x8000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F00000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "OCMC",
                {
                    comment: "OCMC (On-chip RAM) (128KB)",
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x20000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6A8149.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6A8149.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6A8149.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6A8149.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6A8149.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6A8149.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6A8149.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
// Instance config-params object
    params.cpuCore = String "674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC",
            {
                comment: "OCMC (On-chip RAM) (128KB)",
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6A8149.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.cpuCore = String "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6A8149.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6A8149.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.dataWordSize = Int 4;
config TMS320C6A8149.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.deviceHeader = String undefined;
config TMS320C6A8149.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320C6A8149.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC",
        {
            comment: "OCMC (On-chip RAM) (128KB)",
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6A8149.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6A8149.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6A8149.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8149.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6A8149.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6A8149.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6A8149.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:08 GMT


module ti.catalog.c6000.TMS320C6A8149

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6A8149.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6A8149 ========
    21     *  The C674 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6A8149 inherits ITI8148
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6A8168

metaonly module ti.catalog.c6000.TMS320C6A8168
index URL

The C674 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320C6A8168.xdc
var TMS320C6A8168 = xdc.useModule('ti.catalog.c6000.TMS320C6A8168');
module-wide config parameters
    const TMS320C6A8168.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x00000
                    ],
                    [
                        "32k",
                        0x08000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320C6A8168.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320C6A8168.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320C6A8168.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x8000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F00000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "OCMC_0",
                {
                    comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                    name: "OCMC_0",
                    base: 0x40300000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC_1",
                {
                    comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                    name: "OCMC_1",
                    base: 0x40400000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320C6A8168.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320C6A8168.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320C6A8168.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x00000
                ],
                [
                    "32k",
                    0x08000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320C6A8168.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6A8168.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320C6A8168.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320C6A8168.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
// Instance config-params object
    params.cpuCore = String "674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320C6A8168.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.cpuCore = String "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320C6A8168.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320C6A8168.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.dataWordSize = Int 4;
config TMS320C6A8168.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.deviceHeader = String undefined;
config TMS320C6A8168.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320C6A8168.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320C6A8168.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320C6A8168.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320C6A8168.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.minDataUnitSize = Int 1;
config TMS320C6A8168.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.minProgUnitSize = Int 1;
config TMS320C6A8168.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320C6A8168.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320C6A8168.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320C6A8168.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320C6A8168.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:08 GMT


module ti.catalog.c6000.TMS320C6A8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320C6A8168.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320C6A8168 ========
    21     *  The C674 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320C6A8168 inherits ITI8168
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDA700

metaonly module ti.catalog.c6000.TMS320CDA700
index URL

The C67P device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDA700.xdc
var TMS320CDA700 = xdc.useModule('ti.catalog.c6000.TMS320CDA700');
per-instance config parameters
    var params = new TMS320CDA700.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "67x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal memory",
                    base: 0x10000000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDA700.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
// Instance config-params object
    params.cpuCore = String "67x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal memory",
                base: 0x10000000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDA700.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
...
params.cpuCore = String "67x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDA700.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDA700.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
...
params.dataWordSize = Int 4;
config TMS320CDA700.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
...
params.deviceHeader = String undefined;
config TMS320CDA700.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal memory",
            base: 0x10000000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDA700.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDA700.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDA700.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDA700.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDA700.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDA700.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDA700.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:08 GMT


module ti.catalog.c6000.TMS320CDA700

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDA700.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDA700 ========
    21     *  The C67P device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDA700 inherits IAntara
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDA700SIM

metaonly module ti.catalog.c6000.TMS320CDA700SIM
index URL

The C67P device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDA700SIM.xdc
var TMS320CDA700SIM = xdc.useModule('ti.catalog.c6000.TMS320CDA700SIM');
per-instance config parameters
    var params = new TMS320CDA700SIM.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "67x+SIM";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal memory",
                    base: 0x10000000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDA700SIM.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
// Instance config-params object
    params.cpuCore = String "67x+SIM";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal memory",
                base: 0x10000000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDA700SIM.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
...
params.cpuCore = String "67x+SIM";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDA700SIM.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDA700SIM.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
...
params.dataWordSize = Int 4;
config TMS320CDA700SIM.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
...
params.deviceHeader = String undefined;
config TMS320CDA700SIM.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal memory",
            base: 0x10000000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDA700SIM.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDA700SIM.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDA700SIM.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDA700SIM.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDA700SIM.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDA700SIM.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDA700SIM.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:08 GMT


module ti.catalog.c6000.TMS320CDA700SIM

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA700SIM.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDA700SIM ========
    21     *  The C67P device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDA700SIM inherits IAntara
    27    {
    28    instance:
    29        override config string   cpuCore        = "67x+SIM";
    30    };
    31    /*
    32     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.catalog.c6000.TMS320CDA705

metaonly module ti.catalog.c6000.TMS320CDA705
index URL

The DA705 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDA705.xdc
var TMS320CDA705 = xdc.useModule('ti.catalog.c6000.TMS320CDA705');
per-instance config parameters
    var params = new TMS320CDA705.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "67x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal memory",
                    base: 0x10000000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDA705.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
// Instance config-params object
    params.cpuCore = String "67x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal memory",
                base: 0x10000000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDA705.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
...
params.cpuCore = String "67x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDA705.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDA705.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
...
params.dataWordSize = Int 4;
config TMS320CDA705.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
...
params.deviceHeader = String undefined;
config TMS320CDA705.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal memory",
            base: 0x10000000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDA705.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDA705.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDA705.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDA705.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDA705.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDA705.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDA705.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:08 GMT


module ti.catalog.c6000.TMS320CDA705

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDA705.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDA705 ========
    21     *  The DA705 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDA705 inherits IAntara
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDA707

metaonly module ti.catalog.c6000.TMS320CDA707
index URL

The DA707 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDA707.xdc
var TMS320CDA707 = xdc.useModule('ti.catalog.c6000.TMS320CDA707');
per-instance config parameters
    var params = new TMS320CDA707.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "67x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal memory",
                    base: 0x10000000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDA707.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
// Instance config-params object
    params.cpuCore = String "67x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal memory",
                base: 0x10000000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDA707.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
...
params.cpuCore = String "67x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDA707.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDA707.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
...
params.dataWordSize = Int 4;
config TMS320CDA707.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
...
params.deviceHeader = String undefined;
config TMS320CDA707.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal memory",
            base: 0x10000000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDA707.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDA707.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDA707.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDA707.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDA707.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDA707.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDA707.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:08 GMT


module ti.catalog.c6000.TMS320CDA707

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDA707.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDA707 ========
    21     *  The DA707 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDA707 inherits IAntara
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDA710

metaonly module ti.catalog.c6000.TMS320CDA710
index URL

The DA710 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDA710.xdc
var TMS320CDA710 = xdc.useModule('ti.catalog.c6000.TMS320CDA710');
per-instance config parameters
    var params = new TMS320CDA710.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "67x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal memory",
                    base: 0x10000000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDA710.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
// Instance config-params object
    params.cpuCore = String "67x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal memory",
                base: 0x10000000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDA710.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
...
params.cpuCore = String "67x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDA710.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDA710.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
...
params.dataWordSize = Int 4;
config TMS320CDA710.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
...
params.deviceHeader = String undefined;
config TMS320CDA710.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal memory",
            base: 0x10000000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDA710.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDA710.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDA710.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDA710.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDA710.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDA710.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDA710.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:08 GMT


module ti.catalog.c6000.TMS320CDA710

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDA710.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDA710 ========
    21     *  The DA710 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDA710 inherits IAntara
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDM415

metaonly module ti.catalog.c6000.TMS320CDM415
index URL

The DM415 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM415.xdc
var TMS320CDM415 = xdc.useModule('ti.catalog.c6000.TMS320CDM415');
module-wide config parameters
    const TMS320CDM415.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM415.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM415.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM415.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM415.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM415.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM415.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM415.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM415.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM415.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM415.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM415.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM415.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM415.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM415.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM415.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM415.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM415.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM415.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM415.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM415.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM415.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM415.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:09 GMT


module ti.catalog.c6000.TMS320CDM415

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM415.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM415 ========
    21     *  The DM415 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM415 inherits IDaVinci
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM420

metaonly module ti.catalog.c6000.TMS320CDM420
index URL

The DM420 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM420.xdc
var TMS320CDM420 = xdc.useModule('ti.catalog.c6000.TMS320CDM420');
module-wide config parameters
    const TMS320CDM420.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM420.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM420.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM420.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM420.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM420.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM420.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM420.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM420.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM420.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM420.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM420.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM420.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM420.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM420.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM420.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM420.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM420.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM420.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM420.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM420.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM420.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM420.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:09 GMT


module ti.catalog.c6000.TMS320CDM420

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM420.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM420 ========
    21     *  The DM420 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM420 inherits IDaVinci
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM421

metaonly module ti.catalog.c6000.TMS320CDM421
index URL

The DM421 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM421.xdc
var TMS320CDM421 = xdc.useModule('ti.catalog.c6000.TMS320CDM421');
module-wide config parameters
    const TMS320CDM421.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM421.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM421.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM421.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM421.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM421.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM421.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM421.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM421.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM421.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM421.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM421.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM421.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM421.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM421.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM421.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM421.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM421.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM421.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM421.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM421.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM421.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM421.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:09 GMT


module ti.catalog.c6000.TMS320CDM421

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM421.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM421 ========
    21     *  The DM421 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM421 inherits IDaVinci
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM425

metaonly module ti.catalog.c6000.TMS320CDM425
index URL

The DM425 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM425.xdc
var TMS320CDM425 = xdc.useModule('ti.catalog.c6000.TMS320CDM425');
module-wide config parameters
    const TMS320CDM425.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM425.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM425.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM425.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM425.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM425.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM425.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM425.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM425.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM425.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM425.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM425.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM425.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM425.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM425.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM425.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM425.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM425.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM425.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM425.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM425.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM425.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM425.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:09 GMT


module ti.catalog.c6000.TMS320CDM425

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM425.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM425 ========
    21     *  The DM425 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM425 inherits IDaVinci
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM426

metaonly module ti.catalog.c6000.TMS320CDM426
index URL

The DM426 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM426.xdc
var TMS320CDM426 = xdc.useModule('ti.catalog.c6000.TMS320CDM426');
module-wide config parameters
    const TMS320CDM426.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM426.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM426.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM426.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM426.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM426.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM426.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM426.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM426.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM426.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM426.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM426.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM426.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM426.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM426.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM426.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM426.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM426.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM426.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM426.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM426.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM426.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM426.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:09 GMT


module ti.catalog.c6000.TMS320CDM426

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM426.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM426 ========
    21     *  The DM426 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM426 inherits IDaVinci
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM640

metaonly module ti.catalog.c6000.TMS320CDM640
index URL

The DM640 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM640.xdc
var TMS320CDM640 = xdc.useModule('ti.catalog.c6000.TMS320CDM640');
module-wide config parameters
    const TMS320CDM640.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM640.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM640.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x20000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM640.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM640.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM640.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM640.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM640.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM640.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM640.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM640.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM640.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM640.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDM640.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM640.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM640.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM640.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM640.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM640.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM640.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:09 GMT


module ti.catalog.c6000.TMS320CDM640

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM640.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM640 ========
    21     *  The DM640 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM640 inherits ITMS320C64_128K
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM641

metaonly module ti.catalog.c6000.TMS320CDM641
index URL

The DM641 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM641.xdc
var TMS320CDM641 = xdc.useModule('ti.catalog.c6000.TMS320CDM641');
module-wide config parameters
    const TMS320CDM641.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM641.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM641.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x20000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM641.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM641.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM641.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM641.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM641.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM641.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM641.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM641.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM641.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM641.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDM641.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM641.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM641.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM641.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM641.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM641.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM641.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:09 GMT


module ti.catalog.c6000.TMS320CDM641

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM641.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM641 ========
    21     *  The DM641 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM641 inherits ITMS320C64_128K
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM642

metaonly module ti.catalog.c6000.TMS320CDM642
index URL

The DM642 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM642.xdc
var TMS320CDM642 = xdc.useModule('ti.catalog.c6000.TMS320CDM642');
module-wide config parameters
    const TMS320CDM642.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM642.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM642.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM642.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM642.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM642.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM642.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM642.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM642.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM642.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM642.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM642.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM642.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDM642.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM642.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM642.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM642.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM642.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM642.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM642.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:09 GMT


module ti.catalog.c6000.TMS320CDM642

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM642.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM642 ========
    21     *  The DM642 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM642 inherits ITMS320C64_256K
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM6431

metaonly module ti.catalog.c6000.TMS320CDM6431
index URL

The DM6431 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM6431.xdc
var TMS320CDM6431 = xdc.useModule('ti.catalog.c6000.TMS320CDM6431');
module-wide config parameters
    const TMS320CDM6431.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F10000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10810000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM6431.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM6431.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM6431.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB L2 RAM/CACHE in UMAP0 memory",
                    name: "IRAM",
                    base: 0x10810000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F10000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6431.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM6431.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM6431.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F10000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10810000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM6431.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6431.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM6431.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6431.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 RAM/CACHE in UMAP0 memory",
                name: "IRAM",
                base: 0x10810000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x10E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x10F10000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6431.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6431.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6431.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6431.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6431.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 RAM/CACHE in UMAP0 memory",
            name: "IRAM",
            base: 0x10810000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x10E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x10F10000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6431.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6431.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6431.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6431.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6431.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6431.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6431.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:10 GMT


module ti.catalog.c6000.TMS320CDM6431

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6431.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    /*!
    21     *  ======== TMS320CDM6431 ========
    22     *  The DM6431 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TMS320CDM6431 inherits ti.catalog.ICpuDataSheet
    28    {
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x8000]
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",   0x00000],
    39            ["32k",  0x08000],
    40            ["64k",  0x10000]
    41        ];
    42
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44             ['l1PMode',{desc:"L1P Cache",
    45                         base: 0x10E08000,
    46                         map : [["0k",0x0000],
    47                                ["4k",0x1000],
    48                                ["8k",0x2000],
    49                                ["16k",0x4000],
    50                                ["32k",0x8000]],
    51                         defaultValue: "32k",
    52                         memorySection: "L1PSRAM"}],
    53
    54                     ['l1DMode',{desc:"L1D Cache",
    55                         base: 0x10F10000,
    56                         map : [["0k",0x0000],
    57                                ["4k",0x1000],
    58                                ["8k",0x2000],
    59                                ["16k",0x4000],
    60                                ["32k",0x8000]],
    61                         defaultValue: "32k",
    62                         memorySection: "L1DSRAM"}],
    63
    64             ['l2Mode',{desc:"L2 Cache",
    65                         base: 0x10810000,
    66                         map : [["0k",0x0000],
    67                                ["32k",0x8000],
    68                                ["64k",0x10000]],
    69                         defaultValue: "0k",
    70                         memorySection: "IRAM"}],
    71        ];
    72
    73    instance:
    74
    75        override config string   cpuCore        = "64x+";
    76        override config string   isa = "64P";
    77        override config string   cpuCoreRevision = "1.0";
    78
    79        override config int     minProgUnitSize = 1;
    80        override config int     minDataUnitSize = 1;
    81        override config int     dataWordSize    = 4;
    82
    83        /*!
    84         *  ======== memMap ========
    85         *  The default memory map for this device
    86         */
    87        config xdc.platform.IPlatform.Memory memMap[string]  = [
    88            ["IRAM", {
    89                comment:    "Internal 64KB L2 RAM/CACHE in UMAP0 memory",
    90                name:       "IRAM",
    91                base:       0x10810000,
    92                len:        0x00010000,
    93                space:      "code/data",
    94                access:     "RWX"
    95            }],
    96
    97            ["L1PSRAM", {
    98                comment:    "Internal 32KB RAM/CACHE L1 program memory",
    99                name:       "L1PSRAM",
   100                base:       0x10E08000,
   101                len:        0x00008000,
   102                space:      "code",
   103                access:     "RWX"
   104            }],
   105
   106            ["L1DSRAM", {
   107                comment:    "Internal 32KB RAM/CACHE L1 data memory",
   108                name:       "L1DSRAM",
   109                base:       0x10F10000,
   110                len:        0x00008000,
   111                space:      "data",
   112                access:     "RW"
   113            }],
   114        ];
   115    };
   116    /*
   117     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
   118     */
   119


module ti.catalog.c6000.TMS320CDM6433

metaonly module ti.catalog.c6000.TMS320CDM6433
index URL

The DM6433 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM6433.xdc
var TMS320CDM6433 = xdc.useModule('ti.catalog.c6000.TMS320CDM6433');
module-wide config parameters
    const TMS320CDM6433.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM6433.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM6433.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM6433.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 128KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6433.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM6433.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM6433.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM6433.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6433.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM6433.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6433.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x10E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6433.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6433.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6433.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6433.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6433.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x10E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6433.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6433.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6433.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6433.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6433.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6433.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6433.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:10 GMT


module ti.catalog.c6000.TMS320CDM6433

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6433.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM6433 ========
    21     *  The DM6433 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM6433 inherits ITMS320C642x
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDM6435

metaonly module ti.catalog.c6000.TMS320CDM6435
index URL

The DM6435 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM6435.xdc
var TMS320CDM6435 = xdc.useModule('ti.catalog.c6000.TMS320CDM6435');
module-wide config parameters
    const TMS320CDM6435.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM6435.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM6435.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM6435.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 128KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6435.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM6435.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM6435.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM6435.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6435.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM6435.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6435.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x10E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6435.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6435.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6435.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6435.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6435.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x10E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6435.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6435.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6435.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6435.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6435.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6435.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6435.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:10 GMT


module ti.catalog.c6000.TMS320CDM6435

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6435.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM6435 ========
    21     *  The DM6435 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM6435 inherits ITMS320C642x
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDM6437

metaonly module ti.catalog.c6000.TMS320CDM6437
index URL

The DM6437 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM6437.xdc
var TMS320CDM6437 = xdc.useModule('ti.catalog.c6000.TMS320CDM6437');
module-wide config parameters
    const TMS320CDM6437.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM6437.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM6437.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM6437.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 128KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6437.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM6437.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM6437.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM6437.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6437.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM6437.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6437.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x10E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6437.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6437.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6437.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6437.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6437.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x10E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6437.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6437.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6437.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6437.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6437.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6437.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6437.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:10 GMT


module ti.catalog.c6000.TMS320CDM6437

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6437.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM6437 ========
    21     *  The DM6437 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM6437 inherits ITMS320C642x
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDM6441

metaonly module ti.catalog.c6000.TMS320CDM6441
index URL

The DM6441 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM6441.xdc
var TMS320CDM6441 = xdc.useModule('ti.catalog.c6000.TMS320CDM6441');
module-wide config parameters
    const TMS320CDM6441.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM6441.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM6441.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM6441.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6441.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM6441.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM6441.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM6441.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6441.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM6441.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6441.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6441.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6441.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6441.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6441.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6441.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6441.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6441.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6441.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6441.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6441.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6441.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6441.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:10 GMT


module ti.catalog.c6000.TMS320CDM6441

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6441.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM6441 ========
    21     *  The DM6441 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM6441 inherits IDaVinci
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM6443

metaonly module ti.catalog.c6000.TMS320CDM6443
index URL

The DM6443 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM6443.xdc
var TMS320CDM6443 = xdc.useModule('ti.catalog.c6000.TMS320CDM6443');
module-wide config parameters
    const TMS320CDM6443.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM6443.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM6443.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM6443.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6443.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM6443.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM6443.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM6443.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6443.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM6443.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6443.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6443.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6443.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6443.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6443.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6443.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6443.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6443.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6443.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6443.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6443.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6443.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6443.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:10 GMT


module ti.catalog.c6000.TMS320CDM6443

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6443.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM6443 ========
    21     *  The DM6443 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM6443 inherits IDaVinci
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM6446

metaonly module ti.catalog.c6000.TMS320CDM6446
index URL

The DM6446 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM6446.xdc
var TMS320CDM6446 = xdc.useModule('ti.catalog.c6000.TMS320CDM6446');
module-wide config parameters
    const TMS320CDM6446.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM6446.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM6446.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM6446.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6446.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM6446.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM6446.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM6446.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6446.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM6446.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6446.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6446.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6446.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6446.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6446.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6446.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6446.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6446.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6446.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6446.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6446.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6446.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6446.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:10 GMT


module ti.catalog.c6000.TMS320CDM6446

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6446.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM6446 ========
    21     *  The DM6446 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM6446 inherits IDaVinci
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM6467

metaonly module ti.catalog.c6000.TMS320CDM6467
index URL

The DM6467 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM6467.xdc
var TMS320CDM6467 = xdc.useModule('ti.catalog.c6000.TMS320CDM6467');
module-wide config parameters
    const TMS320CDM6467.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11818000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM6467.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM6467.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM6467.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10010000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 128KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11818000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM6467.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM6467.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM6467.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11818000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM6467.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6467.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM6467.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM6467.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10010000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x11818000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM6467.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM6467.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM6467.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM6467.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM6467.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10010000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x11818000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM6467.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM6467.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM6467.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM6467.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM6467.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM6467.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM6467.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:11 GMT


module ti.catalog.c6000.TMS320CDM6467

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM6467.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM6467 ========
    21     *  The DM6467 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM6467 inherits ITMS320CDM6467
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM647

metaonly module ti.catalog.c6000.TMS320CDM647
index URL

The DM647 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM647.xdc
var TMS320CDM647 = xdc.useModule('ti.catalog.c6000.TMS320CDM647');
module-wide config parameters
    const TMS320CDM647.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0xA00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM647.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM647.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM647.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 RAM/CACHE",
                    name: "IRAM",
                    base: 0xA00000,
                    len: 0x040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM647.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM647.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM647.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0xA00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM647.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM647.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM647.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM647.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 RAM/CACHE",
                name: "IRAM",
                base: 0xA00000,
                len: 0x040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM647.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM647.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM647.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM647.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM647.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 RAM/CACHE",
            name: "IRAM",
            base: 0xA00000,
            len: 0x040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM647.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM647.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM647.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM647.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM647.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM647.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM647.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:11 GMT


module ti.catalog.c6000.TMS320CDM647

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM647.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM647 ========
    21     *  The DM647 device data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM647 inherits ITMS320C6452
    27    {
    28
    29    instance:
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        override config xdc.platform.IPlatform.Memory memMap[string] = [
    36            ["IRAM", {
    37                comment:    "Internal 256KB L2 RAM/CACHE",
    38                name:       "IRAM",
    39                base:       0xA00000,
    40                len:        0x040000,
    41                space:      "code/data",
    42                access:     "RWX"
    43            }],
    44
    45            ["L1PSRAM", {
    46                comment:    "Internal 32KB RAM/CACHE L1 program memory",
    47                name:       "L1PSRAM",
    48                base:       0xE00000,
    49                len:        0x008000,
    50                space:      "code",
    51                access:     "RWX"
    52            }],
    53
    54            ["L1DSRAM", {
    55                comment:    "Internal 32KB RAM/CACHE L1 data memory",
    56                name:       "L1DSRAM",
    57                base:       0xF00000,
    58                len:        0x008000,
    59                space:      "data",
    60                access:     "RW"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c6000.TMS320CDM648

metaonly module ti.catalog.c6000.TMS320CDM648
index URL

The DM648 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM648.xdc
var TMS320CDM648 = xdc.useModule('ti.catalog.c6000.TMS320CDM648');
module-wide config parameters
    const TMS320CDM648.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0xA00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM648.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM648.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM648.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 512KB L2 RAM/CACHE",
                    name: "IRAM",
                    base: 0xA00000,
                    len: 0x080000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM648.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM648.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM648.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0xA00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM648.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM648.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM648.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM648.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 512KB L2 RAM/CACHE",
                name: "IRAM",
                base: 0xA00000,
                len: 0x080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM648.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM648.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM648.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM648.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM648.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 512KB L2 RAM/CACHE",
            name: "IRAM",
            base: 0xA00000,
            len: 0x080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDM648.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM648.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM648.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM648.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM648.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM648.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM648.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:11 GMT


module ti.catalog.c6000.TMS320CDM648

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM648.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM648 ========
    21     *  The DM648 device data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM648 inherits ITMS320C6452
    27    {
    28
    29    instance:
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        override config xdc.platform.IPlatform.Memory memMap[string] = [
    36            ["IRAM", {
    37                comment:    "Internal 512KB L2 RAM/CACHE",
    38                name:       "IRAM",
    39                base:       0xA00000,
    40                len:        0x080000,
    41                space:      "code/data",
    42                access:     "RWX"
    43            }],
    44
    45            ["L1PSRAM", {
    46                comment:    "Internal 32KB RAM/CACHE L1 program memory",
    47                name:       "L1PSRAM",
    48                base:       0xE00000,
    49                len:        0x008000,
    50                space:      "code",
    51                access:     "RWX"
    52            }],
    53
    54            ["L1DSRAM", {
    55                comment:    "Internal 32KB RAM/CACHE L1 data memory",
    56                name:       "L1DSRAM",
    57                base:       0xF00000,
    58                len:        0x008000,
    59                space:      "data",
    60                access:     "RW"
    61            }],
    62        ];
    63    };
    64    /*
    65     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


module ti.catalog.c6000.TMS320CDM730

metaonly module ti.catalog.c6000.TMS320CDM730
index URL

The C674 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM730.xdc
var TMS320CDM730 = xdc.useModule('ti.catalog.c6000.TMS320CDM730');
module-wide config parameters
    const TMS320CDM730.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x00000
                    ],
                    [
                        "32k",
                        0x08000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM730.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM730.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM730.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x8000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F00000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "OCMC_0",
                {
                    comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                    name: "OCMC_0",
                    base: 0x40300000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC_1",
                {
                    comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                    name: "OCMC_1",
                    base: 0x40400000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM730.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM730.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM730.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x00000
                ],
                [
                    "32k",
                    0x08000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM730.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM730.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM730.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM730.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
// Instance config-params object
    params.cpuCore = String "674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM730.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.cpuCore = String "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM730.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM730.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM730.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM730.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320CDM730.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320CDM730.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320CDM730.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDM730.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM730.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM730.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM730.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM730.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM730.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM730.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:11 GMT


module ti.catalog.c6000.TMS320CDM730

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM730.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM730 ========
    21     *  The C674 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM730 inherits ITI8168
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM740

metaonly module ti.catalog.c6000.TMS320CDM740
index URL

The C674 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDM740.xdc
var TMS320CDM740 = xdc.useModule('ti.catalog.c6000.TMS320CDM740');
module-wide config parameters
    const TMS320CDM740.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x00000
                    ],
                    [
                        "32k",
                        0x08000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDM740.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDM740.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDM740.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x8000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F00000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "OCMC_0",
                {
                    comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                    name: "OCMC_0",
                    base: 0x40300000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC_1",
                {
                    comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                    name: "OCMC_1",
                    base: 0x40400000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDM740.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDM740.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDM740.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x00000
                ],
                [
                    "32k",
                    0x08000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDM740.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM740.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDM740.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDM740.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
// Instance config-params object
    params.cpuCore = String "674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDM740.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.cpuCore = String "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDM740.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDM740.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.dataWordSize = Int 4;
config TMS320CDM740.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.deviceHeader = String undefined;
config TMS320CDM740.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320CDM740.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320CDM740.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320CDM740.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDM740.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDM740.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDM740.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDM740.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDM740.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDM740.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDM740.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:11 GMT


module ti.catalog.c6000.TMS320CDM740

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDM740.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDM740 ========
    21     *  The C674 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDM740 inherits ITI8168
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDRA402

metaonly module ti.catalog.c6000.TMS320CDRA402
index URL

The DRA402 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA402.xdc
var TMS320CDRA402 = xdc.useModule('ti.catalog.c6000.TMS320CDRA402');
module-wide config parameters
    const TMS320CDRA402.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11810000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA402.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA402.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA402.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 192KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11810000,
                    len: 0x00030000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 16KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00004000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA402.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA402.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA402.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11810000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA402.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA402.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA402.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA402.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 192KB UMAP0 memory",
                name: "IRAM",
                base: 0x11810000,
                len: 0x00030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 16KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00004000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA402.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA402.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA402.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA402.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA402.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 192KB UMAP0 memory",
            name: "IRAM",
            base: 0x11810000,
            len: 0x00030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 16KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00004000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA402.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA402.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA402.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA402.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA402.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA402.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA402.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:11 GMT


module ti.catalog.c6000.TMS320CDRA402

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA402.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA402 ========
    20     *  The DRA402 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA402 inherits ITMS320CDRx40x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA404

metaonly module ti.catalog.c6000.TMS320CDRA404
index URL

The DRA404 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA404.xdc
var TMS320CDRA404 = xdc.useModule('ti.catalog.c6000.TMS320CDRA404');
module-wide config parameters
    const TMS320CDRA404.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11810000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA404.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA404.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA404.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 192KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11810000,
                    len: 0x00030000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 16KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00004000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA404.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA404.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA404.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11810000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA404.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA404.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA404.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA404.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 192KB UMAP0 memory",
                name: "IRAM",
                base: 0x11810000,
                len: 0x00030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 16KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00004000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA404.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA404.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA404.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA404.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA404.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 192KB UMAP0 memory",
            name: "IRAM",
            base: 0x11810000,
            len: 0x00030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 16KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00004000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA404.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA404.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA404.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA404.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA404.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA404.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA404.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:11 GMT


module ti.catalog.c6000.TMS320CDRA404

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA404.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA404 ========
    20     *  The DRA404 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA404 inherits ITMS320CDRx40x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA406

metaonly module ti.catalog.c6000.TMS320CDRA406
index URL

The DRA406 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA406.xdc
var TMS320CDRA406 = xdc.useModule('ti.catalog.c6000.TMS320CDRA406');
module-wide config parameters
    const TMS320CDRA406.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11810000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA406.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA406.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA406.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 192KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11810000,
                    len: 0x00030000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 16KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00004000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA406.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA406.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA406.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11810000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA406.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA406.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA406.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA406.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 192KB UMAP0 memory",
                name: "IRAM",
                base: 0x11810000,
                len: 0x00030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 16KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00004000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA406.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA406.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA406.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA406.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA406.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 192KB UMAP0 memory",
            name: "IRAM",
            base: 0x11810000,
            len: 0x00030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 16KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00004000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA406.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA406.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA406.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA406.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA406.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA406.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA406.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:12 GMT


module ti.catalog.c6000.TMS320CDRA406

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA406.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA406 ========
    20     *  The DRA406 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA406 inherits ITMS320CDRx40x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA414

metaonly module ti.catalog.c6000.TMS320CDRA414
index URL

The DRA414 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA414.xdc
var TMS320CDRA414 = xdc.useModule('ti.catalog.c6000.TMS320CDRA414');
module-wide config parameters
    const TMS320CDRA414.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11810000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA414.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA414.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA414.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 192KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11810000,
                    len: 0x00030000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 16KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00004000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA414.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA414.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA414.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11810000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA414.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA414.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA414.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA414.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 192KB UMAP0 memory",
                name: "IRAM",
                base: 0x11810000,
                len: 0x00030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 16KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00004000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA414.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA414.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA414.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA414.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA414.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 192KB UMAP0 memory",
            name: "IRAM",
            base: 0x11810000,
            len: 0x00030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 16KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00004000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA414.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA414.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA414.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA414.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA414.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA414.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA414.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:12 GMT


module ti.catalog.c6000.TMS320CDRA414

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA414.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA414 ========
    20     *  The DRA414 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA414 inherits ITMS320CDRx40x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA416

metaonly module ti.catalog.c6000.TMS320CDRA416
index URL

The DRA416 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA416.xdc
var TMS320CDRA416 = xdc.useModule('ti.catalog.c6000.TMS320CDRA416');
module-wide config parameters
    const TMS320CDRA416.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11810000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA416.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA416.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA416.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 192KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11810000,
                    len: 0x00030000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 16KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00004000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA416.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA416.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA416.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11810000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA416.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA416.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA416.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA416.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 192KB UMAP0 memory",
                name: "IRAM",
                base: 0x11810000,
                len: 0x00030000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 16KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00004000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA416.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA416.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA416.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA416.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA416.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 192KB UMAP0 memory",
            name: "IRAM",
            base: 0x11810000,
            len: 0x00030000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 16KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00004000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA416.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA416.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA416.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA416.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA416.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA416.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA416.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:12 GMT


module ti.catalog.c6000.TMS320CDRA416

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA416.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA416 ========
    20     *  The DRA416 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA416 inherits ITMS320CDRx40x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA442

metaonly module ti.catalog.c6000.TMS320CDRA442
index URL

The DRA442 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA442.xdc
var TMS320CDRA442 = xdc.useModule('ti.catalog.c6000.TMS320CDRA442');
module-wide config parameters
    const TMS320CDRA442.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA442.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA442.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA442.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA442.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA442.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA442.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA442.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA442.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA442.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA442.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA442.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA442.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA442.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA442.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA442.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA442.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA442.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA442.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA442.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA442.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA442.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA442.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:12 GMT


module ti.catalog.c6000.TMS320CDRA442

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA442.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA442 ========
    20     *  The DRA442 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA442 inherits ITMS320CDRA44x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA444

metaonly module ti.catalog.c6000.TMS320CDRA444
index URL

The DRA444 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA444.xdc
var TMS320CDRA444 = xdc.useModule('ti.catalog.c6000.TMS320CDRA444');
module-wide config parameters
    const TMS320CDRA444.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA444.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA444.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA444.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA444.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA444.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA444.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA444.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA444.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA444.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA444.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA444.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA444.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA444.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA444.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA444.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA444.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA444.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA444.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA444.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA444.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA444.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA444.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:12 GMT


module ti.catalog.c6000.TMS320CDRA444

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA444.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA444 ========
    20     *  The DRA444 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA444 inherits ITMS320CDRA44x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA446

metaonly module ti.catalog.c6000.TMS320CDRA446
index URL

The DRA446 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA446.xdc
var TMS320CDRA446 = xdc.useModule('ti.catalog.c6000.TMS320CDRA446');
module-wide config parameters
    const TMS320CDRA446.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA446.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA446.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA446.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA446.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA446.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA446.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA446.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA446.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA446.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA446.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA446.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA446.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA446.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA446.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA446.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA446.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA446.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA446.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA446.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA446.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA446.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA446.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:12 GMT


module ti.catalog.c6000.TMS320CDRA446

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA446.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA446 ========
    20     *  The DRA446 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA446 inherits ITMS320CDRA44x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA447

metaonly module ti.catalog.c6000.TMS320CDRA447
index URL

The DRA447 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA447.xdc
var TMS320CDRA447 = xdc.useModule('ti.catalog.c6000.TMS320CDRA447');
module-wide config parameters
    const TMS320CDRA447.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA447.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA447.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA447.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 128KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA447.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA447.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA447.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA447.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA447.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA447.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA447.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA447.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA447.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA447.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA447.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA447.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA447.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA447.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA447.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA447.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA447.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA447.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA447.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:12 GMT


module ti.catalog.c6000.TMS320CDRA447

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA447.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA447 ========
    20     *  The DRA447 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA447 inherits ITMS320CDRA44x
    26    {
    27
    28        override config long cacheSizeL2[string] = [
    29            ["0k",  0x00000],
    30            ["32k", 0x08000],
    31            ["64k", 0x10000],
    32            ["128k", 0x20000]
    33        ];
    34
    35        override readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    36                 ['l1PMode',{desc:"L1P Cache",
    37                             base: 0x11E08000,
    38                             map : [["0k",0x0000],
    39                                    ["4k",0x1000],
    40                                    ["8k",0x2000],
    41                                    ["16k",0x4000],
    42                                    ["32k",0x8000]],
    43                             defaultValue: "32k",
    44                             memorySection: "L1PSRAM"}],
    45
    46                     ['l1DMode',{desc:"L1D Cache",
    47                             base: 0x11F04000,
    48                             map : [["0k",0x0000],
    49                                    ["4k",0x1000],
    50                                    ["8k",0x2000],
    51                                    ["16k",0x4000],
    52                                    ["32k",0x8000]],
    53                             defaultValue: "32k",
    54                             memorySection: "L1DSRAM"}],
    55
    56                 ['l2Mode',{desc:"L2 Cache",
    57                             base: 0x11800000,
    58                             map : [["0k",0x0000],
    59                                    ["32k",0x8000],
    60                                    ["64k",0x10000],
    61                                    ],
    62                             defaultValue: "0k",
    63                             memorySection: "IRAM"}],
    64
    65        ];
    66
    67    instance:
    68
    69        /*!
    70         *  ======== memMap ========
    71         *  The default memory map for this device
    72         */
    73        override config xdc.platform.IPlatform.Memory memMap[string] = [
    74            ["IRAM", {
    75                comment:    "Internal 128KB UMAP0 memory",
    76                name:       "IRAM",
    77                base:       0x11800000,
    78                len:        0x00020000,
    79                space:      "code/data",
    80                access:     "RWX"
    81            }],
    82
    83            ["L1PSRAM", {
    84                comment:    "Internal 32KB RAM/CACHE L1 program memory",
    85                name:       "L1PSRAM",
    86                base:       0x11E08000,
    87                len:        0x00008000,
    88                space:      "code",
    89                access:     "RWX"
    90            }],
    91
    92            ["L1DSRAM", {
    93                comment:    "Internal 80KB RAM/CACHE L1 data memory",
    94                name:       "L1DSRAM",
    95                base:       0x11F04000,
    96                len:        0x00014000,
    97                space:      "data",
    98                access:     "RW"
    99            }],
   100
   101            ["ARM_RAM", {
   102                comment:    "Internal ARM RAM memory",
   103                name:       "ARM_RAM",
   104                base:       0x10008000,
   105                len:        0x00004000,
   106                space:      "data",
   107                access:     "RW"
   108            }],
   109        ];
   110
   111    };
   112    /*
   113     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
   114     */
   115


module ti.catalog.c6000.TMS320CDRA457

metaonly module ti.catalog.c6000.TMS320CDRA457
index URL

The DRA457 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA457.xdc
var TMS320CDRA457 = xdc.useModule('ti.catalog.c6000.TMS320CDRA457');
module-wide config parameters
    const TMS320CDRA457.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA457.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA457.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA457.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 128KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA457.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA457.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA457.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA457.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA457.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA457.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA457.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA457.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA457.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA457.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA457.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA457.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA457.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA457.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA457.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA457.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA457.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA457.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA457.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:12 GMT


module ti.catalog.c6000.TMS320CDRA457

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA457.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA457 ========
    20     *  The DRA457 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA457 inherits ITMS320CDRA45x
    26    {
    27    }
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA459

metaonly module ti.catalog.c6000.TMS320CDRA459
index URL

The DRA459 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRA459.xdc
var TMS320CDRA459 = xdc.useModule('ti.catalog.c6000.TMS320CDRA459');
module-wide config parameters
    const TMS320CDRA459.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRA459.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CDRA459.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRA459.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 128KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRA459.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRA459.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRA459.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRA459.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA459.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CDRA459.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRA459.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 128KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRA459.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRA459.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRA459.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRA459.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRA459.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 128KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CDRA459.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRA459.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRA459.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRA459.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRA459.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRA459.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRA459.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:13 GMT


module ti.catalog.c6000.TMS320CDRA459

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRA459.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CDRA459 ========
    20     *  The DRA459 device data sheet module.
    21     *
    22     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CDRA459 inherits ITMS320CDRA45x
    26    {
    27    }
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRI300

metaonly module ti.catalog.c6000.TMS320CDRI300
index URL

The DRI300 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CDRI300.xdc
var TMS320CDRI300 = xdc.useModule('ti.catalog.c6000.TMS320CDRI300');
module-wide config parameters
    const TMS320CDRI300.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "4-way cache (0k)",
                        0x0000
                    ],
                    [
                        "4-way cache (32k)",
                        0x8000
                    ],
                    [
                        "4-way cache (64k)",
                        0x10000
                    ],
                    [
                        "4-way cache (128k)",
                        0x20000
                    ],
                    [
                        "4-way cache (256k)",
                        0x40000
                    ]
                ],
                defaultValue: "4-way cache (0k)",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CDRI300.cacheSize// = Long[string] [
        [
            "4-way cache (0k)",
            0x00000
        ],
        [
            "4-way cache (32k)",
            0x08000
        ],
        [
            "4-way cache (64k)",
            0x10000
        ],
        [
            "4-way cache (128k)",
            0x20000
        ],
        [
            "4-way cache (256k)",
            0x40000
        ],
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320CDRI300.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6400";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    name: "IRAM",
                    comment: "Internal L2 memory",
                    base: 0x00000,
                    len: 0x80000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CDRI300.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CDRI300.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CDRI300.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "4-way cache (0k)",
                    0x0000
                ],
                [
                    "4-way cache (32k)",
                    0x8000
                ],
                [
                    "4-way cache (64k)",
                    0x10000
                ],
                [
                    "4-way cache (128k)",
                    0x20000
                ],
                [
                    "4-way cache (256k)",
                    0x40000
                ]
            ],
            defaultValue: "4-way cache (0k)",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CDRI300.cacheSize // module-wide
index URL
XDCscript usage meta-domain
TMS320CDRI300.cacheSize = Long[string] [
    [
        "4-way cache (0k)",
        0x00000
    ],
    [
        "4-way cache (32k)",
        0x08000
    ],
    [
        "4-way cache (64k)",
        0x10000
    ],
    [
        "4-way cache (128k)",
        0x20000
    ],
    [
        "4-way cache (256k)",
        0x40000
    ],
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
// Instance config-params object
    params.cpuCore = String "6400";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                name: "IRAM",
                comment: "Internal L2 memory",
                base: 0x00000,
                len: 0x80000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CDRI300.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
...
params.cpuCore = String "6400";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CDRI300.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CDRI300.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
...
params.dataWordSize = Int 4;
config TMS320CDRI300.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
...
params.deviceHeader = String undefined;
config TMS320CDRI300.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            name: "IRAM",
            comment: "Internal L2 memory",
            base: 0x00000,
            len: 0x80000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CDRI300.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CDRI300.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CDRI300.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CDRI300.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CDRI300.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CDRI300.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CDRI300.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:13 GMT


module ti.catalog.c6000.TMS320CDRI300

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CDRI300.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CDRI300 ========
    21     *  The DRI300 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CDRI300 inherits ITMS320C64_512K
    27    {
    28
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CF761990

metaonly module ti.catalog.c6000.TMS320CF761990
index URL

The C64P device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CF761990.xdc
var TMS320CF761990 = xdc.useModule('ti.catalog.c6000.TMS320CF761990');
module-wide config parameters
    const TMS320CF761990.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CF761990.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CF761990.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320CF761990.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "F761990";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB L2 UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM0",
                {
                    comment: "Internal ARM RAM instruction memory",
                    name: "ARM_RAM0",
                    base: 0x02000000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "ARM_RAM1",
                {
                    comment: "Internal ARM RAM data memory",
                    name: "ARM_RAM1",
                    base: 0x02008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CF761990.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CF761990.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CF761990.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CF761990.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CF761990.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CF761990.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CF761990.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
// Instance config-params object
    params.cpuCore = String "F761990";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM0",
            {
                comment: "Internal ARM RAM instruction memory",
                name: "ARM_RAM0",
                base: 0x02000000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "ARM_RAM1",
            {
                comment: "Internal ARM RAM data memory",
                name: "ARM_RAM1",
                base: 0x02008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CF761990.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
...
params.cpuCore = String "F761990";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CF761990.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CF761990.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
...
params.dataWordSize = Int 4;
config TMS320CF761990.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
...
params.deviceHeader = String undefined;
config TMS320CF761990.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM0",
        {
            comment: "Internal ARM RAM instruction memory",
            name: "ARM_RAM0",
            base: 0x02000000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "ARM_RAM1",
        {
            comment: "Internal ARM RAM data memory",
            name: "ARM_RAM1",
            base: 0x02008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CF761990.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CF761990.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CF761990.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CF761990.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CF761990.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CF761990.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CF761990.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:13 GMT


module ti.catalog.c6000.TMS320CF761990

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CF761990.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CF761990 ========
    21     *  The C64P device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CF761990 inherits ti.catalog.ICpuDataSheet
    27    {
    28
    29        config long cacheSizeL1[string] = [
    30            ["0k",  0x0000],
    31            ["4k",  0x1000],
    32            ["8k",  0x2000],
    33            ["16k", 0x4000],
    34            ["32k", 0x8000],
    35        ];
    36
    37        config long cacheSizeL2[string] = [
    38            ["0k",  0x00000],
    39            ["32k", 0x08000],
    40            ["64k", 0x10000]
    41        ];
    42
    43        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    44             ['l1PMode',{desc:"L1P Cache",
    45                         base: 0x11E08000,
    46                         map : [["0k",0x0000],
    47                                ["4k",0x1000],
    48                                ["8k",0x2000],
    49                                ["16k",0x4000],
    50                                ["32k",0x8000]],
    51                         defaultValue: "32k",
    52                         memorySection: "L1PSRAM"}],
    53
    54                     ['l1DMode',{desc:"L1D Cache",
    55                         base: 0x11F04000,
    56                         map : [["0k",0x0000],
    57                                ["4k",0x1000],
    58                                ["8k",0x2000],
    59                                ["16k",0x4000],
    60                                ["32k",0x8000]],
    61                         defaultValue: "32k",
    62                         memorySection: "L1DSRAM"}],
    63
    64             ['l2Mode',{desc:"L2 Cache",
    65                         base: 0x11800000,
    66                         map : [["0k",0x0000],
    67                                ["32k",0x8000],
    68                                ["64k",0x10000]],
    69                         defaultValue: "0k",
    70                         memorySection: "IRAM"}],
    71
    72        ];
    73
    74    instance:
    75        override config int     minProgUnitSize = 1;
    76        override config int     minDataUnitSize = 1;
    77        override config int     dataWordSize    = 4;
    78
    79        override config string   cpuCore        = "F761990";
    80        override config string   isa = "64P";
    81        override config string   cpuCoreRevision = "1.0";
    82
    83        config xdc.platform.IPlatform.Memory memMap[string]  = [
    84            ["IRAM", {
    85                comment:    "Internal 64KB L2 UMAP0 memory",
    86                name:       "IRAM",
    87                base:       0x11800000,
    88                len:        0x00010000,
    89                space:      "code/data",
    90                access:     "RWX"
    91            }],
    92
    93            ["L1PSRAM", {
    94                comment:    "Internal 32KB L1 program memory",
    95                name:       "L1PSRAM",
    96                base:       0x11E08000,
    97                len:        0x00008000,
    98                space:      "code",
    99                access:     "RWX"
   100            }],
   101
   102            ["L1DSRAM", {
   103                comment:    "Internal 80KB L1 data memory",
   104                name:       "L1DSRAM",
   105                base:       0x11F04000,
   106                len:        0x00014000,
   107                space:      "data",
   108                access:     "RW"
   109            }],
   110
   111            ["ARM_RAM0", {
   112                comment:    "Internal ARM RAM instruction memory",
   113                name:       "ARM_RAM0",
   114                base:       0x02000000,
   115                len:        0x00008000,
   116                space:      "code",
   117                access:     "RWX"
   118            }],
   119
   120            ["ARM_RAM1", {
   121                comment:    "Internal ARM RAM data memory",
   122                name:       "ARM_RAM1",
   123                base:       0x02008000,
   124                len:        0x00004000,
   125                space:      "data",
   126                access:     "RW"
   127            }],
   128        ];
   129    };
   130    /*
   131     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
   132     */
   133


module ti.catalog.c6000.TMS320CTCI6482

metaonly module ti.catalog.c6000.TMS320CTCI6482
index URL

The TCI6482 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CTCI6482.xdc
var TMS320CTCI6482 = xdc.useModule('ti.catalog.c6000.TMS320CTCI6482');
module-wide config parameters
    const TMS320CTCI6482.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CTCI6482.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CTCI6482.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320CTCI6482.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 2MB UMAP0 memory",
                    name: "IRAM",
                    base: 0x800000,
                    len: 0x200000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CTCI6482.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CTCI6482.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CTCI6482.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CTCI6482.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6482.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CTCI6482.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6482.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 2MB UMAP0 memory",
                name: "IRAM",
                base: 0x800000,
                len: 0x200000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CTCI6482.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CTCI6482.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CTCI6482.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
...
params.dataWordSize = Int 4;
config TMS320CTCI6482.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
...
params.deviceHeader = String undefined;
config TMS320CTCI6482.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 2MB UMAP0 memory",
            name: "IRAM",
            base: 0x800000,
            len: 0x200000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CTCI6482.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CTCI6482.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CTCI6482.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6482.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CTCI6482.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CTCI6482.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CTCI6482.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:13 GMT


module ti.catalog.c6000.TMS320CTCI6482

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CTCI6482.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CTCI6482 ========
    21     *  The TCI6482 device data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CTCI6482 inherits IHimalaya
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CTCI6484

metaonly module ti.catalog.c6000.TMS320CTCI6484
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CTCI6484.xdc
var TMS320CTCI6484 = xdc.useModule('ti.catalog.c6000.TMS320CTCI6484');
module-wide config parameters
    const TMS320CTCI6484.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CTCI6484.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CTCI6484.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320CTCI6484.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 2MB L2 memory",
                    name: "IRAM",
                    base: 0x800000,
                    len: 0x200000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CTCI6484.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CTCI6484.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CTCI6484.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CTCI6484.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6484.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CTCI6484.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6484.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 2MB L2 memory",
                name: "IRAM",
                base: 0x800000,
                len: 0x200000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CTCI6484.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CTCI6484.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CTCI6484.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
...
params.dataWordSize = Int 4;
config TMS320CTCI6484.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
...
params.deviceHeader = String undefined;
config TMS320CTCI6484.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 2MB L2 memory",
            name: "IRAM",
            base: 0x800000,
            len: 0x200000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CTCI6484.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CTCI6484.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CTCI6484.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6484.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CTCI6484.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CTCI6484.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CTCI6484.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:13 GMT


module ti.catalog.c6000.TMS320CTCI6484

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CTCI6484.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CTCI6484 ========
    21     */
    22    metaonly module TMS320CTCI6484 inherits ITMS320CTCI6484
    23    {
    24    };
    25    /*
    26     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.catalog.c6000.TMS320CTCI6486

metaonly module ti.catalog.c6000.TMS320CTCI6486
index URL

The TCI6486 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CTCI6486.xdc
var TMS320CTCI6486 = xdc.useModule('ti.catalog.c6000.TMS320CTCI6486');
module-wide config parameters
    const TMS320CTCI6486.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "LL2RAM"
            }
        ]
    ];
     TMS320CTCI6486.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CTCI6486.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320CTCI6486.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "LL2RAM",
                {
                    comment: "608K Local L2 RAM/CACHE memory",
                    name: "LL2RAM",
                    base: 0x00800000,
                    len: 0x00098000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "SL2RAM",
                {
                    comment: "768K Shared L2 RAM memory",
                    name: "SL2RAM",
                    base: 0x00200000,
                    len: 0x000C0000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CTCI6486.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CTCI6486.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CTCI6486.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "LL2RAM"
        }
    ]
];
config TMS320CTCI6486.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6486.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CTCI6486.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6486.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "LL2RAM",
            {
                comment: "608K Local L2 RAM/CACHE memory",
                name: "LL2RAM",
                base: 0x00800000,
                len: 0x00098000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "SL2RAM",
            {
                comment: "768K Shared L2 RAM memory",
                name: "SL2RAM",
                base: 0x00200000,
                len: 0x000C0000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CTCI6486.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CTCI6486.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CTCI6486.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
...
params.dataWordSize = Int 4;
config TMS320CTCI6486.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
...
params.deviceHeader = String undefined;
config TMS320CTCI6486.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "LL2RAM",
        {
            comment: "608K Local L2 RAM/CACHE memory",
            name: "LL2RAM",
            base: 0x00800000,
            len: 0x00098000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "SL2RAM",
        {
            comment: "768K Shared L2 RAM memory",
            name: "SL2RAM",
            base: 0x00200000,
            len: 0x000C0000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CTCI6486.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CTCI6486.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CTCI6486.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6486.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CTCI6486.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CTCI6486.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CTCI6486.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:13 GMT


module ti.catalog.c6000.TMS320CTCI6486

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CTCI6486.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CTCI6486 ========
    20     *  The TCI6486 device data sheet module.
    21     *
    22     */
    23    metaonly module TMS320CTCI6486 inherits ITMS320CTCI6486
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320CTCI6487

metaonly module ti.catalog.c6000.TMS320CTCI6487
index URL

The TCI6487 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CTCI6487.xdc
var TMS320CTCI6487 = xdc.useModule('ti.catalog.c6000.TMS320CTCI6487');
module-wide config parameters
    const TMS320CTCI6487.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2RAM"
            }
        ]
    ];
     TMS320CTCI6487.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CTCI6487.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
     TMS320CTCI6487.memBlock// = IPlatform.Memory[string] [
        [
            "ASYMGEM0L2RAM",
            {
                comment: "1536K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00180000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM1L2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM2L2RAM",
            {
                comment: "512K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SYMGEML2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320CTCI6487.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CTCI6487.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CTCI6487.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CTCI6487.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2RAM"
        }
    ]
];
config TMS320CTCI6487.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6487.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CTCI6487.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6487.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config TMS320CTCI6487.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6487.memBlock = IPlatform.Memory[string] [
    [
        "ASYMGEM0L2RAM",
        {
            comment: "1536K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00180000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM1L2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM2L2RAM",
        {
            comment: "512K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SYMGEML2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CTCI6487.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CTCI6487.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CTCI6487.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
...
params.dataWordSize = Int 4;
config TMS320CTCI6487.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
...
params.deviceHeader = String undefined;
config TMS320CTCI6487.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CTCI6487.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CTCI6487.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CTCI6487.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6487.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CTCI6487.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CTCI6487.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CTCI6487.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:14 GMT


module ti.catalog.c6000.TMS320CTCI6487

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CTCI6487.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CTCI6487 ========
    20     *  The TCI6487 device data sheet module.
    21     *
    22     *  This module implements the ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CTCI6487 inherits ITMS320CTCI648x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CTCI6488

metaonly module ti.catalog.c6000.TMS320CTCI6488
index URL

The TCI6488 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CTCI6488.xdc
var TMS320CTCI6488 = xdc.useModule('ti.catalog.c6000.TMS320CTCI6488');
module-wide config parameters
    const TMS320CTCI6488.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2RAM"
            }
        ]
    ];
     TMS320CTCI6488.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CTCI6488.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
     TMS320CTCI6488.memBlock// = IPlatform.Memory[string] [
        [
            "ASYMGEM0L2RAM",
            {
                comment: "1536K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00180000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM1L2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM2L2RAM",
            {
                comment: "512K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SYMGEML2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320CTCI6488.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CTCI6488.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CTCI6488.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CTCI6488.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2RAM"
        }
    ]
];
config TMS320CTCI6488.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6488.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CTCI6488.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6488.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config TMS320CTCI6488.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6488.memBlock = IPlatform.Memory[string] [
    [
        "ASYMGEM0L2RAM",
        {
            comment: "1536K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00180000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM1L2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM2L2RAM",
        {
            comment: "512K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SYMGEML2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CTCI6488.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CTCI6488.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CTCI6488.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
...
params.dataWordSize = Int 4;
config TMS320CTCI6488.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
...
params.deviceHeader = String undefined;
config TMS320CTCI6488.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CTCI6488.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CTCI6488.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CTCI6488.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6488.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CTCI6488.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CTCI6488.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CTCI6488.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:14 GMT


module ti.catalog.c6000.TMS320CTCI6488

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CTCI6488.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320CTCI6488 ========
    20     *  The TCI6488 device data sheet module.
    21     *
    22     *  This module implements the ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320CTCI6488 inherits ITMS320CTCI648x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CTCI6498

metaonly module ti.catalog.c6000.TMS320CTCI6498
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CTCI6498.xdc
var TMS320CTCI6498 = xdc.useModule('ti.catalog.c6000.TMS320CTCI6498');
module-wide config parameters
    const TMS320CTCI6498.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320CTCI6498.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CTCI6498.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320CTCI6498.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "2MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00200000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CTCI6498.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CTCI6498.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CTCI6498.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320CTCI6498.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6498.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CTCI6498.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTCI6498.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "2MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00200000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CTCI6498.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CTCI6498.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CTCI6498.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
...
params.dataWordSize = Int 4;
config TMS320CTCI6498.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
...
params.deviceHeader = String undefined;
config TMS320CTCI6498.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "2MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00200000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320CTCI6498.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CTCI6498.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CTCI6498.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CTCI6498.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CTCI6498.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CTCI6498.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CTCI6498.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:14 GMT


module ti.catalog.c6000.TMS320CTCI6498

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CTCI6498.xdc ========
    15     */
    16
    17    metaonly module TMS320CTCI6498 inherits ITMS320CTCI6497
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320CTNETV2685

metaonly module ti.catalog.c6000.TMS320CTNETV2685
index URL

The TNETV2685 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320CTNETV2685.xdc
var TMS320CTNETV2685 = xdc.useModule('ti.catalog.c6000.TMS320CTNETV2685');
module-wide config parameters
    const TMS320CTNETV2685.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0xA00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320CTNETV2685.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320CTNETV2685.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320CTNETV2685.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 1408KB L2 RAM/CACHE",
                    name: "IRAM",
                    base: 0xA00000,
                    len: 0x160000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320CTNETV2685.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320CTNETV2685.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320CTNETV2685.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0xA00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320CTNETV2685.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTNETV2685.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320CTNETV2685.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320CTNETV2685.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 1408KB L2 RAM/CACHE",
                name: "IRAM",
                base: 0xA00000,
                len: 0x160000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320CTNETV2685.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320CTNETV2685.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320CTNETV2685.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
...
params.dataWordSize = Int 4;
config TMS320CTNETV2685.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
...
params.deviceHeader = String undefined;
config TMS320CTNETV2685.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 1408KB L2 RAM/CACHE",
            name: "IRAM",
            base: 0xA00000,
            len: 0x160000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320CTNETV2685.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
...
params.minDataUnitSize = Int 1;
config TMS320CTNETV2685.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
...
params.minProgUnitSize = Int 1;
config TMS320CTNETV2685.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320CTNETV2685.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320CTNETV2685.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320CTNETV2685.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320CTNETV2685.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:14 GMT


module ti.catalog.c6000.TMS320CTNETV2685

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320CTNETV2685.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320CTNETV2685 ========
    21     *  The TNETV2685 device data sheet module.
    22     *
    23     *  This module implements the ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320CTNETV2685 inherits ITMS320C6452
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320DA802

metaonly module ti.catalog.c6000.TMS320DA802
index URL

The DA802 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA802.xdc
var TMS320DA802 = xdc.useModule('ti.catalog.c6000.TMS320DA802');
module-wide config parameters
    const TMS320DA802.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA802.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA802.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA802.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 128KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA802.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA802.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA802.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA802.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA802.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA802.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA802.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 128KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA802.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA802.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA802.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
...
params.dataWordSize = Int 4;
config TMS320DA802.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
...
params.deviceHeader = String undefined;
config TMS320DA802.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 128KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320DA802.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA802.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA802.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA802.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA802.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA802.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA802.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:14 GMT


module ti.catalog.c6000.TMS320DA802

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA802.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA802 ========
    21     *  The DA802 device data sheet module.
    22     */
    23    metaonly module TMS320DA802 inherits ITMS320DA8xx
    24    {
    25        override config long cacheSizeL2[string] = [
    26                ["0k",  0x00000],
    27                ["32k", 0x08000],
    28                ["64k", 0x10000],
    29                ["128k", 0x20000]
    30        ];
    31
    32        override readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    33                ['l1PMode',{desc:"L1P Cache",
    34                             base: 0x11E00000,
    35                             map : [["0k",0x0000],
    36                                    ["4k",0x1000],
    37                                    ["8k",0x2000],
    38                                    ["16k",0x4000],
    39                                    ["32k",0x8000]],
    40                             defaultValue: "32k",
    41                             memorySection: "L1PSRAM"}],
    42
    43                ['l1DMode',{desc:"L1D Cache",
    44                             base: 0x11F00000,
    45                             map : [["0k",0x0000],
    46                                    ["4k",0x1000],
    47                                    ["8k",0x2000],
    48                                    ["16k",0x4000],
    49                                    ["32k",0x8000]],
    50                             defaultValue: "32k",
    51                             memorySection: "L1DSRAM"}],
    52
    53                ['l2Mode',{desc:"L2 Cache",
    54                             base: 0x11800000,
    55                             map : [["0k",0x0000],
    56                                    ["32k",0x8000],
    57                                    ["64k",0x10000],
    58                                    ["128k",0x20000]],
    59                             defaultValue: "0k",
    60                             memorySection: "IRAM"}],
    61
    62        ];
    63
    64
    65    instance:
    66
    67        /*!
    68         *  ======== memMap ========
    69         *  The default memory map for this device
    70         */
    71        override config xdc.platform.IPlatform.Memory memMap[string] = [
    72            ["IROM", {
    73                comment:    "Internal 1MB L2 ROM",
    74                name:       "IROM",
    75                base:       0x11700000,
    76                len:        0x00100000,
    77                space:      "code/data",
    78                access:     "RX"
    79            }],
    80
    81            ["IRAM", {
    82                comment:    "Internal 128KB L2 memory",
    83                name:       "IRAM",
    84                base:       0x11800000,
    85                len:        0x00020000,
    86                space:      "code/data",
    87                access:     "RWX"
    88            }],
    89
    90            ["L1PSRAM", {
    91                comment:    "Internal 32KB L1 program memory",
    92                name:       "L1PSRAM",
    93                base:       0x11E00000,
    94                len:        0x00008000,
    95                space:      "code",
    96                access:     "RWX"
    97            }],
    98
    99            ["L1DSRAM", {
   100                comment:    "Internal 32KB L1 data memory",
   101                name:       "L1DSRAM",
   102                base:       0x11F00000,
   103                len:        0x00008000,
   104                space:      "data",
   105                access:     "RW"
   106            }],
   107        ];
   108    };
   109    /*
   110     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
   111     */
   112


module ti.catalog.c6000.TMS320DA803

metaonly module ti.catalog.c6000.TMS320DA803
index URL

The DA803 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA803.xdc
var TMS320DA803 = xdc.useModule('ti.catalog.c6000.TMS320DA803');
module-wide config parameters
    const TMS320DA803.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA803.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA803.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA803.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA803.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA803.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA803.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA803.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA803.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA803.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA803.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA803.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA803.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA803.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
...
params.dataWordSize = Int 4;
config TMS320DA803.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
...
params.deviceHeader = String undefined;
config TMS320DA803.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320DA803.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA803.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA803.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA803.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA803.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA803.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA803.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:14 GMT


module ti.catalog.c6000.TMS320DA803

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA803.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA803 ========
    21     *  The DA803 device data sheet module.
    22     */
    23    metaonly module TMS320DA803 inherits ITMS320DA8xx
    24    {
    25
    26    instance:
    27
    28        /*!
    29         *  ======== memMap ========
    30         *  The default memory map for this device
    31         */
    32        override config xdc.platform.IPlatform.Memory memMap[string] = [
    33            ["IROM", {
    34                comment:    "Internal 1MB L2 ROM",
    35                name:       "IROM",
    36                base:       0x11700000,
    37                len:        0x00100000,
    38                space:      "code/data",
    39                access:     "RX"
    40            }],
    41
    42            ["IRAM", {
    43                comment:    "Internal 256KB L2 memory",
    44                name:       "IRAM",
    45                base:       0x11800000,
    46                len:        0x00040000,
    47                space:      "code/data",
    48                access:     "RWX"
    49            }],
    50
    51            ["L1PSRAM", {
    52                comment:    "Internal 32KB L1 program memory",
    53                name:       "L1PSRAM",
    54                base:       0x11E00000,
    55                len:        0x00008000,
    56                space:      "code",
    57                access:     "RWX"
    58            }],
    59
    60            ["L1DSRAM", {
    61                comment:    "Internal 32KB L1 data memory",
    62                name:       "L1DSRAM",
    63                base:       0x11F00000,
    64                len:        0x00008000,
    65                space:      "data",
    66                access:     "RW"
    67            }],
    68        ];
    69    };
    70    /*
    71     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:35; /db/ztree/library/trees/platform/platform-n27x/src/
    72     */
    73


module ti.catalog.c6000.TMS320DA804

metaonly module ti.catalog.c6000.TMS320DA804
index URL

The DA804 device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA804.xdc
var TMS320DA804 = xdc.useModule('ti.catalog.c6000.TMS320DA804');
module-wide config parameters
    const TMS320DA804.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA804.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA804.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA804.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA804.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA804.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA804.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA804.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA804.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA804.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA804.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA804.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA804.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA804.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA804.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA804.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA804.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA804.Params;
...
params.dataWordSize = Int 4;
config TMS320DA804.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA804.Params;
...
params.deviceHeader = String undefined;
config TMS320DA804.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DA804.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA804.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA804.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA804.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA804.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA804.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA804.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA804.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA804.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA804.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA804.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:14 GMT


module ti.catalog.c6000.TMS320DA804

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA804.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA804 ========
    21     *  The DA804 device data sheet module.
    22     */
    23    metaonly module TMS320DA804 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DA805

metaonly module ti.catalog.c6000.TMS320DA805
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA805.xdc
var TMS320DA805 = xdc.useModule('ti.catalog.c6000.TMS320DA805');
module-wide config parameters
    const TMS320DA805.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA805.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA805.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA805.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA805.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA805.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA805.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA805.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA805.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA805.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA805.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA805.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA805.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA805.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA805.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA805.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA805.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA805.Params;
...
params.dataWordSize = Int 4;
config TMS320DA805.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA805.Params;
...
params.deviceHeader = String undefined;
config TMS320DA805.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DA805.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA805.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA805.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA805.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA805.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA805.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA805.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA805.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA805.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA805.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA805.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:15 GMT


module ti.catalog.c6000.TMS320DA805

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA805.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA805 ========
    21     */
    22    metaonly module TMS320DA805 inherits ITMS320DA8xx
    23    {
    24    };
    25    /*
    26     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.catalog.c6000.TMS320DA807

metaonly module ti.catalog.c6000.TMS320DA807
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA807.xdc
var TMS320DA807 = xdc.useModule('ti.catalog.c6000.TMS320DA807');
module-wide config parameters
    const TMS320DA807.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA807.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA807.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA807.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "L2ROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA807.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA807.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA807.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA807.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA807.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA807.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA807.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA807.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "L2ROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA807.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA807.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA807.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA807.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA807.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA807.Params;
...
params.dataWordSize = Int 4;
config TMS320DA807.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA807.Params;
...
params.deviceHeader = String undefined;
config TMS320DA807.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DA807.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2ROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320DA807.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA807.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA807.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA807.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA807.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA807.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA807.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA807.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA807.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA807.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:15 GMT


module ti.catalog.c6000.TMS320DA807

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA807.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA807 ========
    21     */
    22    metaonly module TMS320DA807 inherits ITMS320DA8xx
    23    {
    24    instance:
    25        override config xdc.platform.IPlatform.Memory memMap[string]  = [
    26            ["L2ROM", {
    27                comment:    "Internal 1MB L2 ROM",
    28                name:       "IROM",
    29                base:       0x11700000,
    30                len:        0x00100000,
    31                space:      "code/data",
    32                access:     "RX"
    33            }],
    34
    35            ["IRAM", {
    36                comment:    "Internal 256KB L2 memory",
    37                name:       "IRAM",
    38                base:       0x11800000,
    39                len:        0x00040000,
    40                space:      "code/data",
    41                access:     "RWX"
    42            }],
    43
    44            ["L1PSRAM", {
    45                comment:    "Internal 32KB L1 program memory",
    46                name:       "L1PSRAM",
    47                base:       0x11E00000,
    48                len:        0x00008000,
    49                space:      "code",
    50                access:     "RWX"
    51            }],
    52
    53            ["L1DSRAM", {
    54                comment:    "Internal 32KB L1 data memory",
    55                name:       "L1DSRAM",
    56                base:       0x11F00000,
    57                len:        0x00008000,
    58                space:      "data",
    59                access:     "RW"
    60            }],
    61        ];
    62    };
    63    /*
    64     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    65     */
    66


module ti.catalog.c6000.TMS320DA808

metaonly module ti.catalog.c6000.TMS320DA808
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA808.xdc
var TMS320DA808 = xdc.useModule('ti.catalog.c6000.TMS320DA808');
module-wide config parameters
    const TMS320DA808.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA808.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA808.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA808.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA808.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA808.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA808.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA808.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA808.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA808.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA808.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA808.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA808.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA808.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA808.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA808.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA808.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA808.Params;
...
params.dataWordSize = Int 4;
config TMS320DA808.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA808.Params;
...
params.deviceHeader = String undefined;
config TMS320DA808.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DA808.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA808.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA808.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA808.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA808.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA808.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA808.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA808.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA808.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA808.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA808.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:15 GMT


module ti.catalog.c6000.TMS320DA808

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA808.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA808 ========
    21     */
    22    metaonly module TMS320DA808 inherits ITMS320DA8xx
    23    {
    24    };
    25    /*
    26     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.catalog.c6000.TMS320DA810

metaonly module ti.catalog.c6000.TMS320DA810
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA810.xdc
var TMS320DA810 = xdc.useModule('ti.catalog.c6000.TMS320DA810');
module-wide config parameters
    const TMS320DA810.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA810.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA810.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA810.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA810.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA810.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA810.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA810.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA810.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA810.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA810.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA810.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA810.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA810.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA810.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA810.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA810.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA810.Params;
...
params.dataWordSize = Int 4;
config TMS320DA810.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA810.Params;
...
params.deviceHeader = String undefined;
config TMS320DA810.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DA810.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA810.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA810.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA810.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA810.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA810.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA810.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA810.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA810.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA810.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA810.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:15 GMT


module ti.catalog.c6000.TMS320DA810

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA810.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA810 ========
    21     */
    22    metaonly module TMS320DA810 inherits ITMS320DA8xx
    23    {
    24    };
    25    /*
    26     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.catalog.c6000.TMS320DA828

metaonly module ti.catalog.c6000.TMS320DA828
index URL

The C64P device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA828.xdc
var TMS320DA828 = xdc.useModule('ti.catalog.c6000.TMS320DA828');
module-wide config parameters
    const TMS320DA828.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA828.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA828.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA828.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA828.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA828.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA828.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA828.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA828.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA828.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA828.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA828.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA828.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA828.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.dataWordSize = Int 4;
config TMS320DA828.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.deviceHeader = String undefined;
config TMS320DA828.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA828.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA828.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA828.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA828.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA828.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA828.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA828.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:15 GMT


module ti.catalog.c6000.TMS320DA828

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA828.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA828 ========
    21     *  The C64P device data sheet module.
    22     */
    23    metaonly module TMS320DA828 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DA830

metaonly module ti.catalog.c6000.TMS320DA830
index URL

The C64P device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA830.xdc
var TMS320DA830 = xdc.useModule('ti.catalog.c6000.TMS320DA830');
module-wide config parameters
    const TMS320DA830.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA830.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA830.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA830.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA830.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA830.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA830.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA830.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA830.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA830.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA830.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA830.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA830.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA830.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.dataWordSize = Int 4;
config TMS320DA830.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.deviceHeader = String undefined;
config TMS320DA830.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA830.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA830.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA830.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA830.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA830.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA830.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA830.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:15 GMT


module ti.catalog.c6000.TMS320DA830

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA830.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA830 ========
    21     *  The C64P device data sheet module.
    22     */
    23    metaonly module TMS320DA830 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DA840

metaonly module ti.catalog.c6000.TMS320DA840
index URL

The C64P device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA840.xdc
var TMS320DA840 = xdc.useModule('ti.catalog.c6000.TMS320DA840');
module-wide config parameters
    const TMS320DA840.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA840.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA840.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA840.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA840.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA840.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA840.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA840.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA840.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA840.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA840.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA840.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA840.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA840.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.dataWordSize = Int 4;
config TMS320DA840.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.deviceHeader = String undefined;
config TMS320DA840.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA840.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA840.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA840.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA840.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA840.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA840.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA840.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:15 GMT


module ti.catalog.c6000.TMS320DA840

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA840.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA840 ========
    21     *  The C64P device data sheet module.
    22     */
    23    metaonly module TMS320DA840 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DA850

metaonly module ti.catalog.c6000.TMS320DA850
index URL

The C64P device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DA850.xdc
var TMS320DA850 = xdc.useModule('ti.catalog.c6000.TMS320DA850');
module-wide config parameters
    const TMS320DA850.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DA850.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DA850.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DA850.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "C674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IROM",
                {
                    comment: "Internal 1MB L2 ROM",
                    name: "IROM",
                    base: 0x11700000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RX"
                }
            ],
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "L3_CBA_RAM",
                {
                    comment: "128KB ARM/DSP local shared RAM",
                    name: "L3_CBA_RAM",
                    base: 0x80000000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DA850.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DA850.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DA850.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DA850.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA850.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DA850.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DA850.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
// Instance config-params object
    params.cpuCore = String "C674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IROM",
            {
                comment: "Internal 1MB L2 ROM",
                name: "IROM",
                base: 0x11700000,
                len: 0x00100000,
                space: "code/data",
                access: "RX"
            }
        ],
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3_CBA_RAM",
            {
                comment: "128KB ARM/DSP local shared RAM",
                name: "L3_CBA_RAM",
                base: 0x80000000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DA850.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.cpuCore = String "C674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DA850.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DA850.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.dataWordSize = Int 4;
config TMS320DA850.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.deviceHeader = String undefined;
config TMS320DA850.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IROM",
        {
            comment: "Internal 1MB L2 ROM",
            name: "IROM",
            base: 0x11700000,
            len: 0x00100000,
            space: "code/data",
            access: "RX"
        }
    ],
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3_CBA_RAM",
        {
            comment: "128KB ARM/DSP local shared RAM",
            name: "L3_CBA_RAM",
            base: 0x80000000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DA850.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DA850.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DA850.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DA850.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DA850.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DA850.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DA850.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:16 GMT


module ti.catalog.c6000.TMS320DA850

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DA850.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DA850 ========
    21     *  The C64P device data sheet module.
    22     */
    23    metaonly module TMS320DA850 inherits ITMS320DA8xx
    24    {
    25    };
    26    /*
    27     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DM357

metaonly module ti.catalog.c6000.TMS320DM357
index URL

The DM357 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DM357.xdc
var TMS320DM357 = xdc.useModule('ti.catalog.c6000.TMS320DM357');
module-wide config parameters
    const TMS320DM357.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DM357.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DM357.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
per-instance config parameters
    var params = new TMS320DM357.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 64KB UMAP0 memory",
                    name: "IRAM",
                    base: 0x11800000,
                    len: 0x00010000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "ARM_RAM",
                {
                    comment: "Internal ARM RAM memory",
                    name: "ARM_RAM",
                    base: 0x10008000,
                    len: 0x00004000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM357.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DM357.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DM357.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DM357.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DM357.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DM357.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DM357.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "IRAM",
            {
                comment: "Internal 64KB UMAP0 memory",
                name: "IRAM",
                base: 0x11800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "ARM_RAM",
            {
                comment: "Internal ARM RAM memory",
                name: "ARM_RAM",
                base: 0x10008000,
                len: 0x00004000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM357.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM357.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM357.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.dataWordSize = Int 4;
config TMS320DM357.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.deviceHeader = String undefined;
config TMS320DM357.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 64KB UMAP0 memory",
            name: "IRAM",
            base: 0x11800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "ARM_RAM",
        {
            comment: "Internal ARM RAM memory",
            name: "ARM_RAM",
            base: 0x10008000,
            len: 0x00004000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320DM357.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM357.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM357.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM357.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM357.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM357.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM357.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:16 GMT


module ti.catalog.c6000.TMS320DM357

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM357.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DM357 ========
    21     *  The DM357 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320DM357 inherits IDaVinci
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320DM8148

metaonly module ti.catalog.c6000.TMS320DM8148
index URL

The C674 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DM8148.xdc
var TMS320DM8148 = xdc.useModule('ti.catalog.c6000.TMS320DM8148');
module-wide config parameters
    const TMS320DM8148.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DM8148.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DM8148.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DM8148.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x8000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F00000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "OCMC",
                {
                    comment: "OCMC (On-chip RAM) (128KB)",
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x20000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM8148.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DM8148.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DM8148.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DM8148.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DM8148.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DM8148.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DM8148.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
// Instance config-params object
    params.cpuCore = String "674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC",
            {
                comment: "OCMC (On-chip RAM) (128KB)",
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM8148.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.cpuCore = String "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM8148.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM8148.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.dataWordSize = Int 4;
config TMS320DM8148.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.deviceHeader = String undefined;
config TMS320DM8148.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320DM8148.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC",
        {
            comment: "OCMC (On-chip RAM) (128KB)",
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DM8148.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM8148.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM8148.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM8148.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM8148.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM8148.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM8148.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:16 GMT


module ti.catalog.c6000.TMS320DM8148

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM8148.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DM8148 ========
    21     *  The C674 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320DM8148 inherits ITI8148
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320DM8168

metaonly module ti.catalog.c6000.TMS320DM8168
index URL

The C674 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320DM8168.xdc
var TMS320DM8168 = xdc.useModule('ti.catalog.c6000.TMS320DM8168');
module-wide config parameters
    const TMS320DM8168.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x00000
                    ],
                    [
                        "32k",
                        0x08000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320DM8168.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320DM8168.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320DM8168.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x8000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F00000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "OCMC_0",
                {
                    comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                    name: "OCMC_0",
                    base: 0x40300000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC_1",
                {
                    comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                    name: "OCMC_1",
                    base: 0x40400000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320DM8168.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320DM8168.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320DM8168.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x00000
                ],
                [
                    "32k",
                    0x08000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320DM8168.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320DM8168.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320DM8168.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320DM8168.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
// Instance config-params object
    params.cpuCore = String "674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320DM8168.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.cpuCore = String "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320DM8168.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320DM8168.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.dataWordSize = Int 4;
config TMS320DM8168.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.deviceHeader = String undefined;
config TMS320DM8168.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320DM8168.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320DM8168.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320DM8168.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320DM8168.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.minDataUnitSize = Int 1;
config TMS320DM8168.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.minProgUnitSize = Int 1;
config TMS320DM8168.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320DM8168.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320DM8168.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320DM8168.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320DM8168.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:16 GMT


module ti.catalog.c6000.TMS320DM8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320DM8168.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320DM8168 ========
    21     *  The C674 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320DM8168 inherits ITI8168
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TMS320TCI6485

metaonly module ti.catalog.c6000.TMS320TCI6485
index URL

The TCI6485 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TCI6485.xdc
var TMS320TCI6485 = xdc.useModule('ti.catalog.c6000.TMS320TCI6485');
module-wide config parameters
    const TMS320TCI6485.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2RAM"
            }
        ]
    ];
     TMS320TCI6485.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TCI6485.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
     TMS320TCI6485.memBlock// = IPlatform.Memory[string] [
        [
            "ASYMGEM0L2RAM",
            {
                comment: "1536K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00180000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM1L2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM2L2RAM",
            {
                comment: "512K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SYMGEML2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320TCI6485.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TCI6485.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TCI6485.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TCI6485.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2RAM"
        }
    ]
];
config TMS320TCI6485.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6485.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TCI6485.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6485.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config TMS320TCI6485.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6485.memBlock = IPlatform.Memory[string] [
    [
        "ASYMGEM0L2RAM",
        {
            comment: "1536K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00180000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM1L2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM2L2RAM",
        {
            comment: "512K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SYMGEML2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TCI6485.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TCI6485.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TCI6485.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
...
params.dataWordSize = Int 4;
config TMS320TCI6485.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
...
params.deviceHeader = String undefined;
config TMS320TCI6485.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320TCI6485.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TCI6485.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TCI6485.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6485.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TCI6485.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TCI6485.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TCI6485.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:16 GMT


module ti.catalog.c6000.TMS320TCI6485

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TCI6485.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320TCI6485 ========
    20     *  The TCI6485 device data sheet module.
    21     *
    22     *  This module implements the ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320TCI6485 inherits ITMS320CTCI648x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320TCI6489

metaonly module ti.catalog.c6000.TMS320TCI6489
index URL

The TCI6489 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TCI6489.xdc
var TMS320TCI6489 = xdc.useModule('ti.catalog.c6000.TMS320TCI6489');
module-wide config parameters
    const TMS320TCI6489.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0xE00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0xF00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2RAM"
            }
        ]
    ];
     TMS320TCI6489.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TCI6489.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
     TMS320TCI6489.memBlock// = IPlatform.Memory[string] [
        [
            "ASYMGEM0L2RAM",
            {
                comment: "1536K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00180000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM1L2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "ASYMGEM2L2RAM",
            {
                comment: "512K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "SYMGEML2RAM",
            {
                comment: "1024K L2 RAM/CACHE memory",
                name: "L2RAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
per-instance config parameters
    var params = new TMS320TCI6489.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0xE00000,
                    len: 0x008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0xF00000,
                    len: 0x008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TCI6489.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TCI6489.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TCI6489.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0xE00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0xF00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2RAM"
        }
    ]
];
config TMS320TCI6489.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6489.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TCI6489.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6489.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
config TMS320TCI6489.memBlock // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6489.memBlock = IPlatform.Memory[string] [
    [
        "ASYMGEM0L2RAM",
        {
            comment: "1536K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00180000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM1L2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "ASYMGEM2L2RAM",
        {
            comment: "512K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "SYMGEML2RAM",
        {
            comment: "1024K L2 RAM/CACHE memory",
            name: "L2RAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0xE00000,
                len: 0x008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0xF00000,
                len: 0x008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TCI6489.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TCI6489.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TCI6489.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
...
params.dataWordSize = Int 4;
config TMS320TCI6489.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
...
params.deviceHeader = String undefined;
config TMS320TCI6489.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0xE00000,
            len: 0x008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0xF00000,
            len: 0x008000,
            space: "data",
            access: "RW"
        }
    ]
];
config TMS320TCI6489.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TCI6489.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TCI6489.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6489.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TCI6489.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TCI6489.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TCI6489.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:16 GMT


module ti.catalog.c6000.TMS320TCI6489

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TCI6489.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS320TCI6489 ========
    20     *  The TCI6489 device data sheet module.
    21     *
    22     *  This module implements the ICpuDataSheet interface and is
    23     *  used by platforms to obtain "data sheet" information about this device.
    24     */
    25    metaonly module TMS320TCI6489 inherits ITMS320CTCI648x
    26    {
    27    };
    28    /*
    29     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.catalog.c6000.TMS320TCI6608

metaonly module ti.catalog.c6000.TMS320TCI6608
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TCI6608.xdc
var TMS320TCI6608 = xdc.useModule('ti.catalog.c6000.TMS320TCI6608');
module-wide config parameters
    const TMS320TCI6608.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320TCI6608.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TCI6608.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ]
    ];
per-instance config parameters
    var params = new TMS320TCI6608.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "512KB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00080000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "4MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00400000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TCI6608.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TCI6608.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TCI6608.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320TCI6608.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6608.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TCI6608.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6608.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "512KB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00080000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "4MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00400000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TCI6608.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TCI6608.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TCI6608.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
...
params.dataWordSize = Int 4;
config TMS320TCI6608.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
...
params.deviceHeader = String undefined;
config TMS320TCI6608.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "512KB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00080000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "4MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00400000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TCI6608.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TCI6608.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TCI6608.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6608.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TCI6608.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TCI6608.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TCI6608.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:17 GMT


module ti.catalog.c6000.TMS320TCI6608

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TCI6608.xdc ========
    15     */
    16
    17    metaonly module TMS320TCI6608 inherits ITMS320TCI6608
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320TCI6614

metaonly module ti.catalog.c6000.TMS320TCI6614
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TCI6614.xdc
var TMS320TCI6614 = xdc.useModule('ti.catalog.c6000.TMS320TCI6614');
module-wide config parameters
    const TMS320TCI6614.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320TCI6614.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TCI6614.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320TCI6614.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "2MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00200000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TCI6614.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TCI6614.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TCI6614.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320TCI6614.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6614.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TCI6614.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6614.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "2MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00200000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TCI6614.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TCI6614.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TCI6614.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
...
params.dataWordSize = Int 4;
config TMS320TCI6614.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
...
params.deviceHeader = String undefined;
config TMS320TCI6614.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "2MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00200000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TCI6614.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TCI6614.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TCI6614.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6614.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TCI6614.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TCI6614.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TCI6614.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:17 GMT


module ti.catalog.c6000.TMS320TCI6614

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TCI6614.xdc ========
    15     */
    16
    17    metaonly module TMS320TCI6614 inherits ITMS320TCI6616
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320TCI6616

metaonly module ti.catalog.c6000.TMS320TCI6616
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TCI6616.xdc
var TMS320TCI6616 = xdc.useModule('ti.catalog.c6000.TMS320TCI6616');
module-wide config parameters
    const TMS320TCI6616.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320TCI6616.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TCI6616.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320TCI6616.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "2MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00200000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TCI6616.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TCI6616.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TCI6616.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320TCI6616.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6616.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TCI6616.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6616.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "2MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00200000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TCI6616.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TCI6616.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TCI6616.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
...
params.dataWordSize = Int 4;
config TMS320TCI6616.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
...
params.deviceHeader = String undefined;
config TMS320TCI6616.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "2MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00200000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TCI6616.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TCI6616.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TCI6616.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6616.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TCI6616.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TCI6616.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TCI6616.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:17 GMT


module ti.catalog.c6000.TMS320TCI6616

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TCI6616.xdc ========
    15     */
    16
    17    metaonly module TMS320TCI6616 inherits ITMS320TCI6616
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320TCI6618

metaonly module ti.catalog.c6000.TMS320TCI6618
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TCI6618.xdc
var TMS320TCI6618 = xdc.useModule('ti.catalog.c6000.TMS320TCI6618');
module-wide config parameters
    const TMS320TCI6618.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320TCI6618.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TCI6618.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320TCI6618.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "2MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00200000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TCI6618.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TCI6618.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TCI6618.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320TCI6618.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6618.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TCI6618.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6618.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "2MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00200000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TCI6618.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TCI6618.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TCI6618.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
...
params.dataWordSize = Int 4;
config TMS320TCI6618.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
...
params.deviceHeader = String undefined;
config TMS320TCI6618.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "2MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00200000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TCI6618.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TCI6618.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TCI6618.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6618.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TCI6618.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TCI6618.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TCI6618.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:17 GMT


module ti.catalog.c6000.TMS320TCI6618

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TCI6618.xdc ========
    15     */
    16
    17    metaonly module TMS320TCI6618 inherits ITMS320TCI6616
    18    {
    19    }
    20    /*
    21     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.c6000.TMS320TCI6634

metaonly module ti.catalog.c6000.TMS320TCI6634
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TCI6634.xdc
var TMS320TCI6634 = xdc.useModule('ti.catalog.c6000.TMS320TCI6634');
module-wide config parameters
    const TMS320TCI6634.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320TCI6634.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TCI6634.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320TCI6634.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "6MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00600000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TCI6634.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TCI6634.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TCI6634.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320TCI6634.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6634.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TCI6634.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6634.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "6MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00600000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TCI6634.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TCI6634.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TCI6634.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
...
params.dataWordSize = Int 4;
config TMS320TCI6634.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
...
params.deviceHeader = String undefined;
config TMS320TCI6634.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "6MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00600000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TCI6634.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TCI6634.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TCI6634.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6634.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TCI6634.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TCI6634.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TCI6634.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:17 GMT


module ti.catalog.c6000.TMS320TCI6634

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TCI6634.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320TCI6634 inherits ITMS320TCI663x
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.c6000.TMS320TCI6636

metaonly module ti.catalog.c6000.TMS320TCI6636
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TCI6636.xdc
var TMS320TCI6636 = xdc.useModule('ti.catalog.c6000.TMS320TCI6636');
module-wide config parameters
    const TMS320TCI6636.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320TCI6636.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TCI6636.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320TCI6636.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "6MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00600000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TCI6636.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TCI6636.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TCI6636.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320TCI6636.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6636.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TCI6636.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6636.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "6MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00600000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TCI6636.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TCI6636.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TCI6636.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
...
params.dataWordSize = Int 4;
config TMS320TCI6636.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
...
params.deviceHeader = String undefined;
config TMS320TCI6636.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "6MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00600000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TCI6636.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TCI6636.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TCI6636.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6636.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TCI6636.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TCI6636.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TCI6636.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:17 GMT


module ti.catalog.c6000.TMS320TCI6636

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TCI6636.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320TCI6636 inherits ITMS320TCI663x
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.c6000.TMS320TCI6638

metaonly module ti.catalog.c6000.TMS320TCI6638
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TCI6638.xdc
var TMS320TCI6638 = xdc.useModule('ti.catalog.c6000.TMS320TCI6638');
module-wide config parameters
    const TMS320TCI6638.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ],
                    [
                        "512k",
                        0x080000
                    ],
                    [
                        "1024k",
                        0x100000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     TMS320TCI6638.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TCI6638.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ],
        [
            "512k",
            0x080000
        ],
        [
            "1024k",
            0x100000
        ]
    ];
per-instance config parameters
    var params = new TMS320TCI6638.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "1MB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00100000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "MSMCSRAM",
                {
                    comment: "6MB MSMC SRAM",
                    name: "MSMCSRAM",
                    base: 0x0C000000,
                    len: 0x00600000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TCI6638.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TCI6638.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TCI6638.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ],
                [
                    "512k",
                    0x080000
                ],
                [
                    "1024k",
                    0x100000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config TMS320TCI6638.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6638.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TCI6638.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TCI6638.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ],
    [
        "512k",
        0x080000
    ],
    [
        "1024k",
        0x100000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "1MB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "MSMCSRAM",
            {
                comment: "6MB MSMC SRAM",
                name: "MSMCSRAM",
                base: 0x0C000000,
                len: 0x00600000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TCI6638.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TCI6638.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TCI6638.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
...
params.dataWordSize = Int 4;
config TMS320TCI6638.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
...
params.deviceHeader = String undefined;
config TMS320TCI6638.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "1MB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "MSMCSRAM",
        {
            comment: "6MB MSMC SRAM",
            name: "MSMCSRAM",
            base: 0x0C000000,
            len: 0x00600000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TCI6638.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TCI6638.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TCI6638.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TCI6638.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TCI6638.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TCI6638.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TCI6638.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:18 GMT


module ti.catalog.c6000.TMS320TCI6638

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TCI6638.xdc ========
    15     *
    16     */
    17
    18    metaonly module TMS320TCI6638 inherits ITMS320TCI663x
    19    {
    20    }
    21    /*
    22     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    23     */
    24


module ti.catalog.c6000.TMS320TI811X

metaonly module ti.catalog.c6000.TMS320TI811X
index URL

The C674 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TI811X.xdc
var TMS320TI811X = xdc.useModule('ti.catalog.c6000.TMS320TI811X');
module-wide config parameters
    const TMS320TI811X.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320TI811X.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TI811X.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320TI811X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x8000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F00000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "OCMC",
                {
                    comment: "OCMC (On-chip RAM) (128KB)",
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x20000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI811X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TI811X.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TI811X.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320TI811X.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TI811X.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TI811X.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TI811X.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
// Instance config-params object
    params.cpuCore = String "674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC",
            {
                comment: "OCMC (On-chip RAM) (128KB)",
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI811X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.cpuCore = String "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI811X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI811X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI811X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI811X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI811X.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC",
        {
            comment: "OCMC (On-chip RAM) (128KB)",
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TI811X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI811X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI811X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI811X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI811X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI811X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI811X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:18 GMT


module ti.catalog.c6000.TMS320TI811X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI811X.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    /*!
    21     *  ======== TMS320TI811X ========
    22     *  The C674 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TMS320TI811X inherits ITI811X
    28    {
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320TI814X

metaonly module ti.catalog.c6000.TMS320TI814X
index URL

The C674 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TI814X.xdc
var TMS320TI814X = xdc.useModule('ti.catalog.c6000.TMS320TI814X');
module-wide config parameters
    const TMS320TI814X.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320TI814X.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TI814X.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320TI814X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x8000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F00000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "OCMC",
                {
                    comment: "OCMC (On-chip RAM) (128KB)",
                    name: "OCMC",
                    base: 0x40300000,
                    len: 0x20000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI814X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TI814X.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TI814X.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320TI814X.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TI814X.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TI814X.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TI814X.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
// Instance config-params object
    params.cpuCore = String "674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC",
            {
                comment: "OCMC (On-chip RAM) (128KB)",
                name: "OCMC",
                base: 0x40300000,
                len: 0x20000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI814X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.cpuCore = String "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI814X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI814X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI814X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI814X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI814X.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC",
        {
            comment: "OCMC (On-chip RAM) (128KB)",
            name: "OCMC",
            base: 0x40300000,
            len: 0x20000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TI814X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI814X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI814X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI814X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI814X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI814X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI814X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:18 GMT


module ti.catalog.c6000.TMS320TI814X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI814X.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    /*!
    21     *  ======== TMS320TI814X ========
    22     *  The C674 device data sheet module.
    23     *
    24     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module TMS320TI814X inherits ITI8148
    28    {
    29    };
    30    /*
    31     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


module ti.catalog.c6000.TMS320TI816X

metaonly module ti.catalog.c6000.TMS320TI816X
index URL

The C674 device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the xdc.platform.ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/TMS320TI816X.xdc
var TMS320TI816X = xdc.useModule('ti.catalog.c6000.TMS320TI816X');
module-wide config parameters
    const TMS320TI816X.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x10E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x10F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x10800000,
                map: [
                    [
                        "0k",
                        0x00000
                    ],
                    [
                        "32k",
                        0x08000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ],
                    [
                        "256k",
                        0x40000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
     TMS320TI816X.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TMS320TI816X.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ],
        [
            "256k",
            0x40000
        ]
    ];
per-instance config parameters
    var params = new TMS320TI816X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "674";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.hdvicp0// = HDVICP2.Instance undefined;
        params.hdvicp1// = HDVICP2.Instance undefined;
        params.hdvicp2// = HDVICP2.Instance undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "IRAM",
                {
                    comment: "Internal 256KB L2 memory",
                    name: "IRAM",
                    base: 0x10800000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x10E00000,
                    len: 0x8000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 32KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x10F00000,
                    len: 0x8000,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "OCMC_0",
                {
                    comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                    name: "OCMC_0",
                    base: 0x40300000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "OCMC_1",
                {
                    comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                    name: "OCMC_1",
                    base: 0x40400000,
                    len: 0x40000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TMS320TI816X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TMS320TI816X.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TMS320TI816X.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x10E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x10F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x10800000,
            map: [
                [
                    "0k",
                    0x00000
                ],
                [
                    "32k",
                    0x08000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ],
                [
                    "256k",
                    0x40000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
config TMS320TI816X.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TMS320TI816X.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TMS320TI816X.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TMS320TI816X.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ],
    [
        "256k",
        0x40000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
// Instance config-params object
    params.cpuCore = String "674";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.hdvicp0 = HDVICP2.Instance undefined;
    //
    params.hdvicp1 = HDVICP2.Instance undefined;
    //
    params.hdvicp2 = HDVICP2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x8000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x40000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TMS320TI816X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.cpuCore = String "674";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TMS320TI816X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.cpuCoreRevision = String "1.0";
config TMS320TI816X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.dataWordSize = Int 4;
config TMS320TI816X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.deviceHeader = String undefined;
config TMS320TI816X.hdvicp0 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.hdvicp0 = HDVICP2.Instance undefined;
config TMS320TI816X.hdvicp1 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.hdvicp1 = HDVICP2.Instance undefined;
config TMS320TI816X.hdvicp2 // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.hdvicp2 = HDVICP2.Instance undefined;
config TMS320TI816X.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "IRAM",
        {
            comment: "Internal 256KB L2 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x8000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (256KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (256KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x40000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config TMS320TI816X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.minDataUnitSize = Int 1;
config TMS320TI816X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.minProgUnitSize = Int 1;
config TMS320TI816X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TMS320TI816X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TMS320TI816X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TMS320TI816X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TMS320TI816X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:18 GMT


module ti.catalog.c6000.TMS320TI816X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS320TI816X.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TMS320TI816X ========
    21     *  The C674 device data sheet module.
    22     *
    23     *  This module implements the xdc.platform.ICpuDataSheet interface and is
    24     *  used by platforms to obtain "data sheet" information about this device.
    25     */
    26    metaonly module TMS320TI816X inherits ITI8168
    27    {
    28    };
    29    /*
    30     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
    31     */
    32


module ti.catalog.c6000.TNETV107X

metaonly module ti.catalog.c6000.TNETV107X
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/TNETV107X.xdc
var TNETV107X = xdc.useModule('ti.catalog.c6000.TNETV107X');
module-wide config parameters
    const TNETV107X.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x11E08000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x11F04000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x11800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x20000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2RAM"
            }
        ]
    ];
     TNETV107X.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     TNETV107X.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ],
        [
            "128k",
            0x20000
        ]
    ];
per-instance config parameters
    var params = new TNETV107X.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "64x+";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String undefined;
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "L2RAM",
                {
                    comment: "Internal 128KB L2 memory",
                    name: "L2RAM",
                    base: 0x11800000,
                    len: 0x00020000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "Internal 32KB L1 program memory",
                    name: "L1PSRAM",
                    base: 0x11E08000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "Internal 80KB L1 data memory",
                    name: "L1DSRAM",
                    base: 0x11F04000,
                    len: 0x00014000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = TNETV107X.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config TNETV107X.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const TNETV107X.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x11E08000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x11F04000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x11800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x20000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2RAM"
        }
    ]
];
config TNETV107X.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
TNETV107X.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config TNETV107X.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
TNETV107X.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ],
    [
        "128k",
        0x20000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new TNETV107X.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String undefined;
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "L2RAM",
            {
                comment: "Internal 128KB L2 memory",
                name: "L2RAM",
                base: 0x11800000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x11E08000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x11F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config TNETV107X.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.cpuCore = String "64x+";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config TNETV107X.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.cpuCoreRevision = String undefined;
config TNETV107X.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.dataWordSize = Int 4;
config TNETV107X.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.deviceHeader = String undefined;
config TNETV107X.memMap // instance
index URL
XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2RAM",
        {
            comment: "Internal 128KB L2 memory",
            name: "L2RAM",
            base: 0x11800000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x11E08000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x11F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
config TNETV107X.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.minDataUnitSize = Int 1;
config TNETV107X.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.minProgUnitSize = Int 1;
config TNETV107X.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new TNETV107X.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new TNETV107X.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = TNETV107X.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
TNETV107X.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
TNETV107X.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:18 GMT


module ti.catalog.c6000.TNETV107X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TNETV107X.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000;
    18
    19    /*!
    20     *  ======== TNETV107X ========
    21     */
    22    metaonly module TNETV107X inherits ti.catalog.ICpuDataSheet
    23    {
    24
    25        config long cacheSizeL1[string] = [
    26            ["0k",  0x0000],
    27            ["4k",  0x1000],
    28            ["8k",  0x2000],
    29            ["16k", 0x4000],
    30            ["32k", 0x8000],
    31        ];
    32
    33        config long cacheSizeL2[string] = [
    34            ["0k",   0x00000],
    35            ["32k",  0x08000],
    36            ["64k",  0x10000],
    37            ["128k", 0x20000]
    38        ];
    39
    40       readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    41            ['l1PMode',
    42                 {desc: "L1P Cache",
    43                  base: 0x11E08000,
    44                  map: [["0k", 0x0000],
    45                        ["4k", 0x1000],
    46                        ["8k", 0x2000],
    47                        ["16k", 0x4000],
    48                        ["32k", 0x8000]],
    49                  defaultValue: "32k",
    50                  memorySection: "L1PSRAM"}
    51            ],
    52
    53            ['l1DMode',
    54                {desc: "L1D Cache",
    55                 base: 0x11F04000,
    56                 map: [["0k", 0x0000],
    57                       ["4k", 0x1000],
    58                       ["8k", 0x2000],
    59                       ["16k", 0x4000],
    60                       ["32k", 0x8000]],
    61                 defaultValue: "32k",
    62                 memorySection: "L1DSRAM"}
    63            ],
    64
    65            ['l2Mode',
    66                {desc: "L2 Cache",
    67                 base: 0x11800000,
    68                 map: [["0k", 0x0000],
    69                       ["32k", 0x8000],
    70                       ["64k", 0x10000],
    71                       ["128k", 0x20000]],
    72                 defaultValue: "0k",
    73                 memorySection: "L2RAM"}
    74            ],
    75
    76        ];
    77
    78    instance:
    79        override config int     minProgUnitSize = 1;
    80        override config int     minDataUnitSize = 1;
    81        override config int     dataWordSize    = 4;
    82
    83        override config string   cpuCore        = "64x+";
    84        override config string   isa = "64P";
    85
    86        config xdc.platform.IPlatform.Memory memMap[string]  = [
    87            ["L2RAM", {
    88                comment:    "Internal 128KB L2 memory",
    89                name:       "L2RAM",
    90                base:       0x11800000,
    91                len:        0x00020000,
    92                space:      "code/data",
    93                access:     "RWX"
    94            }],
    95
    96            ["L1PSRAM", {
    97                comment:    "Internal 32KB L1 program memory",
    98                name:       "L1PSRAM",
    99                base:       0x11E08000,
   100                len:        0x00008000,
   101                space:      "code",
   102                access:     "RWX"
   103            }],
   104
   105            ["L1DSRAM", {
   106                comment:    "Internal 80KB L1 data memory",
   107                name:       "L1DSRAM",
   108                base:       0x11F04000,
   109                len:        0x00014000,
   110                space:      "data",
   111                access:     "RW"
   112            }],
   113        ];
   114    };
   115    /*
   116     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
   117     */
   118


module ti.catalog.c6000.Vayu

metaonly module ti.catalog.c6000.Vayu
index URL

The Vayu device data sheet module

  • XDCscript usage
  • Individual elements
This module implements the ICpuDataSheet interface and is used by platforms to obtain "data sheet" information about this device.
XDCscript usage meta-domain sourced in ti/catalog/c6000/Vayu.xdc
var Vayu = xdc.useModule('ti.catalog.c6000.Vayu');
module-wide config parameters
    const Vayu.cacheMap// = ICacheInfo.CacheDesc[string] [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                base: 0x00E00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                base: 0x00F00000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "32k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                base: 0x00800000,
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ],
                    [
                        "128k",
                        0x020000
                    ],
                    [
                        "256k",
                        0x040000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L2SRAM"
            }
        ]
    ];
     Vayu.cacheSizeL1// = Long[string] [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
     Vayu.cacheSizeL2// = Long[string] [
        [
            "0k",
            0x000000
        ],
        [
            "32k",
            0x008000
        ],
        [
            "64k",
            0x010000
        ],
        [
            "128k",
            0x020000
        ],
        [
            "256k",
            0x040000
        ]
    ];
per-instance config parameters
    var params = new Vayu.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "6600";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "256KB L2 SRAM/CACHE",
                    name: "L2SRAM",
                    base: 0x00800000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "L1PSRAM",
                {
                    comment: "32KB RAM/CACHE L1 program memory",
                    name: "L1PSRAM",
                    base: 0x00E00000,
                    len: 0x00008000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "L1DSRAM",
                {
                    comment: "32KB RAM/CACHE L1 data memory",
                    name: "L1DSRAM",
                    base: 0x00F00000,
                    len: 0x00008000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Vayu.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
config Vayu.cacheMap // module-wide
index URL
XDCscript usage meta-domain
const Vayu.cacheMap = ICacheInfo.CacheDesc[string] [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            base: 0x00E00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            base: 0x00F00000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "32k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            base: 0x00800000,
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ],
                [
                    "128k",
                    0x020000
                ],
                [
                    "256k",
                    0x040000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L2SRAM"
        }
    ]
];
config Vayu.cacheSizeL1 // module-wide
index URL
XDCscript usage meta-domain
Vayu.cacheSizeL1 = Long[string] [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
config Vayu.cacheSizeL2 // module-wide
index URL
XDCscript usage meta-domain
Vayu.cacheSizeL2 = Long[string] [
    [
        "0k",
        0x000000
    ],
    [
        "32k",
        0x008000
    ],
    [
        "64k",
        0x010000
    ],
    [
        "128k",
        0x020000
    ],
    [
        "256k",
        0x040000
    ]
];
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Vayu.Params;
// Instance config-params object
    params.cpuCore = String "6600";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "L2SRAM",
            {
                comment: "256KB L2 SRAM/CACHE",
                name: "L2SRAM",
                base: 0x00800000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "32KB RAM/CACHE L1 program memory",
                name: "L1PSRAM",
                base: 0x00E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "32KB RAM/CACHE L1 data memory",
                name: "L1DSRAM",
                base: 0x00F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Vayu.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.cpuCore = String "6600";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Vayu.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.cpuCoreRevision = String "1.0";
config Vayu.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.dataWordSize = Int 4;
config Vayu.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.deviceHeader = String undefined;
config Vayu.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "256KB L2 SRAM/CACHE",
            name: "L2SRAM",
            base: 0x00800000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "32KB RAM/CACHE L1 program memory",
            name: "L1PSRAM",
            base: 0x00E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "32KB RAM/CACHE L1 data memory",
            name: "L1DSRAM",
            base: 0x00F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ]
];
config Vayu.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.minDataUnitSize = Int 1;
config Vayu.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.minProgUnitSize = Int 1;
config Vayu.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Vayu.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Vayu.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Vayu.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Vayu.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Vayu.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:18 GMT


module ti.catalog.c6000.Vayu

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Vayu.xdc ========
    15     *
    16     */
    17
    18    package ti.catalog.c6000;
    19
    20    /*!
    21     *  ======== Vayu ========
    22     *  The Vayu device data sheet module.
    23     *
    24     *  This module implements the ICpuDataSheet interface and is
    25     *  used by platforms to obtain "data sheet" information about this device.
    26     */
    27    metaonly module Vayu inherits ti.catalog.ICpuDataSheet
    28    {
    29
    30        config long cacheSizeL1[string] = [
    31            ["0k",  0x0000],
    32            ["4k",  0x1000],
    33            ["8k",  0x2000],
    34            ["16k", 0x4000],
    35            ["32k", 0x8000]
    36        ];
    37
    38        config long cacheSizeL2[string] = [
    39            ["0k",    0x000000],
    40            ["32k",   0x008000],
    41            ["64k",   0x010000],
    42            ["128k",  0x020000],
    43            ["256k",  0x040000]
    44        ];
    45
    46        readonly config ti.catalog.c6000.ICacheInfo.CacheDesc cacheMap[string] =  [
    47                 ['l1PMode',{desc:"L1P Cache",
    48                             base: 0x00E00000,
    49                             map : [["0k" ,0x0000],
    50                                    ["4k" ,0x1000],
    51                                    ["8k" ,0x2000],
    52                                    ["16k",0x4000],
    53                                    ["32k",0x8000]],
    54                             defaultValue: "32k",
    55                             memorySection: "L1PSRAM"}],
    56
    57                 ['l1DMode',{desc:"L1D Cache",
    58                             base: 0x00F00000,
    59                             map : [["0k"  ,0x0000],
    60                                    ["4k"  ,0x1000],
    61                                    ["8k"  ,0x2000],
    62                                    ["16k" ,0x4000],
    63                                    ["32k" ,0x8000]],
    64                             defaultValue: "32k",
    65                             memorySection: "L1DSRAM"}],
    66
    67                 ['l2Mode',{desc:"L2 Cache",
    68                             base: 0x00800000,
    69                             map : [["0k"   ,0x0000],
    70                                    ["32k"  ,0x8000],
    71                                    ["64k"  ,0x10000],
    72                                    ["128k" ,0x020000],
    73                                    ["256k" ,0x040000]],
    74                             defaultValue: "0k",
    75                             memorySection: "L2SRAM"}],
    76
    77        ];
    78
    79    instance:
    80
    81        override config string   cpuCore        = "6600";
    82        override config string   isa = "66";
    83        override config string   cpuCoreRevision = "1.0";
    84
    85        override config int     minProgUnitSize = 1;
    86        override config int     minDataUnitSize = 1;
    87        override config int     dataWordSize    = 4;
    88
    89        /*!
    90         *  ======== memMap ========
    91         *  The default memory map for this device
    92         */
    93        config xdc.platform.IPlatform.Memory memMap[string]  = [
    94            ["L2SRAM", {
    95                comment:    "256KB L2 SRAM/CACHE",
    96                name:       "L2SRAM",
    97                base:       0x00800000,
    98                len:        0x00040000,
    99                space:      "code/data",
   100                access:     "RWX"
   101            }],
   102
   103            ["L1PSRAM", {
   104                comment:    "32KB RAM/CACHE L1 program memory",
   105                name:       "L1PSRAM",
   106                base:       0x00E00000,
   107                len:        0x00008000,
   108                space:      "code",
   109                access:     "RWX"
   110            }],
   111
   112            ["L1DSRAM", {
   113                comment:    "32KB RAM/CACHE L1 data memory",
   114                name:       "L1DSRAM",
   115                base:       0x00F00000,
   116                len:        0x00008000,
   117                space:      "data",
   118                access:     "RW"
   119            }],
   120        ];
   121    };
   122    /*
   123     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,399; 8-17-2012 22:13:36; /db/ztree/library/trees/platform/platform-n27x/src/
   124     */
   125


package ti.catalog.c6000.nda
index URL

Package of devices for the c6000 family of DSPs

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/c6000/nda/package.xdc
requires xdc.platform;
package ti.catalog.c6000.nda [1, 0, 0, 0] {
    module Tesla;
    // The C64T device data sheet module
}
generated on Thu, 08 Nov 2012 02:16:19 GMT


package ti.catalog.c6000.nda

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform;
    14
    15    /*!
    16     *  ======== ti.catalog.c6000.nda ========
    17     *  Package of devices for the c6000 family of DSPs.
    18     *
    19     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    20     *  interface. This interface is used by platforms (modules that implement
    21     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    22     */
    23    package ti.catalog.c6000.nda [1,0,0,0] {
    24        module Tesla;
    25    }
    26    /*
    27     *  @(#) ti.catalog.c6000.nda; 1, 0, 0, 0,206; 8-17-2012 22:13:31; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.catalog.c6000.nda.Tesla

metaonly module ti.catalog.c6000.nda.Tesla
index URL

The C64T device data sheet module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/c6000/nda/Tesla.xdc
var Tesla = xdc.useModule('ti.catalog.c6000.nda.Tesla');
per-instance config parameters
    var params = new Tesla.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "Tesla";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 4;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.memMap// = IPlatform.Memory[string] [
            [
                "L2SRAM",
                {
                    comment: "Shared 256KB SRAM",
                    name: "L2SRAM",
                    base: 0x10900000,
                    len: 0x00040000,
                    space: "code/data",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = Tesla.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Tesla.Params;
// Instance config-params object
    params.cpuCore = String "Tesla";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.memMap = IPlatform.Memory[string] [
    //
        [
            "L2SRAM",
            {
                comment: "Shared 256KB SRAM",
                name: "L2SRAM",
                base: 0x10900000,
                len: 0x00040000,
                space: "code/data",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
config Tesla.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new Tesla.Params;
...
params.cpuCore = String "Tesla";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config Tesla.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new Tesla.Params;
...
params.cpuCoreRevision = String "1.0";
config Tesla.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new Tesla.Params;
...
params.dataWordSize = Int 4;
config Tesla.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new Tesla.Params;
...
params.deviceHeader = String undefined;
config Tesla.memMap // instance
index URL
XDCscript usage meta-domain
var params = new Tesla.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "L2SRAM",
        {
            comment: "Shared 256KB SRAM",
            name: "L2SRAM",
            base: 0x10900000,
            len: 0x00040000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config Tesla.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Tesla.Params;
...
params.minDataUnitSize = Int 1;
config Tesla.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new Tesla.Params;
...
params.minProgUnitSize = Int 1;
config Tesla.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new Tesla.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Tesla.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Tesla.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
Tesla.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
Tesla.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:19 GMT


module ti.catalog.c6000.nda.Tesla

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Tesla.xdc ========
    15     *
    16     */
    17    package ti.catalog.c6000.nda;
    18
    19    /*!
    20     *  ======== Tesla ========
    21     *  The C64T device data sheet module.
    22     */
    23    metaonly module Tesla inherits ti.catalog.ICpuDataSheet
    24    {
    25
    26    instance:
    27        override config int     minProgUnitSize = 1;
    28        override config int     minDataUnitSize = 1;
    29        override config int     dataWordSize    = 4;
    30
    31        override config string   cpuCore         = "Tesla";
    32        override config string   isa             = "64T";
    33        override config string   cpuCoreRevision = "1.0";
    34
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36
    37            ["L2SRAM", {
    38                comment:    "Shared 256KB SRAM",
    39                name:       "L2SRAM",
    40                base:       0x10900000,
    41                len:        0x00040000,
    42                space:      "code/data",
    43                access:     "RWX"
    44            }],
    45        ];
    46    };
    47    /*
    48     *  @(#) ti.catalog.c6000.nda; 1, 0, 0, 0,206; 8-17-2012 22:13:31; /db/ztree/library/trees/platform/platform-n27x/src/
    49     */
    50


package ti.catalog.msp430
index URL

Package of devices for the msp430 family

Each module in this package implements the xdc.platform.ICpuDataSheet interface. This interface is used by platforms (modules that implement xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
XDCspec declarations sourced in ti/catalog/msp430/package.xdc
requires xdc.platform;
requires ti.catalog;
package ti.catalog.msp430 [1, 0, 0] {
    interface IMSP430;
    // An interface implemented by all MSP430 devices
    interface IMSP430F54xx;
    interface IMSP430F55xx;
    interface IMSP430x22xx;
    // Common definition for MSP430x22xx devices
    module CC430F6137;
    // CC430F6137 CPU definition
    module MSP430;
    // Generic MSP430 Cpu definition
    module MSP430F223x;
    // MSP430F223x Cpu definition
    module MSP430F225x;
    // MSP430F225x Cpu definition
    module MSP430F2274;
    // MSP430F2274 Cpu definition
    module MSP430F5418;
    // MSP430F5418 CPU definition
    module MSP430F5419;
    // MSP430F5419 CPU definition
    module MSP430F5435;
    // MSP430F5435 CPU definition
    module MSP430F5436;
    // MSP430F5436 CPU definition
    module MSP430F5437;
    // MSP430F5437 CPU definition
    module MSP430F5438;
    // MSP430F5438 CPU definition
    module MSP430F5529;
    // MSP430F5529 CPU definition
}
generated on Thu, 08 Nov 2012 02:16:31 GMT


package ti.catalog.msp430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    requires xdc.platform;
    14    requires ti.catalog;
    15
    16    /*!
    17     *  ======== ti.catalog.msp430 ========
    18     *  Package of devices for the msp430 family.
    19     *
    20     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    21     *  interface. This interface is used by platforms (modules that implement
    22     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    23     */
    24    package ti.catalog.msp430 [1,0,0] {
    25        interface IMSP430;
    26        interface IMSP430x22xx;
    27        interface IMSP430F54xx;
    28        interface IMSP430F55xx;
    29        module MSP430;
    30        module MSP430F5418, MSP430F5419;
    31        module MSP430F5435, MSP430F5436;
    32        module MSP430F5437, MSP430F5438;
    33        module MSP430F5529;
    34        module MSP430F223x, MSP430F225x, MSP430F2274;
    35        module CC430F6137;
    36    }


module ti.catalog.msp430.CC430F6137

metaonly module ti.catalog.msp430.CC430F6137
index URL

CC430F6137 CPU definition

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/CC430F6137.xdc
var CC430F6137 = xdc.useModule('ti.catalog.msp430.CC430F6137');
per-instance config parameters
    var params = new CC430F6137.Params// Instance config-params object;
        params.TA0// = Timer0_A5.Instance undefined;
        params.TA1// = Timer1_A3.Instance undefined;
        params.TA2// = Timer2_A3.Instance undefined;
        params.TB0// = Timer0_B7.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430F55xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS",
                {
                    comment: "Memory mapped peripherals",
                    name: "PERIPHERALS",
                    base: 0x0,
                    len: 0x1000,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSL",
                {
                    comment: "Bootstrap loader (flash)",
                    name: "BSL",
                    base: 0x1000,
                    len: 0x800,
                    space: "code",
                    access: "RW"
                }
            ],
            [
                "INFOD",
                {
                    comment: "Information Memory D (flash)",
                    name: "INFOD",
                    base: 0x1800,
                    len: 0x80,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOC",
                {
                    comment: "Information Memory C (flash)",
                    name: "INFOC",
                    base: 0x1880,
                    len: 0x80,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOB",
                {
                    comment: "Information Memory B (flash)",
                    name: "INFOB",
                    base: 0x1900,
                    len: 0x80,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOA",
                {
                    comment: "Information Memory A (flash)",
                    name: "INFOA",
                    base: 0x1980,
                    len: 0x80,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector",
                    name: "INT00",
                    base: 0xFF80,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector",
                    name: "INT01",
                    base: 0xFF82,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT02",
                {
                    comment: "Reserved Vector",
                    name: "INT02",
                    base: 0xFF84,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT03",
                {
                    comment: "Reserved Vector",
                    name: "INT03",
                    base: 0xFF86,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector",
                    name: "INT04",
                    base: 0xFF88,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT05",
                {
                    comment: "Reserved Vector",
                    name: "INT05",
                    base: 0xFF8A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT06",
                {
                    comment: "Reserved Vector",
                    name: "INT06",
                    base: 0xFF8C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT07",
                {
                    comment: "Reserved Vector",
                    name: "INT07",
                    base: 0xFF8E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT08",
                {
                    comment: "Reserved Vector",
                    name: "INT08",
                    base: 0xFF90,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT09",
                {
                    comment: "Reserved Vector",
                    name: "INT09",
                    base: 0xFF92,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT10",
                {
                    comment: "Reserved Vector",
                    name: "INT10",
                    base: 0xFF94,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector",
                    name: "INT11",
                    base: 0xFF96,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT12",
                {
                    comment: "Reserved Vector",
                    name: "INT12",
                    base: 0xFF98,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT13",
                {
                    comment: "Reserved Vector",
                    name: "INT13",
                    base: 0xFF9A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT14",
                {
                    comment: "Reserved Vector",
                    name: "INT14",
                    base: 0xFF9C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT15",
                {
                    comment: "Reserved Vector",
                    name: "INT15",
                    base: 0xFF9E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT16",
                {
                    comment: "Reserved Vector",
                    name: "INT16",
                    base: 0xFFA0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT17",
                {
                    comment: "Reserved Vector",
                    name: "INT17",
                    base: 0xFFA2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT18",
                {
                    comment: "Reserved Vector",
                    name: "INT18",
                    base: 0xFFA4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT19",
                {
                    comment: "Reserved Vector",
                    name: "INT19",
                    base: 0xFFA6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT20",
                {
                    comment: "Reserved Vector",
                    name: "INT20",
                    base: 0xFFA8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT21",
                {
                    comment: "Reserved Vector",
                    name: "INT21",
                    base: 0xFFAA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT22",
                {
                    comment: "Reserved Vector",
                    name: "INT22",
                    base: 0xFFAC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT23",
                {
                    comment: "Reserved Vector",
                    name: "INT23",
                    base: 0xFFAE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT24",
                {
                    comment: "Reserved Vector",
                    name: "INT24",
                    base: 0xFFB0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT25",
                {
                    comment: "Reserved Vector",
                    name: "INT25",
                    base: 0xFFB2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT26",
                {
                    comment: "Reserved Vector",
                    name: "INT26",
                    base: 0xFFB4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT27",
                {
                    comment: "Reserved Vector",
                    name: "INT27",
                    base: 0xFFB6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT28",
                {
                    comment: "Reserved Vector",
                    name: "INT28",
                    base: 0xFFB8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT29",
                {
                    comment: "Reserved Vector",
                    name: "INT29",
                    base: 0xFFBA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT30",
                {
                    comment: "Reserved Vector",
                    name: "INT30",
                    base: 0xFFBC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT31",
                {
                    comment: "Reserved Vector",
                    name: "INT31",
                    base: 0xFFBE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT32",
                {
                    comment: "Reserved Vector",
                    name: "INT32",
                    base: 0xFFC0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT33",
                {
                    comment: "Reserved Vector",
                    name: "INT33",
                    base: 0xFFC2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT34",
                {
                    comment: "Reserved Vector",
                    name: "INT34",
                    base: 0xFFC4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT35",
                {
                    comment: "Reserved Vector",
                    name: "INT35",
                    base: 0xFFC6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT36",
                {
                    comment: "Reserved Vector",
                    name: "INT36",
                    base: 0xFFC8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT37",
                {
                    comment: "Reserved Vector",
                    name: "INT37",
                    base: 0xFFCA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT38",
                {
                    comment: "Reserved Vector",
                    name: "INT38",
                    base: 0xFFCC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT39",
                {
                    comment: "Reserved Vector",
                    name: "INT39",
                    base: 0xFFCE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT40",
                {
                    comment: "Reserved Vector",
                    name: "INT40",
                    base: 0xFFD0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT41",
                {
                    comment: "RTC_A Vector",
                    name: "INT41",
                    base: 0xFFD2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT42",
                {
                    comment: "I/O Port P2 Vector",
                    name: "INT42",
                    base: 0xFFD4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT43",
                {
                    comment: "TA2 CCR1-CCR2 Vector",
                    name: "INT43",
                    base: 0xFFD6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT44",
                {
                    comment: "TA2 CCR0 Vector",
                    name: "INT44",
                    base: 0xFFD8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT45",
                {
                    comment: "USCI_B1 Receive/Transmit Vector",
                    name: "INT45",
                    base: 0xFFDA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT46",
                {
                    comment: "USCI_A1 Receive/Transmit Vector",
                    name: "INT46",
                    base: 0xFFDC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT47",
                {
                    comment: "I/O Port P1 Vector",
                    name: "INT47",
                    base: 0xFFDE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT48",
                {
                    comment: "TA1 CCR1-CCR2 Vector",
                    name: "INT48",
                    base: 0xFFE0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT49",
                {
                    comment: "TA1 CCR0 Vector",
                    name: "INT49",
                    base: 0xFFE2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT50",
                {
                    comment: "DMA Vector",
                    name: "INT50",
                    base: 0xFFE4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT51",
                {
                    comment: "USB_UBM Vector",
                    name: "INT51",
                    base: 0xFFE6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT52",
                {
                    comment: "TA0 CCR1-CCR4 Vector",
                    name: "INT52",
                    base: 0xFFE8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT53",
                {
                    comment: "TA0 CCR0 Vector",
                    name: "INT53",
                    base: 0xFFEA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT54",
                {
                    comment: "ADC12_A Vector",
                    name: "INT54",
                    base: 0xFFEC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT55",
                {
                    comment: "USCI_B0 Receive/Transmit Vector",
                    name: "INT55",
                    base: 0xFFEE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT56",
                {
                    comment: "USCI_A0 Receive/Transmit Vector",
                    name: "INT56",
                    base: 0xFFF0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT57",
                {
                    comment: "Watchdog Timer_A Interval Timer Mode Vector",
                    name: "INT57",
                    base: 0xFFF2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT58",
                {
                    comment: "TB0 CCR1-CCR6 Vector",
                    name: "INT58",
                    base: 0xFFF4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT59",
                {
                    comment: "TB0 CCR0 Vector",
                    name: "INT59",
                    base: 0xFFF6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT60",
                {
                    comment: "Comp_B Vector",
                    name: "INT60",
                    base: 0xFFF8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT61",
                {
                    comment: "User NMI Vector",
                    name: "INT61",
                    base: 0xFFFA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT62",
                {
                    comment: "System NMI Vector",
                    name: "INT62",
                    base: 0xFFFC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x2,
                    space: "data"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430X";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x1C00,
                    len: 0x1000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0x8000,
                    len: 0x7F80,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = CC430F6137.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new CC430F6137.Params;
// Instance config-params object
    params.TA0 = Timer0_A5.Instance undefined;
    //
    params.TA1 = Timer1_A3.Instance undefined;
    //
    params.TA2 = Timer2_A3.Instance undefined;
    //
    params.TB0 = Timer0_B7.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430F55xx devices
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFOD",
            {
                comment: "Information Memory D (flash)",
                name: "INFOD",
                base: 0x1800,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOC",
            {
                comment: "Information Memory C (flash)",
                name: "INFOC",
                base: 0x1880,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOB",
            {
                comment: "Information Memory B (flash)",
                name: "INFOB",
                base: 0x1900,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOA",
            {
                comment: "Information Memory A (flash)",
                name: "INFOA",
                base: 0x1980,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "TA2 CCR1-CCR2 Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "TA2 CCR0 Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USB_UBM Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "ADC12_A Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "Comp_B Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    params.cpuCore = String "MSP430X";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x1C00,
                len: 0x1000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0x8000,
                len: 0x7F80,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config CC430F6137.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.TA0 = Timer0_A5.Instance undefined;
config CC430F6137.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.TA1 = Timer1_A3.Instance undefined;
config CC430F6137.TA2 // instance
index URL
XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.TA2 = Timer2_A3.Instance undefined;
config CC430F6137.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.TB0 = Timer0_B7.Instance undefined;
config CC430F6137.commonMap // instance
index URL

Memory map elements shared by all MSP430F55xx devices

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFOD",
        {
            comment: "Information Memory D (flash)",
            name: "INFOD",
            base: 0x1800,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOC",
        {
            comment: "Information Memory C (flash)",
            name: "INFOC",
            base: 0x1880,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOB",
        {
            comment: "Information Memory B (flash)",
            name: "INFOB",
            base: 0x1900,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOA",
        {
            comment: "Information Memory A (flash)",
            name: "INFOA",
            base: 0x1980,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "TA2 CCR1-CCR2 Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "TA2 CCR0 Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USB_UBM Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "ADC12_A Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "Comp_B Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config CC430F6137.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.cpuCore = String "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config CC430F6137.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.cpuCoreRevision = String "1.0";
config CC430F6137.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.dataWordSize = Int 2;
config CC430F6137.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.deviceHeader = String undefined;
config CC430F6137.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config CC430F6137.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config CC430F6137.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x1C00,
            len: 0x1000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0x8000,
            len: 0x7F80,
            space: "code",
            access: "RWX"
        }
    ]
];
config CC430F6137.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.minDataUnitSize = Int 1;
config CC430F6137.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.minProgUnitSize = Int 1;
config CC430F6137.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config CC430F6137.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.vcc = Float 0;
config CC430F6137.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new CC430F6137.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new CC430F6137.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = CC430F6137.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
CC430F6137.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
CC430F6137.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:26 GMT


module ti.catalog.msp430.CC430F6137

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== CC430F6137.xdc ========
    15     *
    16     *! Revision History
    17     *! ================
    18     *! 14-Apr-2011 sasha   Created.
    19     */
    20    package ti.catalog.msp430;
    21
    22    /*!
    23     *  ======== CC430F6137 ========
    24     *  CC430F6137 CPU definition
    25     */
    26    metaonly module CC430F6137 inherits IMSP430F55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36
    37            ["RAM", {
    38                comment:    "Data RAM",
    39                name:       "RAM",
    40                base:       0x1C00,
    41                len:        0x1000,
    42                space:      "code/data",
    43                access:     "RWX"
    44            }],
    45
    46            ["FLASH", {
    47                comment:    "Program FLASH",
    48                name:       "FLASH",
    49                base:       0x8000,
    50                len:        0x7F80,
    51                space:      "code",
    52                access:     "RWX"
    53            }],
    54        ];
    55    };


interface ti.catalog.msp430.IMSP430

metaonly interface ti.catalog.msp430.IMSP430
index URL

An interface implemented by all MSP430 devices

This interface is defined to factor common data about this family into a single place; all MSP430 devices extend this interface.
XDCspec summary sourced in ti/catalog/msp430/IMSP430.xdc
metaonly interface IMSP430 { ...
// inherits ti.catalog.ICpuDataSheet
    // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
package ti.catalog.msp430;
metaonly interface IMSP430 inherits ICpuDataSheet {
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "MSP430";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Float vcc// Stores current system VCC value in CFG script = 0;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IMSP430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
override config String cpuCore = "MSP430";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IMSP430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
config String cpuCoreRevision;
config IMSP430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
override config Int dataWordSize = 2;
config IMSP430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
config String deviceHeader;
config IMSP430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
override config Int minDataUnitSize = 1;
config IMSP430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
override config Int minProgUnitSize = 1;
config IMSP430.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
config IPeripheral.Instance peripherals[string];
config IMSP430.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
config Float vcc = 0;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IMSP430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IMSP430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:24 GMT


interface ti.catalog.msp430.IMSP430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== IMSP430.xdc ========
    15     */
    16    package ti.catalog.msp430;
    17
    18    /*!
    19     *  ======== IMSP430 ========
    20     *  An interface implemented by all MSP430 devices.
    21     *
    22     *  This interface is defined to factor common data about this family into
    23     *  a single place; all MSP430 devices extend this interface.
    24     */
    25    metaonly interface IMSP430 inherits ti.catalog.ICpuDataSheet
    26    {
    27    instance:
    28        override config String  cpuCore         = "MSP430";
    29        override config String  isa             = "430";
    30        override config Int     minProgUnitSize = 1;
    31        override config Int     minDataUnitSize = 1;
    32        override config Int     dataWordSize    = 2;
    33
    34        /*!
    35         *  ======== vcc ========
    36         *  Stores current system VCC value in CFG script
    37         */
    38                 config Float   vcc             = 0;
    39    };


interface ti.catalog.msp430.IMSP430F54xx

metaonly interface ti.catalog.msp430.IMSP430F54xx
index URL
XDCspec summary sourced in ti/catalog/msp430/IMSP430F54xx.xdc
metaonly interface IMSP430F54xx { ...
// inherits ti.catalog.msp430.IMSP430
    // inherits ti.catalog.ICpuDataSheet
        // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
package ti.catalog.msp430;
metaonly interface IMSP430F54xx inherits IMSP430 {
instance:
per-instance config parameters
    config Timer0_A5.Instance TA0// ;
    config Timer1_A3.Instance TA1// ;
    config Timer0_B7.Instance TB0// ;
    config IPlatform.Memory commonMap// Memory map elements shared by all MSP430F54xx devices[string] = [
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFO",
            {
                comment: "Information memory (flash)",
                name: "INFO",
                base: 0x1800,
                len: 0x200,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "USCI_B3 Receive/Transmit Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "USCI_A3 Receive/Transmit Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USCI_B2 Receive/Transmit Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "USCI_A2 Receive/Transmit Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "ADC12_A Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    override config String cpuCore// A string identifying the CPU Core = "MSP430X";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config Interrupt_Controller.Instance interruptController// ;
    config IE1.Instance interruptEnableRegister1// ;
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Float vcc// Stores current system VCC value in CFG script = 0;
    config WDTplus.Instance wdtPlus// ;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IMSP430F54xx.TA0 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config Timer0_A5.Instance TA0;
config IMSP430F54xx.TA1 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config Timer1_A3.Instance TA1;
config IMSP430F54xx.TB0 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config Timer0_B7.Instance TB0;
config IMSP430F54xx.commonMap // instance
index URL

Memory map elements shared by all MSP430F54xx devices

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config IPlatform.Memory commonMap[string] = [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFO",
        {
            comment: "Information memory (flash)",
            name: "INFO",
            base: 0x1800,
            len: 0x200,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "USCI_B3 Receive/Transmit Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "USCI_A3 Receive/Transmit Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USCI_B2 Receive/Transmit Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "USCI_A2 Receive/Transmit Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "ADC12_A Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config IMSP430F54xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
override config String cpuCore = "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IMSP430F54xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config String cpuCoreRevision;
config IMSP430F54xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
override config Int dataWordSize = 2;
config IMSP430F54xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config String deviceHeader;
config IMSP430F54xx.interruptController // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config Interrupt_Controller.Instance interruptController;
config IMSP430F54xx.interruptEnableRegister1 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config IE1.Instance interruptEnableRegister1;
config IMSP430F54xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
override config Int minDataUnitSize = 1;
config IMSP430F54xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
override config Int minProgUnitSize = 1;
config IMSP430F54xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config IPeripheral.Instance peripherals[string];
config IMSP430F54xx.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config Float vcc = 0;
config IMSP430F54xx.wdtPlus // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config WDTplus.Instance wdtPlus;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IMSP430F54xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IMSP430F54xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:25 GMT


interface ti.catalog.msp430.IMSP430F54xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== IMSP430F54xx.xdc ========
    15     *  Common definitions for MSP430F54xx devices
    16     *
    17     *  This device can load code for different MSP430 ISAs - `MSP430` and
    18     *  `MSP430X`. The parameter `{@link #isa}` is set to a JavaScript regular
    19     *  expression that covers different MSP430 ISAs.
    20     *
    21     *! Revision History
    22     *! ================
    23     *! 31-Oct-2009 sg      Created.
    24     */
    25
    26    metaonly interface IMSP430F54xx inherits IMSP430
    27    {
    28
    29    instance:
    30
    31        override config string   cpuCore = "MSP430X";
    32        override config string   isa     = "430|430X";
    33
    34        config ti.catalog.msp430.peripherals.special_function.IE1.Instance
    35            interruptEnableRegister1;
    36        config ti.catalog.msp430.peripherals.timer.Timer0_A5.Instance TA0;
    37        config ti.catalog.msp430.peripherals.timer.Timer1_A3.Instance TA1;
    38        config ti.catalog.msp430.peripherals.timer.Timer0_B7.Instance TB0;
    39        config ti.catalog.msp430.peripherals.watchdog.WDTplus.Instance wdtPlus;
    40        config ti.catalog.msp430.peripherals.interrupt.Interrupt_Controller.Instance
    41            interruptController;
    42
    43        /*!
    44         *  ======== commonMap ========
    45         *  Memory map elements shared by all MSP430F54xx devices
    46         */
    47        config xdc.platform.IPlatform.Memory commonMap[string] = [
    48
    49            ["PERIPHERALS", {
    50                comment:    "Memory mapped peripherals",
    51                name:       "PERIPHERALS",
    52                base:       0x0,
    53                len:        0x1000,
    54                space:      "io",
    55                access:     "RW"
    56            }],
    57
    58            ["BSL", {
    59                comment:    "Bootstrap loader (flash)",
    60                name:       "BSL",
    61                base:       0x1000,
    62                len:        0x800,
    63                space:      "code",
    64                access:     "RW"
    65            }],
    66
    67            ["INFO", {
    68                comment:    "Information memory (flash)",
    69                name:       "INFO",
    70                base:       0x1800,
    71                len:        0x200,
    72                space:      "data",
    73                access:     "RW"
    74            }],
    75
    76            ["INT00", {
    77                comment: "Reserved Vector",
    78                name: "INT00",
    79                base: 0xFF80,
    80                len: 0x2,
    81                space: "data"
    82            }],
    83
    84            ["INT01", {
    85                comment: "Reserved Vector",
    86                name: "INT01",
    87                base: 0xFF82,
    88                len: 0x2,
    89                space: "data"
    90            }],
    91
    92            ["INT02", {
    93                comment: "Reserved Vector",
    94                name: "INT02",
    95                base: 0xFF84,
    96                len: 0x2,
    97                space: "data"
    98            }],
    99
   100            ["INT03", {
   101                comment: "Reserved Vector",
   102                name: "INT03",
   103                base: 0xFF86,
   104                len: 0x2,
   105                space: "data"
   106            }],
   107
   108            ["INT04", {
   109                comment: "Reserved Vector",
   110                name: "INT04",
   111                base: 0xFF88,
   112                len: 0x2,
   113                space: "data"
   114            }],
   115
   116            ["INT05", {
   117                comment: "Reserved Vector",
   118                name: "INT05",
   119                base: 0xFF8A,
   120                len: 0x2,
   121                space: "data"
   122            }],
   123
   124            ["INT06", {
   125                comment: "Reserved Vector",
   126                name: "INT06",
   127                base: 0xFF8C,
   128                len: 0x2,
   129                space: "data"
   130            }],
   131
   132            ["INT07", {
   133                comment: "Reserved Vector",
   134                name: "INT07",
   135                base: 0xFF8E,
   136                len: 0x2,
   137                space: "data"
   138            }],
   139
   140            ["INT08", {
   141                comment: "Reserved Vector",
   142                name: "INT08",
   143                base: 0xFF90,
   144                len: 0x2,
   145                space: "data"
   146            }],
   147
   148            ["INT09", {
   149                comment: "Reserved Vector",
   150                name: "INT09",
   151                base: 0xFF92,
   152                len: 0x2,
   153                space: "data"
   154            }],
   155
   156            ["INT10", {
   157                comment: "Reserved Vector",
   158                name: "INT10",
   159                base: 0xFF94,
   160                len: 0x2,
   161                space: "data"
   162            }],
   163
   164            ["INT11", {
   165                comment: "Reserved Vector",
   166                name: "INT11",
   167                base: 0xFF96,
   168                len: 0x2,
   169                space: "data"
   170            }],
   171
   172            ["INT12", {
   173                comment: "Reserved Vector",
   174                name: "INT12",
   175                base: 0xFF98,
   176                len: 0x2,
   177                space: "data"
   178            }],
   179
   180            ["INT13", {
   181                comment: "Reserved Vector",
   182                name: "INT13",
   183                base: 0xFF9A,
   184                len: 0x2,
   185                space: "data"
   186            }],
   187
   188            ["INT14", {
   189                comment: "Reserved Vector",
   190                name: "INT14",
   191                base: 0xFF9C,
   192                len: 0x2,
   193                space: "data"
   194            }],
   195
   196            ["INT15", {
   197                comment: "Reserved Vector",
   198                name: "INT15",
   199                base: 0xFF9E,
   200                len: 0x2,
   201                space: "data"
   202            }],
   203
   204            ["INT16", {
   205                comment: "Reserved Vector",
   206                name: "INT16",
   207                base: 0xFFA0,
   208                len: 0x2,
   209                space: "data"
   210            }],
   211
   212            ["INT17", {
   213                comment: "Reserved Vector",
   214                name: "INT17",
   215                base: 0xFFA2,
   216                len: 0x2,
   217                space: "data"
   218            }],
   219
   220            ["INT18", {
   221                comment: "Reserved Vector",
   222                name: "INT18",
   223                base: 0xFFA4,
   224                len: 0x2,
   225                space: "data"
   226            }],
   227
   228            ["INT19", {
   229                comment: "Reserved Vector",
   230                name: "INT19",
   231                base: 0xFFA6,
   232                len: 0x2,
   233                space: "data"
   234            }],
   235
   236            ["INT20", {
   237                comment: "Reserved Vector",
   238                name: "INT20",
   239                base: 0xFFA8,
   240                len: 0x2,
   241                space: "data"
   242            }],
   243
   244            ["INT21", {
   245                comment: "Reserved Vector",
   246                name: "INT21",
   247                base: 0xFFAA,
   248                len: 0x2,
   249                space: "data"
   250            }],
   251
   252            ["INT22", {
   253                comment: "Reserved Vector",
   254                name: "INT22",
   255                base: 0xFFAC,
   256                len: 0x2,
   257                space: "data"
   258            }],
   259
   260            ["INT23", {
   261                comment: "Reserved Vector",
   262                name: "INT23",
   263                base: 0xFFAE,
   264                len: 0x2,
   265                space: "data"
   266            }],
   267
   268            ["INT24", {
   269                comment: "Reserved Vector",
   270                name: "INT24",
   271                base: 0xFFB0,
   272                len: 0x2,
   273                space: "data"
   274            }],
   275
   276            ["INT25", {
   277                comment: "Reserved Vector",
   278                name: "INT25",
   279                base: 0xFFB2,
   280                len: 0x2,
   281                space: "data"
   282            }],
   283
   284            ["INT26", {
   285                comment: "Reserved Vector",
   286                name: "INT26",
   287                base: 0xFFB4,
   288                len: 0x2,
   289                space: "data"
   290            }],
   291
   292            ["INT27", {
   293                comment: "Reserved Vector",
   294                name: "INT27",
   295                base: 0xFFB6,
   296                len: 0x2,
   297                space: "data"
   298            }],
   299
   300            ["INT28", {
   301                comment: "Reserved Vector",
   302                name: "INT28",
   303                base: 0xFFB8,
   304                len: 0x2,
   305                space: "data"
   306            }],
   307
   308            ["INT29", {
   309                comment: "Reserved Vector",
   310                name: "INT29",
   311                base: 0xFFBA,
   312                len: 0x2,
   313                space: "data"
   314            }],
   315
   316            ["INT30", {
   317                comment: "Reserved Vector",
   318                name: "INT30",
   319                base: 0xFFBC,
   320                len: 0x2,
   321                space: "data"
   322            }],
   323
   324            ["INT31", {
   325                comment: "Reserved Vector",
   326                name: "INT31",
   327                base: 0xFFBE,
   328                len: 0x2,
   329                space: "data"
   330            }],
   331
   332            ["INT32", {
   333                comment: "Reserved Vector",
   334                name: "INT32",
   335                base: 0xFFC0,
   336                len: 0x2,
   337                space: "data"
   338            }],
   339
   340            ["INT33", {
   341                comment: "Reserved Vector",
   342                name: "INT33",
   343                base: 0xFFC2,
   344                len: 0x2,
   345                space: "data"
   346            }],
   347
   348            ["INT34", {
   349                comment: "Reserved Vector",
   350                name: "INT34",
   351                base: 0xFFC4,
   352                len: 0x2,
   353                space: "data"
   354            }],
   355
   356            ["INT35", {
   357                comment: "Reserved Vector",
   358                name: "INT35",
   359                base: 0xFFC6,
   360                len: 0x2,
   361                space: "data"
   362            }],
   363
   364            ["INT36", {
   365                comment: "Reserved Vector",
   366                name: "INT36",
   367                base: 0xFFC8,
   368                len: 0x2,
   369                space: "data"
   370            }],
   371
   372            ["INT37", {
   373                comment: "Reserved Vector",
   374                name: "INT37",
   375                base: 0xFFCA,
   376                len: 0x2,
   377                space: "data"
   378            }],
   379
   380            ["INT38", {
   381                comment: "Reserved Vector",
   382                name: "INT38",
   383                base: 0xFFCC,
   384                len: 0x2,
   385                space: "data"
   386            }],
   387
   388            ["INT39", {
   389                comment: "Reserved Vector",
   390                name: "INT39",
   391                base: 0xFFCE,
   392                len: 0x2,
   393                space: "data"
   394            }],
   395
   396            ["INT40", {
   397                comment: "Reserved Vector",
   398                name: "INT40",
   399                base: 0xFFD0,
   400                len: 0x2,
   401                space: "data"
   402            }],
   403
   404            ["INT41", {
   405                comment: "RTC_A Vector",
   406                name: "INT41",
   407                base: 0xFFD2,
   408                len: 0x2,
   409                space: "data"
   410            }],
   411
   412            ["INT42", {
   413                comment: "I/O Port P2 Vector",
   414                name: "INT42",
   415                base: 0xFFD4,
   416                len: 0x2,
   417                space: "data"
   418            }],
   419
   420            ["INT43", {
   421                comment: "USCI_B3 Receive/Transmit Vector",
   422                name: "INT43",
   423                base: 0xFFD6,
   424                len: 0x2,
   425                space: "data"
   426            }],
   427
   428            ["INT44", {
   429                comment: "USCI_A3 Receive/Transmit Vector",
   430                name: "INT44",
   431                base: 0xFFD8,
   432                len: 0x2,
   433                space: "data"
   434            }],
   435
   436            ["INT45", {
   437                comment: "USCI_B1 Receive/Transmit Vector",
   438                name: "INT45",
   439                base: 0xFFDA,
   440                len: 0x2,
   441                space: "data"
   442            }],
   443
   444            ["INT46", {
   445                comment: "USCI_A1 Receive/Transmit Vector",
   446                name: "INT46",
   447                base: 0xFFDC,
   448                len: 0x2,
   449                space: "data"
   450            }],
   451
   452            ["INT47", {
   453                comment: "I/O Port P1 Vector",
   454                name: "INT47",
   455                base: 0xFFDE,
   456                len: 0x2,
   457                space: "data"
   458            }],
   459
   460            ["INT48", {
   461                comment: "TA1 CCR1-CCR2 Vector",
   462                name: "INT48",
   463                base: 0xFFE0,
   464                len: 0x2,
   465                space: "data"
   466            }],
   467
   468            ["INT49", {
   469                comment: "TA1 CCR0 Vector",
   470                name: "INT49",
   471                base: 0xFFE2,
   472                len: 0x2,
   473                space: "data"
   474            }],
   475
   476            ["INT50", {
   477                comment: "DMA Vector",
   478                name: "INT50",
   479                base: 0xFFE4,
   480                len: 0x2,
   481                space: "data"
   482            }],
   483
   484            ["INT51", {
   485                comment: "USCI_B2 Receive/Transmit Vector",
   486                name: "INT51",
   487                base: 0xFFE6,
   488                len: 0x2,
   489                space: "data"
   490            }],
   491
   492            ["INT52", {
   493                comment: "USCI_A2 Receive/Transmit Vector",
   494                name: "INT52",
   495                base: 0xFFE8,
   496                len: 0x2,
   497                space: "data"
   498            }],
   499
   500            ["INT53", {
   501                comment: "TA0 CCR1-CCR4 Vector",
   502                name: "INT53",
   503                base: 0xFFEA,
   504                len: 0x2,
   505                space: "data"
   506            }],
   507
   508            ["INT54", {
   509                comment: "TA0 CCR0 Vector",
   510                name: "INT54",
   511                base: 0xFFEC,
   512                len: 0x2,
   513                space: "data"
   514            }],
   515
   516            ["INT55", {
   517                comment: "ADC12_A Vector",
   518                name: "INT55",
   519                base: 0xFFEE,
   520                len: 0x2,
   521                space: "data"
   522            }],
   523
   524            ["INT56", {
   525                comment: "USCI_B0 Receive/Transmit Vector",
   526                name: "INT56",
   527                base: 0xFFF0,
   528                len: 0x2,
   529                space: "data"
   530            }],
   531
   532            ["INT57", {
   533                comment: "USCI_A0 Receive/Transmit Vector",
   534                name: "INT57",
   535                base: 0xFFF2,
   536                len: 0x2,
   537                space: "data"
   538            }],
   539
   540            ["INT58", {
   541                comment: "Watchdog Timer_A Interval Timer Mode Vector",
   542                name: "INT58",
   543                base: 0xFFF4,
   544                len: 0x2,
   545                space: "data"
   546            }],
   547
   548            ["INT59", {
   549                comment: "TB0 CCR1-CCR6 Vector",
   550                name: "INT59",
   551                base: 0xFFF6,
   552                len: 0x2,
   553                space: "data"
   554            }],
   555
   556            ["INT60", {
   557                comment: "TB0 CCR0 Vector",
   558                name: "INT60",
   559                base: 0xFFF8,
   560                len: 0x2,
   561                space: "data"
   562            }],
   563
   564            ["INT61", {
   565                comment: "User NMI Vector",
   566                name: "INT61",
   567                base: 0xFFFA,
   568                len: 0x2,
   569                space: "data"
   570            }],
   571
   572            ["INT62", {
   573                comment: "System NMI Vector",
   574                name: "INT62",
   575                base: 0xFFFC,
   576                len: 0x2,
   577                space: "data"
   578            }],
   579
   580            ["RESET", {
   581                comment: "Reset Vector",
   582                name: "RESET",
   583                base: 0xFFFE,
   584                len:  0x2,
   585                space: "data"
   586            }],
   587        ];
   588    }


interface ti.catalog.msp430.IMSP430F55xx

metaonly interface ti.catalog.msp430.IMSP430F55xx
index URL
XDCspec summary sourced in ti/catalog/msp430/IMSP430F55xx.xdc
metaonly interface IMSP430F55xx { ...
// inherits ti.catalog.msp430.IMSP430
    // inherits ti.catalog.ICpuDataSheet
        // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
package ti.catalog.msp430;
metaonly interface IMSP430F55xx inherits IMSP430 {
instance:
per-instance config parameters
    config Timer0_A5.Instance TA0// ;
    config Timer1_A3.Instance TA1// ;
    config Timer2_A3.Instance TA2// ;
    config Timer0_B7.Instance TB0// ;
    config IPlatform.Memory commonMap// Memory map elements shared by all MSP430F55xx devices[string] = [
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFOD",
            {
                comment: "Information Memory D (flash)",
                name: "INFOD",
                base: 0x1800,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOC",
            {
                comment: "Information Memory C (flash)",
                name: "INFOC",
                base: 0x1880,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOB",
            {
                comment: "Information Memory B (flash)",
                name: "INFOB",
                base: 0x1900,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOA",
            {
                comment: "Information Memory A (flash)",
                name: "INFOA",
                base: 0x1980,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "TA2 CCR1-CCR2 Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "TA2 CCR0 Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USB_UBM Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "ADC12_A Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "Comp_B Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    override config String cpuCore// A string identifying the CPU Core = "MSP430X";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config Interrupt_Controller.Instance interruptController// ;
    config IE1.Instance interruptEnableRegister1// ;
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Float vcc// Stores current system VCC value in CFG script = 0;
    config WDTplus.Instance wdtPlus// ;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IMSP430F55xx.TA0 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config Timer0_A5.Instance TA0;
config IMSP430F55xx.TA1 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config Timer1_A3.Instance TA1;
config IMSP430F55xx.TA2 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config Timer2_A3.Instance TA2;
config IMSP430F55xx.TB0 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config Timer0_B7.Instance TB0;
config IMSP430F55xx.commonMap // instance
index URL

Memory map elements shared by all MSP430F55xx devices

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config IPlatform.Memory commonMap[string] = [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFOD",
        {
            comment: "Information Memory D (flash)",
            name: "INFOD",
            base: 0x1800,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOC",
        {
            comment: "Information Memory C (flash)",
            name: "INFOC",
            base: 0x1880,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOB",
        {
            comment: "Information Memory B (flash)",
            name: "INFOB",
            base: 0x1900,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOA",
        {
            comment: "Information Memory A (flash)",
            name: "INFOA",
            base: 0x1980,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "TA2 CCR1-CCR2 Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "TA2 CCR0 Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USB_UBM Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "ADC12_A Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "Comp_B Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config IMSP430F55xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
override config String cpuCore = "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IMSP430F55xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config String cpuCoreRevision;
config IMSP430F55xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
override config Int dataWordSize = 2;
config IMSP430F55xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config String deviceHeader;
config IMSP430F55xx.interruptController // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config Interrupt_Controller.Instance interruptController;
config IMSP430F55xx.interruptEnableRegister1 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config IE1.Instance interruptEnableRegister1;
config IMSP430F55xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
override config Int minDataUnitSize = 1;
config IMSP430F55xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
override config Int minProgUnitSize = 1;
config IMSP430F55xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config IPeripheral.Instance peripherals[string];
config IMSP430F55xx.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config Float vcc = 0;
config IMSP430F55xx.wdtPlus // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config WDTplus.Instance wdtPlus;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IMSP430F55xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IMSP430F55xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:25 GMT


interface ti.catalog.msp430.IMSP430F55xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== IMSP430F55xx.xdc ========
    15     *  Common definitions for MSP430F55xx devices
    16     *
    17     *  This device can load code for different MSP430 ISAs - `MSP430` and
    18     *  `MSP430X`. The parameter `{@link #isa}` is set to a JavaScript regular
    19     *  expression that covers different MSP430 ISAs.
    20     *
    21     *! Revision History
    22     *! ================
    23     *! 01-Mar-2010 sg      Created.
    24     */
    25
    26    metaonly interface IMSP430F55xx inherits IMSP430
    27    {
    28
    29    instance:
    30
    31        override config string   cpuCore = "MSP430X";
    32        override config string   isa     = "430|430X";
    33
    34        config ti.catalog.msp430.peripherals.special_function.IE1.Instance
    35            interruptEnableRegister1;
    36        config ti.catalog.msp430.peripherals.timer.Timer0_A5.Instance TA0;
    37        config ti.catalog.msp430.peripherals.timer.Timer1_A3.Instance TA1;
    38        config ti.catalog.msp430.peripherals.timer.Timer2_A3.Instance TA2;
    39        config ti.catalog.msp430.peripherals.timer.Timer0_B7.Instance TB0;
    40        config ti.catalog.msp430.peripherals.watchdog.WDTplus.Instance wdtPlus;
    41        config ti.catalog.msp430.peripherals.interrupt.Interrupt_Controller.Instance
    42            interruptController;
    43
    44        /*!
    45         *  ======== commonMap ========
    46         *  Memory map elements shared by all MSP430F55xx devices
    47         */
    48        config xdc.platform.IPlatform.Memory commonMap[string] = [
    49
    50            ["PERIPHERALS", {
    51                comment:    "Memory mapped peripherals",
    52                name:       "PERIPHERALS",
    53                base:       0x0,
    54                len:        0x1000,
    55                space:      "io",
    56                access:     "RW"
    57            }],
    58
    59            ["BSL", {
    60                comment:    "Bootstrap loader (flash)",
    61                name:       "BSL",
    62                base:       0x1000,
    63                len:        0x800,
    64                space:      "code",
    65                access:     "RW"
    66            }],
    67
    68            ["INFOD", {
    69                comment:    "Information Memory D (flash)",
    70                name:       "INFOD",
    71                base:       0x1800,
    72                len:        0x80,
    73                space:      "data",
    74                access:     "RW"
    75            }],
    76
    77            ["INFOC", {
    78                comment:    "Information Memory C (flash)",
    79                name:       "INFOC",
    80                base:       0x1880,
    81                len:        0x80,
    82                space:      "data",
    83                access:     "RW"
    84            }],
    85
    86            ["INFOB", {
    87                comment:    "Information Memory B (flash)",
    88                name:       "INFOB",
    89                base:       0x1900,
    90                len:        0x80,
    91                space:      "data",
    92                access:     "RW"
    93            }],
    94
    95            ["INFOA", {
    96                comment:    "Information Memory A (flash)",
    97                name:       "INFOA",
    98                base:       0x1980,
    99                len:        0x80,
   100                space:      "data",
   101                access:     "RW"
   102            }],
   103
   104            ["INT00", {
   105                comment: "Reserved Vector",
   106                name: "INT00",
   107                base: 0xFF80,
   108                len: 0x2,
   109                space: "data"
   110            }],
   111
   112            ["INT01", {
   113                comment: "Reserved Vector",
   114                name: "INT01",
   115                base: 0xFF82,
   116                len: 0x2,
   117                space: "data"
   118            }],
   119
   120            ["INT02", {
   121                comment: "Reserved Vector",
   122                name: "INT02",
   123                base: 0xFF84,
   124                len: 0x2,
   125                space: "data"
   126            }],
   127
   128            ["INT03", {
   129                comment: "Reserved Vector",
   130                name: "INT03",
   131                base: 0xFF86,
   132                len: 0x2,
   133                space: "data"
   134            }],
   135
   136            ["INT04", {
   137                comment: "Reserved Vector",
   138                name: "INT04",
   139                base: 0xFF88,
   140                len: 0x2,
   141                space: "data"
   142            }],
   143
   144            ["INT05", {
   145                comment: "Reserved Vector",
   146                name: "INT05",
   147                base: 0xFF8A,
   148                len: 0x2,
   149                space: "data"
   150            }],
   151
   152            ["INT06", {
   153                comment: "Reserved Vector",
   154                name: "INT06",
   155                base: 0xFF8C,
   156                len: 0x2,
   157                space: "data"
   158            }],
   159
   160            ["INT07", {
   161                comment: "Reserved Vector",
   162                name: "INT07",
   163                base: 0xFF8E,
   164                len: 0x2,
   165                space: "data"
   166            }],
   167
   168            ["INT08", {
   169                comment: "Reserved Vector",
   170                name: "INT08",
   171                base: 0xFF90,
   172                len: 0x2,
   173                space: "data"
   174            }],
   175
   176            ["INT09", {
   177                comment: "Reserved Vector",
   178                name: "INT09",
   179                base: 0xFF92,
   180                len: 0x2,
   181                space: "data"
   182            }],
   183
   184            ["INT10", {
   185                comment: "Reserved Vector",
   186                name: "INT10",
   187                base: 0xFF94,
   188                len: 0x2,
   189                space: "data"
   190            }],
   191
   192            ["INT11", {
   193                comment: "Reserved Vector",
   194                name: "INT11",
   195                base: 0xFF96,
   196                len: 0x2,
   197                space: "data"
   198            }],
   199
   200            ["INT12", {
   201                comment: "Reserved Vector",
   202                name: "INT12",
   203                base: 0xFF98,
   204                len: 0x2,
   205                space: "data"
   206            }],
   207
   208            ["INT13", {
   209                comment: "Reserved Vector",
   210                name: "INT13",
   211                base: 0xFF9A,
   212                len: 0x2,
   213                space: "data"
   214            }],
   215
   216            ["INT14", {
   217                comment: "Reserved Vector",
   218                name: "INT14",
   219                base: 0xFF9C,
   220                len: 0x2,
   221                space: "data"
   222            }],
   223
   224            ["INT15", {
   225                comment: "Reserved Vector",
   226                name: "INT15",
   227                base: 0xFF9E,
   228                len: 0x2,
   229                space: "data"
   230            }],
   231
   232            ["INT16", {
   233                comment: "Reserved Vector",
   234                name: "INT16",
   235                base: 0xFFA0,
   236                len: 0x2,
   237                space: "data"
   238            }],
   239
   240            ["INT17", {
   241                comment: "Reserved Vector",
   242                name: "INT17",
   243                base: 0xFFA2,
   244                len: 0x2,
   245                space: "data"
   246            }],
   247
   248            ["INT18", {
   249                comment: "Reserved Vector",
   250                name: "INT18",
   251                base: 0xFFA4,
   252                len: 0x2,
   253                space: "data"
   254            }],
   255
   256            ["INT19", {
   257                comment: "Reserved Vector",
   258                name: "INT19",
   259                base: 0xFFA6,
   260                len: 0x2,
   261                space: "data"
   262            }],
   263
   264            ["INT20", {
   265                comment: "Reserved Vector",
   266                name: "INT20",
   267                base: 0xFFA8,
   268                len: 0x2,
   269                space: "data"
   270            }],
   271
   272            ["INT21", {
   273                comment: "Reserved Vector",
   274                name: "INT21",
   275                base: 0xFFAA,
   276                len: 0x2,
   277                space: "data"
   278            }],
   279
   280            ["INT22", {
   281                comment: "Reserved Vector",
   282                name: "INT22",
   283                base: 0xFFAC,
   284                len: 0x2,
   285                space: "data"
   286            }],
   287
   288            ["INT23", {
   289                comment: "Reserved Vector",
   290                name: "INT23",
   291                base: 0xFFAE,
   292                len: 0x2,
   293                space: "data"
   294            }],
   295
   296            ["INT24", {
   297                comment: "Reserved Vector",
   298                name: "INT24",
   299                base: 0xFFB0,
   300                len: 0x2,
   301                space: "data"
   302            }],
   303
   304            ["INT25", {
   305                comment: "Reserved Vector",
   306                name: "INT25",
   307                base: 0xFFB2,
   308                len: 0x2,
   309                space: "data"
   310            }],
   311
   312            ["INT26", {
   313                comment: "Reserved Vector",
   314                name: "INT26",
   315                base: 0xFFB4,
   316                len: 0x2,
   317                space: "data"
   318            }],
   319
   320            ["INT27", {
   321                comment: "Reserved Vector",
   322                name: "INT27",
   323                base: 0xFFB6,
   324                len: 0x2,
   325                space: "data"
   326            }],
   327
   328            ["INT28", {
   329                comment: "Reserved Vector",
   330                name: "INT28",
   331                base: 0xFFB8,
   332                len: 0x2,
   333                space: "data"
   334            }],
   335
   336            ["INT29", {
   337                comment: "Reserved Vector",
   338                name: "INT29",
   339                base: 0xFFBA,
   340                len: 0x2,
   341                space: "data"
   342            }],
   343
   344            ["INT30", {
   345                comment: "Reserved Vector",
   346                name: "INT30",
   347                base: 0xFFBC,
   348                len: 0x2,
   349                space: "data"
   350            }],
   351
   352            ["INT31", {
   353                comment: "Reserved Vector",
   354                name: "INT31",
   355                base: 0xFFBE,
   356                len: 0x2,
   357                space: "data"
   358            }],
   359
   360            ["INT32", {
   361                comment: "Reserved Vector",
   362                name: "INT32",
   363                base: 0xFFC0,
   364                len: 0x2,
   365                space: "data"
   366            }],
   367
   368            ["INT33", {
   369                comment: "Reserved Vector",
   370                name: "INT33",
   371                base: 0xFFC2,
   372                len: 0x2,
   373                space: "data"
   374            }],
   375
   376            ["INT34", {
   377                comment: "Reserved Vector",
   378                name: "INT34",
   379                base: 0xFFC4,
   380                len: 0x2,
   381                space: "data"
   382            }],
   383
   384            ["INT35", {
   385                comment: "Reserved Vector",
   386                name: "INT35",
   387                base: 0xFFC6,
   388                len: 0x2,
   389                space: "data"
   390            }],
   391
   392            ["INT36", {
   393                comment: "Reserved Vector",
   394                name: "INT36",
   395                base: 0xFFC8,
   396                len: 0x2,
   397                space: "data"
   398            }],
   399
   400            ["INT37", {
   401                comment: "Reserved Vector",
   402                name: "INT37",
   403                base: 0xFFCA,
   404                len: 0x2,
   405                space: "data"
   406            }],
   407
   408            ["INT38", {
   409                comment: "Reserved Vector",
   410                name: "INT38",
   411                base: 0xFFCC,
   412                len: 0x2,
   413                space: "data"
   414            }],
   415
   416            ["INT39", {
   417                comment: "Reserved Vector",
   418                name: "INT39",
   419                base: 0xFFCE,
   420                len: 0x2,
   421                space: "data"
   422            }],
   423
   424            ["INT40", {
   425                comment: "Reserved Vector",
   426                name: "INT40",
   427                base: 0xFFD0,
   428                len: 0x2,
   429                space: "data"
   430            }],
   431
   432            ["INT41", {
   433                comment: "RTC_A Vector",
   434                name: "INT41",
   435                base: 0xFFD2,
   436                len: 0x2,
   437                space: "data"
   438            }],
   439
   440            ["INT42", {
   441                comment: "I/O Port P2 Vector",
   442                name: "INT42",
   443                base: 0xFFD4,
   444                len: 0x2,
   445                space: "data"
   446            }],
   447
   448            ["INT43", {
   449                comment: "TA2 CCR1-CCR2 Vector",
   450                name: "INT43",
   451                base: 0xFFD6,
   452                len: 0x2,
   453                space: "data"
   454            }],
   455
   456            ["INT44", {
   457                comment: "TA2 CCR0 Vector",
   458                name: "INT44",
   459                base: 0xFFD8,
   460                len: 0x2,
   461                space: "data"
   462            }],
   463
   464            ["INT45", {
   465                comment: "USCI_B1 Receive/Transmit Vector",
   466                name: "INT45",
   467                base: 0xFFDA,
   468                len: 0x2,
   469                space: "data"
   470            }],
   471
   472            ["INT46", {
   473                comment: "USCI_A1 Receive/Transmit Vector",
   474                name: "INT46",
   475                base: 0xFFDC,
   476                len: 0x2,
   477                space: "data"
   478            }],
   479
   480            ["INT47", {
   481                comment: "I/O Port P1 Vector",
   482                name: "INT47",
   483                base: 0xFFDE,
   484                len: 0x2,
   485                space: "data"
   486            }],
   487
   488            ["INT48", {
   489                comment: "TA1 CCR1-CCR2 Vector",
   490                name: "INT48",
   491                base: 0xFFE0,
   492                len: 0x2,
   493                space: "data"
   494            }],
   495
   496            ["INT49", {
   497                comment: "TA1 CCR0 Vector",
   498                name: "INT49",
   499                base: 0xFFE2,
   500                len: 0x2,
   501                space: "data"
   502            }],
   503
   504            ["INT50", {
   505                comment: "DMA Vector",
   506                name: "INT50",
   507                base: 0xFFE4,
   508                len: 0x2,
   509                space: "data"
   510            }],
   511
   512            ["INT51", {
   513                comment: "USB_UBM Vector",
   514                name: "INT51",
   515                base: 0xFFE6,
   516                len: 0x2,
   517                space: "data"
   518            }],
   519
   520            ["INT52", {
   521                comment: "TA0 CCR1-CCR4 Vector",
   522                name: "INT52",
   523                base: 0xFFE8,
   524                len: 0x2,
   525                space: "data"
   526            }],
   527
   528            ["INT53", {
   529                comment: "TA0 CCR0 Vector",
   530                name: "INT53",
   531                base: 0xFFEA,
   532                len: 0x2,
   533                space: "data"
   534            }],
   535
   536            ["INT54", {
   537                comment: "ADC12_A Vector",
   538                name: "INT54",
   539                base: 0xFFEC,
   540                len: 0x2,
   541                space: "data"
   542            }],
   543
   544            ["INT55", {
   545                comment: "USCI_B0 Receive/Transmit Vector",
   546                name: "INT55",
   547                base: 0xFFEE,
   548                len: 0x2,
   549                space: "data"
   550            }],
   551
   552            ["INT56", {
   553                comment: "USCI_A0 Receive/Transmit Vector",
   554                name: "INT56",
   555                base: 0xFFF0,
   556                len: 0x2,
   557                space: "data"
   558            }],
   559
   560            ["INT57", {
   561                comment: "Watchdog Timer_A Interval Timer Mode Vector",
   562                name: "INT57",
   563                base: 0xFFF2,
   564                len: 0x2,
   565                space: "data"
   566            }],
   567
   568            ["INT58", {
   569                comment: "TB0 CCR1-CCR6 Vector",
   570                name: "INT58",
   571                base: 0xFFF4,
   572                len: 0x2,
   573                space: "data"
   574            }],
   575
   576            ["INT59", {
   577                comment: "TB0 CCR0 Vector",
   578                name: "INT59",
   579                base: 0xFFF6,
   580                len: 0x2,
   581                space: "data"
   582            }],
   583
   584            ["INT60", {
   585                comment: "Comp_B Vector",
   586                name: "INT60",
   587                base: 0xFFF8,
   588                len: 0x2,
   589                space: "data"
   590            }],
   591
   592            ["INT61", {
   593                comment: "User NMI Vector",
   594                name: "INT61",
   595                base: 0xFFFA,
   596                len: 0x2,
   597                space: "data"
   598            }],
   599
   600            ["INT62", {
   601                comment: "System NMI Vector",
   602                name: "INT62",
   603                base: 0xFFFC,
   604                len: 0x2,
   605                space: "data"
   606            }],
   607
   608            ["RESET", {
   609                comment: "Reset Vector",
   610                name: "RESET",
   611                base: 0xFFFE,
   612                len:  0x2,
   613                space: "data"
   614            }],
   615        ];
   616    }


interface ti.catalog.msp430.IMSP430x22xx

metaonly interface ti.catalog.msp430.IMSP430x22xx
index URL

Common definition for MSP430x22xx devices

XDCspec summary sourced in ti/catalog/msp430/IMSP430x22xx.xdc
metaonly interface IMSP430x22xx { ...
// inherits ti.catalog.msp430.IMSP430
    // inherits ti.catalog.ICpuDataSheet
        // inherits xdc.platform.ICpuDataSheet
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
package ti.catalog.msp430;
metaonly interface IMSP430x22xx inherits IMSP430 {
instance:
per-instance config parameters
    config ADC10.Instance adc10// ;
    config BCSplus.Instance clock// ;
    config IPlatform.Memory commonMap// Memory map elements shared by all MSP430x22xx devices[string] = [
        [
            "PERIPHERALS_8BIT",
            {
                comment: "Memory mapped I/O registers",
                name: "PERIPHERALS_8BIT",
                base: 0x0010,
                len: 0x00F0,
                space: "io",
                access: "RW"
            }
        ],
        [
            "PERIPHERALS_16BIT",
            {
                comment: "Memory mapped I/O registers",
                name: "PERIPHERALS_16BIT",
                base: 0x0100,
                len: 0x0100,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSLSKEY",
            {
                comment: "Boot loader security key",
                name: "BSLSKEY",
                base: 0xFFDE,
                len: 0x0002,
                space: "data",
                access: "RI"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector (int00)",
                name: "INT00",
                base: 0xFFE0,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector (int01)",
                name: "INT01",
                base: 0xFFE2,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT02",
            {
                comment: "I/O Port P1 Vector (int02)",
                name: "INT02",
                base: 0xFFE4,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT03",
            {
                comment: "I/O Port P2 Vector (int03)",
                name: "INT03",
                base: 0xFFE6,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector (int04)",
                name: "INT04",
                base: 0xFFE8,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT05",
            {
                comment: "ADC10 Vector (int05)",
                name: "INT05",
                base: 0xFFEA,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT06",
            {
                comment: "USCI_A0/B0 Transmit Vector (int06)",
                name: "INT06",
                base: 0xFFEC,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT07",
            {
                comment: "USCI_A0/B0 Receive Vector (int07)",
                name: "INT07",
                base: 0xFFEE,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT08",
            {
                comment: "Timer_A3 TBCCR1 Vector (int08)",
                name: "INT08",
                base: 0xFFF0,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT09",
            {
                comment: "Timer_A3 TBCCR0 Vector (int09)",
                name: "INT09",
                base: 0xFFF2,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT10",
            {
                comment: "Watchdog Vector (int10)",
                name: "INT10",
                base: 0xFFF4,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector (int11)",
                name: "INT11",
                base: 0xFFF6,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT12",
            {
                comment: "Timer_B3 TBCCR1 Vector (int12)",
                name: "INT12",
                base: 0xFFF8,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT13",
            {
                comment: "Timer_B3 TBCCR0 Vector (int13)",
                name: "INT13",
                base: 0xFFFA,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT14",
            {
                comment: "NMI Vector (int14)",
                name: "INT14",
                base: 0xFFFC,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector (int15)",
                name: "RESET",
                base: 0xFFFE,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOA",
            {
                comment: "INFO Flash Memory Segment A",
                name: "INFOA",
                base: 0x10C0,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOB",
            {
                comment: "INFO Flash Memory Segment B",
                name: "INFOB",
                base: 0x1080,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOC",
            {
                comment: "INFO Flash Memory Segment C",
                name: "INFOC",
                base: 0x1040,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOD",
            {
                comment: "INFO Flash Memory Segment D",
                name: "INFOD",
                base: 0x1000,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ]
    ];
    override config String cpuCore// A string identifying the CPU Core = "MSP430";
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    override config Int dataWordSize// The size of an int on the target in 8-bit bytes = 2;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config Flash_2xx.Instance flash// ;
    config GPIO_MSP430F22x4.Instance gpio// ;
    config Interrupt_Controller.Instance interruptController// ;
    config IE1.Instance interruptEnableRegister1// ;
    config IE2.Instance interruptEnableRegister2// ;
    override config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = 1;
    override config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = 1;
    config OA_2.Instance oa// ;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
    config Timer_A3.Instance timer_A3// ;
    config Timer_B3.Instance timer_B3// ;
    config USCI_A0_SPI_2xx.Instance usci_A0_SPI// ;
    config USCI_A0_UART_2xx.Instance usci_A0_UART// ;
    config USCI_B0_I2C_2xx.Instance usci_B0_I2C// ;
    config USCI_B0_SPI_2xx.Instance usci_B0_SPI// ;
    config Float vcc// Stores current system VCC value in CFG script = 0;
    config WDTplus.Instance wdtPlus// ;
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
config IMSP430x22xx.adc10 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config ADC10.Instance adc10;
config IMSP430x22xx.clock // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config BCSplus.Instance clock;
config IMSP430x22xx.commonMap // instance
index URL

Memory map elements shared by all MSP430x22xx devices

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config IPlatform.Memory commonMap[string] = [
    [
        "PERIPHERALS_8BIT",
        {
            comment: "Memory mapped I/O registers",
            name: "PERIPHERALS_8BIT",
            base: 0x0010,
            len: 0x00F0,
            space: "io",
            access: "RW"
        }
    ],
    [
        "PERIPHERALS_16BIT",
        {
            comment: "Memory mapped I/O registers",
            name: "PERIPHERALS_16BIT",
            base: 0x0100,
            len: 0x0100,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSLSKEY",
        {
            comment: "Boot loader security key",
            name: "BSLSKEY",
            base: 0xFFDE,
            len: 0x0002,
            space: "data",
            access: "RI"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector (int00)",
            name: "INT00",
            base: 0xFFE0,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector (int01)",
            name: "INT01",
            base: 0xFFE2,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT02",
        {
            comment: "I/O Port P1 Vector (int02)",
            name: "INT02",
            base: 0xFFE4,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT03",
        {
            comment: "I/O Port P2 Vector (int03)",
            name: "INT03",
            base: 0xFFE6,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector (int04)",
            name: "INT04",
            base: 0xFFE8,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT05",
        {
            comment: "ADC10 Vector (int05)",
            name: "INT05",
            base: 0xFFEA,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT06",
        {
            comment: "USCI_A0/B0 Transmit Vector (int06)",
            name: "INT06",
            base: 0xFFEC,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT07",
        {
            comment: "USCI_A0/B0 Receive Vector (int07)",
            name: "INT07",
            base: 0xFFEE,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT08",
        {
            comment: "Timer_A3 TBCCR1 Vector (int08)",
            name: "INT08",
            base: 0xFFF0,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT09",
        {
            comment: "Timer_A3 TBCCR0 Vector (int09)",
            name: "INT09",
            base: 0xFFF2,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT10",
        {
            comment: "Watchdog Vector (int10)",
            name: "INT10",
            base: 0xFFF4,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector (int11)",
            name: "INT11",
            base: 0xFFF6,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT12",
        {
            comment: "Timer_B3 TBCCR1 Vector (int12)",
            name: "INT12",
            base: 0xFFF8,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT13",
        {
            comment: "Timer_B3 TBCCR0 Vector (int13)",
            name: "INT13",
            base: 0xFFFA,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT14",
        {
            comment: "NMI Vector (int14)",
            name: "INT14",
            base: 0xFFFC,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector (int15)",
            name: "RESET",
            base: 0xFFFE,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOA",
        {
            comment: "INFO Flash Memory Segment A",
            name: "INFOA",
            base: 0x10C0,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOB",
        {
            comment: "INFO Flash Memory Segment B",
            name: "INFOB",
            base: 0x1080,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOC",
        {
            comment: "INFO Flash Memory Segment C",
            name: "INFOC",
            base: 0x1040,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOD",
        {
            comment: "INFO Flash Memory Segment D",
            name: "INFOD",
            base: 0x1000,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ]
];
config IMSP430x22xx.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
override config String cpuCore = "MSP430";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config IMSP430x22xx.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config String cpuCoreRevision;
config IMSP430x22xx.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
override config Int dataWordSize = 2;
config IMSP430x22xx.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config String deviceHeader;
config IMSP430x22xx.flash // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config Flash_2xx.Instance flash;
config IMSP430x22xx.gpio // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config GPIO_MSP430F22x4.Instance gpio;
config IMSP430x22xx.interruptController // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config Interrupt_Controller.Instance interruptController;
config IMSP430x22xx.interruptEnableRegister1 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config IE1.Instance interruptEnableRegister1;
config IMSP430x22xx.interruptEnableRegister2 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config IE2.Instance interruptEnableRegister2;
config IMSP430x22xx.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
override config Int minDataUnitSize = 1;
config IMSP430x22xx.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
override config Int minProgUnitSize = 1;
config IMSP430x22xx.oa // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config OA_2.Instance oa;
config IMSP430x22xx.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config IPeripheral.Instance peripherals[string];
config IMSP430x22xx.timer_A3 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config Timer_A3.Instance timer_A3;
config IMSP430x22xx.timer_B3 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config Timer_B3.Instance timer_B3;
config IMSP430x22xx.usci_A0_SPI // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config USCI_A0_SPI_2xx.Instance usci_A0_SPI;
config IMSP430x22xx.usci_A0_UART // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config USCI_A0_UART_2xx.Instance usci_A0_UART;
config IMSP430x22xx.usci_B0_I2C // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config USCI_B0_I2C_2xx.Instance usci_B0_I2C;
config IMSP430x22xx.usci_B0_SPI // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config USCI_B0_SPI_2xx.Instance usci_B0_SPI;
config IMSP430x22xx.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config Float vcc = 0;
config IMSP430x22xx.wdtPlus // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
config WDTplus.Instance wdtPlus;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
IMSP430x22xx.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
IMSP430x22xx.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/msp430/IMSP430x22xx.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:25 GMT


interface ti.catalog.msp430.IMSP430x22xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== IMSP430x22xx.xdc ========
    15     *  Common definition for MSP430x22xx devices
    16     */
    17
    18    metaonly interface IMSP430x22xx inherits IMSP430
    19    {
    20
    21    instance:
    22
    23        config ti.catalog.msp430.peripherals.timer.Timer_A3.Instance timer_A3;
    24        config ti.catalog.msp430.peripherals.timer.Timer_B3.Instance timer_B3;
    25        config ti.catalog.msp430.peripherals.clock.BCSplus.Instance clock;
    26        config ti.catalog.msp430.peripherals.communication.USCI_A0_UART_2xx.Instance usci_A0_UART;
    27        config ti.catalog.msp430.peripherals.communication.USCI_A0_SPI_2xx.Instance usci_A0_SPI;
    28        config ti.catalog.msp430.peripherals.communication.USCI_B0_SPI_2xx.Instance usci_B0_SPI;
    29        config ti.catalog.msp430.peripherals.communication.USCI_B0_I2C_2xx.Instance usci_B0_I2C;
    30        config ti.catalog.msp430.peripherals.adc.ADC10.Instance adc10;
    31        config ti.catalog.msp430.peripherals.watchdog.WDTplus.Instance wdtPlus;
    32        config ti.catalog.msp430.peripherals.oa.OA_2.Instance oa;
    33        config ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F22x4.Instance gpio;
    34        config ti.catalog.msp430.peripherals.memory.Flash_2xx.Instance flash;
    35        config ti.catalog.msp430.peripherals.special_function.IE1.Instance interruptEnableRegister1;
    36        config ti.catalog.msp430.peripherals.special_function.IE2.Instance interruptEnableRegister2;
    37        config ti.catalog.msp430.peripherals.interrupt.Interrupt_Controller.Instance interruptController;
    38
    39        /*!
    40         *  ======== commonMap ========
    41         *  Memory map elements shared by all MSP430x22xx devices
    42         */
    43        config xdc.platform.IPlatform.Memory commonMap[string]  = [
    44            ["PERIPHERALS_8BIT", {
    45                comment:    "Memory mapped I/O registers",
    46                name:       "PERIPHERALS_8BIT",
    47                base:       0x0010,
    48                len:        0x00F0,
    49                space:      "io",
    50                access:     "RW"
    51            }],
    52
    53            ["PERIPHERALS_16BIT", {
    54                comment:    "Memory mapped I/O registers",
    55                name:       "PERIPHERALS_16BIT",
    56                base:       0x0100,
    57                len:        0x0100,
    58                space:      "io",
    59                access:     "RW"
    60            }],
    61
    62            ["BSLSKEY", {
    63                comment:    "Boot loader security key",
    64                name:       "BSLSKEY",
    65                base:       0xFFDE,
    66                len:        0x0002,
    67                space:      "data",
    68                access:     "RI"
    69            }],
    70
    71            ["INT00", {
    72                comment:    "Reserved Vector (int00)",
    73                name:       "INT00",
    74                base:       0xFFE0,
    75                len:        0x0002,
    76                space:      "data",
    77                access:     "RW"
    78            }],
    79
    80            ["INT01", {
    81                comment:    "Reserved Vector (int01)",
    82                name:       "INT01",
    83                base:       0xFFE2,
    84                len:        0x0002,
    85                space:      "data",
    86                access:     "RW"
    87            }],
    88
    89            ["INT02", {
    90                comment:    "I/O Port P1 Vector (int02)",
    91                name:       "INT02",
    92                base:       0xFFE4,
    93                len:        0x0002,
    94                space:      "data",
    95                access:     "RW"
    96            }],
    97
    98            ["INT03", {
    99                comment:    "I/O Port P2 Vector (int03)",
   100                name:       "INT03",
   101                base:       0xFFE6,
   102                len:        0x0002,
   103                space:      "data",
   104                access:     "RW"
   105            }],
   106
   107            ["INT04", {
   108                comment:    "Reserved Vector (int04)",
   109                name:       "INT04",
   110                base:       0xFFE8,
   111                len:        0x0002,
   112                space:      "data",
   113                access:     "RW"
   114            }],
   115
   116            ["INT05", {
   117                comment:    "ADC10 Vector (int05)",
   118                name:       "INT05",
   119                base:       0xFFEA,
   120                len:        0x0002,
   121                space:      "data",
   122                access:     "RW"
   123            }],
   124
   125            ["INT06", {
   126                comment:    "USCI_A0/B0 Transmit Vector (int06)",
   127                name:       "INT06",
   128                base:       0xFFEC,
   129                len:        0x0002,
   130                space:      "data",
   131                access:     "RW"
   132            }],
   133
   134            ["INT07", {
   135                comment:    "USCI_A0/B0 Receive Vector (int07)",
   136                name:       "INT07",
   137                base:       0xFFEE,
   138                len:        0x0002,
   139                space:      "data",
   140                access:     "RW"
   141            }],
   142
   143            ["INT08", {
   144                comment:    "Timer_A3 TBCCR1 Vector (int08)",
   145                name:       "INT08",
   146                base:       0xFFF0,
   147                len:        0x0002,
   148                space:      "data",
   149                access:     "RW"
   150            }],
   151
   152            ["INT09", {
   153                comment:    "Timer_A3 TBCCR0 Vector (int09)",
   154                name:       "INT09",
   155                base:       0xFFF2,
   156                len:        0x0002,
   157                space:      "data",
   158                access:     "RW"
   159            }],
   160
   161            ["INT10", {
   162                comment:    "Watchdog Vector (int10)",
   163                name:       "INT10",
   164                base:       0xFFF4,
   165                len:        0x0002,
   166                space:      "data",
   167                access:     "RW"
   168            }],
   169
   170            ["INT11", {
   171                comment:    "Reserved Vector (int11)",
   172                name:       "INT11",
   173                base:       0xFFF6,
   174                len:        0x0002,
   175                space:      "data",
   176                access:     "RW"
   177            }],
   178
   179            ["INT12", {
   180                comment:    "Timer_B3 TBCCR1 Vector (int12)",
   181                name:       "INT12",
   182                base:       0xFFF8,
   183                len:        0x0002,
   184                space:      "data",
   185                access:     "RW"
   186            }],
   187
   188            ["INT13", {
   189                comment:    "Timer_B3 TBCCR0 Vector (int13)",
   190                name:       "INT13",
   191                base:       0xFFFA,
   192                len:        0x0002,
   193                space:      "data",
   194                access:     "RW"
   195            }],
   196
   197            ["INT14", {
   198                comment:    "NMI Vector (int14)",
   199                name:       "INT14",
   200                base:       0xFFFC,
   201                len:        0x0002,
   202                space:      "data",
   203                access:     "RW"
   204            }],
   205
   206            ["RESET", {
   207                comment:    "Reset Vector (int15)",
   208                name:       "RESET",
   209                base:       0xFFFE,
   210                len:        0x0002,
   211                space:      "data",
   212                access:     "RW"
   213            }],
   214
   215            ["INFOA", {
   216                comment:    "INFO Flash Memory Segment A",
   217                name:       "INFOA",
   218                base:       0x10C0,
   219                len:        0x0040,
   220                space:      "data",
   221                access:     "RW"
   222            }],
   223
   224            ["INFOB", {
   225                comment:    "INFO Flash Memory Segment B",
   226                name:       "INFOB",
   227                base:       0x1080,
   228                len:        0x0040,
   229                space:      "data",
   230                access:     "RW"
   231            }],
   232
   233            ["INFOC", {
   234                comment:    "INFO Flash Memory Segment C",
   235                name:       "INFOC",
   236                base:       0x1040,
   237                len:        0x0040,
   238                space:      "data",
   239                access:     "RW"
   240            }],
   241
   242            ["INFOD", {
   243                comment:    "INFO Flash Memory Segment D",
   244                name:       "INFOD",
   245                base:       0x1000,
   246                len:        0x0040,
   247                space:      "data",
   248                access:     "RW"
   249            }],
   250        ];
   251    }


module ti.catalog.msp430.MSP430

metaonly module ti.catalog.msp430.MSP430
index URL

Generic MSP430 Cpu definition

  • XDCscript usage
  • Individual elements
This device represents all MSP430 devices independent from the ISA. The parameter isa is set to a JavaScript regular expression that covers all MSP430 ISAs.
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430.xdc
var MSP430 = xdc.useModule('ti.catalog.msp430.MSP430');
per-instance config parameters
    var params = new MSP430.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "MSP430.*";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String undefined;
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 1.8;
per-instance creation
    var inst = MSP430.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430.Params;
// Instance config-params object
    params.cpuCore = String "MSP430.*";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String undefined;
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.vcc = Float 1.8;
    // Stores current system VCC value in CFG script
config MSP430.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430.Params;
...
params.cpuCore = String "MSP430.*";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430.Params;
...
params.cpuCoreRevision = String undefined;
config MSP430.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430.Params;
...
params.dataWordSize = Int 2;
config MSP430.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430.Params;
...
params.deviceHeader = String undefined;
config MSP430.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430.Params;
...
params.minDataUnitSize = Int 1;
config MSP430.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430.Params;
...
params.minProgUnitSize = Int 1;
config MSP430.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430.Params;
...
params.vcc = Float 1.8;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:26 GMT


module ti.catalog.msp430.MSP430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== MSP430.xdc ========
    15     *  Generic MSP430 Cpu definition
    16     *
    17     *  This device represents all MSP430 devices independent from the ISA. The
    18     *  parameter `{@link #isa}` is set to a JavaScript regular expression that
    19     *  covers all MSP430 ISAs.
    20     */
    21
    22    metaonly module MSP430 inherits IMSP430
    23    {
    24    instance:
    25        override config string   cpuCore    = "MSP430.*";
    26        override config string   isa        = "430.*";
    27        override config Float    vcc        = 1.8;
    28    }


module ti.catalog.msp430.MSP430F223x

metaonly module ti.catalog.msp430.MSP430F223x
index URL

MSP430F223x Cpu definition

  • XDCscript usage
  • Individual elements
This device has 8KB + 256B of Flash Memory and 512B RAM. The MSP430F2234 has two op-amps (OA) whereas the MSP430F2232 has none.
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F223x.xdc
var MSP430F223x = xdc.useModule('ti.catalog.msp430.MSP430F223x');
per-instance config parameters
    var params = new MSP430F223x.Params// Instance config-params object;
        params.adc10// = ADC10.Instance undefined;
        params.clock// = BCSplus.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430x22xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS_8BIT",
                {
                    comment: "Memory mapped I/O registers",
                    name: "PERIPHERALS_8BIT",
                    base: 0x0010,
                    len: 0x00F0,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "PERIPHERALS_16BIT",
                {
                    comment: "Memory mapped I/O registers",
                    name: "PERIPHERALS_16BIT",
                    base: 0x0100,
                    len: 0x0100,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSLSKEY",
                {
                    comment: "Boot loader security key",
                    name: "BSLSKEY",
                    base: 0xFFDE,
                    len: 0x0002,
                    space: "data",
                    access: "RI"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector (int00)",
                    name: "INT00",
                    base: 0xFFE0,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector (int01)",
                    name: "INT01",
                    base: 0xFFE2,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT02",
                {
                    comment: "I/O Port P1 Vector (int02)",
                    name: "INT02",
                    base: 0xFFE4,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT03",
                {
                    comment: "I/O Port P2 Vector (int03)",
                    name: "INT03",
                    base: 0xFFE6,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector (int04)",
                    name: "INT04",
                    base: 0xFFE8,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT05",
                {
                    comment: "ADC10 Vector (int05)",
                    name: "INT05",
                    base: 0xFFEA,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT06",
                {
                    comment: "USCI_A0/B0 Transmit Vector (int06)",
                    name: "INT06",
                    base: 0xFFEC,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT07",
                {
                    comment: "USCI_A0/B0 Receive Vector (int07)",
                    name: "INT07",
                    base: 0xFFEE,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT08",
                {
                    comment: "Timer_A3 TBCCR1 Vector (int08)",
                    name: "INT08",
                    base: 0xFFF0,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT09",
                {
                    comment: "Timer_A3 TBCCR0 Vector (int09)",
                    name: "INT09",
                    base: 0xFFF2,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT10",
                {
                    comment: "Watchdog Vector (int10)",
                    name: "INT10",
                    base: 0xFFF4,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector (int11)",
                    name: "INT11",
                    base: 0xFFF6,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT12",
                {
                    comment: "Timer_B3 TBCCR1 Vector (int12)",
                    name: "INT12",
                    base: 0xFFF8,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT13",
                {
                    comment: "Timer_B3 TBCCR0 Vector (int13)",
                    name: "INT13",
                    base: 0xFFFA,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT14",
                {
                    comment: "NMI Vector (int14)",
                    name: "INT14",
                    base: 0xFFFC,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector (int15)",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOA",
                {
                    comment: "INFO Flash Memory Segment A",
                    name: "INFOA",
                    base: 0x10C0,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOB",
                {
                    comment: "INFO Flash Memory Segment B",
                    name: "INFOB",
                    base: 0x1080,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOC",
                {
                    comment: "INFO Flash Memory Segment C",
                    name: "INFOC",
                    base: 0x1040,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOD",
                {
                    comment: "INFO Flash Memory Segment D",
                    name: "INFOD",
                    base: 0x1000,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String undefined;
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.deviceMap// Device specific memory blocks = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x200,
                    len: 0x200,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0xE000,
                    len: 0x1FDE,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.flash// = Flash_2xx.Instance undefined;
        params.gpio// = GPIO_MSP430F22x4.Instance undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.interruptEnableRegister2// = IE2.Instance undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.oa// = OA_2.Instance undefined;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer_A3// = Timer_A3.Instance undefined;
        params.timer_B3// = Timer_B3.Instance undefined;
        params.usci_A0_SPI// = USCI_A0_SPI_2xx.Instance undefined;
        params.usci_A0_UART// = USCI_A0_UART_2xx.Instance undefined;
        params.usci_B0_I2C// = USCI_B0_I2C_2xx.Instance undefined;
        params.usci_B0_SPI// = USCI_B0_SPI_2xx.Instance undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F223x.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
// Instance config-params object
    params.adc10 = ADC10.Instance undefined;
    //
    params.clock = BCSplus.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430x22xx devices
        [
            "PERIPHERALS_8BIT",
            {
                comment: "Memory mapped I/O registers",
                name: "PERIPHERALS_8BIT",
                base: 0x0010,
                len: 0x00F0,
                space: "io",
                access: "RW"
            }
        ],
        [
            "PERIPHERALS_16BIT",
            {
                comment: "Memory mapped I/O registers",
                name: "PERIPHERALS_16BIT",
                base: 0x0100,
                len: 0x0100,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSLSKEY",
            {
                comment: "Boot loader security key",
                name: "BSLSKEY",
                base: 0xFFDE,
                len: 0x0002,
                space: "data",
                access: "RI"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector (int00)",
                name: "INT00",
                base: 0xFFE0,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector (int01)",
                name: "INT01",
                base: 0xFFE2,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT02",
            {
                comment: "I/O Port P1 Vector (int02)",
                name: "INT02",
                base: 0xFFE4,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT03",
            {
                comment: "I/O Port P2 Vector (int03)",
                name: "INT03",
                base: 0xFFE6,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector (int04)",
                name: "INT04",
                base: 0xFFE8,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT05",
            {
                comment: "ADC10 Vector (int05)",
                name: "INT05",
                base: 0xFFEA,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT06",
            {
                comment: "USCI_A0/B0 Transmit Vector (int06)",
                name: "INT06",
                base: 0xFFEC,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT07",
            {
                comment: "USCI_A0/B0 Receive Vector (int07)",
                name: "INT07",
                base: 0xFFEE,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT08",
            {
                comment: "Timer_A3 TBCCR1 Vector (int08)",
                name: "INT08",
                base: 0xFFF0,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT09",
            {
                comment: "Timer_A3 TBCCR0 Vector (int09)",
                name: "INT09",
                base: 0xFFF2,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT10",
            {
                comment: "Watchdog Vector (int10)",
                name: "INT10",
                base: 0xFFF4,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector (int11)",
                name: "INT11",
                base: 0xFFF6,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT12",
            {
                comment: "Timer_B3 TBCCR1 Vector (int12)",
                name: "INT12",
                base: 0xFFF8,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT13",
            {
                comment: "Timer_B3 TBCCR0 Vector (int13)",
                name: "INT13",
                base: 0xFFFA,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT14",
            {
                comment: "NMI Vector (int14)",
                name: "INT14",
                base: 0xFFFC,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector (int15)",
                name: "RESET",
                base: 0xFFFE,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOA",
            {
                comment: "INFO Flash Memory Segment A",
                name: "INFOA",
                base: 0x10C0,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOB",
            {
                comment: "INFO Flash Memory Segment B",
                name: "INFOB",
                base: 0x1080,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOC",
            {
                comment: "INFO Flash Memory Segment C",
                name: "INFOC",
                base: 0x1040,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOD",
            {
                comment: "INFO Flash Memory Segment D",
                name: "INFOD",
                base: 0x1000,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.cpuCore = String "MSP430";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String undefined;
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.deviceMap = IPlatform.Memory[string] [
    // Device specific memory blocks
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x200,
                len: 0x200,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0xE000,
                len: 0x1FDE,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.flash = Flash_2xx.Instance undefined;
    //
    params.gpio = GPIO_MSP430F22x4.Instance undefined;
    //
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.interruptEnableRegister2 = IE2.Instance undefined;
    //
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.oa = OA_2.Instance undefined;
    //
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer_A3 = Timer_A3.Instance undefined;
    //
    params.timer_B3 = Timer_B3.Instance undefined;
    //
    params.usci_A0_SPI = USCI_A0_SPI_2xx.Instance undefined;
    //
    params.usci_A0_UART = USCI_A0_UART_2xx.Instance undefined;
    //
    params.usci_B0_I2C = USCI_B0_I2C_2xx.Instance undefined;
    //
    params.usci_B0_SPI = USCI_B0_SPI_2xx.Instance undefined;
    //
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F223x.adc10 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.adc10 = ADC10.Instance undefined;
config MSP430F223x.clock // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.clock = BCSplus.Instance undefined;
config MSP430F223x.commonMap // instance
index URL

Memory map elements shared by all MSP430x22xx devices

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS_8BIT",
        {
            comment: "Memory mapped I/O registers",
            name: "PERIPHERALS_8BIT",
            base: 0x0010,
            len: 0x00F0,
            space: "io",
            access: "RW"
        }
    ],
    [
        "PERIPHERALS_16BIT",
        {
            comment: "Memory mapped I/O registers",
            name: "PERIPHERALS_16BIT",
            base: 0x0100,
            len: 0x0100,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSLSKEY",
        {
            comment: "Boot loader security key",
            name: "BSLSKEY",
            base: 0xFFDE,
            len: 0x0002,
            space: "data",
            access: "RI"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector (int00)",
            name: "INT00",
            base: 0xFFE0,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector (int01)",
            name: "INT01",
            base: 0xFFE2,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT02",
        {
            comment: "I/O Port P1 Vector (int02)",
            name: "INT02",
            base: 0xFFE4,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT03",
        {
            comment: "I/O Port P2 Vector (int03)",
            name: "INT03",
            base: 0xFFE6,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector (int04)",
            name: "INT04",
            base: 0xFFE8,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT05",
        {
            comment: "ADC10 Vector (int05)",
            name: "INT05",
            base: 0xFFEA,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT06",
        {
            comment: "USCI_A0/B0 Transmit Vector (int06)",
            name: "INT06",
            base: 0xFFEC,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT07",
        {
            comment: "USCI_A0/B0 Receive Vector (int07)",
            name: "INT07",
            base: 0xFFEE,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT08",
        {
            comment: "Timer_A3 TBCCR1 Vector (int08)",
            name: "INT08",
            base: 0xFFF0,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT09",
        {
            comment: "Timer_A3 TBCCR0 Vector (int09)",
            name: "INT09",
            base: 0xFFF2,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT10",
        {
            comment: "Watchdog Vector (int10)",
            name: "INT10",
            base: 0xFFF4,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector (int11)",
            name: "INT11",
            base: 0xFFF6,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT12",
        {
            comment: "Timer_B3 TBCCR1 Vector (int12)",
            name: "INT12",
            base: 0xFFF8,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT13",
        {
            comment: "Timer_B3 TBCCR0 Vector (int13)",
            name: "INT13",
            base: 0xFFFA,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT14",
        {
            comment: "NMI Vector (int14)",
            name: "INT14",
            base: 0xFFFC,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector (int15)",
            name: "RESET",
            base: 0xFFFE,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOA",
        {
            comment: "INFO Flash Memory Segment A",
            name: "INFOA",
            base: 0x10C0,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOB",
        {
            comment: "INFO Flash Memory Segment B",
            name: "INFOB",
            base: 0x1080,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOC",
        {
            comment: "INFO Flash Memory Segment C",
            name: "INFOC",
            base: 0x1040,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOD",
        {
            comment: "INFO Flash Memory Segment D",
            name: "INFOD",
            base: 0x1000,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ]
];
config MSP430F223x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.cpuCore = String "MSP430";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F223x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.cpuCoreRevision = String undefined;
config MSP430F223x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.dataWordSize = Int 2;
config MSP430F223x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.deviceHeader = String undefined;
config MSP430F223x.deviceMap // instance
index URL

Device specific memory blocks

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.deviceMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x200,
            len: 0x200,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0xE000,
            len: 0x1FDE,
            space: "code",
            access: "RWX"
        }
    ]
];
DETAILS
This memory together with the common family memory forms the complete memory map retuned by getMemoryMap().
config MSP430F223x.flash // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.flash = Flash_2xx.Instance undefined;
config MSP430F223x.gpio // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.gpio = GPIO_MSP430F22x4.Instance undefined;
config MSP430F223x.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F223x.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F223x.interruptEnableRegister2 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.interruptEnableRegister2 = IE2.Instance undefined;
config MSP430F223x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F223x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F223x.oa // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.oa = OA_2.Instance undefined;
config MSP430F223x.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F223x.timer_A3 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.timer_A3 = Timer_A3.Instance undefined;
config MSP430F223x.timer_B3 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.timer_B3 = Timer_B3.Instance undefined;
config MSP430F223x.usci_A0_SPI // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.usci_A0_SPI = USCI_A0_SPI_2xx.Instance undefined;
config MSP430F223x.usci_A0_UART // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.usci_A0_UART = USCI_A0_UART_2xx.Instance undefined;
config MSP430F223x.usci_B0_I2C // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.usci_B0_I2C = USCI_B0_I2C_2xx.Instance undefined;
config MSP430F223x.usci_B0_SPI // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.usci_B0_SPI = USCI_B0_SPI_2xx.Instance undefined;
config MSP430F223x.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.vcc = Float 0;
config MSP430F223x.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F223x.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F223x.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F223x.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F223x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F223x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:26 GMT


module ti.catalog.msp430.MSP430F223x

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== MSP430F223x.xdc ========
    15     *  MSP430F223x Cpu definition
    16     *
    17     *  This device has 8KB + 256B of Flash Memory and 512B RAM.  The
    18     *  MSP430F2234 has two op-amps (OA) whereas the MSP430F2232 has none.
    19     */
    20
    21    metaonly module MSP430F223x inherits IMSP430x22xx
    22    {
    23    instance:
    24        /*!
    25         *  ======== deviceMap ========
    26         *  Device specific memory blocks
    27         *
    28         *  This memory together with the common family memory forms the
    29         *  complete memory map retuned by `getMemoryMap()`.
    30         */
    31        config xdc.platform.IPlatform.Memory deviceMap[string]  = [
    32            ["RAM", {
    33                comment:    "Data RAM",
    34                name:       "RAM",
    35                base:       0x200,
    36                len:        0x200,
    37                space:      "code/data",
    38                access:     "RWX"
    39            }],
    40
    41            ["FLASH", {
    42                comment:    "Program FLASH",
    43                name:       "FLASH",
    44                base:       0xE000,
    45                len:        0x1FDE,
    46                space:      "code",
    47                access:     "RWX"
    48            }],
    49        ];
    50    }


module ti.catalog.msp430.MSP430F225x

metaonly module ti.catalog.msp430.MSP430F225x
index URL

MSP430F225x Cpu definition

  • XDCscript usage
  • Individual elements
This device has 16KB + 256B of Flash Memory and 512B RAM. The MSP430F2254 has two op-amps (OA) whereas the MSP430F2252 has none.
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F225x.xdc
var MSP430F225x = xdc.useModule('ti.catalog.msp430.MSP430F225x');
per-instance config parameters
    var params = new MSP430F225x.Params// Instance config-params object;
        params.adc10// = ADC10.Instance undefined;
        params.clock// = BCSplus.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430x22xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS_8BIT",
                {
                    comment: "Memory mapped I/O registers",
                    name: "PERIPHERALS_8BIT",
                    base: 0x0010,
                    len: 0x00F0,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "PERIPHERALS_16BIT",
                {
                    comment: "Memory mapped I/O registers",
                    name: "PERIPHERALS_16BIT",
                    base: 0x0100,
                    len: 0x0100,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSLSKEY",
                {
                    comment: "Boot loader security key",
                    name: "BSLSKEY",
                    base: 0xFFDE,
                    len: 0x0002,
                    space: "data",
                    access: "RI"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector (int00)",
                    name: "INT00",
                    base: 0xFFE0,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector (int01)",
                    name: "INT01",
                    base: 0xFFE2,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT02",
                {
                    comment: "I/O Port P1 Vector (int02)",
                    name: "INT02",
                    base: 0xFFE4,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT03",
                {
                    comment: "I/O Port P2 Vector (int03)",
                    name: "INT03",
                    base: 0xFFE6,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector (int04)",
                    name: "INT04",
                    base: 0xFFE8,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT05",
                {
                    comment: "ADC10 Vector (int05)",
                    name: "INT05",
                    base: 0xFFEA,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT06",
                {
                    comment: "USCI_A0/B0 Transmit Vector (int06)",
                    name: "INT06",
                    base: 0xFFEC,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT07",
                {
                    comment: "USCI_A0/B0 Receive Vector (int07)",
                    name: "INT07",
                    base: 0xFFEE,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT08",
                {
                    comment: "Timer_A3 TBCCR1 Vector (int08)",
                    name: "INT08",
                    base: 0xFFF0,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT09",
                {
                    comment: "Timer_A3 TBCCR0 Vector (int09)",
                    name: "INT09",
                    base: 0xFFF2,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT10",
                {
                    comment: "Watchdog Vector (int10)",
                    name: "INT10",
                    base: 0xFFF4,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector (int11)",
                    name: "INT11",
                    base: 0xFFF6,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT12",
                {
                    comment: "Timer_B3 TBCCR1 Vector (int12)",
                    name: "INT12",
                    base: 0xFFF8,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT13",
                {
                    comment: "Timer_B3 TBCCR0 Vector (int13)",
                    name: "INT13",
                    base: 0xFFFA,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT14",
                {
                    comment: "NMI Vector (int14)",
                    name: "INT14",
                    base: 0xFFFC,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector (int15)",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOA",
                {
                    comment: "INFO Flash Memory Segment A",
                    name: "INFOA",
                    base: 0x10C0,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOB",
                {
                    comment: "INFO Flash Memory Segment B",
                    name: "INFOB",
                    base: 0x1080,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOC",
                {
                    comment: "INFO Flash Memory Segment C",
                    name: "INFOC",
                    base: 0x1040,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOD",
                {
                    comment: "INFO Flash Memory Segment D",
                    name: "INFOD",
                    base: 0x1000,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String undefined;
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.deviceMap// Device specific memory blocks = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x200,
                    len: 0x200,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0xC000,
                    len: 0x3FDE,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.flash// = Flash_2xx.Instance undefined;
        params.gpio// = GPIO_MSP430F22x4.Instance undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.interruptEnableRegister2// = IE2.Instance undefined;
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.oa// = OA_2.Instance undefined;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer_A3// = Timer_A3.Instance undefined;
        params.timer_B3// = Timer_B3.Instance undefined;
        params.usci_A0_SPI// = USCI_A0_SPI_2xx.Instance undefined;
        params.usci_A0_UART// = USCI_A0_UART_2xx.Instance undefined;
        params.usci_B0_I2C// = USCI_B0_I2C_2xx.Instance undefined;
        params.usci_B0_SPI// = USCI_B0_SPI_2xx.Instance undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F225x.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
// Instance config-params object
    params.adc10 = ADC10.Instance undefined;
    //
    params.clock = BCSplus.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430x22xx devices
        [
            "PERIPHERALS_8BIT",
            {
                comment: "Memory mapped I/O registers",
                name: "PERIPHERALS_8BIT",
                base: 0x0010,
                len: 0x00F0,
                space: "io",
                access: "RW"
            }
        ],
        [
            "PERIPHERALS_16BIT",
            {
                comment: "Memory mapped I/O registers",
                name: "PERIPHERALS_16BIT",
                base: 0x0100,
                len: 0x0100,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSLSKEY",
            {
                comment: "Boot loader security key",
                name: "BSLSKEY",
                base: 0xFFDE,
                len: 0x0002,
                space: "data",
                access: "RI"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector (int00)",
                name: "INT00",
                base: 0xFFE0,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector (int01)",
                name: "INT01",
                base: 0xFFE2,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT02",
            {
                comment: "I/O Port P1 Vector (int02)",
                name: "INT02",
                base: 0xFFE4,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT03",
            {
                comment: "I/O Port P2 Vector (int03)",
                name: "INT03",
                base: 0xFFE6,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector (int04)",
                name: "INT04",
                base: 0xFFE8,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT05",
            {
                comment: "ADC10 Vector (int05)",
                name: "INT05",
                base: 0xFFEA,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT06",
            {
                comment: "USCI_A0/B0 Transmit Vector (int06)",
                name: "INT06",
                base: 0xFFEC,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT07",
            {
                comment: "USCI_A0/B0 Receive Vector (int07)",
                name: "INT07",
                base: 0xFFEE,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT08",
            {
                comment: "Timer_A3 TBCCR1 Vector (int08)",
                name: "INT08",
                base: 0xFFF0,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT09",
            {
                comment: "Timer_A3 TBCCR0 Vector (int09)",
                name: "INT09",
                base: 0xFFF2,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT10",
            {
                comment: "Watchdog Vector (int10)",
                name: "INT10",
                base: 0xFFF4,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector (int11)",
                name: "INT11",
                base: 0xFFF6,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT12",
            {
                comment: "Timer_B3 TBCCR1 Vector (int12)",
                name: "INT12",
                base: 0xFFF8,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT13",
            {
                comment: "Timer_B3 TBCCR0 Vector (int13)",
                name: "INT13",
                base: 0xFFFA,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT14",
            {
                comment: "NMI Vector (int14)",
                name: "INT14",
                base: 0xFFFC,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector (int15)",
                name: "RESET",
                base: 0xFFFE,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOA",
            {
                comment: "INFO Flash Memory Segment A",
                name: "INFOA",
                base: 0x10C0,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOB",
            {
                comment: "INFO Flash Memory Segment B",
                name: "INFOB",
                base: 0x1080,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOC",
            {
                comment: "INFO Flash Memory Segment C",
                name: "INFOC",
                base: 0x1040,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOD",
            {
                comment: "INFO Flash Memory Segment D",
                name: "INFOD",
                base: 0x1000,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.cpuCore = String "MSP430";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String undefined;
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.deviceMap = IPlatform.Memory[string] [
    // Device specific memory blocks
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x200,
                len: 0x200,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0xC000,
                len: 0x3FDE,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.flash = Flash_2xx.Instance undefined;
    //
    params.gpio = GPIO_MSP430F22x4.Instance undefined;
    //
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.interruptEnableRegister2 = IE2.Instance undefined;
    //
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.oa = OA_2.Instance undefined;
    //
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer_A3 = Timer_A3.Instance undefined;
    //
    params.timer_B3 = Timer_B3.Instance undefined;
    //
    params.usci_A0_SPI = USCI_A0_SPI_2xx.Instance undefined;
    //
    params.usci_A0_UART = USCI_A0_UART_2xx.Instance undefined;
    //
    params.usci_B0_I2C = USCI_B0_I2C_2xx.Instance undefined;
    //
    params.usci_B0_SPI = USCI_B0_SPI_2xx.Instance undefined;
    //
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F225x.adc10 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.adc10 = ADC10.Instance undefined;
config MSP430F225x.clock // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.clock = BCSplus.Instance undefined;
config MSP430F225x.commonMap // instance
index URL

Memory map elements shared by all MSP430x22xx devices

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS_8BIT",
        {
            comment: "Memory mapped I/O registers",
            name: "PERIPHERALS_8BIT",
            base: 0x0010,
            len: 0x00F0,
            space: "io",
            access: "RW"
        }
    ],
    [
        "PERIPHERALS_16BIT",
        {
            comment: "Memory mapped I/O registers",
            name: "PERIPHERALS_16BIT",
            base: 0x0100,
            len: 0x0100,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSLSKEY",
        {
            comment: "Boot loader security key",
            name: "BSLSKEY",
            base: 0xFFDE,
            len: 0x0002,
            space: "data",
            access: "RI"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector (int00)",
            name: "INT00",
            base: 0xFFE0,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector (int01)",
            name: "INT01",
            base: 0xFFE2,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT02",
        {
            comment: "I/O Port P1 Vector (int02)",
            name: "INT02",
            base: 0xFFE4,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT03",
        {
            comment: "I/O Port P2 Vector (int03)",
            name: "INT03",
            base: 0xFFE6,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector (int04)",
            name: "INT04",
            base: 0xFFE8,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT05",
        {
            comment: "ADC10 Vector (int05)",
            name: "INT05",
            base: 0xFFEA,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT06",
        {
            comment: "USCI_A0/B0 Transmit Vector (int06)",
            name: "INT06",
            base: 0xFFEC,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT07",
        {
            comment: "USCI_A0/B0 Receive Vector (int07)",
            name: "INT07",
            base: 0xFFEE,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT08",
        {
            comment: "Timer_A3 TBCCR1 Vector (int08)",
            name: "INT08",
            base: 0xFFF0,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT09",
        {
            comment: "Timer_A3 TBCCR0 Vector (int09)",
            name: "INT09",
            base: 0xFFF2,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT10",
        {
            comment: "Watchdog Vector (int10)",
            name: "INT10",
            base: 0xFFF4,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector (int11)",
            name: "INT11",
            base: 0xFFF6,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT12",
        {
            comment: "Timer_B3 TBCCR1 Vector (int12)",
            name: "INT12",
            base: 0xFFF8,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT13",
        {
            comment: "Timer_B3 TBCCR0 Vector (int13)",
            name: "INT13",
            base: 0xFFFA,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT14",
        {
            comment: "NMI Vector (int14)",
            name: "INT14",
            base: 0xFFFC,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector (int15)",
            name: "RESET",
            base: 0xFFFE,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOA",
        {
            comment: "INFO Flash Memory Segment A",
            name: "INFOA",
            base: 0x10C0,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOB",
        {
            comment: "INFO Flash Memory Segment B",
            name: "INFOB",
            base: 0x1080,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOC",
        {
            comment: "INFO Flash Memory Segment C",
            name: "INFOC",
            base: 0x1040,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOD",
        {
            comment: "INFO Flash Memory Segment D",
            name: "INFOD",
            base: 0x1000,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ]
];
config MSP430F225x.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.cpuCore = String "MSP430";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F225x.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.cpuCoreRevision = String undefined;
config MSP430F225x.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.dataWordSize = Int 2;
config MSP430F225x.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.deviceHeader = String undefined;
config MSP430F225x.deviceMap // instance
index URL

Device specific memory blocks

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.deviceMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x200,
            len: 0x200,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0xC000,
            len: 0x3FDE,
            space: "code",
            access: "RWX"
        }
    ]
];
DETAILS
This memory together with the common family memory forms the complete memory map retuned by getMemoryMap().
config MSP430F225x.flash // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.flash = Flash_2xx.Instance undefined;
config MSP430F225x.gpio // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.gpio = GPIO_MSP430F22x4.Instance undefined;
config MSP430F225x.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F225x.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F225x.interruptEnableRegister2 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.interruptEnableRegister2 = IE2.Instance undefined;
config MSP430F225x.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F225x.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F225x.oa // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.oa = OA_2.Instance undefined;
config MSP430F225x.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F225x.timer_A3 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.timer_A3 = Timer_A3.Instance undefined;
config MSP430F225x.timer_B3 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.timer_B3 = Timer_B3.Instance undefined;
config MSP430F225x.usci_A0_SPI // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.usci_A0_SPI = USCI_A0_SPI_2xx.Instance undefined;
config MSP430F225x.usci_A0_UART // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.usci_A0_UART = USCI_A0_UART_2xx.Instance undefined;
config MSP430F225x.usci_B0_I2C // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.usci_B0_I2C = USCI_B0_I2C_2xx.Instance undefined;
config MSP430F225x.usci_B0_SPI // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.usci_B0_SPI = USCI_B0_SPI_2xx.Instance undefined;
config MSP430F225x.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.vcc = Float 0;
config MSP430F225x.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F225x.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F225x.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F225x.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F225x.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F225x.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:26 GMT


module ti.catalog.msp430.MSP430F225x

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== MSP430F225x.xdc ========
    15     *  MSP430F225x Cpu definition
    16     *
    17     *  This device has 16KB + 256B of Flash Memory and 512B RAM.  The
    18     *  MSP430F2254 has two op-amps (OA) whereas the MSP430F2252 has none.
    19     */
    20
    21    metaonly module MSP430F225x inherits IMSP430x22xx
    22    {
    23    instance:
    24        /*!
    25         *  ======== deviceMap ========
    26         *  Device specific memory blocks
    27         *
    28         *  This memory together with the common family memory forms the
    29         *  complete memory map retuned by `getMemoryMap()`.
    30         */
    31        config xdc.platform.IPlatform.Memory deviceMap[string]  = [
    32            ["RAM", {
    33                comment:    "Data RAM",
    34                name:       "RAM",
    35                base:       0x200,
    36                len:        0x200,
    37                space:      "code/data",
    38                access:     "RWX"
    39            }],
    40
    41            ["FLASH", {
    42                comment:    "Program FLASH",
    43                name:       "FLASH",
    44                base:       0xC000,
    45                len:        0x3FDE,
    46                space:      "code",
    47                access:     "RWX"
    48            }],
    49        ];
    50    }


module ti.catalog.msp430.MSP430F2274

metaonly module ti.catalog.msp430.MSP430F2274
index URL

MSP430F2274 Cpu definition

  • XDCscript usage
  • Individual elements
This device has 32KB + 256B of Flash Memory and 1KB RAM. The MSP430F2274 has two op-amps (OA).
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F2274.xdc
var MSP430F2274 = xdc.useModule('ti.catalog.msp430.MSP430F2274');
per-instance config parameters
    var params = new MSP430F2274.Params// Instance config-params object;
        params.adc10// = ADC10.Instance undefined;
        params.clock// = BCSplus.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430x22xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS_8BIT",
                {
                    comment: "Memory mapped I/O registers",
                    name: "PERIPHERALS_8BIT",
                    base: 0x0010,
                    len: 0x00F0,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "PERIPHERALS_16BIT",
                {
                    comment: "Memory mapped I/O registers",
                    name: "PERIPHERALS_16BIT",
                    base: 0x0100,
                    len: 0x0100,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSLSKEY",
                {
                    comment: "Boot loader security key",
                    name: "BSLSKEY",
                    base: 0xFFDE,
                    len: 0x0002,
                    space: "data",
                    access: "RI"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector (int00)",
                    name: "INT00",
                    base: 0xFFE0,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector (int01)",
                    name: "INT01",
                    base: 0xFFE2,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT02",
                {
                    comment: "I/O Port P1 Vector (int02)",
                    name: "INT02",
                    base: 0xFFE4,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT03",
                {
                    comment: "I/O Port P2 Vector (int03)",
                    name: "INT03",
                    base: 0xFFE6,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector (int04)",
                    name: "INT04",
                    base: 0xFFE8,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT05",
                {
                    comment: "ADC10 Vector (int05)",
                    name: "INT05",
                    base: 0xFFEA,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT06",
                {
                    comment: "USCI_A0/B0 Transmit Vector (int06)",
                    name: "INT06",
                    base: 0xFFEC,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT07",
                {
                    comment: "USCI_A0/B0 Receive Vector (int07)",
                    name: "INT07",
                    base: 0xFFEE,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT08",
                {
                    comment: "Timer_A3 TBCCR1 Vector (int08)",
                    name: "INT08",
                    base: 0xFFF0,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT09",
                {
                    comment: "Timer_A3 TBCCR0 Vector (int09)",
                    name: "INT09",
                    base: 0xFFF2,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT10",
                {
                    comment: "Watchdog Vector (int10)",
                    name: "INT10",
                    base: 0xFFF4,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector (int11)",
                    name: "INT11",
                    base: 0xFFF6,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT12",
                {
                    comment: "Timer_B3 TBCCR1 Vector (int12)",
                    name: "INT12",
                    base: 0xFFF8,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT13",
                {
                    comment: "Timer_B3 TBCCR0 Vector (int13)",
                    name: "INT13",
                    base: 0xFFFA,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT14",
                {
                    comment: "NMI Vector (int14)",
                    name: "INT14",
                    base: 0xFFFC,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector (int15)",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x0002,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOA",
                {
                    comment: "INFO Flash Memory Segment A",
                    name: "INFOA",
                    base: 0x10C0,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOB",
                {
                    comment: "INFO Flash Memory Segment B",
                    name: "INFOB",
                    base: 0x1080,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOC",
                {
                    comment: "INFO Flash Memory Segment C",
                    name: "INFOC",
                    base: 0x1040,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOD",
                {
                    comment: "INFO Flash Memory Segment D",
                    name: "INFOD",
                    base: 0x1000,
                    len: 0x0040,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.flash// = Flash_2xx.Instance undefined;
        params.gpio// = GPIO_MSP430F22x4.Instance undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.interruptEnableRegister2// = IE2.Instance undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x200,
                    len: 0x400,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0x8000,
                    len: 0x7FDE,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.oa// = OA_2.Instance undefined;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.timer_A3// = Timer_A3.Instance undefined;
        params.timer_B3// = Timer_B3.Instance undefined;
        params.usci_A0_SPI// = USCI_A0_SPI_2xx.Instance undefined;
        params.usci_A0_UART// = USCI_A0_UART_2xx.Instance undefined;
        params.usci_B0_I2C// = USCI_B0_I2C_2xx.Instance undefined;
        params.usci_B0_SPI// = USCI_B0_SPI_2xx.Instance undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F2274.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
// Instance config-params object
    params.adc10 = ADC10.Instance undefined;
    //
    params.clock = BCSplus.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430x22xx devices
        [
            "PERIPHERALS_8BIT",
            {
                comment: "Memory mapped I/O registers",
                name: "PERIPHERALS_8BIT",
                base: 0x0010,
                len: 0x00F0,
                space: "io",
                access: "RW"
            }
        ],
        [
            "PERIPHERALS_16BIT",
            {
                comment: "Memory mapped I/O registers",
                name: "PERIPHERALS_16BIT",
                base: 0x0100,
                len: 0x0100,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSLSKEY",
            {
                comment: "Boot loader security key",
                name: "BSLSKEY",
                base: 0xFFDE,
                len: 0x0002,
                space: "data",
                access: "RI"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector (int00)",
                name: "INT00",
                base: 0xFFE0,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector (int01)",
                name: "INT01",
                base: 0xFFE2,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT02",
            {
                comment: "I/O Port P1 Vector (int02)",
                name: "INT02",
                base: 0xFFE4,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT03",
            {
                comment: "I/O Port P2 Vector (int03)",
                name: "INT03",
                base: 0xFFE6,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector (int04)",
                name: "INT04",
                base: 0xFFE8,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT05",
            {
                comment: "ADC10 Vector (int05)",
                name: "INT05",
                base: 0xFFEA,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT06",
            {
                comment: "USCI_A0/B0 Transmit Vector (int06)",
                name: "INT06",
                base: 0xFFEC,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT07",
            {
                comment: "USCI_A0/B0 Receive Vector (int07)",
                name: "INT07",
                base: 0xFFEE,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT08",
            {
                comment: "Timer_A3 TBCCR1 Vector (int08)",
                name: "INT08",
                base: 0xFFF0,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT09",
            {
                comment: "Timer_A3 TBCCR0 Vector (int09)",
                name: "INT09",
                base: 0xFFF2,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT10",
            {
                comment: "Watchdog Vector (int10)",
                name: "INT10",
                base: 0xFFF4,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector (int11)",
                name: "INT11",
                base: 0xFFF6,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT12",
            {
                comment: "Timer_B3 TBCCR1 Vector (int12)",
                name: "INT12",
                base: 0xFFF8,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT13",
            {
                comment: "Timer_B3 TBCCR0 Vector (int13)",
                name: "INT13",
                base: 0xFFFA,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT14",
            {
                comment: "NMI Vector (int14)",
                name: "INT14",
                base: 0xFFFC,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector (int15)",
                name: "RESET",
                base: 0xFFFE,
                len: 0x0002,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOA",
            {
                comment: "INFO Flash Memory Segment A",
                name: "INFOA",
                base: 0x10C0,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOB",
            {
                comment: "INFO Flash Memory Segment B",
                name: "INFOB",
                base: 0x1080,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOC",
            {
                comment: "INFO Flash Memory Segment C",
                name: "INFOC",
                base: 0x1040,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOD",
            {
                comment: "INFO Flash Memory Segment D",
                name: "INFOD",
                base: 0x1000,
                len: 0x0040,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.cpuCore = String "MSP430";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.flash = Flash_2xx.Instance undefined;
    //
    params.gpio = GPIO_MSP430F22x4.Instance undefined;
    //
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.interruptEnableRegister2 = IE2.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x200,
                len: 0x400,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0x8000,
                len: 0x7FDE,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.oa = OA_2.Instance undefined;
    //
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.timer_A3 = Timer_A3.Instance undefined;
    //
    params.timer_B3 = Timer_B3.Instance undefined;
    //
    params.usci_A0_SPI = USCI_A0_SPI_2xx.Instance undefined;
    //
    params.usci_A0_UART = USCI_A0_UART_2xx.Instance undefined;
    //
    params.usci_B0_I2C = USCI_B0_I2C_2xx.Instance undefined;
    //
    params.usci_B0_SPI = USCI_B0_SPI_2xx.Instance undefined;
    //
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F2274.adc10 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.adc10 = ADC10.Instance undefined;
config MSP430F2274.clock // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.clock = BCSplus.Instance undefined;
config MSP430F2274.commonMap // instance
index URL

Memory map elements shared by all MSP430x22xx devices

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS_8BIT",
        {
            comment: "Memory mapped I/O registers",
            name: "PERIPHERALS_8BIT",
            base: 0x0010,
            len: 0x00F0,
            space: "io",
            access: "RW"
        }
    ],
    [
        "PERIPHERALS_16BIT",
        {
            comment: "Memory mapped I/O registers",
            name: "PERIPHERALS_16BIT",
            base: 0x0100,
            len: 0x0100,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSLSKEY",
        {
            comment: "Boot loader security key",
            name: "BSLSKEY",
            base: 0xFFDE,
            len: 0x0002,
            space: "data",
            access: "RI"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector (int00)",
            name: "INT00",
            base: 0xFFE0,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector (int01)",
            name: "INT01",
            base: 0xFFE2,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT02",
        {
            comment: "I/O Port P1 Vector (int02)",
            name: "INT02",
            base: 0xFFE4,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT03",
        {
            comment: "I/O Port P2 Vector (int03)",
            name: "INT03",
            base: 0xFFE6,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector (int04)",
            name: "INT04",
            base: 0xFFE8,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT05",
        {
            comment: "ADC10 Vector (int05)",
            name: "INT05",
            base: 0xFFEA,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT06",
        {
            comment: "USCI_A0/B0 Transmit Vector (int06)",
            name: "INT06",
            base: 0xFFEC,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT07",
        {
            comment: "USCI_A0/B0 Receive Vector (int07)",
            name: "INT07",
            base: 0xFFEE,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT08",
        {
            comment: "Timer_A3 TBCCR1 Vector (int08)",
            name: "INT08",
            base: 0xFFF0,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT09",
        {
            comment: "Timer_A3 TBCCR0 Vector (int09)",
            name: "INT09",
            base: 0xFFF2,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT10",
        {
            comment: "Watchdog Vector (int10)",
            name: "INT10",
            base: 0xFFF4,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector (int11)",
            name: "INT11",
            base: 0xFFF6,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT12",
        {
            comment: "Timer_B3 TBCCR1 Vector (int12)",
            name: "INT12",
            base: 0xFFF8,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT13",
        {
            comment: "Timer_B3 TBCCR0 Vector (int13)",
            name: "INT13",
            base: 0xFFFA,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT14",
        {
            comment: "NMI Vector (int14)",
            name: "INT14",
            base: 0xFFFC,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector (int15)",
            name: "RESET",
            base: 0xFFFE,
            len: 0x0002,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOA",
        {
            comment: "INFO Flash Memory Segment A",
            name: "INFOA",
            base: 0x10C0,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOB",
        {
            comment: "INFO Flash Memory Segment B",
            name: "INFOB",
            base: 0x1080,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOC",
        {
            comment: "INFO Flash Memory Segment C",
            name: "INFOC",
            base: 0x1040,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOD",
        {
            comment: "INFO Flash Memory Segment D",
            name: "INFOD",
            base: 0x1000,
            len: 0x0040,
            space: "data",
            access: "RW"
        }
    ]
];
config MSP430F2274.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.cpuCore = String "MSP430";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F2274.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.cpuCoreRevision = String "1.0";
config MSP430F2274.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.dataWordSize = Int 2;
config MSP430F2274.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.deviceHeader = String undefined;
config MSP430F2274.flash // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.flash = Flash_2xx.Instance undefined;
config MSP430F2274.gpio // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.gpio = GPIO_MSP430F22x4.Instance undefined;
config MSP430F2274.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F2274.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F2274.interruptEnableRegister2 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.interruptEnableRegister2 = IE2.Instance undefined;
config MSP430F2274.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x200,
            len: 0x400,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0x8000,
            len: 0x7FDE,
            space: "code",
            access: "RWX"
        }
    ]
];
config MSP430F2274.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F2274.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F2274.oa // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.oa = OA_2.Instance undefined;
config MSP430F2274.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F2274.timer_A3 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.timer_A3 = Timer_A3.Instance undefined;
config MSP430F2274.timer_B3 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.timer_B3 = Timer_B3.Instance undefined;
config MSP430F2274.usci_A0_SPI // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.usci_A0_SPI = USCI_A0_SPI_2xx.Instance undefined;
config MSP430F2274.usci_A0_UART // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.usci_A0_UART = USCI_A0_UART_2xx.Instance undefined;
config MSP430F2274.usci_B0_I2C // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.usci_B0_I2C = USCI_B0_I2C_2xx.Instance undefined;
config MSP430F2274.usci_B0_SPI // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.usci_B0_SPI = USCI_B0_SPI_2xx.Instance undefined;
config MSP430F2274.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.vcc = Float 0;
config MSP430F2274.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F2274.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F2274.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F2274.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F2274.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F2274.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:27 GMT


module ti.catalog.msp430.MSP430F2274

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2009 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== MSP430F2274.xdc ========
    15     *
    16     */
    17    package ti.catalog.msp430;
    18
    19    /*!
    20     *  ======== MSP430F2274 ========
    21     *  MSP430F2274 Cpu definition
    22     *
    23     *  This device has 32KB + 256B of Flash Memory and 1KB RAM.  The
    24     *  MSP430F2274 has two op-amps (OA).
    25     */
    26    metaonly module MSP430F2274 inherits IMSP430x22xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36            ["RAM", {
    37                comment:    "Data RAM",
    38                name:       "RAM",
    39                base:       0x200,
    40                len:        0x400,
    41                space:      "code/data",
    42                access:     "RWX"
    43            }],
    44
    45            ["FLASH", {
    46                comment:    "Program FLASH",
    47                name:       "FLASH",
    48                base:       0x8000,
    49                len:        0x7FDE,
    50                space:      "code",
    51                access:     "RWX"
    52            }],
    53        ];
    54    };


module ti.catalog.msp430.MSP430F5418

metaonly module ti.catalog.msp430.MSP430F5418
index URL

MSP430F5418 CPU definition

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F5418.xdc
var MSP430F5418 = xdc.useModule('ti.catalog.msp430.MSP430F5418');
per-instance config parameters
    var params = new MSP430F5418.Params// Instance config-params object;
        params.TA0// = Timer0_A5.Instance undefined;
        params.TA1// = Timer1_A3.Instance undefined;
        params.TB0// = Timer0_B7.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430F54xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS",
                {
                    comment: "Memory mapped peripherals",
                    name: "PERIPHERALS",
                    base: 0x0,
                    len: 0x1000,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSL",
                {
                    comment: "Bootstrap loader (flash)",
                    name: "BSL",
                    base: 0x1000,
                    len: 0x800,
                    space: "code",
                    access: "RW"
                }
            ],
            [
                "INFO",
                {
                    comment: "Information memory (flash)",
                    name: "INFO",
                    base: 0x1800,
                    len: 0x200,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector",
                    name: "INT00",
                    base: 0xFF80,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector",
                    name: "INT01",
                    base: 0xFF82,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT02",
                {
                    comment: "Reserved Vector",
                    name: "INT02",
                    base: 0xFF84,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT03",
                {
                    comment: "Reserved Vector",
                    name: "INT03",
                    base: 0xFF86,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector",
                    name: "INT04",
                    base: 0xFF88,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT05",
                {
                    comment: "Reserved Vector",
                    name: "INT05",
                    base: 0xFF8A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT06",
                {
                    comment: "Reserved Vector",
                    name: "INT06",
                    base: 0xFF8C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT07",
                {
                    comment: "Reserved Vector",
                    name: "INT07",
                    base: 0xFF8E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT08",
                {
                    comment: "Reserved Vector",
                    name: "INT08",
                    base: 0xFF90,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT09",
                {
                    comment: "Reserved Vector",
                    name: "INT09",
                    base: 0xFF92,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT10",
                {
                    comment: "Reserved Vector",
                    name: "INT10",
                    base: 0xFF94,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector",
                    name: "INT11",
                    base: 0xFF96,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT12",
                {
                    comment: "Reserved Vector",
                    name: "INT12",
                    base: 0xFF98,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT13",
                {
                    comment: "Reserved Vector",
                    name: "INT13",
                    base: 0xFF9A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT14",
                {
                    comment: "Reserved Vector",
                    name: "INT14",
                    base: 0xFF9C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT15",
                {
                    comment: "Reserved Vector",
                    name: "INT15",
                    base: 0xFF9E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT16",
                {
                    comment: "Reserved Vector",
                    name: "INT16",
                    base: 0xFFA0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT17",
                {
                    comment: "Reserved Vector",
                    name: "INT17",
                    base: 0xFFA2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT18",
                {
                    comment: "Reserved Vector",
                    name: "INT18",
                    base: 0xFFA4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT19",
                {
                    comment: "Reserved Vector",
                    name: "INT19",
                    base: 0xFFA6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT20",
                {
                    comment: "Reserved Vector",
                    name: "INT20",
                    base: 0xFFA8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT21",
                {
                    comment: "Reserved Vector",
                    name: "INT21",
                    base: 0xFFAA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT22",
                {
                    comment: "Reserved Vector",
                    name: "INT22",
                    base: 0xFFAC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT23",
                {
                    comment: "Reserved Vector",
                    name: "INT23",
                    base: 0xFFAE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT24",
                {
                    comment: "Reserved Vector",
                    name: "INT24",
                    base: 0xFFB0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT25",
                {
                    comment: "Reserved Vector",
                    name: "INT25",
                    base: 0xFFB2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT26",
                {
                    comment: "Reserved Vector",
                    name: "INT26",
                    base: 0xFFB4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT27",
                {
                    comment: "Reserved Vector",
                    name: "INT27",
                    base: 0xFFB6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT28",
                {
                    comment: "Reserved Vector",
                    name: "INT28",
                    base: 0xFFB8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT29",
                {
                    comment: "Reserved Vector",
                    name: "INT29",
                    base: 0xFFBA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT30",
                {
                    comment: "Reserved Vector",
                    name: "INT30",
                    base: 0xFFBC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT31",
                {
                    comment: "Reserved Vector",
                    name: "INT31",
                    base: 0xFFBE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT32",
                {
                    comment: "Reserved Vector",
                    name: "INT32",
                    base: 0xFFC0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT33",
                {
                    comment: "Reserved Vector",
                    name: "INT33",
                    base: 0xFFC2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT34",
                {
                    comment: "Reserved Vector",
                    name: "INT34",
                    base: 0xFFC4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT35",
                {
                    comment: "Reserved Vector",
                    name: "INT35",
                    base: 0xFFC6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT36",
                {
                    comment: "Reserved Vector",
                    name: "INT36",
                    base: 0xFFC8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT37",
                {
                    comment: "Reserved Vector",
                    name: "INT37",
                    base: 0xFFCA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT38",
                {
                    comment: "Reserved Vector",
                    name: "INT38",
                    base: 0xFFCC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT39",
                {
                    comment: "Reserved Vector",
                    name: "INT39",
                    base: 0xFFCE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT40",
                {
                    comment: "Reserved Vector",
                    name: "INT40",
                    base: 0xFFD0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT41",
                {
                    comment: "RTC_A Vector",
                    name: "INT41",
                    base: 0xFFD2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT42",
                {
                    comment: "I/O Port P2 Vector",
                    name: "INT42",
                    base: 0xFFD4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT43",
                {
                    comment: "USCI_B3 Receive/Transmit Vector",
                    name: "INT43",
                    base: 0xFFD6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT44",
                {
                    comment: "USCI_A3 Receive/Transmit Vector",
                    name: "INT44",
                    base: 0xFFD8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT45",
                {
                    comment: "USCI_B1 Receive/Transmit Vector",
                    name: "INT45",
                    base: 0xFFDA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT46",
                {
                    comment: "USCI_A1 Receive/Transmit Vector",
                    name: "INT46",
                    base: 0xFFDC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT47",
                {
                    comment: "I/O Port P1 Vector",
                    name: "INT47",
                    base: 0xFFDE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT48",
                {
                    comment: "TA1 CCR1-CCR2 Vector",
                    name: "INT48",
                    base: 0xFFE0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT49",
                {
                    comment: "TA1 CCR0 Vector",
                    name: "INT49",
                    base: 0xFFE2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT50",
                {
                    comment: "DMA Vector",
                    name: "INT50",
                    base: 0xFFE4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT51",
                {
                    comment: "USCI_B2 Receive/Transmit Vector",
                    name: "INT51",
                    base: 0xFFE6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT52",
                {
                    comment: "USCI_A2 Receive/Transmit Vector",
                    name: "INT52",
                    base: 0xFFE8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT53",
                {
                    comment: "TA0 CCR1-CCR4 Vector",
                    name: "INT53",
                    base: 0xFFEA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT54",
                {
                    comment: "TA0 CCR0 Vector",
                    name: "INT54",
                    base: 0xFFEC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT55",
                {
                    comment: "ADC12_A Vector",
                    name: "INT55",
                    base: 0xFFEE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT56",
                {
                    comment: "USCI_B0 Receive/Transmit Vector",
                    name: "INT56",
                    base: 0xFFF0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT57",
                {
                    comment: "USCI_A0 Receive/Transmit Vector",
                    name: "INT57",
                    base: 0xFFF2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT58",
                {
                    comment: "Watchdog Timer_A Interval Timer Mode Vector",
                    name: "INT58",
                    base: 0xFFF4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT59",
                {
                    comment: "TB0 CCR1-CCR6 Vector",
                    name: "INT59",
                    base: 0xFFF6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT60",
                {
                    comment: "TB0 CCR0 Vector",
                    name: "INT60",
                    base: 0xFFF8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT61",
                {
                    comment: "User NMI Vector",
                    name: "INT61",
                    base: 0xFFFA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT62",
                {
                    comment: "System NMI Vector",
                    name: "INT62",
                    base: 0xFFFC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x2,
                    space: "data"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430X";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x1C00,
                    len: 0x4000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0x5C00,
                    len: 0xA380,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "FLASH2",
                {
                    comment: "Extended Program FLASH",
                    name: "FLASH2",
                    base: 0x10000,
                    len: 0x15C00,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F5418.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
// Instance config-params object
    params.TA0 = Timer0_A5.Instance undefined;
    //
    params.TA1 = Timer1_A3.Instance undefined;
    //
    params.TB0 = Timer0_B7.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430F54xx devices
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFO",
            {
                comment: "Information memory (flash)",
                name: "INFO",
                base: 0x1800,
                len: 0x200,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "USCI_B3 Receive/Transmit Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "USCI_A3 Receive/Transmit Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USCI_B2 Receive/Transmit Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "USCI_A2 Receive/Transmit Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "ADC12_A Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    params.cpuCore = String "MSP430X";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x1C00,
                len: 0x4000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0x5C00,
                len: 0xA380,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "FLASH2",
            {
                comment: "Extended Program FLASH",
                name: "FLASH2",
                base: 0x10000,
                len: 0x15C00,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F5418.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.TA0 = Timer0_A5.Instance undefined;
config MSP430F5418.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.TA1 = Timer1_A3.Instance undefined;
config MSP430F5418.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.TB0 = Timer0_B7.Instance undefined;
config MSP430F5418.commonMap // instance
index URL

Memory map elements shared by all MSP430F54xx devices

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFO",
        {
            comment: "Information memory (flash)",
            name: "INFO",
            base: 0x1800,
            len: 0x200,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "USCI_B3 Receive/Transmit Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "USCI_A3 Receive/Transmit Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USCI_B2 Receive/Transmit Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "USCI_A2 Receive/Transmit Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "ADC12_A Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config MSP430F5418.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.cpuCore = String "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F5418.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.cpuCoreRevision = String "1.0";
config MSP430F5418.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.dataWordSize = Int 2;
config MSP430F5418.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.deviceHeader = String undefined;
config MSP430F5418.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F5418.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F5418.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x1C00,
            len: 0x4000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0x5C00,
            len: 0xA380,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "FLASH2",
        {
            comment: "Extended Program FLASH",
            name: "FLASH2",
            base: 0x10000,
            len: 0x15C00,
            space: "code",
            access: "RWX"
        }
    ]
];
config MSP430F5418.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F5418.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F5418.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F5418.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.vcc = Float 0;
config MSP430F5418.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F5418.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F5418.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F5418.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:27 GMT


module ti.catalog.msp430.MSP430F5418

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== MSP430F5418.xdc ========
    15     *
    16     *! Revision History
    17     *! ================
    18     *! 02-Nov-2009 sg        Created.
    19     */
    20    package ti.catalog.msp430;
    21
    22    /*!
    23     *  ======== MSP430F5418 ========
    24     *  MSP430F5418 CPU definition
    25     */
    26    metaonly module MSP430F5418 inherits IMSP430F54xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36
    37            ["RAM", {
    38                comment:    "Data RAM",
    39                name:       "RAM",
    40                base:       0x1C00,
    41                len:        0x4000,
    42                space:      "code/data",
    43                access:     "RWX"
    44            }],
    45
    46            ["FLASH", {
    47                comment:    "Program FLASH",
    48                name:       "FLASH",
    49                base:       0x5C00,
    50                len:        0xA380,
    51                space:      "code",
    52                access:     "RWX"
    53            }],
    54
    55            ["FLASH2", {
    56                comment:    "Extended Program FLASH",
    57                name:       "FLASH2",
    58                base:       0x10000,
    59                len:        0x15C00,
    60                space:      "code",
    61                access:     "RWX"
    62            }],
    63
    64        ];
    65    };


module ti.catalog.msp430.MSP430F5419

metaonly module ti.catalog.msp430.MSP430F5419
index URL

MSP430F5419 CPU definition

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F5419.xdc
var MSP430F5419 = xdc.useModule('ti.catalog.msp430.MSP430F5419');
per-instance config parameters
    var params = new MSP430F5419.Params// Instance config-params object;
        params.TA0// = Timer0_A5.Instance undefined;
        params.TA1// = Timer1_A3.Instance undefined;
        params.TB0// = Timer0_B7.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430F54xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS",
                {
                    comment: "Memory mapped peripherals",
                    name: "PERIPHERALS",
                    base: 0x0,
                    len: 0x1000,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSL",
                {
                    comment: "Bootstrap loader (flash)",
                    name: "BSL",
                    base: 0x1000,
                    len: 0x800,
                    space: "code",
                    access: "RW"
                }
            ],
            [
                "INFO",
                {
                    comment: "Information memory (flash)",
                    name: "INFO",
                    base: 0x1800,
                    len: 0x200,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector",
                    name: "INT00",
                    base: 0xFF80,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector",
                    name: "INT01",
                    base: 0xFF82,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT02",
                {
                    comment: "Reserved Vector",
                    name: "INT02",
                    base: 0xFF84,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT03",
                {
                    comment: "Reserved Vector",
                    name: "INT03",
                    base: 0xFF86,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector",
                    name: "INT04",
                    base: 0xFF88,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT05",
                {
                    comment: "Reserved Vector",
                    name: "INT05",
                    base: 0xFF8A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT06",
                {
                    comment: "Reserved Vector",
                    name: "INT06",
                    base: 0xFF8C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT07",
                {
                    comment: "Reserved Vector",
                    name: "INT07",
                    base: 0xFF8E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT08",
                {
                    comment: "Reserved Vector",
                    name: "INT08",
                    base: 0xFF90,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT09",
                {
                    comment: "Reserved Vector",
                    name: "INT09",
                    base: 0xFF92,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT10",
                {
                    comment: "Reserved Vector",
                    name: "INT10",
                    base: 0xFF94,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector",
                    name: "INT11",
                    base: 0xFF96,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT12",
                {
                    comment: "Reserved Vector",
                    name: "INT12",
                    base: 0xFF98,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT13",
                {
                    comment: "Reserved Vector",
                    name: "INT13",
                    base: 0xFF9A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT14",
                {
                    comment: "Reserved Vector",
                    name: "INT14",
                    base: 0xFF9C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT15",
                {
                    comment: "Reserved Vector",
                    name: "INT15",
                    base: 0xFF9E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT16",
                {
                    comment: "Reserved Vector",
                    name: "INT16",
                    base: 0xFFA0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT17",
                {
                    comment: "Reserved Vector",
                    name: "INT17",
                    base: 0xFFA2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT18",
                {
                    comment: "Reserved Vector",
                    name: "INT18",
                    base: 0xFFA4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT19",
                {
                    comment: "Reserved Vector",
                    name: "INT19",
                    base: 0xFFA6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT20",
                {
                    comment: "Reserved Vector",
                    name: "INT20",
                    base: 0xFFA8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT21",
                {
                    comment: "Reserved Vector",
                    name: "INT21",
                    base: 0xFFAA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT22",
                {
                    comment: "Reserved Vector",
                    name: "INT22",
                    base: 0xFFAC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT23",
                {
                    comment: "Reserved Vector",
                    name: "INT23",
                    base: 0xFFAE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT24",
                {
                    comment: "Reserved Vector",
                    name: "INT24",
                    base: 0xFFB0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT25",
                {
                    comment: "Reserved Vector",
                    name: "INT25",
                    base: 0xFFB2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT26",
                {
                    comment: "Reserved Vector",
                    name: "INT26",
                    base: 0xFFB4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT27",
                {
                    comment: "Reserved Vector",
                    name: "INT27",
                    base: 0xFFB6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT28",
                {
                    comment: "Reserved Vector",
                    name: "INT28",
                    base: 0xFFB8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT29",
                {
                    comment: "Reserved Vector",
                    name: "INT29",
                    base: 0xFFBA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT30",
                {
                    comment: "Reserved Vector",
                    name: "INT30",
                    base: 0xFFBC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT31",
                {
                    comment: "Reserved Vector",
                    name: "INT31",
                    base: 0xFFBE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT32",
                {
                    comment: "Reserved Vector",
                    name: "INT32",
                    base: 0xFFC0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT33",
                {
                    comment: "Reserved Vector",
                    name: "INT33",
                    base: 0xFFC2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT34",
                {
                    comment: "Reserved Vector",
                    name: "INT34",
                    base: 0xFFC4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT35",
                {
                    comment: "Reserved Vector",
                    name: "INT35",
                    base: 0xFFC6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT36",
                {
                    comment: "Reserved Vector",
                    name: "INT36",
                    base: 0xFFC8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT37",
                {
                    comment: "Reserved Vector",
                    name: "INT37",
                    base: 0xFFCA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT38",
                {
                    comment: "Reserved Vector",
                    name: "INT38",
                    base: 0xFFCC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT39",
                {
                    comment: "Reserved Vector",
                    name: "INT39",
                    base: 0xFFCE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT40",
                {
                    comment: "Reserved Vector",
                    name: "INT40",
                    base: 0xFFD0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT41",
                {
                    comment: "RTC_A Vector",
                    name: "INT41",
                    base: 0xFFD2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT42",
                {
                    comment: "I/O Port P2 Vector",
                    name: "INT42",
                    base: 0xFFD4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT43",
                {
                    comment: "USCI_B3 Receive/Transmit Vector",
                    name: "INT43",
                    base: 0xFFD6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT44",
                {
                    comment: "USCI_A3 Receive/Transmit Vector",
                    name: "INT44",
                    base: 0xFFD8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT45",
                {
                    comment: "USCI_B1 Receive/Transmit Vector",
                    name: "INT45",
                    base: 0xFFDA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT46",
                {
                    comment: "USCI_A1 Receive/Transmit Vector",
                    name: "INT46",
                    base: 0xFFDC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT47",
                {
                    comment: "I/O Port P1 Vector",
                    name: "INT47",
                    base: 0xFFDE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT48",
                {
                    comment: "TA1 CCR1-CCR2 Vector",
                    name: "INT48",
                    base: 0xFFE0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT49",
                {
                    comment: "TA1 CCR0 Vector",
                    name: "INT49",
                    base: 0xFFE2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT50",
                {
                    comment: "DMA Vector",
                    name: "INT50",
                    base: 0xFFE4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT51",
                {
                    comment: "USCI_B2 Receive/Transmit Vector",
                    name: "INT51",
                    base: 0xFFE6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT52",
                {
                    comment: "USCI_A2 Receive/Transmit Vector",
                    name: "INT52",
                    base: 0xFFE8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT53",
                {
                    comment: "TA0 CCR1-CCR4 Vector",
                    name: "INT53",
                    base: 0xFFEA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT54",
                {
                    comment: "TA0 CCR0 Vector",
                    name: "INT54",
                    base: 0xFFEC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT55",
                {
                    comment: "ADC12_A Vector",
                    name: "INT55",
                    base: 0xFFEE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT56",
                {
                    comment: "USCI_B0 Receive/Transmit Vector",
                    name: "INT56",
                    base: 0xFFF0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT57",
                {
                    comment: "USCI_A0 Receive/Transmit Vector",
                    name: "INT57",
                    base: 0xFFF2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT58",
                {
                    comment: "Watchdog Timer_A Interval Timer Mode Vector",
                    name: "INT58",
                    base: 0xFFF4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT59",
                {
                    comment: "TB0 CCR1-CCR6 Vector",
                    name: "INT59",
                    base: 0xFFF6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT60",
                {
                    comment: "TB0 CCR0 Vector",
                    name: "INT60",
                    base: 0xFFF8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT61",
                {
                    comment: "User NMI Vector",
                    name: "INT61",
                    base: 0xFFFA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT62",
                {
                    comment: "System NMI Vector",
                    name: "INT62",
                    base: 0xFFFC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x2,
                    space: "data"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430X";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x1C00,
                    len: 0x4000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0x5C00,
                    len: 0xA380,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "FLASH2",
                {
                    comment: "Extended Program FLASH",
                    name: "FLASH2",
                    base: 0x10000,
                    len: 0x15C00,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F5419.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
// Instance config-params object
    params.TA0 = Timer0_A5.Instance undefined;
    //
    params.TA1 = Timer1_A3.Instance undefined;
    //
    params.TB0 = Timer0_B7.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430F54xx devices
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFO",
            {
                comment: "Information memory (flash)",
                name: "INFO",
                base: 0x1800,
                len: 0x200,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "USCI_B3 Receive/Transmit Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "USCI_A3 Receive/Transmit Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USCI_B2 Receive/Transmit Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "USCI_A2 Receive/Transmit Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "ADC12_A Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    params.cpuCore = String "MSP430X";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x1C00,
                len: 0x4000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0x5C00,
                len: 0xA380,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "FLASH2",
            {
                comment: "Extended Program FLASH",
                name: "FLASH2",
                base: 0x10000,
                len: 0x15C00,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F5419.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.TA0 = Timer0_A5.Instance undefined;
config MSP430F5419.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.TA1 = Timer1_A3.Instance undefined;
config MSP430F5419.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.TB0 = Timer0_B7.Instance undefined;
config MSP430F5419.commonMap // instance
index URL

Memory map elements shared by all MSP430F54xx devices

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFO",
        {
            comment: "Information memory (flash)",
            name: "INFO",
            base: 0x1800,
            len: 0x200,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "USCI_B3 Receive/Transmit Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "USCI_A3 Receive/Transmit Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USCI_B2 Receive/Transmit Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "USCI_A2 Receive/Transmit Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "ADC12_A Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config MSP430F5419.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.cpuCore = String "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F5419.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.cpuCoreRevision = String "1.0";
config MSP430F5419.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.dataWordSize = Int 2;
config MSP430F5419.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.deviceHeader = String undefined;
config MSP430F5419.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F5419.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F5419.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x1C00,
            len: 0x4000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0x5C00,
            len: 0xA380,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "FLASH2",
        {
            comment: "Extended Program FLASH",
            name: "FLASH2",
            base: 0x10000,
            len: 0x15C00,
            space: "code",
            access: "RWX"
        }
    ]
];
config MSP430F5419.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F5419.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F5419.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F5419.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.vcc = Float 0;
config MSP430F5419.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F5419.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F5419.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F5419.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:28 GMT


module ti.catalog.msp430.MSP430F5419

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== MSP430F5419.xdc ========
    15     *
    16     *! Revision History
    17     *! ================
    18     *! 02-Nov-2009 sg        Created.
    19     */
    20    package ti.catalog.msp430;
    21
    22    /*!
    23     *  ======== MSP430F5419 ========
    24     *  MSP430F5419 CPU definition
    25     */
    26    metaonly module MSP430F5419 inherits IMSP430F54xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36
    37            ["RAM", {
    38                comment:    "Data RAM",
    39                name:       "RAM",
    40                base:       0x1C00,
    41                len:        0x4000,
    42                space:      "code/data",
    43                access:     "RWX"
    44            }],
    45
    46            ["FLASH", {
    47                comment:    "Program FLASH",
    48                name:       "FLASH",
    49                base:       0x5C00,
    50                len:        0xA380,
    51                space:      "code",
    52                access:     "RWX"
    53            }],
    54
    55            ["FLASH2", {
    56                comment:    "Extended Program FLASH",
    57                name:       "FLASH2",
    58                base:       0x10000,
    59                len:        0x15C00,
    60                space:      "code",
    61                access:     "RWX"
    62            }],
    63
    64        ];
    65    };


module ti.catalog.msp430.MSP430F5435

metaonly module ti.catalog.msp430.MSP430F5435
index URL

MSP430F5435 CPU definition

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F5435.xdc
var MSP430F5435 = xdc.useModule('ti.catalog.msp430.MSP430F5435');
per-instance config parameters
    var params = new MSP430F5435.Params// Instance config-params object;
        params.TA0// = Timer0_A5.Instance undefined;
        params.TA1// = Timer1_A3.Instance undefined;
        params.TB0// = Timer0_B7.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430F54xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS",
                {
                    comment: "Memory mapped peripherals",
                    name: "PERIPHERALS",
                    base: 0x0,
                    len: 0x1000,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSL",
                {
                    comment: "Bootstrap loader (flash)",
                    name: "BSL",
                    base: 0x1000,
                    len: 0x800,
                    space: "code",
                    access: "RW"
                }
            ],
            [
                "INFO",
                {
                    comment: "Information memory (flash)",
                    name: "INFO",
                    base: 0x1800,
                    len: 0x200,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector",
                    name: "INT00",
                    base: 0xFF80,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector",
                    name: "INT01",
                    base: 0xFF82,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT02",
                {
                    comment: "Reserved Vector",
                    name: "INT02",
                    base: 0xFF84,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT03",
                {
                    comment: "Reserved Vector",
                    name: "INT03",
                    base: 0xFF86,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector",
                    name: "INT04",
                    base: 0xFF88,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT05",
                {
                    comment: "Reserved Vector",
                    name: "INT05",
                    base: 0xFF8A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT06",
                {
                    comment: "Reserved Vector",
                    name: "INT06",
                    base: 0xFF8C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT07",
                {
                    comment: "Reserved Vector",
                    name: "INT07",
                    base: 0xFF8E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT08",
                {
                    comment: "Reserved Vector",
                    name: "INT08",
                    base: 0xFF90,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT09",
                {
                    comment: "Reserved Vector",
                    name: "INT09",
                    base: 0xFF92,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT10",
                {
                    comment: "Reserved Vector",
                    name: "INT10",
                    base: 0xFF94,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector",
                    name: "INT11",
                    base: 0xFF96,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT12",
                {
                    comment: "Reserved Vector",
                    name: "INT12",
                    base: 0xFF98,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT13",
                {
                    comment: "Reserved Vector",
                    name: "INT13",
                    base: 0xFF9A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT14",
                {
                    comment: "Reserved Vector",
                    name: "INT14",
                    base: 0xFF9C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT15",
                {
                    comment: "Reserved Vector",
                    name: "INT15",
                    base: 0xFF9E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT16",
                {
                    comment: "Reserved Vector",
                    name: "INT16",
                    base: 0xFFA0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT17",
                {
                    comment: "Reserved Vector",
                    name: "INT17",
                    base: 0xFFA2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT18",
                {
                    comment: "Reserved Vector",
                    name: "INT18",
                    base: 0xFFA4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT19",
                {
                    comment: "Reserved Vector",
                    name: "INT19",
                    base: 0xFFA6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT20",
                {
                    comment: "Reserved Vector",
                    name: "INT20",
                    base: 0xFFA8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT21",
                {
                    comment: "Reserved Vector",
                    name: "INT21",
                    base: 0xFFAA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT22",
                {
                    comment: "Reserved Vector",
                    name: "INT22",
                    base: 0xFFAC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT23",
                {
                    comment: "Reserved Vector",
                    name: "INT23",
                    base: 0xFFAE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT24",
                {
                    comment: "Reserved Vector",
                    name: "INT24",
                    base: 0xFFB0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT25",
                {
                    comment: "Reserved Vector",
                    name: "INT25",
                    base: 0xFFB2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT26",
                {
                    comment: "Reserved Vector",
                    name: "INT26",
                    base: 0xFFB4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT27",
                {
                    comment: "Reserved Vector",
                    name: "INT27",
                    base: 0xFFB6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT28",
                {
                    comment: "Reserved Vector",
                    name: "INT28",
                    base: 0xFFB8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT29",
                {
                    comment: "Reserved Vector",
                    name: "INT29",
                    base: 0xFFBA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT30",
                {
                    comment: "Reserved Vector",
                    name: "INT30",
                    base: 0xFFBC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT31",
                {
                    comment: "Reserved Vector",
                    name: "INT31",
                    base: 0xFFBE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT32",
                {
                    comment: "Reserved Vector",
                    name: "INT32",
                    base: 0xFFC0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT33",
                {
                    comment: "Reserved Vector",
                    name: "INT33",
                    base: 0xFFC2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT34",
                {
                    comment: "Reserved Vector",
                    name: "INT34",
                    base: 0xFFC4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT35",
                {
                    comment: "Reserved Vector",
                    name: "INT35",
                    base: 0xFFC6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT36",
                {
                    comment: "Reserved Vector",
                    name: "INT36",
                    base: 0xFFC8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT37",
                {
                    comment: "Reserved Vector",
                    name: "INT37",
                    base: 0xFFCA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT38",
                {
                    comment: "Reserved Vector",
                    name: "INT38",
                    base: 0xFFCC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT39",
                {
                    comment: "Reserved Vector",
                    name: "INT39",
                    base: 0xFFCE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT40",
                {
                    comment: "Reserved Vector",
                    name: "INT40",
                    base: 0xFFD0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT41",
                {
                    comment: "RTC_A Vector",
                    name: "INT41",
                    base: 0xFFD2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT42",
                {
                    comment: "I/O Port P2 Vector",
                    name: "INT42",
                    base: 0xFFD4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT43",
                {
                    comment: "USCI_B3 Receive/Transmit Vector",
                    name: "INT43",
                    base: 0xFFD6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT44",
                {
                    comment: "USCI_A3 Receive/Transmit Vector",
                    name: "INT44",
                    base: 0xFFD8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT45",
                {
                    comment: "USCI_B1 Receive/Transmit Vector",
                    name: "INT45",
                    base: 0xFFDA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT46",
                {
                    comment: "USCI_A1 Receive/Transmit Vector",
                    name: "INT46",
                    base: 0xFFDC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT47",
                {
                    comment: "I/O Port P1 Vector",
                    name: "INT47",
                    base: 0xFFDE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT48",
                {
                    comment: "TA1 CCR1-CCR2 Vector",
                    name: "INT48",
                    base: 0xFFE0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT49",
                {
                    comment: "TA1 CCR0 Vector",
                    name: "INT49",
                    base: 0xFFE2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT50",
                {
                    comment: "DMA Vector",
                    name: "INT50",
                    base: 0xFFE4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT51",
                {
                    comment: "USCI_B2 Receive/Transmit Vector",
                    name: "INT51",
                    base: 0xFFE6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT52",
                {
                    comment: "USCI_A2 Receive/Transmit Vector",
                    name: "INT52",
                    base: 0xFFE8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT53",
                {
                    comment: "TA0 CCR1-CCR4 Vector",
                    name: "INT53",
                    base: 0xFFEA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT54",
                {
                    comment: "TA0 CCR0 Vector",
                    name: "INT54",
                    base: 0xFFEC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT55",
                {
                    comment: "ADC12_A Vector",
                    name: "INT55",
                    base: 0xFFEE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT56",
                {
                    comment: "USCI_B0 Receive/Transmit Vector",
                    name: "INT56",
                    base: 0xFFF0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT57",
                {
                    comment: "USCI_A0 Receive/Transmit Vector",
                    name: "INT57",
                    base: 0xFFF2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT58",
                {
                    comment: "Watchdog Timer_A Interval Timer Mode Vector",
                    name: "INT58",
                    base: 0xFFF4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT59",
                {
                    comment: "TB0 CCR1-CCR6 Vector",
                    name: "INT59",
                    base: 0xFFF6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT60",
                {
                    comment: "TB0 CCR0 Vector",
                    name: "INT60",
                    base: 0xFFF8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT61",
                {
                    comment: "User NMI Vector",
                    name: "INT61",
                    base: 0xFFFA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT62",
                {
                    comment: "System NMI Vector",
                    name: "INT62",
                    base: 0xFFFC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x2,
                    space: "data"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430X";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x1C00,
                    len: 0x4000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0x5C00,
                    len: 0xA380,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "FLASH2",
                {
                    comment: "Extended Program FLASH",
                    name: "FLASH2",
                    base: 0x10000,
                    len: 0x25C00,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F5435.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
// Instance config-params object
    params.TA0 = Timer0_A5.Instance undefined;
    //
    params.TA1 = Timer1_A3.Instance undefined;
    //
    params.TB0 = Timer0_B7.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430F54xx devices
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFO",
            {
                comment: "Information memory (flash)",
                name: "INFO",
                base: 0x1800,
                len: 0x200,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "USCI_B3 Receive/Transmit Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "USCI_A3 Receive/Transmit Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USCI_B2 Receive/Transmit Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "USCI_A2 Receive/Transmit Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "ADC12_A Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    params.cpuCore = String "MSP430X";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x1C00,
                len: 0x4000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0x5C00,
                len: 0xA380,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "FLASH2",
            {
                comment: "Extended Program FLASH",
                name: "FLASH2",
                base: 0x10000,
                len: 0x25C00,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F5435.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.TA0 = Timer0_A5.Instance undefined;
config MSP430F5435.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.TA1 = Timer1_A3.Instance undefined;
config MSP430F5435.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.TB0 = Timer0_B7.Instance undefined;
config MSP430F5435.commonMap // instance
index URL

Memory map elements shared by all MSP430F54xx devices

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFO",
        {
            comment: "Information memory (flash)",
            name: "INFO",
            base: 0x1800,
            len: 0x200,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "USCI_B3 Receive/Transmit Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "USCI_A3 Receive/Transmit Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USCI_B2 Receive/Transmit Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "USCI_A2 Receive/Transmit Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "ADC12_A Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config MSP430F5435.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.cpuCore = String "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F5435.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.cpuCoreRevision = String "1.0";
config MSP430F5435.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.dataWordSize = Int 2;
config MSP430F5435.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.deviceHeader = String undefined;
config MSP430F5435.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F5435.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F5435.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x1C00,
            len: 0x4000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0x5C00,
            len: 0xA380,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "FLASH2",
        {
            comment: "Extended Program FLASH",
            name: "FLASH2",
            base: 0x10000,
            len: 0x25C00,
            space: "code",
            access: "RWX"
        }
    ]
];
config MSP430F5435.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F5435.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F5435.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F5435.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.vcc = Float 0;
config MSP430F5435.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F5435.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F5435.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F5435.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:28 GMT


module ti.catalog.msp430.MSP430F5435

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== MSP430F5435.xdc ========
    15     *
    16     *! Revision History
    17     *! ================
    18     *! 02-Nov-2009 sg        Created.
    19     */
    20    package ti.catalog.msp430;
    21
    22    /*!
    23     *  ======== MSP430F5435 ========
    24     *  MSP430F5435 CPU definition
    25     */
    26    metaonly module MSP430F5435 inherits IMSP430F54xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36
    37            ["RAM", {
    38                comment:    "Data RAM",
    39                name:       "RAM",
    40                base:       0x1C00,
    41                len:        0x4000,
    42                space:      "code/data",
    43                access:     "RWX"
    44            }],
    45
    46            ["FLASH", {
    47                comment:    "Program FLASH",
    48                name:       "FLASH",
    49                base:       0x5C00,
    50                len:        0xA380,
    51                space:      "code",
    52                access:     "RWX"
    53            }],
    54
    55            ["FLASH2", {
    56                comment:    "Extended Program FLASH",
    57                name:       "FLASH2",
    58                base:       0x10000,
    59                len:        0x25C00,
    60                space:      "code",
    61                access:     "RWX"
    62            }],
    63
    64        ];
    65    };


module ti.catalog.msp430.MSP430F5436

metaonly module ti.catalog.msp430.MSP430F5436
index URL

MSP430F5436 CPU definition

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F5436.xdc
var MSP430F5436 = xdc.useModule('ti.catalog.msp430.MSP430F5436');
per-instance config parameters
    var params = new MSP430F5436.Params// Instance config-params object;
        params.TA0// = Timer0_A5.Instance undefined;
        params.TA1// = Timer1_A3.Instance undefined;
        params.TB0// = Timer0_B7.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430F54xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS",
                {
                    comment: "Memory mapped peripherals",
                    name: "PERIPHERALS",
                    base: 0x0,
                    len: 0x1000,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSL",
                {
                    comment: "Bootstrap loader (flash)",
                    name: "BSL",
                    base: 0x1000,
                    len: 0x800,
                    space: "code",
                    access: "RW"
                }
            ],
            [
                "INFO",
                {
                    comment: "Information memory (flash)",
                    name: "INFO",
                    base: 0x1800,
                    len: 0x200,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector",
                    name: "INT00",
                    base: 0xFF80,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector",
                    name: "INT01",
                    base: 0xFF82,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT02",
                {
                    comment: "Reserved Vector",
                    name: "INT02",
                    base: 0xFF84,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT03",
                {
                    comment: "Reserved Vector",
                    name: "INT03",
                    base: 0xFF86,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector",
                    name: "INT04",
                    base: 0xFF88,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT05",
                {
                    comment: "Reserved Vector",
                    name: "INT05",
                    base: 0xFF8A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT06",
                {
                    comment: "Reserved Vector",
                    name: "INT06",
                    base: 0xFF8C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT07",
                {
                    comment: "Reserved Vector",
                    name: "INT07",
                    base: 0xFF8E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT08",
                {
                    comment: "Reserved Vector",
                    name: "INT08",
                    base: 0xFF90,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT09",
                {
                    comment: "Reserved Vector",
                    name: "INT09",
                    base: 0xFF92,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT10",
                {
                    comment: "Reserved Vector",
                    name: "INT10",
                    base: 0xFF94,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector",
                    name: "INT11",
                    base: 0xFF96,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT12",
                {
                    comment: "Reserved Vector",
                    name: "INT12",
                    base: 0xFF98,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT13",
                {
                    comment: "Reserved Vector",
                    name: "INT13",
                    base: 0xFF9A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT14",
                {
                    comment: "Reserved Vector",
                    name: "INT14",
                    base: 0xFF9C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT15",
                {
                    comment: "Reserved Vector",
                    name: "INT15",
                    base: 0xFF9E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT16",
                {
                    comment: "Reserved Vector",
                    name: "INT16",
                    base: 0xFFA0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT17",
                {
                    comment: "Reserved Vector",
                    name: "INT17",
                    base: 0xFFA2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT18",
                {
                    comment: "Reserved Vector",
                    name: "INT18",
                    base: 0xFFA4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT19",
                {
                    comment: "Reserved Vector",
                    name: "INT19",
                    base: 0xFFA6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT20",
                {
                    comment: "Reserved Vector",
                    name: "INT20",
                    base: 0xFFA8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT21",
                {
                    comment: "Reserved Vector",
                    name: "INT21",
                    base: 0xFFAA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT22",
                {
                    comment: "Reserved Vector",
                    name: "INT22",
                    base: 0xFFAC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT23",
                {
                    comment: "Reserved Vector",
                    name: "INT23",
                    base: 0xFFAE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT24",
                {
                    comment: "Reserved Vector",
                    name: "INT24",
                    base: 0xFFB0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT25",
                {
                    comment: "Reserved Vector",
                    name: "INT25",
                    base: 0xFFB2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT26",
                {
                    comment: "Reserved Vector",
                    name: "INT26",
                    base: 0xFFB4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT27",
                {
                    comment: "Reserved Vector",
                    name: "INT27",
                    base: 0xFFB6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT28",
                {
                    comment: "Reserved Vector",
                    name: "INT28",
                    base: 0xFFB8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT29",
                {
                    comment: "Reserved Vector",
                    name: "INT29",
                    base: 0xFFBA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT30",
                {
                    comment: "Reserved Vector",
                    name: "INT30",
                    base: 0xFFBC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT31",
                {
                    comment: "Reserved Vector",
                    name: "INT31",
                    base: 0xFFBE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT32",
                {
                    comment: "Reserved Vector",
                    name: "INT32",
                    base: 0xFFC0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT33",
                {
                    comment: "Reserved Vector",
                    name: "INT33",
                    base: 0xFFC2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT34",
                {
                    comment: "Reserved Vector",
                    name: "INT34",
                    base: 0xFFC4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT35",
                {
                    comment: "Reserved Vector",
                    name: "INT35",
                    base: 0xFFC6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT36",
                {
                    comment: "Reserved Vector",
                    name: "INT36",
                    base: 0xFFC8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT37",
                {
                    comment: "Reserved Vector",
                    name: "INT37",
                    base: 0xFFCA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT38",
                {
                    comment: "Reserved Vector",
                    name: "INT38",
                    base: 0xFFCC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT39",
                {
                    comment: "Reserved Vector",
                    name: "INT39",
                    base: 0xFFCE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT40",
                {
                    comment: "Reserved Vector",
                    name: "INT40",
                    base: 0xFFD0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT41",
                {
                    comment: "RTC_A Vector",
                    name: "INT41",
                    base: 0xFFD2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT42",
                {
                    comment: "I/O Port P2 Vector",
                    name: "INT42",
                    base: 0xFFD4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT43",
                {
                    comment: "USCI_B3 Receive/Transmit Vector",
                    name: "INT43",
                    base: 0xFFD6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT44",
                {
                    comment: "USCI_A3 Receive/Transmit Vector",
                    name: "INT44",
                    base: 0xFFD8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT45",
                {
                    comment: "USCI_B1 Receive/Transmit Vector",
                    name: "INT45",
                    base: 0xFFDA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT46",
                {
                    comment: "USCI_A1 Receive/Transmit Vector",
                    name: "INT46",
                    base: 0xFFDC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT47",
                {
                    comment: "I/O Port P1 Vector",
                    name: "INT47",
                    base: 0xFFDE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT48",
                {
                    comment: "TA1 CCR1-CCR2 Vector",
                    name: "INT48",
                    base: 0xFFE0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT49",
                {
                    comment: "TA1 CCR0 Vector",
                    name: "INT49",
                    base: 0xFFE2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT50",
                {
                    comment: "DMA Vector",
                    name: "INT50",
                    base: 0xFFE4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT51",
                {
                    comment: "USCI_B2 Receive/Transmit Vector",
                    name: "INT51",
                    base: 0xFFE6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT52",
                {
                    comment: "USCI_A2 Receive/Transmit Vector",
                    name: "INT52",
                    base: 0xFFE8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT53",
                {
                    comment: "TA0 CCR1-CCR4 Vector",
                    name: "INT53",
                    base: 0xFFEA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT54",
                {
                    comment: "TA0 CCR0 Vector",
                    name: "INT54",
                    base: 0xFFEC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT55",
                {
                    comment: "ADC12_A Vector",
                    name: "INT55",
                    base: 0xFFEE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT56",
                {
                    comment: "USCI_B0 Receive/Transmit Vector",
                    name: "INT56",
                    base: 0xFFF0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT57",
                {
                    comment: "USCI_A0 Receive/Transmit Vector",
                    name: "INT57",
                    base: 0xFFF2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT58",
                {
                    comment: "Watchdog Timer_A Interval Timer Mode Vector",
                    name: "INT58",
                    base: 0xFFF4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT59",
                {
                    comment: "TB0 CCR1-CCR6 Vector",
                    name: "INT59",
                    base: 0xFFF6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT60",
                {
                    comment: "TB0 CCR0 Vector",
                    name: "INT60",
                    base: 0xFFF8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT61",
                {
                    comment: "User NMI Vector",
                    name: "INT61",
                    base: 0xFFFA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT62",
                {
                    comment: "System NMI Vector",
                    name: "INT62",
                    base: 0xFFFC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x2,
                    space: "data"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430X";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x1C00,
                    len: 0x4000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0x5C00,
                    len: 0xA380,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "FLASH2",
                {
                    comment: "Extended Program FLASH",
                    name: "FLASH2",
                    base: 0x10000,
                    len: 0x25C00,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F5436.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
// Instance config-params object
    params.TA0 = Timer0_A5.Instance undefined;
    //
    params.TA1 = Timer1_A3.Instance undefined;
    //
    params.TB0 = Timer0_B7.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430F54xx devices
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFO",
            {
                comment: "Information memory (flash)",
                name: "INFO",
                base: 0x1800,
                len: 0x200,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "USCI_B3 Receive/Transmit Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "USCI_A3 Receive/Transmit Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USCI_B2 Receive/Transmit Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "USCI_A2 Receive/Transmit Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "ADC12_A Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    params.cpuCore = String "MSP430X";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x1C00,
                len: 0x4000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0x5C00,
                len: 0xA380,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "FLASH2",
            {
                comment: "Extended Program FLASH",
                name: "FLASH2",
                base: 0x10000,
                len: 0x25C00,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F5436.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.TA0 = Timer0_A5.Instance undefined;
config MSP430F5436.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.TA1 = Timer1_A3.Instance undefined;
config MSP430F5436.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.TB0 = Timer0_B7.Instance undefined;
config MSP430F5436.commonMap // instance
index URL

Memory map elements shared by all MSP430F54xx devices

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFO",
        {
            comment: "Information memory (flash)",
            name: "INFO",
            base: 0x1800,
            len: 0x200,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "USCI_B3 Receive/Transmit Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "USCI_A3 Receive/Transmit Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USCI_B2 Receive/Transmit Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "USCI_A2 Receive/Transmit Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "ADC12_A Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config MSP430F5436.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.cpuCore = String "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F5436.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.cpuCoreRevision = String "1.0";
config MSP430F5436.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.dataWordSize = Int 2;
config MSP430F5436.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.deviceHeader = String undefined;
config MSP430F5436.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F5436.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F5436.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x1C00,
            len: 0x4000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0x5C00,
            len: 0xA380,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "FLASH2",
        {
            comment: "Extended Program FLASH",
            name: "FLASH2",
            base: 0x10000,
            len: 0x25C00,
            space: "code",
            access: "RWX"
        }
    ]
];
config MSP430F5436.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F5436.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F5436.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F5436.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.vcc = Float 0;
config MSP430F5436.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F5436.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F5436.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F5436.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:29 GMT


module ti.catalog.msp430.MSP430F5436

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== MSP430F5436.xdc ========
    15     *
    16     *! Revision History
    17     *! ================
    18     *! 02-Nov-2009 sg        Created.
    19     */
    20    package ti.catalog.msp430;
    21
    22    /*!
    23     *  ======== MSP430F5436 ========
    24     *  MSP430F5436 CPU definition
    25     */
    26    metaonly module MSP430F5436 inherits IMSP430F54xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36
    37            ["RAM", {
    38                comment:    "Data RAM",
    39                name:       "RAM",
    40                base:       0x1C00,
    41                len:        0x4000,
    42                space:      "code/data",
    43                access:     "RWX"
    44            }],
    45
    46            ["FLASH", {
    47                comment:    "Program FLASH",
    48                name:       "FLASH",
    49                base:       0x5C00,
    50                len:        0xA380,
    51                space:      "code",
    52                access:     "RWX"
    53            }],
    54
    55            ["FLASH2", {
    56                comment:    "Extended Program FLASH",
    57                name:       "FLASH2",
    58                base:       0x10000,
    59                len:        0x25C00,
    60                space:      "code",
    61                access:     "RWX"
    62            }],
    63
    64        ];
    65    };


module ti.catalog.msp430.MSP430F5437

metaonly module ti.catalog.msp430.MSP430F5437
index URL

MSP430F5437 CPU definition

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F5437.xdc
var MSP430F5437 = xdc.useModule('ti.catalog.msp430.MSP430F5437');
per-instance config parameters
    var params = new MSP430F5437.Params// Instance config-params object;
        params.TA0// = Timer0_A5.Instance undefined;
        params.TA1// = Timer1_A3.Instance undefined;
        params.TB0// = Timer0_B7.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430F54xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS",
                {
                    comment: "Memory mapped peripherals",
                    name: "PERIPHERALS",
                    base: 0x0,
                    len: 0x1000,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSL",
                {
                    comment: "Bootstrap loader (flash)",
                    name: "BSL",
                    base: 0x1000,
                    len: 0x800,
                    space: "code",
                    access: "RW"
                }
            ],
            [
                "INFO",
                {
                    comment: "Information memory (flash)",
                    name: "INFO",
                    base: 0x1800,
                    len: 0x200,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector",
                    name: "INT00",
                    base: 0xFF80,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector",
                    name: "INT01",
                    base: 0xFF82,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT02",
                {
                    comment: "Reserved Vector",
                    name: "INT02",
                    base: 0xFF84,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT03",
                {
                    comment: "Reserved Vector",
                    name: "INT03",
                    base: 0xFF86,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector",
                    name: "INT04",
                    base: 0xFF88,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT05",
                {
                    comment: "Reserved Vector",
                    name: "INT05",
                    base: 0xFF8A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT06",
                {
                    comment: "Reserved Vector",
                    name: "INT06",
                    base: 0xFF8C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT07",
                {
                    comment: "Reserved Vector",
                    name: "INT07",
                    base: 0xFF8E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT08",
                {
                    comment: "Reserved Vector",
                    name: "INT08",
                    base: 0xFF90,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT09",
                {
                    comment: "Reserved Vector",
                    name: "INT09",
                    base: 0xFF92,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT10",
                {
                    comment: "Reserved Vector",
                    name: "INT10",
                    base: 0xFF94,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector",
                    name: "INT11",
                    base: 0xFF96,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT12",
                {
                    comment: "Reserved Vector",
                    name: "INT12",
                    base: 0xFF98,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT13",
                {
                    comment: "Reserved Vector",
                    name: "INT13",
                    base: 0xFF9A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT14",
                {
                    comment: "Reserved Vector",
                    name: "INT14",
                    base: 0xFF9C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT15",
                {
                    comment: "Reserved Vector",
                    name: "INT15",
                    base: 0xFF9E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT16",
                {
                    comment: "Reserved Vector",
                    name: "INT16",
                    base: 0xFFA0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT17",
                {
                    comment: "Reserved Vector",
                    name: "INT17",
                    base: 0xFFA2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT18",
                {
                    comment: "Reserved Vector",
                    name: "INT18",
                    base: 0xFFA4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT19",
                {
                    comment: "Reserved Vector",
                    name: "INT19",
                    base: 0xFFA6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT20",
                {
                    comment: "Reserved Vector",
                    name: "INT20",
                    base: 0xFFA8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT21",
                {
                    comment: "Reserved Vector",
                    name: "INT21",
                    base: 0xFFAA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT22",
                {
                    comment: "Reserved Vector",
                    name: "INT22",
                    base: 0xFFAC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT23",
                {
                    comment: "Reserved Vector",
                    name: "INT23",
                    base: 0xFFAE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT24",
                {
                    comment: "Reserved Vector",
                    name: "INT24",
                    base: 0xFFB0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT25",
                {
                    comment: "Reserved Vector",
                    name: "INT25",
                    base: 0xFFB2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT26",
                {
                    comment: "Reserved Vector",
                    name: "INT26",
                    base: 0xFFB4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT27",
                {
                    comment: "Reserved Vector",
                    name: "INT27",
                    base: 0xFFB6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT28",
                {
                    comment: "Reserved Vector",
                    name: "INT28",
                    base: 0xFFB8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT29",
                {
                    comment: "Reserved Vector",
                    name: "INT29",
                    base: 0xFFBA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT30",
                {
                    comment: "Reserved Vector",
                    name: "INT30",
                    base: 0xFFBC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT31",
                {
                    comment: "Reserved Vector",
                    name: "INT31",
                    base: 0xFFBE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT32",
                {
                    comment: "Reserved Vector",
                    name: "INT32",
                    base: 0xFFC0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT33",
                {
                    comment: "Reserved Vector",
                    name: "INT33",
                    base: 0xFFC2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT34",
                {
                    comment: "Reserved Vector",
                    name: "INT34",
                    base: 0xFFC4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT35",
                {
                    comment: "Reserved Vector",
                    name: "INT35",
                    base: 0xFFC6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT36",
                {
                    comment: "Reserved Vector",
                    name: "INT36",
                    base: 0xFFC8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT37",
                {
                    comment: "Reserved Vector",
                    name: "INT37",
                    base: 0xFFCA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT38",
                {
                    comment: "Reserved Vector",
                    name: "INT38",
                    base: 0xFFCC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT39",
                {
                    comment: "Reserved Vector",
                    name: "INT39",
                    base: 0xFFCE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT40",
                {
                    comment: "Reserved Vector",
                    name: "INT40",
                    base: 0xFFD0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT41",
                {
                    comment: "RTC_A Vector",
                    name: "INT41",
                    base: 0xFFD2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT42",
                {
                    comment: "I/O Port P2 Vector",
                    name: "INT42",
                    base: 0xFFD4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT43",
                {
                    comment: "USCI_B3 Receive/Transmit Vector",
                    name: "INT43",
                    base: 0xFFD6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT44",
                {
                    comment: "USCI_A3 Receive/Transmit Vector",
                    name: "INT44",
                    base: 0xFFD8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT45",
                {
                    comment: "USCI_B1 Receive/Transmit Vector",
                    name: "INT45",
                    base: 0xFFDA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT46",
                {
                    comment: "USCI_A1 Receive/Transmit Vector",
                    name: "INT46",
                    base: 0xFFDC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT47",
                {
                    comment: "I/O Port P1 Vector",
                    name: "INT47",
                    base: 0xFFDE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT48",
                {
                    comment: "TA1 CCR1-CCR2 Vector",
                    name: "INT48",
                    base: 0xFFE0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT49",
                {
                    comment: "TA1 CCR0 Vector",
                    name: "INT49",
                    base: 0xFFE2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT50",
                {
                    comment: "DMA Vector",
                    name: "INT50",
                    base: 0xFFE4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT51",
                {
                    comment: "USCI_B2 Receive/Transmit Vector",
                    name: "INT51",
                    base: 0xFFE6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT52",
                {
                    comment: "USCI_A2 Receive/Transmit Vector",
                    name: "INT52",
                    base: 0xFFE8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT53",
                {
                    comment: "TA0 CCR1-CCR4 Vector",
                    name: "INT53",
                    base: 0xFFEA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT54",
                {
                    comment: "TA0 CCR0 Vector",
                    name: "INT54",
                    base: 0xFFEC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT55",
                {
                    comment: "ADC12_A Vector",
                    name: "INT55",
                    base: 0xFFEE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT56",
                {
                    comment: "USCI_B0 Receive/Transmit Vector",
                    name: "INT56",
                    base: 0xFFF0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT57",
                {
                    comment: "USCI_A0 Receive/Transmit Vector",
                    name: "INT57",
                    base: 0xFFF2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT58",
                {
                    comment: "Watchdog Timer_A Interval Timer Mode Vector",
                    name: "INT58",
                    base: 0xFFF4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT59",
                {
                    comment: "TB0 CCR1-CCR6 Vector",
                    name: "INT59",
                    base: 0xFFF6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT60",
                {
                    comment: "TB0 CCR0 Vector",
                    name: "INT60",
                    base: 0xFFF8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT61",
                {
                    comment: "User NMI Vector",
                    name: "INT61",
                    base: 0xFFFA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT62",
                {
                    comment: "System NMI Vector",
                    name: "INT62",
                    base: 0xFFFC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x2,
                    space: "data"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430X";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x1C00,
                    len: 0x4000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0x5C00,
                    len: 0xA380,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "FLASH2",
                {
                    comment: "Extended Program FLASH",
                    name: "FLASH2",
                    base: 0x10000,
                    len: 0x35C00,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F5437.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
// Instance config-params object
    params.TA0 = Timer0_A5.Instance undefined;
    //
    params.TA1 = Timer1_A3.Instance undefined;
    //
    params.TB0 = Timer0_B7.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430F54xx devices
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFO",
            {
                comment: "Information memory (flash)",
                name: "INFO",
                base: 0x1800,
                len: 0x200,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "USCI_B3 Receive/Transmit Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "USCI_A3 Receive/Transmit Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USCI_B2 Receive/Transmit Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "USCI_A2 Receive/Transmit Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "ADC12_A Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    params.cpuCore = String "MSP430X";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x1C00,
                len: 0x4000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0x5C00,
                len: 0xA380,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "FLASH2",
            {
                comment: "Extended Program FLASH",
                name: "FLASH2",
                base: 0x10000,
                len: 0x35C00,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F5437.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.TA0 = Timer0_A5.Instance undefined;
config MSP430F5437.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.TA1 = Timer1_A3.Instance undefined;
config MSP430F5437.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.TB0 = Timer0_B7.Instance undefined;
config MSP430F5437.commonMap // instance
index URL

Memory map elements shared by all MSP430F54xx devices

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFO",
        {
            comment: "Information memory (flash)",
            name: "INFO",
            base: 0x1800,
            len: 0x200,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "USCI_B3 Receive/Transmit Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "USCI_A3 Receive/Transmit Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USCI_B2 Receive/Transmit Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "USCI_A2 Receive/Transmit Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "ADC12_A Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config MSP430F5437.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.cpuCore = String "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F5437.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.cpuCoreRevision = String "1.0";
config MSP430F5437.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.dataWordSize = Int 2;
config MSP430F5437.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.deviceHeader = String undefined;
config MSP430F5437.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F5437.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F5437.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x1C00,
            len: 0x4000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0x5C00,
            len: 0xA380,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "FLASH2",
        {
            comment: "Extended Program FLASH",
            name: "FLASH2",
            base: 0x10000,
            len: 0x35C00,
            space: "code",
            access: "RWX"
        }
    ]
];
config MSP430F5437.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F5437.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F5437.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F5437.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.vcc = Float 0;
config MSP430F5437.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F5437.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F5437.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F5437.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:29 GMT


module ti.catalog.msp430.MSP430F5437

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== MSP430F5437.xdc ========
    15     *
    16     *! Revision History
    17     *! ================
    18     *! 02-Nov-2009 sg        Created.
    19     */
    20    package ti.catalog.msp430;
    21
    22    /*!
    23     *  ======== MSP430F5437 ========
    24     *  MSP430F5437 CPU definition
    25     */
    26    metaonly module MSP430F5437 inherits IMSP430F54xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36
    37            ["RAM", {
    38                comment:    "Data RAM",
    39                name:       "RAM",
    40                base:       0x1C00,
    41                len:        0x4000,
    42                space:      "code/data",
    43                access:     "RWX"
    44            }],
    45
    46            ["FLASH", {
    47                comment:    "Program FLASH",
    48                name:       "FLASH",
    49                base:       0x5C00,
    50                len:        0xA380,
    51                space:      "code",
    52                access:     "RWX"
    53            }],
    54
    55            ["FLASH2", {
    56                comment:    "Extended Program FLASH",
    57                name:       "FLASH2",
    58                base:       0x10000,
    59                len:        0x35C00,
    60                space:      "code",
    61                access:     "RWX"
    62            }],
    63
    64        ];
    65    };


module ti.catalog.msp430.MSP430F5438

metaonly module ti.catalog.msp430.MSP430F5438
index URL

MSP430F5438 CPU definition

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F5438.xdc
var MSP430F5438 = xdc.useModule('ti.catalog.msp430.MSP430F5438');
per-instance config parameters
    var params = new MSP430F5438.Params// Instance config-params object;
        params.TA0// = Timer0_A5.Instance undefined;
        params.TA1// = Timer1_A3.Instance undefined;
        params.TB0// = Timer0_B7.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430F54xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS",
                {
                    comment: "Memory mapped peripherals",
                    name: "PERIPHERALS",
                    base: 0x0,
                    len: 0x1000,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSL",
                {
                    comment: "Bootstrap loader (flash)",
                    name: "BSL",
                    base: 0x1000,
                    len: 0x800,
                    space: "code",
                    access: "RW"
                }
            ],
            [
                "INFO",
                {
                    comment: "Information memory (flash)",
                    name: "INFO",
                    base: 0x1800,
                    len: 0x200,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector",
                    name: "INT00",
                    base: 0xFF80,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector",
                    name: "INT01",
                    base: 0xFF82,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT02",
                {
                    comment: "Reserved Vector",
                    name: "INT02",
                    base: 0xFF84,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT03",
                {
                    comment: "Reserved Vector",
                    name: "INT03",
                    base: 0xFF86,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector",
                    name: "INT04",
                    base: 0xFF88,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT05",
                {
                    comment: "Reserved Vector",
                    name: "INT05",
                    base: 0xFF8A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT06",
                {
                    comment: "Reserved Vector",
                    name: "INT06",
                    base: 0xFF8C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT07",
                {
                    comment: "Reserved Vector",
                    name: "INT07",
                    base: 0xFF8E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT08",
                {
                    comment: "Reserved Vector",
                    name: "INT08",
                    base: 0xFF90,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT09",
                {
                    comment: "Reserved Vector",
                    name: "INT09",
                    base: 0xFF92,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT10",
                {
                    comment: "Reserved Vector",
                    name: "INT10",
                    base: 0xFF94,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector",
                    name: "INT11",
                    base: 0xFF96,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT12",
                {
                    comment: "Reserved Vector",
                    name: "INT12",
                    base: 0xFF98,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT13",
                {
                    comment: "Reserved Vector",
                    name: "INT13",
                    base: 0xFF9A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT14",
                {
                    comment: "Reserved Vector",
                    name: "INT14",
                    base: 0xFF9C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT15",
                {
                    comment: "Reserved Vector",
                    name: "INT15",
                    base: 0xFF9E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT16",
                {
                    comment: "Reserved Vector",
                    name: "INT16",
                    base: 0xFFA0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT17",
                {
                    comment: "Reserved Vector",
                    name: "INT17",
                    base: 0xFFA2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT18",
                {
                    comment: "Reserved Vector",
                    name: "INT18",
                    base: 0xFFA4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT19",
                {
                    comment: "Reserved Vector",
                    name: "INT19",
                    base: 0xFFA6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT20",
                {
                    comment: "Reserved Vector",
                    name: "INT20",
                    base: 0xFFA8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT21",
                {
                    comment: "Reserved Vector",
                    name: "INT21",
                    base: 0xFFAA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT22",
                {
                    comment: "Reserved Vector",
                    name: "INT22",
                    base: 0xFFAC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT23",
                {
                    comment: "Reserved Vector",
                    name: "INT23",
                    base: 0xFFAE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT24",
                {
                    comment: "Reserved Vector",
                    name: "INT24",
                    base: 0xFFB0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT25",
                {
                    comment: "Reserved Vector",
                    name: "INT25",
                    base: 0xFFB2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT26",
                {
                    comment: "Reserved Vector",
                    name: "INT26",
                    base: 0xFFB4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT27",
                {
                    comment: "Reserved Vector",
                    name: "INT27",
                    base: 0xFFB6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT28",
                {
                    comment: "Reserved Vector",
                    name: "INT28",
                    base: 0xFFB8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT29",
                {
                    comment: "Reserved Vector",
                    name: "INT29",
                    base: 0xFFBA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT30",
                {
                    comment: "Reserved Vector",
                    name: "INT30",
                    base: 0xFFBC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT31",
                {
                    comment: "Reserved Vector",
                    name: "INT31",
                    base: 0xFFBE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT32",
                {
                    comment: "Reserved Vector",
                    name: "INT32",
                    base: 0xFFC0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT33",
                {
                    comment: "Reserved Vector",
                    name: "INT33",
                    base: 0xFFC2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT34",
                {
                    comment: "Reserved Vector",
                    name: "INT34",
                    base: 0xFFC4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT35",
                {
                    comment: "Reserved Vector",
                    name: "INT35",
                    base: 0xFFC6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT36",
                {
                    comment: "Reserved Vector",
                    name: "INT36",
                    base: 0xFFC8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT37",
                {
                    comment: "Reserved Vector",
                    name: "INT37",
                    base: 0xFFCA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT38",
                {
                    comment: "Reserved Vector",
                    name: "INT38",
                    base: 0xFFCC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT39",
                {
                    comment: "Reserved Vector",
                    name: "INT39",
                    base: 0xFFCE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT40",
                {
                    comment: "Reserved Vector",
                    name: "INT40",
                    base: 0xFFD0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT41",
                {
                    comment: "RTC_A Vector",
                    name: "INT41",
                    base: 0xFFD2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT42",
                {
                    comment: "I/O Port P2 Vector",
                    name: "INT42",
                    base: 0xFFD4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT43",
                {
                    comment: "USCI_B3 Receive/Transmit Vector",
                    name: "INT43",
                    base: 0xFFD6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT44",
                {
                    comment: "USCI_A3 Receive/Transmit Vector",
                    name: "INT44",
                    base: 0xFFD8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT45",
                {
                    comment: "USCI_B1 Receive/Transmit Vector",
                    name: "INT45",
                    base: 0xFFDA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT46",
                {
                    comment: "USCI_A1 Receive/Transmit Vector",
                    name: "INT46",
                    base: 0xFFDC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT47",
                {
                    comment: "I/O Port P1 Vector",
                    name: "INT47",
                    base: 0xFFDE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT48",
                {
                    comment: "TA1 CCR1-CCR2 Vector",
                    name: "INT48",
                    base: 0xFFE0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT49",
                {
                    comment: "TA1 CCR0 Vector",
                    name: "INT49",
                    base: 0xFFE2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT50",
                {
                    comment: "DMA Vector",
                    name: "INT50",
                    base: 0xFFE4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT51",
                {
                    comment: "USCI_B2 Receive/Transmit Vector",
                    name: "INT51",
                    base: 0xFFE6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT52",
                {
                    comment: "USCI_A2 Receive/Transmit Vector",
                    name: "INT52",
                    base: 0xFFE8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT53",
                {
                    comment: "TA0 CCR1-CCR4 Vector",
                    name: "INT53",
                    base: 0xFFEA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT54",
                {
                    comment: "TA0 CCR0 Vector",
                    name: "INT54",
                    base: 0xFFEC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT55",
                {
                    comment: "ADC12_A Vector",
                    name: "INT55",
                    base: 0xFFEE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT56",
                {
                    comment: "USCI_B0 Receive/Transmit Vector",
                    name: "INT56",
                    base: 0xFFF0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT57",
                {
                    comment: "USCI_A0 Receive/Transmit Vector",
                    name: "INT57",
                    base: 0xFFF2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT58",
                {
                    comment: "Watchdog Timer_A Interval Timer Mode Vector",
                    name: "INT58",
                    base: 0xFFF4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT59",
                {
                    comment: "TB0 CCR1-CCR6 Vector",
                    name: "INT59",
                    base: 0xFFF6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT60",
                {
                    comment: "TB0 CCR0 Vector",
                    name: "INT60",
                    base: 0xFFF8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT61",
                {
                    comment: "User NMI Vector",
                    name: "INT61",
                    base: 0xFFFA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT62",
                {
                    comment: "System NMI Vector",
                    name: "INT62",
                    base: 0xFFFC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x2,
                    space: "data"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430X";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x1C00,
                    len: 0x4000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0x5C00,
                    len: 0xA380,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "FLASH2",
                {
                    comment: "Extended Program FLASH",
                    name: "FLASH2",
                    base: 0x10000,
                    len: 0x35C00,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F5438.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
// Instance config-params object
    params.TA0 = Timer0_A5.Instance undefined;
    //
    params.TA1 = Timer1_A3.Instance undefined;
    //
    params.TB0 = Timer0_B7.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430F54xx devices
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFO",
            {
                comment: "Information memory (flash)",
                name: "INFO",
                base: 0x1800,
                len: 0x200,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "USCI_B3 Receive/Transmit Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "USCI_A3 Receive/Transmit Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USCI_B2 Receive/Transmit Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "USCI_A2 Receive/Transmit Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "ADC12_A Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    params.cpuCore = String "MSP430X";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x1C00,
                len: 0x4000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0x5C00,
                len: 0xA380,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "FLASH2",
            {
                comment: "Extended Program FLASH",
                name: "FLASH2",
                base: 0x10000,
                len: 0x35C00,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F5438.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.TA0 = Timer0_A5.Instance undefined;
config MSP430F5438.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.TA1 = Timer1_A3.Instance undefined;
config MSP430F5438.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.TB0 = Timer0_B7.Instance undefined;
config MSP430F5438.commonMap // instance
index URL

Memory map elements shared by all MSP430F54xx devices

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFO",
        {
            comment: "Information memory (flash)",
            name: "INFO",
            base: 0x1800,
            len: 0x200,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "USCI_B3 Receive/Transmit Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "USCI_A3 Receive/Transmit Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USCI_B2 Receive/Transmit Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "USCI_A2 Receive/Transmit Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "ADC12_A Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config MSP430F5438.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.cpuCore = String "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F5438.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.cpuCoreRevision = String "1.0";
config MSP430F5438.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.dataWordSize = Int 2;
config MSP430F5438.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.deviceHeader = String undefined;
config MSP430F5438.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F5438.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F5438.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x1C00,
            len: 0x4000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0x5C00,
            len: 0xA380,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "FLASH2",
        {
            comment: "Extended Program FLASH",
            name: "FLASH2",
            base: 0x10000,
            len: 0x35C00,
            space: "code",
            access: "RWX"
        }
    ]
];
config MSP430F5438.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F5438.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F5438.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F5438.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.vcc = Float 0;
config MSP430F5438.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F5438.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F5438.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F5438.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:30 GMT


module ti.catalog.msp430.MSP430F5438

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== MSP430F5438.xdc ========
    15     *
    16     *! Revision History
    17     *! ================
    18     *! 31-Oct-2009 sg        Use IMSP430F54xx.
    19     *! 30-Sep-2009 sg        Created.
    20     */
    21    package ti.catalog.msp430;
    22
    23    /*!
    24     *  ======== MSP430F5438 ========
    25     *  MSP430F5438 CPU definition
    26     */
    27    metaonly module MSP430F5438 inherits IMSP430F54xx
    28    {
    29    instance:
    30        override config string   cpuCoreRevision = "1.0";
    31
    32        /*!
    33         *  ======== memMap ========
    34         *  The default memory map for this device
    35         */
    36        config xdc.platform.IPlatform.Memory memMap[string]  = [
    37
    38            ["RAM", {
    39                comment:    "Data RAM",
    40                name:       "RAM",
    41                base:       0x1C00,
    42                len:        0x4000,
    43                space:      "code/data",
    44                access:     "RWX"
    45            }],
    46
    47            ["FLASH", {
    48                comment:    "Program FLASH",
    49                name:       "FLASH",
    50                base:       0x5C00,
    51                len:        0xA380,
    52                space:      "code",
    53                access:     "RWX"
    54            }],
    55
    56            ["FLASH2", {
    57                comment:    "Extended Program FLASH",
    58                name:       "FLASH2",
    59                base:       0x10000,
    60                len:        0x35C00,
    61                space:      "code",
    62                access:     "RWX"
    63            }],
    64
    65        ];
    66    };


module ti.catalog.msp430.MSP430F5529

metaonly module ti.catalog.msp430.MSP430F5529
index URL

MSP430F5529 CPU definition

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/MSP430F5529.xdc
var MSP430F5529 = xdc.useModule('ti.catalog.msp430.MSP430F5529');
per-instance config parameters
    var params = new MSP430F5529.Params// Instance config-params object;
        params.TA0// = Timer0_A5.Instance undefined;
        params.TA1// = Timer1_A3.Instance undefined;
        params.TA2// = Timer2_A3.Instance undefined;
        params.TB0// = Timer0_B7.Instance undefined;
        params.commonMap// Memory map elements shared by all MSP430F55xx devices = IPlatform.Memory[string] [
            [
                "PERIPHERALS",
                {
                    comment: "Memory mapped peripherals",
                    name: "PERIPHERALS",
                    base: 0x0,
                    len: 0x1000,
                    space: "io",
                    access: "RW"
                }
            ],
            [
                "BSL",
                {
                    comment: "Bootstrap loader (flash)",
                    name: "BSL",
                    base: 0x1000,
                    len: 0x800,
                    space: "code",
                    access: "RW"
                }
            ],
            [
                "INFOD",
                {
                    comment: "Information Memory D (flash)",
                    name: "INFOD",
                    base: 0x1800,
                    len: 0x80,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOC",
                {
                    comment: "Information Memory C (flash)",
                    name: "INFOC",
                    base: 0x1880,
                    len: 0x80,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOB",
                {
                    comment: "Information Memory B (flash)",
                    name: "INFOB",
                    base: 0x1900,
                    len: 0x80,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INFOA",
                {
                    comment: "Information Memory A (flash)",
                    name: "INFOA",
                    base: 0x1980,
                    len: 0x80,
                    space: "data",
                    access: "RW"
                }
            ],
            [
                "INT00",
                {
                    comment: "Reserved Vector",
                    name: "INT00",
                    base: 0xFF80,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT01",
                {
                    comment: "Reserved Vector",
                    name: "INT01",
                    base: 0xFF82,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT02",
                {
                    comment: "Reserved Vector",
                    name: "INT02",
                    base: 0xFF84,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT03",
                {
                    comment: "Reserved Vector",
                    name: "INT03",
                    base: 0xFF86,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT04",
                {
                    comment: "Reserved Vector",
                    name: "INT04",
                    base: 0xFF88,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT05",
                {
                    comment: "Reserved Vector",
                    name: "INT05",
                    base: 0xFF8A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT06",
                {
                    comment: "Reserved Vector",
                    name: "INT06",
                    base: 0xFF8C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT07",
                {
                    comment: "Reserved Vector",
                    name: "INT07",
                    base: 0xFF8E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT08",
                {
                    comment: "Reserved Vector",
                    name: "INT08",
                    base: 0xFF90,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT09",
                {
                    comment: "Reserved Vector",
                    name: "INT09",
                    base: 0xFF92,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT10",
                {
                    comment: "Reserved Vector",
                    name: "INT10",
                    base: 0xFF94,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT11",
                {
                    comment: "Reserved Vector",
                    name: "INT11",
                    base: 0xFF96,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT12",
                {
                    comment: "Reserved Vector",
                    name: "INT12",
                    base: 0xFF98,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT13",
                {
                    comment: "Reserved Vector",
                    name: "INT13",
                    base: 0xFF9A,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT14",
                {
                    comment: "Reserved Vector",
                    name: "INT14",
                    base: 0xFF9C,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT15",
                {
                    comment: "Reserved Vector",
                    name: "INT15",
                    base: 0xFF9E,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT16",
                {
                    comment: "Reserved Vector",
                    name: "INT16",
                    base: 0xFFA0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT17",
                {
                    comment: "Reserved Vector",
                    name: "INT17",
                    base: 0xFFA2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT18",
                {
                    comment: "Reserved Vector",
                    name: "INT18",
                    base: 0xFFA4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT19",
                {
                    comment: "Reserved Vector",
                    name: "INT19",
                    base: 0xFFA6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT20",
                {
                    comment: "Reserved Vector",
                    name: "INT20",
                    base: 0xFFA8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT21",
                {
                    comment: "Reserved Vector",
                    name: "INT21",
                    base: 0xFFAA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT22",
                {
                    comment: "Reserved Vector",
                    name: "INT22",
                    base: 0xFFAC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT23",
                {
                    comment: "Reserved Vector",
                    name: "INT23",
                    base: 0xFFAE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT24",
                {
                    comment: "Reserved Vector",
                    name: "INT24",
                    base: 0xFFB0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT25",
                {
                    comment: "Reserved Vector",
                    name: "INT25",
                    base: 0xFFB2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT26",
                {
                    comment: "Reserved Vector",
                    name: "INT26",
                    base: 0xFFB4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT27",
                {
                    comment: "Reserved Vector",
                    name: "INT27",
                    base: 0xFFB6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT28",
                {
                    comment: "Reserved Vector",
                    name: "INT28",
                    base: 0xFFB8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT29",
                {
                    comment: "Reserved Vector",
                    name: "INT29",
                    base: 0xFFBA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT30",
                {
                    comment: "Reserved Vector",
                    name: "INT30",
                    base: 0xFFBC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT31",
                {
                    comment: "Reserved Vector",
                    name: "INT31",
                    base: 0xFFBE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT32",
                {
                    comment: "Reserved Vector",
                    name: "INT32",
                    base: 0xFFC0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT33",
                {
                    comment: "Reserved Vector",
                    name: "INT33",
                    base: 0xFFC2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT34",
                {
                    comment: "Reserved Vector",
                    name: "INT34",
                    base: 0xFFC4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT35",
                {
                    comment: "Reserved Vector",
                    name: "INT35",
                    base: 0xFFC6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT36",
                {
                    comment: "Reserved Vector",
                    name: "INT36",
                    base: 0xFFC8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT37",
                {
                    comment: "Reserved Vector",
                    name: "INT37",
                    base: 0xFFCA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT38",
                {
                    comment: "Reserved Vector",
                    name: "INT38",
                    base: 0xFFCC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT39",
                {
                    comment: "Reserved Vector",
                    name: "INT39",
                    base: 0xFFCE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT40",
                {
                    comment: "Reserved Vector",
                    name: "INT40",
                    base: 0xFFD0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT41",
                {
                    comment: "RTC_A Vector",
                    name: "INT41",
                    base: 0xFFD2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT42",
                {
                    comment: "I/O Port P2 Vector",
                    name: "INT42",
                    base: 0xFFD4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT43",
                {
                    comment: "TA2 CCR1-CCR2 Vector",
                    name: "INT43",
                    base: 0xFFD6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT44",
                {
                    comment: "TA2 CCR0 Vector",
                    name: "INT44",
                    base: 0xFFD8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT45",
                {
                    comment: "USCI_B1 Receive/Transmit Vector",
                    name: "INT45",
                    base: 0xFFDA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT46",
                {
                    comment: "USCI_A1 Receive/Transmit Vector",
                    name: "INT46",
                    base: 0xFFDC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT47",
                {
                    comment: "I/O Port P1 Vector",
                    name: "INT47",
                    base: 0xFFDE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT48",
                {
                    comment: "TA1 CCR1-CCR2 Vector",
                    name: "INT48",
                    base: 0xFFE0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT49",
                {
                    comment: "TA1 CCR0 Vector",
                    name: "INT49",
                    base: 0xFFE2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT50",
                {
                    comment: "DMA Vector",
                    name: "INT50",
                    base: 0xFFE4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT51",
                {
                    comment: "USB_UBM Vector",
                    name: "INT51",
                    base: 0xFFE6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT52",
                {
                    comment: "TA0 CCR1-CCR4 Vector",
                    name: "INT52",
                    base: 0xFFE8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT53",
                {
                    comment: "TA0 CCR0 Vector",
                    name: "INT53",
                    base: 0xFFEA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT54",
                {
                    comment: "ADC12_A Vector",
                    name: "INT54",
                    base: 0xFFEC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT55",
                {
                    comment: "USCI_B0 Receive/Transmit Vector",
                    name: "INT55",
                    base: 0xFFEE,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT56",
                {
                    comment: "USCI_A0 Receive/Transmit Vector",
                    name: "INT56",
                    base: 0xFFF0,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT57",
                {
                    comment: "Watchdog Timer_A Interval Timer Mode Vector",
                    name: "INT57",
                    base: 0xFFF2,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT58",
                {
                    comment: "TB0 CCR1-CCR6 Vector",
                    name: "INT58",
                    base: 0xFFF4,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT59",
                {
                    comment: "TB0 CCR0 Vector",
                    name: "INT59",
                    base: 0xFFF6,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT60",
                {
                    comment: "Comp_B Vector",
                    name: "INT60",
                    base: 0xFFF8,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT61",
                {
                    comment: "User NMI Vector",
                    name: "INT61",
                    base: 0xFFFA,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "INT62",
                {
                    comment: "System NMI Vector",
                    name: "INT62",
                    base: 0xFFFC,
                    len: 0x2,
                    space: "data"
                }
            ],
            [
                "RESET",
                {
                    comment: "Reset Vector",
                    name: "RESET",
                    base: 0xFFFE,
                    len: 0x2,
                    space: "data"
                }
            ]
        ];
        params.cpuCore// A string identifying the CPU Core = String "MSP430X";
        params.cpuCoreRevision// A string that uniquely identifies a revision of the core = String "1.0";
        params.dataWordSize// The size of an int on the target in 8-bit bytes = Int 2;
        params.deviceHeader// The optional header file that define device specific constants and structures = String undefined;
        params.interruptController// = Interrupt_Controller.Instance undefined;
        params.interruptEnableRegister1// = IE1.Instance undefined;
        params.memMap// The default memory map for this device = IPlatform.Memory[string] [
            [
                "RAM",
                {
                    comment: "Data RAM",
                    name: "RAM",
                    base: 0x2400,
                    len: 0x2000,
                    space: "code/data",
                    access: "RWX"
                }
            ],
            [
                "FLASH",
                {
                    comment: "Program FLASH",
                    name: "FLASH",
                    base: 0x4400,
                    len: 0xBB80,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "FLASH2",
                {
                    comment: "Extended Program FLASH",
                    name: "FLASH2",
                    base: 0x10000,
                    len: 0x14400,
                    space: "code",
                    access: "RWX"
                }
            ]
        ];
        params.minDataUnitSize// The minimum addressable data unit size in 8-bit bytes = Int 1;
        params.minProgUnitSize// The minimum addressable program unit size in 8-bit bytes = Int 1;
        params.peripherals// A map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        params.vcc// Stores current system VCC value in CFG script = Float 0;
        params.wdtPlus// = WDTplus.Instance undefined;
per-instance creation
    var inst = MSP430F5529.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds to the values of the specified registers(Any registers) returns Any
     inst.getRegisterSet// The set of valid register names for this CPU() returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
// Instance config-params object
    params.TA0 = Timer0_A5.Instance undefined;
    //
    params.TA1 = Timer1_A3.Instance undefined;
    //
    params.TA2 = Timer2_A3.Instance undefined;
    //
    params.TB0 = Timer0_B7.Instance undefined;
    //
    params.commonMap = IPlatform.Memory[string] [
    // Memory map elements shared by all MSP430F55xx devices
        [
            "PERIPHERALS",
            {
                comment: "Memory mapped peripherals",
                name: "PERIPHERALS",
                base: 0x0,
                len: 0x1000,
                space: "io",
                access: "RW"
            }
        ],
        [
            "BSL",
            {
                comment: "Bootstrap loader (flash)",
                name: "BSL",
                base: 0x1000,
                len: 0x800,
                space: "code",
                access: "RW"
            }
        ],
        [
            "INFOD",
            {
                comment: "Information Memory D (flash)",
                name: "INFOD",
                base: 0x1800,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOC",
            {
                comment: "Information Memory C (flash)",
                name: "INFOC",
                base: 0x1880,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOB",
            {
                comment: "Information Memory B (flash)",
                name: "INFOB",
                base: 0x1900,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INFOA",
            {
                comment: "Information Memory A (flash)",
                name: "INFOA",
                base: 0x1980,
                len: 0x80,
                space: "data",
                access: "RW"
            }
        ],
        [
            "INT00",
            {
                comment: "Reserved Vector",
                name: "INT00",
                base: 0xFF80,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT01",
            {
                comment: "Reserved Vector",
                name: "INT01",
                base: 0xFF82,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT02",
            {
                comment: "Reserved Vector",
                name: "INT02",
                base: 0xFF84,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT03",
            {
                comment: "Reserved Vector",
                name: "INT03",
                base: 0xFF86,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT04",
            {
                comment: "Reserved Vector",
                name: "INT04",
                base: 0xFF88,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT05",
            {
                comment: "Reserved Vector",
                name: "INT05",
                base: 0xFF8A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT06",
            {
                comment: "Reserved Vector",
                name: "INT06",
                base: 0xFF8C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT07",
            {
                comment: "Reserved Vector",
                name: "INT07",
                base: 0xFF8E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT08",
            {
                comment: "Reserved Vector",
                name: "INT08",
                base: 0xFF90,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT09",
            {
                comment: "Reserved Vector",
                name: "INT09",
                base: 0xFF92,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT10",
            {
                comment: "Reserved Vector",
                name: "INT10",
                base: 0xFF94,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT11",
            {
                comment: "Reserved Vector",
                name: "INT11",
                base: 0xFF96,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT12",
            {
                comment: "Reserved Vector",
                name: "INT12",
                base: 0xFF98,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT13",
            {
                comment: "Reserved Vector",
                name: "INT13",
                base: 0xFF9A,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT14",
            {
                comment: "Reserved Vector",
                name: "INT14",
                base: 0xFF9C,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT15",
            {
                comment: "Reserved Vector",
                name: "INT15",
                base: 0xFF9E,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT16",
            {
                comment: "Reserved Vector",
                name: "INT16",
                base: 0xFFA0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT17",
            {
                comment: "Reserved Vector",
                name: "INT17",
                base: 0xFFA2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT18",
            {
                comment: "Reserved Vector",
                name: "INT18",
                base: 0xFFA4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT19",
            {
                comment: "Reserved Vector",
                name: "INT19",
                base: 0xFFA6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT20",
            {
                comment: "Reserved Vector",
                name: "INT20",
                base: 0xFFA8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT21",
            {
                comment: "Reserved Vector",
                name: "INT21",
                base: 0xFFAA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT22",
            {
                comment: "Reserved Vector",
                name: "INT22",
                base: 0xFFAC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT23",
            {
                comment: "Reserved Vector",
                name: "INT23",
                base: 0xFFAE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT24",
            {
                comment: "Reserved Vector",
                name: "INT24",
                base: 0xFFB0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT25",
            {
                comment: "Reserved Vector",
                name: "INT25",
                base: 0xFFB2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT26",
            {
                comment: "Reserved Vector",
                name: "INT26",
                base: 0xFFB4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT27",
            {
                comment: "Reserved Vector",
                name: "INT27",
                base: 0xFFB6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT28",
            {
                comment: "Reserved Vector",
                name: "INT28",
                base: 0xFFB8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT29",
            {
                comment: "Reserved Vector",
                name: "INT29",
                base: 0xFFBA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT30",
            {
                comment: "Reserved Vector",
                name: "INT30",
                base: 0xFFBC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT31",
            {
                comment: "Reserved Vector",
                name: "INT31",
                base: 0xFFBE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT32",
            {
                comment: "Reserved Vector",
                name: "INT32",
                base: 0xFFC0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT33",
            {
                comment: "Reserved Vector",
                name: "INT33",
                base: 0xFFC2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT34",
            {
                comment: "Reserved Vector",
                name: "INT34",
                base: 0xFFC4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT35",
            {
                comment: "Reserved Vector",
                name: "INT35",
                base: 0xFFC6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT36",
            {
                comment: "Reserved Vector",
                name: "INT36",
                base: 0xFFC8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT37",
            {
                comment: "Reserved Vector",
                name: "INT37",
                base: 0xFFCA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT38",
            {
                comment: "Reserved Vector",
                name: "INT38",
                base: 0xFFCC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT39",
            {
                comment: "Reserved Vector",
                name: "INT39",
                base: 0xFFCE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT40",
            {
                comment: "Reserved Vector",
                name: "INT40",
                base: 0xFFD0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT41",
            {
                comment: "RTC_A Vector",
                name: "INT41",
                base: 0xFFD2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT42",
            {
                comment: "I/O Port P2 Vector",
                name: "INT42",
                base: 0xFFD4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT43",
            {
                comment: "TA2 CCR1-CCR2 Vector",
                name: "INT43",
                base: 0xFFD6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT44",
            {
                comment: "TA2 CCR0 Vector",
                name: "INT44",
                base: 0xFFD8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT45",
            {
                comment: "USCI_B1 Receive/Transmit Vector",
                name: "INT45",
                base: 0xFFDA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT46",
            {
                comment: "USCI_A1 Receive/Transmit Vector",
                name: "INT46",
                base: 0xFFDC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT47",
            {
                comment: "I/O Port P1 Vector",
                name: "INT47",
                base: 0xFFDE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT48",
            {
                comment: "TA1 CCR1-CCR2 Vector",
                name: "INT48",
                base: 0xFFE0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT49",
            {
                comment: "TA1 CCR0 Vector",
                name: "INT49",
                base: 0xFFE2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT50",
            {
                comment: "DMA Vector",
                name: "INT50",
                base: 0xFFE4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT51",
            {
                comment: "USB_UBM Vector",
                name: "INT51",
                base: 0xFFE6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT52",
            {
                comment: "TA0 CCR1-CCR4 Vector",
                name: "INT52",
                base: 0xFFE8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT53",
            {
                comment: "TA0 CCR0 Vector",
                name: "INT53",
                base: 0xFFEA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT54",
            {
                comment: "ADC12_A Vector",
                name: "INT54",
                base: 0xFFEC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT55",
            {
                comment: "USCI_B0 Receive/Transmit Vector",
                name: "INT55",
                base: 0xFFEE,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT56",
            {
                comment: "USCI_A0 Receive/Transmit Vector",
                name: "INT56",
                base: 0xFFF0,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT57",
            {
                comment: "Watchdog Timer_A Interval Timer Mode Vector",
                name: "INT57",
                base: 0xFFF2,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT58",
            {
                comment: "TB0 CCR1-CCR6 Vector",
                name: "INT58",
                base: 0xFFF4,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT59",
            {
                comment: "TB0 CCR0 Vector",
                name: "INT59",
                base: 0xFFF6,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT60",
            {
                comment: "Comp_B Vector",
                name: "INT60",
                base: 0xFFF8,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT61",
            {
                comment: "User NMI Vector",
                name: "INT61",
                base: 0xFFFA,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "INT62",
            {
                comment: "System NMI Vector",
                name: "INT62",
                base: 0xFFFC,
                len: 0x2,
                space: "data"
            }
        ],
        [
            "RESET",
            {
                comment: "Reset Vector",
                name: "RESET",
                base: 0xFFFE,
                len: 0x2,
                space: "data"
            }
        ]
    ];
    params.cpuCore = String "MSP430X";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String "1.0";
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 2;
    // The size of an int on the target in 8-bit bytes
    params.deviceHeader = String undefined;
    // The optional header file that define device specific constants and structures
    params.interruptController = Interrupt_Controller.Instance undefined;
    //
    params.interruptEnableRegister1 = IE1.Instance undefined;
    //
    params.memMap = IPlatform.Memory[string] [
    // The default memory map for this device
        [
            "RAM",
            {
                comment: "Data RAM",
                name: "RAM",
                base: 0x2400,
                len: 0x2000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "FLASH",
            {
                comment: "Program FLASH",
                name: "FLASH",
                base: 0x4400,
                len: 0xBB80,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "FLASH2",
            {
                comment: "Extended Program FLASH",
                name: "FLASH2",
                base: 0x10000,
                len: 0x14400,
                space: "code",
                access: "RWX"
            }
        ]
    ];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
    params.peripherals = IPeripheral.Instance[string] undefined;
    // A map of peripherals available on the device
    params.vcc = Float 0;
    // Stores current system VCC value in CFG script
    params.wdtPlus = WDTplus.Instance undefined;
    //
config MSP430F5529.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.TA0 = Timer0_A5.Instance undefined;
config MSP430F5529.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.TA1 = Timer1_A3.Instance undefined;
config MSP430F5529.TA2 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.TA2 = Timer2_A3.Instance undefined;
config MSP430F5529.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.TB0 = Timer0_B7.Instance undefined;
config MSP430F5529.commonMap // instance
index URL

Memory map elements shared by all MSP430F55xx devices

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.commonMap = IPlatform.Memory[string] [
    [
        "PERIPHERALS",
        {
            comment: "Memory mapped peripherals",
            name: "PERIPHERALS",
            base: 0x0,
            len: 0x1000,
            space: "io",
            access: "RW"
        }
    ],
    [
        "BSL",
        {
            comment: "Bootstrap loader (flash)",
            name: "BSL",
            base: 0x1000,
            len: 0x800,
            space: "code",
            access: "RW"
        }
    ],
    [
        "INFOD",
        {
            comment: "Information Memory D (flash)",
            name: "INFOD",
            base: 0x1800,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOC",
        {
            comment: "Information Memory C (flash)",
            name: "INFOC",
            base: 0x1880,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOB",
        {
            comment: "Information Memory B (flash)",
            name: "INFOB",
            base: 0x1900,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INFOA",
        {
            comment: "Information Memory A (flash)",
            name: "INFOA",
            base: 0x1980,
            len: 0x80,
            space: "data",
            access: "RW"
        }
    ],
    [
        "INT00",
        {
            comment: "Reserved Vector",
            name: "INT00",
            base: 0xFF80,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT01",
        {
            comment: "Reserved Vector",
            name: "INT01",
            base: 0xFF82,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT02",
        {
            comment: "Reserved Vector",
            name: "INT02",
            base: 0xFF84,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT03",
        {
            comment: "Reserved Vector",
            name: "INT03",
            base: 0xFF86,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT04",
        {
            comment: "Reserved Vector",
            name: "INT04",
            base: 0xFF88,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT05",
        {
            comment: "Reserved Vector",
            name: "INT05",
            base: 0xFF8A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT06",
        {
            comment: "Reserved Vector",
            name: "INT06",
            base: 0xFF8C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT07",
        {
            comment: "Reserved Vector",
            name: "INT07",
            base: 0xFF8E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT08",
        {
            comment: "Reserved Vector",
            name: "INT08",
            base: 0xFF90,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT09",
        {
            comment: "Reserved Vector",
            name: "INT09",
            base: 0xFF92,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT10",
        {
            comment: "Reserved Vector",
            name: "INT10",
            base: 0xFF94,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT11",
        {
            comment: "Reserved Vector",
            name: "INT11",
            base: 0xFF96,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT12",
        {
            comment: "Reserved Vector",
            name: "INT12",
            base: 0xFF98,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT13",
        {
            comment: "Reserved Vector",
            name: "INT13",
            base: 0xFF9A,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT14",
        {
            comment: "Reserved Vector",
            name: "INT14",
            base: 0xFF9C,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT15",
        {
            comment: "Reserved Vector",
            name: "INT15",
            base: 0xFF9E,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT16",
        {
            comment: "Reserved Vector",
            name: "INT16",
            base: 0xFFA0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT17",
        {
            comment: "Reserved Vector",
            name: "INT17",
            base: 0xFFA2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT18",
        {
            comment: "Reserved Vector",
            name: "INT18",
            base: 0xFFA4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT19",
        {
            comment: "Reserved Vector",
            name: "INT19",
            base: 0xFFA6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT20",
        {
            comment: "Reserved Vector",
            name: "INT20",
            base: 0xFFA8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT21",
        {
            comment: "Reserved Vector",
            name: "INT21",
            base: 0xFFAA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT22",
        {
            comment: "Reserved Vector",
            name: "INT22",
            base: 0xFFAC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT23",
        {
            comment: "Reserved Vector",
            name: "INT23",
            base: 0xFFAE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT24",
        {
            comment: "Reserved Vector",
            name: "INT24",
            base: 0xFFB0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT25",
        {
            comment: "Reserved Vector",
            name: "INT25",
            base: 0xFFB2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT26",
        {
            comment: "Reserved Vector",
            name: "INT26",
            base: 0xFFB4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT27",
        {
            comment: "Reserved Vector",
            name: "INT27",
            base: 0xFFB6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT28",
        {
            comment: "Reserved Vector",
            name: "INT28",
            base: 0xFFB8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT29",
        {
            comment: "Reserved Vector",
            name: "INT29",
            base: 0xFFBA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT30",
        {
            comment: "Reserved Vector",
            name: "INT30",
            base: 0xFFBC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT31",
        {
            comment: "Reserved Vector",
            name: "INT31",
            base: 0xFFBE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT32",
        {
            comment: "Reserved Vector",
            name: "INT32",
            base: 0xFFC0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT33",
        {
            comment: "Reserved Vector",
            name: "INT33",
            base: 0xFFC2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT34",
        {
            comment: "Reserved Vector",
            name: "INT34",
            base: 0xFFC4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT35",
        {
            comment: "Reserved Vector",
            name: "INT35",
            base: 0xFFC6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT36",
        {
            comment: "Reserved Vector",
            name: "INT36",
            base: 0xFFC8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT37",
        {
            comment: "Reserved Vector",
            name: "INT37",
            base: 0xFFCA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT38",
        {
            comment: "Reserved Vector",
            name: "INT38",
            base: 0xFFCC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT39",
        {
            comment: "Reserved Vector",
            name: "INT39",
            base: 0xFFCE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT40",
        {
            comment: "Reserved Vector",
            name: "INT40",
            base: 0xFFD0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT41",
        {
            comment: "RTC_A Vector",
            name: "INT41",
            base: 0xFFD2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT42",
        {
            comment: "I/O Port P2 Vector",
            name: "INT42",
            base: 0xFFD4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT43",
        {
            comment: "TA2 CCR1-CCR2 Vector",
            name: "INT43",
            base: 0xFFD6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT44",
        {
            comment: "TA2 CCR0 Vector",
            name: "INT44",
            base: 0xFFD8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT45",
        {
            comment: "USCI_B1 Receive/Transmit Vector",
            name: "INT45",
            base: 0xFFDA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT46",
        {
            comment: "USCI_A1 Receive/Transmit Vector",
            name: "INT46",
            base: 0xFFDC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT47",
        {
            comment: "I/O Port P1 Vector",
            name: "INT47",
            base: 0xFFDE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT48",
        {
            comment: "TA1 CCR1-CCR2 Vector",
            name: "INT48",
            base: 0xFFE0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT49",
        {
            comment: "TA1 CCR0 Vector",
            name: "INT49",
            base: 0xFFE2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT50",
        {
            comment: "DMA Vector",
            name: "INT50",
            base: 0xFFE4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT51",
        {
            comment: "USB_UBM Vector",
            name: "INT51",
            base: 0xFFE6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT52",
        {
            comment: "TA0 CCR1-CCR4 Vector",
            name: "INT52",
            base: 0xFFE8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT53",
        {
            comment: "TA0 CCR0 Vector",
            name: "INT53",
            base: 0xFFEA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT54",
        {
            comment: "ADC12_A Vector",
            name: "INT54",
            base: 0xFFEC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT55",
        {
            comment: "USCI_B0 Receive/Transmit Vector",
            name: "INT55",
            base: 0xFFEE,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT56",
        {
            comment: "USCI_A0 Receive/Transmit Vector",
            name: "INT56",
            base: 0xFFF0,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT57",
        {
            comment: "Watchdog Timer_A Interval Timer Mode Vector",
            name: "INT57",
            base: 0xFFF2,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT58",
        {
            comment: "TB0 CCR1-CCR6 Vector",
            name: "INT58",
            base: 0xFFF4,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT59",
        {
            comment: "TB0 CCR0 Vector",
            name: "INT59",
            base: 0xFFF6,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT60",
        {
            comment: "Comp_B Vector",
            name: "INT60",
            base: 0xFFF8,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT61",
        {
            comment: "User NMI Vector",
            name: "INT61",
            base: 0xFFFA,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "INT62",
        {
            comment: "System NMI Vector",
            name: "INT62",
            base: 0xFFFC,
            len: 0x2,
            space: "data"
        }
    ],
    [
        "RESET",
        {
            comment: "Reset Vector",
            name: "RESET",
            base: 0xFFFE,
            len: 0x2,
            space: "data"
        }
    ]
];
config MSP430F5529.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.cpuCore = String "MSP430X";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config MSP430F5529.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.cpuCoreRevision = String "1.0";
config MSP430F5529.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.dataWordSize = Int 2;
config MSP430F5529.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.deviceHeader = String undefined;
config MSP430F5529.interruptController // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.interruptController = Interrupt_Controller.Instance undefined;
config MSP430F5529.interruptEnableRegister1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.interruptEnableRegister1 = IE1.Instance undefined;
config MSP430F5529.memMap // instance
index URL

The default memory map for this device

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "RAM",
        {
            comment: "Data RAM",
            name: "RAM",
            base: 0x2400,
            len: 0x2000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "FLASH",
        {
            comment: "Program FLASH",
            name: "FLASH",
            base: 0x4400,
            len: 0xBB80,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "FLASH2",
        {
            comment: "Extended Program FLASH",
            name: "FLASH2",
            base: 0x10000,
            len: 0x14400,
            space: "code",
            access: "RWX"
        }
    ]
];
config MSP430F5529.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.minDataUnitSize = Int 1;
config MSP430F5529.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.minProgUnitSize = Int 1;
config MSP430F5529.peripherals // instance
index URL

A map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
config MSP430F5529.vcc // instance
index URL

Stores current system VCC value in CFG script

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.vcc = Float 0;
config MSP430F5529.wdtPlus // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.wdtPlus = WDTplus.Instance undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = MSP430F5529.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
MSP430F5529.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
MSP430F5529.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:16:31 GMT


module ti.catalog.msp430.MSP430F5529

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== MSP430F5529.xdc ========
    15     *
    16     *! Revision History
    17     *! ================
    18     *! 01-Mar-2010 sg        Created.
    19     */
    20    package ti.catalog.msp430;
    21
    22    /*!
    23     *  ======== MSP430F5529 ========
    24     *  MSP430F5529 CPU definition
    25     */
    26    metaonly module MSP430F5529 inherits IMSP430F55xx
    27    {
    28    instance:
    29        override config string   cpuCoreRevision = "1.0";
    30
    31        /*!
    32         *  ======== memMap ========
    33         *  The default memory map for this device
    34         */
    35        config xdc.platform.IPlatform.Memory memMap[string]  = [
    36
    37            ["RAM", {
    38                comment:    "Data RAM",
    39                name:       "RAM",
    40                base:       0x2400,
    41                len:        0x2000,
    42                space:      "code/data",
    43                access:     "RWX"
    44            }],
    45
    46            ["FLASH", {
    47                comment:    "Program FLASH",
    48                name:       "FLASH",
    49                base:       0x4400,
    50                len:        0xBB80,
    51                space:      "code",
    52                access:     "RWX"
    53            }],
    54
    55            ["FLASH2", {
    56                comment:    "Extended Program FLASH",
    57                name:       "FLASH2",
    58                base:       0x10000,
    59                len:        0x14400,
    60                space:      "code",
    61                access:     "RWX"
    62            }],
    63
    64        ];
    65    };


package ti.catalog.msp430.init
index URL

MSP430 boot time initialization support

This package contains a Boot module that supplies minimal boot time initialization code. This code optionally disables the watchdog timer (to ensure normal C initialization can complete before the watchdog resets the device) and configures the CPU clock.
XDCspec declarations sourced in ti/catalog/msp430/init/package.xdc
requires xdc.runtime;
package ti.catalog.msp430.init [1, 0, 0] {
    module Boot;
    // Boot time initialization code manager
}
generated on Thu, 08 Nov 2012 02:17:49 GMT


package ti.catalog.msp430.init

     1    requires xdc.runtime;
     2
     3    /*!
     4     *  ======== ti.catalog.msp430.init ========
     5     *  MSP430 boot time initialization support
     6     *
     7     *  This package contains a `{@link Boot}` module that supplies minimal
     8     *  boot time initialization code.  This code optionally disables the
     9     *  watchdog timer (to ensure normal C initialization can complete before
    10     *  the watchdog resets the device) and configures the CPU clock.
    11     */
    12    package ti.catalog.msp430.init[1,0,0] {
    13        module Boot;
    14    }


module ti.catalog.msp430.init.Boot

metaonly module ti.catalog.msp430.init.Boot
index URL

Boot time initialization code manager

  • XDCscript usage
  • Individual elements
The Boot module supports boot initialization for the MSP430 devices. A special boot init function is created based on the configuration settings for this module. This function is hooked into the xdc.runtime.Reset.fxns[] array and is called very early at boot time (prior to C runtime initialization). [ more ... ]
XDCscript usage meta-domain sourced in ti/catalog/msp430/init/Boot.xdc
var Boot = xdc.useModule('ti.catalog.msp430.init.Boot');
module-wide constants & types
    var obj = new Boot.ModuleView// ;
        obj.disableWatchdog = Bool ...
        obj.watchdogAddress = UInt ...
        obj.configureDCO = Bool ...
module-wide config parameters
     Boot.configureDCO// Configure DCO flag = Bool false;
     Boot.disableWatchdog// Watchdog disable flag = Bool true;
     Boot.rovViewInfo// = ViewInfo.Instance ViewInfo.create;
     Boot.watchdogAddress// Watchdog control register address = UInt 0x15c;
DETAILS
The Boot module supports boot initialization for the MSP430 devices. A special boot init function is created based on the configuration settings for this module. This function is hooked into the xdc.runtime.Reset.fxns[] array and is called very early at boot time (prior to C runtime initialization).
The code to support the boot module is placed in a separate section named ".text:bootCodeSection" to allow placement of this section in the linker .cmd file if necessary. This section is a subsection of the ".text" section so this code will be placed into the .text section unless explicitly placed, either through Program.sectMap or through a linker command file.
struct Boot.ModuleView
index URL
XDCscript usage meta-domain
var obj = new Boot.ModuleView;
    obj.disableWatchdog = Bool ...
    obj.watchdogAddress = UInt ...
    obj.configureDCO = Bool ...
config Boot.configureDCO // module-wide
index URL

Configure DCO flag

XDCscript usage meta-domain
Boot.configureDCO = Bool false;
DETAILS
The default is false. Set to true to initialize DCO at boot.
config Boot.disableWatchdog // module-wide
index URL

Watchdog disable flag

XDCscript usage meta-domain
Boot.disableWatchdog = Bool true;
DETAILS
The default is true. Set to false to not automatically disable the watchdog timer.
config Boot.rovViewInfo // module-wide
index URL
XDCscript usage meta-domain
Boot.rovViewInfo = ViewInfo.Instance ViewInfo.create;
config Boot.watchdogAddress // module-wide
index URL

Watchdog control register address

XDCscript usage meta-domain
Boot.watchdogAddress = UInt 0x15c;
DETAILS
The default (0x15c) is set for MSP430F54xx and MSP430F552x devices. Change for other devices.
generated on Thu, 08 Nov 2012 02:17:49 GMT


module ti.catalog.msp430.init.Boot

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== Boot.xdc ========
    14     */
    15
    16    package ti.catalog.msp430.init;
    17
    18    import xdc.rov.ViewInfo;
    19
    20    /*!
    21     *  ======== Boot ========
    22     *  Boot time initialization code manager
    23     *
    24     *  The Boot module supports boot initialization for the MSP430 devices.
    25     *  A special boot init function is created based on the configuration
    26     *  settings for this module.  This function is hooked into the
    27     *  `{@link xdc.runtime.Reset#fxns xdc.runtime.Reset.fxns[]}` array and
    28     *  is called very early at boot time (prior to C runtime initialization).
    29     *
    30     *  The code to support the boot module is placed in a separate section
    31     *  named `".text:bootCodeSection"` to allow placement of this section in
    32     *  the linker .cmd file if necessary. This section is a subsection of the
    33     *  `".text"` section so this code will be placed into the .text section
    34     *  unless explicitly placed, either through
    35     *  `{@link xdc.cfg.Program#sectMap Program.sectMap}` or through a linker
    36     *  command file.
    37     */
    38    @Template("./Boot.xdt")
    39    metaonly module Boot
    40    {
    41        metaonly struct ModuleView {
    42            Bool         disableWatchdog;
    43            UInt         watchdogAddress;
    44            Bool         configureDCO;
    45        }
    46
    47        @Facet
    48        metaonly config ViewInfo.Instance rovViewInfo =
    49            ViewInfo.create({
    50                viewMap: [
    51                [
    52                    'Module',
    53                    {
    54                        type: ViewInfo.MODULE,
    55                        viewInitFxn: 'viewInitModule',
    56                        structName: 'ModuleView'
    57                    }
    58                ],
    59                ]
    60            });
    61
    62        /*!
    63         *  ======== disableWatchdog ========
    64         *  Watchdog disable flag
    65         *
    66         *  The default is `true`.  Set to `false` to not automatically disable the
    67         *  watchdog timer.
    68         */
    69        config Bool disableWatchdog = true;
    70
    71        /*!
    72         *  ======== watchdogAddress ========
    73         *  Watchdog control register address
    74         *
    75         *  The default (0x15c) is set for MSP430F54xx and MSP430F552x devices.
    76         *  Change for other devices.
    77         */
    78        config UInt watchdogAddress = 0x15c;
    79
    80        /*!
    81         *  ======== configureDCO ========
    82         *  Configure DCO flag
    83         *
    84         *  The default is `false`.  Set to `true` to initialize DCO at boot.
    85         */
    86        config Bool configureDCO = false;
    87    };


package ti.catalog.msp430.peripherals.adc
index URL

MSP430 ADC peripherals

XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/package.xdc
package ti.catalog.msp430.peripherals.adc [1, 0, 0] {
    interface IADC;
    // MSP430 Analog to Digital Converter Interface
    module ADC10;
    // MSP430 10-bit Analog to Digital Converter
    module ADC10_B;
    // MSP430 10-bit Analog to Digital Converter
    module ADC12;
    // MSP430 12-bit Analog to Digital Converter
    module ADC12_B;
    // MSP430 12-bit Analog to Digital Converter
    module SD16_A;
    // MSP430F2xx Family SD16_A Module
}
generated on Thu, 08 Nov 2012 02:16:34 GMT


package ti.catalog.msp430.peripherals.adc

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ti.catalog.msp430.peripherals.adc ========
    14     *  MSP430 ADC peripherals
    15     */
    16    package ti.catalog.msp430.peripherals.adc [1, 0, 0] {
    17        module ADC10;
    18        interface IADC;
    19        module ADC12;
    20        module SD16_A;
    21        module ADC10_B;
    22        module ADC12_B;
    23    }


module ti.catalog.msp430.peripherals.adc.ADC10

metaonly module ti.catalog.msp430.peripherals.adc.ADC10
index URL

MSP430 10-bit Analog to Digital Converter

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/adc/ADC10.xdc
var ADC10 = xdc.useModule('ti.catalog.msp430.peripherals.adc.ADC10');
module-wide constants & types
    values of type ADC10.ADC10BUSY_t//
        const ADC10.ADC10BUSY_OFF// No operation is active;
        const ADC10.ADC10BUSY// A sequence, sample, or conversion is active;
    values of type ADC10.ADC10CT_t// Data transfer modes
        const ADC10.ADC10CT_OFF// Data is transferred is stopped after every conversion;
        const ADC10.ADC10CT// Data is transferred continuously after every conversion;
    values of type ADC10.ADC10DF_t// ADC10 output as 2's complement
        const ADC10.ADC10DF_OFF// ADC10 Data Format as binary;
        const ADC10.ADC10DF// ADC10 Data Format as 2's complement;
    values of type ADC10.ADC10DIV_t// ADC10 Clock Divider
        const ADC10.ADC10DIV_0// Divide by 1;
        const ADC10.ADC10DIV_1// Divide by 2;
        const ADC10.ADC10DIV_2// Divide by 3;
        const ADC10.ADC10DIV_3// Divide by 4;
        const ADC10.ADC10DIV_4// Divide by 5;
        const ADC10.ADC10DIV_5// Divide by 6;
        const ADC10.ADC10DIV_6// Divide by 7;
        const ADC10.ADC10DIV_7// Divide by 8;
    values of type ADC10.ADC10IE_t// ADC10 Interrupt Enable
        const ADC10.ADC10IE_OFF// Disable ADC interrupt;
        const ADC10.ADC10IE// Enable ADC interrupt;
    values of type ADC10.ADC10IFG_t// ADC10 Interrupt Flag
        const ADC10.ADC10IFG_OFF// Clear ADC interrupt flag;
        const ADC10.ADC10IFG// Set ADC interrupt flag;
    values of type ADC10.ADC10ON_t// ADC10 On/Enable
        const ADC10.ADC10ON_OFF// Switch Off ADC10;
        const ADC10.ADC10ON// Switch On ADC10;
    values of type ADC10.ADC10SC_t// ADC10 Start Conversion
        const ADC10.ADC10SC_OFF// No conversion;
        const ADC10.ADC10SC// Start ADC conversion manually;
    values of type ADC10.ADC10SHT_t// ADC10 Sample Hold Select 0
        const ADC10.ADC10SHT_0// 4 x ADC10CLKs;
        const ADC10.ADC10SHT_1// 8 x ADC10CLKs;
        const ADC10.ADC10SHT_2// 16 x ADC10CLKs;
        const ADC10.ADC10SHT_3// 64 x ADC10CLKs;
    values of type ADC10.ADC10SR_t// ADC10 Sampling Rate 0:200ksps / 1:50ksps
        const ADC10.ADC10SR_OFF// Reference buffer supports up to ~200 ksps;
        const ADC10.ADC10SR// Reference buffer supports up to ~50 ksps;
    values of type ADC10.ADC10SSEL_t// ADC10 Clock Source
        const ADC10.ADC10SSEL_0// ADC10OSC;
        const ADC10.ADC10SSEL_1// ACLK;
        const ADC10.ADC10SSEL_2// MCLK;
        const ADC10.ADC10SSEL_3// SMCLK;
    values of type ADC10.ADC10TB_t// Block data transfer modes
        const ADC10.ADC10TB_OFF// One-block transfer mode;
        const ADC10.ADC10TB// Two-block transfer mode;
    values of type ADC10.CONSEQ_t// Types of conversion
        const ADC10.CONSEQ_0// Single channel single conversion;
        const ADC10.CONSEQ_1// Sequence of channels;
        const ADC10.CONSEQ_2// Repeat single channel;
        const ADC10.CONSEQ_3// Repeat sequence of channels;
    values of type ADC10.ENC_t// ADC10 Enable Conversion
        const ADC10.ENC_OFF// Disable ADC;
        const ADC10.ENC// Enable ADC;
    values of type ADC10.INCH_t// ADC10 Channel Selection
        const ADC10.INCH_0// ADC Channel 0;
        const ADC10.INCH_1// ADC Channel 1;
        const ADC10.INCH_2// ADC Channel 2;
        const ADC10.INCH_3// ADC Channel 3;
        const ADC10.INCH_4// ADC Channel 4;
        const ADC10.INCH_5// ADC Channel 5;
        const ADC10.INCH_6// ADC Channel 6;
        const ADC10.INCH_7// ADC Channel 7;
        const ADC10.INCH_8// ADC VeRef+;
        const ADC10.INCH_9// ADC VeRef-;
        const ADC10.INCH_10// Temperature Sensor;
        const ADC10.INCH_11// ADC convert VCC;
        const ADC10.INCH_12// ADC Channel 12;
        const ADC10.INCH_13// ADC Channel 13;
        const ADC10.INCH_14// ADC Channel 14;
        const ADC10.INCH_15// ADC Channel 15;
    values of type ADC10.ISSH_t// ADC10 input signal inversion
        const ADC10.ISSH_OFF// Input signal not inverted;
        const ADC10.ISSH// Input signal inverted;
    values of type ADC10.MSC_t// ADC10 Multiple SampleConversion
        const ADC10.MSC_OFF// Disable multiple sample and conversion;
        const ADC10.MSC// Enable multiple sample and conversion;
    values of type ADC10.REF2_5V_t// ADC10 Ref 0:1.5V / 1:2.5V
        const ADC10.REF2_5V_OFF// Set reference voltage generator = 1.5V;
        const ADC10.REF2_5V// Set reference voltage generator = 2.5V;
    values of type ADC10.REFBURST_t// ADC10 Reference Burst Mode
        const ADC10.REFBURST_OFF// Reference buffer on continuously;
        const ADC10.REFBURST// Reference buffer on only during sample-and-conversion;
    values of type ADC10.REFON_t// ADC10 Reference on
        const ADC10.REFON_OFF// Disable ADC reference generator;
        const ADC10.REFON// Enable ADC reference generator;
    values of type ADC10.REFOUT_t// ADC10 Enable output of Ref
        const ADC10.REFOUT_OFF// Reference output off;
        const ADC10.REFOUT// Reference output on;
    values of type ADC10.SHS_t// ADC10 trigger
        const ADC10.SHS_0// ADC10SC;
        const ADC10.SHS_1// Timer_A OUT1;
        const ADC10.SHS_2// Timer_A OUT0;
        const ADC10.SHS_3// Timer_A OUT2;
    values of type ADC10.SREF_t// ADC10 Reference Select 0
        const ADC10.SREF_0// VR+ = VCC and VR- = VSS;
        const ADC10.SREF_1// VR+ = VREF+ and VR- = VSS;
        const ADC10.SREF_2// VR+ = VeREF+ and VR- = VSS;
        const ADC10.SREF_3// VR+ = Buffered VeREF+ and VR- = VSS;
        const ADC10.SREF_4// VR+ = VCC and VR- = VREF-/ VeREF-;
        const ADC10.SREF_5// VR+ = VREF+ and VR- = VREF-/ VeREF-;
        const ADC10.SREF_6// VR+ = VeREF+ and VR- = VREF-/ VeREF-;
        const ADC10.SREF_7// VR+ = Buffered VeREF+ and VR- = VREF-/ VeREF-;
    var obj = new ADC10.ADC10CTL0_t// ADC10 Control Register 0;
        obj.ADC10SC// Start conversion. Software-controlled sample-and-conversion start. ADC10SC and ENC may be set together with one instruction. ADC10SC is reset automatically. 0 No sample-and-conversion start 1 Start sample-and-conversion = ADC10.ADC10SC_t ...
        obj.ENC// Enable conversion 0 ADC10 disabled 1 ADC10 enabled = ADC10.ENC_t ...
        obj.ADC10IFG// ADC10 interrupt flag. This bit is set if ADC10MEM is loaded with a conversion result. It is automatically reset when the interrupt request is accepted, or it may be reset by software. When using the DTC this flag is set when a block of transfers is completed. 0 No interrupt pending 1 Interrupt pending = ADC10.ADC10IFG_t ...
        obj.ADC10IE// ADC10 interrupt enable 0 Interrupt disabled 1 Interrupt enabled = ADC10.ADC10IE_t ...
        obj.ADC10ON// ADC10 on 0 ADC10 off 1 ADC10 on = ADC10.ADC10ON_t ...
        obj.REFON// Reference generator on 0 Reference off 1 Reference on = ADC10.REFON_t ...
        obj.REF2_5V// Reference-generator voltage. REFON must also be set. 0 1.5 V 1 2.5 V = ADC10.REF2_5V_t ...
        obj.MSC// Multiple sample and conversion. Valid only for sequence or repeated modes. 0 The sampling requires a rising edge of the SHI signal to trigger each sample-and-conversion. 1 The first rising edge of the SHI signal triggers the sampling timer, but further sample-and-conversions are performed automatically as soon as the prior conversion is completed = ADC10.MSC_t ...
        obj.REFBURST// Reference burst. 0 Reference buffer on continuously 1 Reference buffer on only during sample-and-conversion = ADC10.REFBURST_t ...
        obj.REFOUT// Reference output 0 Reference output off 1 Reference output on, use internal reference voltage externally on pin VREF+ = ADC10.REFOUT_t ...
        obj.ADC10SR// ADC10 sampling rate. This bit selects the reference buffer drive capability for the maximum sampling rate. Setting ADC10SR reduces the current consumption of the reference buffer. 0 Reference buffer supports up to ~200 ksps 1 Reference buffer supports up to ~50 ksps = ADC10.ADC10SR_t ...
        obj.ADC10SHT// ADC10 sample-and-hold time 00 4 x ADC10CLKs 01 8 x ADC10CLKs 10 16 x ADC10CLKs 11 64 x ADC10CLKs = ADC10.ADC10SHT_t ...
        obj.SREF// Select reference 000 VR+ = VCC and VR- = VSS 001 VR+ = VREF+ and VR- = VSS 010 VR+ = VeREF+ and VR- = VSS 011 VR+ = Buffered VeREF+ and VR- = VSS 100 VR+ = VCC and VR- = VREF-/ VeREF- 101 VR+ = VREF+ and VR- = VREF-/ VeREF- 110 VR+ = VeREF+ and VR- = VREF-/ VeREF- 111 VR+ = Buffered VeREF+ and VR- = VREF-/ VeREF- = ADC10.SREF_t ...
    var obj = new ADC10.ADC10CTL1_t// ADC10 Control Register 1;
        obj.ADC10BUSY// ADC10 busy. This bit indicates an active sample or conversion operation 0 No operation is active. 1 A sequence, sample, or conversion is active = ADC10.ADC10BUSY_t ...
        obj.CONSEQ// Conversion sequence mode select 00 Single-channel-single-conversion 01 Sequence-of-channels 10 Repeat-single-channel 11 Repeat-sequence-of-channels = ADC10.CONSEQ_t ...
        obj.ADC10SSEL// ADC10 clock source select 00 ADC10OSC 01 ACLK 10 MCLK 11 SMCLK = ADC10.ADC10SSEL_t ...
        obj.ADC10DIV// ADC10 clock divider 000 /1 001 /2 010 /3 011 /4 100 /5 101 /6 110 /7 111 /8 = ADC10.ADC10DIV_t ...
        obj.ISSH// Invert signal sample-and-hold 0 The sample-input signal is not inverted. 1 The sample-input signal is inverted = ADC10.ISSH_t ...
        obj.ADC10DF// ADC10 data format 0 Straight binary 1 2s complement = ADC10.ADC10DF_t ...
        obj.SHS// Sample-and-hold source select 00 ADC10SC bit 01 Timer_A.OUT1 10 Timer_A.OUT0 11 Timer_A.OUT2 (Timer_A.OUT1 on MSP430x20x2 devices) = ADC10.SHS_t ...
        obj.INCH// Input channel select. These bits select the channel for a single-conversion or the highest channel for a sequence of conversions. 0000 A0 0001 A1 0010 A2 0011 A3 0100 A4 0101 A5 0110 A6 0111 A7 1000 VeREF+ 1001 VREF-/VeREF- 1010 Temperature sensor 1011 (VCC � VSS) / 2 1100 A12 1101 A13 1110 A14 1111 A15 = ADC10.INCH_t ...
    var obj = new ADC10.ADC10DTC0_t// Data Transfer Control Register 0;
        obj.ADC10TB// ADC10 two-block mode 0 One-block transfer mode 1 Two-block transfer mode = ADC10.ADC10TB_t ...
        obj.ADC10CT// ADC10 continuous transfer 0 Data transfer stops when one block (one-block mode) or two blocks (two-block mode) have completed. 1 Data is transferred continuously. DTC operation is stopped only if ADC10CT cleared, or ADC10SA is written to = ADC10.ADC10CT_t ...
    var obj = new ADC10.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new ADC10.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     ADC10.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     ADC10.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new ADC10.Params// Instance config-params object;
        params.ADC10AE0// Analog (Input) Enable Control Register 0 = Bits16 0;
        params.ADC10AE1// Analog (Input) Enable Control Register 1 = Bits16 0;
        params.ADC10CTL0// Control Register 0 = ADC10.ADC10CTL0_t {
            ADC10SC: ADC10.ADC10SC_OFF,
            ENC: ADC10.ENC_OFF,
            ADC10IFG: ADC10.ADC10IFG_OFF,
            ADC10IE: ADC10.ADC10IE_OFF,
            ADC10ON: ADC10.ADC10ON_OFF,
            REFON: ADC10.REFON_OFF,
            REF2_5V: ADC10.REF2_5V_OFF,
            MSC: ADC10.MSC_OFF,
            REFBURST: ADC10.REFBURST_OFF,
            REFOUT: ADC10.REFOUT_OFF,
            ADC10SR: ADC10.ADC10SR_OFF,
            ADC10SHT: ADC10.ADC10SHT_0,
            SREF: ADC10.SREF_0
        };
        params.ADC10CTL1// Control Register 1 = ADC10.ADC10CTL1_t {
            ADC10BUSY: ADC10.ADC10BUSY_OFF,
            CONSEQ: ADC10.CONSEQ_0,
            ADC10SSEL: ADC10.ADC10SSEL_0,
            ADC10DIV: ADC10.ADC10DIV_0,
            ISSH: ADC10.ISSH_OFF,
            ADC10DF: ADC10.ADC10DF_OFF,
            SHS: ADC10.SHS_0,
            INCH: ADC10.INCH_0
        };
        params.ADC10DTC0// Data Transfer Control Register 0 = ADC10.ADC10DTC0_t {
            ADC10TB: ADC10.ADC10TB_OFF,
            ADC10CT: ADC10.ADC10CT_OFF
        };
        params.ADC10DTC1// Data Transfer Control Register 1 = Bits8 0;
        params.ADC10SA// Data Transfer Start Address = Bits16* 0x200;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = ADC10.ForceSetDefaultRegister_t[] [
            {
                register: "ADC10CTL0",
                regForceSet: false
            },
            {
                register: "ADC10CTL1",
                regForceSet: false
            },
            {
                register: "ADC10AE0",
                regForceSet: false
            },
            {
                register: "ADC10AE1",
                regForceSet: false
            },
            {
                register: "ADC10DTC0",
                regForceSet: false
            },
            {
                register: "ADC10DTC1",
                regForceSet: false
            },
            {
                register: "ADC10SA",
                regForceSet: false
            }
        ];
        params.interruptSource// ADC10 has 1 interrupt enable = ADC10.regIntVect_t[1] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = ADC10.create// Create an instance-object(IClock.Instance clock, params);
enum ADC10.ADC10BUSY_t
index URL
XDCscript usage meta-domain
values of type ADC10.ADC10BUSY_t
    const ADC10.ADC10BUSY_OFF;
    // No operation is active
    const ADC10.ADC10BUSY;
    // A sequence, sample, or conversion is active
enum ADC10.ADC10CT_t
index URL

Data transfer modes

XDCscript usage meta-domain
values of type ADC10.ADC10CT_t
    const ADC10.ADC10CT_OFF;
    // Data is transferred is stopped after every conversion
    const ADC10.ADC10CT;
    // Data is transferred continuously after every conversion
SEE
ADC10DTC0
enum ADC10.ADC10DF_t
index URL

ADC10 output as 2's complement

XDCscript usage meta-domain
values of type ADC10.ADC10DF_t
    const ADC10.ADC10DF_OFF;
    // ADC10 Data Format as binary
    const ADC10.ADC10DF;
    // ADC10 Data Format as 2's complement
enum ADC10.ADC10DIV_t
index URL

ADC10 Clock Divider

XDCscript usage meta-domain
values of type ADC10.ADC10DIV_t
    const ADC10.ADC10DIV_0;
    // Divide by 1
    const ADC10.ADC10DIV_1;
    // Divide by 2
    const ADC10.ADC10DIV_2;
    // Divide by 3
    const ADC10.ADC10DIV_3;
    // Divide by 4
    const ADC10.ADC10DIV_4;
    // Divide by 5
    const ADC10.ADC10DIV_5;
    // Divide by 6
    const ADC10.ADC10DIV_6;
    // Divide by 7
    const ADC10.ADC10DIV_7;
    // Divide by 8
enum ADC10.ADC10IE_t
index URL

ADC10 Interrupt Enable

XDCscript usage meta-domain
values of type ADC10.ADC10IE_t
    const ADC10.ADC10IE_OFF;
    // Disable ADC interrupt
    const ADC10.ADC10IE;
    // Enable ADC interrupt
enum ADC10.ADC10IFG_t
index URL

ADC10 Interrupt Flag

XDCscript usage meta-domain
values of type ADC10.ADC10IFG_t
    const ADC10.ADC10IFG_OFF;
    // Clear ADC interrupt flag
    const ADC10.ADC10IFG;
    // Set ADC interrupt flag
enum ADC10.ADC10ON_t
index URL

ADC10 On/Enable

XDCscript usage meta-domain
values of type ADC10.ADC10ON_t
    const ADC10.ADC10ON_OFF;
    // Switch Off ADC10
    const ADC10.ADC10ON;
    // Switch On ADC10
enum ADC10.ADC10SC_t
index URL

ADC10 Start Conversion

XDCscript usage meta-domain
values of type ADC10.ADC10SC_t
    const ADC10.ADC10SC_OFF;
    // No conversion
    const ADC10.ADC10SC;
    // Start ADC conversion manually
enum ADC10.ADC10SHT_t
index URL

ADC10 Sample Hold Select 0

XDCscript usage meta-domain
values of type ADC10.ADC10SHT_t
    const ADC10.ADC10SHT_0;
    // 4 x ADC10CLKs
    const ADC10.ADC10SHT_1;
    // 8 x ADC10CLKs
    const ADC10.ADC10SHT_2;
    // 16 x ADC10CLKs
    const ADC10.ADC10SHT_3;
    // 64 x ADC10CLKs
enum ADC10.ADC10SR_t
index URL

ADC10 Sampling Rate 0:200ksps / 1:50ksps

XDCscript usage meta-domain
values of type ADC10.ADC10SR_t
    const ADC10.ADC10SR_OFF;
    // Reference buffer supports up to ~200 ksps
    const ADC10.ADC10SR;
    // Reference buffer supports up to ~50 ksps
enum ADC10.ADC10SSEL_t
index URL

ADC10 Clock Source

XDCscript usage meta-domain
values of type ADC10.ADC10SSEL_t
    const ADC10.ADC10SSEL_0;
    // ADC10OSC
    const ADC10.ADC10SSEL_1;
    // ACLK
    const ADC10.ADC10SSEL_2;
    // MCLK
    const ADC10.ADC10SSEL_3;
    // SMCLK
enum ADC10.ADC10TB_t
index URL

Block data transfer modes

XDCscript usage meta-domain
values of type ADC10.ADC10TB_t
    const ADC10.ADC10TB_OFF;
    // One-block transfer mode
    const ADC10.ADC10TB;
    // Two-block transfer mode
SEE
ADC10DTC0
enum ADC10.CONSEQ_t
index URL

Types of conversion

XDCscript usage meta-domain
values of type ADC10.CONSEQ_t
    const ADC10.CONSEQ_0;
    // Single channel single conversion
    const ADC10.CONSEQ_1;
    // Sequence of channels
    const ADC10.CONSEQ_2;
    // Repeat single channel
    const ADC10.CONSEQ_3;
    // Repeat sequence of channels
enum ADC10.ENC_t
index URL

ADC10 Enable Conversion

XDCscript usage meta-domain
values of type ADC10.ENC_t
    const ADC10.ENC_OFF;
    // Disable ADC
    const ADC10.ENC;
    // Enable ADC
enum ADC10.INCH_t
index URL

ADC10 Channel Selection

XDCscript usage meta-domain
values of type ADC10.INCH_t
    const ADC10.INCH_0;
    // ADC Channel 0
    const ADC10.INCH_1;
    // ADC Channel 1
    const ADC10.INCH_2;
    // ADC Channel 2
    const ADC10.INCH_3;
    // ADC Channel 3
    const ADC10.INCH_4;
    // ADC Channel 4
    const ADC10.INCH_5;
    // ADC Channel 5
    const ADC10.INCH_6;
    // ADC Channel 6
    const ADC10.INCH_7;
    // ADC Channel 7
    const ADC10.INCH_8;
    // ADC VeRef+
    const ADC10.INCH_9;
    // ADC VeRef-
    const ADC10.INCH_10;
    // Temperature Sensor
    const ADC10.INCH_11;
    // ADC convert VCC
    const ADC10.INCH_12;
    // ADC Channel 12
    const ADC10.INCH_13;
    // ADC Channel 13
    const ADC10.INCH_14;
    // ADC Channel 14
    const ADC10.INCH_15;
    // ADC Channel 15
enum ADC10.ISSH_t
index URL

ADC10 input signal inversion

XDCscript usage meta-domain
values of type ADC10.ISSH_t
    const ADC10.ISSH_OFF;
    // Input signal not inverted
    const ADC10.ISSH;
    // Input signal inverted
enum ADC10.MSC_t
index URL

ADC10 Multiple SampleConversion

XDCscript usage meta-domain
values of type ADC10.MSC_t
    const ADC10.MSC_OFF;
    // Disable multiple sample and conversion
    const ADC10.MSC;
    // Enable multiple sample and conversion
enum ADC10.REF2_5V_t
index URL

ADC10 Ref 0:1.5V / 1:2.5V

XDCscript usage meta-domain
values of type ADC10.REF2_5V_t
    const ADC10.REF2_5V_OFF;
    // Set reference voltage generator = 1.5V
    const ADC10.REF2_5V;
    // Set reference voltage generator = 2.5V
enum ADC10.REFBURST_t
index URL

ADC10 Reference Burst Mode

XDCscript usage meta-domain
values of type ADC10.REFBURST_t
    const ADC10.REFBURST_OFF;
    // Reference buffer on continuously
    const ADC10.REFBURST;
    // Reference buffer on only during sample-and-conversion
enum ADC10.REFON_t
index URL

ADC10 Reference on

XDCscript usage meta-domain
values of type ADC10.REFON_t
    const ADC10.REFON_OFF;
    // Disable ADC reference generator
    const ADC10.REFON;
    // Enable ADC reference generator
enum ADC10.REFOUT_t
index URL

ADC10 Enable output of Ref

XDCscript usage meta-domain
values of type ADC10.REFOUT_t
    const ADC10.REFOUT_OFF;
    // Reference output off
    const ADC10.REFOUT;
    // Reference output on
enum ADC10.SHS_t
index URL

ADC10 trigger

XDCscript usage meta-domain
values of type ADC10.SHS_t
    const ADC10.SHS_0;
    // ADC10SC
    const ADC10.SHS_1;
    // Timer_A OUT1
    const ADC10.SHS_2;
    // Timer_A OUT0
    const ADC10.SHS_3;
    // Timer_A OUT2
enum ADC10.SREF_t
index URL

ADC10 Reference Select 0

XDCscript usage meta-domain
values of type ADC10.SREF_t
    const ADC10.SREF_0;
    // VR+ = VCC and VR- = VSS
    const ADC10.SREF_1;
    // VR+ = VREF+ and VR- = VSS
    const ADC10.SREF_2;
    // VR+ = VeREF+ and VR- = VSS
    const ADC10.SREF_3;
    // VR+ = Buffered VeREF+ and VR- = VSS
    const ADC10.SREF_4;
    // VR+ = VCC and VR- = VREF-/ VeREF-
    const ADC10.SREF_5;
    // VR+ = VREF+ and VR- = VREF-/ VeREF-
    const ADC10.SREF_6;
    // VR+ = VeREF+ and VR- = VREF-/ VeREF-
    const ADC10.SREF_7;
    // VR+ = Buffered VeREF+ and VR- = VREF-/ VeREF-
struct ADC10.ADC10CTL0_t
index URL

ADC10 Control Register 0

XDCscript usage meta-domain
var obj = new ADC10.ADC10CTL0_t;
    obj.ADC10SC = ADC10.ADC10SC_t ...
    // Start conversion. Software-controlled sample-and-conversion start. ADC10SC and ENC may be set together with one instruction. ADC10SC is reset automatically. 0 No sample-and-conversion start 1 Start sample-and-conversion
    obj.ENC = ADC10.ENC_t ...
    // Enable conversion 0 ADC10 disabled 1 ADC10 enabled
    obj.ADC10IFG = ADC10.ADC10IFG_t ...
    // ADC10 interrupt flag. This bit is set if ADC10MEM is loaded with a conversion result. It is automatically reset when the interrupt request is accepted, or it may be reset by software. When using the DTC this flag is set when a block of transfers is completed. 0 No interrupt pending 1 Interrupt pending
    obj.ADC10IE = ADC10.ADC10IE_t ...
    // ADC10 interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC10ON = ADC10.ADC10ON_t ...
    // ADC10 on 0 ADC10 off 1 ADC10 on
    obj.REFON = ADC10.REFON_t ...
    // Reference generator on 0 Reference off 1 Reference on
    obj.REF2_5V = ADC10.REF2_5V_t ...
    // Reference-generator voltage. REFON must also be set. 0 1.5 V 1 2.5 V
    obj.MSC = ADC10.MSC_t ...
    // Multiple sample and conversion. Valid only for sequence or repeated modes. 0 The sampling requires a rising edge of the SHI signal to trigger each sample-and-conversion. 1 The first rising edge of the SHI signal triggers the sampling timer, but further sample-and-conversions are performed automatically as soon as the prior conversion is completed
    obj.REFBURST = ADC10.REFBURST_t ...
    // Reference burst. 0 Reference buffer on continuously 1 Reference buffer on only during sample-and-conversion
    obj.REFOUT = ADC10.REFOUT_t ...
    // Reference output 0 Reference output off 1 Reference output on, use internal reference voltage externally on pin VREF+
    obj.ADC10SR = ADC10.ADC10SR_t ...
    // ADC10 sampling rate. This bit selects the reference buffer drive capability for the maximum sampling rate. Setting ADC10SR reduces the current consumption of the reference buffer. 0 Reference buffer supports up to ~200 ksps 1 Reference buffer supports up to ~50 ksps
    obj.ADC10SHT = ADC10.ADC10SHT_t ...
    // ADC10 sample-and-hold time 00 4 x ADC10CLKs 01 8 x ADC10CLKs 10 16 x ADC10CLKs 11 64 x ADC10CLKs
    obj.SREF = ADC10.SREF_t ...
    // Select reference 000 VR+ = VCC and VR- = VSS 001 VR+ = VREF+ and VR- = VSS 010 VR+ = VeREF+ and VR- = VSS 011 VR+ = Buffered VeREF+ and VR- = VSS 100 VR+ = VCC and VR- = VREF-/ VeREF- 101 VR+ = VREF+ and VR- = VREF-/ VeREF- 110 VR+ = VeREF+ and VR- = VREF-/ VeREF- 111 VR+ = Buffered VeREF+ and VR- = VREF-/ VeREF-
SEE
ADC10CTL0
struct ADC10.ADC10CTL1_t
index URL

ADC10 Control Register 1

XDCscript usage meta-domain
var obj = new ADC10.ADC10CTL1_t;
    obj.ADC10BUSY = ADC10.ADC10BUSY_t ...
    // ADC10 busy. This bit indicates an active sample or conversion operation 0 No operation is active. 1 A sequence, sample, or conversion is active
    obj.CONSEQ = ADC10.CONSEQ_t ...
    // Conversion sequence mode select 00 Single-channel-single-conversion 01 Sequence-of-channels 10 Repeat-single-channel 11 Repeat-sequence-of-channels
    obj.ADC10SSEL = ADC10.ADC10SSEL_t ...
    // ADC10 clock source select 00 ADC10OSC 01 ACLK 10 MCLK 11 SMCLK
    obj.ADC10DIV = ADC10.ADC10DIV_t ...
    // ADC10 clock divider 000 /1 001 /2 010 /3 011 /4 100 /5 101 /6 110 /7 111 /8
    obj.ISSH = ADC10.ISSH_t ...
    // Invert signal sample-and-hold 0 The sample-input signal is not inverted. 1 The sample-input signal is inverted
    obj.ADC10DF = ADC10.ADC10DF_t ...
    // ADC10 data format 0 Straight binary 1 2s complement
    obj.SHS = ADC10.SHS_t ...
    // Sample-and-hold source select 00 ADC10SC bit 01 Timer_A.OUT1 10 Timer_A.OUT0 11 Timer_A.OUT2 (Timer_A.OUT1 on MSP430x20x2 devices)
    obj.INCH = ADC10.INCH_t ...
    // Input channel select. These bits select the channel for a single-conversion or the highest channel for a sequence of conversions. 0000 A0 0001 A1 0010 A2 0011 A3 0100 A4 0101 A5 0110 A6 0111 A7 1000 VeREF+ 1001 VREF-/VeREF- 1010 Temperature sensor 1011 (VCC � VSS) / 2 1100 A12 1101 A13 1110 A14 1111 A15
SEE
ADC10CTL1
struct ADC10.ADC10DTC0_t
index URL

Data Transfer Control Register 0

XDCscript usage meta-domain
var obj = new ADC10.ADC10DTC0_t;
    obj.ADC10TB = ADC10.ADC10TB_t ...
    // ADC10 two-block mode 0 One-block transfer mode 1 Two-block transfer mode
    obj.ADC10CT = ADC10.ADC10CT_t ...
    // ADC10 continuous transfer 0 Data transfer stops when one block (one-block mode) or two blocks (two-block mode) have completed. 1 Data is transferred continuously. DTC operation is stopped only if ADC10CT cleared, or ADC10SA is written to
SEE
ADC10DTC0
struct ADC10.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new ADC10.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct ADC10.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new ADC10.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
ADC10.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
ADC10.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
ADC10.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
ADC10.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new ADC10.Params;
// Instance config-params object
    params.ADC10AE0 = Bits16 0;
    // Analog (Input) Enable Control Register 0
    params.ADC10AE1 = Bits16 0;
    // Analog (Input) Enable Control Register 1
    params.ADC10CTL0 = ADC10.ADC10CTL0_t {
    // Control Register 0
        ADC10SC: ADC10.ADC10SC_OFF,
        ENC: ADC10.ENC_OFF,
        ADC10IFG: ADC10.ADC10IFG_OFF,
        ADC10IE: ADC10.ADC10IE_OFF,
        ADC10ON: ADC10.ADC10ON_OFF,
        REFON: ADC10.REFON_OFF,
        REF2_5V: ADC10.REF2_5V_OFF,
        MSC: ADC10.MSC_OFF,
        REFBURST: ADC10.REFBURST_OFF,
        REFOUT: ADC10.REFOUT_OFF,
        ADC10SR: ADC10.ADC10SR_OFF,
        ADC10SHT: ADC10.ADC10SHT_0,
        SREF: ADC10.SREF_0
    };
    params.ADC10CTL1 = ADC10.ADC10CTL1_t {
    // Control Register 1
        ADC10BUSY: ADC10.ADC10BUSY_OFF,
        CONSEQ: ADC10.CONSEQ_0,
        ADC10SSEL: ADC10.ADC10SSEL_0,
        ADC10DIV: ADC10.ADC10DIV_0,
        ISSH: ADC10.ISSH_OFF,
        ADC10DF: ADC10.ADC10DF_OFF,
        SHS: ADC10.SHS_0,
        INCH: ADC10.INCH_0
    };
    params.ADC10DTC0 = ADC10.ADC10DTC0_t {
    // Data Transfer Control Register 0
        ADC10TB: ADC10.ADC10TB_OFF,
        ADC10CT: ADC10.ADC10CT_OFF
    };
    params.ADC10DTC1 = Bits8 0;
    // Data Transfer Control Register 1
    params.ADC10SA = Bits16* 0x200;
    // Data Transfer Start Address
    params.forceSetDefaultRegister = ADC10.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "ADC10CTL0",
            regForceSet: false
        },
        {
            register: "ADC10CTL1",
            regForceSet: false
        },
        {
            register: "ADC10AE0",
            regForceSet: false
        },
        {
            register: "ADC10AE1",
            regForceSet: false
        },
        {
            register: "ADC10DTC0",
            regForceSet: false
        },
        {
            register: "ADC10DTC1",
            regForceSet: false
        },
        {
            register: "ADC10SA",
            regForceSet: false
        }
    ];
    params.interruptSource = ADC10.regIntVect_t[1] undefined;
    // ADC10 has 1 interrupt enable
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config ADC10.ADC10AE0 // instance
index URL

Analog (Input) Enable Control Register 0

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.ADC10AE0 = Bits16 0;
DETAILS
Bit n enables the corresponding pin for analog input. Bit 0 corresponds to A0, bit 1 corresponds to A1, ...
config ADC10.ADC10AE1 // instance
index URL

Analog (Input) Enable Control Register 1

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.ADC10AE1 = Bits16 0;
DETAILS
Bits 0, 1, 2, and 3 are reserved.
Starting with bit 4, bit n enables pin n+8 for analog input: Bit 4 corresponds to A12, bit 5 corresponds to A13, ...
config ADC10.ADC10CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.ADC10CTL0 = ADC10.ADC10CTL0_t {
    ADC10SC: ADC10.ADC10SC_OFF,
    ENC: ADC10.ENC_OFF,
    ADC10IFG: ADC10.ADC10IFG_OFF,
    ADC10IE: ADC10.ADC10IE_OFF,
    ADC10ON: ADC10.ADC10ON_OFF,
    REFON: ADC10.REFON_OFF,
    REF2_5V: ADC10.REF2_5V_OFF,
    MSC: ADC10.MSC_OFF,
    REFBURST: ADC10.REFBURST_OFF,
    REFOUT: ADC10.REFOUT_OFF,
    ADC10SR: ADC10.ADC10SR_OFF,
    ADC10SHT: ADC10.ADC10SHT_0,
    SREF: ADC10.SREF_0
};
config ADC10.ADC10CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.ADC10CTL1 = ADC10.ADC10CTL1_t {
    ADC10BUSY: ADC10.ADC10BUSY_OFF,
    CONSEQ: ADC10.CONSEQ_0,
    ADC10SSEL: ADC10.ADC10SSEL_0,
    ADC10DIV: ADC10.ADC10DIV_0,
    ISSH: ADC10.ISSH_OFF,
    ADC10DF: ADC10.ADC10DF_OFF,
    SHS: ADC10.SHS_0,
    INCH: ADC10.INCH_0
};
config ADC10.ADC10DTC0 // instance
index URL

Data Transfer Control Register 0

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.ADC10DTC0 = ADC10.ADC10DTC0_t {
    ADC10TB: ADC10.ADC10TB_OFF,
    ADC10CT: ADC10.ADC10CT_OFF
};
config ADC10.ADC10DTC1 // instance
index URL

Data Transfer Control Register 1

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.ADC10DTC1 = Bits8 0;
DETAILS
This register defines the number of transfers in each block: 0 implies DTC is disabled, 1 through 0xff are valid transfer counts.
config ADC10.ADC10SA // instance
index URL

Data Transfer Start Address

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.ADC10SA = Bits16* 0x200;
config ADC10.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new ADC10.Params;
...
const params.forceSetDefaultRegister = ADC10.ForceSetDefaultRegister_t[] [
    {
        register: "ADC10CTL0",
        regForceSet: false
    },
    {
        register: "ADC10CTL1",
        regForceSet: false
    },
    {
        register: "ADC10AE0",
        regForceSet: false
    },
    {
        register: "ADC10AE1",
        regForceSet: false
    },
    {
        register: "ADC10DTC0",
        regForceSet: false
    },
    {
        register: "ADC10DTC1",
        regForceSet: false
    },
    {
        register: "ADC10SA",
        regForceSet: false
    }
];
config ADC10.interruptSource // instance
index URL

ADC10 has 1 interrupt enable

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.interruptSource = ADC10.regIntVect_t[1] undefined;
config ADC10.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config ADC10.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new ADC10.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new ADC10.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = ADC10.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:33 GMT


module ti.catalog.msp430.peripherals.adc.ADC10

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ADC10 ========
    14     *  MSP430 10-bit Analog to Digital Converter
    15     */
    16    metaonly module ADC10 inherits IADC {
    17
    18        /*! ADC10 Start Conversion */
    19        enum ADC10SC_t {
    20            ADC10SC_OFF     = 0x000,        /*! No conversion. */
    21            ADC10SC         = 0x001         /*! Start ADC conversion manually. */
    22        };
    23
    24        /*! ADC10 Enable Conversion */
    25        enum ENC_t {
    26            ENC_OFF         = 0x000,        /*! Disable ADC. */
    27            ENC             = 0x002         /*! Enable ADC. */
    28        };
    29
    30        /*! ADC10 Interrupt Flag */
    31        enum ADC10IFG_t {
    32            ADC10IFG_OFF    = 0x000,        /*! Clear ADC interrupt flag. */
    33            ADC10IFG        = 0x004         /*! Set ADC interrupt flag. */
    34        };
    35
    36        /*! ADC10 Interrupt Enable */
    37        enum ADC10IE_t {
    38            ADC10IE_OFF = 0x000,            /*! Disable ADC interrupt. */
    39            ADC10IE     = 0x008             /*! Enable ADC interrupt. */
    40        };
    41
    42        /*! ADC10 On/Enable */
    43        enum ADC10ON_t {
    44            ADC10ON_OFF = 0x000,            /*! Switch Off ADC10. */
    45            ADC10ON     = 0x010             /*! Switch On ADC10. */
    46        };
    47
    48        /*! ADC10 Reference on */
    49        enum REFON_t {
    50            REFON_OFF   = 0x000,            /*! Disable ADC reference generator. */
    51            REFON       = 0x020             /*! Enable ADC reference generator. */
    52        };
    53
    54        /*! ADC10 Ref 0:1.5V / 1:2.5V */
    55        enum REF2_5V_t {
    56            REF2_5V_OFF = 0x000,            /*! Set reference voltage generator = 1.5V. */
    57            REF2_5V     = 0x040             /*! Set reference voltage generator = 2.5V. */
    58        };
    59
    60        /*! ADC10 Multiple SampleConversion */
    61        enum MSC_t {
    62            MSC_OFF = 0x000,                /*! Disable multiple sample and conversion. */
    63            MSC     = 0x080                 /*! Enable multiple sample and conversion. */
    64        };
    65
    66        /*! ADC10 Reference Burst Mode */
    67        enum REFBURST_t {
    68            REFBURST_OFF = 0x000,           /*! Reference buffer on continuously. */
    69            REFBURST     = 0x100            /*! Reference buffer on only during sample-and-conversion. */
    70        };
    71
    72        /*! ADC10 Enable output of Ref. */
    73        enum REFOUT_t {
    74            REFOUT_OFF      = 0x000,        /*! Reference output off. */
    75            REFOUT          = 0x200         /*! Reference output on. */
    76        };
    77
    78        /*! ADC10 Sampling Rate 0:200ksps / 1:50ksps */
    79        enum ADC10SR_t {
    80            ADC10SR_OFF = 0x000,            /*! Reference buffer supports up to ~200 ksps. */
    81            ADC10SR     = 0x400             /*! Reference buffer supports up to ~50 ksps. */
    82        };
    83
    84        /*! ADC10 Sample Hold Select 0 */
    85        enum ADC10SHT_t {
    86            ADC10SHT_0      = (0*0x800u),   /*! 4 x ADC10CLKs. */
    87            ADC10SHT_1      = (1*0x800u),   /*! 8 x ADC10CLKs. */
    88            ADC10SHT_2      = (2*0x800u),   /*! 16 x ADC10CLKs. */
    89            ADC10SHT_3      = 3*0x800u      /*! 64 x ADC10CLKs. */
    90        };
    91
    92        /*! ADC10 Reference Select 0 */
    93        enum SREF_t {
    94            SREF_0 = (0*0x2000u),           /*! VR+ = VCC and VR- = VSS. */
    95            SREF_1 = (1*0x2000u),           /*! VR+ = VREF+ and VR- = VSS. */
    96            SREF_2 = (2*0x2000u),           /*! VR+ = VeREF+ and VR- = VSS. */
    97            SREF_3 = (3*0x2000u),           /*! VR+ = Buffered VeREF+ and VR- = VSS. */
    98            SREF_4 = (4*0x2000u),           /*! VR+ = VCC and VR- = VREF-/ VeREF-. */
    99            SREF_5 = (5*0x2000u),           /*! VR+ = VREF+ and VR- = VREF-/ VeREF-. */
   100            SREF_6 = (6*0x2000u),           /*! VR+ = VeREF+ and VR- = VREF-/ VeREF-. */
   101            SREF_7 = 7*0x2000u              /*! VR+ = Buffered VeREF+ and VR- = VREF-/ VeREF-. */
   102        };
   103
   104        enum ADC10BUSY_t {
   105            ADC10BUSY_OFF = 0x0000,         /*! No operation is active. */
   106            ADC10BUSY     = 0x0001          /*! A sequence, sample, or conversion is active. */
   107        };
   108
   109        /*! Types of conversion */
   110        enum CONSEQ_t {
   111            CONSEQ_0 = (0*2u),              /*! Single channel single conversion. */
   112            CONSEQ_1 = (1*2u),              /*! Sequence of channels. */
   113            CONSEQ_2 = (2*2u),              /*! Repeat single channel. */
   114            CONSEQ_3 = 3*2u                 /*! Repeat sequence of channels. */
   115        };
   116
   117        /*! ADC10 Clock Source */
   118        enum ADC10SSEL_t {
   119            ADC10SSEL_0 = (0*8u),           /*! ADC10OSC. */
   120            ADC10SSEL_1 = (1*8u),           /*! ACLK. */
   121            ADC10SSEL_2 = (2*8u),           /*! MCLK.*/
   122            ADC10SSEL_3 = 3*8u              /*! SMCLK. */
   123        };
   124
   125        /*! ADC10 Clock Divider */
   126        enum ADC10DIV_t {
   127            ADC10DIV_0 = (0*0x20u),         /*! Divide by 1. */
   128            ADC10DIV_1 = (1*0x20u),         /*! Divide by 2. */
   129            ADC10DIV_2 = (2*0x20u),         /*! Divide by 3. */
   130            ADC10DIV_3 = (3*0x20u),         /*! Divide by 4. */
   131            ADC10DIV_4 = (4*0x20u),         /*! Divide by 5. */
   132            ADC10DIV_5 = (5*0x20u),         /*! Divide by 6. */
   133            ADC10DIV_6 = (6*0x20u),         /*! Divide by 7. */
   134            ADC10DIV_7 = 7*0x20u            /*! Divide by 8. */
   135        };
   136
   137        /*! ADC10 input signal inversion */
   138        enum ISSH_t {
   139            ISSH_OFF = 0x0000,              /*! Input signal not inverted. */
   140            ISSH     = 0x0100               /*! Input signal inverted. */
   141        };
   142
   143        /*! ADC10 output as 2's complement */
   144        enum ADC10DF_t {
   145            ADC10DF_OFF = 0x0000,           /*! ADC10 Data Format as binary. */
   146            ADC10DF     = 0x0200            /*! ADC10 Data Format as 2's complement */
   147        };
   148
   149        /*! ADC10 trigger */
   150        enum SHS_t {
   151            SHS_0 = (0*0x400u),             /*! ADC10SC. */
   152            SHS_1 = (1*0x400u),             /*! Timer_A OUT1. */
   153            SHS_2 = (2*0x400u),             /*! Timer_A OUT0. */
   154            SHS_3 = 3*0x400u                /*! Timer_A OUT2. */
   155        };
   156
   157        /*! ADC10 Channel Selection */
   158        enum INCH_t {
   159            INCH_0 = (0*0x1000u),           /*! ADC Channel 0. */
   160            INCH_1 = (1*0x1000u),           /*! ADC Channel 1. */
   161            INCH_2 = (2*0x1000u),           /*! ADC Channel 2. */
   162            INCH_3 = (3*0x1000u),           /*! ADC Channel 3. */
   163            INCH_4 = (4*0x1000u),           /*! ADC Channel 4. */
   164            INCH_5 = (5*0x1000u),           /*! ADC Channel 5. */
   165            INCH_6 = (6*0x1000u),           /*! ADC Channel 6. */
   166            INCH_7 = (7*0x1000u),           /*! ADC Channel 7. */
   167            INCH_8 = (8*0x1000u),           /*! ADC VeRef+. */
   168            INCH_9 = (9*0x1000u),           /*! ADC VeRef-. */
   169            INCH_10 = (10*0x1000u),         /*! Temperature Sensor. */
   170            INCH_11 = (11*0x1000u),         /*! ADC convert VCC. */
   171            INCH_12 = (12*0x1000u),         /*! ADC Channel 12. */
   172            INCH_13 = (13*0x1000u),         /*! ADC Channel 13. */
   173            INCH_14 = (14*0x1000u),         /*! ADC Channel 14. */
   174            INCH_15 = 15*0x1000u            /*! ADC Channel 15. */
   175        };
   176
   177        /*!
   178         *  ======== ADC10CT_t ========
   179         *  Data transfer modes
   180         *
   181         *  @see #ADC10DTC0
   182         */
   183        enum ADC10CT_t {
   184            ADC10CT_OFF = 0x000,            /*! Data is transferred is stopped after every conversion. */
   185            ADC10CT     = 0x004             /*! Data is transferred continuously after every conversion. */
   186        }
   187
   188        /*!
   189         *  ======== ADC10TB_t ========
   190         *  Block data transfer modes
   191         *
   192         *  @see #ADC10DTC0
   193         */
   194        enum ADC10TB_t {
   195            ADC10TB_OFF = 0x000,            /*! One-block transfer mode. */
   196            ADC10TB     = 0x008             /*! Two-block transfer mode. */
   197        }
   198        /* End of ADC10DTC0 Register Definitions */
   199
   200        /*!
   201         *  ======== ADC10CTL0_t ========
   202         *  ADC10 Control Register 0
   203         *
   204         *  @see #ADC10CTL0
   205         */
   206        struct ADC10CTL0_t {
   207            ADC10SC_t   ADC10SC;        /*! Start conversion. Software-controlled sample-and-conversion start.
   208                                          * ADC10SC and ENC may be set together with one instruction. ADC10SC is
   209                                          * reset automatically.
   210                                          *  0  No sample-and-conversion start
   211                                          *  1  Start sample-and-conversion */
   212            ENC_t       ENC;            /*! Enable conversion
   213                                          *  0  ADC10 disabled
   214                                          *  1  ADC10 enabled */
   215            ADC10IFG_t  ADC10IFG;       /*! ADC10 interrupt flag. This bit is set if ADC10MEM is loaded with a conversion
   216                                          * result. It is automatically reset when the interrupt request is accepted, or it may
   217                                          * be reset by software. When using the DTC this flag is set when a block of
   218                                          * transfers is completed.
   219                                          *  0  No interrupt pending
   220                                          *  1  Interrupt pending */
   221            ADC10IE_t   ADC10IE;        /*! ADC10 interrupt enable
   222                                          *  0  Interrupt disabled
   223                                          *  1  Interrupt enabled */
   224            ADC10ON_t   ADC10ON;        /*! ADC10 on
   225                                          *  0  ADC10 off
   226                                          *  1  ADC10 on */
   227            REFON_t     REFON;          /*! Reference generator on
   228                                          *  0  Reference off
   229                                          *  1  Reference on */
   230            REF2_5V_t   REF2_5V;        /*! Reference-generator voltage. REFON must also be set.
   231                                          *  0  1.5 V
   232                                          *  1  2.5 V */
   233            MSC_t       MSC;            /*! Multiple sample and conversion. Valid only for sequence or repeated modes.
   234                                          *  0  The sampling requires a rising edge of the SHI signal to trigger each
   235                                          *     sample-and-conversion.
   236                                          *  1  The first rising edge of the SHI signal triggers the sampling timer, but
   237                                          *     further sample-and-conversions are performed automatically as soon
   238                                          *     as the prior conversion is completed */
   239            REFBURST_t  REFBURST;       /*! Reference burst.
   240                                          *  0  Reference buffer on continuously
   241                                          *  1  Reference buffer on only during sample-and-conversion */
   242            REFOUT_t    REFOUT;         /*! Reference output
   243                                          *  0  Reference output off
   244                                          *  1  Reference output on, use internal reference
   245                                                voltage externally on pin VREF+ */
   246            ADC10SR_t   ADC10SR;        /*! ADC10 sampling rate. This bit selects the reference buffer drive capability for
   247                                          * the maximum sampling rate. Setting ADC10SR reduces the current
   248                                          * consumption of the reference buffer.
   249                                          *  0  Reference buffer supports up to ~200 ksps
   250                                          *  1  Reference buffer supports up to ~50 ksps */
   251            ADC10SHT_t  ADC10SHT;       /*! ADC10 sample-and-hold time
   252                                          *  00  4 x ADC10CLKs
   253                                          *  01  8 x ADC10CLKs
   254                                          *  10  16 x ADC10CLKs
   255                                          *  11  64 x ADC10CLKs */
   256            SREF_t      SREF;           /*! Select reference
   257                                          *  000  VR+ = VCC and VR- = VSS
   258                                          *  001  VR+ = VREF+ and VR- = VSS
   259                                          *  010  VR+ = VeREF+ and VR- = VSS
   260                                          *  011  VR+ = Buffered VeREF+ and VR- = VSS
   261                                          *  100  VR+ = VCC and VR- = VREF-/ VeREF-
   262                                          *  101  VR+ = VREF+ and VR- = VREF-/ VeREF-
   263                                          *  110  VR+ = VeREF+ and VR- = VREF-/ VeREF-
   264                                          *  111  VR+ = Buffered VeREF+ and VR- = VREF-/ VeREF- */
   265        }
   266
   267        /*!
   268         *  ======== ADC10CTL1_t ========
   269         *  ADC10 Control Register 1
   270         *
   271         *  @see #ADC10CTL1
   272         */
   273        struct ADC10CTL1_t {
   274            ADC10BUSY_t ADC10BUSY;      /*! ADC10 busy. This bit indicates an active sample or conversion operation
   275                                          *  0  No operation is active.
   276                                          *  1  A sequence, sample, or conversion is active. */
   277            CONSEQ_t    CONSEQ;         /*! Conversion sequence mode select
   278                                          *  00  Single-channel-single-conversion
   279                                          *  01  Sequence-of-channels
   280                                          *  10  Repeat-single-channel
   281                                          *  11  Repeat-sequence-of-channels */
   282            ADC10SSEL_t ADC10SSEL;      /*! ADC10 clock source select
   283                                          *  00  ADC10OSC
   284                                          *  01  ACLK
   285                                          *  10  MCLK
   286                                          *  11  SMCLK */
   287            ADC10DIV_t  ADC10DIV;       /*! ADC10 clock divider
   288                                          *  000  /1
   289                                          *  001  /2
   290                                          *  010  /3
   291                                          *  011  /4
   292                                          *  100  /5
   293                                          *  101  /6
   294                                          *  110  /7
   295                                          *  111  /8 */
   296            ISSH_t      ISSH;           /*! Invert signal sample-and-hold
   297                                          *  0  The sample-input signal is not inverted.
   298                                          *  1  The sample-input signal is inverted. */
   299            ADC10DF_t   ADC10DF;        /*! ADC10 data format
   300                                          *  0  Straight binary
   301                                          *  1  2s complement */
   302            SHS_t       SHS;            /*! Sample-and-hold source select
   303                                          *  00  ADC10SC bit
   304                                          *  01  Timer_A.OUT1
   305                                          *  10  Timer_A.OUT0
   306                                          *  11  Timer_A.OUT2 (Timer_A.OUT1 on MSP430x20x2 devices) */
   307            INCH_t      INCH;           /*! Input channel select. These bits select the channel for a single-conversion or
   308                                          * the highest channel for a sequence of conversions.
   309                                          *  0000  A0
   310                                          *  0001  A1
   311                                          *  0010  A2
   312                                          *  0011  A3
   313                                          *  0100  A4
   314                                          *  0101  A5
   315                                          *  0110  A6
   316                                          *  0111  A7
   317                                          *  1000  VeREF+
   318                                          *  1001  VREF-/VeREF-
   319                                          *  1010  Temperature sensor
   320                                          *  1011  (VCC � VSS) / 2
   321                                          *  1100  A12
   322                                          *  1101  A13
   323                                          *  1110  A14
   324                                          *  1111  A15 */
   325        }
   326
   327        /*!
   328         *  ======== ADC10DTC0_t ========
   329         *  Data Transfer Control Register 0
   330         *
   331         *  @see #ADC10DTC0
   332         */
   333        struct ADC10DTC0_t {
   334            ADC10TB_t   ADC10TB;        /*! ADC10 two-block mode
   335                                          *  0  One-block transfer mode
   336                                          *  1  Two-block transfer mode */
   337            ADC10CT_t   ADC10CT;        /*! ADC10 continuous transfer
   338                                          *  0  Data transfer stops when one block (one-block mode) or two blocks
   339                                          *     (two-block mode) have completed.
   340                                          *  1  Data is transferred continuously. DTC operation is stopped only if
   341                                          *     ADC10CT cleared, or ADC10SA is written to. */
   342        }
   343
   344    instance:
   345        /*! Control Register 0 */
   346        config ADC10CTL0_t  ADC10CTL0 = {
   347            ADC10SC :   ADC10SC_OFF,
   348            ENC     :   ENC_OFF,
   349            ADC10IFG:   ADC10IFG_OFF,
   350            ADC10IE :   ADC10IE_OFF,
   351            ADC10ON :   ADC10ON_OFF,
   352            REFON   :   REFON_OFF,
   353            REF2_5V :   REF2_5V_OFF,
   354            MSC     :   MSC_OFF,
   355            REFBURST:   REFBURST_OFF,
   356            REFOUT  :   REFOUT_OFF,
   357            ADC10SR :   ADC10SR_OFF,
   358            ADC10SHT:   ADC10SHT_0,
   359            SREF    :   SREF_0
   360        };
   361
   362        /*! Control Register 1 */
   363        config ADC10CTL1_t  ADC10CTL1 = {
   364            ADC10BUSY   :   ADC10BUSY_OFF,
   365            CONSEQ      :   CONSEQ_0,
   366            ADC10SSEL   :   ADC10SSEL_0,
   367            ADC10DIV    :   ADC10DIV_0,
   368            ISSH        :   ISSH_OFF,
   369            ADC10DF     :   ADC10DF_OFF,
   370            SHS         :   SHS_0,
   371            INCH        :   INCH_0
   372        };
   373
   374        /*!
   375         *  Analog (Input) Enable Control Register 0
   376         *
   377         *  Bit n enables the corresponding pin for analog
   378         *  input. Bit 0 corresponds to A0, bit 1 corresponds to A1, ...
   379         */
   380        config Bits16 ADC10AE0 = 0;
   381
   382        /*!
   383         *  Analog (Input) Enable Control Register 1
   384         *
   385         *  Bits 0, 1, 2, and 3 are reserved.
   386         *
   387         *  Starting with bit 4, bit n enables pin n+8 for analog
   388         *  input: Bit 4 corresponds to A12, bit 5 corresponds to A13, ...
   389         */
   390        config Bits16 ADC10AE1 = 0;
   391
   392        /*! Data Transfer Control Register 0 */
   393        config ADC10DTC0_t ADC10DTC0 = {
   394            ADC10TB : ADC10TB_OFF,
   395            ADC10CT : ADC10CT_OFF
   396        };
   397
   398        /*!
   399         *  Data Transfer Control Register 1
   400         *
   401         *  This register defines the number of transfers in each block: 0
   402         *  implies DTC is disabled, 1 through 0xff are valid transfer counts.
   403         */
   404        config Bits8  ADC10DTC1 = 0;
   405
   406        /*! Data Transfer Start Address */
   407        config Bits16 *ADC10SA = 0x200;
   408
   409        /*! ADC10 has 1 interrupt enable */
   410        config regIntVect_t interruptSource[1];
   411
   412        /*! Determine if each Register needs to be forced set or not */
   413        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   414        [
   415            { register : "ADC10CTL0" , regForceSet : false },
   416            { register : "ADC10CTL1" , regForceSet : false },
   417            { register : "ADC10AE0"  , regForceSet : false },
   418            { register : "ADC10AE1"  , regForceSet : false },
   419            { register : "ADC10DTC0" , regForceSet : false },
   420            { register : "ADC10DTC1" , regForceSet : false },
   421            { register : "ADC10SA"   , regForceSet : false }
   422        ];
   423    }


module ti.catalog.msp430.peripherals.adc.ADC10_B

metaonly module ti.catalog.msp430.peripherals.adc.ADC10_B
index URL

MSP430 10-bit Analog to Digital Converter

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/adc/ADC10_B.xdc
var ADC10_B = xdc.useModule('ti.catalog.msp430.peripherals.adc.ADC10_B');
module-wide constants & types
    var obj = new ADC10_B.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new ADC10_B.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     ADC10_B.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     ADC10_B.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new ADC10_B.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = ADC10_B.ForceSetDefaultRegister_t[] [ ];
        params.interruptSource// Interrupt enables = ADC10_B.regIntVect_t[4] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = ADC10_B.create// Create an instance-object(IClock.Instance clock, params);
struct ADC10_B.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new ADC10_B.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct ADC10_B.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new ADC10_B.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
ADC10_B.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
ADC10_B.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
ADC10_B.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
ADC10_B.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new ADC10_B.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = ADC10_B.ForceSetDefaultRegister_t[] [ ];
    // Determine if each Register needs to be forced set or not
    params.interruptSource = ADC10_B.regIntVect_t[4] undefined;
    // Interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config ADC10_B.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new ADC10_B.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config ADC10_B.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new ADC10_B.Params;
...
const params.forceSetDefaultRegister = ADC10_B.ForceSetDefaultRegister_t[] [ ];
config ADC10_B.interruptSource // instance
index URL

Interrupt enables

XDCscript usage meta-domain
var params = new ADC10_B.Params;
...
params.interruptSource = ADC10_B.regIntVect_t[4] undefined;
config ADC10_B.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new ADC10_B.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config ADC10_B.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new ADC10_B.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new ADC10_B.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = ADC10_B.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:33 GMT


module ti.catalog.msp430.peripherals.adc.ADC10_B

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ADC10_B ========
    14     *  MSP430 10-bit Analog to Digital Converter
    15     */
    16    metaonly module ADC10_B inherits IADC {
    17
    18    instance:
    19        /*!
    20         *  ======== baseAddr ========
    21         *  Address of the peripheral's control register.
    22         *
    23         *  A peripheral's registers are commonly accessed through a structure
    24         *  that defines the offsets of a particular register from the lowest
    25         *  address mapped to a peripheral. That lowest address is specified by
    26         *  this parameter.
    27         */
    28        config UInt baseAddr;
    29
    30        /*! Interrupt enables */
    31        config regIntVect_t interruptSource[4];
    32
    33        /*! Determine if each Register needs to be forced set or not */
    34        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    35        [
    36        ];
    37    }


module ti.catalog.msp430.peripherals.adc.ADC12

metaonly module ti.catalog.msp430.peripherals.adc.ADC12
index URL

MSP430 12-bit Analog to Digital Converter

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/adc/ADC12.xdc
var ADC12 = xdc.useModule('ti.catalog.msp430.peripherals.adc.ADC12');
module-wide constants & types
    values of type ADC12.ADC12BUSY_t// ADC12 Busy Bit
        const ADC12.ADC12BUSY_OFF;
        const ADC12.ADC12BUSY;
    values of type ADC12.ADC12DIV_t// ADC12DIV Bits
        const ADC12.ADC12DIV_0// Divide by 1;
        const ADC12.ADC12DIV_1// Divide by 2;
        const ADC12.ADC12DIV_2// Divide by 3;
        const ADC12.ADC12DIV_3// Divide by 4;
        const ADC12.ADC12DIV_4// Divide by 5;
        const ADC12.ADC12DIV_5// Divide by 6;
        const ADC12.ADC12DIV_6// Divide by 7;
        const ADC12.ADC12DIV_7// Divide by 8;
    values of type ADC12.ADC12IE0_t// ADC12 Interrupt Enable Bit 0
        const ADC12.ADC12IE0_OFF// Disable the interrupt request for the ADC12IFG0 bit;
        const ADC12.ADC12IE0// Enable the interrupt request for the ADC12IFG0 bit;
    values of type ADC12.ADC12IE10_t// ADC12 Interrupt Enable Bit 10
        const ADC12.ADC12IE10_OFF// Disable the interrupt request for the ADC12IFG10 bit;
        const ADC12.ADC12IE10// Enable the interrupt request for the ADC12IFG10 bit;
    values of type ADC12.ADC12IE11_t// ADC12 Interrupt Enable Bit 11
        const ADC12.ADC12IE11_OFF// Disable the interrupt request for the ADC12IFG11 bit;
        const ADC12.ADC12IE11// Enable the interrupt request for the ADC12IFG11 bit;
    values of type ADC12.ADC12IE12_t// ADC12 Interrupt Enable Bit 12
        const ADC12.ADC12IE12_OFF// Disable the interrupt request for the ADC12IFG12 bit;
        const ADC12.ADC12IE12// Enable the interrupt request for the ADC12IFG12 bit;
    values of type ADC12.ADC12IE13_t// ADC12 Interrupt Enable Bit 13
        const ADC12.ADC12IE13_OFF// Disable the interrupt request for the ADC12IFG13 bit;
        const ADC12.ADC12IE13// Enable the interrupt request for the ADC12IFG13 bit;
    values of type ADC12.ADC12IE14_t// ADC12 Interrupt Enable Bit 14
        const ADC12.ADC12IE14_OFF// Disable the interrupt request for the ADC12IFG14 bit;
        const ADC12.ADC12IE14// Enable the interrupt request for the ADC12IFG14 bit;
    values of type ADC12.ADC12IE15_t// ADC12 Interrupt Enable Bit 15
        const ADC12.ADC12IE15_OFF// Disable the interrupt request for the ADC12IFG15 bit;
        const ADC12.ADC12IE15// Enable the interrupt request for the ADC12IFG15 bit;
    values of type ADC12.ADC12IE1_t// ADC12 Interrupt Enable Bit 1
        const ADC12.ADC12IE1_OFF// Disable the interrupt request for the ADC12IFG1 bit;
        const ADC12.ADC12IE1// Enable the interrupt request for the ADC12IFG1 bit;
    values of type ADC12.ADC12IE2_t// ADC12 Interrupt Enable Bit 2
        const ADC12.ADC12IE2_OFF// Disable the interrupt request for the ADC12IFG2 bit;
        const ADC12.ADC12IE2// Enable the interrupt request for the ADC12IFG2 bit;
    values of type ADC12.ADC12IE3_t// ADC12 Interrupt Enable Bit 3
        const ADC12.ADC12IE3_OFF// Disable the interrupt request for the ADC12IFG3 bit;
        const ADC12.ADC12IE3// Enable the interrupt request for the ADC12IFG3 bit;
    values of type ADC12.ADC12IE4_t// ADC12 Interrupt Enable Bit 4
        const ADC12.ADC12IE4_OFF// Disable the interrupt request for the ADC12IFG4 bit;
        const ADC12.ADC12IE4// Enable the interrupt request for the ADC12IFG4 bit;
    values of type ADC12.ADC12IE5_t// ADC12 Interrupt Enable Bit 5
        const ADC12.ADC12IE5_OFF// Disable the interrupt request for the ADC12IFG5 bit;
        const ADC12.ADC12IE5// Enable the interrupt request for the ADC12IFG5 bit;
    values of type ADC12.ADC12IE6_t// ADC12 Interrupt Enable Bit 6
        const ADC12.ADC12IE6_OFF// Disable the interrupt request for the ADC12IFG6 bit;
        const ADC12.ADC12IE6// Enable the interrupt request for the ADC12IFG6 bit;
    values of type ADC12.ADC12IE7_t// ADC12 Interrupt Enable Bit 7
        const ADC12.ADC12IE7_OFF// Disable the interrupt request for the ADC12IFG7 bit;
        const ADC12.ADC12IE7// Enable the interrupt request for the ADC12IFG7 bit;
    values of type ADC12.ADC12IE8_t// ADC12 Interrupt Enable Bit 8
        const ADC12.ADC12IE8_OFF// Disable the interrupt request for the ADC12IFG8 bit;
        const ADC12.ADC12IE8// Enable the interrupt request for the ADC12IFG8 bit;
    values of type ADC12.ADC12IE9_t// ADC12 Interrupt Enable Bit 9
        const ADC12.ADC12IE9_OFF// Disable the interrupt request for the ADC12IFG9 bit;
        const ADC12.ADC12IE9// Enable the interrupt request for the ADC12IFG9 bit;
    values of type ADC12.ADC12IV_t// ADC12IV Definitions
        const ADC12.ADC12IV_NONE// No Interrupt pending;
        const ADC12.ADC12IV_ADC12OVIFG// ADC12OVIFG;
        const ADC12.ADC12IV_ADC12TOVIFG// ADC12TOVIFG;
        const ADC12.ADC12IV_ADC12IFG0// ADC12IFG0;
        const ADC12.ADC12IV_ADC12IFG1// ADC12IFG1;
        const ADC12.ADC12IV_ADC12IFG2// ADC12IFG2;
        const ADC12.ADC12IV_ADC12IFG3// ADC12IFG3;
        const ADC12.ADC12IV_ADC12IFG4// ADC12IFG4;
        const ADC12.ADC12IV_ADC12IFG5// ADC12IFG5;
        const ADC12.ADC12IV_ADC12IFG6// ADC12IFG6;
        const ADC12.ADC12IV_ADC12IFG7// ADC12IFG7;
        const ADC12.ADC12IV_ADC12IFG8// ADC12IFG8;
        const ADC12.ADC12IV_ADC12IFG9// ADC12IFG9;
        const ADC12.ADC12IV_ADC12IFG10// ADC12IFG10;
        const ADC12.ADC12IV_ADC12IFG11// ADC12IFG11;
        const ADC12.ADC12IV_ADC12IFG12// ADC12IFG12;
        const ADC12.ADC12IV_ADC12IFG13// ADC12IFG13;
        const ADC12.ADC12IV_ADC12IFG14// ADC12IFG14;
        const ADC12.ADC12IV_ADC12IFG15// ADC12IFG15;
    values of type ADC12.ADC12ON_t// ADC12ON Bit
        const ADC12.ADC12ON_OFF// ADC12 off;
        const ADC12.ADC12ON// ADC12 on;
    values of type ADC12.ADC12OVIE_t// ADC12OVIE Bit
        const ADC12.ADC12OVIE_OFF// Overflow interrupt disabled;
        const ADC12.ADC12OVIE// Overflow interrupt enabled;
    values of type ADC12.ADC12SC_t// ADC12SC Bit
        const ADC12.ADC12SC_OFF// No sample-and-conversion-start;
        const ADC12.ADC12SC// Start sample-and-conversion;
    values of type ADC12.ADC12SHT0_t// SHT0 Bits
        const ADC12.SHT0_0// 4 ADC12CLK cycles;
        const ADC12.SHT0_1// 8 ADC12CLK cycles;
        const ADC12.SHT0_2// 16 ADC12CLK cycles;
        const ADC12.SHT0_3// 32 ADC12CLK cycles;
        const ADC12.SHT0_4// 64 ADC12CLK cycles;
        const ADC12.SHT0_5// 96 ADC12CLK cycles;
        const ADC12.SHT0_6// 128 ADC12CLK cycles;
        const ADC12.SHT0_7// 192 ADC12CLK cycles;
        const ADC12.SHT0_8// 256 ADC12CLK cycles;
        const ADC12.SHT0_9// 384 ADC12CLK cycles;
        const ADC12.SHT0_10// 512 ADC12CLK cycles;
        const ADC12.SHT0_11// 768 ADC12CLK cycles;
        const ADC12.SHT0_12// 1024 ADC12CLK cycles;
    values of type ADC12.ADC12SHT1_t// SHT1 Bits
        const ADC12.SHT1_0// 4 ADC12CLK cycles;
        const ADC12.SHT1_1// 8 ADC12CLK cycles;
        const ADC12.SHT1_2// 16 ADC12CLK cycles;
        const ADC12.SHT1_3// 32 ADC12CLK cycles;
        const ADC12.SHT1_4// 64 ADC12CLK cycles;
        const ADC12.SHT1_5// 96 ADC12CLK cycles;
        const ADC12.SHT1_6// 128 ADC12CLK cycles;
        const ADC12.SHT1_7// 192 ADC12CLK cycles;
        const ADC12.SHT1_8// 256 ADC12CLK cycles;
        const ADC12.SHT1_9// 384 ADC12CLK cycles;
        const ADC12.SHT1_10// 512 ADC12CLK cycles;
        const ADC12.SHT1_11// 768 ADC12CLK cycles;
        const ADC12.SHT1_12// 1024 ADC12CLK cycles;
    values of type ADC12.ADC12SSEL_t// ADC12SSEL Bits
        const ADC12.ADC12SSEL_0// ADC12OSC;
        const ADC12.ADC12SSEL_1// ACLK;
        const ADC12.ADC12SSEL_2// MCLK;
        const ADC12.ADC12SSEL_3// SMCLK;
    values of type ADC12.ADC12TOVIE_t// ADC12TOVIE Bit
        const ADC12.ADC12TOVIE_OFF// Conversion time overflow interrupt disabled;
        const ADC12.ADC12TOVIE// Conversion time overflow interrupt disabled;
    values of type ADC12.CONSEQ_t// CONSEQ Bits
        const ADC12.CONSEQ_0// Single channel single conversion;
        const ADC12.CONSEQ_1// Sequence of channels;
        const ADC12.CONSEQ_2// Repeat single channel;
        const ADC12.CONSEQ_3// Repeat sequence of channels;
    values of type ADC12.CSTARTADD_t// CSTARTADD Bits
        const ADC12.CSTARTADD_0// ADC12MEM0;
        const ADC12.CSTARTADD_1// ADC12MEM1;
        const ADC12.CSTARTADD_2// ADC12MEM2;
        const ADC12.CSTARTADD_3// ADC12MEM3;
        const ADC12.CSTARTADD_4// ADC12MEM4;
        const ADC12.CSTARTADD_5// ADC12MEM5;
        const ADC12.CSTARTADD_6// ADC12MEM6;
        const ADC12.CSTARTADD_7// ADC12MEM7;
        const ADC12.CSTARTADD_8// ADC12MEM8;
        const ADC12.CSTARTADD_9// ADC12MEM9;
        const ADC12.CSTARTADD_10// ADC12MEM10;
        const ADC12.CSTARTADD_11// ADC12MEM11;
        const ADC12.CSTARTADD_12// ADC12MEM12;
        const ADC12.CSTARTADD_13// ADC12MEM13;
        const ADC12.CSTARTADD_14// ADC12MEM14;
        const ADC12.CSTARTADD_15// ADC12MEM15;
    values of type ADC12.ENC_t// ENC Bit
        const ADC12.ENC_OFF// ADC12 disabled;
        const ADC12.ENC// ADC12 enabled;
    values of type ADC12.EOS_t// EOS Bit
        const ADC12.EOS_OFF// Not end of sequence;
        const ADC12.EOS// End of sequence;
    values of type ADC12.INCH_t// INCH Bits
        const ADC12.INCH_0// A0;
        const ADC12.INCH_1// A1;
        const ADC12.INCH_2// A2;
        const ADC12.INCH_3// A3;
        const ADC12.INCH_4// A4;
        const ADC12.INCH_5// A5;
        const ADC12.INCH_6// A6;
        const ADC12.INCH_7// A7;
        const ADC12.INCH_8// VeREF+;
        const ADC12.INCH_9// VREF--/VeREF-;
        const ADC12.INCH_10// Temperature diode;
        const ADC12.INCH_11// (AVcc - AVss) / 2;
        const ADC12.INCH_12// GND;
        const ADC12.INCH_13// GND;
        const ADC12.INCH_14// GND;
        const ADC12.INCH_15// GND;
    values of type ADC12.ISSH_t// ISSH Bits
        const ADC12.ISSH_OFF// The sample-input signal is not inverted;
        const ADC12.ISSH// The sample-input signal is inverted;
    values of type ADC12.MSC_t// MSC Bit
        const ADC12.MSC_OFF// The sampling timer requires a rising edge of the SHI signal to trigger each sample-and-conversion;
        const ADC12.MSC// The first rising edge of the SHI signal triggers the sampling timer, but further sample-and-conversions are performed automatically as soon as the prior conversion is completed;
    values of type ADC12.REF2_5V_t// REF2_5V Bit
        const ADC12.REF2_5V_OFF// 1.5V;
        const ADC12.REF2_5V// 2.5V;
    values of type ADC12.REFON_t// REFON Bit
        const ADC12.REFON_OFF// Reference off;
        const ADC12.REFON// Reference on;
    values of type ADC12.SHP_t// SHP Bits
        const ADC12.SHP_OFF// SAMPCON signal is sourced from the sample-input signal;
        const ADC12.SHP// SAMPCON signal is sourced from the sampling timer;
    values of type ADC12.SHS_t// SHS Bits
        const ADC12.SHS_0// ADC12SC bit;
        const ADC12.SHS_1// Timer_A.OUT1;
        const ADC12.SHS_2// Timer_B.OUT0;
        const ADC12.SHS_3// Timer_B.OUT1;
    values of type ADC12.SREF_t// SREF Bits
        const ADC12.SREF_0// VR+ = AVcc and VR-- = AVss;
        const ADC12.SREF_1// VR+ = VREF+ and VR-- = AVss;
        const ADC12.SREF_2// VR+ = VeREF+ and VR-- = AVss;
        const ADC12.SREF_3// VR+ = VeREF+ and VR-- = AVss;
        const ADC12.SREF_4// VR+ = AVcc and VR-- = VREF--/ VeREF--;
        const ADC12.SREF_5// VR+ = VREF+ and VR-- = VREF--/ VeREF--;
        const ADC12.SREF_6// VR+ = VeREF+ and VR-- = VREF--/ VeREF--;
        const ADC12.SREF_7// VR+ = VeREF+ and VR-- = VREF--/ VeREF--;
    var obj = new ADC12.ADC12CTL0_t// ADC12 Control Register 0;
        obj.ADC12SHT1// Sample-and-hold time. These bits define the number of ADC12CLK cycles in the sampling period for registers ADC12MEM8 to ADC12MEM15 = ADC12.ADC12SHT1_t ...
        obj.ADC12SHT0// Sample-and-hold time. These bits define the number of ADC12CLK cycles in the sampling period for registers ADC12MEM0 to ADC12MEM7 = ADC12.ADC12SHT0_t ...
        obj.MSC// Multiple sample and conversion. Valid only for sequence or repeated modes. 0 The sampling timer requires a rising edge of the SHI signal to trigger each sample-and-conversion. 1 The first rising edge of the SHI signal triggers the sampling timer, but further sample-and-conversions are performed automatically as soon as the prior conversion is completed = ADC12.MSC_t ...
        obj.REF2_5V// Reference generator voltage. REFON must also be set. 0 1.5V 1 2.5V = ADC12.REF2_5V_t ...
        obj.REFON// Reference generator on 0 Reference off 1 Reference on = ADC12.REFON_t ...
        obj.ADC12ON// ADC12 on 0 ADC12 off 1 ADC12 on = ADC12.ADC12ON_t ...
        obj.ADC12OVIE// ADC12MEMx overflow-interrupt enable. The GIE bit must also be set to enable the interrupt. 0 Overflow interrupt disabled 1 Overflow interrupt enabled = ADC12.ADC12OVIE_t ...
        obj.ADC12TOVIE// ADC12 conversion-time-overflow interrupt enable. The GIE bit must also be set to enable the interrupt. 0 Conversion time overflow interrupt disabled 1 Conversion time overflow interrupt enabled = ADC12.ADC12TOVIE_t ...
        obj.ENC// Enable conversion 0 ADC12 disabled 1 ADC12 enabled = ADC12.ENC_t ...
        obj.ADC12SC// Start conversion. Software-controlled sample-and-conversion start. ADC12SC and ENC may be set together with one instruction. ADC12SC is reset automatically. 0 No sample-and-conversion-start 1 Start sample-and-conversion = ADC12.ADC12SC_t ...
    var obj = new ADC12.ADC12CTL1_t// ADC12 Control Register 1;
        obj.CSTARTADD// Conversion start address. These bits select which ADC12 conversion-memory register is used for a single conversion or for the first conversion in a sequence. The value of CSTARTADDx is 0 to 0Fh, corresponding to ADC12MEM0 to ADC12MEM15 = ADC12.CSTARTADD_t ...
        obj.SHS// Sample-and-hold source select 00 ADC12SC bit 01 Timer_A.OUT1 10 Timer_B.OUT0 11 Timer_B.OUT1 = ADC12.SHS_t ...
        obj.SHP// Sample-and-hold pulse-mode select. This bit selects the source of the sampling signal (SAMPCON) to be either the output of the sampling timer or the sample-input signal directly. 0 SAMPCON signal is sourced from the sample-input signal. 1 SAMPCON signal is sourced from the sampling timer = ADC12.SHP_t ...
        obj.ISSH// Invert signal sample-and-hold 0 The sample-input signal is not inverted. 1 The sample-input signal is inverted = ADC12.ISSH_t ...
        obj.ADC12DIV// ADC12 clock divider 000 /1 001 /2 010 /3 011 /4 100 /5 101 /6 110 /7 111 /8 = ADC12.ADC12DIV_t ...
        obj.ADC12SSEL// ADC12 clock source select 00 ADC12OSC 01 ACLK 10 MCLK 11 SMCLK = ADC12.ADC12SSEL_t ...
        obj.CONSEQ// Conversion sequence mode select 00 Single-channel, single-conversion 01 Sequence-of-channels 10 Repeat-single-channel 11 Repeat-sequence-of-channels = ADC12.CONSEQ_t ...
        obj.ADC12BUSY// ADC12 busy. This bit indicates an active sample or conversion operation. 0 No operation is active. 1 A sequence, sample, or conversion is active = ADC12.ADC12BUSY_t ...
    var obj = new ADC12.ADC12IE_t// ADC12 Interrupt Enable Register;
        obj.ADC12IE15// Enable or disable the interrupt request for the ADC12IFG15 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE15_t ...
        obj.ADC12IE14// Enable or disable the interrupt request for the ADC12IFG14 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE14_t ...
        obj.ADC12IE13// Enable or disable the interrupt request for the ADC12IFG13 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE13_t ...
        obj.ADC12IE12// Enable or disable the interrupt request for the ADC12IFG12 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE12_t ...
        obj.ADC12IE11// Enable or disable the interrupt request for the ADC12IFG11 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE11_t ...
        obj.ADC12IE10// Enable or disable the interrupt request for the ADC12IFG10 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE10_t ...
        obj.ADC12IE9// Enable or disable the interrupt request for the ADC12IFG9 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE9_t ...
        obj.ADC12IE8// Enable or disable the interrupt request for the ADC12IFG8 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE8_t ...
        obj.ADC12IE7// Enable or disable the interrupt request for the ADC12IFG7 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE7_t ...
        obj.ADC12IE6// Enable or disable the interrupt request for the ADC12IFG6 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE6_t ...
        obj.ADC12IE5// Enable or disable the interrupt request for the ADC12IFG5 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE5_t ...
        obj.ADC12IE4// Enable or disable the interrupt request for the ADC12IFG4 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE4_t ...
        obj.ADC12IE3// Enable or disable the interrupt request for the ADC12IFG3 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE3_t ...
        obj.ADC12IE2// Enable or disable the interrupt request for the ADC12IFG2 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE2_t ...
        obj.ADC12IE1// Enable or disable the interrupt request for the ADC12IFG1 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE1_t ...
        obj.ADC12IE0// Enable or disable the interrupt request for the ADC12IFG0 bit. 0 Interrupt disabled 1 Interrupt enabled = ADC12.ADC12IE0_t ...
    var obj = new ADC12.ADC12MCTL_t// ADC12 Conversion Memory Control Registers;
        obj.EOS// End of sequence. Indicates the last conversion in a sequence. 0 Not end of sequence 1 End of sequence = ADC12.EOS_t ...
        obj.SREF// Select reference 000 VR+ = AVCC and VR-- = AVSS 001 VR+ = VREF+ and VR-- = AVSS 010 VR+ = VeREF+ and VR-- = AVSS 011 VR+ = VeREF+ and VR-- = AVSS 100 VR+ = AVCC and VR-- = VREF--/ VeREF-- 101 VR+ = VREF+ and VR-- = VREF--/ VeREF-- 110 VR+ = VeREF+ and VR-- = VREF--/ VeREF-- 111 VR+ = VeREF+ and VR-- = VREF--/ VeREF-- = ADC12.SREF_t ...
        obj.INCH// Input channel select 0000 A0 0001 A1 0010 A2 0011 A3 0100 A4 0101 A5 0110 A6 0111 A7 1000 VeREF+ 1001 VREF--/VeREF-- 1010 Temperature diode 1011 (AVCC � AVSS) / 2 1100 GND 1101 GND 1110 GND 1111 GND = ADC12.INCH_t ...
    var obj = new ADC12.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new ADC12.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     ADC12.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     ADC12.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new ADC12.Params// Instance config-params object;
        params.ADC12CTL0// ADC12CTL0 Register = ADC12.ADC12CTL0_t {
            ADC12SHT1: ADC12.SHT1_0,
            ADC12SHT0: ADC12.SHT0_0,
            MSC: ADC12.MSC_OFF,
            REF2_5V: ADC12.REF2_5V_OFF,
            REFON: ADC12.REFON_OFF,
            ADC12ON: ADC12.ADC12ON_OFF,
            ADC12OVIE: ADC12.ADC12OVIE_OFF,
            ADC12TOVIE: ADC12.ADC12TOVIE_OFF,
            ENC: ADC12.ENC_OFF,
            ADC12SC: ADC12.ADC12SC_OFF
        };
        params.ADC12CTL1// ADC12CTL1 Register = ADC12.ADC12CTL1_t {
            CSTARTADD: ADC12.CSTARTADD_0,
            SHS: ADC12.SHS_0,
            SHP: ADC12.SHP_OFF,
            ISSH: ADC12.ISSH_OFF,
            ADC12DIV: ADC12.ADC12DIV_0,
            ADC12SSEL: ADC12.ADC12SSEL_0,
            CONSEQ: ADC12.CONSEQ_0,
            ADC12BUSY: ADC12.ADC12BUSY_OFF
        };
        params.ADC12IE// ADC12 Interrupt Enable Register = ADC12.ADC12IE_t {
            ADC12IE15: ADC12.ADC12IE15_OFF,
            ADC12IE14: ADC12.ADC12IE14_OFF,
            ADC12IE13: ADC12.ADC12IE13_OFF,
            ADC12IE12: ADC12.ADC12IE12_OFF,
            ADC12IE11: ADC12.ADC12IE11_OFF,
            ADC12IE10: ADC12.ADC12IE10_OFF,
            ADC12IE9: ADC12.ADC12IE9_OFF,
            ADC12IE8: ADC12.ADC12IE8_OFF,
            ADC12IE7: ADC12.ADC12IE7_OFF,
            ADC12IE6: ADC12.ADC12IE6_OFF,
            ADC12IE5: ADC12.ADC12IE5_OFF,
            ADC12IE4: ADC12.ADC12IE4_OFF,
            ADC12IE3: ADC12.ADC12IE3_OFF,
            ADC12IE2: ADC12.ADC12IE2_OFF,
            ADC12IE1: ADC12.ADC12IE1_OFF,
            ADC12IE0: ADC12.ADC12IE0_OFF
        };
        params.ADC12IFG// ADC12IFG Register = Bits16 0;
        params.ADC12IV// ADC12IV Register = Bits16 ADC12.ADC12IV_NONE;
        params.ADC12MCTL0// ADC12MCTL0 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL1// ADC12MCTL1 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL10// ADC12MCTL10 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL11// ADC12MCTL11 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL12// ADC12MCTL12 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL13// ADC12MCTL13 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL14// ADC12MCTL14 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL15// ADC12MCTL15 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL2// ADC12MCTL2 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL3// ADC12MCTL3 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL4// ADC12MCTL4 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL5// ADC12MCTL5 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL6// ADC12MCTL6 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL7// ADC12MCTL7 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL8// ADC12MCTL8 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MCTL9// ADC12MCTL9 Register = ADC12.ADC12MCTL_t {
            EOS: ADC12.EOS_OFF,
            SREF: ADC12.SREF_0,
            INCH: ADC12.INCH_0
        };
        params.ADC12MEM0// ADC12MEM0 Register = Bits16 0;
        params.ADC12MEM1// ADC12MEM1 Register = Bits16 0;
        params.ADC12MEM10// ADC12MEM10 Register = Bits16 0;
        params.ADC12MEM11// ADC12MEM11 Register = Bits16 0;
        params.ADC12MEM12// ADC12MEM12 Register = Bits16 0;
        params.ADC12MEM13// ADC12MEM13 Register = Bits16 0;
        params.ADC12MEM14// ADC12MEM14 Register = Bits16 0;
        params.ADC12MEM15// ADC12MEM15 Register = Bits16 0;
        params.ADC12MEM2// ADC12MEM2 Register = Bits16 0;
        params.ADC12MEM3// ADC12MEM3 Register = Bits16 0;
        params.ADC12MEM4// ADC12MEM4 Register = Bits16 0;
        params.ADC12MEM5// ADC12MEM5 Register = Bits16 0;
        params.ADC12MEM6// ADC12MEM6 Register = Bits16 0;
        params.ADC12MEM7// ADC12MEM7 Register = Bits16 0;
        params.ADC12MEM8// ADC12MEM8 Register = Bits16 0;
        params.ADC12MEM9// ADC12MEM9 Register = Bits16 0;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = ADC12.ForceSetDefaultRegister_t[] [
            {
                register: "ADC12CTL0",
                regForceSet: false
            },
            {
                register: "ADC12CTL1",
                regForceSet: false
            },
            {
                register: "ADC12IFG",
                regForceSet: false
            },
            {
                register: "ADC12IV",
                regForceSet: false
            },
            {
                register: "ADC12IE",
                regForceSet: false
            },
            {
                register: "ADC12MCTL0",
                regForceSet: false
            },
            {
                register: "ADC12MCTL1",
                regForceSet: false
            },
            {
                register: "ADC12MCTL2",
                regForceSet: false
            },
            {
                register: "ADC12MCTL3",
                regForceSet: false
            },
            {
                register: "ADC12MCTL4",
                regForceSet: false
            },
            {
                register: "ADC12MCTL5",
                regForceSet: false
            },
            {
                register: "ADC12MCTL6",
                regForceSet: false
            },
            {
                register: "ADC12MCTL7",
                regForceSet: false
            },
            {
                register: "ADC12MCTL8",
                regForceSet: false
            },
            {
                register: "ADC12MCTL9",
                regForceSet: false
            },
            {
                register: "ADC12MCTL10",
                regForceSet: false
            },
            {
                register: "ADC12MCTL11",
                regForceSet: false
            },
            {
                register: "ADC12MCTL12",
                regForceSet: false
            },
            {
                register: "ADC12MCTL13",
                regForceSet: false
            },
            {
                register: "ADC12MCTL14",
                regForceSet: false
            },
            {
                register: "ADC12MCTL15",
                regForceSet: false
            },
            {
                register: "ADC12MEM0",
                regForceSet: false
            },
            {
                register: "ADC12MEM1",
                regForceSet: false
            },
            {
                register: "ADC12MEM2",
                regForceSet: false
            },
            {
                register: "ADC12MEM3",
                regForceSet: false
            },
            {
                register: "ADC12MEM4",
                regForceSet: false
            },
            {
                register: "ADC12MEM5",
                regForceSet: false
            },
            {
                register: "ADC12MEM6",
                regForceSet: false
            },
            {
                register: "ADC12MEM7",
                regForceSet: false
            },
            {
                register: "ADC12MEM8",
                regForceSet: false
            },
            {
                register: "ADC12MEM9",
                regForceSet: false
            },
            {
                register: "ADC12MEM10",
                regForceSet: false
            },
            {
                register: "ADC12MEM11",
                regForceSet: false
            },
            {
                register: "ADC12MEM12",
                regForceSet: false
            },
            {
                register: "ADC12MEM13",
                regForceSet: false
            },
            {
                register: "ADC12MEM14",
                regForceSet: false
            },
            {
                register: "ADC12MEM15",
                regForceSet: false
            }
        ];
        params.interruptSource// ADC12 has 16 interrupt enable = ADC12.regIntVect_t[16] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = ADC12.create// Create an instance-object(IClock.Instance clock, params);
enum ADC12.ADC12BUSY_t
index URL

ADC12 Busy Bit

XDCscript usage meta-domain
values of type ADC12.ADC12BUSY_t
    const ADC12.ADC12BUSY_OFF;
    const ADC12.ADC12BUSY;
enum ADC12.ADC12DIV_t
index URL

ADC12DIV Bits

XDCscript usage meta-domain
values of type ADC12.ADC12DIV_t
    const ADC12.ADC12DIV_0;
    // Divide by 1
    const ADC12.ADC12DIV_1;
    // Divide by 2
    const ADC12.ADC12DIV_2;
    // Divide by 3
    const ADC12.ADC12DIV_3;
    // Divide by 4
    const ADC12.ADC12DIV_4;
    // Divide by 5
    const ADC12.ADC12DIV_5;
    // Divide by 6
    const ADC12.ADC12DIV_6;
    // Divide by 7
    const ADC12.ADC12DIV_7;
    // Divide by 8
enum ADC12.ADC12IE0_t
index URL

ADC12 Interrupt Enable Bit 0

XDCscript usage meta-domain
values of type ADC12.ADC12IE0_t
    const ADC12.ADC12IE0_OFF;
    // Disable the interrupt request for the ADC12IFG0 bit
    const ADC12.ADC12IE0;
    // Enable the interrupt request for the ADC12IFG0 bit
enum ADC12.ADC12IE10_t
index URL

ADC12 Interrupt Enable Bit 10

XDCscript usage meta-domain
values of type ADC12.ADC12IE10_t
    const ADC12.ADC12IE10_OFF;
    // Disable the interrupt request for the ADC12IFG10 bit
    const ADC12.ADC12IE10;
    // Enable the interrupt request for the ADC12IFG10 bit
enum ADC12.ADC12IE11_t
index URL

ADC12 Interrupt Enable Bit 11

XDCscript usage meta-domain
values of type ADC12.ADC12IE11_t
    const ADC12.ADC12IE11_OFF;
    // Disable the interrupt request for the ADC12IFG11 bit
    const ADC12.ADC12IE11;
    // Enable the interrupt request for the ADC12IFG11 bit
enum ADC12.ADC12IE12_t
index URL

ADC12 Interrupt Enable Bit 12

XDCscript usage meta-domain
values of type ADC12.ADC12IE12_t
    const ADC12.ADC12IE12_OFF;
    // Disable the interrupt request for the ADC12IFG12 bit
    const ADC12.ADC12IE12;
    // Enable the interrupt request for the ADC12IFG12 bit
enum ADC12.ADC12IE13_t
index URL

ADC12 Interrupt Enable Bit 13

XDCscript usage meta-domain
values of type ADC12.ADC12IE13_t
    const ADC12.ADC12IE13_OFF;
    // Disable the interrupt request for the ADC12IFG13 bit
    const ADC12.ADC12IE13;
    // Enable the interrupt request for the ADC12IFG13 bit
enum ADC12.ADC12IE14_t
index URL

ADC12 Interrupt Enable Bit 14

XDCscript usage meta-domain
values of type ADC12.ADC12IE14_t
    const ADC12.ADC12IE14_OFF;
    // Disable the interrupt request for the ADC12IFG14 bit
    const ADC12.ADC12IE14;
    // Enable the interrupt request for the ADC12IFG14 bit
enum ADC12.ADC12IE15_t
index URL

ADC12 Interrupt Enable Bit 15

XDCscript usage meta-domain
values of type ADC12.ADC12IE15_t
    const ADC12.ADC12IE15_OFF;
    // Disable the interrupt request for the ADC12IFG15 bit
    const ADC12.ADC12IE15;
    // Enable the interrupt request for the ADC12IFG15 bit
enum ADC12.ADC12IE1_t
index URL

ADC12 Interrupt Enable Bit 1

XDCscript usage meta-domain
values of type ADC12.ADC12IE1_t
    const ADC12.ADC12IE1_OFF;
    // Disable the interrupt request for the ADC12IFG1 bit
    const ADC12.ADC12IE1;
    // Enable the interrupt request for the ADC12IFG1 bit
enum ADC12.ADC12IE2_t
index URL

ADC12 Interrupt Enable Bit 2

XDCscript usage meta-domain
values of type ADC12.ADC12IE2_t
    const ADC12.ADC12IE2_OFF;
    // Disable the interrupt request for the ADC12IFG2 bit
    const ADC12.ADC12IE2;
    // Enable the interrupt request for the ADC12IFG2 bit
enum ADC12.ADC12IE3_t
index URL

ADC12 Interrupt Enable Bit 3

XDCscript usage meta-domain
values of type ADC12.ADC12IE3_t
    const ADC12.ADC12IE3_OFF;
    // Disable the interrupt request for the ADC12IFG3 bit
    const ADC12.ADC12IE3;
    // Enable the interrupt request for the ADC12IFG3 bit
enum ADC12.ADC12IE4_t
index URL

ADC12 Interrupt Enable Bit 4

XDCscript usage meta-domain
values of type ADC12.ADC12IE4_t
    const ADC12.ADC12IE4_OFF;
    // Disable the interrupt request for the ADC12IFG4 bit
    const ADC12.ADC12IE4;
    // Enable the interrupt request for the ADC12IFG4 bit
enum ADC12.ADC12IE5_t
index URL

ADC12 Interrupt Enable Bit 5

XDCscript usage meta-domain
values of type ADC12.ADC12IE5_t
    const ADC12.ADC12IE5_OFF;
    // Disable the interrupt request for the ADC12IFG5 bit
    const ADC12.ADC12IE5;
    // Enable the interrupt request for the ADC12IFG5 bit
enum ADC12.ADC12IE6_t
index URL

ADC12 Interrupt Enable Bit 6

XDCscript usage meta-domain
values of type ADC12.ADC12IE6_t
    const ADC12.ADC12IE6_OFF;
    // Disable the interrupt request for the ADC12IFG6 bit
    const ADC12.ADC12IE6;
    // Enable the interrupt request for the ADC12IFG6 bit
enum ADC12.ADC12IE7_t
index URL

ADC12 Interrupt Enable Bit 7

XDCscript usage meta-domain
values of type ADC12.ADC12IE7_t
    const ADC12.ADC12IE7_OFF;
    // Disable the interrupt request for the ADC12IFG7 bit
    const ADC12.ADC12IE7;
    // Enable the interrupt request for the ADC12IFG7 bit
enum ADC12.ADC12IE8_t
index URL

ADC12 Interrupt Enable Bit 8

XDCscript usage meta-domain
values of type ADC12.ADC12IE8_t
    const ADC12.ADC12IE8_OFF;
    // Disable the interrupt request for the ADC12IFG8 bit
    const ADC12.ADC12IE8;
    // Enable the interrupt request for the ADC12IFG8 bit
enum ADC12.ADC12IE9_t
index URL

ADC12 Interrupt Enable Bit 9

XDCscript usage meta-domain
values of type ADC12.ADC12IE9_t
    const ADC12.ADC12IE9_OFF;
    // Disable the interrupt request for the ADC12IFG9 bit
    const ADC12.ADC12IE9;
    // Enable the interrupt request for the ADC12IFG9 bit
enum ADC12.ADC12IV_t
index URL

ADC12IV Definitions

XDCscript usage meta-domain
values of type ADC12.ADC12IV_t
    const ADC12.ADC12IV_NONE;
    // No Interrupt pending
    const ADC12.ADC12IV_ADC12OVIFG;
    // ADC12OVIFG
    const ADC12.ADC12IV_ADC12TOVIFG;
    // ADC12TOVIFG
    const ADC12.ADC12IV_ADC12IFG0;
    // ADC12IFG0
    const ADC12.ADC12IV_ADC12IFG1;
    // ADC12IFG1
    const ADC12.ADC12IV_ADC12IFG2;
    // ADC12IFG2
    const ADC12.ADC12IV_ADC12IFG3;
    // ADC12IFG3
    const ADC12.ADC12IV_ADC12IFG4;
    // ADC12IFG4
    const ADC12.ADC12IV_ADC12IFG5;
    // ADC12IFG5
    const ADC12.ADC12IV_ADC12IFG6;
    // ADC12IFG6
    const ADC12.ADC12IV_ADC12IFG7;
    // ADC12IFG7
    const ADC12.ADC12IV_ADC12IFG8;
    // ADC12IFG8
    const ADC12.ADC12IV_ADC12IFG9;
    // ADC12IFG9
    const ADC12.ADC12IV_ADC12IFG10;
    // ADC12IFG10
    const ADC12.ADC12IV_ADC12IFG11;
    // ADC12IFG11
    const ADC12.ADC12IV_ADC12IFG12;
    // ADC12IFG12
    const ADC12.ADC12IV_ADC12IFG13;
    // ADC12IFG13
    const ADC12.ADC12IV_ADC12IFG14;
    // ADC12IFG14
    const ADC12.ADC12IV_ADC12IFG15;
    // ADC12IFG15
enum ADC12.ADC12ON_t
index URL

ADC12ON Bit

XDCscript usage meta-domain
values of type ADC12.ADC12ON_t
    const ADC12.ADC12ON_OFF;
    // ADC12 off
    const ADC12.ADC12ON;
    // ADC12 on
enum ADC12.ADC12OVIE_t
index URL

ADC12OVIE Bit

XDCscript usage meta-domain
values of type ADC12.ADC12OVIE_t
    const ADC12.ADC12OVIE_OFF;
    // Overflow interrupt disabled
    const ADC12.ADC12OVIE;
    // Overflow interrupt enabled
enum ADC12.ADC12SC_t
index URL

ADC12SC Bit

XDCscript usage meta-domain
values of type ADC12.ADC12SC_t
    const ADC12.ADC12SC_OFF;
    // No sample-and-conversion-start
    const ADC12.ADC12SC;
    // Start sample-and-conversion
enum ADC12.ADC12SHT0_t
index URL

SHT0 Bits

XDCscript usage meta-domain
values of type ADC12.ADC12SHT0_t
    const ADC12.SHT0_0;
    // 4 ADC12CLK cycles
    const ADC12.SHT0_1;
    // 8 ADC12CLK cycles
    const ADC12.SHT0_2;
    // 16 ADC12CLK cycles
    const ADC12.SHT0_3;
    // 32 ADC12CLK cycles
    const ADC12.SHT0_4;
    // 64 ADC12CLK cycles
    const ADC12.SHT0_5;
    // 96 ADC12CLK cycles
    const ADC12.SHT0_6;
    // 128 ADC12CLK cycles
    const ADC12.SHT0_7;
    // 192 ADC12CLK cycles
    const ADC12.SHT0_8;
    // 256 ADC12CLK cycles
    const ADC12.SHT0_9;
    // 384 ADC12CLK cycles
    const ADC12.SHT0_10;
    // 512 ADC12CLK cycles
    const ADC12.SHT0_11;
    // 768 ADC12CLK cycles
    const ADC12.SHT0_12;
    // 1024 ADC12CLK cycles
enum ADC12.ADC12SHT1_t
index URL

SHT1 Bits

XDCscript usage meta-domain
values of type ADC12.ADC12SHT1_t
    const ADC12.SHT1_0;
    // 4 ADC12CLK cycles
    const ADC12.SHT1_1;
    // 8 ADC12CLK cycles
    const ADC12.SHT1_2;
    // 16 ADC12CLK cycles
    const ADC12.SHT1_3;
    // 32 ADC12CLK cycles
    const ADC12.SHT1_4;
    // 64 ADC12CLK cycles
    const ADC12.SHT1_5;
    // 96 ADC12CLK cycles
    const ADC12.SHT1_6;
    // 128 ADC12CLK cycles
    const ADC12.SHT1_7;
    // 192 ADC12CLK cycles
    const ADC12.SHT1_8;
    // 256 ADC12CLK cycles
    const ADC12.SHT1_9;
    // 384 ADC12CLK cycles
    const ADC12.SHT1_10;
    // 512 ADC12CLK cycles
    const ADC12.SHT1_11;
    // 768 ADC12CLK cycles
    const ADC12.SHT1_12;
    // 1024 ADC12CLK cycles
enum ADC12.ADC12SSEL_t
index URL

ADC12SSEL Bits

XDCscript usage meta-domain
values of type ADC12.ADC12SSEL_t
    const ADC12.ADC12SSEL_0;
    // ADC12OSC
    const ADC12.ADC12SSEL_1;
    // ACLK
    const ADC12.ADC12SSEL_2;
    // MCLK
    const ADC12.ADC12SSEL_3;
    // SMCLK
enum ADC12.ADC12TOVIE_t
index URL

ADC12TOVIE Bit

XDCscript usage meta-domain
values of type ADC12.ADC12TOVIE_t
    const ADC12.ADC12TOVIE_OFF;
    // Conversion time overflow interrupt disabled
    const ADC12.ADC12TOVIE;
    // Conversion time overflow interrupt disabled
enum ADC12.CONSEQ_t
index URL

CONSEQ Bits

XDCscript usage meta-domain
values of type ADC12.CONSEQ_t
    const ADC12.CONSEQ_0;
    // Single channel single conversion
    const ADC12.CONSEQ_1;
    // Sequence of channels
    const ADC12.CONSEQ_2;
    // Repeat single channel
    const ADC12.CONSEQ_3;
    // Repeat sequence of channels
enum ADC12.CSTARTADD_t
index URL

CSTARTADD Bits

XDCscript usage meta-domain
values of type ADC12.CSTARTADD_t
    const ADC12.CSTARTADD_0;
    // ADC12MEM0
    const ADC12.CSTARTADD_1;
    // ADC12MEM1
    const ADC12.CSTARTADD_2;
    // ADC12MEM2
    const ADC12.CSTARTADD_3;
    // ADC12MEM3
    const ADC12.CSTARTADD_4;
    // ADC12MEM4
    const ADC12.CSTARTADD_5;
    // ADC12MEM5
    const ADC12.CSTARTADD_6;
    // ADC12MEM6
    const ADC12.CSTARTADD_7;
    // ADC12MEM7
    const ADC12.CSTARTADD_8;
    // ADC12MEM8
    const ADC12.CSTARTADD_9;
    // ADC12MEM9
    const ADC12.CSTARTADD_10;
    // ADC12MEM10
    const ADC12.CSTARTADD_11;
    // ADC12MEM11
    const ADC12.CSTARTADD_12;
    // ADC12MEM12
    const ADC12.CSTARTADD_13;
    // ADC12MEM13
    const ADC12.CSTARTADD_14;
    // ADC12MEM14
    const ADC12.CSTARTADD_15;
    // ADC12MEM15
enum ADC12.ENC_t
index URL

ENC Bit

XDCscript usage meta-domain
values of type ADC12.ENC_t
    const ADC12.ENC_OFF;
    // ADC12 disabled
    const ADC12.ENC;
    // ADC12 enabled
enum ADC12.EOS_t
index URL

EOS Bit

XDCscript usage meta-domain
values of type ADC12.EOS_t
    const ADC12.EOS_OFF;
    // Not end of sequence
    const ADC12.EOS;
    // End of sequence
enum ADC12.INCH_t
index URL

INCH Bits

XDCscript usage meta-domain
values of type ADC12.INCH_t
    const ADC12.INCH_0;
    // A0
    const ADC12.INCH_1;
    // A1
    const ADC12.INCH_2;
    // A2
    const ADC12.INCH_3;
    // A3
    const ADC12.INCH_4;
    // A4
    const ADC12.INCH_5;
    // A5
    const ADC12.INCH_6;
    // A6
    const ADC12.INCH_7;
    // A7
    const ADC12.INCH_8;
    // VeREF+
    const ADC12.INCH_9;
    // VREF--/VeREF-
    const ADC12.INCH_10;
    // Temperature diode
    const ADC12.INCH_11;
    // (AVcc - AVss) / 2
    const ADC12.INCH_12;
    // GND
    const ADC12.INCH_13;
    // GND
    const ADC12.INCH_14;
    // GND
    const ADC12.INCH_15;
    // GND
enum ADC12.ISSH_t
index URL

ISSH Bits

XDCscript usage meta-domain
values of type ADC12.ISSH_t
    const ADC12.ISSH_OFF;
    // The sample-input signal is not inverted
    const ADC12.ISSH;
    // The sample-input signal is inverted
enum ADC12.MSC_t
index URL

MSC Bit

XDCscript usage meta-domain
values of type ADC12.MSC_t
    const ADC12.MSC_OFF;
    // The sampling timer requires a rising edge of the SHI signal to trigger each sample-and-conversion
    const ADC12.MSC;
    // The first rising edge of the SHI signal triggers the sampling timer, but further sample-and-conversions are performed automatically as soon as the prior conversion is completed
enum ADC12.REF2_5V_t
index URL

REF2_5V Bit

XDCscript usage meta-domain
values of type ADC12.REF2_5V_t
    const ADC12.REF2_5V_OFF;
    // 1.5V
    const ADC12.REF2_5V;
    // 2.5V
enum ADC12.REFON_t
index URL

REFON Bit

XDCscript usage meta-domain
values of type ADC12.REFON_t
    const ADC12.REFON_OFF;
    // Reference off
    const ADC12.REFON;
    // Reference on
enum ADC12.SHP_t
index URL

SHP Bits

XDCscript usage meta-domain
values of type ADC12.SHP_t
    const ADC12.SHP_OFF;
    // SAMPCON signal is sourced from the sample-input signal
    const ADC12.SHP;
    // SAMPCON signal is sourced from the sampling timer
enum ADC12.SHS_t
index URL

SHS Bits

XDCscript usage meta-domain
values of type ADC12.SHS_t
    const ADC12.SHS_0;
    // ADC12SC bit
    const ADC12.SHS_1;
    // Timer_A.OUT1
    const ADC12.SHS_2;
    // Timer_B.OUT0
    const ADC12.SHS_3;
    // Timer_B.OUT1
enum ADC12.SREF_t
index URL

SREF Bits

XDCscript usage meta-domain
values of type ADC12.SREF_t
    const ADC12.SREF_0;
    // VR+ = AVcc and VR-- = AVss
    const ADC12.SREF_1;
    // VR+ = VREF+ and VR-- = AVss
    const ADC12.SREF_2;
    // VR+ = VeREF+ and VR-- = AVss
    const ADC12.SREF_3;
    // VR+ = VeREF+ and VR-- = AVss
    const ADC12.SREF_4;
    // VR+ = AVcc and VR-- = VREF--/ VeREF--
    const ADC12.SREF_5;
    // VR+ = VREF+ and VR-- = VREF--/ VeREF--
    const ADC12.SREF_6;
    // VR+ = VeREF+ and VR-- = VREF--/ VeREF--
    const ADC12.SREF_7;
    // VR+ = VeREF+ and VR-- = VREF--/ VeREF--
struct ADC12.ADC12CTL0_t
index URL

ADC12 Control Register 0

XDCscript usage meta-domain
var obj = new ADC12.ADC12CTL0_t;
    obj.ADC12SHT1 = ADC12.ADC12SHT1_t ...
    // Sample-and-hold time. These bits define the number of ADC12CLK cycles in the sampling period for registers ADC12MEM8 to ADC12MEM15
    obj.ADC12SHT0 = ADC12.ADC12SHT0_t ...
    // Sample-and-hold time. These bits define the number of ADC12CLK cycles in the sampling period for registers ADC12MEM0 to ADC12MEM7
    obj.MSC = ADC12.MSC_t ...
    // Multiple sample and conversion. Valid only for sequence or repeated modes. 0 The sampling timer requires a rising edge of the SHI signal to trigger each sample-and-conversion. 1 The first rising edge of the SHI signal triggers the sampling timer, but further sample-and-conversions are performed automatically as soon as the prior conversion is completed
    obj.REF2_5V = ADC12.REF2_5V_t ...
    // Reference generator voltage. REFON must also be set. 0 1.5V 1 2.5V
    obj.REFON = ADC12.REFON_t ...
    // Reference generator on 0 Reference off 1 Reference on
    obj.ADC12ON = ADC12.ADC12ON_t ...
    // ADC12 on 0 ADC12 off 1 ADC12 on
    obj.ADC12OVIE = ADC12.ADC12OVIE_t ...
    // ADC12MEMx overflow-interrupt enable. The GIE bit must also be set to enable the interrupt. 0 Overflow interrupt disabled 1 Overflow interrupt enabled
    obj.ADC12TOVIE = ADC12.ADC12TOVIE_t ...
    // ADC12 conversion-time-overflow interrupt enable. The GIE bit must also be set to enable the interrupt. 0 Conversion time overflow interrupt disabled 1 Conversion time overflow interrupt enabled
    obj.ENC = ADC12.ENC_t ...
    // Enable conversion 0 ADC12 disabled 1 ADC12 enabled
    obj.ADC12SC = ADC12.ADC12SC_t ...
    // Start conversion. Software-controlled sample-and-conversion start. ADC12SC and ENC may be set together with one instruction. ADC12SC is reset automatically. 0 No sample-and-conversion-start 1 Start sample-and-conversion
struct ADC12.ADC12CTL1_t
index URL

ADC12 Control Register 1

XDCscript usage meta-domain
var obj = new ADC12.ADC12CTL1_t;
    obj.CSTARTADD = ADC12.CSTARTADD_t ...
    // Conversion start address. These bits select which ADC12 conversion-memory register is used for a single conversion or for the first conversion in a sequence. The value of CSTARTADDx is 0 to 0Fh, corresponding to ADC12MEM0 to ADC12MEM15
    obj.SHS = ADC12.SHS_t ...
    // Sample-and-hold source select 00 ADC12SC bit 01 Timer_A.OUT1 10 Timer_B.OUT0 11 Timer_B.OUT1
    obj.SHP = ADC12.SHP_t ...
    // Sample-and-hold pulse-mode select. This bit selects the source of the sampling signal (SAMPCON) to be either the output of the sampling timer or the sample-input signal directly. 0 SAMPCON signal is sourced from the sample-input signal. 1 SAMPCON signal is sourced from the sampling timer
    obj.ISSH = ADC12.ISSH_t ...
    // Invert signal sample-and-hold 0 The sample-input signal is not inverted. 1 The sample-input signal is inverted
    obj.ADC12DIV = ADC12.ADC12DIV_t ...
    // ADC12 clock divider 000 /1 001 /2 010 /3 011 /4 100 /5 101 /6 110 /7 111 /8
    obj.ADC12SSEL = ADC12.ADC12SSEL_t ...
    // ADC12 clock source select 00 ADC12OSC 01 ACLK 10 MCLK 11 SMCLK
    obj.CONSEQ = ADC12.CONSEQ_t ...
    // Conversion sequence mode select 00 Single-channel, single-conversion 01 Sequence-of-channels 10 Repeat-single-channel 11 Repeat-sequence-of-channels
    obj.ADC12BUSY = ADC12.ADC12BUSY_t ...
    // ADC12 busy. This bit indicates an active sample or conversion operation. 0 No operation is active. 1 A sequence, sample, or conversion is active
struct ADC12.ADC12IE_t
index URL

ADC12 Interrupt Enable Register

XDCscript usage meta-domain
var obj = new ADC12.ADC12IE_t;
    obj.ADC12IE15 = ADC12.ADC12IE15_t ...
    // Enable or disable the interrupt request for the ADC12IFG15 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE14 = ADC12.ADC12IE14_t ...
    // Enable or disable the interrupt request for the ADC12IFG14 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE13 = ADC12.ADC12IE13_t ...
    // Enable or disable the interrupt request for the ADC12IFG13 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE12 = ADC12.ADC12IE12_t ...
    // Enable or disable the interrupt request for the ADC12IFG12 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE11 = ADC12.ADC12IE11_t ...
    // Enable or disable the interrupt request for the ADC12IFG11 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE10 = ADC12.ADC12IE10_t ...
    // Enable or disable the interrupt request for the ADC12IFG10 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE9 = ADC12.ADC12IE9_t ...
    // Enable or disable the interrupt request for the ADC12IFG9 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE8 = ADC12.ADC12IE8_t ...
    // Enable or disable the interrupt request for the ADC12IFG8 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE7 = ADC12.ADC12IE7_t ...
    // Enable or disable the interrupt request for the ADC12IFG7 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE6 = ADC12.ADC12IE6_t ...
    // Enable or disable the interrupt request for the ADC12IFG6 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE5 = ADC12.ADC12IE5_t ...
    // Enable or disable the interrupt request for the ADC12IFG5 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE4 = ADC12.ADC12IE4_t ...
    // Enable or disable the interrupt request for the ADC12IFG4 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE3 = ADC12.ADC12IE3_t ...
    // Enable or disable the interrupt request for the ADC12IFG3 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE2 = ADC12.ADC12IE2_t ...
    // Enable or disable the interrupt request for the ADC12IFG2 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE1 = ADC12.ADC12IE1_t ...
    // Enable or disable the interrupt request for the ADC12IFG1 bit. 0 Interrupt disabled 1 Interrupt enabled
    obj.ADC12IE0 = ADC12.ADC12IE0_t ...
    // Enable or disable the interrupt request for the ADC12IFG0 bit. 0 Interrupt disabled 1 Interrupt enabled
struct ADC12.ADC12MCTL_t
index URL

ADC12 Conversion Memory Control Registers

XDCscript usage meta-domain
var obj = new ADC12.ADC12MCTL_t;
    obj.EOS = ADC12.EOS_t ...
    // End of sequence. Indicates the last conversion in a sequence. 0 Not end of sequence 1 End of sequence
    obj.SREF = ADC12.SREF_t ...
    // Select reference 000 VR+ = AVCC and VR-- = AVSS 001 VR+ = VREF+ and VR-- = AVSS 010 VR+ = VeREF+ and VR-- = AVSS 011 VR+ = VeREF+ and VR-- = AVSS 100 VR+ = AVCC and VR-- = VREF--/ VeREF-- 101 VR+ = VREF+ and VR-- = VREF--/ VeREF-- 110 VR+ = VeREF+ and VR-- = VREF--/ VeREF-- 111 VR+ = VeREF+ and VR-- = VREF--/ VeREF--
    obj.INCH = ADC12.INCH_t ...
    // Input channel select 0000 A0 0001 A1 0010 A2 0011 A3 0100 A4 0101 A5 0110 A6 0111 A7 1000 VeREF+ 1001 VREF--/VeREF-- 1010 Temperature diode 1011 (AVCC � AVSS) / 2 1100 GND 1101 GND 1110 GND 1111 GND
struct ADC12.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new ADC12.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct ADC12.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new ADC12.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
ADC12.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
ADC12.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
ADC12.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
ADC12.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new ADC12.Params;
// Instance config-params object
    params.ADC12CTL0 = ADC12.ADC12CTL0_t {
    // ADC12CTL0 Register
        ADC12SHT1: ADC12.SHT1_0,
        ADC12SHT0: ADC12.SHT0_0,
        MSC: ADC12.MSC_OFF,
        REF2_5V: ADC12.REF2_5V_OFF,
        REFON: ADC12.REFON_OFF,
        ADC12ON: ADC12.ADC12ON_OFF,
        ADC12OVIE: ADC12.ADC12OVIE_OFF,
        ADC12TOVIE: ADC12.ADC12TOVIE_OFF,
        ENC: ADC12.ENC_OFF,
        ADC12SC: ADC12.ADC12SC_OFF
    };
    params.ADC12CTL1 = ADC12.ADC12CTL1_t {
    // ADC12CTL1 Register
        CSTARTADD: ADC12.CSTARTADD_0,
        SHS: ADC12.SHS_0,
        SHP: ADC12.SHP_OFF,
        ISSH: ADC12.ISSH_OFF,
        ADC12DIV: ADC12.ADC12DIV_0,
        ADC12SSEL: ADC12.ADC12SSEL_0,
        CONSEQ: ADC12.CONSEQ_0,
        ADC12BUSY: ADC12.ADC12BUSY_OFF
    };
    params.ADC12IE = ADC12.ADC12IE_t {
    // ADC12 Interrupt Enable Register
        ADC12IE15: ADC12.ADC12IE15_OFF,
        ADC12IE14: ADC12.ADC12IE14_OFF,
        ADC12IE13: ADC12.ADC12IE13_OFF,
        ADC12IE12: ADC12.ADC12IE12_OFF,
        ADC12IE11: ADC12.ADC12IE11_OFF,
        ADC12IE10: ADC12.ADC12IE10_OFF,
        ADC12IE9: ADC12.ADC12IE9_OFF,
        ADC12IE8: ADC12.ADC12IE8_OFF,
        ADC12IE7: ADC12.ADC12IE7_OFF,
        ADC12IE6: ADC12.ADC12IE6_OFF,
        ADC12IE5: ADC12.ADC12IE5_OFF,
        ADC12IE4: ADC12.ADC12IE4_OFF,
        ADC12IE3: ADC12.ADC12IE3_OFF,
        ADC12IE2: ADC12.ADC12IE2_OFF,
        ADC12IE1: ADC12.ADC12IE1_OFF,
        ADC12IE0: ADC12.ADC12IE0_OFF
    };
    params.ADC12IFG = Bits16 0;
    // ADC12IFG Register
    params.ADC12IV = Bits16 ADC12.ADC12IV_NONE;
    // ADC12IV Register
    params.ADC12MCTL0 = ADC12.ADC12MCTL_t {
    // ADC12MCTL0 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL1 = ADC12.ADC12MCTL_t {
    // ADC12MCTL1 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL10 = ADC12.ADC12MCTL_t {
    // ADC12MCTL10 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL11 = ADC12.ADC12MCTL_t {
    // ADC12MCTL11 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL12 = ADC12.ADC12MCTL_t {
    // ADC12MCTL12 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL13 = ADC12.ADC12MCTL_t {
    // ADC12MCTL13 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL14 = ADC12.ADC12MCTL_t {
    // ADC12MCTL14 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL15 = ADC12.ADC12MCTL_t {
    // ADC12MCTL15 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL2 = ADC12.ADC12MCTL_t {
    // ADC12MCTL2 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL3 = ADC12.ADC12MCTL_t {
    // ADC12MCTL3 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL4 = ADC12.ADC12MCTL_t {
    // ADC12MCTL4 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL5 = ADC12.ADC12MCTL_t {
    // ADC12MCTL5 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL6 = ADC12.ADC12MCTL_t {
    // ADC12MCTL6 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL7 = ADC12.ADC12MCTL_t {
    // ADC12MCTL7 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL8 = ADC12.ADC12MCTL_t {
    // ADC12MCTL8 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MCTL9 = ADC12.ADC12MCTL_t {
    // ADC12MCTL9 Register
        EOS: ADC12.EOS_OFF,
        SREF: ADC12.SREF_0,
        INCH: ADC12.INCH_0
    };
    params.ADC12MEM0 = Bits16 0;
    // ADC12MEM0 Register
    params.ADC12MEM1 = Bits16 0;
    // ADC12MEM1 Register
    params.ADC12MEM10 = Bits16 0;
    // ADC12MEM10 Register
    params.ADC12MEM11 = Bits16 0;
    // ADC12MEM11 Register
    params.ADC12MEM12 = Bits16 0;
    // ADC12MEM12 Register
    params.ADC12MEM13 = Bits16 0;
    // ADC12MEM13 Register
    params.ADC12MEM14 = Bits16 0;
    // ADC12MEM14 Register
    params.ADC12MEM15 = Bits16 0;
    // ADC12MEM15 Register
    params.ADC12MEM2 = Bits16 0;
    // ADC12MEM2 Register
    params.ADC12MEM3 = Bits16 0;
    // ADC12MEM3 Register
    params.ADC12MEM4 = Bits16 0;
    // ADC12MEM4 Register
    params.ADC12MEM5 = Bits16 0;
    // ADC12MEM5 Register
    params.ADC12MEM6 = Bits16 0;
    // ADC12MEM6 Register
    params.ADC12MEM7 = Bits16 0;
    // ADC12MEM7 Register
    params.ADC12MEM8 = Bits16 0;
    // ADC12MEM8 Register
    params.ADC12MEM9 = Bits16 0;
    // ADC12MEM9 Register
    params.forceSetDefaultRegister = ADC12.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "ADC12CTL0",
            regForceSet: false
        },
        {
            register: "ADC12CTL1",
            regForceSet: false
        },
        {
            register: "ADC12IFG",
            regForceSet: false
        },
        {
            register: "ADC12IV",
            regForceSet: false
        },
        {
            register: "ADC12IE",
            regForceSet: false
        },
        {
            register: "ADC12MCTL0",
            regForceSet: false
        },
        {
            register: "ADC12MCTL1",
            regForceSet: false
        },
        {
            register: "ADC12MCTL2",
            regForceSet: false
        },
        {
            register: "ADC12MCTL3",
            regForceSet: false
        },
        {
            register: "ADC12MCTL4",
            regForceSet: false
        },
        {
            register: "ADC12MCTL5",
            regForceSet: false
        },
        {
            register: "ADC12MCTL6",
            regForceSet: false
        },
        {
            register: "ADC12MCTL7",
            regForceSet: false
        },
        {
            register: "ADC12MCTL8",
            regForceSet: false
        },
        {
            register: "ADC12MCTL9",
            regForceSet: false
        },
        {
            register: "ADC12MCTL10",
            regForceSet: false
        },
        {
            register: "ADC12MCTL11",
            regForceSet: false
        },
        {
            register: "ADC12MCTL12",
            regForceSet: false
        },
        {
            register: "ADC12MCTL13",
            regForceSet: false
        },
        {
            register: "ADC12MCTL14",
            regForceSet: false
        },
        {
            register: "ADC12MCTL15",
            regForceSet: false
        },
        {
            register: "ADC12MEM0",
            regForceSet: false
        },
        {
            register: "ADC12MEM1",
            regForceSet: false
        },
        {
            register: "ADC12MEM2",
            regForceSet: false
        },
        {
            register: "ADC12MEM3",
            regForceSet: false
        },
        {
            register: "ADC12MEM4",
            regForceSet: false
        },
        {
            register: "ADC12MEM5",
            regForceSet: false
        },
        {
            register: "ADC12MEM6",
            regForceSet: false
        },
        {
            register: "ADC12MEM7",
            regForceSet: false
        },
        {
            register: "ADC12MEM8",
            regForceSet: false
        },
        {
            register: "ADC12MEM9",
            regForceSet: false
        },
        {
            register: "ADC12MEM10",
            regForceSet: false
        },
        {
            register: "ADC12MEM11",
            regForceSet: false
        },
        {
            register: "ADC12MEM12",
            regForceSet: false
        },
        {
            register: "ADC12MEM13",
            regForceSet: false
        },
        {
            register: "ADC12MEM14",
            regForceSet: false
        },
        {
            register: "ADC12MEM15",
            regForceSet: false
        }
    ];
    params.interruptSource = ADC12.regIntVect_t[16] undefined;
    // ADC12 has 16 interrupt enable
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config ADC12.ADC12CTL0 // instance
index URL

ADC12CTL0 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12CTL0 = ADC12.ADC12CTL0_t {
    ADC12SHT1: ADC12.SHT1_0,
    ADC12SHT0: ADC12.SHT0_0,
    MSC: ADC12.MSC_OFF,
    REF2_5V: ADC12.REF2_5V_OFF,
    REFON: ADC12.REFON_OFF,
    ADC12ON: ADC12.ADC12ON_OFF,
    ADC12OVIE: ADC12.ADC12OVIE_OFF,
    ADC12TOVIE: ADC12.ADC12TOVIE_OFF,
    ENC: ADC12.ENC_OFF,
    ADC12SC: ADC12.ADC12SC_OFF
};
config ADC12.ADC12CTL1 // instance
index URL

ADC12CTL1 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12CTL1 = ADC12.ADC12CTL1_t {
    CSTARTADD: ADC12.CSTARTADD_0,
    SHS: ADC12.SHS_0,
    SHP: ADC12.SHP_OFF,
    ISSH: ADC12.ISSH_OFF,
    ADC12DIV: ADC12.ADC12DIV_0,
    ADC12SSEL: ADC12.ADC12SSEL_0,
    CONSEQ: ADC12.CONSEQ_0,
    ADC12BUSY: ADC12.ADC12BUSY_OFF
};
config ADC12.ADC12IE // instance
index URL

ADC12 Interrupt Enable Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12IE = ADC12.ADC12IE_t {
    ADC12IE15: ADC12.ADC12IE15_OFF,
    ADC12IE14: ADC12.ADC12IE14_OFF,
    ADC12IE13: ADC12.ADC12IE13_OFF,
    ADC12IE12: ADC12.ADC12IE12_OFF,
    ADC12IE11: ADC12.ADC12IE11_OFF,
    ADC12IE10: ADC12.ADC12IE10_OFF,
    ADC12IE9: ADC12.ADC12IE9_OFF,
    ADC12IE8: ADC12.ADC12IE8_OFF,
    ADC12IE7: ADC12.ADC12IE7_OFF,
    ADC12IE6: ADC12.ADC12IE6_OFF,
    ADC12IE5: ADC12.ADC12IE5_OFF,
    ADC12IE4: ADC12.ADC12IE4_OFF,
    ADC12IE3: ADC12.ADC12IE3_OFF,
    ADC12IE2: ADC12.ADC12IE2_OFF,
    ADC12IE1: ADC12.ADC12IE1_OFF,
    ADC12IE0: ADC12.ADC12IE0_OFF
};
config ADC12.ADC12IFG // instance
index URL

ADC12IFG Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12IFG = Bits16 0;
config ADC12.ADC12IV // instance
index URL

ADC12IV Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12IV = Bits16 ADC12.ADC12IV_NONE;
config ADC12.ADC12MCTL0 // instance
index URL

ADC12MCTL0 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL0 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL1 // instance
index URL

ADC12MCTL1 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL1 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL10 // instance
index URL

ADC12MCTL10 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL10 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL11 // instance
index URL

ADC12MCTL11 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL11 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL12 // instance
index URL

ADC12MCTL12 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL12 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL13 // instance
index URL

ADC12MCTL13 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL13 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL14 // instance
index URL

ADC12MCTL14 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL14 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL15 // instance
index URL

ADC12MCTL15 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL15 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL2 // instance
index URL

ADC12MCTL2 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL2 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL3 // instance
index URL

ADC12MCTL3 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL3 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL4 // instance
index URL

ADC12MCTL4 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL4 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL5 // instance
index URL

ADC12MCTL5 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL5 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL6 // instance
index URL

ADC12MCTL6 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL6 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL7 // instance
index URL

ADC12MCTL7 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL7 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL8 // instance
index URL

ADC12MCTL8 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL8 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MCTL9 // instance
index URL

ADC12MCTL9 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MCTL9 = ADC12.ADC12MCTL_t {
    EOS: ADC12.EOS_OFF,
    SREF: ADC12.SREF_0,
    INCH: ADC12.INCH_0
};
config ADC12.ADC12MEM0 // instance
index URL

ADC12MEM0 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM0 = Bits16 0;
config ADC12.ADC12MEM1 // instance
index URL

ADC12MEM1 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM1 = Bits16 0;
config ADC12.ADC12MEM10 // instance
index URL

ADC12MEM10 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM10 = Bits16 0;
config ADC12.ADC12MEM11 // instance
index URL

ADC12MEM11 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM11 = Bits16 0;
config ADC12.ADC12MEM12 // instance
index URL

ADC12MEM12 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM12 = Bits16 0;
config ADC12.ADC12MEM13 // instance
index URL

ADC12MEM13 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM13 = Bits16 0;
config ADC12.ADC12MEM14 // instance
index URL

ADC12MEM14 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM14 = Bits16 0;
config ADC12.ADC12MEM15 // instance
index URL

ADC12MEM15 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM15 = Bits16 0;
config ADC12.ADC12MEM2 // instance
index URL

ADC12MEM2 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM2 = Bits16 0;
config ADC12.ADC12MEM3 // instance
index URL

ADC12MEM3 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM3 = Bits16 0;
config ADC12.ADC12MEM4 // instance
index URL

ADC12MEM4 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM4 = Bits16 0;
config ADC12.ADC12MEM5 // instance
index URL

ADC12MEM5 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM5 = Bits16 0;
config ADC12.ADC12MEM6 // instance
index URL

ADC12MEM6 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM6 = Bits16 0;
config ADC12.ADC12MEM7 // instance
index URL

ADC12MEM7 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM7 = Bits16 0;
config ADC12.ADC12MEM8 // instance
index URL

ADC12MEM8 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM8 = Bits16 0;
config ADC12.ADC12MEM9 // instance
index URL

ADC12MEM9 Register

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.ADC12MEM9 = Bits16 0;
config ADC12.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new ADC12.Params;
...
const params.forceSetDefaultRegister = ADC12.ForceSetDefaultRegister_t[] [
    {
        register: "ADC12CTL0",
        regForceSet: false
    },
    {
        register: "ADC12CTL1",
        regForceSet: false
    },
    {
        register: "ADC12IFG",
        regForceSet: false
    },
    {
        register: "ADC12IV",
        regForceSet: false
    },
    {
        register: "ADC12IE",
        regForceSet: false
    },
    {
        register: "ADC12MCTL0",
        regForceSet: false
    },
    {
        register: "ADC12MCTL1",
        regForceSet: false
    },
    {
        register: "ADC12MCTL2",
        regForceSet: false
    },
    {
        register: "ADC12MCTL3",
        regForceSet: false
    },
    {
        register: "ADC12MCTL4",
        regForceSet: false
    },
    {
        register: "ADC12MCTL5",
        regForceSet: false
    },
    {
        register: "ADC12MCTL6",
        regForceSet: false
    },
    {
        register: "ADC12MCTL7",
        regForceSet: false
    },
    {
        register: "ADC12MCTL8",
        regForceSet: false
    },
    {
        register: "ADC12MCTL9",
        regForceSet: false
    },
    {
        register: "ADC12MCTL10",
        regForceSet: false
    },
    {
        register: "ADC12MCTL11",
        regForceSet: false
    },
    {
        register: "ADC12MCTL12",
        regForceSet: false
    },
    {
        register: "ADC12MCTL13",
        regForceSet: false
    },
    {
        register: "ADC12MCTL14",
        regForceSet: false
    },
    {
        register: "ADC12MCTL15",
        regForceSet: false
    },
    {
        register: "ADC12MEM0",
        regForceSet: false
    },
    {
        register: "ADC12MEM1",
        regForceSet: false
    },
    {
        register: "ADC12MEM2",
        regForceSet: false
    },
    {
        register: "ADC12MEM3",
        regForceSet: false
    },
    {
        register: "ADC12MEM4",
        regForceSet: false
    },
    {
        register: "ADC12MEM5",
        regForceSet: false
    },
    {
        register: "ADC12MEM6",
        regForceSet: false
    },
    {
        register: "ADC12MEM7",
        regForceSet: false
    },
    {
        register: "ADC12MEM8",
        regForceSet: false
    },
    {
        register: "ADC12MEM9",
        regForceSet: false
    },
    {
        register: "ADC12MEM10",
        regForceSet: false
    },
    {
        register: "ADC12MEM11",
        regForceSet: false
    },
    {
        register: "ADC12MEM12",
        regForceSet: false
    },
    {
        register: "ADC12MEM13",
        regForceSet: false
    },
    {
        register: "ADC12MEM14",
        regForceSet: false
    },
    {
        register: "ADC12MEM15",
        regForceSet: false
    }
];
config ADC12.interruptSource // instance
index URL

ADC12 has 16 interrupt enable

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.interruptSource = ADC12.regIntVect_t[16] undefined;
config ADC12.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config ADC12.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new ADC12.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new ADC12.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = ADC12.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:33 GMT


module ti.catalog.msp430.peripherals.adc.ADC12

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ADC12 ========
    14     *  MSP430 12-bit Analog to Digital Converter
    15     */
    16    metaonly module ADC12 inherits IADC {
    17
    18        /*! SHT1 Bits */
    19        enum ADC12SHT1_t {
    20            SHT1_0  = (0*0x1000u), /*! 4 ADC12CLK cycles */
    21            SHT1_1  = (1*0x1000u), /*! 8 ADC12CLK cycles */
    22            SHT1_2  = (2*0x1000u), /*! 16 ADC12CLK cycles */
    23            SHT1_3  = (3*0x1000u), /*! 32 ADC12CLK cycles */
    24            SHT1_4  = (4*0x1000u), /*! 64 ADC12CLK cycles */
    25            SHT1_5  = (5*0x1000u), /*! 96 ADC12CLK cycles */
    26            SHT1_6  = (6*0x1000u), /*! 128 ADC12CLK cycles */
    27            SHT1_7  = (7*0x1000u), /*! 192 ADC12CLK cycles */
    28            SHT1_8  = (8*0x1000u), /*! 256 ADC12CLK cycles */
    29            SHT1_9  = (9*0x1000u), /*! 384 ADC12CLK cycles */
    30            SHT1_10 = (10*0x1000u), /*! 512  ADC12CLK cycles */
    31            SHT1_11 = (11*0x1000u), /*! 768 ADC12CLK cycles */
    32            SHT1_12 = 12*0x1000u    /*! 1024 ADC12CLK cycles */
    33        };
    34
    35        /*! SHT0 Bits */
    36        enum ADC12SHT0_t {
    37            SHT0_0  = (0*0x1000u), /*! 4 ADC12CLK cycles */
    38            SHT0_1  = (1*0x1000u), /*! 8 ADC12CLK cycles */
    39            SHT0_2  = (2*0x1000u), /*! 16 ADC12CLK cycles */
    40            SHT0_3  = (3*0x1000u), /*! 32 ADC12CLK cycles */
    41            SHT0_4  = (4*0x1000u), /*! 64 ADC12CLK cycles */
    42            SHT0_5  = (5*0x1000u), /*! 96 ADC12CLK cycles */
    43            SHT0_6  = (6*0x1000u), /*! 128 ADC12CLK cycles */
    44            SHT0_7  = (7*0x1000u), /*! 192 ADC12CLK cycles */
    45            SHT0_8  = (8*0x1000u), /*! 256 ADC12CLK cycles */
    46            SHT0_9  = (9*0x1000u), /*! 384 ADC12CLK cycles */
    47            SHT0_10 = (10*0x1000u), /*! 512  ADC12CLK cycles */
    48            SHT0_11 = (11*0x1000u), /*! 768 ADC12CLK cycles */
    49            SHT0_12 = 12*0x1000u    /*! 1024 ADC12CLK cycles */
    50        };
    51
    52        /*! MSC Bit */
    53        enum MSC_t {
    54            MSC_OFF = 0x000,       /*! The sampling timer requires a rising edge of the SHI
    55                                    *  signal to trigger each sample-and-conversion */
    56            MSC     = 0x080        /*! The first rising edge of the SHI signal triggers
    57                                    *  the sampling timer, but further sample-and-conversions
    58                                    *  are performed automatically as soon as the prior conversion
    59                                    *  is completed */
    60        };
    61
    62        /*! REF2_5V Bit */
    63        enum REF2_5V_t {
    64            REF2_5V_OFF = 0x000,   /*! 1.5V */
    65            REF2_5V     = 0x040    /*! 2.5V */
    66        };
    67
    68        /*! REFON Bit */
    69        enum REFON_t {
    70            REFON_OFF   = 0x000,   /*! Reference off */
    71            REFON       = 0x020    /*! Reference on */
    72        };
    73
    74        /*! ADC12ON Bit */
    75        enum ADC12ON_t {
    76            ADC12ON_OFF = 0x000,   /*! ADC12 off */
    77            ADC12ON     = 0x010    /*! ADC12 on */
    78        };
    79
    80        /*! ADC12OVIE Bit */
    81        enum ADC12OVIE_t {
    82            ADC12OVIE_OFF = 0x000,   /*! Overflow interrupt disabled */
    83            ADC12OVIE     = 0x008    /*! Overflow interrupt enabled */
    84        };
    85
    86        /*! ADC12TOVIE Bit */
    87        enum ADC12TOVIE_t {
    88            ADC12TOVIE_OFF = 0x000,   /*! Conversion time overflow interrupt disabled */
    89            ADC12TOVIE     = 0x004    /*! Conversion time overflow interrupt disabled */
    90        };
    91
    92        /*! ENC Bit */
    93        enum ENC_t {
    94            ENC_OFF = 0x000,  /*! ADC12 disabled */
    95            ENC     = 0x002   /*! ADC12 enabled */
    96        };
    97
    98        /*! ADC12SC Bit */
    99        enum ADC12SC_t {
   100            ADC12SC_OFF = 0x000,  /*! No sample-and-conversion-start */
   101            ADC12SC     = 0x001   /*! Start sample-and-conversion */
   102        };
   103
   104        /*! CSTARTADD Bits */
   105        enum CSTARTADD_t {
   106            CSTARTADD_0  = (0*0x1000u), /*! ADC12MEM0 */
   107            CSTARTADD_1  = (1*0x1000u), /*! ADC12MEM1 */
   108            CSTARTADD_2  = (2*0x1000u), /*! ADC12MEM2 */
   109            CSTARTADD_3  = (3*0x1000u), /*! ADC12MEM3 */
   110            CSTARTADD_4  = (4*0x1000u), /*! ADC12MEM4 */
   111            CSTARTADD_5  = (5*0x1000u), /*! ADC12MEM5 */
   112            CSTARTADD_6  = (6*0x1000u), /*! ADC12MEM6 */
   113            CSTARTADD_7  = (7*0x1000u), /*! ADC12MEM7 */
   114            CSTARTADD_8  = (8*0x1000u), /*! ADC12MEM8 */
   115            CSTARTADD_9  = (9*0x1000u), /*! ADC12MEM9 */
   116            CSTARTADD_10 = (10*0x1000u), /*! ADC12MEM10 */
   117            CSTARTADD_11 = (11*0x1000u), /*! ADC12MEM11 */
   118            CSTARTADD_12 = (12*0x1000u), /*! ADC12MEM12 */
   119            CSTARTADD_13 = (13*0x1000u), /*! ADC12MEM13 */
   120            CSTARTADD_14 = (14*0x1000u), /*! ADC12MEM14 */
   121            CSTARTADD_15 = 15*0x1000u    /*! ADC12MEM15 */
   122        };
   123
   124        /*! SHS Bits */
   125        enum SHS_t {
   126            SHS_0 = (0*0x400u),    /*! ADC12SC bit */
   127            SHS_1 = (1*0x400u),    /*! Timer_A.OUT1 */
   128            SHS_2 = (2*0x400u),    /*! Timer_B.OUT0 */
   129            SHS_3 = 3*0x400u       /*! Timer_B.OUT1 */
   130        };
   131
   132        /*! SHP Bits */
   133        enum SHP_t {
   134            SHP_OFF = 0x0000,  /*! SAMPCON signal is sourced from the sample-input signal */
   135            SHP     = 0x0200   /*! SAMPCON signal is sourced from the sampling timer. */
   136        };
   137
   138        /*! ISSH Bits */
   139        enum ISSH_t {
   140            ISSH_OFF = 0x0000,  /*! The sample-input signal is not inverted */
   141            ISSH     = 0x0100   /*! The sample-input signal is inverted */
   142        };
   143
   144
   145        /*! ADC12DIV Bits */
   146        enum ADC12DIV_t {
   147            ADC12DIV_0 = (0*0x20u),    /*! Divide by 1 */
   148            ADC12DIV_1 = (1*0x20u),    /*! Divide by 2 */
   149            ADC12DIV_2 = (2*0x20u),    /*! Divide by 3 */
   150            ADC12DIV_3 = (3*0x20u),    /*! Divide by 4 */
   151            ADC12DIV_4 = (4*0x20u),    /*! Divide by 5 */
   152            ADC12DIV_5 = (5*0x20u),    /*! Divide by 6 */
   153            ADC12DIV_6 = (6*0x20u),    /*! Divide by 7 */
   154            ADC12DIV_7 = 7*0x20u       /*! Divide by 8 */
   155        };
   156
   157        /*! ADC12SSEL Bits */
   158        enum ADC12SSEL_t {
   159            ADC12SSEL_0 = (0*8u),   /*! ADC12OSC */
   160            ADC12SSEL_1 = (1*8u),   /*! ACLK */
   161            ADC12SSEL_2 = (2*8u),   /*! MCLK */
   162            ADC12SSEL_3 = 3*8u      /*! SMCLK */
   163        };
   164
   165        /*! CONSEQ Bits */
   166        enum CONSEQ_t {
   167            CONSEQ_0 = (0*2u),       /*! Single channel single conversion */
   168            CONSEQ_1 = (1*2u),       /*! Sequence of channels */
   169            CONSEQ_2 = (2*2u),       /*! Repeat single channel */
   170            CONSEQ_3 = 3*2u          /*! Repeat sequence of channels */
   171        };
   172
   173        /*! ADC12 Busy Bit */
   174        enum ADC12BUSY_t {
   175            ADC12BUSY_OFF = 0x0000,
   176            ADC12BUSY     = 0x0001
   177        };
   178
   179        /*! EOS Bit */
   180        enum EOS_t {
   181            EOS_OFF = 0x0000,  /*! Not end of sequence */
   182            EOS     = 0x0080   /*! End of sequence */
   183        };
   184
   185        /*! SREF Bits */
   186        enum SREF_t {
   187            SREF_0 = (0*0x10u),    /*! VR+ = AVcc and VR-- = AVss */
   188            SREF_1 = (1*0x10u),    /*! VR+ = VREF+ and VR-- = AVss */
   189            SREF_2 = (2*0x10u),    /*! VR+ = VeREF+ and VR-- = AVss */
   190            SREF_3 = (3*0x10u),    /*! VR+ = VeREF+ and VR-- = AVss */
   191            SREF_4 = (4*0x10u),    /*! VR+ = AVcc and VR-- = VREF--/ VeREF-- */
   192            SREF_5 = (5*0x10u),    /*! VR+ = VREF+ and VR-- = VREF--/ VeREF-- */
   193            SREF_6 = (6*0x10u),    /*! VR+ = VeREF+ and VR-- = VREF--/ VeREF-- */
   194            SREF_7 = 7*0x10u       /*! VR+ = VeREF+ and VR-- = VREF--/ VeREF-- */
   195        };
   196
   197        /*! ADC12 Interrupt Enable Bit 15 */
   198        enum ADC12IE15_t {
   199            ADC12IE15_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG15 bit */
   200            ADC12IE15     = 0x8000   /*! Enable the interrupt request for the ADC12IFG15 bit */
   201        };
   202
   203        /*! ADC12 Interrupt Enable Bit 14 */
   204        enum ADC12IE14_t {
   205            ADC12IE14_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG14 bit */
   206            ADC12IE14     = 0x4000   /*! Enable the interrupt request for the ADC12IFG14 bit */
   207        };
   208
   209        /*! ADC12 Interrupt Enable Bit 13 */
   210        enum ADC12IE13_t {
   211            ADC12IE13_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG13 bit */
   212            ADC12IE13     = 0x2000   /*! Enable the interrupt request for the ADC12IFG13 bit */
   213        };
   214
   215        /*! ADC12 Interrupt Enable Bit 12 */
   216        enum ADC12IE12_t {
   217            ADC12IE12_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG12 bit */
   218            ADC12IE12     = 0x1000   /*! Enable the interrupt request for the ADC12IFG12 bit */
   219        };
   220
   221        /*! ADC12 Interrupt Enable Bit 11 */
   222        enum ADC12IE11_t {
   223            ADC12IE11_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG11 bit */
   224            ADC12IE11     = 0x0800   /*! Enable the interrupt request for the ADC12IFG11 bit */
   225        };
   226
   227        /*! ADC12 Interrupt Enable Bit 10 */
   228        enum ADC12IE10_t {
   229            ADC12IE10_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG10 bit */
   230            ADC12IE10     = 0x0400   /*! Enable the interrupt request for the ADC12IFG10 bit */
   231        };
   232
   233        /*! ADC12 Interrupt Enable Bit 9 */
   234        enum ADC12IE9_t {
   235            ADC12IE9_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG9 bit */
   236            ADC12IE9     = 0x0200   /*! Enable the interrupt request for the ADC12IFG9 bit */
   237        };
   238
   239        /*! ADC12 Interrupt Enable Bit 8 */
   240        enum ADC12IE8_t {
   241            ADC12IE8_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG8 bit */
   242            ADC12IE8     = 0x0100   /*! Enable the interrupt request for the ADC12IFG8 bit */
   243        };
   244
   245        /*! ADC12 Interrupt Enable Bit 7 */
   246        enum ADC12IE7_t {
   247            ADC12IE7_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG7 bit */
   248            ADC12IE7     = 0x0080   /*! Enable the interrupt request for the ADC12IFG7 bit */
   249        };
   250
   251        /*! ADC12 Interrupt Enable Bit 6 */
   252        enum ADC12IE6_t {
   253            ADC12IE6_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG6 bit */
   254            ADC12IE6     = 0x0040   /*! Enable the interrupt request for the ADC12IFG6 bit */
   255        };
   256
   257        /*! ADC12 Interrupt Enable Bit 5 */
   258        enum ADC12IE5_t {
   259            ADC12IE5_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG5 bit */
   260            ADC12IE5     = 0x0020   /*! Enable the interrupt request for the ADC12IFG5 bit */
   261        };
   262
   263        /*! ADC12 Interrupt Enable Bit 4 */
   264        enum ADC12IE4_t {
   265            ADC12IE4_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG4 bit */
   266            ADC12IE4     = 0x0010   /*! Enable the interrupt request for the ADC12IFG4 bit */
   267        };
   268
   269        /*! ADC12 Interrupt Enable Bit 3 */
   270        enum ADC12IE3_t {
   271            ADC12IE3_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG3 bit */
   272            ADC12IE3     = 0x0008   /*! Enable the interrupt request for the ADC12IFG3 bit */
   273        };
   274
   275        /*! ADC12 Interrupt Enable Bit 2 */
   276        enum ADC12IE2_t {
   277            ADC12IE2_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG2 bit */
   278            ADC12IE2     = 0x0004   /*! Enable the interrupt request for the ADC12IFG2 bit */
   279        };
   280
   281        /*! ADC12 Interrupt Enable Bit 1 */
   282        enum ADC12IE1_t {
   283            ADC12IE1_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG1 bit */
   284            ADC12IE1     = 0x0002   /*! Enable the interrupt request for the ADC12IFG1 bit */
   285        };
   286
   287        /*! ADC12 Interrupt Enable Bit 0 */
   288        enum ADC12IE0_t {
   289            ADC12IE0_OFF = 0x0000,  /*! Disable the interrupt request for the ADC12IFG0 bit */
   290            ADC12IE0     = 0x0001   /*! Enable the interrupt request for the ADC12IFG0 bit */
   291        };
   292
   293        /*! INCH Bits */
   294        enum INCH_t {
   295            INCH_0 = (0),       /*! A0 */
   296            INCH_1 = (1),       /*! A1 */
   297            INCH_2 = (2),       /*! A2 */
   298            INCH_3 = (3),       /*! A3 */
   299            INCH_4 = (4),       /*! A4 */
   300            INCH_5 = (5),       /*! A5 */
   301            INCH_6 = (6),       /*! A6 */
   302            INCH_7 = (7),       /*! A7 */
   303            INCH_8 = (8),       /*! VeREF+ */
   304            INCH_9 = (9),       /*! VREF--/VeREF- */
   305            INCH_10 = (10),     /*! Temperature diode */
   306            INCH_11 = (11),     /*! (AVcc - AVss) / 2 */
   307            INCH_12 = (12),     /*! GND */
   308            INCH_13 = (13),     /*! GND */
   309            INCH_14 = (14),     /*! GND */
   310            INCH_15 = 15        /*! GND */
   311        };
   312
   313
   314        /*! ADC12IV Definitions */
   315        enum ADC12IV_t {
   316            ADC12IV_NONE        =  (0x0000),  /*! No Interrupt pending */
   317            ADC12IV_ADC12OVIFG  =  (0x0002),  /*! ADC12OVIFG */
   318            ADC12IV_ADC12TOVIFG =  (0x0004),  /*! ADC12TOVIFG */
   319            ADC12IV_ADC12IFG0   =  (0x0006),  /*! ADC12IFG0 */
   320            ADC12IV_ADC12IFG1   =  (0x0008),  /*! ADC12IFG1 */
   321            ADC12IV_ADC12IFG2   =  (0x000A),  /*! ADC12IFG2 */
   322            ADC12IV_ADC12IFG3   =  (0x000C),  /*! ADC12IFG3 */
   323            ADC12IV_ADC12IFG4   =  (0x000E),  /*! ADC12IFG4 */
   324            ADC12IV_ADC12IFG5   =  (0x0010),  /*! ADC12IFG5 */
   325            ADC12IV_ADC12IFG6   =  (0x0012),  /*! ADC12IFG6 */
   326            ADC12IV_ADC12IFG7   =  (0x0014),  /*! ADC12IFG7 */
   327            ADC12IV_ADC12IFG8   =  (0x0016),  /*! ADC12IFG8 */
   328            ADC12IV_ADC12IFG9   =  (0x0018),  /*! ADC12IFG9 */
   329            ADC12IV_ADC12IFG10  =  (0x001A),  /*! ADC12IFG10 */
   330            ADC12IV_ADC12IFG11  =  (0x001C),  /*! ADC12IFG11 */
   331            ADC12IV_ADC12IFG12  =  (0x001E),  /*! ADC12IFG12 */
   332            ADC12IV_ADC12IFG13  =  (0x0020),  /*! ADC12IFG13 */
   333            ADC12IV_ADC12IFG14  =  (0x0022),  /*! ADC12IFG14 */
   334            ADC12IV_ADC12IFG15  =  0x0024     /*! ADC12IFG15 */
   335        };
   336
   337        /*! ADC12 Control Register 0 */
   338        struct ADC12CTL0_t {
   339            ADC12SHT1_t ADC12SHT1;  /*! Sample-and-hold time. These bits define the number
   340                                     * of ADC12CLK cycles in the sampling period for registers
   341                                     * ADC12MEM8 to ADC12MEM15. */
   342            ADC12SHT0_t ADC12SHT0;  /*! Sample-and-hold time. These bits define the number
   343                                     * of ADC12CLK cycles in the sampling period for registers
   344                                     * ADC12MEM0 to ADC12MEM7. */
   345            MSC_t MSC;              /*! Multiple sample and conversion. Valid only for sequence
   346                                     * or repeated modes.
   347                                     * 0 The sampling timer requires a rising edge of the SHI signal
   348                                     *   to trigger each sample-and-conversion.
   349                                     * 1 The first rising edge of the SHI signal triggers the sampling
   350                                     *   timer, but further sample-and-conversions are performed
   351                                     *   automatically as soon as the prior conversion is completed. */
   352            REF2_5V_t REF2_5V;      /*! Reference generator voltage. REFON must also be set.
   353                                     * 0 1.5V
   354                                     * 1 2.5V */
   355            REFON_t REFON;          /*! Reference generator on
   356                                     * 0 Reference off
   357                                     * 1 Reference on */
   358            ADC12ON_t ADC12ON;      /*! ADC12 on
   359                                     * 0 ADC12 off
   360                                     * 1 ADC12 on */
   361            ADC12OVIE_t ADC12OVIE;  /*! ADC12MEMx overflow-interrupt enable. The GIE bit must also be
   362                                     * set to enable the interrupt.
   363                                     * 0 Overflow interrupt disabled
   364                                     * 1 Overflow interrupt enabled */
   365            ADC12TOVIE_t ADC12TOVIE;  /*! ADC12 conversion-time-overflow interrupt enable.
   366                                       * The GIE bit must also be set to enable the interrupt.
   367                                       * 0 Conversion time overflow interrupt disabled
   368                                       * 1 Conversion time overflow interrupt enabled */
   369            ENC_t ENC;               /*! Enable conversion
   370                                      * 0 ADC12 disabled
   371                                      * 1 ADC12 enabled */
   372            ADC12SC_t ADC12SC;       /*! Start conversion. Software-controlled sample-and-conversion start.
   373                                      * ADC12SC and ENC may be set together with one instruction. ADC12SC is
   374                                      * reset automatically.
   375                                      * 0 No sample-and-conversion-start
   376                                      * 1 Start sample-and-conversion */
   377        };
   378
   379        /*! ADC12 Control Register 1 */
   380        struct ADC12CTL1_t {
   381            CSTARTADD_t CSTARTADD;  /*! Conversion start address. These bits select which ADC12
   382                                     * conversion-memory register is used for a single conversion or for the first
   383                                     * conversion in a sequence. The value of CSTARTADDx is 0 to 0Fh,
   384                                     * corresponding to ADC12MEM0 to ADC12MEM15. */
   385            SHS_t SHS;              /*! Sample-and-hold source select
   386                                     * 00 ADC12SC bit
   387                                     * 01 Timer_A.OUT1
   388                                     * 10 Timer_B.OUT0
   389                                     * 11 Timer_B.OUT1 */
   390            SHP_t SHP;              /*! Sample-and-hold pulse-mode select. This bit selects the source of the
   391                                     * sampling signal (SAMPCON) to be either the output of the sampling timer or
   392                                     * the sample-input signal directly.
   393                                     * 0 SAMPCON signal is sourced from the sample-input signal.
   394                                     * 1 SAMPCON signal is sourced from the sampling timer. */
   395            ISSH_t ISSH;            /*! Invert signal sample-and-hold
   396                                     * 0 The sample-input signal is not inverted.
   397                                     * 1 The sample-input signal is inverted. */
   398            ADC12DIV_t ADC12DIV;    /*! ADC12 clock divider
   399                                     * 000 /1
   400                                     * 001 /2
   401                                     * 010 /3
   402                                     * 011 /4
   403                                     * 100 /5
   404                                     * 101 /6
   405                                     * 110 /7
   406                                     * 111 /8 */
   407            ADC12SSEL_t ADC12SSEL;  /*! ADC12 clock source select
   408                                     * 00 ADC12OSC
   409                                     * 01 ACLK
   410                                     * 10 MCLK
   411                                     * 11 SMCLK */
   412            CONSEQ_t CONSEQ;        /*! Conversion sequence mode select
   413                                     * 00 Single-channel, single-conversion
   414                                     * 01 Sequence-of-channels
   415                                     * 10 Repeat-single-channel
   416                                     * 11 Repeat-sequence-of-channels */
   417            ADC12BUSY_t ADC12BUSY;  /*! ADC12 busy. This bit indicates an active sample or conversion operation.
   418                                     * 0 No operation is active.
   419                                     * 1 A sequence, sample, or conversion is active. */
   420        };
   421
   422        /*! ADC12 Conversion Memory Control Registers */
   423        struct ADC12MCTL_t {
   424            EOS_t EOS;              /*! End of sequence. Indicates the last conversion in a sequence.
   425                                     * 0 Not end of sequence
   426                                     * 1 End of sequence */
   427            SREF_t SREF;            /*! Select reference
   428                                     * 000 VR+ = AVCC and VR-- = AVSS
   429                                     * 001 VR+ = VREF+ and VR-- = AVSS
   430                                     * 010 VR+ = VeREF+ and VR-- = AVSS
   431                                     * 011 VR+ = VeREF+ and VR-- = AVSS
   432                                     * 100 VR+ = AVCC and VR-- = VREF--/ VeREF--
   433                                     * 101 VR+ = VREF+ and VR-- = VREF--/ VeREF--
   434                                     * 110 VR+ = VeREF+ and VR-- = VREF--/ VeREF--
   435                                     * 111 VR+ = VeREF+ and VR-- = VREF--/ VeREF-- */
   436            INCH_t INCH;            /*! Input channel select
   437                                     * 0000 A0
   438                                     * 0001 A1
   439                                     * 0010 A2
   440                                     * 0011 A3
   441                                     * 0100 A4
   442                                     * 0101 A5
   443                                     * 0110 A6
   444                                     * 0111 A7
   445                                     * 1000 VeREF+
   446                                     * 1001 VREF--/VeREF--
   447                                     * 1010 Temperature diode
   448                                     * 1011 (AVCC � AVSS) / 2
   449                                     * 1100 GND
   450                                     * 1101 GND
   451                                     * 1110 GND
   452                                     * 1111 GND */
   453        };
   454
   455        /*! ADC12 Interrupt Enable Register */
   456        struct ADC12IE_t {
   457            ADC12IE15_t ADC12IE15;  /*! Enable or disable the interrupt request for the ADC12IFG15 bit.
   458                                     * 0 Interrupt disabled
   459                                     * 1 Interrupt enabled */
   460            ADC12IE14_t ADC12IE14;  /*! Enable or disable the interrupt request for the ADC12IFG14 bit.
   461                                     * 0 Interrupt disabled
   462                                     * 1 Interrupt enabled */
   463            ADC12IE13_t ADC12IE13;  /*! Enable or disable the interrupt request for the ADC12IFG13 bit.
   464                                     * 0 Interrupt disabled
   465                                     * 1 Interrupt enabled */
   466            ADC12IE12_t ADC12IE12;  /*! Enable or disable the interrupt request for the ADC12IFG12 bit.
   467                                     * 0 Interrupt disabled
   468                                     * 1 Interrupt enabled */
   469            ADC12IE11_t ADC12IE11;  /*! Enable or disable the interrupt request for the ADC12IFG11 bit.
   470                                     * 0 Interrupt disabled
   471                                     * 1 Interrupt enabled */
   472            ADC12IE10_t ADC12IE10;  /*! Enable or disable the interrupt request for the ADC12IFG10 bit.
   473                                     * 0 Interrupt disabled
   474                                     * 1 Interrupt enabled */
   475            ADC12IE9_t ADC12IE9;  /*! Enable or disable the interrupt request for the ADC12IFG9 bit.
   476                                   * 0 Interrupt disabled
   477                                   * 1 Interrupt enabled */
   478            ADC12IE8_t ADC12IE8;  /*! Enable or disable the interrupt request for the ADC12IFG8 bit.
   479                                   * 0 Interrupt disabled
   480                                   * 1 Interrupt enabled */
   481            ADC12IE7_t ADC12IE7;  /*! Enable or disable the interrupt request for the ADC12IFG7 bit.
   482                                   * 0 Interrupt disabled
   483                                   * 1 Interrupt enabled */
   484            ADC12IE6_t ADC12IE6;  /*! Enable or disable the interrupt request for the ADC12IFG6 bit.
   485                                   * 0 Interrupt disabled
   486                                   * 1 Interrupt enabled */
   487            ADC12IE5_t ADC12IE5;  /*! Enable or disable the interrupt request for the ADC12IFG5 bit.
   488                                   * 0 Interrupt disabled
   489                                   * 1 Interrupt enabled */
   490            ADC12IE4_t ADC12IE4;  /*! Enable or disable the interrupt request for the ADC12IFG4 bit.
   491                                   * 0 Interrupt disabled
   492                                   * 1 Interrupt enabled */
   493            ADC12IE3_t ADC12IE3;  /*! Enable or disable the interrupt request for the ADC12IFG3 bit.
   494                                   * 0 Interrupt disabled
   495                                   * 1 Interrupt enabled */
   496            ADC12IE2_t ADC12IE2;  /*! Enable or disable the interrupt request for the ADC12IFG2 bit.
   497                                   * 0 Interrupt disabled
   498                                   * 1 Interrupt enabled */
   499            ADC12IE1_t ADC12IE1;  /*! Enable or disable the interrupt request for the ADC12IFG1 bit.
   500                                   * 0 Interrupt disabled
   501                                   * 1 Interrupt enabled */
   502            ADC12IE0_t ADC12IE0;  /*! Enable or disable the interrupt request for the ADC12IFG0 bit.
   503                                   * 0 Interrupt disabled
   504                                   * 1 Interrupt enabled */
   505        };
   506
   507    instance:
   508        /*! ADC12CTL0 Register  */
   509        config ADC12CTL0_t  ADC12CTL0 = {
   510            ADC12SHT1 : SHT1_0,
   511            ADC12SHT0 : SHT0_0,
   512            MSC       : MSC_OFF,
   513            REF2_5V   : REF2_5V_OFF,
   514            REFON     : REFON_OFF,
   515            ADC12ON   : ADC12ON_OFF,
   516            ADC12OVIE : ADC12OVIE_OFF,
   517            ADC12TOVIE : ADC12TOVIE_OFF,
   518            ENC        : ENC_OFF,
   519            ADC12SC    : ADC12SC_OFF
   520        };
   521
   522        /*! ADC12CTL1 Register */
   523        config ADC12CTL1_t  ADC12CTL1 = {
   524            CSTARTADD   : CSTARTADD_0,
   525            SHS         : SHS_0,
   526            SHP         : SHP_OFF,
   527            ISSH        : ISSH_OFF,
   528            ADC12DIV    : ADC12DIV_0,
   529            ADC12SSEL   : ADC12SSEL_0,
   530            CONSEQ      : CONSEQ_0,
   531            ADC12BUSY   : ADC12BUSY_OFF
   532        };
   533
   534        /*! ADC12MCTL0 Register */
   535        config ADC12MCTL_t ADC12MCTL0 = {
   536            EOS    : EOS_OFF,
   537            SREF   : SREF_0,
   538            INCH   : INCH_0
   539        };
   540
   541        /*! ADC12MCTL1 Register */
   542        config ADC12MCTL_t ADC12MCTL1 = {
   543            EOS    : EOS_OFF,
   544            SREF   : SREF_0,
   545            INCH   : INCH_0
   546        };
   547
   548        /*! ADC12MCTL2 Register */
   549        config ADC12MCTL_t ADC12MCTL2 = {
   550            EOS    : EOS_OFF,
   551            SREF   : SREF_0,
   552            INCH   : INCH_0
   553        };
   554
   555        /*! ADC12MCTL3 Register */
   556        config ADC12MCTL_t ADC12MCTL3 = {
   557            EOS    : EOS_OFF,
   558            SREF   : SREF_0,
   559            INCH   : INCH_0
   560        };
   561
   562        /*! ADC12MCTL4 Register */
   563        config ADC12MCTL_t ADC12MCTL4 = {
   564            EOS    : EOS_OFF,
   565            SREF   : SREF_0,
   566            INCH   : INCH_0
   567        };
   568
   569        /*! ADC12MCTL5 Register */
   570        config ADC12MCTL_t ADC12MCTL5 = {
   571            EOS    : EOS_OFF,
   572            SREF   : SREF_0,
   573            INCH   : INCH_0
   574        };
   575
   576        /*! ADC12MCTL6 Register */
   577        config ADC12MCTL_t ADC12MCTL6 = {
   578            EOS    : EOS_OFF,
   579            SREF   : SREF_0,
   580            INCH   : INCH_0
   581        };
   582
   583        /*! ADC12MCTL7 Register */
   584        config ADC12MCTL_t ADC12MCTL7 = {
   585            EOS    : EOS_OFF,
   586            SREF   : SREF_0,
   587            INCH   : INCH_0
   588        };
   589
   590        /*! ADC12MCTL8 Register */
   591        config ADC12MCTL_t ADC12MCTL8 = {
   592            EOS    : EOS_OFF,
   593            SREF   : SREF_0,
   594            INCH   : INCH_0
   595        };
   596
   597        /*! ADC12MCTL9 Register */
   598        config ADC12MCTL_t ADC12MCTL9 = {
   599            EOS    : EOS_OFF,
   600            SREF   : SREF_0,
   601            INCH   : INCH_0
   602        };
   603
   604        /*! ADC12MCTL10 Register */
   605        config ADC12MCTL_t ADC12MCTL10 = {
   606            EOS    : EOS_OFF,
   607            SREF   : SREF_0,
   608            INCH   : INCH_0
   609        };
   610
   611        /*! ADC12MCTL11 Register */
   612        config ADC12MCTL_t ADC12MCTL11 = {
   613            EOS    : EOS_OFF,
   614            SREF   : SREF_0,
   615            INCH   : INCH_0
   616        };
   617
   618        /*! ADC12MCTL12 Register */
   619        config ADC12MCTL_t ADC12MCTL12 = {
   620            EOS    : EOS_OFF,
   621            SREF   : SREF_0,
   622            INCH   : INCH_0
   623        };
   624
   625        /*! ADC12MCTL13 Register */
   626        config ADC12MCTL_t ADC12MCTL13 = {
   627            EOS    : EOS_OFF,
   628            SREF   : SREF_0,
   629            INCH   : INCH_0
   630        };
   631
   632        /*! ADC12MCTL14 Register */
   633        config ADC12MCTL_t ADC12MCTL14 = {
   634            EOS    : EOS_OFF,
   635            SREF   : SREF_0,
   636            INCH   : INCH_0
   637        };
   638
   639        /*! ADC12MCTL15 Register */
   640        config ADC12MCTL_t ADC12MCTL15 = {
   641            EOS    : EOS_OFF,
   642            SREF   : SREF_0,
   643            INCH   : INCH_0
   644        };
   645
   646        /*! ADC12 Interrupt Enable Register */
   647        config ADC12IE_t ADC12IE = {
   648            ADC12IE15  : ADC12IE15_OFF,
   649            ADC12IE14  : ADC12IE14_OFF,
   650            ADC12IE13  : ADC12IE13_OFF,
   651            ADC12IE12  : ADC12IE12_OFF,
   652            ADC12IE11  : ADC12IE11_OFF,
   653            ADC12IE10  : ADC12IE10_OFF,
   654            ADC12IE9  : ADC12IE9_OFF,
   655            ADC12IE8  : ADC12IE8_OFF,
   656            ADC12IE7  : ADC12IE7_OFF,
   657            ADC12IE6  : ADC12IE6_OFF,
   658            ADC12IE5  : ADC12IE5_OFF,
   659            ADC12IE4  : ADC12IE4_OFF,
   660            ADC12IE3  : ADC12IE3_OFF,
   661            ADC12IE2  : ADC12IE2_OFF,
   662            ADC12IE1  : ADC12IE1_OFF,
   663            ADC12IE0  : ADC12IE0_OFF
   664        };
   665
   666
   667        /*! ADC12MEM0 Register */
   668        config Bits16 ADC12MEM0 = 0;
   669
   670        /*! ADC12MEM1 Register */
   671        config Bits16 ADC12MEM1 = 0;
   672
   673        /*! ADC12MEM2 Register */
   674        config Bits16 ADC12MEM2 = 0;
   675
   676        /*! ADC12MEM3 Register */
   677        config Bits16 ADC12MEM3 = 0;
   678
   679        /*! ADC12MEM4 Register */
   680        config Bits16 ADC12MEM4 = 0;
   681
   682        /*! ADC12MEM5 Register */
   683        config Bits16 ADC12MEM5 = 0;
   684
   685        /*! ADC12MEM6 Register */
   686        config Bits16 ADC12MEM6 = 0;
   687
   688        /*! ADC12MEM7 Register */
   689        config Bits16 ADC12MEM7 = 0;
   690
   691        /*! ADC12MEM8 Register */
   692        config Bits16 ADC12MEM8 = 0;
   693
   694        /*! ADC12MEM9 Register */
   695        config Bits16 ADC12MEM9 = 0;
   696
   697        /*! ADC12MEM10 Register */
   698        config Bits16 ADC12MEM10 = 0;
   699
   700        /*! ADC12MEM11 Register */
   701        config Bits16 ADC12MEM11 = 0;
   702
   703        /*! ADC12MEM12 Register */
   704        config Bits16 ADC12MEM12 = 0;
   705
   706        /*! ADC12MEM13 Register */
   707        config Bits16 ADC12MEM13 = 0;
   708
   709        /*! ADC12MEM14 Register */
   710        config Bits16 ADC12MEM14 = 0;
   711
   712        /*! ADC12MEM15 Register */
   713        config Bits16 ADC12MEM15 = 0;
   714
   715        /*! ADC12IV Register */
   716        config Bits16 ADC12IV = ADC12IV_NONE;
   717
   718        /*! ADC12IFG Register */
   719        config Bits16 ADC12IFG = 0;
   720
   721        /*! ADC12 has 16 interrupt enable */
   722        config regIntVect_t interruptSource[16];
   723
   724        /*! Determine if each Register needs to be forced set or not */
   725        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   726        [
   727            { register : "ADC12CTL0" , regForceSet : false },
   728            { register : "ADC12CTL1" , regForceSet : false },
   729            { register : "ADC12IFG" , regForceSet : false },
   730            { register : "ADC12IV" , regForceSet : false },
   731            { register : "ADC12IE" , regForceSet : false },
   732            { register : "ADC12MCTL0" , regForceSet : false },
   733            { register : "ADC12MCTL1" , regForceSet : false },
   734            { register : "ADC12MCTL2" , regForceSet : false },
   735            { register : "ADC12MCTL3" , regForceSet : false },
   736            { register : "ADC12MCTL4" , regForceSet : false },
   737            { register : "ADC12MCTL5" , regForceSet : false },
   738            { register : "ADC12MCTL6" , regForceSet : false },
   739            { register : "ADC12MCTL7" , regForceSet : false },
   740            { register : "ADC12MCTL8" , regForceSet : false },
   741            { register : "ADC12MCTL9" , regForceSet : false },
   742            { register : "ADC12MCTL10" , regForceSet : false },
   743            { register : "ADC12MCTL11" , regForceSet : false },
   744            { register : "ADC12MCTL12" , regForceSet : false },
   745            { register : "ADC12MCTL13" , regForceSet : false },
   746            { register : "ADC12MCTL14" , regForceSet : false },
   747            { register : "ADC12MCTL15" , regForceSet : false },
   748            { register : "ADC12MEM0" , regForceSet : false },
   749            { register : "ADC12MEM1" , regForceSet : false },
   750            { register : "ADC12MEM2" , regForceSet : false },
   751            { register : "ADC12MEM3" , regForceSet : false },
   752            { register : "ADC12MEM4" , regForceSet : false },
   753            { register : "ADC12MEM5" , regForceSet : false },
   754            { register : "ADC12MEM6" , regForceSet : false },
   755            { register : "ADC12MEM7" , regForceSet : false },
   756            { register : "ADC12MEM8" , regForceSet : false },
   757            { register : "ADC12MEM9" , regForceSet : false },
   758            { register : "ADC12MEM10" , regForceSet : false },
   759            { register : "ADC12MEM11" , regForceSet : false },
   760            { register : "ADC12MEM12" , regForceSet : false },
   761            { register : "ADC12MEM13" , regForceSet : false },
   762            { register : "ADC12MEM14" , regForceSet : false },
   763            { register : "ADC12MEM15" , regForceSet : false },
   764        ];
   765    }


module ti.catalog.msp430.peripherals.adc.ADC12_B

metaonly module ti.catalog.msp430.peripherals.adc.ADC12_B
index URL

MSP430 12-bit Analog to Digital Converter

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/adc/ADC12_B.xdc
var ADC12_B = xdc.useModule('ti.catalog.msp430.peripherals.adc.ADC12_B');
module-wide constants & types
    var obj = new ADC12_B.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new ADC12_B.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     ADC12_B.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     ADC12_B.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new ADC12_B.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = ADC12_B.ForceSetDefaultRegister_t[] [ ];
        params.interruptSource// Interrupt enables = ADC12_B.regIntVect_t[35] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = ADC12_B.create// Create an instance-object(IClock.Instance clock, params);
struct ADC12_B.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new ADC12_B.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct ADC12_B.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new ADC12_B.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
ADC12_B.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
ADC12_B.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
ADC12_B.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
ADC12_B.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new ADC12_B.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = ADC12_B.ForceSetDefaultRegister_t[] [ ];
    // Determine if each Register needs to be forced set or not
    params.interruptSource = ADC12_B.regIntVect_t[35] undefined;
    // Interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config ADC12_B.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new ADC12_B.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config ADC12_B.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new ADC12_B.Params;
...
const params.forceSetDefaultRegister = ADC12_B.ForceSetDefaultRegister_t[] [ ];
config ADC12_B.interruptSource // instance
index URL

Interrupt enables

XDCscript usage meta-domain
var params = new ADC12_B.Params;
...
params.interruptSource = ADC12_B.regIntVect_t[35] undefined;
config ADC12_B.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new ADC12_B.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config ADC12_B.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new ADC12_B.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new ADC12_B.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = ADC12_B.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:33 GMT


module ti.catalog.msp430.peripherals.adc.ADC12_B

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ADC12_B ========
    14     *  MSP430 12-bit Analog to Digital Converter
    15     */
    16    metaonly module ADC12_B inherits IADC {
    17
    18    instance:
    19        /*!
    20         *  ======== baseAddr ========
    21         *  Address of the peripheral's control register.
    22         *
    23         *  A peripheral's registers are commonly accessed through a structure
    24         *  that defines the offsets of a particular register from the lowest
    25         *  address mapped to a peripheral. That lowest address is specified by
    26         *  this parameter.
    27         */
    28        config UInt baseAddr;
    29
    30        /*! Interrupt enables */
    31        config regIntVect_t interruptSource[35];
    32
    33        /*! Determine if each Register needs to be forced set or not */
    34        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    35        [
    36        ];
    37    }


interface ti.catalog.msp430.peripherals.adc.IADC

metaonly interface ti.catalog.msp430.peripherals.adc.IADC
index URL

MSP430 Analog to Digital Converter Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
metaonly interface IADC { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
package ti.catalog.msp430.peripherals.adc;
metaonly interface IADC inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance creation
     create// Create an instance-object(IClock.Instance clock);
}
typedef IADC.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IADC.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
typedef String StringArray[];
struct IADC.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IADC.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IADC.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IADC.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IADC.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IADC.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
config String owner;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
create(IClock.Instance clock);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:33 GMT


interface ti.catalog.msp430.peripherals.adc.IADC

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     *  ======== IADC ========
    16     *  MSP430 Analog to Digital Converter Interface
    17     */
    18    metaonly interface IADC inherits xdc.platform.IPeripheral {
    19
    20        /*!
    21        *  ======== ForceSetDefaultRegister_t ========
    22        *  Force Set Default Register
    23        *
    24        *  Type to store if each register needs to be forced initialized
    25        *  even if the register is in default state.
    26        *
    27        *  @see #ForceSetDefaultRegister_t
    28        */
    29        struct ForceSetDefaultRegister_t {
    30            String     register;
    31            Bool       regForceSet;
    32        }
    33
    34        /*!
    35        *  ======== regIntVect_t ========
    36        *  Interrupt vector description
    37        *
    38        *  Type to describe a single interrupt vector pin and all its possible
    39        *  configurations.
    40        *
    41        *  @see #regIntVect_t
    42        */
    43        struct regIntVect_t {
    44            String                    registerName;
    45            String                    registerDescription;
    46            String                    isrToggleString;
    47            String                    priorityName;
    48            Bool                      interruptEnable;
    49            Bool                      interruptHandler;
    50            Int                       priority;
    51        }
    52
    53        /*!
    54         *  ======== create ========
    55         *  Create an instance of this peripheral
    56         */
    57        create(IClock.Instance clock);
    58
    59    instance:
    60        /*! @_nodoc */
    61        config IClock.Instance clock;
    62    }


module ti.catalog.msp430.peripherals.adc.SD16_A

metaonly module ti.catalog.msp430.peripherals.adc.SD16_A
index URL

MSP430F2xx Family SD16_A Module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/adc/SD16_A.xdc
var SD16_A = xdc.useModule('ti.catalog.msp430.peripherals.adc.SD16_A');
module-wide constants & types
    values of type SD16_A.SD16AE0_t// SD16_A Analog Enable Bit 0
        const SD16_A.SD16AE0_OFF// External input disabled. Negative inputs are internally connected to VSS;
        const SD16_A.SD16AE0// External input enabled;
    values of type SD16_A.SD16AE1_t// SD16_A Analog Enable Bit 1
        const SD16_A.SD16AE1_OFF// External input disabled. Negative inputs are internally connected to VSS;
        const SD16_A.SD16AE1// External input enabled;
    values of type SD16_A.SD16AE2_t// SD16_A Analog Enable Bit 2
        const SD16_A.SD16AE2_OFF// External input disabled. Negative inputs are internally connected to VSS;
        const SD16_A.SD16AE2// External input enabled;
    values of type SD16_A.SD16AE3_t// SD16_A Analog Enable Bit 3
        const SD16_A.SD16AE3_OFF// External input disabled. Negative inputs are internally connected to VSS;
        const SD16_A.SD16AE3// External input enabled;
    values of type SD16_A.SD16AE4_t// SD16_A Analog Enable Bit 4
        const SD16_A.SD16AE4_OFF// External input disabled. Negative inputs are internally connected to VSS;
        const SD16_A.SD16AE4// External input enabled;
    values of type SD16_A.SD16AE5_t// SD16_A Analog Enable Bit 5
        const SD16_A.SD16AE5_OFF// External input disabled. Negative inputs are internally connected to VSS;
        const SD16_A.SD16AE5// External input enabled;
    values of type SD16_A.SD16AE6_t// SD16_A Analog Enable Bit 6
        const SD16_A.SD16AE6_OFF// External input disabled. Negative inputs are internally connected to VSS;
        const SD16_A.SD16AE6// External input enabled;
    values of type SD16_A.SD16AE7_t// SD16_A Analog Enable Bit 7
        const SD16_A.SD16AE7_OFF// External input disabled. Negative inputs are internally connected to VSS;
        const SD16_A.SD16AE7// External input enabled;
    values of type SD16_A.SD16BUF_t// SD16BUFx Bits
        const SD16_A.SD16BUF_0// Buffer disabled;
        const SD16_A.SD16BUF_1// Slow speed/current;
        const SD16_A.SD16BUF_2// Medium speed/current;
        const SD16_A.SD16BUF_3// High speed/current;
    values of type SD16_A.SD16DF_t// SD16DF Bit
        const SD16_A.SD16DF_OFF// Offset binary;
        const SD16_A.SD16DF// 2's complement;
    values of type SD16_A.SD16DIV_t// SD16DIVx Bits
        const SD16_A.SD16DIV_0// Divide by 1;
        const SD16_A.SD16DIV_1// Divide by 2;
        const SD16_A.SD16DIV_2// Divide by 4;
        const SD16_A.SD16DIV_3// Divide by 8;
    values of type SD16_A.SD16GAIN_t// SD16GAINx Bits
        const SD16_A.SD16GAIN_1// Multiply by 1;
        const SD16_A.SD16GAIN_2// Multiply by 2;
        const SD16_A.SD16GAIN_4// Multiply by 4;
        const SD16_A.SD16GAIN_8// Multiply by 8;
        const SD16_A.SD16GAIN_16// Multiply by 16;
        const SD16_A.SD16GAIN_32// Multiply by 32;
    values of type SD16_A.SD16IE_t// SD16IE Bit
        const SD16_A.SD16IE_OFF// Disabled;
        const SD16_A.SD16IE// Enabled;
    values of type SD16_A.SD16IFG_t// SD16IFG Bit
        const SD16_A.SD16IFG_OFF// No interrupt pending;
        const SD16_A.SD16IFG// Interrupt pending;
    values of type SD16_A.SD16INCH_t// SD16INCHx Bits
        const SD16_A.SD16INCH_0// A0;
        const SD16_A.SD16INCH_1// A1;
        const SD16_A.SD16INCH_2// A2;
        const SD16_A.SD16INCH_3// A3;
        const SD16_A.SD16INCH_4// A4;
        const SD16_A.SD16INCH_5// A5 - (AVcc - AVss)/11;
        const SD16_A.SD16INCH_6// A6 - Temperature Sensor;
        const SD16_A.SD16INCH_7// A7 - Short PGA offset measurement;
    values of type SD16_A.SD16INTDLY_t// SD16INTDLYx Bits
        const SD16_A.SD16INTDLY_0// Fourth sample causes interrupt;
        const SD16_A.SD16INTDLY_1// Third sample causes interrupt;
        const SD16_A.SD16INTDLY_2// Second sample causes interrupt;
        const SD16_A.SD16INTDLY_3// First sample causes interrupt;
    values of type SD16_A.SD16IV_SD16MEM0_t// SD16_A SD16MEMx overflow
        const SD16_A.SD16IV_SD16MEM0_OFF// No Interrupt pending;
        const SD16_A.SD16IV_SD16MEM0// SD16MEM0 SD16IFG;
    values of type SD16_A.SD16IV_SD16OVIFG_t// SD16_A Interrupt
        const SD16_A.SD16IV_SD16OVIFG_OFF// No Interrupt pending;
        const SD16_A.SD16IV_SD16OVIFG// SD16OVIFG;
    values of type SD16_A.SD16LP_t// SD16LP Bit
        const SD16_A.SD16LP_OFF// Low-power mode is disabled;
        const SD16_A.SD16LP// Low-power mode is enabled. The maximum clock frequency for the SD16_A is reduced;
    values of type SD16_A.SD16LSBACC_t// SD16LSBACC Bit
        const SD16_A.SD16LSBACC_OFF// SD16MEMx contains the most significant 16-bits of the conversion;
        const SD16_A.SD16LSBACC// SD16MEMx contains the least significant 16-bits of the conversion;
    values of type SD16_A.SD16LSBTOG_t// SD16LSBTOG Bit
        const SD16_A.SD16LSBTOG_OFF// SD16LSBACC does not toggle with each SD16MEM0 read;
        const SD16_A.SD16LSBTOG// SD16LSBACC toggles with each SD16MEM0 read;
    values of type SD16_A.SD16OSR_t// SD16OSRx Bits
        const SD16_A.SD16OSR_256// SD16XOSR = 0;
        const SD16_A.SD16OSR_128// SD16XOSR = 0;
        const SD16_A.SD16OSR_64// SD16XOSR = 0;
        const SD16_A.SD16OSR_32// SD16XOSR = 0;
        const SD16_A.SD16OSR_512// SD16XOSR = 1;
        const SD16_A.SD16OSR_1024// SD16XOSR = 1;
    values of type SD16_A.SD16OVIE_t// SD16OVIE Bit
        const SD16_A.SD16OVIE_OFF// Overflow interrupt disabled;
        const SD16_A.SD16OVIE// Overflow interrupt enabled;
    values of type SD16_A.SD16OVIFG_t// SD16OVIFG Bit
        const SD16_A.SD16OVIFG_OFF// No overflow interrupt pending;
        const SD16_A.SD16OVIFG// Overflow interrupt pending;
    values of type SD16_A.SD16REFON_t// SD16REFON Bit
        const SD16_A.SD16REFON_OFF// Reference off;
        const SD16_A.SD16REFON// Reference on;
    values of type SD16_A.SD16SC_t// SD16SC Bit
        const SD16_A.SD16SC_OFF// No conversino start;
        const SD16_A.SD16SC// Start conversion;
    values of type SD16_A.SD16SNGL_t// SD16SNGL Bit
        const SD16_A.SD16SNGL_OFF// Continuous conversion mode;
        const SD16_A.SD16SNGL// Single conversion mode;
    values of type SD16_A.SD16SSEL_t// SD16SSELx Bits
        const SD16_A.SD16SSEL_0// MCLK;
        const SD16_A.SD16SSEL_1// SMCLK;
        const SD16_A.SD16SSEL_2// ACLK;
        const SD16_A.SD16SSEL_3// External TACLK;
    values of type SD16_A.SD16UNI_t// SD16UNI Bit
        const SD16_A.SD16UNI_OFF// Bipolar mode;
        const SD16_A.SD16UNI// Unipolar mode;
    values of type SD16_A.SD16VMIDON_t// SD16VMIDON Bit
        const SD16_A.SD16VMIDON_OFF// Off;
        const SD16_A.SD16VMIDON// On;
    values of type SD16_A.SD16XDIV_t// SD16XDIVx Bits
        const SD16_A.SD16XDIV_0// Divide by 1;
        const SD16_A.SD16XDIV_1// Divide by 3;
        const SD16_A.SD16XDIV_2// Divide by 16;
        const SD16_A.SD16XDIV_3// Divide by 48;
    values of type SD16_A.SD16XOSR_t// SD16XOSR Bit
        const SD16_A.SD16XOSR_OFF// Extended oversampling ratio. This bit, along with the SD16OSRx bits, select the oversampling ratio. See SD16OSRx bit description for settings;
        const SD16_A.SD16XOSR// Extended oversampling ratio. This bit, along with the SD16OSRx bits, select the oversampling ratio. See SD16OSRx bit description for settings;
    var obj = new SD16_A.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new SD16_A.SD16AE_t// SD16_A Analog Input Enable Register;
        obj.SD16AE0// SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled = SD16_A.SD16AE0_t ...
        obj.SD16AE1// SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled = SD16_A.SD16AE1_t ...
        obj.SD16AE2// SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled = SD16_A.SD16AE2_t ...
        obj.SD16AE3// SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled = SD16_A.SD16AE3_t ...
        obj.SD16AE4// SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled = SD16_A.SD16AE4_t ...
        obj.SD16AE5// SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled = SD16_A.SD16AE5_t ...
        obj.SD16AE6// SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled = SD16_A.SD16AE6_t ...
        obj.SD16AE7// SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled = SD16_A.SD16AE7_t ...
    var obj = new SD16_A.SD16CCTL0_t// SD16CCTL0 Register;
        obj.SD16UNI// Unipolar mode select 0 Bipolar mode 1 Unipolar mode = SD16_A.SD16UNI_t ...
        obj.SD16XOSR// Extended oversampling ratio. This bit, along with the SD16OSRx bits, select the oversampling ratio. See SD16OSRx bit description for settings = SD16_A.SD16XOSR_t ...
        obj.SD16SNGL// Single conversion mode select 0 Continuous conversion mode 1 Single conversion mode = SD16_A.SD16SNGL_t ...
        obj.SD16OSR// Oversampling ratio When SD16XOSR = 0 00 256 01 128 10 64 11 32 When SD16XOSR = 1 00 512 01 1024 10 Reserved 11 Reserved = SD16_A.SD16OSR_t ...
        obj.SD16LSBTOG// LSB toggle. This bit, when set, causes SD16LSBACC to toggle each time the SD16MEM0 register is read. 0 SD16LSBACC does not toggle with each SD16MEM0 read 1 SD16LSBACC toggles with each SD16MEM0 read = SD16_A.SD16LSBTOG_t ...
        obj.SD16LSBACC// LSB access. This bit allows access to the upper or lower 16-bits of the SD16_A conversion result. 0 SD16MEMx contains the most significant 16-bits of the conversion. 1 SD16MEMx contains the least significant 16-bits of the conversion = SD16_A.SD16LSBACC_t ...
        obj.SD16OVIFG// SD16_A overflow interrupt flag 0 No overflow interrupt pending 1 Overflow interrupt pending = SD16_A.SD16OVIFG_t ...
        obj.SD16DF// SD16_A data format 0 Offset binary 1 2's complement = SD16_A.SD16DF_t ...
        obj.SD16IE// SD16_A interrupt enable 0 Disabled 1 Enabled = SD16_A.SD16IE_t ...
        obj.SD16IFG// SD16_A interrupt flag. SD16IFG is set when new conversion results are available. SD16IFG is automatically reset when the corresponding SD16MEMx register is read, or may be cleared with software. 0 No interrupt pending 1 Interrupt pending = SD16_A.SD16IFG_t ...
        obj.SD16SC// SD16_A start conversion 0 No conversion start 1 Start conversion = SD16_A.SD16SC_t ...
    var obj = new SD16_A.SD16CTL_t// SD16CTL Register;
        obj.SD16XDIV// SD16_A clock divider 000 Divide by 1 001 Divide by 3 010 Divide by 16 011 Divide by 48 1xx Reserved = SD16_A.SD16XDIV_t ...
        obj.SD16LP// Low power mode. This bit selects a reduced speed, reduced power mode 0 Low-power mode is disabled 1 Low-power mode is enabled. The maximum clock frequency for the SD16_A is reduced = SD16_A.SD16LP_t ...
        obj.SD16DIV// SD16_A clock divider 00 Divide by 1 01 Divide by 2 10 Divide by 4 11 Divide by 8 = SD16_A.SD16DIV_t ...
        obj.SD16SSEL// SD16_A clock source select 00 MCLK 01 SMCLK 10 ACLK External TACLK = SD16_A.SD16SSEL_t ...
        obj.SD16VMIDON// VMID buffer on 0 Off 1 On = SD16_A.SD16VMIDON_t ...
        obj.SD16REFON// Reference generator on 0 Reference off 1 Reference on = SD16_A.SD16REFON_t ...
        obj.SD16OVIE// SD16_A overflow interrupt enable. The GIE bit must also be set to enable the interrupt. 0 Overflow interrupt disabled 1 Overflow interrupt enabled = SD16_A.SD16OVIE_t ...
    var obj = new SD16_A.SD16INCTL0_t// SD16INCTL0 Register;
        obj.SD16INTDLY// Interrupt delay generation after conversion start. These bits select the delay for the first interrupt after conversion start. 00 Fourth sample causes interrupt 01 Third sample causes interrupt 10 Second sample causes interrupt 11 First sample causes interrupt = SD16_A.SD16INTDLY_t ...
        obj.SD16GAIN// SD16_A preamplifier gain 000 Multiply by 1 001 Multiply by 2 010 Multiply by 4 011 Multiply by 8 100 Multiply by 16 101 Multiply by 32 110 Reserved 111 Reserved = SD16_A.SD16GAIN_t ...
        obj.SD16INCH// SD16_A channel differential pair input 000 A0 001 A1 010 A2 011 A3 100 A4 101 A5-- (AVCC -- AVSS) / 11 110 A6 -- Temperature Sensor 111 A7 -- Short for PGA offset measurement = SD16_A.SD16INCH_t ...
    var obj = new SD16_A.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     SD16_A.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     SD16_A.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new SD16_A.Params// Instance config-params object;
        params.SD16AE// SD16AE Register = SD16_A.SD16AE_t {
            SD16AE0: SD16_A.SD16AE0_OFF,
            SD16AE1: SD16_A.SD16AE1_OFF,
            SD16AE2: SD16_A.SD16AE2_OFF,
            SD16AE3: SD16_A.SD16AE3_OFF,
            SD16AE4: SD16_A.SD16AE4_OFF,
            SD16AE5: SD16_A.SD16AE5_OFF,
            SD16AE6: SD16_A.SD16AE6_OFF,
            SD16AE7: SD16_A.SD16AE7_OFF
        };
        params.SD16CCTL0// SD16CCTL0 Register = SD16_A.SD16CCTL0_t {
            SD16UNI: SD16_A.SD16UNI_OFF,
            SD16XOSR: SD16_A.SD16XOSR_OFF,
            SD16SNGL: SD16_A.SD16SNGL_OFF,
            SD16OSR: SD16_A.SD16OSR_256,
            SD16LSBTOG: SD16_A.SD16LSBTOG_OFF,
            SD16LSBACC: SD16_A.SD16LSBACC_OFF,
            SD16OVIFG: SD16_A.SD16OVIFG_OFF,
            SD16DF: SD16_A.SD16DF_OFF,
            SD16IE: SD16_A.SD16IE_OFF,
            SD16IFG: SD16_A.SD16IFG_OFF,
            SD16SC: SD16_A.SD16SC_OFF
        };
        params.SD16CTL// SD16CTL Register = SD16_A.SD16CTL_t {
            SD16XDIV: SD16_A.SD16XDIV_0,
            SD16LP: SD16_A.SD16LP_OFF,
            SD16DIV: SD16_A.SD16DIV_0,
            SD16SSEL: SD16_A.SD16SSEL_0,
            SD16VMIDON: SD16_A.SD16VMIDON_OFF,
            SD16REFON: SD16_A.SD16REFON_OFF,
            SD16OVIE: SD16_A.SD16OVIE_OFF
        };
        params.SD16INCTL0// SD16INCTL0 Register = SD16_A.SD16INCTL0_t {
            SD16INTDLY: SD16_A.SD16INTDLY_0,
            SD16GAIN: SD16_A.SD16GAIN_1,
            SD16INCH: SD16_A.SD16INCH_0
        };
        params.SD16IV// SD16IV Register = Bits16 SD16_A.SD16IV_SD16OVIFG_OFF;
        params.SD16MEM0// SD16MEM0 Register = Bits16 SD16_A.SD16IV_SD16MEM0_OFF;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = SD16_A.ForceSetDefaultRegister_t[] [
            {
                register: "SD16CTL",
                regForceSet: false
            },
            {
                register: "SD16CCTL0",
                regForceSet: false
            },
            {
                register: "SD16INCTL0",
                regForceSet: false
            },
            {
                register: "SD16AE",
                regForceSet: false
            },
            {
                register: "SD16IV",
                regForceSet: false
            },
            {
                register: "SD16MEM0",
                regForceSet: false
            }
        ];
        params.interruptSource// ADC10 has 1 interrupt enable = SD16_A.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = SD16_A.create// Create an instance-object(IClock.Instance clock, params);
enum SD16_A.SD16AE0_t
index URL

SD16_A Analog Enable Bit 0

XDCscript usage meta-domain
values of type SD16_A.SD16AE0_t
    const SD16_A.SD16AE0_OFF;
    // External input disabled. Negative inputs are internally connected to VSS
    const SD16_A.SD16AE0;
    // External input enabled
enum SD16_A.SD16AE1_t
index URL

SD16_A Analog Enable Bit 1

XDCscript usage meta-domain
values of type SD16_A.SD16AE1_t
    const SD16_A.SD16AE1_OFF;
    // External input disabled. Negative inputs are internally connected to VSS
    const SD16_A.SD16AE1;
    // External input enabled
enum SD16_A.SD16AE2_t
index URL

SD16_A Analog Enable Bit 2

XDCscript usage meta-domain
values of type SD16_A.SD16AE2_t
    const SD16_A.SD16AE2_OFF;
    // External input disabled. Negative inputs are internally connected to VSS
    const SD16_A.SD16AE2;
    // External input enabled
enum SD16_A.SD16AE3_t
index URL

SD16_A Analog Enable Bit 3

XDCscript usage meta-domain
values of type SD16_A.SD16AE3_t
    const SD16_A.SD16AE3_OFF;
    // External input disabled. Negative inputs are internally connected to VSS
    const SD16_A.SD16AE3;
    // External input enabled
enum SD16_A.SD16AE4_t
index URL

SD16_A Analog Enable Bit 4

XDCscript usage meta-domain
values of type SD16_A.SD16AE4_t
    const SD16_A.SD16AE4_OFF;
    // External input disabled. Negative inputs are internally connected to VSS
    const SD16_A.SD16AE4;
    // External input enabled
enum SD16_A.SD16AE5_t
index URL

SD16_A Analog Enable Bit 5

XDCscript usage meta-domain
values of type SD16_A.SD16AE5_t
    const SD16_A.SD16AE5_OFF;
    // External input disabled. Negative inputs are internally connected to VSS
    const SD16_A.SD16AE5;
    // External input enabled
enum SD16_A.SD16AE6_t
index URL

SD16_A Analog Enable Bit 6

XDCscript usage meta-domain
values of type SD16_A.SD16AE6_t
    const SD16_A.SD16AE6_OFF;
    // External input disabled. Negative inputs are internally connected to VSS
    const SD16_A.SD16AE6;
    // External input enabled
enum SD16_A.SD16AE7_t
index URL

SD16_A Analog Enable Bit 7

XDCscript usage meta-domain
values of type SD16_A.SD16AE7_t
    const SD16_A.SD16AE7_OFF;
    // External input disabled. Negative inputs are internally connected to VSS
    const SD16_A.SD16AE7;
    // External input enabled
enum SD16_A.SD16BUF_t
index URL

SD16BUFx Bits

XDCscript usage meta-domain
values of type SD16_A.SD16BUF_t
    const SD16_A.SD16BUF_0;
    // Buffer disabled
    const SD16_A.SD16BUF_1;
    // Slow speed/current
    const SD16_A.SD16BUF_2;
    // Medium speed/current
    const SD16_A.SD16BUF_3;
    // High speed/current
enum SD16_A.SD16DF_t
index URL

SD16DF Bit

XDCscript usage meta-domain
values of type SD16_A.SD16DF_t
    const SD16_A.SD16DF_OFF;
    // Offset binary
    const SD16_A.SD16DF;
    // 2's complement
enum SD16_A.SD16DIV_t
index URL

SD16DIVx Bits

XDCscript usage meta-domain
values of type SD16_A.SD16DIV_t
    const SD16_A.SD16DIV_0;
    // Divide by 1
    const SD16_A.SD16DIV_1;
    // Divide by 2
    const SD16_A.SD16DIV_2;
    // Divide by 4
    const SD16_A.SD16DIV_3;
    // Divide by 8
enum SD16_A.SD16GAIN_t
index URL

SD16GAINx Bits

XDCscript usage meta-domain
values of type SD16_A.SD16GAIN_t
    const SD16_A.SD16GAIN_1;
    // Multiply by 1
    const SD16_A.SD16GAIN_2;
    // Multiply by 2
    const SD16_A.SD16GAIN_4;
    // Multiply by 4
    const SD16_A.SD16GAIN_8;
    // Multiply by 8
    const SD16_A.SD16GAIN_16;
    // Multiply by 16
    const SD16_A.SD16GAIN_32;
    // Multiply by 32
enum SD16_A.SD16IE_t
index URL

SD16IE Bit

XDCscript usage meta-domain
values of type SD16_A.SD16IE_t
    const SD16_A.SD16IE_OFF;
    // Disabled
    const SD16_A.SD16IE;
    // Enabled
enum SD16_A.SD16IFG_t
index URL

SD16IFG Bit

XDCscript usage meta-domain
values of type SD16_A.SD16IFG_t
    const SD16_A.SD16IFG_OFF;
    // No interrupt pending
    const SD16_A.SD16IFG;
    // Interrupt pending
enum SD16_A.SD16INCH_t
index URL

SD16INCHx Bits

XDCscript usage meta-domain
values of type SD16_A.SD16INCH_t
    const SD16_A.SD16INCH_0;
    // A0
    const SD16_A.SD16INCH_1;
    // A1
    const SD16_A.SD16INCH_2;
    // A2
    const SD16_A.SD16INCH_3;
    // A3
    const SD16_A.SD16INCH_4;
    // A4
    const SD16_A.SD16INCH_5;
    // A5 - (AVcc - AVss)/11
    const SD16_A.SD16INCH_6;
    // A6 - Temperature Sensor
    const SD16_A.SD16INCH_7;
    // A7 - Short PGA offset measurement
enum SD16_A.SD16INTDLY_t
index URL

SD16INTDLYx Bits

XDCscript usage meta-domain
values of type SD16_A.SD16INTDLY_t
    const SD16_A.SD16INTDLY_0;
    // Fourth sample causes interrupt
    const SD16_A.SD16INTDLY_1;
    // Third sample causes interrupt
    const SD16_A.SD16INTDLY_2;
    // Second sample causes interrupt
    const SD16_A.SD16INTDLY_3;
    // First sample causes interrupt
enum SD16_A.SD16IV_SD16MEM0_t
index URL

SD16_A SD16MEMx overflow

XDCscript usage meta-domain
values of type SD16_A.SD16IV_SD16MEM0_t
    const SD16_A.SD16IV_SD16MEM0_OFF;
    // No Interrupt pending
    const SD16_A.SD16IV_SD16MEM0;
    // SD16MEM0 SD16IFG
enum SD16_A.SD16IV_SD16OVIFG_t
index URL

SD16_A Interrupt

XDCscript usage meta-domain
values of type SD16_A.SD16IV_SD16OVIFG_t
    const SD16_A.SD16IV_SD16OVIFG_OFF;
    // No Interrupt pending
    const SD16_A.SD16IV_SD16OVIFG;
    // SD16OVIFG
enum SD16_A.SD16LP_t
index URL

SD16LP Bit

XDCscript usage meta-domain
values of type SD16_A.SD16LP_t
    const SD16_A.SD16LP_OFF;
    // Low-power mode is disabled
    const SD16_A.SD16LP;
    // Low-power mode is enabled. The maximum clock frequency for the SD16_A is reduced
enum SD16_A.SD16LSBACC_t
index URL

SD16LSBACC Bit

XDCscript usage meta-domain
values of type SD16_A.SD16LSBACC_t
    const SD16_A.SD16LSBACC_OFF;
    // SD16MEMx contains the most significant 16-bits of the conversion
    const SD16_A.SD16LSBACC;
    // SD16MEMx contains the least significant 16-bits of the conversion
enum SD16_A.SD16LSBTOG_t
index URL

SD16LSBTOG Bit

XDCscript usage meta-domain
values of type SD16_A.SD16LSBTOG_t
    const SD16_A.SD16LSBTOG_OFF;
    // SD16LSBACC does not toggle with each SD16MEM0 read
    const SD16_A.SD16LSBTOG;
    // SD16LSBACC toggles with each SD16MEM0 read
enum SD16_A.SD16OSR_t
index URL

SD16OSRx Bits

XDCscript usage meta-domain
values of type SD16_A.SD16OSR_t
    const SD16_A.SD16OSR_256;
    // SD16XOSR = 0
    const SD16_A.SD16OSR_128;
    // SD16XOSR = 0
    const SD16_A.SD16OSR_64;
    // SD16XOSR = 0
    const SD16_A.SD16OSR_32;
    // SD16XOSR = 0
    const SD16_A.SD16OSR_512;
    // SD16XOSR = 1
    const SD16_A.SD16OSR_1024;
    // SD16XOSR = 1
enum SD16_A.SD16OVIE_t
index URL

SD16OVIE Bit

XDCscript usage meta-domain
values of type SD16_A.SD16OVIE_t
    const SD16_A.SD16OVIE_OFF;
    // Overflow interrupt disabled
    const SD16_A.SD16OVIE;
    // Overflow interrupt enabled
enum SD16_A.SD16OVIFG_t
index URL

SD16OVIFG Bit

XDCscript usage meta-domain
values of type SD16_A.SD16OVIFG_t
    const SD16_A.SD16OVIFG_OFF;
    // No overflow interrupt pending
    const SD16_A.SD16OVIFG;
    // Overflow interrupt pending
enum SD16_A.SD16REFON_t
index URL

SD16REFON Bit

XDCscript usage meta-domain
values of type SD16_A.SD16REFON_t
    const SD16_A.SD16REFON_OFF;
    // Reference off
    const SD16_A.SD16REFON;
    // Reference on
enum SD16_A.SD16SC_t
index URL

SD16SC Bit

XDCscript usage meta-domain
values of type SD16_A.SD16SC_t
    const SD16_A.SD16SC_OFF;
    // No conversino start
    const SD16_A.SD16SC;
    // Start conversion
enum SD16_A.SD16SNGL_t
index URL

SD16SNGL Bit

XDCscript usage meta-domain
values of type SD16_A.SD16SNGL_t
    const SD16_A.SD16SNGL_OFF;
    // Continuous conversion mode
    const SD16_A.SD16SNGL;
    // Single conversion mode
enum SD16_A.SD16SSEL_t
index URL

SD16SSELx Bits

XDCscript usage meta-domain
values of type SD16_A.SD16SSEL_t
    const SD16_A.SD16SSEL_0;
    // MCLK
    const SD16_A.SD16SSEL_1;
    // SMCLK
    const SD16_A.SD16SSEL_2;
    // ACLK
    const SD16_A.SD16SSEL_3;
    // External TACLK
enum SD16_A.SD16UNI_t
index URL

SD16UNI Bit

XDCscript usage meta-domain
values of type SD16_A.SD16UNI_t
    const SD16_A.SD16UNI_OFF;
    // Bipolar mode
    const SD16_A.SD16UNI;
    // Unipolar mode
enum SD16_A.SD16VMIDON_t
index URL

SD16VMIDON Bit

XDCscript usage meta-domain
values of type SD16_A.SD16VMIDON_t
    const SD16_A.SD16VMIDON_OFF;
    // Off
    const SD16_A.SD16VMIDON;
    // On
enum SD16_A.SD16XDIV_t
index URL

SD16XDIVx Bits

XDCscript usage meta-domain
values of type SD16_A.SD16XDIV_t
    const SD16_A.SD16XDIV_0;
    // Divide by 1
    const SD16_A.SD16XDIV_1;
    // Divide by 3
    const SD16_A.SD16XDIV_2;
    // Divide by 16
    const SD16_A.SD16XDIV_3;
    // Divide by 48
enum SD16_A.SD16XOSR_t
index URL

SD16XOSR Bit

XDCscript usage meta-domain
values of type SD16_A.SD16XOSR_t
    const SD16_A.SD16XOSR_OFF;
    // Extended oversampling ratio. This bit, along with the SD16OSRx bits, select the oversampling ratio. See SD16OSRx bit description for settings
    const SD16_A.SD16XOSR;
    // Extended oversampling ratio. This bit, along with the SD16OSRx bits, select the oversampling ratio. See SD16OSRx bit description for settings
struct SD16_A.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new SD16_A.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct SD16_A.SD16AE_t
index URL

SD16_A Analog Input Enable Register

XDCscript usage meta-domain
var obj = new SD16_A.SD16AE_t;
    obj.SD16AE0 = SD16_A.SD16AE0_t ...
    // SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled
    obj.SD16AE1 = SD16_A.SD16AE1_t ...
    // SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled
    obj.SD16AE2 = SD16_A.SD16AE2_t ...
    // SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled
    obj.SD16AE3 = SD16_A.SD16AE3_t ...
    // SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled
    obj.SD16AE4 = SD16_A.SD16AE4_t ...
    // SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled
    obj.SD16AE5 = SD16_A.SD16AE5_t ...
    // SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled
    obj.SD16AE6 = SD16_A.SD16AE6_t ...
    // SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled
    obj.SD16AE7 = SD16_A.SD16AE7_t ...
    // SD16_A analog enable 0 External input disabled. Negative inputs are internally connected to VSS. 1 External input enabled
struct SD16_A.SD16CCTL0_t
index URL

SD16CCTL0 Register

XDCscript usage meta-domain
var obj = new SD16_A.SD16CCTL0_t;
    obj.SD16UNI = SD16_A.SD16UNI_t ...
    // Unipolar mode select 0 Bipolar mode 1 Unipolar mode
    obj.SD16XOSR = SD16_A.SD16XOSR_t ...
    // Extended oversampling ratio. This bit, along with the SD16OSRx bits, select the oversampling ratio. See SD16OSRx bit description for settings
    obj.SD16SNGL = SD16_A.SD16SNGL_t ...
    // Single conversion mode select 0 Continuous conversion mode 1 Single conversion mode
    obj.SD16OSR = SD16_A.SD16OSR_t ...
    // Oversampling ratio When SD16XOSR = 0 00 256 01 128 10 64 11 32 When SD16XOSR = 1 00 512 01 1024 10 Reserved 11 Reserved
    obj.SD16LSBTOG = SD16_A.SD16LSBTOG_t ...
    // LSB toggle. This bit, when set, causes SD16LSBACC to toggle each time the SD16MEM0 register is read. 0 SD16LSBACC does not toggle with each SD16MEM0 read 1 SD16LSBACC toggles with each SD16MEM0 read
    obj.SD16LSBACC = SD16_A.SD16LSBACC_t ...
    // LSB access. This bit allows access to the upper or lower 16-bits of the SD16_A conversion result. 0 SD16MEMx contains the most significant 16-bits of the conversion. 1 SD16MEMx contains the least significant 16-bits of the conversion
    obj.SD16OVIFG = SD16_A.SD16OVIFG_t ...
    // SD16_A overflow interrupt flag 0 No overflow interrupt pending 1 Overflow interrupt pending
    obj.SD16DF = SD16_A.SD16DF_t ...
    // SD16_A data format 0 Offset binary 1 2's complement
    obj.SD16IE = SD16_A.SD16IE_t ...
    // SD16_A interrupt enable 0 Disabled 1 Enabled
    obj.SD16IFG = SD16_A.SD16IFG_t ...
    // SD16_A interrupt flag. SD16IFG is set when new conversion results are available. SD16IFG is automatically reset when the corresponding SD16MEMx register is read, or may be cleared with software. 0 No interrupt pending 1 Interrupt pending
    obj.SD16SC = SD16_A.SD16SC_t ...
    // SD16_A start conversion 0 No conversion start 1 Start conversion
struct SD16_A.SD16CTL_t
index URL

SD16CTL Register

XDCscript usage meta-domain
var obj = new SD16_A.SD16CTL_t;
    obj.SD16XDIV = SD16_A.SD16XDIV_t ...
    // SD16_A clock divider 000 Divide by 1 001 Divide by 3 010 Divide by 16 011 Divide by 48 1xx Reserved
    obj.SD16LP = SD16_A.SD16LP_t ...
    // Low power mode. This bit selects a reduced speed, reduced power mode 0 Low-power mode is disabled 1 Low-power mode is enabled. The maximum clock frequency for the SD16_A is reduced
    obj.SD16DIV = SD16_A.SD16DIV_t ...
    // SD16_A clock divider 00 Divide by 1 01 Divide by 2 10 Divide by 4 11 Divide by 8
    obj.SD16SSEL = SD16_A.SD16SSEL_t ...
    // SD16_A clock source select 00 MCLK 01 SMCLK 10 ACLK External TACLK
    obj.SD16VMIDON = SD16_A.SD16VMIDON_t ...
    // VMID buffer on 0 Off 1 On
    obj.SD16REFON = SD16_A.SD16REFON_t ...
    // Reference generator on 0 Reference off 1 Reference on
    obj.SD16OVIE = SD16_A.SD16OVIE_t ...
    // SD16_A overflow interrupt enable. The GIE bit must also be set to enable the interrupt. 0 Overflow interrupt disabled 1 Overflow interrupt enabled
struct SD16_A.SD16INCTL0_t
index URL

SD16INCTL0 Register

XDCscript usage meta-domain
var obj = new SD16_A.SD16INCTL0_t;
    obj.SD16INTDLY = SD16_A.SD16INTDLY_t ...
    // Interrupt delay generation after conversion start. These bits select the delay for the first interrupt after conversion start. 00 Fourth sample causes interrupt 01 Third sample causes interrupt 10 Second sample causes interrupt 11 First sample causes interrupt
    obj.SD16GAIN = SD16_A.SD16GAIN_t ...
    // SD16_A preamplifier gain 000 Multiply by 1 001 Multiply by 2 010 Multiply by 4 011 Multiply by 8 100 Multiply by 16 101 Multiply by 32 110 Reserved 111 Reserved
    obj.SD16INCH = SD16_A.SD16INCH_t ...
    // SD16_A channel differential pair input 000 A0 001 A1 010 A2 011 A3 100 A4 101 A5-- (AVCC -- AVSS) / 11 110 A6 -- Temperature Sensor 111 A7 -- Short for PGA offset measurement
struct SD16_A.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new SD16_A.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
SD16_A.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
SD16_A.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
SD16_A.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
SD16_A.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SD16_A.Params;
// Instance config-params object
    params.SD16AE = SD16_A.SD16AE_t {
    // SD16AE Register
        SD16AE0: SD16_A.SD16AE0_OFF,
        SD16AE1: SD16_A.SD16AE1_OFF,
        SD16AE2: SD16_A.SD16AE2_OFF,
        SD16AE3: SD16_A.SD16AE3_OFF,
        SD16AE4: SD16_A.SD16AE4_OFF,
        SD16AE5: SD16_A.SD16AE5_OFF,
        SD16AE6: SD16_A.SD16AE6_OFF,
        SD16AE7: SD16_A.SD16AE7_OFF
    };
    params.SD16CCTL0 = SD16_A.SD16CCTL0_t {
    // SD16CCTL0 Register
        SD16UNI: SD16_A.SD16UNI_OFF,
        SD16XOSR: SD16_A.SD16XOSR_OFF,
        SD16SNGL: SD16_A.SD16SNGL_OFF,
        SD16OSR: SD16_A.SD16OSR_256,
        SD16LSBTOG: SD16_A.SD16LSBTOG_OFF,
        SD16LSBACC: SD16_A.SD16LSBACC_OFF,
        SD16OVIFG: SD16_A.SD16OVIFG_OFF,
        SD16DF: SD16_A.SD16DF_OFF,
        SD16IE: SD16_A.SD16IE_OFF,
        SD16IFG: SD16_A.SD16IFG_OFF,
        SD16SC: SD16_A.SD16SC_OFF
    };
    params.SD16CTL = SD16_A.SD16CTL_t {
    // SD16CTL Register
        SD16XDIV: SD16_A.SD16XDIV_0,
        SD16LP: SD16_A.SD16LP_OFF,
        SD16DIV: SD16_A.SD16DIV_0,
        SD16SSEL: SD16_A.SD16SSEL_0,
        SD16VMIDON: SD16_A.SD16VMIDON_OFF,
        SD16REFON: SD16_A.SD16REFON_OFF,
        SD16OVIE: SD16_A.SD16OVIE_OFF
    };
    params.SD16INCTL0 = SD16_A.SD16INCTL0_t {
    // SD16INCTL0 Register
        SD16INTDLY: SD16_A.SD16INTDLY_0,
        SD16GAIN: SD16_A.SD16GAIN_1,
        SD16INCH: SD16_A.SD16INCH_0
    };
    params.SD16IV = Bits16 SD16_A.SD16IV_SD16OVIFG_OFF;
    // SD16IV Register
    params.SD16MEM0 = Bits16 SD16_A.SD16IV_SD16MEM0_OFF;
    // SD16MEM0 Register
    params.forceSetDefaultRegister = SD16_A.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "SD16CTL",
            regForceSet: false
        },
        {
            register: "SD16CCTL0",
            regForceSet: false
        },
        {
            register: "SD16INCTL0",
            regForceSet: false
        },
        {
            register: "SD16AE",
            regForceSet: false
        },
        {
            register: "SD16IV",
            regForceSet: false
        },
        {
            register: "SD16MEM0",
            regForceSet: false
        }
    ];
    params.interruptSource = SD16_A.regIntVect_t[2] undefined;
    // ADC10 has 1 interrupt enable
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config SD16_A.SD16AE // instance
index URL

SD16AE Register

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
params.SD16AE = SD16_A.SD16AE_t {
    SD16AE0: SD16_A.SD16AE0_OFF,
    SD16AE1: SD16_A.SD16AE1_OFF,
    SD16AE2: SD16_A.SD16AE2_OFF,
    SD16AE3: SD16_A.SD16AE3_OFF,
    SD16AE4: SD16_A.SD16AE4_OFF,
    SD16AE5: SD16_A.SD16AE5_OFF,
    SD16AE6: SD16_A.SD16AE6_OFF,
    SD16AE7: SD16_A.SD16AE7_OFF
};
config SD16_A.SD16CCTL0 // instance
index URL

SD16CCTL0 Register

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
params.SD16CCTL0 = SD16_A.SD16CCTL0_t {
    SD16UNI: SD16_A.SD16UNI_OFF,
    SD16XOSR: SD16_A.SD16XOSR_OFF,
    SD16SNGL: SD16_A.SD16SNGL_OFF,
    SD16OSR: SD16_A.SD16OSR_256,
    SD16LSBTOG: SD16_A.SD16LSBTOG_OFF,
    SD16LSBACC: SD16_A.SD16LSBACC_OFF,
    SD16OVIFG: SD16_A.SD16OVIFG_OFF,
    SD16DF: SD16_A.SD16DF_OFF,
    SD16IE: SD16_A.SD16IE_OFF,
    SD16IFG: SD16_A.SD16IFG_OFF,
    SD16SC: SD16_A.SD16SC_OFF
};
config SD16_A.SD16CTL // instance
index URL

SD16CTL Register

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
params.SD16CTL = SD16_A.SD16CTL_t {
    SD16XDIV: SD16_A.SD16XDIV_0,
    SD16LP: SD16_A.SD16LP_OFF,
    SD16DIV: SD16_A.SD16DIV_0,
    SD16SSEL: SD16_A.SD16SSEL_0,
    SD16VMIDON: SD16_A.SD16VMIDON_OFF,
    SD16REFON: SD16_A.SD16REFON_OFF,
    SD16OVIE: SD16_A.SD16OVIE_OFF
};
config SD16_A.SD16INCTL0 // instance
index URL

SD16INCTL0 Register

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
params.SD16INCTL0 = SD16_A.SD16INCTL0_t {
    SD16INTDLY: SD16_A.SD16INTDLY_0,
    SD16GAIN: SD16_A.SD16GAIN_1,
    SD16INCH: SD16_A.SD16INCH_0
};
config SD16_A.SD16IV // instance
index URL

SD16IV Register

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
params.SD16IV = Bits16 SD16_A.SD16IV_SD16OVIFG_OFF;
config SD16_A.SD16MEM0 // instance
index URL

SD16MEM0 Register

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
params.SD16MEM0 = Bits16 SD16_A.SD16IV_SD16MEM0_OFF;
config SD16_A.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
const params.forceSetDefaultRegister = SD16_A.ForceSetDefaultRegister_t[] [
    {
        register: "SD16CTL",
        regForceSet: false
    },
    {
        register: "SD16CCTL0",
        regForceSet: false
    },
    {
        register: "SD16INCTL0",
        regForceSet: false
    },
    {
        register: "SD16AE",
        regForceSet: false
    },
    {
        register: "SD16IV",
        regForceSet: false
    },
    {
        register: "SD16MEM0",
        regForceSet: false
    }
];
config SD16_A.interruptSource // instance
index URL

ADC10 has 1 interrupt enable

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
params.interruptSource = SD16_A.regIntVect_t[2] undefined;
config SD16_A.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config SD16_A.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new SD16_A.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new SD16_A.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = SD16_A.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:34 GMT


module ti.catalog.msp430.peripherals.adc.SD16_A

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== SD16_A ========
    14     *  MSP430F2xx Family SD16_A Module
    15     */
    16    metaonly module SD16_A inherits IADC {
    17
    18         /*! SD16XDIVx Bits */
    19         enum SD16XDIV_t {
    20             SD16XDIV_0 = 0x000,  /*! Divide by 1 */
    21             SD16XDIV_1 = 0x200,  /*! Divide by 3 */
    22             SD16XDIV_2 = 0x400,  /*! Divide by 16 */
    23             SD16XDIV_3 = 0x800   /*! Divide by 48 */
    24         };
    25
    26         /*! SD16LP Bit */
    27         enum SD16LP_t {
    28             SD16LP_OFF = 0x000,  /*! Low-power mode is disabled */
    29             SD16LP = 0x100       /*! Low-power mode is enabled. The maximum clock frequency for the SD16_A is reduced */
    30         };
    31
    32         /*! SD16DIVx Bits */
    33         enum SD16DIV_t {
    34             SD16DIV_0 = 0x00,  /*! Divide by 1 */
    35             SD16DIV_1 = 0x40,  /*! Divide by 2 */
    36             SD16DIV_2 = 0x80,  /*! Divide by 4 */
    37             SD16DIV_3 = 0xC0   /*! Divide by 8 */
    38         };
    39
    40         /*! SD16SSELx Bits */
    41         enum SD16SSEL_t {
    42             SD16SSEL_0 = 0x00,  /*! MCLK */
    43             SD16SSEL_1 = 0x10,  /*! SMCLK */
    44             SD16SSEL_2 = 0x20,  /*! ACLK */
    45             SD16SSEL_3 = 0x30   /*! External TACLK */
    46         };
    47
    48         /*! SD16VMIDON Bit */
    49         enum SD16VMIDON_t {
    50             SD16VMIDON_OFF = 0x00,  /*! Off */
    51             SD16VMIDON = 0x08       /*! On */
    52         };
    53
    54         /*! SD16REFON Bit */
    55         enum SD16REFON_t {
    56             SD16REFON_OFF = 0x00,  /*! Reference off */
    57             SD16REFON = 0x04       /*! Reference on */
    58         };
    59
    60         /*! SD16OVIE Bit */
    61         enum SD16OVIE_t {
    62             SD16OVIE_OFF = 0x00,  /*! Overflow interrupt disabled */
    63             SD16OVIE = 0x02       /*! Overflow interrupt enabled */
    64         };
    65
    66         /*! SD16BUFx Bits */
    67         enum SD16BUF_t {
    68             SD16BUF_0 = 0x0000,  /*! Buffer disabled */
    69             SD16BUF_1 = 0x2000,  /*! Slow speed/current */
    70             SD16BUF_2 = 0x4000,  /*! Medium speed/current */
    71             SD16BUF_3 = 0x6000   /*! High speed/current */
    72         };
    73
    74         /*! SD16UNI Bit */
    75         enum SD16UNI_t {
    76             SD16UNI_OFF = 0x0000,  /*! Bipolar mode */
    77             SD16UNI = 0x10000      /*! Unipolar mode */
    78         };
    79
    80         /*! SD16XOSR Bit */
    81         enum SD16XOSR_t {
    82             SD16XOSR_OFF = 0x000,  /*! Extended oversampling ratio. This bit, along with the SD16OSRx bits,
    83                                     * select the oversampling ratio. See SD16OSRx bit description for settings */
    84             SD16XOSR = 0x800       /*! Extended oversampling ratio. This bit, along with the SD16OSRx bits,
    85                                     * select the oversampling ratio. See SD16OSRx bit description for settings */
    86         };
    87
    88         /*! SD16SNGL Bit */
    89         enum SD16SNGL_t {
    90             SD16SNGL_OFF = 0x000,  /*! Continuous conversion mode */
    91             SD16SNGL = 0x400       /*! Single conversion mode */
    92         };
    93
    94         /*! SD16OSRx Bits */
    95         enum SD16OSR_t {
    96             SD16OSR_256 = 0x000, /*! SD16XOSR = 0 */
    97             SD16OSR_128 = 0x100, /*! SD16XOSR = 0 */
    98             SD16OSR_64 = 0x200,  /*! SD16XOSR = 0 */
    99             SD16OSR_32 = 0x300,  /*! SD16XOSR = 0 */
   100             SD16OSR_512 = 0x800, /*! SD16XOSR = 1 */
   101             SD16OSR_1024 = 0x900 /*! SD16XOSR = 1 */
   102         };
   103
   104         /*! SD16LSBTOG Bit */
   105         enum SD16LSBTOG_t {
   106             SD16LSBTOG_OFF = 0x00,  /*! SD16LSBACC does not toggle with each SD16MEM0 read */
   107             SD16LSBTOG = 0x80       /*! SD16LSBACC toggles with each SD16MEM0 read */
   108         };
   109
   110         /*! SD16LSBACC Bit */
   111         enum SD16LSBACC_t {
   112             SD16LSBACC_OFF = 0x00,  /*! SD16MEMx contains the most significant 16-bits of the conversion */
   113             SD16LSBACC = 0x40       /*! SD16MEMx contains the least significant 16-bits of the conversion */
   114         };
   115
   116         /*! SD16OVIFG Bit */
   117         enum SD16OVIFG_t {
   118             SD16OVIFG_OFF = 0x00,  /*! No overflow interrupt pending */
   119             SD16OVIFG = 0x20       /*! Overflow interrupt pending */
   120         };
   121
   122         /*! SD16DF Bit */
   123         enum SD16DF_t {
   124             SD16DF_OFF = 0x00,  /*! Offset binary */
   125             SD16DF = 0x10       /*! 2's complement */
   126         };
   127
   128         /*! SD16IE Bit */
   129         enum SD16IE_t {
   130             SD16IE_OFF = 0x00,  /*! Disabled */
   131             SD16IE = 0x08       /*! Enabled */
   132         };
   133
   134         /*! SD16IFG Bit */
   135         enum SD16IFG_t {
   136             SD16IFG_OFF = 0x00,  /*! No interrupt pending */
   137             SD16IFG = 0x04       /*! Interrupt pending */
   138         };
   139
   140         /*! SD16SC Bit */
   141         enum SD16SC_t {
   142             SD16SC_OFF = 0x00,  /*! No conversino start */
   143             SD16SC = 0x02       /*! Start conversion */
   144         };
   145
   146         /*! SD16INTDLYx Bits */
   147         enum SD16INTDLY_t {
   148             SD16INTDLY_0 = 0x00,  /*! Fourth sample causes interrupt */
   149             SD16INTDLY_1 = 0x40,  /*! Third sample causes interrupt */
   150             SD16INTDLY_2 = 0x80,  /*! Second sample causes interrupt */
   151             SD16INTDLY_3 = 0xC0   /*! First sample causes interrupt */
   152         };
   153
   154         /*! SD16GAINx Bits */
   155         enum SD16GAIN_t {
   156             SD16GAIN_1 = 0x00,  /*! Multiply by 1 */
   157             SD16GAIN_2 = 0x08,  /*! Multiply by 2 */
   158             SD16GAIN_4 = 0x10,  /*! Multiply by 4 */
   159             SD16GAIN_8 = 0x18,  /*! Multiply by 8 */
   160             SD16GAIN_16 = 0x20,  /*! Multiply by 16 */
   161             SD16GAIN_32 = 0x28   /*! Multiply by 32 */
   162         };
   163
   164         /*! SD16INCHx Bits */
   165         enum SD16INCH_t {
   166             SD16INCH_0 = 0x000,  /*! A0 */
   167             SD16INCH_1 = 0x001,  /*! A1 */
   168             SD16INCH_2 = 0x010,  /*! A2 */
   169             SD16INCH_3 = 0x011,  /*! A3 */
   170             SD16INCH_4 = 0x100,  /*! A4 */
   171             SD16INCH_5 = 0x101,  /*! A5 - (AVcc - AVss)/11 */
   172             SD16INCH_6 = 0x110,  /*! A6 - Temperature Sensor */
   173             SD16INCH_7 = 0x111   /*! A7 - Short PGA offset measurement */
   174         };
   175
   176
   177        /*! SD16_A Analog Enable Bit 7 */
   178        enum SD16AE7_t {
   179            SD16AE7_OFF = 0x0000,  /*! External input disabled. Negative inputs are internally connected to VSS. */
   180            SD16AE7     = 0x0080   /*! External input enabled */
   181        };
   182
   183        /*! SD16_A Analog Enable Bit 6 */
   184        enum SD16AE6_t {
   185            SD16AE6_OFF = 0x0000,  /*! External input disabled. Negative inputs are internally connected to VSS. */
   186            SD16AE6     = 0x0040   /*! External input enabled */
   187        };
   188
   189        /*! SD16_A Analog Enable Bit 5 */
   190        enum SD16AE5_t {
   191            SD16AE5_OFF = 0x0000,  /*! External input disabled. Negative inputs are internally connected to VSS. */
   192            SD16AE5     = 0x0020   /*! External input enabled */
   193        };
   194
   195        /*! SD16_A Analog Enable Bit 4 */
   196        enum SD16AE4_t {
   197            SD16AE4_OFF = 0x0000,  /*! External input disabled. Negative inputs are internally connected to VSS. */
   198            SD16AE4     = 0x0010   /*! External input enabled */
   199        };
   200
   201        /*! SD16_A Analog Enable Bit 3 */
   202        enum SD16AE3_t {
   203            SD16AE3_OFF = 0x0000,  /*! External input disabled. Negative inputs are internally connected to VSS. */
   204            SD16AE3     = 0x0008   /*! External input enabled */
   205        };
   206
   207        /*! SD16_A Analog Enable Bit 2 */
   208        enum SD16AE2_t {
   209            SD16AE2_OFF = 0x0000,  /*! External input disabled. Negative inputs are internally connected to VSS. */
   210            SD16AE2     = 0x0004   /*! External input enabled */
   211        };
   212
   213        /*! SD16_A Analog Enable Bit 1 */
   214        enum SD16AE1_t {
   215            SD16AE1_OFF = 0x0000,  /*! External input disabled. Negative inputs are internally connected to VSS. */
   216            SD16AE1     = 0x0002   /*! External input enabled */
   217        };
   218
   219        /*! SD16_A Analog Enable Bit 0 */
   220        enum SD16AE0_t {
   221            SD16AE0_OFF = 0x0000,  /*! External input disabled. Negative inputs are internally connected to VSS. */
   222            SD16AE0     = 0x0001   /*! External input enabled */
   223        };
   224
   225        /*! SD16_A Interrupt */
   226        enum SD16IV_SD16OVIFG_t {
   227            SD16IV_SD16OVIFG_OFF = 0x0000,  /*! No Interrupt pending */
   228            SD16IV_SD16OVIFG     = 0x0002   /*! SD16OVIFG */
   229        };
   230
   231        /*! SD16_A SD16MEMx overflow */
   232        enum SD16IV_SD16MEM0_t {
   233            SD16IV_SD16MEM0_OFF = 0x0000,  /*! No Interrupt pending */
   234            SD16IV_SD16MEM0     = 0x0004   /*! SD16MEM0 SD16IFG */
   235        };
   236
   237        /*! SD16CTL Register */
   238        struct SD16CTL_t {
   239            SD16XDIV_t SD16XDIV;     /*! SD16_A clock divider
   240                                      * 000 Divide by 1
   241                                      * 001 Divide by 3
   242                                      * 010 Divide by 16
   243                                      * 011 Divide by 48
   244                                      * 1xx Reserved */
   245            SD16LP_t SD16LP;         /*! Low power mode. This bit selects a reduced speed, reduced power mode
   246                                      * 0 Low-power mode is disabled
   247                                      * 1 Low-power mode is enabled. The maximum clock frequency for the
   248                                      *  SD16_A is reduced. */
   249            SD16DIV_t SD16DIV;       /*! SD16_A clock divider
   250                                      * 00 Divide by 1
   251                                      * 01 Divide by 2
   252                                      * 10 Divide by 4
   253                                      * 11 Divide by 8 */
   254            SD16SSEL_t SD16SSEL;     /*! SD16_A clock source select
   255                                      * 00 MCLK
   256                                      * 01 SMCLK
   257                                      * 10 ACLK
   258                                      * External TACLK */
   259            SD16VMIDON_t SD16VMIDON; /*! VMID buffer on
   260                                      * 0 Off
   261                                      * 1 On */
   262            SD16REFON_t SD16REFON;   /*! Reference generator on
   263                                      * 0 Reference off
   264                                      * 1 Reference on */
   265            SD16OVIE_t SD16OVIE;     /*! SD16_A overflow interrupt enable. The GIE bit must also be set to enable the
   266                                      * interrupt.
   267                                      * 0 Overflow interrupt disabled
   268                                      * 1 Overflow interrupt enabled */
   269        };
   270
   271        /*! SD16CCTL0 Register */
   272        struct SD16CCTL0_t {
   273            SD16UNI_t SD16UNI;       /*! Unipolar mode select
   274                                      * 0 Bipolar mode
   275                                      * 1 Unipolar mode */
   276            SD16XOSR_t SD16XOSR;     /*! Extended oversampling ratio. This bit, along with the SD16OSRx bits,
   277                                      * select the oversampling ratio. See SD16OSRx bit description for settings. */
   278            SD16SNGL_t SD16SNGL;     /*! Single conversion mode select
   279                                      * 0 Continuous conversion mode
   280                                      * 1 Single conversion mode */
   281            SD16OSR_t SD16OSR;       /*! Oversampling ratio
   282                                      * When SD16XOSR = 0
   283                                      * 00 256
   284                                      * 01 128
   285                                      * 10 64
   286                                      * 11 32
   287                                      * When SD16XOSR = 1
   288                                      * 00 512
   289                                      * 01 1024
   290                                      * 10 Reserved
   291                                      * 11 Reserved */
   292            SD16LSBTOG_t SD16LSBTOG; /*! LSB toggle. This bit, when set, causes SD16LSBACC to toggle each time
   293                                      * the SD16MEM0 register is read.
   294                                      * 0 SD16LSBACC does not toggle with each SD16MEM0 read
   295                                      * 1 SD16LSBACC toggles with each SD16MEM0 read */
   296            SD16LSBACC_t SD16LSBACC; /*! LSB access. This bit allows access to the upper or lower 16-bits of the
   297                                      * SD16_A conversion result.
   298                                      * 0 SD16MEMx contains the most significant 16-bits of the conversion.
   299                                      * 1 SD16MEMx contains the least significant 16-bits of the conversion. */
   300            SD16OVIFG_t SD16OVIFG;   /*! SD16_A overflow interrupt flag
   301                                      * 0 No overflow interrupt pending
   302                                      * 1 Overflow interrupt pending */
   303            SD16DF_t SD16DF;         /*! SD16_A data format
   304                                      * 0 Offset binary
   305                                      * 1 2's complement */
   306            SD16IE_t SD16IE;         /*! SD16_A interrupt enable
   307                                      * 0 Disabled
   308                                      * 1 Enabled */
   309            SD16IFG_t SD16IFG;       /*! SD16_A interrupt flag. SD16IFG is set when new conversion results are
   310                                      * available. SD16IFG is automatically reset when the corresponding
   311                                      * SD16MEMx register is read, or may be cleared with software.
   312                                      * 0 No interrupt pending
   313                                      * 1 Interrupt pending */
   314            SD16SC_t SD16SC;         /*! SD16_A start conversion
   315                                      * 0 No conversion start
   316                                      * 1 Start conversion */
   317        };
   318
   319        /*! SD16INCTL0 Register */
   320        struct SD16INCTL0_t {
   321            SD16INTDLY_t SD16INTDLY;  /*! Interrupt delay generation after conversion start. These bits select the
   322                                       * delay for the first interrupt after conversion start.
   323                                       * 00 Fourth sample causes interrupt
   324                                       * 01 Third sample causes interrupt
   325                                       * 10 Second sample causes interrupt
   326                                       * 11 First sample causes interrupt */
   327
   328            SD16GAIN_t SD16GAIN;      /*! SD16_A preamplifier gain
   329                                       * 000 Multiply by 1
   330                                       * 001 Multiply by 2
   331                                       * 010 Multiply by 4
   332                                       * 011 Multiply by 8
   333                                       * 100 Multiply by 16
   334                                       * 101 Multiply by 32
   335                                       * 110 Reserved
   336                                       * 111 Reserved */
   337
   338            SD16INCH_t SD16INCH;      /*! SD16_A channel differential pair input
   339                                       * 000 A0
   340                                       * 001 A1
   341                                       * 010 A2
   342                                       * 011 A3
   343                                       * 100 A4
   344                                       * 101 A5-- (AVCC -- AVSS) / 11
   345                                       * 110 A6 -- Temperature Sensor
   346                                       * 111 A7 -- Short for PGA offset measurement */
   347        };
   348
   349        /*! SD16_A Analog Input Enable Register */
   350        struct SD16AE_t {
   351             SD16AE0_t SD16AE0; /*! SD16_A analog enable
   352                                 * 0 External input disabled. Negative inputs are internally connected to
   353                                 *   VSS.
   354                                 * 1 External input enabled */
   355             SD16AE1_t SD16AE1; /*! SD16_A analog enable
   356                                 * 0 External input disabled. Negative inputs are internally connected to
   357                                 *   VSS.
   358                                 * 1 External input enabled */
   359            SD16AE2_t SD16AE2; /*! SD16_A analog enable
   360                                * 0 External input disabled. Negative inputs are internally connected to
   361                                *   VSS.
   362                                * 1 External input enabled */
   363            SD16AE3_t SD16AE3; /*! SD16_A analog enable
   364                                * 0 External input disabled. Negative inputs are internally connected to
   365                                *   VSS.
   366                                * 1 External input enabled */
   367            SD16AE4_t SD16AE4; /*! SD16_A analog enable
   368                                * 0 External input disabled. Negative inputs are internally connected to
   369                                *   VSS.
   370                                * 1 External input enabled */
   371            SD16AE5_t SD16AE5; /*! SD16_A analog enable
   372                                * 0 External input disabled. Negative inputs are internally connected to
   373                                *   VSS.
   374                                * 1 External input enabled */
   375            SD16AE6_t SD16AE6; /*! SD16_A analog enable
   376                                * 0 External input disabled. Negative inputs are internally connected to
   377                                *   VSS.
   378                                * 1 External input enabled */
   379            SD16AE7_t SD16AE7; /*! SD16_A analog enable
   380                                * 0 External input disabled. Negative inputs are internally connected to
   381                                *   VSS.
   382                                * 1 External input enabled */
   383        };
   384
   385    instance:
   386
   387        /*! SD16CTL Register */
   388        config SD16CTL_t SD16CTL = {
   389            SD16XDIV    : SD16XDIV_0,
   390            SD16LP      : SD16LP_OFF,
   391            SD16DIV     : SD16DIV_0,
   392            SD16SSEL    : SD16SSEL_0,
   393            SD16VMIDON  : SD16VMIDON_OFF,
   394            SD16REFON   : SD16REFON_OFF,
   395            SD16OVIE    : SD16OVIE_OFF
   396        };
   397
   398        /*! SD16CCTL0 Register */
   399        config SD16CCTL0_t SD16CCTL0 = {
   400            SD16UNI     : SD16UNI_OFF,
   401            SD16XOSR    : SD16XOSR_OFF,
   402            SD16SNGL    : SD16SNGL_OFF,
   403            SD16OSR     : SD16OSR_256,
   404            SD16LSBTOG  : SD16LSBTOG_OFF,
   405            SD16LSBACC  : SD16LSBACC_OFF,
   406            SD16OVIFG   : SD16OVIFG_OFF,
   407            SD16DF      : SD16DF_OFF,
   408            SD16IE      : SD16IE_OFF,
   409            SD16IFG     : SD16IFG_OFF,
   410            SD16SC      : SD16SC_OFF
   411        };
   412
   413        /*! SD16INCTL0 Register */
   414        config SD16INCTL0_t SD16INCTL0 = {
   415            SD16INTDLY  : SD16INTDLY_0,
   416            SD16GAIN    : SD16GAIN_1,
   417            SD16INCH    : SD16INCH_0
   418        };
   419
   420        /*! SD16AE Register */
   421        config SD16AE_t SD16AE = {
   422            SD16AE0 : SD16AE0_OFF,
   423            SD16AE1 : SD16AE1_OFF,
   424            SD16AE2 : SD16AE2_OFF,
   425            SD16AE3 : SD16AE3_OFF,
   426            SD16AE4 : SD16AE4_OFF,
   427            SD16AE5 : SD16AE5_OFF,
   428            SD16AE6 : SD16AE6_OFF,
   429            SD16AE7 : SD16AE7_OFF
   430        };
   431
   432        /*! SD16IV Register */
   433        config Bits16 SD16IV = SD16IV_SD16OVIFG_OFF;
   434
   435        /*! SD16MEM0 Register */
   436        config Bits16 SD16MEM0 = SD16IV_SD16MEM0_OFF;
   437
   438        /*! ADC10 has 1 interrupt enable */
   439        config regIntVect_t interruptSource[2];
   440
   441        /*! Determine if each Register needs to be forced set or not */
   442        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   443        [
   444            { register : "SD16CTL" , regForceSet : false },
   445            { register : "SD16CCTL0" , regForceSet : false },
   446            { register : "SD16INCTL0" , regForceSet : false },
   447            { register : "SD16AE" , regForceSet : false },
   448            { register : "SD16IV" , regForceSet : false },
   449            { register : "SD16MEM0" , regForceSet : false }
   450        ];
   451    }


package ti.catalog.msp430.peripherals.clock
index URL

MSP430 clock peripherals

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/package.xdc
requires ti.catalog.msp430.peripherals.special_function;
package ti.catalog.msp430.peripherals.clock [1, 0, 0] {
    interface IClock;
    // MSP430 Master Clock
    module BCSplus;
    // MSP430 Basic Clock System
    module CS;
    // MSP430 Clock System
    module CS_A;
    // MSP430 Clock System
    module UCS;
    // MSP430 Unified Clock System
}
generated on Thu, 08 Nov 2012 02:16:36 GMT


package ti.catalog.msp430.peripherals.clock

     1    requires ti.catalog.msp430.peripherals.special_function;
     2
     3    /*!
     4     *  ======== ti.catalog.msp430.peripherals.clock ========
     5     *  MSP430 clock peripherals
     6     */
     7    package ti.catalog.msp430.peripherals.clock [1, 0, 0] {
     8        module BCSplus, UCS, CS, CS_A;
     9        interface IClock;
    10    }


module ti.catalog.msp430.peripherals.clock.BCSplus

metaonly module ti.catalog.msp430.peripherals.clock.BCSplus
index URL

MSP430 Basic Clock System

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/clock/BCSplus.xdc
var BCSplus = xdc.useModule('ti.catalog.msp430.peripherals.clock.BCSplus');
module-wide constants & types
    values of type BCSplus.DCO0_t// DCO0 Bit
        const BCSplus.DCO0_OFF// Disable DCO0 bit;
        const BCSplus.DCO0// Enable DCO0 bit;
    values of type BCSplus.DCO1_t// DCO1 Bit
        const BCSplus.DCO1_OFF// Disable DCO1 bit;
        const BCSplus.DCO1// Enable DCO1 bit;
    values of type BCSplus.DCO2_t// DCO2 Bit
        const BCSplus.DCO2_OFF// Disable DCO2 bit;
        const BCSplus.DCO2// Enable DCO2 bit;
    values of type BCSplus.DCOR_t//
        const BCSplus.DCOR_OFF// DCO uses internal resistor;
        const BCSplus.DCOR// DCO uses external resistor;
    values of type BCSplus.DIVA_t// ACLK Divider values
        const BCSplus.DIVA_0// Divide by 1;
        const BCSplus.DIVA_1// Divide by 2;
        const BCSplus.DIVA_2// Divide by 4;
        const BCSplus.DIVA_3// Divide by 8;
    values of type BCSplus.DIVM_t// MCLK Divider values
        const BCSplus.DIVM_0// Divide by 1;
        const BCSplus.DIVM_1// Divide by 2;
        const BCSplus.DIVM_2// Divide by 4;
        const BCSplus.DIVM_3// Divide by 8;
    values of type BCSplus.DIVS_t// SMCLK Divider values
        const BCSplus.DIVS_0// Divide by 1;
        const BCSplus.DIVS_1// Divide by 2;
        const BCSplus.DIVS_2// Divide by 4;
        const BCSplus.DIVS_3// Divide by 8;
    values of type BCSplus.LFXT1OF_t//
        const BCSplus.LFXT1OF_OFF// No fault condition present;
        const BCSplus.LFXT1OF// LFXT1 fault condition present;
    values of type BCSplus.LFXT1S_t//
        const BCSplus.LFXT1S_0// If XTS = 0, XT1 = 32768kHz Crystal ; If XTS = 1, XT1 = 0.4 - 1-MHz crystal or resonator;
        const BCSplus.LFXT1S_1// If XTS = 0, XT1 = Reserved ; If XTS = 1, XT1 = 1 - 3-MHz crystal or resonator;
        const BCSplus.LFXT1S_2// If XTS = 0, XT1 = VLOCLK ; If XTS = 1, XT1 = 3 - 16-MHz crystal or resonator;
        const BCSplus.LFXT1S_3// If XTS = 0, XT1 = Digital External ; If XTS = 1, XT1 = 0.4 - 16-MHz Digital External;
    values of type BCSplus.MOD0_t// MOD0 Bit
        const BCSplus.MOD0_OFF// Disable MOD0 bit;
        const BCSplus.MOD0// Enable MOD0 bit;
    values of type BCSplus.MOD1_t// MOD1 Bit
        const BCSplus.MOD1_OFF// Disable MOD1 bit;
        const BCSplus.MOD1// Enable MOD1 bit;
    values of type BCSplus.MOD2_t// MOD2 Bit
        const BCSplus.MOD2_OFF// Disable MOD2 bit;
        const BCSplus.MOD2// Enable MOD2 bit;
    values of type BCSplus.MOD3_t// MOD3 Bit
        const BCSplus.MOD3_OFF// Disable MOD3 bit;
        const BCSplus.MOD3// Enable MOD3 bit;
    values of type BCSplus.MOD4_t// MOD4 Bit
        const BCSplus.MOD4_OFF// Disable MOD4 bit;
        const BCSplus.MOD4// Enable MOD4 bit;
    values of type BCSplus.RSEL0_t//
        const BCSplus.RSEL0_OFF// Disable RSEL0 bit;
        const BCSplus.RSEL0// Enable RSEL0 bit;
    values of type BCSplus.RSEL1_t//
        const BCSplus.RSEL1_OFF// Disable RSEL1 bit;
        const BCSplus.RSEL1// Enable RSEL1 bit;
    values of type BCSplus.RSEL2_t//
        const BCSplus.RSEL2_OFF// Disable RSEL2 bit;
        const BCSplus.RSEL2// Enable RSEL2 bit;
    values of type BCSplus.RSEL3_t//
        const BCSplus.RSEL3_OFF// Disable RSEL3 bit;
        const BCSplus.RSEL3// Enable RSEL3 bit;
    values of type BCSplus.SELM_t// MCLK Source Select
        const BCSplus.SELM_0// DCOCLK;
        const BCSplus.SELM_2// XT2CLK/LFXTCLK;
        const BCSplus.SELM_3// LFXTCLK;
    values of type BCSplus.SELS_t//
        const BCSplus.SELS_OFF// DCOCLK;
        const BCSplus.SELS// XT2CLK when XT2 oscillator present. LFXT1CLK or VLOCLK when XT2 oscillator not present;
    values of type BCSplus.XCAP_t//
        const BCSplus.XCAP_0// ~1 pF;
        const BCSplus.XCAP_1// ~6 pF;
        const BCSplus.XCAP_2// ~10 pF;
        const BCSplus.XCAP_3// ~12.5 pF;
    values of type BCSplus.XT2OFF_t//
        const BCSplus.XT2OFF_OFF// Enable XT2CLK;
        const BCSplus.XT2OFF// Disable XT2CLK;
    values of type BCSplus.XT2OF_t//
        const BCSplus.XT2OF_OFF// No fault condition present;
        const BCSplus.XT2OF// XT2 fault condition present;
    values of type BCSplus.XT2S_t// XT2 frequency range select
        const BCSplus.XT2S_0// 0.4 - 1 MHz;
        const BCSplus.XT2S_1// 1 - 3 MHz;
        const BCSplus.XT2S_2// 3 - 16 MHz;
        const BCSplus.XT2S_3// Digital input signal;
    values of type BCSplus.XTS_t//
        const BCSplus.XTS_OFF// Low Frequency;
        const BCSplus.XTS// High Frequency;
    var obj = new BCSplus.AvailableClockVariations_t// Available variations of clock in a device;
        obj.clockType = String ...
        obj.hasClock = Bool ...
    var obj = new BCSplus.BCSCTL1_t// BCS Control Register 1;
        obj.XT2OFF// XT2 off. This bit turns off the XT2 oscillator 0 XT2 is on 1 XT2 is off if it is not used for MCLK or SMCLK = BCSplus.XT2OFF_t ...
        obj.XTS// LFXT1 mode select. 0 Low frequency mode 1 High frequency mode = BCSplus.XTS_t ...
        obj.DIVA// Divider for ACLK 00 /1 01 /2 10 /4 11 /8 = BCSplus.DIVA_t ...
        obj.RSEL0// Range select bit 0 = BCSplus.RSEL0_t ...
        obj.RSEL1// Range select bit 1 = BCSplus.RSEL1_t ...
        obj.RSEL2// Range select bit 2 = BCSplus.RSEL2_t ...
        obj.RSEL3// Range select bit 3 = BCSplus.RSEL3_t ...
    var obj = new BCSplus.BCSCTL2_t// BCS Control Register 2;
        obj.SELM// Select MCLK. These bits select the MCLK source. 00 DCOCLK 01 DCOCLK 10 XT2CLK when XT2 oscillator present on-chip. LFXT1CLK or VLOCLK when XT2 oscillator not present on-chip. 11 LFXT1CLK or VLOCLK = BCSplus.SELM_t ...
        obj.DIVM// Divider for MCLK 00 /1 01 /2 10 /4 11 /8 = BCSplus.DIVM_t ...
        obj.SELS// Select SMCLK. This bit selects the SMCLK source. 0 DCOCLK 1 XT2CLK when XT2 oscillator present. LFXT1CLK or VLOCLK when XT2 oscillator not present = BCSplus.SELS_t ...
        obj.DIVS// Divider for SMCLK 00 /1 01 /2 10 /4 11 /8 = BCSplus.DIVS_t ...
        obj.DCOR// DCO resistor select 0 Internal resistor 1 External resistor = BCSplus.DCOR_t ...
    var obj = new BCSplus.BCSCTL3_t// BCS Control register 3;
        obj.XT2S// XT2 range select. These bits select the frequency range for XT2. 00 0.4 - 1-MHz crystal or resonator 01 1 - 3-MHz crystal or resonator 10 3 - 16-MHz crystal or resonator 11 Digital external 0.4 - 16-MHz clock source = BCSplus.XT2S_t ...
        obj.LFXT1S// Low-frequency clock select and LFXT1 range select. These bits select between LFXT1 and VLO when XTS = 0, and select the frequency range for LFXT1 when XTS = 1 = BCSplus.LFXT1S_t ...
        obj.XCAP// Oscillator capacitor selection. These bits select the effective capacitance seen by the LFXT1 crystal when XTS = 0. If XTS = 1 or if LFCT1Sx = 11 XCAPx should be 00. 00 ~1 pF 01 ~6 pF 10 ~10 pF 11 ~12.5 pF = BCSplus.XCAP_t ...
        obj.XT2OF// XT2 oscillator fault 0 No fault condition present 1 Fault condition present = BCSplus.XT2OF_t ...
        obj.LFXT1OF// LFXT1 oscillator fault 0 No fault condition present 1 Fault condition present = BCSplus.LFXT1OF_t ...
    var obj = new BCSplus.DCOCTL_t// ;
        obj.MOD0// Modulation Bit 0 = BCSplus.MOD0_t ...
        obj.MOD1// Modulation Bit 1 = BCSplus.MOD1_t ...
        obj.MOD2// Modulation Bit 2 = BCSplus.MOD2_t ...
        obj.MOD3// Modulation Bit 3 = BCSplus.MOD3_t ...
        obj.MOD4// Modulation Bit 4 = BCSplus.MOD4_t ...
        obj.DCO0// DCO Select Bit 0 = BCSplus.DCO0_t ...
        obj.DCO1// DCO Select Bit 1 = BCSplus.DCO1_t ...
        obj.DCO2// DCO Select Bit 2 = BCSplus.DCO2_t ...
    var obj = new BCSplus.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
module-wide functions
     BCSplus.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     BCSplus.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new BCSplus.Params// Instance config-params object;
        params.ACLKHz// ACLK frequency in Hertz = Float undefined;
        params.BCSCTL1// Basic Clock System Control 1 = BCSplus.BCSCTL1_t {
            XT2OFF: BCSplus.XT2OFF,
            XTS: BCSplus.XTS_OFF,
            DIVA: BCSplus.DIVA_0,
            RSEL0: BCSplus.RSEL0,
            RSEL1: BCSplus.RSEL1,
            RSEL2: BCSplus.RSEL2,
            RSEL3: BCSplus.RSEL3_OFF
        };
        params.BCSCTL2// Basic Clock System Control 2 = BCSplus.BCSCTL2_t {
            SELM: BCSplus.SELM_0,
            DIVM: BCSplus.DIVM_0,
            SELS: BCSplus.SELS_OFF,
            DIVS: BCSplus.DIVS_0,
            DCOR: BCSplus.DCOR_OFF
        };
        params.BCSCTL3// Basic Clock System Control 3 = BCSplus.BCSCTL3_t {
            XT2S: BCSplus.XT2S_0,
            LFXT1S: BCSplus.LFXT1S_0,
            XCAP: BCSplus.XCAP_1
        };
        params.DCOCLKHz// DCO clock frequency in Hertz = Float 1000000;
        params.DCOCTL// DCO Clock Frequency Control = BCSplus.DCOCTL_t {
            MOD0: BCSplus.MOD0_OFF,
            MOD1: BCSplus.MOD1_OFF,
            MOD2: BCSplus.MOD2_OFF,
            MOD3: BCSplus.MOD3_OFF,
            MOD4: BCSplus.MOD4_OFF,
            DCO0: BCSplus.DCO0,
            DCO1: BCSplus.DCO1,
            DCO2: BCSplus.DCO2_OFF
        };
        params.LFXT1CLKHz// = Float 0;
        params.MCLKHz// MCLK frequency in Hertz = Float undefined;
        params.SMCLKHz// SMCLK frequency in Hertz = Float undefined;
        params.VLOCLKHz// = Float 12000;
        params.WATCHCRYSTALCLKHz// = Float 32768;
        params.XT2CLKHz// = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.enableXT2// Set whether XT2 is used on the device. This is different than hasXT2 variable = Bool false;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = BCSplus.ForceSetDefaultRegister_t[] [
            {
                register: "DCOCTL",
                regForceSet: false
            },
            {
                register: "BCSCTL1",
                regForceSet: false
            },
            {
                register: "BCSCTL2",
                regForceSet: false
            },
            {
                register: "BCSCTL3",
                regForceSet: false
            }
        ];
        params.hasAllCal// Specify if device has all calibration constants = Bool false;
        params.hasHFXT1// Specify if HFXT1 is available on the device = Bool false;
        params.hasRosc// Specify if Rosc is available on the device = Bool false;
        params.hasVLO// Specify if VLO is available on the device = Bool false;
        params.hasXT2// Specify if XT2 is available on the device = Bool false;
        params.maxCpuFrequency// Maximum CPU frequency in Hertz = Float 0;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
        params.preCalibratedValues// Basic Clock System + pre-calibrated system frequency = UInt 0;
        params.preCalibratedValuesItems// hasAllCal = false UInt - Description 0 - 1 MHz 1 - Custom = String[length] undefined;
per-instance functions
     inst.computeDCOCLKHz// Initialize to the nearest available DCO clock frequency(Float DCOCLKHz) returns Void
enum BCSplus.DCO0_t
index URL

DCO0 Bit

XDCscript usage meta-domain
values of type BCSplus.DCO0_t
    const BCSplus.DCO0_OFF;
    // Disable DCO0 bit
    const BCSplus.DCO0;
    // Enable DCO0 bit
enum BCSplus.DCO1_t
index URL

DCO1 Bit

XDCscript usage meta-domain
values of type BCSplus.DCO1_t
    const BCSplus.DCO1_OFF;
    // Disable DCO1 bit
    const BCSplus.DCO1;
    // Enable DCO1 bit
enum BCSplus.DCO2_t
index URL

DCO2 Bit

XDCscript usage meta-domain
values of type BCSplus.DCO2_t
    const BCSplus.DCO2_OFF;
    // Disable DCO2 bit
    const BCSplus.DCO2;
    // Enable DCO2 bit
enum BCSplus.DCOR_t
index URL
XDCscript usage meta-domain
values of type BCSplus.DCOR_t
    const BCSplus.DCOR_OFF;
    // DCO uses internal resistor
    const BCSplus.DCOR;
    // DCO uses external resistor
enum BCSplus.DIVA_t
index URL

ACLK Divider values

XDCscript usage meta-domain
values of type BCSplus.DIVA_t
    const BCSplus.DIVA_0;
    // Divide by 1
    const BCSplus.DIVA_1;
    // Divide by 2
    const BCSplus.DIVA_2;
    // Divide by 4
    const BCSplus.DIVA_3;
    // Divide by 8
enum BCSplus.DIVM_t
index URL

MCLK Divider values

XDCscript usage meta-domain
values of type BCSplus.DIVM_t
    const BCSplus.DIVM_0;
    // Divide by 1
    const BCSplus.DIVM_1;
    // Divide by 2
    const BCSplus.DIVM_2;
    // Divide by 4
    const BCSplus.DIVM_3;
    // Divide by 8
enum BCSplus.DIVS_t
index URL

SMCLK Divider values

XDCscript usage meta-domain
values of type BCSplus.DIVS_t
    const BCSplus.DIVS_0;
    // Divide by 1
    const BCSplus.DIVS_1;
    // Divide by 2
    const BCSplus.DIVS_2;
    // Divide by 4
    const BCSplus.DIVS_3;
    // Divide by 8
enum BCSplus.LFXT1OF_t
index URL
XDCscript usage meta-domain
values of type BCSplus.LFXT1OF_t
    const BCSplus.LFXT1OF_OFF;
    // No fault condition present
    const BCSplus.LFXT1OF;
    // LFXT1 fault condition present
enum BCSplus.LFXT1S_t
index URL
XDCscript usage meta-domain
values of type BCSplus.LFXT1S_t
    const BCSplus.LFXT1S_0;
    // If XTS = 0, XT1 = 32768kHz Crystal ; If XTS = 1, XT1 = 0.4 - 1-MHz crystal or resonator
    const BCSplus.LFXT1S_1;
    // If XTS = 0, XT1 = Reserved ; If XTS = 1, XT1 = 1 - 3-MHz crystal or resonator
    const BCSplus.LFXT1S_2;
    // If XTS = 0, XT1 = VLOCLK ; If XTS = 1, XT1 = 3 - 16-MHz crystal or resonator
    const BCSplus.LFXT1S_3;
    // If XTS = 0, XT1 = Digital External ; If XTS = 1, XT1 = 0.4 - 16-MHz Digital External
enum BCSplus.MOD0_t
index URL

MOD0 Bit

XDCscript usage meta-domain
values of type BCSplus.MOD0_t
    const BCSplus.MOD0_OFF;
    // Disable MOD0 bit
    const BCSplus.MOD0;
    // Enable MOD0 bit
enum BCSplus.MOD1_t
index URL

MOD1 Bit

XDCscript usage meta-domain
values of type BCSplus.MOD1_t
    const BCSplus.MOD1_OFF;
    // Disable MOD1 bit
    const BCSplus.MOD1;
    // Enable MOD1 bit
enum BCSplus.MOD2_t
index URL

MOD2 Bit

XDCscript usage meta-domain
values of type BCSplus.MOD2_t
    const BCSplus.MOD2_OFF;
    // Disable MOD2 bit
    const BCSplus.MOD2;
    // Enable MOD2 bit
enum BCSplus.MOD3_t
index URL

MOD3 Bit

XDCscript usage meta-domain
values of type BCSplus.MOD3_t
    const BCSplus.MOD3_OFF;
    // Disable MOD3 bit
    const BCSplus.MOD3;
    // Enable MOD3 bit
enum BCSplus.MOD4_t
index URL

MOD4 Bit

XDCscript usage meta-domain
values of type BCSplus.MOD4_t
    const BCSplus.MOD4_OFF;
    // Disable MOD4 bit
    const BCSplus.MOD4;
    // Enable MOD4 bit
enum BCSplus.RSEL0_t
index URL
XDCscript usage meta-domain
values of type BCSplus.RSEL0_t
    const BCSplus.RSEL0_OFF;
    // Disable RSEL0 bit
    const BCSplus.RSEL0;
    // Enable RSEL0 bit
enum BCSplus.RSEL1_t
index URL
XDCscript usage meta-domain
values of type BCSplus.RSEL1_t
    const BCSplus.RSEL1_OFF;
    // Disable RSEL1 bit
    const BCSplus.RSEL1;
    // Enable RSEL1 bit
enum BCSplus.RSEL2_t
index URL
XDCscript usage meta-domain
values of type BCSplus.RSEL2_t
    const BCSplus.RSEL2_OFF;
    // Disable RSEL2 bit
    const BCSplus.RSEL2;
    // Enable RSEL2 bit
enum BCSplus.RSEL3_t
index URL
XDCscript usage meta-domain
values of type BCSplus.RSEL3_t
    const BCSplus.RSEL3_OFF;
    // Disable RSEL3 bit
    const BCSplus.RSEL3;
    // Enable RSEL3 bit
enum BCSplus.SELM_t
index URL

MCLK Source Select

XDCscript usage meta-domain
values of type BCSplus.SELM_t
    const BCSplus.SELM_0;
    // DCOCLK
    const BCSplus.SELM_2;
    // XT2CLK/LFXTCLK
    const BCSplus.SELM_3;
    // LFXTCLK
enum BCSplus.SELS_t
index URL
XDCscript usage meta-domain
values of type BCSplus.SELS_t
    const BCSplus.SELS_OFF;
    // DCOCLK
    const BCSplus.SELS;
    // XT2CLK when XT2 oscillator present. LFXT1CLK or VLOCLK when XT2 oscillator not present
enum BCSplus.XCAP_t
index URL
XDCscript usage meta-domain
values of type BCSplus.XCAP_t
    const BCSplus.XCAP_0;
    // ~1 pF
    const BCSplus.XCAP_1;
    // ~6 pF
    const BCSplus.XCAP_2;
    // ~10 pF
    const BCSplus.XCAP_3;
    // ~12.5 pF
enum BCSplus.XT2OFF_t
index URL
XDCscript usage meta-domain
values of type BCSplus.XT2OFF_t
    const BCSplus.XT2OFF_OFF;
    // Enable XT2CLK
    const BCSplus.XT2OFF;
    // Disable XT2CLK
enum BCSplus.XT2OF_t
index URL
XDCscript usage meta-domain
values of type BCSplus.XT2OF_t
    const BCSplus.XT2OF_OFF;
    // No fault condition present
    const BCSplus.XT2OF;
    // XT2 fault condition present
enum BCSplus.XT2S_t
index URL

XT2 frequency range select

XDCscript usage meta-domain
values of type BCSplus.XT2S_t
    const BCSplus.XT2S_0;
    // 0.4 - 1 MHz
    const BCSplus.XT2S_1;
    // 1 - 3 MHz
    const BCSplus.XT2S_2;
    // 3 - 16 MHz
    const BCSplus.XT2S_3;
    // Digital input signal
enum BCSplus.XTS_t
index URL
XDCscript usage meta-domain
values of type BCSplus.XTS_t
    const BCSplus.XTS_OFF;
    // Low Frequency
    const BCSplus.XTS;
    // High Frequency
struct BCSplus.AvailableClockVariations_t
index URL

Available variations of clock in a device

XDCscript usage meta-domain
var obj = new BCSplus.AvailableClockVariations_t;
    obj.clockType = String ...
    obj.hasClock = Bool ...
DETAILS
Stores true/false if any of the clock variations are available.
SEE
AvailableClockVariations_t
struct BCSplus.BCSCTL1_t
index URL

BCS Control Register 1

XDCscript usage meta-domain
var obj = new BCSplus.BCSCTL1_t;
    obj.XT2OFF = BCSplus.XT2OFF_t ...
    // XT2 off. This bit turns off the XT2 oscillator 0 XT2 is on 1 XT2 is off if it is not used for MCLK or SMCLK
    obj.XTS = BCSplus.XTS_t ...
    // LFXT1 mode select. 0 Low frequency mode 1 High frequency mode
    obj.DIVA = BCSplus.DIVA_t ...
    // Divider for ACLK 00 /1 01 /2 10 /4 11 /8
    obj.RSEL0 = BCSplus.RSEL0_t ...
    // Range select bit 0
    obj.RSEL1 = BCSplus.RSEL1_t ...
    // Range select bit 1
    obj.RSEL2 = BCSplus.RSEL2_t ...
    // Range select bit 2
    obj.RSEL3 = BCSplus.RSEL3_t ...
    // Range select bit 3
FIELDS
XT2OFF — This bit turns off the XT2 oscillator: 0 - XT2 is on, 1 - XT2 is off if it is not used for MCLK or SMCLK
XTS — 0 - Low frequency mode; 1 - High frequency mode
struct BCSplus.BCSCTL2_t
index URL

BCS Control Register 2

XDCscript usage meta-domain
var obj = new BCSplus.BCSCTL2_t;
    obj.SELM = BCSplus.SELM_t ...
    // Select MCLK. These bits select the MCLK source. 00 DCOCLK 01 DCOCLK 10 XT2CLK when XT2 oscillator present on-chip. LFXT1CLK or VLOCLK when XT2 oscillator not present on-chip. 11 LFXT1CLK or VLOCLK
    obj.DIVM = BCSplus.DIVM_t ...
    // Divider for MCLK 00 /1 01 /2 10 /4 11 /8
    obj.SELS = BCSplus.SELS_t ...
    // Select SMCLK. This bit selects the SMCLK source. 0 DCOCLK 1 XT2CLK when XT2 oscillator present. LFXT1CLK or VLOCLK when XT2 oscillator not present
    obj.DIVS = BCSplus.DIVS_t ...
    // Divider for SMCLK 00 /1 01 /2 10 /4 11 /8
    obj.DCOR = BCSplus.DCOR_t ...
    // DCO resistor select 0 Internal resistor 1 External resistor
FIELDS
SELM — These bits select the MCLK source.
SELS — These bits select the SMCLK source. When XT2 oscillator present, 0 selects DCOCLK and 1 selects XT2CLK; otherwise 0 selects LFXT1CLK and 1 selects VLOCLK.
DCOR — 0 - Internal resistor, 1 - external resistor
struct BCSplus.BCSCTL3_t
index URL

BCS Control register 3

XDCscript usage meta-domain
var obj = new BCSplus.BCSCTL3_t;
    obj.XT2S = BCSplus.XT2S_t ...
    // XT2 range select. These bits select the frequency range for XT2. 00 0.4 - 1-MHz crystal or resonator 01 1 - 3-MHz crystal or resonator 10 3 - 16-MHz crystal or resonator 11 Digital external 0.4 - 16-MHz clock source
    obj.LFXT1S = BCSplus.LFXT1S_t ...
    // Low-frequency clock select and LFXT1 range select. These bits select between LFXT1 and VLO when XTS = 0, and select the frequency range for LFXT1 when XTS = 1
    obj.XCAP = BCSplus.XCAP_t ...
    // Oscillator capacitor selection. These bits select the effective capacitance seen by the LFXT1 crystal when XTS = 0. If XTS = 1 or if LFCT1Sx = 11 XCAPx should be 00. 00 ~1 pF 01 ~6 pF 10 ~10 pF 11 ~12.5 pF
    obj.XT2OF = BCSplus.XT2OF_t ...
    // XT2 oscillator fault 0 No fault condition present 1 Fault condition present
    obj.LFXT1OF = BCSplus.LFXT1OF_t ...
    // LFXT1 oscillator fault 0 No fault condition present 1 Fault condition present
FIELDS
LFXT1S — These bits select between LFXT1 and VLO and XTS = 0, and select the frequency range for LFXT1 when XTS = 1
XCAP — These bits select the effective capacitance seen by the LFXT1 crystal when XTS = 0. If XTS = 1 or if LFCT1Sx = 11, then XCAPx should be 00.
struct BCSplus.DCOCTL_t
index URL
XDCscript usage meta-domain
var obj = new BCSplus.DCOCTL_t;
    obj.MOD0 = BCSplus.MOD0_t ...
    // Modulation Bit 0
    obj.MOD1 = BCSplus.MOD1_t ...
    // Modulation Bit 1
    obj.MOD2 = BCSplus.MOD2_t ...
    // Modulation Bit 2
    obj.MOD3 = BCSplus.MOD3_t ...
    // Modulation Bit 3
    obj.MOD4 = BCSplus.MOD4_t ...
    // Modulation Bit 4
    obj.DCO0 = BCSplus.DCO0_t ...
    // DCO Select Bit 0
    obj.DCO1 = BCSplus.DCO1_t ...
    // DCO Select Bit 1
    obj.DCO2 = BCSplus.DCO2_t ...
    // DCO Select Bit 2
struct BCSplus.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new BCSplus.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
BCSplus.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
BCSplus.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
BCSplus.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
BCSplus.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new BCSplus.Params;
// Instance config-params object
    params.ACLKHz = Float undefined;
    // ACLK frequency in Hertz
    params.BCSCTL1 = BCSplus.BCSCTL1_t {
    // Basic Clock System Control 1
        XT2OFF: BCSplus.XT2OFF,
        XTS: BCSplus.XTS_OFF,
        DIVA: BCSplus.DIVA_0,
        RSEL0: BCSplus.RSEL0,
        RSEL1: BCSplus.RSEL1,
        RSEL2: BCSplus.RSEL2,
        RSEL3: BCSplus.RSEL3_OFF
    };
    params.BCSCTL2 = BCSplus.BCSCTL2_t {
    // Basic Clock System Control 2
        SELM: BCSplus.SELM_0,
        DIVM: BCSplus.DIVM_0,
        SELS: BCSplus.SELS_OFF,
        DIVS: BCSplus.DIVS_0,
        DCOR: BCSplus.DCOR_OFF
    };
    params.BCSCTL3 = BCSplus.BCSCTL3_t {
    // Basic Clock System Control 3
        XT2S: BCSplus.XT2S_0,
        LFXT1S: BCSplus.LFXT1S_0,
        XCAP: BCSplus.XCAP_1
    };
    params.DCOCLKHz = Float 1000000;
    // DCO clock frequency in Hertz
    params.DCOCTL = BCSplus.DCOCTL_t {
    // DCO Clock Frequency Control
        MOD0: BCSplus.MOD0_OFF,
        MOD1: BCSplus.MOD1_OFF,
        MOD2: BCSplus.MOD2_OFF,
        MOD3: BCSplus.MOD3_OFF,
        MOD4: BCSplus.MOD4_OFF,
        DCO0: BCSplus.DCO0,
        DCO1: BCSplus.DCO1,
        DCO2: BCSplus.DCO2_OFF
    };
    params.LFXT1CLKHz = Float 0;
    //
    params.MCLKHz = Float undefined;
    // MCLK frequency in Hertz
    params.SMCLKHz = Float undefined;
    // SMCLK frequency in Hertz
    params.VLOCLKHz = Float 12000;
    //
    params.WATCHCRYSTALCLKHz = Float 32768;
    //
    params.XT2CLKHz = Float 0;
    //
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.enableXT2 = Bool false;
    // Set whether XT2 is used on the device. This is different than hasXT2 variable
    params.forceSetDefaultRegister = BCSplus.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "DCOCTL",
            regForceSet: false
        },
        {
            register: "BCSCTL1",
            regForceSet: false
        },
        {
            register: "BCSCTL2",
            regForceSet: false
        },
        {
            register: "BCSCTL3",
            regForceSet: false
        }
    ];
    params.hasAllCal = Bool false;
    // Specify if device has all calibration constants
    params.hasHFXT1 = Bool false;
    // Specify if HFXT1 is available on the device
    params.hasRosc = Bool false;
    // Specify if Rosc is available on the device
    params.hasVLO = Bool false;
    // Specify if VLO is available on the device
    params.hasXT2 = Bool false;
    // Specify if XT2 is available on the device
    params.maxCpuFrequency = Float 0;
    // Maximum CPU frequency in Hertz
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
    params.preCalibratedValues = UInt 0;
    // Basic Clock System + pre-calibrated system frequency
    params.preCalibratedValuesItems = String[length] undefined;
    // hasAllCal = false UInt - Description 0 - 1 MHz 1 - Custom
config BCSplus.ACLKHz // instance
index URL

ACLK frequency in Hertz

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
const params.ACLKHz = Float computed value;
config BCSplus.BCSCTL1 // instance
index URL

Basic Clock System Control 1

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.BCSCTL1 = BCSplus.BCSCTL1_t {
    XT2OFF: BCSplus.XT2OFF,
    XTS: BCSplus.XTS_OFF,
    DIVA: BCSplus.DIVA_0,
    RSEL0: BCSplus.RSEL0,
    RSEL1: BCSplus.RSEL1,
    RSEL2: BCSplus.RSEL2,
    RSEL3: BCSplus.RSEL3_OFF
};
config BCSplus.BCSCTL2 // instance
index URL

Basic Clock System Control 2

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.BCSCTL2 = BCSplus.BCSCTL2_t {
    SELM: BCSplus.SELM_0,
    DIVM: BCSplus.DIVM_0,
    SELS: BCSplus.SELS_OFF,
    DIVS: BCSplus.DIVS_0,
    DCOR: BCSplus.DCOR_OFF
};
config BCSplus.BCSCTL3 // instance
index URL

Basic Clock System Control 3

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.BCSCTL3 = BCSplus.BCSCTL3_t {
    XT2S: BCSplus.XT2S_0,
    LFXT1S: BCSplus.LFXT1S_0,
    XCAP: BCSplus.XCAP_1
};
config BCSplus.DCOCLKHz // instance
index URL

DCO clock frequency in Hertz

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
const params.DCOCLKHz = Float 1000000;
config BCSplus.DCOCTL // instance
index URL

DCO Clock Frequency Control

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.DCOCTL = BCSplus.DCOCTL_t {
    MOD0: BCSplus.MOD0_OFF,
    MOD1: BCSplus.MOD1_OFF,
    MOD2: BCSplus.MOD2_OFF,
    MOD3: BCSplus.MOD3_OFF,
    MOD4: BCSplus.MOD4_OFF,
    DCO0: BCSplus.DCO0,
    DCO1: BCSplus.DCO1,
    DCO2: BCSplus.DCO2_OFF
};
config BCSplus.LFXT1CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.LFXT1CLKHz = Float 0;
config BCSplus.MCLKHz // instance
index URL

MCLK frequency in Hertz

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
const params.MCLKHz = Float computed value;
config BCSplus.SMCLKHz // instance
index URL

SMCLK frequency in Hertz

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
const params.SMCLKHz = Float computed value;
config BCSplus.VLOCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.VLOCLKHz = Float 12000;
config BCSplus.WATCHCRYSTALCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.WATCHCRYSTALCLKHz = Float 32768;
config BCSplus.XT2CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.XT2CLKHz = Float 0;
config BCSplus.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config BCSplus.enableXT2 // instance
index URL

Set whether XT2 is used on the device. This is different than hasXT2 variable

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.enableXT2 = Bool false;
config BCSplus.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
const params.forceSetDefaultRegister = BCSplus.ForceSetDefaultRegister_t[] [
    {
        register: "DCOCTL",
        regForceSet: false
    },
    {
        register: "BCSCTL1",
        regForceSet: false
    },
    {
        register: "BCSCTL2",
        regForceSet: false
    },
    {
        register: "BCSCTL3",
        regForceSet: false
    }
];
config BCSplus.hasAllCal // instance
index URL

Specify if device has all calibration constants

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.hasAllCal = Bool false;
DETAILS
G1 devices do not.
config BCSplus.hasHFXT1 // instance
index URL

Specify if HFXT1 is available on the device

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.hasHFXT1 = Bool false;
DETAILS
Not all devices have high frequency clock. This specifies if it is available for a particular device.
config BCSplus.hasRosc // instance
index URL

Specify if Rosc is available on the device

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.hasRosc = Bool false;
DETAILS
Not all devices have Rosc circuitry. This specifies if it is available for a particular device.
config BCSplus.hasVLO // instance
index URL

Specify if VLO is available on the device

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.hasVLO = Bool false;
DETAILS
Not all devices have very low frequency clock VLO. This specifies if it is available for a particular device.
config BCSplus.hasXT2 // instance
index URL

Specify if XT2 is available on the device

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.hasXT2 = Bool false;
DETAILS
Not all devices have XT2 clock available. This specifies if it is available for a particular device.
config BCSplus.maxCpuFrequency // instance
index URL

Maximum CPU frequency in Hertz

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.maxCpuFrequency = Float 0;
config BCSplus.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config BCSplus.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.owner = String undefined;
config BCSplus.preCalibratedValues // instance
index URL

Basic Clock System + pre-calibrated system frequency

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.preCalibratedValues = UInt 0;
config BCSplus.preCalibratedValuesItems // instance
index URL

hasAllCal = false UInt - Description 0 - 1 MHz 1 - Custom

XDCscript usage meta-domain
var params = new BCSplus.Params;
...
params.preCalibratedValuesItems = String[length] undefined;
DETAILS
hasAllCal = true UInt - Description 0 - 1 MHz 1 - 8 MHz 2 - 12 MHz 3 - 16 MHz 4 - Custom
BCSplus.computeDCOCLKHz() // instance
index URL

Initialize to the nearest available DCO clock frequency

XDCscript usage meta-domain
inst.computeDCOCLKHz(Float DCOCLKHz) returns Void
generated on Thu, 08 Nov 2012 02:16:36 GMT


module ti.catalog.msp430.peripherals.clock.BCSplus

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== BSCplus ========
    15     *  MSP430 Basic Clock System
    16     */
    17    metaonly module BCSplus inherits IClock
    18    {
    19        /*! MOD0 Bit */
    20        enum MOD0_t {
    21            MOD0_OFF = 0x00,    /*! Disable MOD0 bit */
    22            MOD0 = 0x01         /*! Enable MOD0 bit */
    23        };
    24
    25        /*! MOD1 Bit */
    26        enum MOD1_t {
    27            MOD1_OFF = 0x00,    /*! Disable MOD1 bit */
    28            MOD1 = 0x02         /*! Enable MOD1 bit */
    29        };
    30
    31        /*! MOD2 Bit */
    32        enum MOD2_t {
    33            MOD2_OFF = 0x00,    /*! Disable MOD2 bit */
    34            MOD2 = 0x04         /*! Enable MOD2 bit */
    35        };
    36
    37        /*! MOD3 Bit */
    38        enum MOD3_t {
    39            MOD3_OFF = 0x00,    /*! Disable MOD3 bit */
    40            MOD3 = 0x08         /*! Enable MOD3 bit */
    41        };
    42
    43        /*! MOD4 Bit */
    44        enum MOD4_t {
    45            MOD4_OFF = 0x00,    /*! Disable MOD4 bit */
    46            MOD4 = 0x10         /*! Enable MOD4 bit */
    47        };
    48
    49        /*! DCO0 Bit */
    50        enum DCO0_t {
    51            DCO0_OFF = 0x00,    /*! Disable DCO0 bit */
    52            DCO0 = 0x20         /*! Enable DCO0 bit */
    53        };
    54
    55        /*! DCO1 Bit */
    56        enum DCO1_t {
    57            DCO1_OFF = 0x00,    /*! Disable DCO1 bit */
    58            DCO1 = 0x40         /*! Enable DCO1 bit */
    59        };
    60
    61        /*! DCO2 Bit */
    62        enum DCO2_t {
    63            DCO2_OFF = 0x00,    /*! Disable DCO2 bit */
    64            DCO2 = 0x80         /*! Enable DCO2 bit */
    65        };
    66
    67        enum XT2OFF_t {
    68            XT2OFF_OFF = 0x00,  /*! Enable XT2CLK */
    69            XT2OFF = 0x80       /*! Disable XT2CLK */
    70        };
    71
    72        enum XTS_t {
    73            XTS_OFF = 0x00,     /*! Low Frequency */
    74            XTS = 0x40          /*! High Frequency */
    75        };
    76
    77        enum RSEL0_t {
    78            RSEL0_OFF = 0x00,   /*! Disable RSEL0 bit */
    79            RSEL0 = 0x01        /*! Enable RSEL0 bit */
    80        };
    81
    82        enum RSEL1_t {
    83            RSEL1_OFF = 0x00,   /*! Disable RSEL1 bit */
    84            RSEL1 = 0x02        /*! Enable RSEL1 bit */
    85        };
    86
    87        enum RSEL2_t {
    88            RSEL2_OFF = 0x00,   /*! Disable RSEL2 bit */
    89            RSEL2 = 0x04        /*! Enable RSEL2 bit */
    90        };
    91
    92        enum RSEL3_t {
    93            RSEL3_OFF = 0x00,   /*! Disable RSEL3 bit */
    94            RSEL3 = 0x08        /*! Enable RSEL3 bit */
    95        };
    96
    97        /*! MCLK Source Select */
    98        enum SELM_t {
    99            SELM_0 = 0x00,      /*! DCOCLK */
   100    /*        SELM_1 = 0x40,       DCOCLK */
   101            SELM_2 = 0x80,      /*! XT2CLK/LFXTCLK */
   102            SELM_3 = 0xC0       /*! LFXTCLK */
   103        };
   104
   105        /*! ACLK Divider values */
   106        enum DIVA_t {
   107            DIVA_0 = 0x00,      /*! Divide by 1 */
   108            DIVA_1 = 0x10,      /*! Divide by 2 */
   109            DIVA_2 = 0x20,      /*! Divide by 4 */
   110            DIVA_3 = 0x30       /*! Divide by 8 */
   111        };
   112
   113        /*! MCLK Divider values */
   114        enum DIVM_t {
   115            DIVM_0 = 0x00,      /*! Divide by 1 */
   116            DIVM_1 = 0x10,      /*! Divide by 2 */
   117            DIVM_2 = 0x20,      /*! Divide by 4 */
   118            DIVM_3 = 0x30       /*! Divide by 8 */
   119        };
   120
   121        /*! SMCLK Divider values */
   122        enum DIVS_t {
   123            DIVS_0 = 0x00,      /*! Divide by 1 */
   124            DIVS_1 = 0x02,      /*! Divide by 2 */
   125            DIVS_2 = 0x04,      /*! Divide by 4 */
   126            DIVS_3 = 0x06       /*! Divide by 8 */
   127        };
   128
   129        enum SELS_t {
   130            SELS_OFF = 0x00,    /*! DCOCLK */
   131            SELS = 0x08         /*! XT2CLK when XT2 oscillator present. LFXT1CLK or VLOCLK when XT2 oscillator not present */
   132        };
   133
   134        enum DCOR_t {
   135            DCOR_OFF = 0x00,    /*! DCO uses internal resistor */
   136            DCOR = 0x01         /*! DCO uses external resistor */
   137        };
   138
   139        /*! XT2 frequency range select */
   140        enum XT2S_t {
   141            XT2S_0 = 0x00,      /*! 0.4 - 1 MHz */
   142            XT2S_1 = 0x40,      /*! 1 - 3 MHz */
   143            XT2S_2 = 0x80,      /*! 3 - 16 MHz */
   144            XT2S_3 = 0xC0       /*! Digital input signal */
   145        };
   146
   147        enum LFXT1S_t {
   148            LFXT1S_0 = 0x00,    /*! If XTS = 0, XT1 = 32768kHz Crystal ; If XTS = 1, XT1 = 0.4 - 1-MHz crystal or resonator */
   149            LFXT1S_1 = 0x10,    /*! If XTS = 0, XT1 = Reserved ; If XTS = 1, XT1 = 1 - 3-MHz crystal or resonator */
   150            LFXT1S_2 = 0x20,    /*! If XTS = 0, XT1 = VLOCLK ; If XTS = 1, XT1 = 3 - 16-MHz crystal or resonator */
   151            LFXT1S_3 = 0x30     /*! If XTS = 0, XT1 = Digital External ; If XTS = 1, XT1 = 0.4 - 16-MHz Digital External */
   152        };
   153
   154        enum XCAP_t {
   155            XCAP_0 = 0x00,      /*! ~1 pF */
   156            XCAP_1 = 0x04,      /*! ~6 pF */
   157            XCAP_2 = 0x08,      /*! ~10 pF */
   158            XCAP_3 = 0x0C       /*! ~12.5 pF */
   159        };
   160
   161        enum XT2OF_t {
   162            XT2OF_OFF = 0x00,   /*! No fault condition present */
   163            XT2OF = 0x02        /*! XT2 fault condition present */
   164        };
   165
   166        enum LFXT1OF_t {
   167            LFXT1OF_OFF = 0x00, /*! No fault condition present */
   168            LFXT1OF = 0x01      /*! LFXT1 fault condition present */
   169        };
   170
   171        struct DCOCTL_t {
   172            MOD0_t    MOD0;     /*! Modulation Bit 0 */
   173            MOD1_t    MOD1;     /*! Modulation Bit 1 */
   174            MOD2_t    MOD2;     /*! Modulation Bit 2 */
   175            MOD3_t    MOD3;     /*! Modulation Bit 3 */
   176            MOD4_t    MOD4;     /*! Modulation Bit 4 */
   177            DCO0_t    DCO0;     /*! DCO Select Bit 0 */
   178            DCO1_t    DCO1;     /*! DCO Select Bit 1 */
   179            DCO2_t    DCO2;     /*! DCO Select Bit 2 */
   180        }
   181
   182        /*!
   183         *  ======== BCSCTL1_t ========
   184         *  BCS Control Register 1
   185         *
   186         *  @field(XT2OFF)  This bit turns off the XT2 oscillator: 0 - XT2 is on,
   187         *                  1 - XT2 is off if it is not used for MCLK or SMCLK
   188         *
   189         *  @field(XTS)     0 - Low frequency mode; 1 - High frequency mode
   190         */
   191        struct BCSCTL1_t {
   192            XT2OFF_t  XT2OFF;       /*! XT2 off. This bit turns off the XT2 oscillator
   193                                      *  0  XT2 is on
   194                                      *  1  XT2 is off if it is not used for MCLK or SMCLK. */
   195            XTS_t     XTS;          /*! LFXT1 mode select.
   196                                       *  0  Low frequency mode
   197                                       *  1  High frequency mode */
   198            DIVA_t    DIVA;         /*! Divider for ACLK
   199                                      *  00  /1
   200                                      *  01  /2
   201                                      *  10  /4
   202                                      *  11  /8 */
   203            RSEL0_t   RSEL0;        /*! Range select bit 0 */
   204            RSEL1_t   RSEL1;        /*! Range select bit 1 */
   205            RSEL2_t   RSEL2;        /*! Range select bit 2 */
   206            RSEL3_t   RSEL3;        /*! Range select bit 3 */
   207        }
   208
   209        /*!
   210         *  ======== BCSCTL2_t ========
   211         *  BCS Control Register 2
   212         *
   213         *  @field(SELM) These bits select the MCLK source.
   214         *  @field(SELS) These bits select the SMCLK source. When
   215         *               XT2 oscillator present, 0 selects DCOCLK and
   216         *               1 selects XT2CLK; otherwise 0 selects LFXT1CLK and
   217         *               1 selects VLOCLK.
   218         *  @field(DCOR) 0 - Internal resistor, 1 - external resistor
   219         */
   220        struct BCSCTL2_t {
   221            SELM_t    SELM;         /*! Select MCLK. These bits select the MCLK source.
   222                                      *  00  DCOCLK
   223                                      *  01  DCOCLK
   224                                      *  10  XT2CLK when XT2 oscillator present on-chip. LFXT1CLK or VLOCLK
   225                                      *      when XT2 oscillator not present on-chip.
   226                                      *  11  LFXT1CLK or VLOCLK */
   227            DIVM_t    DIVM;         /*! Divider for MCLK
   228                                      *  00  /1
   229                                      *  01  /2
   230                                      *  10  /4
   231                                      *  11  /8 */
   232            SELS_t    SELS;         /*! Select SMCLK. This bit selects the SMCLK source.
   233                                      *  0  DCOCLK
   234                                      *  1  XT2CLK when XT2 oscillator present. LFXT1CLK or VLOCLK when
   235                                      *     XT2 oscillator not present */
   236            DIVS_t    DIVS;         /*! Divider for SMCLK
   237                                      *  00  /1
   238                                      *  01  /2
   239                                      *  10  /4
   240                                      *  11  /8 */
   241            DCOR_t    DCOR;         /*! DCO resistor select
   242                                      *  0  Internal resistor
   243                                      *  1  External resistor */
   244        }
   245
   246        /*!
   247         *  ======== BCSCTL3_t ========
   248         *  BCS Control register 3
   249         *
   250         *  @field(LFXT1S)  These bits select between LFXT1 and VLO and XTS = 0,
   251         *                  and select the frequency range for LFXT1 when XTS = 1
   252         *  @field(XCAP)    These bits select the effective capacitance seen by
   253         *                  the LFXT1 crystal when XTS = 0. If XTS = 1 or if
   254         *                  LFCT1Sx = 11, then XCAPx should be 00.
   255         */
   256        struct BCSCTL3_t {
   257            XT2S_t    XT2S;         /*! XT2 range select. These bits select the frequency range for XT2.
   258                                      *  00  0.4 - 1-MHz crystal or resonator
   259                                      *  01  1 - 3-MHz crystal or resonator
   260                                      *  10  3 - 16-MHz crystal or resonator
   261                                      *  11  Digital external 0.4 - 16-MHz clock source */
   262            LFXT1S_t  LFXT1S;       /*! Low-frequency clock select and LFXT1 range select. These bits select
   263                                      * between LFXT1 and VLO when XTS = 0, and select the frequency range
   264                                      * for LFXT1 when XTS = 1
   265                                      *
   266                                      *  When XTS = 0:
   267                                      *  00  32768 Hz Crystal on LFXT1
   268                                      *  01  Reserved
   269                                      *  10  VLOCLK (Reserved in MSP430x21x1 devices)
   270                                      *  11  Digital external clock source
   271                                      *
   272                                      *  When XTS = 1 (Not applicable for MSP430x20xx devices)
   273                                      *  00  0.4 - 1-MHz crystal or resonator
   274                                      *  01  1 - 3-MHz crystal or resonator
   275                                      *  10  3 - 16-MHz crystal or resonator
   276                                      *  11  Digital external 0.4 - 16-MHz clock source */
   277            XCAP_t    XCAP;         /*! Oscillator capacitor selection. These bits select the effective capacitance
   278                                      * seen by the LFXT1 crystal when XTS = 0. If XTS = 1 or if LFCT1Sx = 11
   279                                      * XCAPx should be 00.
   280                                      *  00  ~1 pF
   281                                      *  01  ~6 pF
   282                                      *  10  ~10 pF
   283                                      *  11  ~12.5 pF */
   284            XT2OF_t   XT2OF;        /*! XT2 oscillator fault
   285                                      *  0  No fault condition present
   286                                      *  1  Fault condition present */
   287            LFXT1OF_t LFXT1OF;      /*! LFXT1 oscillator fault
   288                                      *  0  No fault condition present
   289                                      *  1  Fault condition present */
   290        }
   291
   292    instance:
   293
   294        /*! DCO Clock Frequency Control */
   295        config DCOCTL_t DCOCTL = {
   296            MOD0        : MOD0_OFF,
   297            MOD1        : MOD1_OFF,
   298            MOD2        : MOD2_OFF,
   299            MOD3        : MOD3_OFF,
   300            MOD4        : MOD4_OFF,
   301            DCO0        : DCO0,
   302            DCO1        : DCO1,
   303            DCO2        : DCO2_OFF,
   304        };
   305
   306        /*! Basic Clock System Control 1 */
   307        config BCSCTL1_t  BCSCTL1 = {
   308            XT2OFF      : XT2OFF,
   309            XTS         : XTS_OFF,
   310            DIVA        : DIVA_0,
   311            RSEL0       : RSEL0,
   312            RSEL1       : RSEL1,
   313            RSEL2       : RSEL2,
   314            RSEL3       : RSEL3_OFF
   315        };
   316
   317        /*! Basic Clock System Control 2 */
   318        config BCSCTL2_t  BCSCTL2 = {
   319            SELM        : SELM_0,
   320            DIVM        : DIVM_0,
   321            SELS        : SELS_OFF,
   322            DIVS        : DIVS_0,
   323            DCOR        : DCOR_OFF
   324        };
   325
   326        /*! Basic Clock System Control 3 */
   327        config BCSCTL3_t  BCSCTL3 = {
   328            XT2S        : XT2S_0,
   329            LFXT1S      : LFXT1S_0,
   330            XCAP        : XCAP_1
   331        };
   332
   333        /*! Determine if each Register needs to be forced set or not */
   334        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   335        [
   336            { register : "DCOCTL"  , regForceSet : false },
   337            { register : "BCSCTL1" , regForceSet : false },
   338            { register : "BCSCTL2" , regForceSet : false },
   339            { register : "BCSCTL3" , regForceSet : false }
   340        ];
   341
   342        /*! Basic Clock System + pre-calibrated system frequency */
   343        config UInt preCalibratedValues = 0;
   344
   345        /*!
   346         *  ======== preCalibratedValues truth table ========
   347         *
   348         *  hasAllCal = false
   349         *    UInt - Description
   350         *       0 - 1 MHz
   351         *       1 - Custom
   352         *
   353         *  hasAllCal = true
   354         *    UInt - Description
   355         *       0 - 1 MHz
   356         *       1 - 8 MHz
   357         *       2 - 12 MHz
   358         *       3 - 16 MHz
   359         *       4 - Custom
   360         */
   361        config String preCalibratedValuesItems[length];
   362
   363        config float VLOCLKHz = 12000;
   364        config float WATCHCRYSTALCLKHz = 32768;
   365        config float LFXT1CLKHz = 0;
   366        config float XT2CLKHz = 0;
   367
   368        /*!
   369         *  ======== enableXT2 ========
   370         *  Set whether XT2 is used on the device. This is different than hasXT2
   371         *  variable.
   372         */
   373        config Bool enableXT2 = false;
   374    }


module ti.catalog.msp430.peripherals.clock.CS

metaonly module ti.catalog.msp430.peripherals.clock.CS
index URL

MSP430 Clock System

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/clock/CS.xdc
var CS = xdc.useModule('ti.catalog.msp430.peripherals.clock.CS');
module-wide constants & types
    var obj = new CS.AvailableClockVariations_t// Available variations of clock in a device;
        obj.clockType = String ...
        obj.hasClock = Bool ...
    var obj = new CS.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
module-wide functions
     CS.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     CS.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new CS.Params// Instance config-params object;
        params.ACLKHz// ACLK frequency in Hertz = Float undefined;
        params.DCOCLKHz// DCO clock frequency in Hertz = Float 1000000;
        params.MCLKHz// MCLK frequency in Hertz = Float undefined;
        params.SMCLKHz// SMCLK frequency in Hertz = Float undefined;
        params.VLOCLKHz// = Float 8300;
        params.WATCHCRYSTALCLKHz// = Float 32768;
        params.XT1CLKHz// = Float 0;
        params.XT2CLKHz// = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.hasAllCal// Specify if device has all calibration constants = Bool false;
        params.hasHFXT1// Specify if HFXT1 is available on the device = Bool false;
        params.hasRosc// Specify if Rosc is available on the device = Bool false;
        params.hasVLO// Specify if VLO is available on the device = Bool false;
        params.hasXT2// Specify if XT2 is available on the device = Bool false;
        params.maxCpuFrequency// Maximum CPU frequency in Hertz = Float 0;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance functions
     inst.computeDCOCLKHz// Initialize to the nearest available DCO clock frequency(Float DCOCLKHz) returns Void
struct CS.AvailableClockVariations_t
index URL

Available variations of clock in a device

XDCscript usage meta-domain
var obj = new CS.AvailableClockVariations_t;
    obj.clockType = String ...
    obj.hasClock = Bool ...
DETAILS
Stores true/false if any of the clock variations are available.
SEE
AvailableClockVariations_t
struct CS.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new CS.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
CS.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
CS.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
CS.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
CS.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new CS.Params;
// Instance config-params object
    params.ACLKHz = Float undefined;
    // ACLK frequency in Hertz
    params.DCOCLKHz = Float 1000000;
    // DCO clock frequency in Hertz
    params.MCLKHz = Float undefined;
    // MCLK frequency in Hertz
    params.SMCLKHz = Float undefined;
    // SMCLK frequency in Hertz
    params.VLOCLKHz = Float 8300;
    //
    params.WATCHCRYSTALCLKHz = Float 32768;
    //
    params.XT1CLKHz = Float 0;
    //
    params.XT2CLKHz = Float 0;
    //
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.hasAllCal = Bool false;
    // Specify if device has all calibration constants
    params.hasHFXT1 = Bool false;
    // Specify if HFXT1 is available on the device
    params.hasRosc = Bool false;
    // Specify if Rosc is available on the device
    params.hasVLO = Bool false;
    // Specify if VLO is available on the device
    params.hasXT2 = Bool false;
    // Specify if XT2 is available on the device
    params.maxCpuFrequency = Float 0;
    // Maximum CPU frequency in Hertz
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config CS.ACLKHz // instance
index URL

ACLK frequency in Hertz

XDCscript usage meta-domain
var params = new CS.Params;
...
const params.ACLKHz = Float computed value;
config CS.DCOCLKHz // instance
index URL

DCO clock frequency in Hertz

XDCscript usage meta-domain
var params = new CS.Params;
...
const params.DCOCLKHz = Float 1000000;
config CS.MCLKHz // instance
index URL

MCLK frequency in Hertz

XDCscript usage meta-domain
var params = new CS.Params;
...
const params.MCLKHz = Float computed value;
config CS.SMCLKHz // instance
index URL

SMCLK frequency in Hertz

XDCscript usage meta-domain
var params = new CS.Params;
...
const params.SMCLKHz = Float computed value;
config CS.VLOCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new CS.Params;
...
params.VLOCLKHz = Float 8300;
config CS.WATCHCRYSTALCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new CS.Params;
...
params.WATCHCRYSTALCLKHz = Float 32768;
config CS.XT1CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new CS.Params;
...
params.XT1CLKHz = Float 0;
config CS.XT2CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new CS.Params;
...
params.XT2CLKHz = Float 0;
config CS.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new CS.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config CS.hasAllCal // instance
index URL

Specify if device has all calibration constants

XDCscript usage meta-domain
var params = new CS.Params;
...
params.hasAllCal = Bool false;
DETAILS
G1 devices do not.
config CS.hasHFXT1 // instance
index URL

Specify if HFXT1 is available on the device

XDCscript usage meta-domain
var params = new CS.Params;
...
params.hasHFXT1 = Bool false;
DETAILS
Not all devices have high frequency clock. This specifies if it is available for a particular device.
config CS.hasRosc // instance
index URL

Specify if Rosc is available on the device

XDCscript usage meta-domain
var params = new CS.Params;
...
params.hasRosc = Bool false;
DETAILS
Not all devices have Rosc circuitry. This specifies if it is available for a particular device.
config CS.hasVLO // instance
index URL

Specify if VLO is available on the device

XDCscript usage meta-domain
var params = new CS.Params;
...
params.hasVLO = Bool false;
DETAILS
Not all devices have very low frequency clock VLO. This specifies if it is available for a particular device.
config CS.hasXT2 // instance
index URL

Specify if XT2 is available on the device

XDCscript usage meta-domain
var params = new CS.Params;
...
params.hasXT2 = Bool false;
DETAILS
Not all devices have XT2 clock available. This specifies if it is available for a particular device.
config CS.maxCpuFrequency // instance
index URL

Maximum CPU frequency in Hertz

XDCscript usage meta-domain
var params = new CS.Params;
...
params.maxCpuFrequency = Float 0;
config CS.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new CS.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config CS.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new CS.Params;
...
params.owner = String undefined;
CS.computeDCOCLKHz() // instance
index URL

Initialize to the nearest available DCO clock frequency

XDCscript usage meta-domain
inst.computeDCOCLKHz(Float DCOCLKHz) returns Void
generated on Thu, 08 Nov 2012 02:16:36 GMT


module ti.catalog.msp430.peripherals.clock.CS_A

metaonly module ti.catalog.msp430.peripherals.clock.CS_A
index URL

MSP430 Clock System

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/clock/CS_A.xdc
var CS_A = xdc.useModule('ti.catalog.msp430.peripherals.clock.CS_A');
module-wide constants & types
    var obj = new CS_A.AvailableClockVariations_t// Available variations of clock in a device;
        obj.clockType = String ...
        obj.hasClock = Bool ...
    var obj = new CS_A.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
module-wide functions
     CS_A.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     CS_A.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new CS_A.Params// Instance config-params object;
        params.ACLKHz// ACLK frequency in Hertz = Float undefined;
        params.DCOCLKHz// DCO clock frequency in Hertz = Float 1000000;
        params.LFMODOSCHz// = Float 39000;
        params.MCLKHz// MCLK frequency in Hertz = Float undefined;
        params.MODOSCHz// = Float 5000000;
        params.SMCLKHz// SMCLK frequency in Hertz = Float undefined;
        params.VLOCLKHz// = Float 9400;
        params.WATCHCRYSTALCLKHz// = Float 32768;
        params.XT1CLKHz// = Float 0;
        params.XT2CLKHz// = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.hasAllCal// Specify if device has all calibration constants = Bool false;
        params.hasHFXT1// Specify if HFXT1 is available on the device = Bool false;
        params.hasLFXT1// Specify if LFXT1 is available on the device = Bool false;
        params.hasRosc// Specify if Rosc is available on the device = Bool false;
        params.hasVLO// Specify if VLO is available on the device = Bool false;
        params.hasXT2// Specify if XT2 is available on the device = Bool false;
        params.maxCpuFrequency// Maximum CPU frequency in Hertz = Float 0;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance functions
     inst.computeDCOCLKHz// Initialize to the nearest available DCO clock frequency(Float DCOCLKHz) returns Void
struct CS_A.AvailableClockVariations_t
index URL

Available variations of clock in a device

XDCscript usage meta-domain
var obj = new CS_A.AvailableClockVariations_t;
    obj.clockType = String ...
    obj.hasClock = Bool ...
DETAILS
Stores true/false if any of the clock variations are available.
SEE
AvailableClockVariations_t
struct CS_A.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new CS_A.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
CS_A.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
CS_A.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
CS_A.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
CS_A.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new CS_A.Params;
// Instance config-params object
    params.ACLKHz = Float undefined;
    // ACLK frequency in Hertz
    params.DCOCLKHz = Float 1000000;
    // DCO clock frequency in Hertz
    params.LFMODOSCHz = Float 39000;
    //
    params.MCLKHz = Float undefined;
    // MCLK frequency in Hertz
    params.MODOSCHz = Float 5000000;
    //
    params.SMCLKHz = Float undefined;
    // SMCLK frequency in Hertz
    params.VLOCLKHz = Float 9400;
    //
    params.WATCHCRYSTALCLKHz = Float 32768;
    //
    params.XT1CLKHz = Float 0;
    //
    params.XT2CLKHz = Float 0;
    //
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.hasAllCal = Bool false;
    // Specify if device has all calibration constants
    params.hasHFXT1 = Bool false;
    // Specify if HFXT1 is available on the device
    params.hasLFXT1 = Bool false;
    // Specify if LFXT1 is available on the device
    params.hasRosc = Bool false;
    // Specify if Rosc is available on the device
    params.hasVLO = Bool false;
    // Specify if VLO is available on the device
    params.hasXT2 = Bool false;
    // Specify if XT2 is available on the device
    params.maxCpuFrequency = Float 0;
    // Maximum CPU frequency in Hertz
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config CS_A.ACLKHz // instance
index URL

ACLK frequency in Hertz

XDCscript usage meta-domain
var params = new CS_A.Params;
...
const params.ACLKHz = Float computed value;
config CS_A.DCOCLKHz // instance
index URL

DCO clock frequency in Hertz

XDCscript usage meta-domain
var params = new CS_A.Params;
...
const params.DCOCLKHz = Float 1000000;
config CS_A.LFMODOSCHz // instance
index URL
XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.LFMODOSCHz = Float 39000;
config CS_A.MCLKHz // instance
index URL

MCLK frequency in Hertz

XDCscript usage meta-domain
var params = new CS_A.Params;
...
const params.MCLKHz = Float computed value;
config CS_A.MODOSCHz // instance
index URL
XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.MODOSCHz = Float 5000000;
config CS_A.SMCLKHz // instance
index URL

SMCLK frequency in Hertz

XDCscript usage meta-domain
var params = new CS_A.Params;
...
const params.SMCLKHz = Float computed value;
config CS_A.VLOCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.VLOCLKHz = Float 9400;
config CS_A.WATCHCRYSTALCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.WATCHCRYSTALCLKHz = Float 32768;
config CS_A.XT1CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.XT1CLKHz = Float 0;
config CS_A.XT2CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.XT2CLKHz = Float 0;
config CS_A.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config CS_A.hasAllCal // instance
index URL

Specify if device has all calibration constants

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.hasAllCal = Bool false;
DETAILS
G1 devices do not.
config CS_A.hasHFXT1 // instance
index URL

Specify if HFXT1 is available on the device

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.hasHFXT1 = Bool false;
DETAILS
Not all devices have high frequency clock. This specifies if it is available for a particular device.
config CS_A.hasLFXT1 // instance
index URL

Specify if LFXT1 is available on the device

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.hasLFXT1 = Bool false;
DETAILS
Not all devices have low frequency clock. This specifies if it is available for a particular device.
config CS_A.hasRosc // instance
index URL

Specify if Rosc is available on the device

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.hasRosc = Bool false;
DETAILS
Not all devices have Rosc circuitry. This specifies if it is available for a particular device.
config CS_A.hasVLO // instance
index URL

Specify if VLO is available on the device

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.hasVLO = Bool false;
DETAILS
Not all devices have very low frequency clock VLO. This specifies if it is available for a particular device.
config CS_A.hasXT2 // instance
index URL

Specify if XT2 is available on the device

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.hasXT2 = Bool false;
DETAILS
Not all devices have XT2 clock available. This specifies if it is available for a particular device.
config CS_A.maxCpuFrequency // instance
index URL

Maximum CPU frequency in Hertz

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.maxCpuFrequency = Float 0;
config CS_A.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config CS_A.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new CS_A.Params;
...
params.owner = String undefined;
CS_A.computeDCOCLKHz() // instance
index URL

Initialize to the nearest available DCO clock frequency

XDCscript usage meta-domain
inst.computeDCOCLKHz(Float DCOCLKHz) returns Void
generated on Thu, 08 Nov 2012 02:16:36 GMT


module ti.catalog.msp430.peripherals.clock.CS_A

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== CS_A ========
    15     *  MSP430 Clock System
    16     */
    17    metaonly module CS_A inherits IClock
    18    {
    19
    20    instance:
    21        /*!
    22         *  ======== hasLFXT1 ========
    23         *  Specify if LFXT1 is available on the device.
    24         *
    25         *  Not all devices have low frequency clock. This specifies if
    26         *  it is available for a particular device.
    27         */
    28        config Bool hasLFXT1 = false;
    29
    30        config Float VLOCLKHz = 9400;
    31        config Float LFMODOSCHz = 39000;
    32        config Float MODOSCHz = 5000000;
    33        config Float WATCHCRYSTALCLKHz = 32768;
    34        config Float XT1CLKHz = 0;
    35        config Float XT2CLKHz = 0;
    36    }


interface ti.catalog.msp430.peripherals.clock.IClock

metaonly interface ti.catalog.msp430.peripherals.clock.IClock
index URL

MSP430 Master Clock

XDCspec summary sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
metaonly interface IClock { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
package ti.catalog.msp430.peripherals.clock;
metaonly interface IClock inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct AvailableClockVariations_t// Available variations of clock in a device {
        String clockType;
        Bool hasClock;
    };
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    readonly config Float ACLKHz// ACLK frequency in Hertz;
    readonly config Float DCOCLKHz// DCO clock frequency in Hertz = 1000000;
    readonly config Float MCLKHz// MCLK frequency in Hertz;
    readonly config Float SMCLKHz// SMCLK frequency in Hertz;
    config UInt baseAddr// Address of the peripheral's control register;
    config Bool hasAllCal// Specify if device has all calibration constants = false;
    config Bool hasHFXT1// Specify if HFXT1 is available on the device = false;
    config Bool hasRosc// Specify if Rosc is available on the device = false;
    config Bool hasVLO// Specify if VLO is available on the device = false;
    config Bool hasXT2// Specify if XT2 is available on the device = false;
    config Float maxCpuFrequency// Maximum CPU frequency in Hertz = 0;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Void computeDCOCLKHz// Initialize to the nearest available DCO clock frequency(Float DCOCLKHz);
}
typedef IClock.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IClock.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
typedef String StringArray[];
struct IClock.AvailableClockVariations_t
index URL

Available variations of clock in a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
metaonly struct AvailableClockVariations_t {
    String clockType;
    Bool hasClock;
};
DETAILS
Stores true/false if any of the clock variations are available.
SEE
AvailableClockVariations_t
struct IClock.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
IClock.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IClock.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IClock.ACLKHz // instance
index URL

ACLK frequency in Hertz

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
readonly config Float ACLKHz;
config IClock.DCOCLKHz // instance
index URL

DCO clock frequency in Hertz

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
readonly config Float DCOCLKHz = 1000000;
config IClock.MCLKHz // instance
index URL

MCLK frequency in Hertz

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
readonly config Float MCLKHz;
config IClock.SMCLKHz // instance
index URL

SMCLK frequency in Hertz

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
readonly config Float SMCLKHz;
config IClock.baseAddr // instance
index URL

Address of the peripheral's control register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
config UInt baseAddr;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config IClock.hasAllCal // instance
index URL

Specify if device has all calibration constants

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
config Bool hasAllCal = false;
DETAILS
G1 devices do not.
config IClock.hasHFXT1 // instance
index URL

Specify if HFXT1 is available on the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
config Bool hasHFXT1 = false;
DETAILS
Not all devices have high frequency clock. This specifies if it is available for a particular device.
config IClock.hasRosc // instance
index URL

Specify if Rosc is available on the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
config Bool hasRosc = false;
DETAILS
Not all devices have Rosc circuitry. This specifies if it is available for a particular device.
config IClock.hasVLO // instance
index URL

Specify if VLO is available on the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
config Bool hasVLO = false;
DETAILS
Not all devices have very low frequency clock VLO. This specifies if it is available for a particular device.
config IClock.hasXT2 // instance
index URL

Specify if XT2 is available on the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
config Bool hasXT2 = false;
DETAILS
Not all devices have XT2 clock available. This specifies if it is available for a particular device.
config IClock.maxCpuFrequency // instance
index URL

Maximum CPU frequency in Hertz

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
config Float maxCpuFrequency = 0;
config IClock.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IClock.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
config String owner;
IClock.computeDCOCLKHz() // instance
index URL

Initialize to the nearest available DCO clock frequency

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
Void computeDCOCLKHz(Float DCOCLKHz);
generated on Thu, 08 Nov 2012 02:16:35 GMT


interface ti.catalog.msp430.peripherals.clock.IClock

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== Clock ========
    15     *  MSP430 Master Clock
    16     */
    17    metaonly interface IClock inherits xdc.platform.IPeripheral {
    18
    19        /*!
    20        *  ======== ForceSetDefaultRegister_t ========
    21        *  Force Set Default Register
    22        *
    23        *  Type to store if each register needs to be forced initialized
    24        *  even if the register is in default state.
    25        *
    26        *  @see #ForceSetDefaultRegister_t
    27        */
    28        struct ForceSetDefaultRegister_t {
    29            String     register;
    30            Bool       regForceSet;
    31        }
    32
    33        /*!
    34        *  ======== AvailableClockVariations_t ========
    35        *  Available variations of clock in a device
    36        *
    37        *  Stores true/false if any of the clock variations are
    38        *  available.
    39        *
    40        *  @see #AvailableClockVariations_t
    41        */
    42        struct AvailableClockVariations_t {
    43            String     clockType;
    44            Bool       hasClock;
    45        }
    46
    47    instance:
    48
    49        /*!
    50         *  ======== baseAddr ========
    51         *  Address of the peripheral's control register.
    52         *
    53         *  A peripheral's registers are commonly accessed through a structure
    54         *  that defines the offsets of a particular register from the lowest
    55         *  address mapped to a peripheral. That lowest address is specified by
    56         *  this parameter.
    57         */
    58        config UInt baseAddr;
    59
    60        /*!
    61         *  ======== hasHFXT1 ========
    62         *  Specify if HFXT1 is available on the device.
    63         *
    64         *  Not all devices have high frequency clock. This specifies if
    65         *  it is available for a particular device.
    66         */
    67        config Bool hasHFXT1 = false;
    68
    69        /*!
    70         *  ======== hasXT2 ========
    71         *  Specify if XT2 is available on the device.
    72         *
    73         *  Not all devices have XT2 clock available. This specifies if
    74         *  it is available for a particular device.
    75         */
    76        config Bool hasXT2 = false;
    77
    78        /*!
    79         *  ======== hasRosc ========
    80         *  Specify if Rosc is available on the device.
    81         *
    82         *  Not all devices have Rosc circuitry. This specifies if
    83         *  it is available for a particular device.
    84         */
    85        config Bool hasRosc = false;
    86
    87        /*!
    88         *  ======== hasVLO ========
    89         *  Specify if VLO is available on the device.
    90         *
    91         *  Not all devices have very low frequency clock VLO. This specifies if
    92         *  it is available for a particular device.
    93         */
    94        config Bool hasVLO = false;
    95
    96        /*!
    97         *  ======== hasAllCal ========
    98         *  Specify if device has all calibration constants.
    99         *
   100         *  G1 devices do not.
   101         */
   102        config Bool hasAllCal = false;
   103
   104        /*!
   105         *  ======== maxCpuFrequency ========
   106         *  Maximum CPU frequency in Hertz
   107         */
   108        config Float maxCpuFrequency = 0;
   109
   110        /*!
   111         *  ======== DCOCLKHz ========
   112         *  DCO clock frequency in Hertz
   113         */
   114        readonly config Float DCOCLKHz = 1000000;
   115
   116        /*!
   117         *  ======== ACLKHz ========
   118         *  ACLK frequency in Hertz
   119         */
   120        readonly config Float ACLKHz;
   121
   122        /*!
   123         *  ======== MCLKHz ========
   124         *  MCLK frequency in Hertz
   125         */
   126        readonly config Float MCLKHz;
   127
   128        /*!
   129         *  ======== SMCLKHz ========
   130         *  SMCLK frequency in Hertz
   131         */
   132        readonly config Float SMCLKHz;
   133
   134        /*!
   135         *  ======== computeDCOCLKHz ========
   136         *  Initialize to the nearest available DCO clock frequency
   137         */
   138        void computeDCOCLKHz(Float DCOCLKHz);
   139    }


module ti.catalog.msp430.peripherals.clock.UCS

metaonly module ti.catalog.msp430.peripherals.clock.UCS
index URL

MSP430 Unified Clock System

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/clock/UCS.xdc
var UCS = xdc.useModule('ti.catalog.msp430.peripherals.clock.UCS');
module-wide constants & types
    values of type UCS.ACLKREQEN_t// ACLK clock request enable
        const UCS.ACLKREQEN_OFF// ACLK conditional requests are disabled;
        const UCS.ACLKREQEN// ACLK conditional requests are enabled;
    values of type UCS.DCO0_t// DCO0 Bit
        const UCS.DCO0_OFF// Disable DCO0 bit;
        const UCS.DCO0// Enable DCO0 bit;
    values of type UCS.DCO1_t// DCO1 Bit
        const UCS.DCO1_OFF// Disable DCO1 bit;
        const UCS.DCO1// Enable DCO1 bit;
    values of type UCS.DCO2_t// DCO2 Bit
        const UCS.DCO2_OFF// Disable DCO2 bit;
        const UCS.DCO2// Enable DCO2 bit;
    values of type UCS.DCO3_t// DCO3 Bit
        const UCS.DCO3_OFF// Disable DCO3 bit;
        const UCS.DCO3// Enable DCO3 bit;
    values of type UCS.DCO4_t// DCO4 Bit
        const UCS.DCO4_OFF// Disable DCO4 bit;
        const UCS.DCO4// Enable DCO4 bit;
    values of type UCS.DCOFFG_t// DCO fault flag
        const UCS.DCOFFG_OFF// No fault condition present;
        const UCS.DCOFFG// DCO fault condition present;
    values of type UCS.DCORSEL_t// DCO frequency range select
        const UCS.DCORSEL_0// DCORSEL_0;
        const UCS.DCORSEL_1// DCORSEL_1;
        const UCS.DCORSEL_2// DCORSEL_2;
        const UCS.DCORSEL_3// DCORSEL_3;
        const UCS.DCORSEL_4// DCORSEL_4;
        const UCS.DCORSEL_5// DCORSEL_5;
        const UCS.DCORSEL_6// DCORSEL_6;
        const UCS.DCORSEL_7// DCORSEL_7;
    values of type UCS.DISMOD_t// DISMOD Bit
        const UCS.DISMOD_OFF// Modulation enabled;
        const UCS.DISMOD// Modulation disabled;
    values of type UCS.DIVA_t// ACLK source divider
        const UCS.DIVA_0// Divide by 1;
        const UCS.DIVA_1// Divide by 2;
        const UCS.DIVA_2// Divide by 4;
        const UCS.DIVA_3// Divide by 8;
        const UCS.DIVA_4// Divide by 16;
        const UCS.DIVA_5// Divide by 32;
        const UCS.DIVA_6// Reserved;
        const UCS.DIVA_7// Reserved;
    values of type UCS.DIVM_t// MCLK source divider
        const UCS.DIVM_0// Divide by 1;
        const UCS.DIVM_1// Divide by 2;
        const UCS.DIVM_2// Divide by 4;
        const UCS.DIVM_3// Divide by 8;
        const UCS.DIVM_4// Divide by 16;
        const UCS.DIVM_5// Divide by 32;
        const UCS.DIVM_6// Reserved;
        const UCS.DIVM_7// Reserved;
    values of type UCS.DIVPA_t// ACLK source divider available at external pin
        const UCS.DIVPA_0// Divide by 1;
        const UCS.DIVPA_1// Divide by 2;
        const UCS.DIVPA_2// Divide by 4;
        const UCS.DIVPA_3// Divide by 8;
        const UCS.DIVPA_4// Divide by 16;
        const UCS.DIVPA_5// Divide by 32;
        const UCS.DIVPA_6// Reserved;
        const UCS.DIVPA_7// Reserved;
    values of type UCS.DIVS_t// SMCLK source divider
        const UCS.DIVS_0// Divide by 1;
        const UCS.DIVS_1// Divide by 2;
        const UCS.DIVS_2// Divide by 4;
        const UCS.DIVS_3// Divide by 8;
        const UCS.DIVS_4// Divide by 16;
        const UCS.DIVS_5// Divide by 32;
        const UCS.DIVS_6// Reserved;
        const UCS.DIVS_7// Reserved;
    values of type UCS.FLLD_t// FLL Loop Divider
        const UCS.FLLD_0// Multiply Selected Loop Freq. 1;
        const UCS.FLLD_1// Multiply Selected Loop Freq. 2;
        const UCS.FLLD_2// Multiply Selected Loop Freq. 4;
        const UCS.FLLD_3// Multiply Selected Loop Freq. 8;
        const UCS.FLLD_4// Multiply Selected Loop Freq. 16;
        const UCS.FLLD_5// Multiply Selected Loop Freq. 32;
        const UCS.FLLD_6// Multiply Selected Loop Freq. 32;
        const UCS.FLLD_7// Multiply Selected Loop Freq. 32;
    values of type UCS.FLLN0_t// FLL Multiplier Bit 0
        const UCS.FLLN0_OFF// Disable FLLN bit 0;
        const UCS.FLLN0// Enable FLLN bit 0;
    values of type UCS.FLLN1_t// FLL Multiplier Bit 1
        const UCS.FLLN1_OFF// Disable FLLN bit 1;
        const UCS.FLLN1// Enable FLLN bit 1;
    values of type UCS.FLLN2_t// FLL Multiplier Bit 2
        const UCS.FLLN2_OFF// Disable FLLN bit 2;
        const UCS.FLLN2// Enable FLLN bit 2;
    values of type UCS.FLLN3_t// FLL Multiplier Bit 3
        const UCS.FLLN3_OFF// Disable FLLN bit 3;
        const UCS.FLLN3// Enable FLLN bit 3;
    values of type UCS.FLLN4_t// FLL Multiplier Bit 4
        const UCS.FLLN4_OFF// Disable FLLN bit 4;
        const UCS.FLLN4// Enable FLLN bit 4;
    values of type UCS.FLLN5_t// FLL Multiplier Bit 5
        const UCS.FLLN5_OFF// Disable FLLN bit 5;
        const UCS.FLLN5// Enable FLLN bit 5;
    values of type UCS.FLLN6_t// FLL Multiplier Bit 6
        const UCS.FLLN6_OFF// Disable FLLN bit 6;
        const UCS.FLLN6// Enable FLLN bit 6;
    values of type UCS.FLLN7_t// FLL Multiplier Bit 7
        const UCS.FLLN7_OFF// Disable FLLN bit 7;
        const UCS.FLLN7// Enable FLLN bit 7;
    values of type UCS.FLLN8_t// FLL Multiplier Bit 8
        const UCS.FLLN8_OFF// Disable FLLN bit 8;
        const UCS.FLLN8// Enable FLLN bit 8;
    values of type UCS.FLLN9_t// FLL Multiplier Bit 9
        const UCS.FLLN9_OFF// Disable FLLN bit 9;
        const UCS.FLLN9// Enable FLLN bit 9;
    values of type UCS.FLLREFDIV_t// FLL Reference Divider
        const UCS.FLLREFDIV_0// f(FLLREFCLK) / 1;
        const UCS.FLLREFDIV_1// f(FLLREFCLK) / 2;
        const UCS.FLLREFDIV_2// f(FLLREFCLK) / 4;
        const UCS.FLLREFDIV_3// f(FLLREFCLK) / 8;
        const UCS.FLLREFDIV_4// f(FLLREFCLK) / 12;
        const UCS.FLLREFDIV_5// f(FLLREFCLK) / 16;
        const UCS.FLLREFDIV_6// Reserved;
        const UCS.FLLREFDIV_7// Reserved;
    values of type UCS.MCLKREQEN_t// MCLK clock request enable
        const UCS.MCLKREQEN_OFF// MCLK conditional requests are disabled;
        const UCS.MCLKREQEN// MCLK conditional requests are enabled;
    values of type UCS.MOD0_t// MOD0 Bit
        const UCS.MOD0_OFF// Disable MOD0 bit;
        const UCS.MOD0// Enable MOD0 bit;
    values of type UCS.MOD1_t// MOD1 Bit
        const UCS.MOD1_OFF// Disable MOD1 bit;
        const UCS.MOD1// Enable MOD1 bit;
    values of type UCS.MOD2_t// MOD2 Bit
        const UCS.MOD2_OFF// Disable MOD2 bit;
        const UCS.MOD2// Enable MOD2 bit;
    values of type UCS.MOD3_t// MOD3 Bit
        const UCS.MOD3_OFF// Disable MOD3 bit;
        const UCS.MOD3// Enable MOD3 bit;
    values of type UCS.MOD4_t// MOD4 Bit
        const UCS.MOD4_OFF// Disable MOD4 bit;
        const UCS.MOD4// Enable MOD4 bit;
    values of type UCS.MODOSCREQEN_t// MODOSC clock request enable
        const UCS.MODOSCREQEN_OFF// MODOSC conditional requests are disabled;
        const UCS.MODOSCREQEN// MODOSC conditional requests are enabled;
    values of type UCS.SELA_t// Select the ACLK source
        const UCS.SELA_0// XT1CLK;
        const UCS.SELA_1// VLOCLK;
        const UCS.SELA_2// REFOCLK;
        const UCS.SELA_3// DCOCLK;
        const UCS.SELA_4// DCOCLKDIV;
        const UCS.SELA_5// XT2CLK;
        const UCS.SELA_6// Reserved;
        const UCS.SELA_7// Reserved;
    values of type UCS.SELM_t// Select the MCLK source
        const UCS.SELM_0// XT1CLK;
        const UCS.SELM_1// VLOCLK;
        const UCS.SELM_2// REFOCLK;
        const UCS.SELM_3// DCOCLK;
        const UCS.SELM_4// DCOCLKDIV;
        const UCS.SELM_5// XT2CLK;
        const UCS.SELM_6// Reserved;
        const UCS.SELM_7// Reserved;
    values of type UCS.SELREF_t// FLL Reference Select
        const UCS.SELREF_0// FLL Reference by XT1CLK;
        const UCS.SELREF_1// Reserved;
        const UCS.SELREF_2// FLL Reference by REFOCLK;
        const UCS.SELREF_3// Reserved;
        const UCS.SELREF_4// Reserved;
        const UCS.SELREF_5// FLL Reference by XT2CLK;
        const UCS.SELREF_6// Reserved;
        const UCS.SELREF_7// Reserved;
    values of type UCS.SELS_t// Select the SMCLK source
        const UCS.SELS_0// XT1CLK;
        const UCS.SELS_1// VLOCLK;
        const UCS.SELS_2// REFOCLK;
        const UCS.SELS_3// DCOCLK;
        const UCS.SELS_4// DCOCLKDIV;
        const UCS.SELS_5// XT2CLK;
        const UCS.SELS_6// Reserved;
        const UCS.SELS_7// Reserved;
    values of type UCS.SMCLKOFF_t// SMCLK off
        const UCS.SMCLKOFF_OFF// SMCLK on;
        const UCS.SMCLKOFF// SMCLK off;
    values of type UCS.SMCLKREQEN_t// SMCLK clock request enable
        const UCS.SMCLKREQEN_OFF// SMCLK conditional requests are disabled;
        const UCS.SMCLKREQEN// SMCLK conditional requests are enabled;
    values of type UCS.UCS_CLK_SOURCE_t// Select the clock source
        const UCS.UCS_XT1CLK_SELECT// XT1CLK;
        const UCS.UCS_VLOCLK_SELECT// VLOCLK;
        const UCS.UCS_REFOCLK_SELECT// REFOCLK;
        const UCS.UCS_DCOCLK_SELECT// DCOCLK;
        const UCS.UCS_DCOCLKDIV_SELECT// DCOCLKDIV;
        const UCS.UCS_XT2CLK_SELECT// XT2CLK;
    values of type UCS.UCS_CLK_SRC_DIVIDER_t// Select clock source divider
        const UCS.UCS_CLOCK_DIVIDER_1// Divide by 1;
        const UCS.UCS_CLOCK_DIVIDER_2// Divide by 2;
        const UCS.UCS_CLOCK_DIVIDER_4// Divide by 4;
        const UCS.UCS_CLOCK_DIVIDER_8// Divide by 8;
        const UCS.UCS_CLOCK_DIVIDER_12// Divide by 12;
        const UCS.UCS_CLOCK_DIVIDER_16// Divide by 16;
        const UCS.UCS_CLOCK_DIVIDER_32// Divide by 32;
    values of type UCS.UCS_XCAP_t// XT1 oscillator capacitor select
        const UCS.UCS_XCAP_0// ~ 2 pF;
        const UCS.UCS_XCAP_1// ~ 5.5 pF;
        const UCS.UCS_XCAP_2// ~ 8.5 pF;
        const UCS.UCS_XCAP_3// ~ 12 pF;
    values of type UCS.XCAP_t// XT1 oscillator capacitor select
        const UCS.XCAP_0// XT1 Cap 0;
        const UCS.XCAP_1// XT1 Cap 1;
        const UCS.XCAP_2// XT1 Cap 2;
        const UCS.XCAP_3// XT1 Cap 3;
    values of type UCS.XT1BYPASSLV_t// Selects XT1 bypass input swing level
        const UCS.XT1BYPASSLV_OFF// Input range from 0 to DVCC;
        const UCS.XT1BYPASSLV// Input range from 0 to DVIO;
    values of type UCS.XT1BYPASS_t// XT1 bypass select
        const UCS.XT1BYPASS_OFF// XT1 sourced internally;
        const UCS.XT1BYPASS// XT1 sourced externally from pin;
    values of type UCS.XT1DRIVE_t// XT1 oscillator current
        const UCS.XT1DRIVE_0// XT1 drive 0;
        const UCS.XT1DRIVE_1// XT1 drive 1;
        const UCS.XT1DRIVE_2// XT1 drive 2;
        const UCS.XT1DRIVE_3// XT1 drive 3;
    values of type UCS.XT1HFOFFG_t// XT1 high frequency oscillator fault flag
        const UCS.XT1HFOFFG_OFF// No fault condition present;
        const UCS.XT1HFOFFG// XT1 HF fault condition present;
    values of type UCS.XT1LFOFFG_t// XT1 low frequency oscillator fault flag
        const UCS.XT1LFOFFG_OFF// No fault condition present;
        const UCS.XT1LFOFFG// XT1 LF fault condition present;
    values of type UCS.XT1OFF_t// Turns off the XT1 oscillator
        const UCS.XT1OFF_OFF// Enable XT1;
        const UCS.XT1OFF// Disable XT1;
    values of type UCS.XT2BYPASSLV_t// Selects XT2 bypass input swing level
        const UCS.XT2BYPASSLV_OFF// Input range from 0 to DVCC;
        const UCS.XT2BYPASSLV// Input range from 0 to DVIO;
    values of type UCS.XT2BYPASS_t// XT2 bypass select
        const UCS.XT2BYPASS_OFF// XT2 sourced internally;
        const UCS.XT2BYPASS// XT2 sourced externally from pin;
    values of type UCS.XT2DRIVE_t// XT2 oscillator current
        const UCS.XT2DRIVE_0// 4 MHz to 8 MHz;
        const UCS.XT2DRIVE_1// 8 MHz to 16 MHz;
        const UCS.XT2DRIVE_2// 16 MHz to 24 MHz;
        const UCS.XT2DRIVE_3// 24 MHz to 32 MHz;
    values of type UCS.XT2OFFG_t// XT2 oscillator fault flag
        const UCS.XT2OFFG_OFF// No fault condition present;
        const UCS.XT2OFFG// XT2 fault condition present;
    values of type UCS.XT2OFF_t// Turns off the XT2 oscillator
        const UCS.XT2OFF_OFF// Enable XT2;
        const UCS.XT2OFF// Disable XT2;
    values of type UCS.XTS_t// XTS mode select
        const UCS.XTS_OFF// Low Frequency;
        const UCS.XTS// High Frequency;
    var obj = new UCS.AvailableClockVariations_t// Available variations of clock in a device;
        obj.clockType = String ...
        obj.hasClock = Bool ...
    var obj = new UCS.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new UCS.UCSCTL0_t// Unified Clock System Control 0 Register;
        obj.DCO0// DCO tap selection bit 0 = UCS.DCO0_t ...
        obj.DCO1// DCO tap selection bit 1 = UCS.DCO1_t ...
        obj.DCO2// DCO tap selection bit 2 = UCS.DCO2_t ...
        obj.DCO3// DCO tap selection bit 3 = UCS.DCO3_t ...
        obj.DCO4// DCO tap selection bit 4 = UCS.DCO4_t ...
        obj.MOD0// Modulation bit counter bit 0 = UCS.MOD0_t ...
        obj.MOD1// Modulation bit counter bit 1 = UCS.MOD1_t ...
        obj.MOD2// Modulation bit counter bit 2 = UCS.MOD2_t ...
        obj.MOD3// Modulation bit counter bit 3 = UCS.MOD3_t ...
        obj.MOD4// Modulation bit counter bit 4 = UCS.MOD4_t ...
    var obj = new UCS.UCSCTL1_t// Unified Clock System Control 1 Register;
        obj.DCORSEL// DCO frequency range select. These bits select the DCO frequency range of operation defined in the device-specific datasheet = UCS.DCORSEL_t ...
        obj.DISMOD// Modulation. This bit enables/disables the modulation. 0 Modulation enabled 1 Modulation disabled = UCS.DISMOD_t ...
    var obj = new UCS.UCSCTL2_t// Unified Clock System Control 2 Register;
        obj.FLLD// FLL loop divider. These bits divide fDCOCLK in the FLL feedback loop. This results in an additional multiplier for the multiplier bits. See also multiplier bits. 000 fDCOCLK/1 001 fDCOCLK/2 010 fDCOCLK/4 011 fDCOCLK/8 100 fDCOCLK/16 101 fDCOCLK/32 110 Reserved for future use. Defaults to fDCOCLK/32 111 Reserved for future use. Defaults to fDCOCLK/32 = UCS.FLLD_t ...
        obj.FLLN0// Multiplier bit 0 = UCS.FLLN0_t ...
        obj.FLLN1// Multiplier bit 1 = UCS.FLLN1_t ...
        obj.FLLN2// Multiplier bit 2 = UCS.FLLN2_t ...
        obj.FLLN3// Multiplier bit 3 = UCS.FLLN3_t ...
        obj.FLLN4// Multiplier bit 4 = UCS.FLLN4_t ...
        obj.FLLN5// Multiplier bit 5 = UCS.FLLN5_t ...
        obj.FLLN6// Multiplier bit 6 = UCS.FLLN6_t ...
        obj.FLLN7// Multiplier bit 7 = UCS.FLLN7_t ...
        obj.FLLN8// Multiplier bit 8 = UCS.FLLN8_t ...
        obj.FLLN9// Multiplier bit 9 = UCS.FLLN9_t ...
    var obj = new UCS.UCSCTL3_t// Unified Clock System Control 3 Register;
        obj.SELREF// FLL reference select. These bits select the FLL reference clock source. 000 XT1CLK 001 Reserved for future use. Defaults to XT1CLK. 010 REFOCLK 011 Reserved for future use. Defaults to REFOCLK. 100 Reserved for future use. Defaults to REFOCLK. 101 XT2CLK when available, otherwise REFOCLK. 110 Reserved for future use. XT2CLK when available, otherwise REFOCLK. 111 No selection. For the 'F543x and 'F541x non-A versions only, this defaults to XT2CLK. Reserved for future use. XT2CLK when available, otherwise REFOCLK = UCS.SELREF_t ...
        obj.FLLREFDIV// FLL reference divider. These bits define the divide factor for fFLLREFCLK. The divided frequency is used as the FLL reference frequency. 000 fFLLREFCLK/1 001 fFLLREFCLK/2 010 fFLLREFCLK/4 011 fFLLREFCLK/8 100 fFLLREFCLK/12 101 fFLLREFCLK/16 110 Reserved for future use. Defaults to fFLLREFCLK/16. 111 Reserved for future use. Defaults to fFLLREFCLK/16 = UCS.FLLREFDIV_t ...
    var obj = new UCS.UCSCTL4_t// Unified Clock System Control 4 Register;
        obj.SELA// Selects the ACLK source 000 XT1CLK 001 VLOCLK 010 REFOCLK 011 DCOCLK 100 DCOCLKDIV 101 XT2CLK when available, otherwise DCOCLKDIV 110 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV. 111 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV = UCS.SELA_t ...
        obj.SELS// Selects the SMCLK source 000 XT1CLK 001 VLOCLK 010 REFOCLK 011 DCOCLK 100 DCOCLKDIV 101 XT2CLK when available, otherwise DCOCLKDIV 110 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV. 111 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV = UCS.SELS_t ...
        obj.SELM// Selects the MCLK source 000 XT1CLK 001 VLOCLK 010 REFOCLK 011 DCOCLK 100 DCOCLKDIV 101 XT2CLK when available, otherwise DCOCLKDIV 110 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV. 111 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV = UCS.SELM_t ...
    var obj = new UCS.UCSCTL5_t// Unified Clock System Control 5 Register;
        obj.DIVPA// ACLK source divider available at external pin. Divides the frequency of ACLK and presents it to an external pin. 000 fACLK/1 001 fACLK/2 010 fACLK/4 011 fACLK/8 100 fACLK/16 101 fACLK/32 110 Reserved for future use. Defaults to fACLK/32. 111 Reserved for future use. Defaults to fACLK/32 = UCS.DIVPA_t ...
        obj.DIVA// ACLK source divider. Divides the frequency of the ACLK clock source. 000 fACLK/1 001 fACLK/2 010 fACLK/4 011 fACLK/8 100 fACLK/16 101 fACLK/32 110 Reserved for future use. Defaults to fACLK/32. 111 Reserved for future use. Defaults to fACLK/32 = UCS.DIVA_t ...
        obj.DIVS// SMCLK source divider 000 fSMCLK/1 001 fSMCLK/2 010 fSMCLK/4 011 fSMCLK/8 100 fSMCLK/16 101 fSMCLK/32 110 Reserved for future use. Defaults to fSMCLK/32. 111 Reserved for future use. Defaults to fSMCLK/32 = UCS.DIVS_t ...
        obj.DIVM// MCLK source divider 000 fMCLK/1 001 fMCLK/2 010 fMCLK/4 011 fMCLK/8 100 fMCLK/16 101 fMCLK/32 110 Reserved for future use. Defaults to fMCLK/32. 111 Reserved for future use. Defaults to fMCLK/32 = UCS.DIVM_t ...
    var obj = new UCS.UCSCTL6_t// Unified Clock System Control 6 Register;
        obj.XT2DRIVE// The XT2 oscillator current can be adjusted to its drive needs. Initially, it starts with the highest supply current for reliable and quick startup. If needed, user software can reduce the drive strength. 00 Lowest current consumption. XT2 oscillator operating range is 4 MHz to 8 MHz. 01 Increased drive strength XT2 oscillator. XT2 oscillator operating range is 8 MHz to 16 MHz. 10 Increased drive capability XT2 oscillator. XT2 oscillator operating range is 16 MHz to 24 MHz. 11 Maximum drive capability and maximum current consumption for both XT2 oscillator. XT2 oscillator operating range is 24 MHz to 32 MHz = UCS.XT2DRIVE_t ...
        obj.XT2BYPASS// XT2 bypass select 0 XT2 sourced internally 1 XT2 sourced externally from pin = UCS.XT2BYPASS_t ...
        obj.XT2OFF// Turns off the XT2 oscillator 0 XT2 is on if XT2 is selected via the port selection and XT2 is not in bypass mode of operation. 1 XT2 is off if it is not used as a source for ACLK, MCLK, or SMCLK or is not used as a reference source required for FLL operation = UCS.XT2OFF_t ...
        obj.XT1DRIVE// The XT1 oscillator current can be adjusted to its drive needs. Initially, it starts with the highest supply current for reliable and quick startup. If needed, user software can reduce the drive strength. 00 Lowest current consumption for XT1 LF mode. XT1 oscillator operating range in HF mode is 4 MHz to 8 MHz. 01 Increased drive strength for XT1 LF mode. XT1 oscillator operating range in HF mode is 8 MHz to 16 MHz. 10 Increased drive capability for XT1 LF mode. XT1 oscillator operating range in HF mode is 16 MHz to 24 MHz. 11 Maximum drive capability and maximum current consumption for XT1 LF mode. XT1 oscillator operating range in HF mode is 24 MHz to 32 MHz = UCS.XT1DRIVE_t ...
        obj.XTS// XT1 mode select 0 Low-frequency mode. XCAP bits define the capacitance at the XIN and XOUT pins. 1 High-frequency mode. XCAP bits are not used = UCS.XTS_t ...
        obj.XT1BYPASS// XT1 bypass select 0 XT1 sourced internally 1 XT1 sourced externally from pin = UCS.XT1BYPASS_t ...
        obj.XCAP// Oscillator capacitor selection. These bits select the capacitors applied to the LF crystal or resonator in the LF mode (XTS = 0). The effective capacitance (seen by the crystal) is Ceff (CXIN + 2 pF)/2. It is assumed that CXIN = CXOUT and that a parasitic capacitance of 2 pF is added by the package and the printed circuit board. For details about the typical internal and the effective capacitors, refer to the device-specific data sheet = UCS.XCAP_t ...
        obj.SMCLKOFF// SMCLK off. This bit turns off the SMCLK. 0 SMCLK on 1 SMCLK off = UCS.SMCLKOFF_t ...
        obj.XT1OFF// XT1 off. This bit turns off the XT1. 0 XT1 is on if XT1 is selected via the port selection and XT1 is not in bypass mode of operation. 1 XT1 is off if it is not used as a source for ACLK, MCLK, or SMCLK or is not used as a reference source required for FLL operation = UCS.XT1OFF_t ...
    var obj = new UCS.UCSCTL7_t// Unified Clock System Control 7 Register;
        obj.XT2OFFG// XT2 oscillator fault flag. If this bit is set, the OFIFG flag is also set. XT2OFFG is set if a XT2 fault condition exists. XT2OFFG can be cleared via software. If the XT2 fault condition still remains, XT2OFFG is set. 0 No fault condition occurred after the last reset. 1 XT2 fault. An XT2 fault occurred after the last reset = UCS.XT2OFFG_t ...
        obj.XT1HFOFFG// XT1 oscillator fault flag (HF mode). If this bit is set, the OFIFG flag is also set. XT1HFOFFG is set if a XT1 fault condition exists. XT1HFOFFG can be cleared via software. If the XT1 fault condition still remains, XT1HFOFFG is set. 0 No fault condition occurred after the last reset. 1 XT1 fault. An XT1 fault occurred after the last reset = UCS.XT1HFOFFG_t ...
        obj.XT1LFOFFG// XT1 oscillator fault flag (LF mode). If this bit is set, the OFIFG flag is also set. XT1LFOFFG is set if a XT1 fault condition exists. XT1LFOFFG can be cleared via software. If the XT1 fault condition still remains, XT1LFOFFG is set. 0 No fault condition occurred after the last reset. 1 XT1 fault (LF mode). A XT1 fault occurred after the last reset = UCS.XT1LFOFFG_t ...
        obj.DCOFFG// DCO fault flag. If this bit is set, the OFIFG flag is also set. The DCOFFG bit is set if DCO = {0} or DCO = {31}. DCOFFG can be cleared via software. If the DCO fault condition still remains, DCOFFG is set. 0 No fault condition occurred after the last reset. 1 DCO fault. A DCO fault occurred after the last reset = UCS.DCOFFG_t ...
    var obj = new UCS.UCSCTL8_t// Unified Clock System Control 8 Register;
        obj.MODOSCREQEN// MODOSC clock request enable. Setting this enables conditional module requests for MODOSC. 0 MODOSC conditional requests are disabled. 1 MODOSC conditional requests are enabled = UCS.MODOSCREQEN_t ...
        obj.SMCLKREQEN// SMCLK clock request enable. Setting this enables conditional module requests for SMCLK. 0 SMCLK conditional requests are disabled. 1 SMCLK conditional requests are enabled = UCS.SMCLKREQEN_t ...
        obj.MCLKREQEN// MCLK clock request enable. Setting this enables conditional module requests for MCLK 0 MCLK conditional requests are disabled. 1 MCLK conditional requests are enabled = UCS.MCLKREQEN_t ...
        obj.ACLKREQEN// ACLK clock request enable. Setting this enables conditional module requests for ACLK 0 ACLK conditional requests are disabled. 1 ACLK conditional requests are enabled = UCS.ACLKREQEN_t ...
    var obj = new UCS.UCSCTL9_t// Unified Clock System Control 9 Register;
        obj.XT2BYPASSLV// Selects XT2 bypass input swing level. Must be set for reduced swing operation. 0 Input range from 0 to DVCC 1 Input range from 0 to DVIO = UCS.XT2BYPASSLV_t ...
        obj.XT1BYPASSLV// Selects XT1 bypass input swing level. Must be set for reduced swing operation. 0 Input range from 0 to DVCC 1 Input range from 0 to DVIO = UCS.XT1BYPASSLV_t ...
module-wide functions
     UCS.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     UCS.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new UCS.Params// Instance config-params object;
        params.ACLKHz// ACLK frequency in Hertz = Float undefined;
        params.DCOCLKDIVHz// Divided DCO clock frequency in Hertz = Float undefined;
        params.DCOCLKHz// DCO clock frequency in Hertz = Float 1000000;
        params.MCLKHz// MCLK frequency in Hertz = Float undefined;
        params.REFOCLKHz// = Float 32768;
        params.SMCLKHz// SMCLK frequency in Hertz = Float undefined;
        params.UCSCTL0// Unified Clock System Control 0 Register = UCS.UCSCTL0_t {
            DCO0: UCS.DCO0_OFF,
            DCO1: UCS.DCO1_OFF,
            DCO2: UCS.DCO2_OFF,
            DCO3: UCS.DCO3_OFF,
            DCO4: UCS.DCO4_OFF,
            MOD0: UCS.MOD0_OFF,
            MOD1: UCS.MOD1_OFF,
            MOD2: UCS.MOD2_OFF,
            MOD3: UCS.MOD3_OFF,
            MOD4: UCS.MOD4_OFF
        };
        params.UCSCTL1// Unified Clock System Control 1 Register = UCS.UCSCTL1_t {
            DCORSEL: UCS.DCORSEL_2,
            DISMOD: UCS.DISMOD_OFF
        };
        params.UCSCTL2// Unified Clock System Control 2 Register = UCS.UCSCTL2_t {
            FLLD: UCS.FLLD_1,
            FLLN0: UCS.FLLN0,
            FLLN1: UCS.FLLN1,
            FLLN2: UCS.FLLN2,
            FLLN3: UCS.FLLN3,
            FLLN4: UCS.FLLN4,
            FLLN5: UCS.FLLN5_OFF,
            FLLN6: UCS.FLLN6_OFF,
            FLLN7: UCS.FLLN7_OFF,
            FLLN8: UCS.FLLN8_OFF,
            FLLN9: UCS.FLLN9_OFF
        };
        params.UCSCTL3// Unified Clock System Control 3 Register = UCS.UCSCTL3_t {
            SELREF: UCS.SELREF_0,
            FLLREFDIV: UCS.FLLREFDIV_0
        };
        params.UCSCTL4// Unified Clock System Control 4 Register = UCS.UCSCTL4_t {
            SELA: UCS.SELA_0,
            SELS: UCS.SELS_4,
            SELM: UCS.SELM_4
        };
        params.UCSCTL5// Unified Clock System Control 5 Register = UCS.UCSCTL5_t {
            DIVPA: UCS.DIVPA_0,
            DIVA: UCS.DIVA_0,
            DIVS: UCS.DIVS_0,
            DIVM: UCS.DIVM_0
        };
        params.UCSCTL6// Unified Clock System Control 6 Register = UCS.UCSCTL6_t {
            XT2DRIVE: UCS.XT2DRIVE_3,
            XT2BYPASS: UCS.XT2BYPASS_OFF,
            XT2OFF: UCS.XT2OFF,
            XT1DRIVE: UCS.XT1DRIVE_3,
            XTS: UCS.XTS,
            XT1BYPASS: UCS.XT1BYPASS,
            XCAP: UCS.XCAP_3,
            SMCLKOFF: UCS.SMCLKOFF_OFF,
            XT1OFF: UCS.XT1OFF
        };
        params.UCSCTL7// Unified Clock System Control 7 Register = UCS.UCSCTL7_t {
            XT2OFFG: UCS.XT2OFFG_OFF,
            XT1HFOFFG: UCS.XT1HFOFFG_OFF,
            XT1LFOFFG: UCS.XT1LFOFFG,
            DCOFFG: UCS.DCOFFG
        };
        params.UCSCTL8// Unified Clock System Control 8 Register = UCS.UCSCTL8_t {
            MODOSCREQEN: UCS.MODOSCREQEN_OFF,
            SMCLKREQEN: UCS.SMCLKREQEN,
            MCLKREQEN: UCS.MCLKREQEN,
            ACLKREQEN: UCS.ACLKREQEN
        };
        params.UCSCTL9// Unified Clock System Control 9 Register = UCS.UCSCTL9_t {
            XT2BYPASSLV: UCS.XT2BYPASSLV_OFF,
            XT1BYPASSLV: UCS.XT1BYPASSLV_OFF
        };
        params.UCS_ACLKREQEN// ACLK clock request enable. Setting this enables conditional module requests for ACLK 0 ACLK conditional requests are disabled. 1 ACLK conditional requests are enabled = UCS.ACLKREQEN_t UCS.ACLKREQEN;
        params.UCS_ACLK_SOURCE// ACLK clock source select = UCS.UCS_CLK_SOURCE_t UCS.UCS_XT1CLK_SELECT;
        params.UCS_ACLK_SRC_DIVIDER// ACLK clock source divider select = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
        params.UCS_FLL_FREQ// Set FLL target frequency = Float 0;
        params.UCS_FLL_RATIO// FLLN value = UInt 31;
        params.UCS_FLL_REF_CLK_SOURCE// FLL reference clock source select = UCS.UCS_CLK_SOURCE_t UCS.UCS_XT1CLK_SELECT;
        params.UCS_FLL_REF_SRC_DIVIDER// FLL reference clock source divider select = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
        params.UCS_MCLKREQEN// MCLK clock request enable. Setting this enables conditional module requests for MCLK 0 MCLK conditional requests are disabled. 1 MCLK conditional requests are enabled = UCS.MCLKREQEN_t UCS.MCLKREQEN;
        params.UCS_MCLK_SOURCE// MCLK clock source select = UCS.UCS_CLK_SOURCE_t UCS.UCS_DCOCLKDIV_SELECT;
        params.UCS_MCLK_SRC_DIVIDER// MCLK clock source divider select = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
        params.UCS_MODOSCREQEN// MODOSC clock request enable. Setting this enables conditional module requests for MODOSC. 0 MODOSC conditional requests are disabled. 1 MODOSC conditional requests are enabled = UCS.MODOSCREQEN_t UCS.MODOSCREQEN_OFF;
        params.UCS_PACLK_SRC_DIVIDER// External pin ACLK clock source divider select = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
        params.UCS_SMCLKOFF// Turns OFF SMCLK using the SMCLKOFF bit 0 SMCLK On 1 SMCLK Off = Bool false;
        params.UCS_SMCLKREQEN// SMCLK clock request enable. Setting this enables conditional module requests for SMCLK. 0 SMCLK conditional requests are disabled. 1 SMCLK conditional requests are enabled = UCS.SMCLKREQEN_t UCS.SMCLKREQEN;
        params.UCS_SMCLK_SOURCE// SMCLK clock source select = UCS.UCS_CLK_SOURCE_t UCS.UCS_DCOCLKDIV_SELECT;
        params.UCS_SMCLK_SRC_DIVIDER// SMCLK clock source divider select = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
        params.UCS_XCAP// Set oscillator capacitor. Available only in LF mode. See device-specific datasheet for actual values = UCS.UCS_XCAP_t UCS.UCS_XCAP_3;
        params.UCS_XT1BYPASS// Set XT1 in bypass mode. The frequency input at XIN1 pin requires 0 to VCC = Bool false;
        params.UCS_XT1_DRIVE// Set XT1 drive strength = UCS.XT1DRIVE_t UCS.XT1DRIVE_3;
        params.UCS_XT2BYPASS// Set XT2 in bypass mode. The frequency input at XIN2 pin requires 0 to VCC = Bool false;
        params.UCS_XT2_DRIVE// Set XT2 drive strength = UCS.XT2DRIVE_t UCS.XT2DRIVE_3;
        params.VLOCLKHz// = Float 12000;
        params.WATCHCRYSTALCLKHz// = Float 32768;
        params.XT1CLKHz// = Float 0;
        params.XT2CLKHz// = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.baseAddress// UCS base address = String "__MSP430_BASEADDRESS_UCS__";
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = UCS.ForceSetDefaultRegister_t[] [
            {
                register: "UCS_SMCLKREQEN",
                regForceSet: false
            },
            {
                register: "UCS_MCLKREQEN",
                regForceSet: false
            },
            {
                register: "UCS_ACLKREQEN",
                regForceSet: false
            },
            {
                register: "UCS_MODOSCREQEN",
                regForceSet: false
            }
        ];
        params.hasAllCal// Specify if device has all calibration constants = Bool false;
        params.hasHFXT1// Specify if HFXT1 is available on the device = Bool false;
        params.hasRosc// Specify if Rosc is available on the device = Bool false;
        params.hasVLO// Specify if VLO is available on the device = Bool false;
        params.hasXT2// Specify if XT2 is available on the device = Bool false;
        params.maxCpuFrequency// Maximum CPU frequency in Hertz = Float 0;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance functions
     inst.computeDCOCLKHz// Initialize to the nearest available DCO clock frequency(Float DCOCLKHz) returns Void
enum UCS.ACLKREQEN_t
index URL

ACLK clock request enable

XDCscript usage meta-domain
values of type UCS.ACLKREQEN_t
    const UCS.ACLKREQEN_OFF;
    // ACLK conditional requests are disabled
    const UCS.ACLKREQEN;
    // ACLK conditional requests are enabled
enum UCS.DCO0_t
index URL

DCO0 Bit

XDCscript usage meta-domain
values of type UCS.DCO0_t
    const UCS.DCO0_OFF;
    // Disable DCO0 bit
    const UCS.DCO0;
    // Enable DCO0 bit
enum UCS.DCO1_t
index URL

DCO1 Bit

XDCscript usage meta-domain
values of type UCS.DCO1_t
    const UCS.DCO1_OFF;
    // Disable DCO1 bit
    const UCS.DCO1;
    // Enable DCO1 bit
enum UCS.DCO2_t
index URL

DCO2 Bit

XDCscript usage meta-domain
values of type UCS.DCO2_t
    const UCS.DCO2_OFF;
    // Disable DCO2 bit
    const UCS.DCO2;
    // Enable DCO2 bit
enum UCS.DCO3_t
index URL

DCO3 Bit

XDCscript usage meta-domain
values of type UCS.DCO3_t
    const UCS.DCO3_OFF;
    // Disable DCO3 bit
    const UCS.DCO3;
    // Enable DCO3 bit
enum UCS.DCO4_t
index URL

DCO4 Bit

XDCscript usage meta-domain
values of type UCS.DCO4_t
    const UCS.DCO4_OFF;
    // Disable DCO4 bit
    const UCS.DCO4;
    // Enable DCO4 bit
enum UCS.DCOFFG_t
index URL

DCO fault flag

XDCscript usage meta-domain
values of type UCS.DCOFFG_t
    const UCS.DCOFFG_OFF;
    // No fault condition present
    const UCS.DCOFFG;
    // DCO fault condition present
enum UCS.DCORSEL_t
index URL

DCO frequency range select

XDCscript usage meta-domain
values of type UCS.DCORSEL_t
    const UCS.DCORSEL_0;
    // DCORSEL_0
    const UCS.DCORSEL_1;
    // DCORSEL_1
    const UCS.DCORSEL_2;
    // DCORSEL_2
    const UCS.DCORSEL_3;
    // DCORSEL_3
    const UCS.DCORSEL_4;
    // DCORSEL_4
    const UCS.DCORSEL_5;
    // DCORSEL_5
    const UCS.DCORSEL_6;
    // DCORSEL_6
    const UCS.DCORSEL_7;
    // DCORSEL_7
enum UCS.DISMOD_t
index URL

DISMOD Bit

XDCscript usage meta-domain
values of type UCS.DISMOD_t
    const UCS.DISMOD_OFF;
    // Modulation enabled
    const UCS.DISMOD;
    // Modulation disabled
enum UCS.DIVA_t
index URL

ACLK source divider

XDCscript usage meta-domain
values of type UCS.DIVA_t
    const UCS.DIVA_0;
    // Divide by 1
    const UCS.DIVA_1;
    // Divide by 2
    const UCS.DIVA_2;
    // Divide by 4
    const UCS.DIVA_3;
    // Divide by 8
    const UCS.DIVA_4;
    // Divide by 16
    const UCS.DIVA_5;
    // Divide by 32
    const UCS.DIVA_6;
    // Reserved
    const UCS.DIVA_7;
    // Reserved
enum UCS.DIVM_t
index URL

MCLK source divider

XDCscript usage meta-domain
values of type UCS.DIVM_t
    const UCS.DIVM_0;
    // Divide by 1
    const UCS.DIVM_1;
    // Divide by 2
    const UCS.DIVM_2;
    // Divide by 4
    const UCS.DIVM_3;
    // Divide by 8
    const UCS.DIVM_4;
    // Divide by 16
    const UCS.DIVM_5;
    // Divide by 32
    const UCS.DIVM_6;
    // Reserved
    const UCS.DIVM_7;
    // Reserved
enum UCS.DIVPA_t
index URL

ACLK source divider available at external pin

XDCscript usage meta-domain
values of type UCS.DIVPA_t
    const UCS.DIVPA_0;
    // Divide by 1
    const UCS.DIVPA_1;
    // Divide by 2
    const UCS.DIVPA_2;
    // Divide by 4
    const UCS.DIVPA_3;
    // Divide by 8
    const UCS.DIVPA_4;
    // Divide by 16
    const UCS.DIVPA_5;
    // Divide by 32
    const UCS.DIVPA_6;
    // Reserved
    const UCS.DIVPA_7;
    // Reserved
enum UCS.DIVS_t
index URL

SMCLK source divider

XDCscript usage meta-domain
values of type UCS.DIVS_t
    const UCS.DIVS_0;
    // Divide by 1
    const UCS.DIVS_1;
    // Divide by 2
    const UCS.DIVS_2;
    // Divide by 4
    const UCS.DIVS_3;
    // Divide by 8
    const UCS.DIVS_4;
    // Divide by 16
    const UCS.DIVS_5;
    // Divide by 32
    const UCS.DIVS_6;
    // Reserved
    const UCS.DIVS_7;
    // Reserved
enum UCS.FLLD_t
index URL

FLL Loop Divider

XDCscript usage meta-domain
values of type UCS.FLLD_t
    const UCS.FLLD_0;
    // Multiply Selected Loop Freq. 1
    const UCS.FLLD_1;
    // Multiply Selected Loop Freq. 2
    const UCS.FLLD_2;
    // Multiply Selected Loop Freq. 4
    const UCS.FLLD_3;
    // Multiply Selected Loop Freq. 8
    const UCS.FLLD_4;
    // Multiply Selected Loop Freq. 16
    const UCS.FLLD_5;
    // Multiply Selected Loop Freq. 32
    const UCS.FLLD_6;
    // Multiply Selected Loop Freq. 32
    const UCS.FLLD_7;
    // Multiply Selected Loop Freq. 32
enum UCS.FLLN0_t
index URL

FLL Multiplier Bit 0

XDCscript usage meta-domain
values of type UCS.FLLN0_t
    const UCS.FLLN0_OFF;
    // Disable FLLN bit 0
    const UCS.FLLN0;
    // Enable FLLN bit 0
enum UCS.FLLN1_t
index URL

FLL Multiplier Bit 1

XDCscript usage meta-domain
values of type UCS.FLLN1_t
    const UCS.FLLN1_OFF;
    // Disable FLLN bit 1
    const UCS.FLLN1;
    // Enable FLLN bit 1
enum UCS.FLLN2_t
index URL

FLL Multiplier Bit 2

XDCscript usage meta-domain
values of type UCS.FLLN2_t
    const UCS.FLLN2_OFF;
    // Disable FLLN bit 2
    const UCS.FLLN2;
    // Enable FLLN bit 2
enum UCS.FLLN3_t
index URL

FLL Multiplier Bit 3

XDCscript usage meta-domain
values of type UCS.FLLN3_t
    const UCS.FLLN3_OFF;
    // Disable FLLN bit 3
    const UCS.FLLN3;
    // Enable FLLN bit 3
enum UCS.FLLN4_t
index URL

FLL Multiplier Bit 4

XDCscript usage meta-domain
values of type UCS.FLLN4_t
    const UCS.FLLN4_OFF;
    // Disable FLLN bit 4
    const UCS.FLLN4;
    // Enable FLLN bit 4
enum UCS.FLLN5_t
index URL

FLL Multiplier Bit 5

XDCscript usage meta-domain
values of type UCS.FLLN5_t
    const UCS.FLLN5_OFF;
    // Disable FLLN bit 5
    const UCS.FLLN5;
    // Enable FLLN bit 5
enum UCS.FLLN6_t
index URL

FLL Multiplier Bit 6

XDCscript usage meta-domain
values of type UCS.FLLN6_t
    const UCS.FLLN6_OFF;
    // Disable FLLN bit 6
    const UCS.FLLN6;
    // Enable FLLN bit 6
enum UCS.FLLN7_t
index URL

FLL Multiplier Bit 7

XDCscript usage meta-domain
values of type UCS.FLLN7_t
    const UCS.FLLN7_OFF;
    // Disable FLLN bit 7
    const UCS.FLLN7;
    // Enable FLLN bit 7
enum UCS.FLLN8_t
index URL

FLL Multiplier Bit 8

XDCscript usage meta-domain
values of type UCS.FLLN8_t
    const UCS.FLLN8_OFF;
    // Disable FLLN bit 8
    const UCS.FLLN8;
    // Enable FLLN bit 8
enum UCS.FLLN9_t
index URL

FLL Multiplier Bit 9

XDCscript usage meta-domain
values of type UCS.FLLN9_t
    const UCS.FLLN9_OFF;
    // Disable FLLN bit 9
    const UCS.FLLN9;
    // Enable FLLN bit 9
enum UCS.FLLREFDIV_t
index URL

FLL Reference Divider

XDCscript usage meta-domain
values of type UCS.FLLREFDIV_t
    const UCS.FLLREFDIV_0;
    // f(FLLREFCLK) / 1
    const UCS.FLLREFDIV_1;
    // f(FLLREFCLK) / 2
    const UCS.FLLREFDIV_2;
    // f(FLLREFCLK) / 4
    const UCS.FLLREFDIV_3;
    // f(FLLREFCLK) / 8
    const UCS.FLLREFDIV_4;
    // f(FLLREFCLK) / 12
    const UCS.FLLREFDIV_5;
    // f(FLLREFCLK) / 16
    const UCS.FLLREFDIV_6;
    // Reserved
    const UCS.FLLREFDIV_7;
    // Reserved
enum UCS.MCLKREQEN_t
index URL

MCLK clock request enable

XDCscript usage meta-domain
values of type UCS.MCLKREQEN_t
    const UCS.MCLKREQEN_OFF;
    // MCLK conditional requests are disabled
    const UCS.MCLKREQEN;
    // MCLK conditional requests are enabled
enum UCS.MOD0_t
index URL

MOD0 Bit

XDCscript usage meta-domain
values of type UCS.MOD0_t
    const UCS.MOD0_OFF;
    // Disable MOD0 bit
    const UCS.MOD0;
    // Enable MOD0 bit
enum UCS.MOD1_t
index URL

MOD1 Bit

XDCscript usage meta-domain
values of type UCS.MOD1_t
    const UCS.MOD1_OFF;
    // Disable MOD1 bit
    const UCS.MOD1;
    // Enable MOD1 bit
enum UCS.MOD2_t
index URL

MOD2 Bit

XDCscript usage meta-domain
values of type UCS.MOD2_t
    const UCS.MOD2_OFF;
    // Disable MOD2 bit
    const UCS.MOD2;
    // Enable MOD2 bit
enum UCS.MOD3_t
index URL

MOD3 Bit

XDCscript usage meta-domain
values of type UCS.MOD3_t
    const UCS.MOD3_OFF;
    // Disable MOD3 bit
    const UCS.MOD3;
    // Enable MOD3 bit
enum UCS.MOD4_t
index URL

MOD4 Bit

XDCscript usage meta-domain
values of type UCS.MOD4_t
    const UCS.MOD4_OFF;
    // Disable MOD4 bit
    const UCS.MOD4;
    // Enable MOD4 bit
enum UCS.MODOSCREQEN_t
index URL

MODOSC clock request enable

XDCscript usage meta-domain
values of type UCS.MODOSCREQEN_t
    const UCS.MODOSCREQEN_OFF;
    // MODOSC conditional requests are disabled
    const UCS.MODOSCREQEN;
    // MODOSC conditional requests are enabled
enum UCS.SELA_t
index URL

Select the ACLK source

XDCscript usage meta-domain
values of type UCS.SELA_t
    const UCS.SELA_0;
    // XT1CLK
    const UCS.SELA_1;
    // VLOCLK
    const UCS.SELA_2;
    // REFOCLK
    const UCS.SELA_3;
    // DCOCLK
    const UCS.SELA_4;
    // DCOCLKDIV
    const UCS.SELA_5;
    // XT2CLK
    const UCS.SELA_6;
    // Reserved
    const UCS.SELA_7;
    // Reserved
enum UCS.SELM_t
index URL

Select the MCLK source

XDCscript usage meta-domain
values of type UCS.SELM_t
    const UCS.SELM_0;
    // XT1CLK
    const UCS.SELM_1;
    // VLOCLK
    const UCS.SELM_2;
    // REFOCLK
    const UCS.SELM_3;
    // DCOCLK
    const UCS.SELM_4;
    // DCOCLKDIV
    const UCS.SELM_5;
    // XT2CLK
    const UCS.SELM_6;
    // Reserved
    const UCS.SELM_7;
    // Reserved
enum UCS.SELREF_t
index URL

FLL Reference Select

XDCscript usage meta-domain
values of type UCS.SELREF_t
    const UCS.SELREF_0;
    // FLL Reference by XT1CLK
    const UCS.SELREF_1;
    // Reserved
    const UCS.SELREF_2;
    // FLL Reference by REFOCLK
    const UCS.SELREF_3;
    // Reserved
    const UCS.SELREF_4;
    // Reserved
    const UCS.SELREF_5;
    // FLL Reference by XT2CLK
    const UCS.SELREF_6;
    // Reserved
    const UCS.SELREF_7;
    // Reserved
enum UCS.SELS_t
index URL

Select the SMCLK source

XDCscript usage meta-domain
values of type UCS.SELS_t
    const UCS.SELS_0;
    // XT1CLK
    const UCS.SELS_1;
    // VLOCLK
    const UCS.SELS_2;
    // REFOCLK
    const UCS.SELS_3;
    // DCOCLK
    const UCS.SELS_4;
    // DCOCLKDIV
    const UCS.SELS_5;
    // XT2CLK
    const UCS.SELS_6;
    // Reserved
    const UCS.SELS_7;
    // Reserved
enum UCS.SMCLKOFF_t
index URL

SMCLK off

XDCscript usage meta-domain
values of type UCS.SMCLKOFF_t
    const UCS.SMCLKOFF_OFF;
    // SMCLK on
    const UCS.SMCLKOFF;
    // SMCLK off
enum UCS.SMCLKREQEN_t
index URL

SMCLK clock request enable

XDCscript usage meta-domain
values of type UCS.SMCLKREQEN_t
    const UCS.SMCLKREQEN_OFF;
    // SMCLK conditional requests are disabled
    const UCS.SMCLKREQEN;
    // SMCLK conditional requests are enabled
enum UCS.UCS_CLK_SOURCE_t
index URL

Select the clock source

XDCscript usage meta-domain
values of type UCS.UCS_CLK_SOURCE_t
    const UCS.UCS_XT1CLK_SELECT;
    // XT1CLK
    const UCS.UCS_VLOCLK_SELECT;
    // VLOCLK
    const UCS.UCS_REFOCLK_SELECT;
    // REFOCLK
    const UCS.UCS_DCOCLK_SELECT;
    // DCOCLK
    const UCS.UCS_DCOCLKDIV_SELECT;
    // DCOCLKDIV
    const UCS.UCS_XT2CLK_SELECT;
    // XT2CLK
enum UCS.UCS_CLK_SRC_DIVIDER_t
index URL

Select clock source divider

XDCscript usage meta-domain
values of type UCS.UCS_CLK_SRC_DIVIDER_t
    const UCS.UCS_CLOCK_DIVIDER_1;
    // Divide by 1
    const UCS.UCS_CLOCK_DIVIDER_2;
    // Divide by 2
    const UCS.UCS_CLOCK_DIVIDER_4;
    // Divide by 4
    const UCS.UCS_CLOCK_DIVIDER_8;
    // Divide by 8
    const UCS.UCS_CLOCK_DIVIDER_12;
    // Divide by 12
    const UCS.UCS_CLOCK_DIVIDER_16;
    // Divide by 16
    const UCS.UCS_CLOCK_DIVIDER_32;
    // Divide by 32
enum UCS.UCS_XCAP_t
index URL

XT1 oscillator capacitor select

XDCscript usage meta-domain
values of type UCS.UCS_XCAP_t
    const UCS.UCS_XCAP_0;
    // ~ 2 pF
    const UCS.UCS_XCAP_1;
    // ~ 5.5 pF
    const UCS.UCS_XCAP_2;
    // ~ 8.5 pF
    const UCS.UCS_XCAP_3;
    // ~ 12 pF
enum UCS.XCAP_t
index URL

XT1 oscillator capacitor select

XDCscript usage meta-domain
values of type UCS.XCAP_t
    const UCS.XCAP_0;
    // XT1 Cap 0
    const UCS.XCAP_1;
    // XT1 Cap 1
    const UCS.XCAP_2;
    // XT1 Cap 2
    const UCS.XCAP_3;
    // XT1 Cap 3
enum UCS.XT1BYPASSLV_t
index URL

Selects XT1 bypass input swing level

XDCscript usage meta-domain
values of type UCS.XT1BYPASSLV_t
    const UCS.XT1BYPASSLV_OFF;
    // Input range from 0 to DVCC
    const UCS.XT1BYPASSLV;
    // Input range from 0 to DVIO
enum UCS.XT1BYPASS_t
index URL

XT1 bypass select

XDCscript usage meta-domain
values of type UCS.XT1BYPASS_t
    const UCS.XT1BYPASS_OFF;
    // XT1 sourced internally
    const UCS.XT1BYPASS;
    // XT1 sourced externally from pin
enum UCS.XT1DRIVE_t
index URL

XT1 oscillator current

XDCscript usage meta-domain
values of type UCS.XT1DRIVE_t
    const UCS.XT1DRIVE_0;
    // XT1 drive 0
    const UCS.XT1DRIVE_1;
    // XT1 drive 1
    const UCS.XT1DRIVE_2;
    // XT1 drive 2
    const UCS.XT1DRIVE_3;
    // XT1 drive 3
enum UCS.XT1HFOFFG_t
index URL

XT1 high frequency oscillator fault flag

XDCscript usage meta-domain
values of type UCS.XT1HFOFFG_t
    const UCS.XT1HFOFFG_OFF;
    // No fault condition present
    const UCS.XT1HFOFFG;
    // XT1 HF fault condition present
enum UCS.XT1LFOFFG_t
index URL

XT1 low frequency oscillator fault flag

XDCscript usage meta-domain
values of type UCS.XT1LFOFFG_t
    const UCS.XT1LFOFFG_OFF;
    // No fault condition present
    const UCS.XT1LFOFFG;
    // XT1 LF fault condition present
enum UCS.XT1OFF_t
index URL

Turns off the XT1 oscillator

XDCscript usage meta-domain
values of type UCS.XT1OFF_t
    const UCS.XT1OFF_OFF;
    // Enable XT1
    const UCS.XT1OFF;
    // Disable XT1
enum UCS.XT2BYPASSLV_t
index URL

Selects XT2 bypass input swing level

XDCscript usage meta-domain
values of type UCS.XT2BYPASSLV_t
    const UCS.XT2BYPASSLV_OFF;
    // Input range from 0 to DVCC
    const UCS.XT2BYPASSLV;
    // Input range from 0 to DVIO
enum UCS.XT2BYPASS_t
index URL

XT2 bypass select

XDCscript usage meta-domain
values of type UCS.XT2BYPASS_t
    const UCS.XT2BYPASS_OFF;
    // XT2 sourced internally
    const UCS.XT2BYPASS;
    // XT2 sourced externally from pin
enum UCS.XT2DRIVE_t
index URL

XT2 oscillator current

XDCscript usage meta-domain
values of type UCS.XT2DRIVE_t
    const UCS.XT2DRIVE_0;
    // 4 MHz to 8 MHz
    const UCS.XT2DRIVE_1;
    // 8 MHz to 16 MHz
    const UCS.XT2DRIVE_2;
    // 16 MHz to 24 MHz
    const UCS.XT2DRIVE_3;
    // 24 MHz to 32 MHz
enum UCS.XT2OFFG_t
index URL

XT2 oscillator fault flag

XDCscript usage meta-domain
values of type UCS.XT2OFFG_t
    const UCS.XT2OFFG_OFF;
    // No fault condition present
    const UCS.XT2OFFG;
    // XT2 fault condition present
enum UCS.XT2OFF_t
index URL

Turns off the XT2 oscillator

XDCscript usage meta-domain
values of type UCS.XT2OFF_t
    const UCS.XT2OFF_OFF;
    // Enable XT2
    const UCS.XT2OFF;
    // Disable XT2
enum UCS.XTS_t
index URL

XTS mode select

XDCscript usage meta-domain
values of type UCS.XTS_t
    const UCS.XTS_OFF;
    // Low Frequency
    const UCS.XTS;
    // High Frequency
struct UCS.AvailableClockVariations_t
index URL

Available variations of clock in a device

XDCscript usage meta-domain
var obj = new UCS.AvailableClockVariations_t;
    obj.clockType = String ...
    obj.hasClock = Bool ...
DETAILS
Stores true/false if any of the clock variations are available.
SEE
AvailableClockVariations_t
struct UCS.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new UCS.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct UCS.UCSCTL0_t
index URL

Unified Clock System Control 0 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL0_t;
    obj.DCO0 = UCS.DCO0_t ...
    // DCO tap selection bit 0
    obj.DCO1 = UCS.DCO1_t ...
    // DCO tap selection bit 1
    obj.DCO2 = UCS.DCO2_t ...
    // DCO tap selection bit 2
    obj.DCO3 = UCS.DCO3_t ...
    // DCO tap selection bit 3
    obj.DCO4 = UCS.DCO4_t ...
    // DCO tap selection bit 4
    obj.MOD0 = UCS.MOD0_t ...
    // Modulation bit counter bit 0
    obj.MOD1 = UCS.MOD1_t ...
    // Modulation bit counter bit 1
    obj.MOD2 = UCS.MOD2_t ...
    // Modulation bit counter bit 2
    obj.MOD3 = UCS.MOD3_t ...
    // Modulation bit counter bit 3
    obj.MOD4 = UCS.MOD4_t ...
    // Modulation bit counter bit 4
FIELDS
DCO — DCO tap selection.
MOD — Modulation bit counter.
struct UCS.UCSCTL1_t
index URL

Unified Clock System Control 1 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL1_t;
    obj.DCORSEL = UCS.DCORSEL_t ...
    // DCO frequency range select. These bits select the DCO frequency range of operation defined in the device-specific datasheet
    obj.DISMOD = UCS.DISMOD_t ...
    // Modulation. This bit enables/disables the modulation. 0 Modulation enabled 1 Modulation disabled
FIELDS
DCORSEL — DCO frequency range select. These bits select the DCO frequency range of operation defined in the device-specific datasheet.
DISMOD — 0 Modulation enabled, 1 Modulation disabled.
struct UCS.UCSCTL2_t
index URL

Unified Clock System Control 2 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL2_t;
    obj.FLLD = UCS.FLLD_t ...
    // FLL loop divider. These bits divide fDCOCLK in the FLL feedback loop. This results in an additional multiplier for the multiplier bits. See also multiplier bits. 000 fDCOCLK/1 001 fDCOCLK/2 010 fDCOCLK/4 011 fDCOCLK/8 100 fDCOCLK/16 101 fDCOCLK/32 110 Reserved for future use. Defaults to fDCOCLK/32 111 Reserved for future use. Defaults to fDCOCLK/32
    obj.FLLN0 = UCS.FLLN0_t ...
    // Multiplier bit 0
    obj.FLLN1 = UCS.FLLN1_t ...
    // Multiplier bit 1
    obj.FLLN2 = UCS.FLLN2_t ...
    // Multiplier bit 2
    obj.FLLN3 = UCS.FLLN3_t ...
    // Multiplier bit 3
    obj.FLLN4 = UCS.FLLN4_t ...
    // Multiplier bit 4
    obj.FLLN5 = UCS.FLLN5_t ...
    // Multiplier bit 5
    obj.FLLN6 = UCS.FLLN6_t ...
    // Multiplier bit 6
    obj.FLLN7 = UCS.FLLN7_t ...
    // Multiplier bit 7
    obj.FLLN8 = UCS.FLLN8_t ...
    // Multiplier bit 8
    obj.FLLN9 = UCS.FLLN9_t ...
    // Multiplier bit 9
FIELDS
FLLD — FLL loop divider. These bits divide fDCOCLK in the FLL feedback loop. This results in an additional multiplier for the multiplier bits.
FLLN — Multiplier bits. These bits set the multiplier value N of the DCO. N must be greater than 0. Writing zero to FLLN causes N to be set to 1.
struct UCS.UCSCTL3_t
index URL

Unified Clock System Control 3 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL3_t;
    obj.SELREF = UCS.SELREF_t ...
    // FLL reference select. These bits select the FLL reference clock source. 000 XT1CLK 001 Reserved for future use. Defaults to XT1CLK. 010 REFOCLK 011 Reserved for future use. Defaults to REFOCLK. 100 Reserved for future use. Defaults to REFOCLK. 101 XT2CLK when available, otherwise REFOCLK. 110 Reserved for future use. XT2CLK when available, otherwise REFOCLK. 111 No selection. For the 'F543x and 'F541x non-A versions only, this defaults to XT2CLK. Reserved for future use. XT2CLK when available, otherwise REFOCLK
    obj.FLLREFDIV = UCS.FLLREFDIV_t ...
    // FLL reference divider. These bits define the divide factor for fFLLREFCLK. The divided frequency is used as the FLL reference frequency. 000 fFLLREFCLK/1 001 fFLLREFCLK/2 010 fFLLREFCLK/4 011 fFLLREFCLK/8 100 fFLLREFCLK/12 101 fFLLREFCLK/16 110 Reserved for future use. Defaults to fFLLREFCLK/16. 111 Reserved for future use. Defaults to fFLLREFCLK/16
FIELDS
SELREF — FLL reference select. These bits select the FLL reference clock source.
FLLREFDIV — FLL reference divider. These bits define the divide factor for fFLLREFCLK. The divided frequency is used as the FLL reference frequency.
struct UCS.UCSCTL4_t
index URL

Unified Clock System Control 4 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL4_t;
    obj.SELA = UCS.SELA_t ...
    // Selects the ACLK source 000 XT1CLK 001 VLOCLK 010 REFOCLK 011 DCOCLK 100 DCOCLKDIV 101 XT2CLK when available, otherwise DCOCLKDIV 110 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV. 111 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV
    obj.SELS = UCS.SELS_t ...
    // Selects the SMCLK source 000 XT1CLK 001 VLOCLK 010 REFOCLK 011 DCOCLK 100 DCOCLKDIV 101 XT2CLK when available, otherwise DCOCLKDIV 110 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV. 111 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV
    obj.SELM = UCS.SELM_t ...
    // Selects the MCLK source 000 XT1CLK 001 VLOCLK 010 REFOCLK 011 DCOCLK 100 DCOCLKDIV 101 XT2CLK when available, otherwise DCOCLKDIV 110 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV. 111 Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV
FIELDS
SELA — Selects the ACLK source
SELS — Selects the SMCLK source
SELM — Selects the MCLK source
struct UCS.UCSCTL5_t
index URL

Unified Clock System Control 5 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL5_t;
    obj.DIVPA = UCS.DIVPA_t ...
    // ACLK source divider available at external pin. Divides the frequency of ACLK and presents it to an external pin. 000 fACLK/1 001 fACLK/2 010 fACLK/4 011 fACLK/8 100 fACLK/16 101 fACLK/32 110 Reserved for future use. Defaults to fACLK/32. 111 Reserved for future use. Defaults to fACLK/32
    obj.DIVA = UCS.DIVA_t ...
    // ACLK source divider. Divides the frequency of the ACLK clock source. 000 fACLK/1 001 fACLK/2 010 fACLK/4 011 fACLK/8 100 fACLK/16 101 fACLK/32 110 Reserved for future use. Defaults to fACLK/32. 111 Reserved for future use. Defaults to fACLK/32
    obj.DIVS = UCS.DIVS_t ...
    // SMCLK source divider 000 fSMCLK/1 001 fSMCLK/2 010 fSMCLK/4 011 fSMCLK/8 100 fSMCLK/16 101 fSMCLK/32 110 Reserved for future use. Defaults to fSMCLK/32. 111 Reserved for future use. Defaults to fSMCLK/32
    obj.DIVM = UCS.DIVM_t ...
    // MCLK source divider 000 fMCLK/1 001 fMCLK/2 010 fMCLK/4 011 fMCLK/8 100 fMCLK/16 101 fMCLK/32 110 Reserved for future use. Defaults to fMCLK/32. 111 Reserved for future use. Defaults to fMCLK/32
FIELDS
SELA — Selects the ACLK source
SELS — Selects the SMCLK source
SELM — Selects the MCLK source
struct UCS.UCSCTL6_t
index URL

Unified Clock System Control 6 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL6_t;
    obj.XT2DRIVE = UCS.XT2DRIVE_t ...
    // The XT2 oscillator current can be adjusted to its drive needs. Initially, it starts with the highest supply current for reliable and quick startup. If needed, user software can reduce the drive strength. 00 Lowest current consumption. XT2 oscillator operating range is 4 MHz to 8 MHz. 01 Increased drive strength XT2 oscillator. XT2 oscillator operating range is 8 MHz to 16 MHz. 10 Increased drive capability XT2 oscillator. XT2 oscillator operating range is 16 MHz to 24 MHz. 11 Maximum drive capability and maximum current consumption for both XT2 oscillator. XT2 oscillator operating range is 24 MHz to 32 MHz
    obj.XT2BYPASS = UCS.XT2BYPASS_t ...
    // XT2 bypass select 0 XT2 sourced internally 1 XT2 sourced externally from pin
    obj.XT2OFF = UCS.XT2OFF_t ...
    // Turns off the XT2 oscillator 0 XT2 is on if XT2 is selected via the port selection and XT2 is not in bypass mode of operation. 1 XT2 is off if it is not used as a source for ACLK, MCLK, or SMCLK or is not used as a reference source required for FLL operation
    obj.XT1DRIVE = UCS.XT1DRIVE_t ...
    // The XT1 oscillator current can be adjusted to its drive needs. Initially, it starts with the highest supply current for reliable and quick startup. If needed, user software can reduce the drive strength. 00 Lowest current consumption for XT1 LF mode. XT1 oscillator operating range in HF mode is 4 MHz to 8 MHz. 01 Increased drive strength for XT1 LF mode. XT1 oscillator operating range in HF mode is 8 MHz to 16 MHz. 10 Increased drive capability for XT1 LF mode. XT1 oscillator operating range in HF mode is 16 MHz to 24 MHz. 11 Maximum drive capability and maximum current consumption for XT1 LF mode. XT1 oscillator operating range in HF mode is 24 MHz to 32 MHz
    obj.XTS = UCS.XTS_t ...
    // XT1 mode select 0 Low-frequency mode. XCAP bits define the capacitance at the XIN and XOUT pins. 1 High-frequency mode. XCAP bits are not used
    obj.XT1BYPASS = UCS.XT1BYPASS_t ...
    // XT1 bypass select 0 XT1 sourced internally 1 XT1 sourced externally from pin
    obj.XCAP = UCS.XCAP_t ...
   // Oscillator capacitor selection. These bits select the capacitors applied to the LF crystal or resonator in the LF
mode (XTS = 0). The effective capacitance (seen by the crystal) is Ceff (CXIN + 2 pF)/2. It is assumed that
CXIN = CXOUT and that a parasitic capacitance of 2 pF is added by the package and the printed circuit board. For
details about the typical internal and the effective capacitors, refer to the device-specific data sheet
    obj.SMCLKOFF = UCS.SMCLKOFF_t ...
    // SMCLK off. This bit turns off the SMCLK. 0 SMCLK on 1 SMCLK off
    obj.XT1OFF = UCS.XT1OFF_t ...
    // XT1 off. This bit turns off the XT1. 0 XT1 is on if XT1 is selected via the port selection and XT1 is not in bypass mode of operation. 1 XT1 is off if it is not used as a source for ACLK, MCLK, or SMCLK or is not used as a reference source required for FLL operation
FIELDS
SELA — Selects the ACLK source
SELS — Selects the SMCLK source
SELM — Selects the MCLK source
struct UCS.UCSCTL7_t
index URL

Unified Clock System Control 7 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL7_t;
    obj.XT2OFFG = UCS.XT2OFFG_t ...
    // XT2 oscillator fault flag. If this bit is set, the OFIFG flag is also set. XT2OFFG is set if a XT2 fault condition exists. XT2OFFG can be cleared via software. If the XT2 fault condition still remains, XT2OFFG is set. 0 No fault condition occurred after the last reset. 1 XT2 fault. An XT2 fault occurred after the last reset
    obj.XT1HFOFFG = UCS.XT1HFOFFG_t ...
    // XT1 oscillator fault flag (HF mode). If this bit is set, the OFIFG flag is also set. XT1HFOFFG is set if a XT1 fault condition exists. XT1HFOFFG can be cleared via software. If the XT1 fault condition still remains, XT1HFOFFG is set. 0 No fault condition occurred after the last reset. 1 XT1 fault. An XT1 fault occurred after the last reset
    obj.XT1LFOFFG = UCS.XT1LFOFFG_t ...
    // XT1 oscillator fault flag (LF mode). If this bit is set, the OFIFG flag is also set. XT1LFOFFG is set if a XT1 fault condition exists. XT1LFOFFG can be cleared via software. If the XT1 fault condition still remains, XT1LFOFFG is set. 0 No fault condition occurred after the last reset. 1 XT1 fault (LF mode). A XT1 fault occurred after the last reset
    obj.DCOFFG = UCS.DCOFFG_t ...
    // DCO fault flag. If this bit is set, the OFIFG flag is also set. The DCOFFG bit is set if DCO = {0} or DCO = {31}. DCOFFG can be cleared via software. If the DCO fault condition still remains, DCOFFG is set. 0 No fault condition occurred after the last reset. 1 DCO fault. A DCO fault occurred after the last reset
FIELDS
XT2OFFG — 0 No fault condition, 1 XT2 fault
XT1HFOFFG — 0 No fault condition, 1 XT1 HF fault
XT1LFOFFG — 0 No fault condition, 1 XT1 LF fault
DCOFFG — 0 No fault condition, 1 DCO fault
struct UCS.UCSCTL8_t
index URL

Unified Clock System Control 8 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL8_t;
    obj.MODOSCREQEN = UCS.MODOSCREQEN_t ...
    // MODOSC clock request enable. Setting this enables conditional module requests for MODOSC. 0 MODOSC conditional requests are disabled. 1 MODOSC conditional requests are enabled
    obj.SMCLKREQEN = UCS.SMCLKREQEN_t ...
    // SMCLK clock request enable. Setting this enables conditional module requests for SMCLK. 0 SMCLK conditional requests are disabled. 1 SMCLK conditional requests are enabled
    obj.MCLKREQEN = UCS.MCLKREQEN_t ...
    // MCLK clock request enable. Setting this enables conditional module requests for MCLK 0 MCLK conditional requests are disabled. 1 MCLK conditional requests are enabled
    obj.ACLKREQEN = UCS.ACLKREQEN_t ...
    // ACLK clock request enable. Setting this enables conditional module requests for ACLK 0 ACLK conditional requests are disabled. 1 ACLK conditional requests are enabled
FIELDS
MODOSCREQEN — 0 MODOSC conditional requests are disabled 1 MODOSC conditional requests are enabled
SMCLKREQEN — 0 SMCLK conditional requests are disabled 1 SMCLK conditional requests are enabled
MCLKREQEN — 0 MCLK conditional requests are disabled 1 MCLK conditional requests are enabled
ACLKREQEN — 0 ACLK conditional requests are disabled 1 ACLK conditional requests are enabled
struct UCS.UCSCTL9_t
index URL

Unified Clock System Control 9 Register

XDCscript usage meta-domain
var obj = new UCS.UCSCTL9_t;
    obj.XT2BYPASSLV = UCS.XT2BYPASSLV_t ...
    // Selects XT2 bypass input swing level. Must be set for reduced swing operation. 0 Input range from 0 to DVCC 1 Input range from 0 to DVIO
    obj.XT1BYPASSLV = UCS.XT1BYPASSLV_t ...
    // Selects XT1 bypass input swing level. Must be set for reduced swing operation. 0 Input range from 0 to DVCC 1 Input range from 0 to DVIO
FIELDS
XT2BYPASSLV — 0 Input range from 0 to DVCC 1 Input range from 0 to DVIO
XT1BYPASSLV — 0 Input range from 0 to DVCC 1 Input range from 0 to DVIO
UCS.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
UCS.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
UCS.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
UCS.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new UCS.Params;
// Instance config-params object
    params.ACLKHz = Float undefined;
    // ACLK frequency in Hertz
    params.DCOCLKDIVHz = Float undefined;
    // Divided DCO clock frequency in Hertz
    params.DCOCLKHz = Float 1000000;
    // DCO clock frequency in Hertz
    params.MCLKHz = Float undefined;
    // MCLK frequency in Hertz
    params.REFOCLKHz = Float 32768;
    //
    params.SMCLKHz = Float undefined;
    // SMCLK frequency in Hertz
    params.UCSCTL0 = UCS.UCSCTL0_t {
    // Unified Clock System Control 0 Register
        DCO0: UCS.DCO0_OFF,
        DCO1: UCS.DCO1_OFF,
        DCO2: UCS.DCO2_OFF,
        DCO3: UCS.DCO3_OFF,
        DCO4: UCS.DCO4_OFF,
        MOD0: UCS.MOD0_OFF,
        MOD1: UCS.MOD1_OFF,
        MOD2: UCS.MOD2_OFF,
        MOD3: UCS.MOD3_OFF,
        MOD4: UCS.MOD4_OFF
    };
    params.UCSCTL1 = UCS.UCSCTL1_t {
    // Unified Clock System Control 1 Register
        DCORSEL: UCS.DCORSEL_2,
        DISMOD: UCS.DISMOD_OFF
    };
    params.UCSCTL2 = UCS.UCSCTL2_t {
    // Unified Clock System Control 2 Register
        FLLD: UCS.FLLD_1,
        FLLN0: UCS.FLLN0,
        FLLN1: UCS.FLLN1,
        FLLN2: UCS.FLLN2,
        FLLN3: UCS.FLLN3,
        FLLN4: UCS.FLLN4,
        FLLN5: UCS.FLLN5_OFF,
        FLLN6: UCS.FLLN6_OFF,
        FLLN7: UCS.FLLN7_OFF,
        FLLN8: UCS.FLLN8_OFF,
        FLLN9: UCS.FLLN9_OFF
    };
    params.UCSCTL3 = UCS.UCSCTL3_t {
    // Unified Clock System Control 3 Register
        SELREF: UCS.SELREF_0,
        FLLREFDIV: UCS.FLLREFDIV_0
    };
    params.UCSCTL4 = UCS.UCSCTL4_t {
    // Unified Clock System Control 4 Register
        SELA: UCS.SELA_0,
        SELS: UCS.SELS_4,
        SELM: UCS.SELM_4
    };
    params.UCSCTL5 = UCS.UCSCTL5_t {
    // Unified Clock System Control 5 Register
        DIVPA: UCS.DIVPA_0,
        DIVA: UCS.DIVA_0,
        DIVS: UCS.DIVS_0,
        DIVM: UCS.DIVM_0
    };
    params.UCSCTL6 = UCS.UCSCTL6_t {
    // Unified Clock System Control 6 Register
        XT2DRIVE: UCS.XT2DRIVE_3,
        XT2BYPASS: UCS.XT2BYPASS_OFF,
        XT2OFF: UCS.XT2OFF,
        XT1DRIVE: UCS.XT1DRIVE_3,
        XTS: UCS.XTS,
        XT1BYPASS: UCS.XT1BYPASS,
        XCAP: UCS.XCAP_3,
        SMCLKOFF: UCS.SMCLKOFF_OFF,
        XT1OFF: UCS.XT1OFF
    };
    params.UCSCTL7 = UCS.UCSCTL7_t {
    // Unified Clock System Control 7 Register
        XT2OFFG: UCS.XT2OFFG_OFF,
        XT1HFOFFG: UCS.XT1HFOFFG_OFF,
        XT1LFOFFG: UCS.XT1LFOFFG,
        DCOFFG: UCS.DCOFFG
    };
    params.UCSCTL8 = UCS.UCSCTL8_t {
    // Unified Clock System Control 8 Register
        MODOSCREQEN: UCS.MODOSCREQEN_OFF,
        SMCLKREQEN: UCS.SMCLKREQEN,
        MCLKREQEN: UCS.MCLKREQEN,
        ACLKREQEN: UCS.ACLKREQEN
    };
    params.UCSCTL9 = UCS.UCSCTL9_t {
    // Unified Clock System Control 9 Register
        XT2BYPASSLV: UCS.XT2BYPASSLV_OFF,
        XT1BYPASSLV: UCS.XT1BYPASSLV_OFF
    };
    params.UCS_ACLKREQEN = UCS.ACLKREQEN_t UCS.ACLKREQEN;
    // ACLK clock request enable. Setting this enables conditional module requests for ACLK 0 ACLK conditional requests are disabled. 1 ACLK conditional requests are enabled
    params.UCS_ACLK_SOURCE = UCS.UCS_CLK_SOURCE_t UCS.UCS_XT1CLK_SELECT;
    // ACLK clock source select
    params.UCS_ACLK_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
    // ACLK clock source divider select
    params.UCS_FLL_FREQ = Float 0;
    // Set FLL target frequency
    params.UCS_FLL_RATIO = UInt 31;
    // FLLN value
    params.UCS_FLL_REF_CLK_SOURCE = UCS.UCS_CLK_SOURCE_t UCS.UCS_XT1CLK_SELECT;
    // FLL reference clock source select
    params.UCS_FLL_REF_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
    // FLL reference clock source divider select
    params.UCS_MCLKREQEN = UCS.MCLKREQEN_t UCS.MCLKREQEN;
    // MCLK clock request enable. Setting this enables conditional module requests for MCLK 0 MCLK conditional requests are disabled. 1 MCLK conditional requests are enabled
    params.UCS_MCLK_SOURCE = UCS.UCS_CLK_SOURCE_t UCS.UCS_DCOCLKDIV_SELECT;
    // MCLK clock source select
    params.UCS_MCLK_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
    // MCLK clock source divider select
    params.UCS_MODOSCREQEN = UCS.MODOSCREQEN_t UCS.MODOSCREQEN_OFF;
    // MODOSC clock request enable. Setting this enables conditional module requests for MODOSC. 0 MODOSC conditional requests are disabled. 1 MODOSC conditional requests are enabled
    params.UCS_PACLK_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
    // External pin ACLK clock source divider select
    params.UCS_SMCLKOFF = Bool false;
    // Turns OFF SMCLK using the SMCLKOFF bit 0 SMCLK On 1 SMCLK Off
    params.UCS_SMCLKREQEN = UCS.SMCLKREQEN_t UCS.SMCLKREQEN;
    // SMCLK clock request enable. Setting this enables conditional module requests for SMCLK. 0 SMCLK conditional requests are disabled. 1 SMCLK conditional requests are enabled
    params.UCS_SMCLK_SOURCE = UCS.UCS_CLK_SOURCE_t UCS.UCS_DCOCLKDIV_SELECT;
    // SMCLK clock source select
    params.UCS_SMCLK_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
    // SMCLK clock source divider select
    params.UCS_XCAP = UCS.UCS_XCAP_t UCS.UCS_XCAP_3;
    // Set oscillator capacitor. Available only in LF mode. See device-specific datasheet for actual values
    params.UCS_XT1BYPASS = Bool false;
    // Set XT1 in bypass mode. The frequency input at XIN1 pin requires 0 to VCC
    params.UCS_XT1_DRIVE = UCS.XT1DRIVE_t UCS.XT1DRIVE_3;
    // Set XT1 drive strength
    params.UCS_XT2BYPASS = Bool false;
    // Set XT2 in bypass mode. The frequency input at XIN2 pin requires 0 to VCC
    params.UCS_XT2_DRIVE = UCS.XT2DRIVE_t UCS.XT2DRIVE_3;
    // Set XT2 drive strength
    params.VLOCLKHz = Float 12000;
    //
    params.WATCHCRYSTALCLKHz = Float 32768;
    //
    params.XT1CLKHz = Float 0;
    //
    params.XT2CLKHz = Float 0;
    //
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.baseAddress = String "__MSP430_BASEADDRESS_UCS__";
    // UCS base address
    params.forceSetDefaultRegister = UCS.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "UCS_SMCLKREQEN",
            regForceSet: false
        },
        {
            register: "UCS_MCLKREQEN",
            regForceSet: false
        },
        {
            register: "UCS_ACLKREQEN",
            regForceSet: false
        },
        {
            register: "UCS_MODOSCREQEN",
            regForceSet: false
        }
    ];
    params.hasAllCal = Bool false;
    // Specify if device has all calibration constants
    params.hasHFXT1 = Bool false;
    // Specify if HFXT1 is available on the device
    params.hasRosc = Bool false;
    // Specify if Rosc is available on the device
    params.hasVLO = Bool false;
    // Specify if VLO is available on the device
    params.hasXT2 = Bool false;
    // Specify if XT2 is available on the device
    params.maxCpuFrequency = Float 0;
    // Maximum CPU frequency in Hertz
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config UCS.ACLKHz // instance
index URL

ACLK frequency in Hertz

XDCscript usage meta-domain
var params = new UCS.Params;
...
const params.ACLKHz = Float computed value;
config UCS.DCOCLKDIVHz // instance
index URL

Divided DCO clock frequency in Hertz

XDCscript usage meta-domain
var params = new UCS.Params;
...
const params.DCOCLKDIVHz = Float computed value;
config UCS.DCOCLKHz // instance
index URL

DCO clock frequency in Hertz

XDCscript usage meta-domain
var params = new UCS.Params;
...
const params.DCOCLKHz = Float 1000000;
config UCS.MCLKHz // instance
index URL

MCLK frequency in Hertz

XDCscript usage meta-domain
var params = new UCS.Params;
...
const params.MCLKHz = Float computed value;
config UCS.REFOCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new UCS.Params;
...
params.REFOCLKHz = Float 32768;
config UCS.SMCLKHz // instance
index URL

SMCLK frequency in Hertz

XDCscript usage meta-domain
var params = new UCS.Params;
...
const params.SMCLKHz = Float computed value;
config UCS.UCSCTL0 // instance
index URL

Unified Clock System Control 0 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL0 = UCS.UCSCTL0_t {
    DCO0: UCS.DCO0_OFF,
    DCO1: UCS.DCO1_OFF,
    DCO2: UCS.DCO2_OFF,
    DCO3: UCS.DCO3_OFF,
    DCO4: UCS.DCO4_OFF,
    MOD0: UCS.MOD0_OFF,
    MOD1: UCS.MOD1_OFF,
    MOD2: UCS.MOD2_OFF,
    MOD3: UCS.MOD3_OFF,
    MOD4: UCS.MOD4_OFF
};
config UCS.UCSCTL1 // instance
index URL

Unified Clock System Control 1 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL1 = UCS.UCSCTL1_t {
    DCORSEL: UCS.DCORSEL_2,
    DISMOD: UCS.DISMOD_OFF
};
config UCS.UCSCTL2 // instance
index URL

Unified Clock System Control 2 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL2 = UCS.UCSCTL2_t {
    FLLD: UCS.FLLD_1,
    FLLN0: UCS.FLLN0,
    FLLN1: UCS.FLLN1,
    FLLN2: UCS.FLLN2,
    FLLN3: UCS.FLLN3,
    FLLN4: UCS.FLLN4,
    FLLN5: UCS.FLLN5_OFF,
    FLLN6: UCS.FLLN6_OFF,
    FLLN7: UCS.FLLN7_OFF,
    FLLN8: UCS.FLLN8_OFF,
    FLLN9: UCS.FLLN9_OFF
};
config UCS.UCSCTL3 // instance
index URL

Unified Clock System Control 3 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL3 = UCS.UCSCTL3_t {
    SELREF: UCS.SELREF_0,
    FLLREFDIV: UCS.FLLREFDIV_0
};
config UCS.UCSCTL4 // instance
index URL

Unified Clock System Control 4 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL4 = UCS.UCSCTL4_t {
    SELA: UCS.SELA_0,
    SELS: UCS.SELS_4,
    SELM: UCS.SELM_4
};
config UCS.UCSCTL5 // instance
index URL

Unified Clock System Control 5 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL5 = UCS.UCSCTL5_t {
    DIVPA: UCS.DIVPA_0,
    DIVA: UCS.DIVA_0,
    DIVS: UCS.DIVS_0,
    DIVM: UCS.DIVM_0
};
config UCS.UCSCTL6 // instance
index URL

Unified Clock System Control 6 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL6 = UCS.UCSCTL6_t {
    XT2DRIVE: UCS.XT2DRIVE_3,
    XT2BYPASS: UCS.XT2BYPASS_OFF,
    XT2OFF: UCS.XT2OFF,
    XT1DRIVE: UCS.XT1DRIVE_3,
    XTS: UCS.XTS,
    XT1BYPASS: UCS.XT1BYPASS,
    XCAP: UCS.XCAP_3,
    SMCLKOFF: UCS.SMCLKOFF_OFF,
    XT1OFF: UCS.XT1OFF
};
config UCS.UCSCTL7 // instance
index URL

Unified Clock System Control 7 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL7 = UCS.UCSCTL7_t {
    XT2OFFG: UCS.XT2OFFG_OFF,
    XT1HFOFFG: UCS.XT1HFOFFG_OFF,
    XT1LFOFFG: UCS.XT1LFOFFG,
    DCOFFG: UCS.DCOFFG
};
config UCS.UCSCTL8 // instance
index URL

Unified Clock System Control 8 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL8 = UCS.UCSCTL8_t {
    MODOSCREQEN: UCS.MODOSCREQEN_OFF,
    SMCLKREQEN: UCS.SMCLKREQEN,
    MCLKREQEN: UCS.MCLKREQEN,
    ACLKREQEN: UCS.ACLKREQEN
};
config UCS.UCSCTL9 // instance
index URL

Unified Clock System Control 9 Register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCSCTL9 = UCS.UCSCTL9_t {
    XT2BYPASSLV: UCS.XT2BYPASSLV_OFF,
    XT1BYPASSLV: UCS.XT1BYPASSLV_OFF
};
config UCS.UCS_ACLKREQEN // instance
index URL

ACLK clock request enable. Setting this enables conditional module requests for ACLK 0 ACLK conditional requests are disabled. 1 ACLK conditional requests are enabled

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_ACLKREQEN = UCS.ACLKREQEN_t UCS.ACLKREQEN;
config UCS.UCS_ACLK_SOURCE // instance
index URL

ACLK clock source select

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_ACLK_SOURCE = UCS.UCS_CLK_SOURCE_t UCS.UCS_XT1CLK_SELECT;
config UCS.UCS_ACLK_SRC_DIVIDER // instance
index URL

ACLK clock source divider select

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_ACLK_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
config UCS.UCS_FLL_FREQ // instance
index URL

Set FLL target frequency

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_FLL_FREQ = Float 0;
config UCS.UCS_FLL_RATIO // instance
index URL

FLLN value

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_FLL_RATIO = UInt 31;
config UCS.UCS_FLL_REF_CLK_SOURCE // instance
index URL

FLL reference clock source select

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_FLL_REF_CLK_SOURCE = UCS.UCS_CLK_SOURCE_t UCS.UCS_XT1CLK_SELECT;
config UCS.UCS_FLL_REF_SRC_DIVIDER // instance
index URL

FLL reference clock source divider select

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_FLL_REF_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
config UCS.UCS_MCLKREQEN // instance
index URL

MCLK clock request enable. Setting this enables conditional module requests for MCLK 0 MCLK conditional requests are disabled. 1 MCLK conditional requests are enabled

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_MCLKREQEN = UCS.MCLKREQEN_t UCS.MCLKREQEN;
config UCS.UCS_MCLK_SOURCE // instance
index URL

MCLK clock source select

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_MCLK_SOURCE = UCS.UCS_CLK_SOURCE_t UCS.UCS_DCOCLKDIV_SELECT;
config UCS.UCS_MCLK_SRC_DIVIDER // instance
index URL

MCLK clock source divider select

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_MCLK_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
config UCS.UCS_MODOSCREQEN // instance
index URL

MODOSC clock request enable. Setting this enables conditional module requests for MODOSC. 0 MODOSC conditional requests are disabled. 1 MODOSC conditional requests are enabled

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_MODOSCREQEN = UCS.MODOSCREQEN_t UCS.MODOSCREQEN_OFF;
config UCS.UCS_PACLK_SRC_DIVIDER // instance
index URL

External pin ACLK clock source divider select

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_PACLK_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
config UCS.UCS_SMCLKOFF // instance
index URL

Turns OFF SMCLK using the SMCLKOFF bit 0 SMCLK On 1 SMCLK Off

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_SMCLKOFF = Bool false;
config UCS.UCS_SMCLKREQEN // instance
index URL

SMCLK clock request enable. Setting this enables conditional module requests for SMCLK. 0 SMCLK conditional requests are disabled. 1 SMCLK conditional requests are enabled

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_SMCLKREQEN = UCS.SMCLKREQEN_t UCS.SMCLKREQEN;
config UCS.UCS_SMCLK_SOURCE // instance
index URL

SMCLK clock source select

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_SMCLK_SOURCE = UCS.UCS_CLK_SOURCE_t UCS.UCS_DCOCLKDIV_SELECT;
config UCS.UCS_SMCLK_SRC_DIVIDER // instance
index URL

SMCLK clock source divider select

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_SMCLK_SRC_DIVIDER = UCS.UCS_CLK_SRC_DIVIDER_t UCS.UCS_CLOCK_DIVIDER_1;
config UCS.UCS_XCAP // instance
index URL

Set oscillator capacitor. Available only in LF mode. See device-specific datasheet for actual values

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_XCAP = UCS.UCS_XCAP_t UCS.UCS_XCAP_3;
config UCS.UCS_XT1BYPASS // instance
index URL

Set XT1 in bypass mode. The frequency input at XIN1 pin requires 0 to VCC

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_XT1BYPASS = Bool false;
config UCS.UCS_XT1_DRIVE // instance
index URL

Set XT1 drive strength

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_XT1_DRIVE = UCS.XT1DRIVE_t UCS.XT1DRIVE_3;
config UCS.UCS_XT2BYPASS // instance
index URL

Set XT2 in bypass mode. The frequency input at XIN2 pin requires 0 to VCC

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_XT2BYPASS = Bool false;
config UCS.UCS_XT2_DRIVE // instance
index URL

Set XT2 drive strength

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.UCS_XT2_DRIVE = UCS.XT2DRIVE_t UCS.XT2DRIVE_3;
config UCS.VLOCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new UCS.Params;
...
params.VLOCLKHz = Float 12000;
config UCS.WATCHCRYSTALCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new UCS.Params;
...
params.WATCHCRYSTALCLKHz = Float 32768;
config UCS.XT1CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new UCS.Params;
...
params.XT1CLKHz = Float 0;
config UCS.XT2CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new UCS.Params;
...
params.XT2CLKHz = Float 0;
config UCS.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config UCS.baseAddress // instance
index URL

UCS base address

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.baseAddress = String "__MSP430_BASEADDRESS_UCS__";
config UCS.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new UCS.Params;
...
const params.forceSetDefaultRegister = UCS.ForceSetDefaultRegister_t[] [
    {
        register: "UCS_SMCLKREQEN",
        regForceSet: false
    },
    {
        register: "UCS_MCLKREQEN",
        regForceSet: false
    },
    {
        register: "UCS_ACLKREQEN",
        regForceSet: false
    },
    {
        register: "UCS_MODOSCREQEN",
        regForceSet: false
    }
];
config UCS.hasAllCal // instance
index URL

Specify if device has all calibration constants

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.hasAllCal = Bool false;
DETAILS
G1 devices do not.
config UCS.hasHFXT1 // instance
index URL

Specify if HFXT1 is available on the device

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.hasHFXT1 = Bool false;
DETAILS
Not all devices have high frequency clock. This specifies if it is available for a particular device.
config UCS.hasRosc // instance
index URL

Specify if Rosc is available on the device

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.hasRosc = Bool false;
DETAILS
Not all devices have Rosc circuitry. This specifies if it is available for a particular device.
config UCS.hasVLO // instance
index URL

Specify if VLO is available on the device

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.hasVLO = Bool false;
DETAILS
Not all devices have very low frequency clock VLO. This specifies if it is available for a particular device.
config UCS.hasXT2 // instance
index URL

Specify if XT2 is available on the device

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.hasXT2 = Bool false;
DETAILS
Not all devices have XT2 clock available. This specifies if it is available for a particular device.
config UCS.maxCpuFrequency // instance
index URL

Maximum CPU frequency in Hertz

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.maxCpuFrequency = Float 0;
config UCS.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config UCS.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new UCS.Params;
...
params.owner = String undefined;
UCS.computeDCOCLKHz() // instance
index URL

Initialize to the nearest available DCO clock frequency

XDCscript usage meta-domain
inst.computeDCOCLKHz(Float DCOCLKHz) returns Void
generated on Thu, 08 Nov 2012 02:16:36 GMT


module ti.catalog.msp430.peripherals.clock.UCS

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== UCS ========
    15     *  MSP430 Unified Clock System
    16     */
    17    metaonly module UCS inherits IClock
    18    {
    19        /*! DCO4 Bit */
    20        enum DCO4_t {
    21            DCO4_OFF = 0x0000,                  /*! Disable DCO4 bit */
    22            DCO4 = 0x1000                       /*! Enable DCO4 bit */
    23        };
    24
    25        /*! DCO3 Bit */
    26        enum DCO3_t {
    27            DCO3_OFF = 0x0000,                  /*! Disable DCO3 bit */
    28            DCO3 = 0x0800                       /*! Enable DCO3 bit */
    29        };
    30
    31        /*! DCO2 Bit */
    32        enum DCO2_t {
    33            DCO2_OFF = 0x0000,                  /*! Disable DCO2 bit */
    34            DCO2 = 0x0400                       /*! Enable DCO2 bit */
    35        };
    36
    37        /*! DCO1 Bit */
    38        enum DCO1_t {
    39            DCO1_OFF = 0x0000,                  /*! Disable DCO1 bit */
    40            DCO1 = 0x0200                       /*! Enable DCO1 bit */
    41        };
    42
    43        /*! DCO0 Bit */
    44        enum DCO0_t {
    45            DCO0_OFF = 0x0000,                  /*! Disable DCO0 bit */
    46            DCO0 = 0x0100                       /*! Enable DCO0 bit */
    47        };
    48
    49        /*! MOD4 Bit */
    50        enum MOD4_t {
    51            MOD4_OFF = 0x0000,                  /*! Disable MOD4 bit */
    52            MOD4 = 0x0080                       /*! Enable MOD4 bit */
    53        };
    54
    55        /*! MOD3 Bit */
    56        enum MOD3_t {
    57            MOD3_OFF = 0x0000,                  /*! Disable MOD3 bit */
    58            MOD3 = 0x0040                       /*! Enable MOD3 bit */
    59        };
    60
    61        /*! MOD2 Bit */
    62        enum MOD2_t {
    63            MOD2_OFF = 0x0000,                  /*! Disable MOD2 bit */
    64            MOD2 = 0x0020                       /*! Enable MOD2 bit */
    65        };
    66
    67        /*! MOD1 Bit */
    68        enum MOD1_t {
    69            MOD1_OFF = 0x0000,                  /*! Disable MOD1 bit */
    70            MOD1 = 0x0010                       /*! Enable MOD1 bit */
    71        };
    72
    73        /*! MOD0 Bit */
    74        enum MOD0_t {
    75            MOD0_OFF = 0x0000,                  /*! Disable MOD0 bit */
    76            MOD0 = 0x0080                       /*! Enable MOD0 bit */
    77        };
    78
    79        /*! DCO frequency range select */
    80        enum DCORSEL_t {
    81            DCORSEL_0 = 0x0000,                 /*! DCORSEL_0 */
    82            DCORSEL_1 = 0x0010,                 /*! DCORSEL_1 */
    83            DCORSEL_2 = 0x0020,                 /*! DCORSEL_2 */
    84            DCORSEL_3 = 0x0030,                 /*! DCORSEL_3 */
    85            DCORSEL_4 = 0x0040,                 /*! DCORSEL_4 */
    86            DCORSEL_5 = 0x0050,                 /*! DCORSEL_5 */
    87            DCORSEL_6 = 0x0060,                 /*! DCORSEL_6 */
    88            DCORSEL_7 = 0x0070                  /*! DCORSEL_7 */
    89        };
    90
    91        /*! DISMOD Bit */
    92        enum DISMOD_t {
    93            DISMOD_OFF = 0x0000,                /*! Modulation enabled */
    94            DISMOD = 0x0001                     /*! Modulation disabled */
    95        };
    96
    97        /*! FLL Loop Divider */
    98        enum FLLD_t {
    99            FLLD_0 = 0x0000,                    /*! Multiply Selected Loop Freq. 1 */
   100            FLLD_1 = 0x1000,                    /*! Multiply Selected Loop Freq. 2 */
   101            FLLD_2 = 0x2000,                    /*! Multiply Selected Loop Freq. 4 */
   102            FLLD_3 = 0x3000,                    /*! Multiply Selected Loop Freq. 8 */
   103            FLLD_4 = 0x4000,                    /*! Multiply Selected Loop Freq. 16 */
   104            FLLD_5 = 0x5000,                    /*! Multiply Selected Loop Freq. 32 */
   105            FLLD_6 = 0x6000,                    /*! Multiply Selected Loop Freq. 32 */
   106            FLLD_7 = 0x7000                     /*! Multiply Selected Loop Freq. 32 */
   107        };
   108
   109        /*! FLL Multiplier Bit 0 */
   110        enum FLLN0_t {
   111            FLLN0_OFF = 0x0000,                 /*! Disable FLLN bit 0 */
   112            FLLN0 = 0x0001                      /*! Enable FLLN bit 0 */
   113        };
   114
   115        /*! FLL Multiplier Bit 1 */
   116        enum FLLN1_t {
   117            FLLN1_OFF = 0x0000,                 /*! Disable FLLN bit 1 */
   118            FLLN1 = 0x0002                      /*! Enable FLLN bit 1 */
   119        };
   120
   121        /*! FLL Multiplier Bit 2 */
   122        enum FLLN2_t {
   123            FLLN2_OFF = 0x0000,                 /*! Disable FLLN bit 2 */
   124            FLLN2 = 0x0004                      /*! Enable FLLN bit 2 */
   125        };
   126
   127        /*! FLL Multiplier Bit 3 */
   128        enum FLLN3_t {
   129            FLLN3_OFF = 0x0000,                 /*! Disable FLLN bit 3 */
   130            FLLN3 = 0x0008                      /*! Enable FLLN bit 3 */
   131        };
   132
   133        /*! FLL Multiplier Bit 4 */
   134        enum FLLN4_t {
   135            FLLN4_OFF = 0x0000,                 /*! Disable FLLN bit 4 */
   136            FLLN4 = 0x0010                      /*! Enable FLLN bit 4 */
   137        };
   138
   139        /*! FLL Multiplier Bit 5 */
   140        enum FLLN5_t {
   141            FLLN5_OFF = 0x0000,                 /*! Disable FLLN bit 5 */
   142            FLLN5 = 0x0020                      /*! Enable FLLN bit 5 */
   143        };
   144
   145        /*! FLL Multiplier Bit 6 */
   146        enum FLLN6_t {
   147            FLLN6_OFF = 0x0000,                 /*! Disable FLLN bit 6 */
   148            FLLN6 = 0x0040                      /*! Enable FLLN bit 6 */
   149        };
   150
   151        /*! FLL Multiplier Bit 7 */
   152        enum FLLN7_t {
   153            FLLN7_OFF = 0x0000,                 /*! Disable FLLN bit 7 */
   154            FLLN7 = 0x0080                      /*! Enable FLLN bit 7 */
   155        };
   156
   157        /*! FLL Multiplier Bit 8 */
   158        enum FLLN8_t {
   159            FLLN8_OFF = 0x0000,                 /*! Disable FLLN bit 8 */
   160            FLLN8 = 0x0100                      /*! Enable FLLN bit 8 */
   161        };
   162
   163        /*! FLL Multiplier Bit 9 */
   164        enum FLLN9_t {
   165            FLLN9_OFF = 0x0000,                 /*! Disable FLLN bit 9 */
   166            FLLN9 = 0x0200                      /*! Enable FLLN bit 9 */
   167        };
   168
   169        /*! FLL Reference Select */
   170        enum SELREF_t {
   171            SELREF_0 = 0x0000,                  /*! FLL Reference by XT1CLK */
   172            SELREF_1 = 0x0010,                  /*! Reserved */
   173            SELREF_2 = 0x0020,                  /*! FLL Reference by REFOCLK */
   174            SELREF_3 = 0x0030,                  /*! Reserved */
   175            SELREF_4 = 0x0040,                  /*! Reserved */
   176            SELREF_5 = 0x0050,                  /*! FLL Reference by XT2CLK */
   177            SELREF_6 = 0x0060,                  /*! Reserved */
   178            SELREF_7 = 0x0070                   /*! Reserved */
   179        };
   180
   181        /*! FLL Reference Divider */
   182        enum FLLREFDIV_t {
   183            FLLREFDIV_0 = 0x0000,               /*! f(FLLREFCLK) / 1 */
   184            FLLREFDIV_1 = 0x0001,               /*! f(FLLREFCLK) / 2 */
   185            FLLREFDIV_2 = 0x0002,               /*! f(FLLREFCLK) / 4 */
   186            FLLREFDIV_3 = 0x0003,               /*! f(FLLREFCLK) / 8 */
   187            FLLREFDIV_4 = 0x0004,               /*! f(FLLREFCLK) / 12 */
   188            FLLREFDIV_5 = 0x0005,               /*! f(FLLREFCLK) / 16 */
   189            FLLREFDIV_6 = 0x0006,               /*! Reserved */
   190            FLLREFDIV_7 = 0x0007                /*! Reserved */
   191        };
   192
   193        /*! Select the ACLK source */
   194        enum SELA_t {
   195            SELA_0 = 0x0000,                    /*! XT1CLK */
   196            SELA_1 = 0x0100,                    /*! VLOCLK */
   197            SELA_2 = 0x0200,                    /*! REFOCLK */
   198            SELA_3 = 0x0300,                    /*! DCOCLK */
   199            SELA_4 = 0x0400,                    /*! DCOCLKDIV */
   200            SELA_5 = 0x0500,                    /*! XT2CLK */
   201            SELA_6 = 0x0600,                    /*! Reserved */
   202            SELA_7 = 0x0700                     /*! Reserved */
   203        };
   204
   205        /*! Select the SMCLK source */
   206        enum SELS_t {
   207            SELS_0 = 0x0000,                    /*! XT1CLK */
   208            SELS_1 = 0x0010,                    /*! VLOCLK */
   209            SELS_2 = 0x0020,                    /*! REFOCLK */
   210            SELS_3 = 0x0030,                    /*! DCOCLK */
   211            SELS_4 = 0x0040,                    /*! DCOCLKDIV */
   212            SELS_5 = 0x0050,                    /*! XT2CLK */
   213            SELS_6 = 0x0060,                    /*! Reserved */
   214            SELS_7 = 0x0070                     /*! Reserved */
   215        };
   216
   217        /*! Select the MCLK source */
   218        enum SELM_t {
   219            SELM_0 = 0x0000,                    /*! XT1CLK */
   220            SELM_1 = 0x0001,                    /*! VLOCLK */
   221            SELM_2 = 0x0002,                    /*! REFOCLK */
   222            SELM_3 = 0x0003,                    /*! DCOCLK */
   223            SELM_4 = 0x0004,                    /*! DCOCLKDIV */
   224            SELM_5 = 0x0005,                    /*! XT2CLK */
   225            SELM_6 = 0x0006,                    /*! Reserved */
   226            SELM_7 = 0x0007                     /*! Reserved */
   227        };
   228
   229        /*! ACLK source divider available at external pin */
   230        enum DIVPA_t {
   231            DIVPA_0 = 0x0000,                   /*! Divide by 1 */
   232            DIVPA_1 = 0x1000,                   /*! Divide by 2 */
   233            DIVPA_2 = 0x2000,                   /*! Divide by 4 */
   234            DIVPA_3 = 0x3000,                   /*! Divide by 8 */
   235            DIVPA_4 = 0x4000,                   /*! Divide by 16 */
   236            DIVPA_5 = 0x5000,                   /*! Divide by 32 */
   237            DIVPA_6 = 0x6000,                   /*! Reserved */
   238            DIVPA_7 = 0x7000                    /*! Reserved */
   239        };
   240
   241        /*! ACLK source divider */
   242        enum DIVA_t {
   243            DIVA_0 = 0x0000,                    /*! Divide by 1 */
   244            DIVA_1 = 0x0100,                    /*! Divide by 2 */
   245            DIVA_2 = 0x0200,                    /*! Divide by 4 */
   246            DIVA_3 = 0x0300,                    /*! Divide by 8 */
   247            DIVA_4 = 0x0400,                    /*! Divide by 16 */
   248            DIVA_5 = 0x0500,                    /*! Divide by 32 */
   249            DIVA_6 = 0x0600,                    /*! Reserved */
   250            DIVA_7 = 0x0700                     /*! Reserved */
   251        };
   252
   253        /*! SMCLK source divider */
   254        enum DIVS_t {
   255            DIVS_0 = 0x0000,                    /*! Divide by 1 */
   256            DIVS_1 = 0x0010,                    /*! Divide by 2 */
   257            DIVS_2 = 0x0020,                    /*! Divide by 4 */
   258            DIVS_3 = 0x0030,                    /*! Divide by 8 */
   259            DIVS_4 = 0x0040,                    /*! Divide by 16 */
   260            DIVS_5 = 0x0050,                    /*! Divide by 32 */
   261            DIVS_6 = 0x0060,                    /*! Reserved */
   262            DIVS_7 = 0x0070                     /*! Reserved */
   263        };
   264
   265        /*! MCLK source divider */
   266        enum DIVM_t {
   267            DIVM_0 = 0x0000,                    /*! Divide by 1 */
   268            DIVM_1 = 0x0010,                    /*! Divide by 2 */
   269            DIVM_2 = 0x0020,                    /*! Divide by 4 */
   270            DIVM_3 = 0x0030,                    /*! Divide by 8 */
   271            DIVM_4 = 0x0040,                    /*! Divide by 16 */
   272            DIVM_5 = 0x0050,                    /*! Divide by 32 */
   273            DIVM_6 = 0x0060,                    /*! Reserved */
   274            DIVM_7 = 0x0070                     /*! Reserved */
   275        };
   276
   277        /*! XT2 oscillator current */
   278        enum XT2DRIVE_t {
   279            XT2DRIVE_0 = 0x0000,                /*! 4 MHz to 8 MHz */
   280            XT2DRIVE_1 = 0x4000,                /*! 8 MHz to 16 MHz */
   281            XT2DRIVE_2 = 0x8000,                /*! 16 MHz to 24 MHz */
   282            XT2DRIVE_3 = 0xC000                 /*! 24 MHz to 32 MHz */
   283        };
   284
   285        /*! XT2 bypass select */
   286        enum XT2BYPASS_t {
   287            XT2BYPASS_OFF = 0x0000,             /*! XT2 sourced internally */
   288            XT2BYPASS = 0x1000                  /*! XT2 sourced externally from pin */
   289        };
   290
   291        /*! Turns off the XT2 oscillator */
   292        enum XT2OFF_t {
   293            XT2OFF_OFF = 0x0000,                /*! Enable XT2 */
   294            XT2OFF = 0x0100                     /*! Disable XT2*/
   295        };
   296
   297        /*! XT1 oscillator current */
   298        enum XT1DRIVE_t {
   299            XT1DRIVE_0 = 0x0000,                /*! XT1 drive 0 */
   300            XT1DRIVE_1 = 0x0040,                /*! XT1 drive 1 */
   301            XT1DRIVE_2 = 0x0080,                /*! XT1 drive 2 */
   302            XT1DRIVE_3 = 0x00C0                 /*! XT1 drive 3 */
   303        };
   304
   305        /*! XTS mode select */
   306        enum XTS_t {
   307            XTS_OFF = 0x0000,                   /*! Low Frequency */
   308            XTS = 0x0020                        /*! High Frequency */
   309        };
   310
   311        /*! XT1 bypass select */
   312        enum XT1BYPASS_t {
   313            XT1BYPASS_OFF = 0x0000,             /*! XT1 sourced internally */
   314            XT1BYPASS = 0x0010                  /*! XT1 sourced externally from pin */
   315        };
   316
   317        /*! XT1 oscillator capacitor select */
   318        enum XCAP_t {
   319            XCAP_0 = 0x0000,                    /*! XT1 Cap 0 */
   320            XCAP_1 = 0x0004,                    /*! XT1 Cap 1 */
   321            XCAP_2 = 0x0008,                    /*! XT1 Cap 2 */
   322            XCAP_3 = 0x000C                     /*! XT1 Cap 3 */
   323        };
   324
   325        /*! SMCLK off */
   326        enum SMCLKOFF_t {
   327            SMCLKOFF_OFF = 0x0000,              /*! SMCLK on */
   328            SMCLKOFF = 0x0002                   /*! SMCLK off */
   329        };
   330
   331        /*! Turns off the XT1 oscillator */
   332        enum XT1OFF_t {
   333            XT1OFF_OFF = 0x0000,                /*! Enable XT1 */
   334            XT1OFF = 0x0001                     /*! Disable XT1 */
   335        };
   336
   337        /*! XT2 oscillator fault flag */
   338        enum XT2OFFG_t {
   339            XT2OFFG_OFF = 0x0000,               /*! No fault condition present */
   340            XT2OFFG = 0x0008                    /*! XT2 fault condition present */
   341        };
   342
   343        /*! XT1 high frequency oscillator fault flag */
   344        enum XT1HFOFFG_t {
   345            XT1HFOFFG_OFF = 0x0000,             /*! No fault condition present */
   346            XT1HFOFFG = 0x0004                  /*! XT1 HF fault condition present */
   347        };
   348
   349        /*! XT1 low frequency oscillator fault flag */
   350        enum XT1LFOFFG_t {
   351            XT1LFOFFG_OFF = 0x0000,             /*! No fault condition present */
   352            XT1LFOFFG = 0x0002                  /*! XT1 LF fault condition present */
   353        };
   354
   355        /*! DCO fault flag */
   356        enum DCOFFG_t {
   357            DCOFFG_OFF = 0x0000,                /*! No fault condition present */
   358            DCOFFG = 0x0001                     /*! DCO fault condition present */
   359        };
   360
   361        /*! MODOSC clock request enable */
   362        enum MODOSCREQEN_t {
   363            MODOSCREQEN_OFF = 0x0000,           /*! MODOSC conditional requests are disabled */
   364            MODOSCREQEN = 0x0008                /*! MODOSC conditional requests are enabled */
   365        };
   366
   367        /*! SMCLK clock request enable */
   368        enum SMCLKREQEN_t {
   369            SMCLKREQEN_OFF = 0x0000,            /*! SMCLK conditional requests are disabled */
   370            SMCLKREQEN = 0x0004                 /*! SMCLK conditional requests are enabled */
   371        };
   372
   373        /*! MCLK clock request enable */
   374        enum MCLKREQEN_t {
   375            MCLKREQEN_OFF = 0x0000,             /*! MCLK conditional requests are disabled */
   376            MCLKREQEN = 0x0002                  /*! MCLK conditional requests are enabled */
   377        };
   378
   379        /*! ACLK clock request enable */
   380        enum ACLKREQEN_t {
   381            ACLKREQEN_OFF = 0x0000,             /*! ACLK conditional requests are disabled */
   382            ACLKREQEN = 0x0001                  /*! ACLK conditional requests are enabled */
   383        };
   384
   385        /*! Selects XT2 bypass input swing level */
   386        enum XT2BYPASSLV_t {
   387            XT2BYPASSLV_OFF = 0x0000,           /*! Input range from 0 to DVCC */
   388            XT2BYPASSLV = 0x0002                /*! Input range from 0 to DVIO */
   389        };
   390
   391        /*! Selects XT1 bypass input swing level */
   392        enum XT1BYPASSLV_t {
   393            XT1BYPASSLV_OFF = 0x0000,           /*! Input range from 0 to DVCC */
   394            XT1BYPASSLV = 0x0001                /*! Input range from 0 to DVIO */
   395        };
   396
   397        /*!
   398         *  ======== UCSCTL0_t ========
   399         *  Unified Clock System Control 0 Register
   400         *
   401         *  @field(DCO) DCO tap selection.
   402         *  @field(MOD) Modulation bit counter.
   403         */
   404        struct UCSCTL0_t {
   405            DCO0_t   DCO0;                      /*! DCO tap selection bit 0 */
   406            DCO1_t   DCO1;                      /*! DCO tap selection bit 1 */
   407            DCO2_t   DCO2;                      /*! DCO tap selection bit 2 */
   408            DCO3_t   DCO3;                      /*! DCO tap selection bit 3 */
   409            DCO4_t   DCO4;                      /*! DCO tap selection bit 4 */
   410            MOD0_t   MOD0;                      /*! Modulation bit counter bit 0 */
   411            MOD1_t   MOD1;                      /*! Modulation bit counter bit 1 */
   412            MOD2_t   MOD2;                      /*! Modulation bit counter bit 2 */
   413            MOD3_t   MOD3;                      /*! Modulation bit counter bit 3 */
   414            MOD4_t   MOD4;                      /*! Modulation bit counter bit 4 */
   415        }
   416
   417        /*!
   418         *  ======== UCSCTL1_t ========
   419         *  Unified Clock System Control 1 Register
   420         *
   421         *  @field(DCORSEL) DCO frequency range select. These bits select the DCO frequency range of operation defined in the
   422         *                  device-specific datasheet.
   423         *  @field(DISMOD)  0 Modulation enabled, 1 Modulation disabled.
   424         */
   425        struct UCSCTL1_t {
   426            DCORSEL_t   DCORSEL;                /*! DCO frequency range select. These bits select the DCO frequency range of operation defined in the
   427                                                 * device-specific datasheet. */
   428            DISMOD_t    DISMOD;                 /*! Modulation. This bit enables/disables the modulation.
   429                                                 *  0  Modulation enabled
   430                                                 *  1  Modulation disabled */
   431        }
   432
   433        /*!
   434         *  ======== UCSCTL2_t ========
   435         *  Unified Clock System Control 2 Register
   436         *
   437         *  @field(FLLD) FLL loop divider. These bits divide fDCOCLK in the FLL feedback loop. This results in an additional multiplier
   438         *               for the multiplier bits.
   439         *  @field(FLLN) Multiplier bits. These bits set the multiplier value N of the DCO. N must be greater than 0. Writing zero to
   440         *               FLLN causes N to be set to 1.
   441         */
   442        struct UCSCTL2_t {
   443            FLLD_t      FLLD;                   /*! FLL loop divider. These bits divide fDCOCLK in the FLL feedback loop. This results in an additional multiplier
   444                                                 * for the multiplier bits. See also multiplier bits.
   445                                                 *  000  fDCOCLK/1
   446                                                 *  001  fDCOCLK/2
   447                                                 *  010  fDCOCLK/4
   448                                                 *  011  fDCOCLK/8
   449                                                 *  100  fDCOCLK/16
   450                                                 *  101  fDCOCLK/32
   451                                                 *  110  Reserved for future use. Defaults to fDCOCLK/32
   452                                                 *  111  Reserved for future use. Defaults to fDCOCLK/32 */
   453            FLLN0_t     FLLN0;                  /*! Multiplier bit 0 */
   454            FLLN1_t     FLLN1;                  /*! Multiplier bit 1 */
   455            FLLN2_t     FLLN2;                  /*! Multiplier bit 2 */
   456            FLLN3_t     FLLN3;                  /*! Multiplier bit 3 */
   457            FLLN4_t     FLLN4;                  /*! Multiplier bit 4 */
   458            FLLN5_t     FLLN5;                  /*! Multiplier bit 5 */
   459            FLLN6_t     FLLN6;                  /*! Multiplier bit 6 */
   460            FLLN7_t     FLLN7;                  /*! Multiplier bit 7 */
   461            FLLN8_t     FLLN8;                  /*! Multiplier bit 8 */
   462            FLLN9_t     FLLN9;                  /*! Multiplier bit 9 */
   463        }
   464
   465        /*!
   466         *  ======== UCSCTL3_t ========
   467         *  Unified Clock System Control 3 Register
   468         *
   469         *  @field(SELREF) FLL reference select. These bits select the FLL reference clock source.
   470         *  @field(FLLREFDIV) FLL reference divider. These bits define the divide factor for fFLLREFCLK. The divided frequency is used as the
   471         *                    FLL reference frequency.
   472         */
   473        struct UCSCTL3_t {
   474            SELREF_t    SELREF;                 /*! FLL reference select. These bits select the FLL reference clock source.
   475                                                 *  000  XT1CLK
   476                                                 *  001  Reserved for future use. Defaults to XT1CLK.
   477                                                 *  010  REFOCLK
   478                                                 *  011  Reserved for future use. Defaults to REFOCLK.
   479                                                 *  100  Reserved for future use. Defaults to REFOCLK.
   480                                                 *  101  XT2CLK when available, otherwise REFOCLK.
   481                                                 *  110  Reserved for future use. XT2CLK when available, otherwise REFOCLK.
   482                                                 *  111  No selection. For the 'F543x and 'F541x non-A versions only, this defaults to XT2CLK. Reserved for
   483                                                 *       future use. XT2CLK when available, otherwise REFOCLK. */
   484            FLLREFDIV_t FLLREFDIV;              /*! FLL reference divider. These bits define the divide factor for fFLLREFCLK. The divided frequency is used as the
   485                                                 *  FLL reference frequency.
   486                                                 *  000  fFLLREFCLK/1
   487                                                 *  001  fFLLREFCLK/2
   488                                                 *  010  fFLLREFCLK/4
   489                                                 *  011  fFLLREFCLK/8
   490                                                 *  100  fFLLREFCLK/12
   491                                                 *  101  fFLLREFCLK/16
   492                                                 *  110  Reserved for future use. Defaults to fFLLREFCLK/16.
   493                                                 *  111  Reserved for future use. Defaults to fFLLREFCLK/16. */
   494        }
   495
   496        /*!
   497         *  ======== UCSCTL4_t ========
   498         *  Unified Clock System Control 4 Register
   499         *
   500         *  @field(SELA) Selects the ACLK source
   501         *  @field(SELS) Selects the SMCLK source
   502         *  @field(SELM) Selects the MCLK source
   503         */
   504         struct UCSCTL4_t {
   505           SELA_t       SELA;                   /*! Selects the ACLK source
   506                                                 *  000  XT1CLK
   507                                                 *  001  VLOCLK
   508                                                 *  010  REFOCLK
   509                                                 *  011  DCOCLK
   510                                                 *  100  DCOCLKDIV
   511                                                 *  101  XT2CLK when available, otherwise DCOCLKDIV
   512                                                 *  110  Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV.
   513                                                 *  111  Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV. */
   514           SELS_t       SELS;                   /*! Selects the SMCLK source
   515                                                 *  000  XT1CLK
   516                                                 *  001  VLOCLK
   517                                                 *  010  REFOCLK
   518                                                 *  011  DCOCLK
   519                                                 *  100  DCOCLKDIV
   520                                                 *  101  XT2CLK when available, otherwise DCOCLKDIV
   521                                                 *  110  Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV.
   522                                                 *  111  Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV. */
   523           SELM_t       SELM;                   /*! Selects the MCLK source
   524                                                 *  000  XT1CLK
   525                                                 *  001  VLOCLK
   526                                                 *  010  REFOCLK
   527                                                 *  011  DCOCLK
   528                                                 *  100  DCOCLKDIV
   529                                                 *  101  XT2CLK when available, otherwise DCOCLKDIV
   530                                                 *  110  Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV.
   531                                                 *  111  Reserved for future use. Defaults to XT2CLK when available, otherwise DCOCLKDIV. */
   532        }
   533
   534        /*!
   535         *  ======== UCSCTL5_t ========
   536         *  Unified Clock System Control 5 Register
   537         *
   538         *  @field(SELA) Selects the ACLK source
   539         *  @field(SELS) Selects the SMCLK source
   540         *  @field(SELM) Selects the MCLK source
   541         */
   542        struct UCSCTL5_t {
   543            DIVPA_t     DIVPA;                  /*! ACLK source divider available at external pin. Divides the frequency of ACLK and presents it to an external pin.
   544                                                 *  000  fACLK/1
   545                                                 *  001  fACLK/2
   546                                                 *  010  fACLK/4
   547                                                 *  011  fACLK/8
   548                                                 *  100  fACLK/16
   549                                                 *  101  fACLK/32
   550                                                 *  110  Reserved for future use. Defaults to fACLK/32.
   551                                                 *  111  Reserved for future use. Defaults to fACLK/32. */
   552            DIVA_t      DIVA;                   /*! ACLK source divider. Divides the frequency of the ACLK clock source.
   553                                                 *  000  fACLK/1
   554                                                 *  001  fACLK/2
   555                                                 *  010  fACLK/4
   556                                                 *  011  fACLK/8
   557                                                 *  100  fACLK/16
   558                                                 *  101  fACLK/32
   559                                                 *  110  Reserved for future use. Defaults to fACLK/32.
   560                                                 *  111  Reserved for future use. Defaults to fACLK/32. */
   561            DIVS_t      DIVS;                   /*! SMCLK source divider
   562                                                 *  000  fSMCLK/1
   563                                                 *  001  fSMCLK/2
   564                                                 *  010  fSMCLK/4
   565                                                 *  011  fSMCLK/8
   566                                                 *  100  fSMCLK/16
   567                                                 *  101  fSMCLK/32
   568                                                 *  110  Reserved for future use. Defaults to fSMCLK/32.
   569                                                 *  111  Reserved for future use. Defaults to fSMCLK/32. */
   570            DIVM_t      DIVM;                   /*! MCLK source divider
   571                                                 *  000  fMCLK/1
   572                                                 *  001  fMCLK/2
   573                                                 *  010  fMCLK/4
   574                                                 *  011  fMCLK/8
   575                                                 *  100  fMCLK/16
   576                                                 *  101  fMCLK/32
   577                                                 *  110  Reserved for future use. Defaults to fMCLK/32.
   578                                                 *  111  Reserved for future use. Defaults to fMCLK/32.*/
   579        }
   580
   581        /*!
   582         *  ======== UCSCTL6_t ========
   583         *  Unified Clock System Control 6 Register
   584         *
   585         *  @field(SELA) Selects the ACLK source
   586         *  @field(SELS) Selects the SMCLK source
   587         *  @field(SELM) Selects the MCLK source
   588         */
   589        struct UCSCTL6_t {
   590            XT2DRIVE_t  XT2DRIVE;               /*! The XT2 oscillator current can be adjusted to its drive needs. Initially, it starts with the highest supply current
   591                                                 *  for reliable and quick startup. If needed, user software can reduce the drive strength.
   592                                                 *  00  Lowest current consumption. XT2 oscillator operating range is 4 MHz to 8 MHz.
   593                                                 *  01  Increased drive strength XT2 oscillator. XT2 oscillator operating range is 8 MHz to 16 MHz.
   594                                                 *  10  Increased drive capability XT2 oscillator. XT2 oscillator operating range is 16 MHz to 24 MHz.
   595                                                 *  11  Maximum drive capability and maximum current consumption for both XT2 oscillator. XT2 oscillator
   596                                                 *      operating range is 24 MHz to 32 MHz. */
   597            XT2BYPASS_t XT2BYPASS;              /*! XT2 bypass select
   598                                                 *  0  XT2 sourced internally
   599                                                 *  1  XT2 sourced externally from pin */
   600            XT2OFF_t    XT2OFF;                 /*! Turns off the XT2 oscillator
   601                                                 *  0  XT2 is on if XT2 is selected via the port selection and XT2 is not in bypass mode of operation.
   602                                                 *  1  XT2 is off if it is not used as a source for ACLK, MCLK, or SMCLK or is not used as a reference source
   603                                                 *     required for FLL operation. */
   604            XT1DRIVE_t  XT1DRIVE;               /*! The XT1 oscillator current can be adjusted to its drive needs. Initially, it starts with the highest supply current
   605                                                 *  for reliable and quick startup. If needed, user software can reduce the drive strength.
   606                                                 *  00  Lowest current consumption for XT1 LF mode. XT1 oscillator operating range in HF mode is 4 MHz to
   607                                                 *      8 MHz.
   608                                                 *  01  Increased drive strength for XT1 LF mode. XT1 oscillator operating range in HF mode is 8 MHz to
   609                                                 *      16 MHz.
   610                                                 *  10  Increased drive capability for XT1 LF mode. XT1 oscillator operating range in HF mode is 16 MHz to
   611                                                 *      24 MHz.
   612                                                 *  11  Maximum drive capability and maximum current consumption for XT1 LF mode. XT1 oscillator operating
   613                                                 *      range in HF mode is 24 MHz to 32 MHz. */
   614            XTS_t       XTS;                    /*! XT1 mode select
   615                                                 *  0  Low-frequency mode. XCAP bits define the capacitance at the XIN and XOUT pins.
   616                                                 *  1  High-frequency mode. XCAP bits are not used. */
   617            XT1BYPASS_t XT1BYPASS;              /*! XT1 bypass select
   618                                                 *  0  XT1 sourced internally
   619                                                 *  1  XT1 sourced externally from pin */
   620            XCAP_t      XCAP;                   /*! Oscillator capacitor selection. These bits select the capacitors applied to the LF crystal or resonator in the LF
   621                                                 * mode (XTS = 0). The effective capacitance (seen by the crystal) is Ceff (CXIN + 2 pF)/2. It is assumed that
   622                                                 * CXIN = CXOUT and that a parasitic capacitance of 2 pF is added by the package and the printed circuit board. For
   623                                                 * details about the typical internal and the effective capacitors, refer to the device-specific data sheet. */
   624            SMCLKOFF_t  SMCLKOFF;               /*! SMCLK off. This bit turns off the SMCLK.
   625                                                 *  0  SMCLK on
   626                                                 *  1  SMCLK off */
   627            XT1OFF_t    XT1OFF;                 /*! XT1 off. This bit turns off the XT1.
   628                                                 *  0  XT1 is on if XT1 is selected via the port selection and XT1 is not in bypass mode of operation.
   629                                                 *  1  XT1 is off if it is not used as a source for ACLK, MCLK, or SMCLK or is not used as a reference source
   630                                                 *     required for FLL operation. */
   631        }
   632
   633        /*!
   634         *  ======== UCSCTL7_t ========
   635         *  Unified Clock System Control 7 Register
   636         *
   637         *  @field(XT2OFFG) 0 No fault condition, 1 XT2 fault
   638         *  @field(XT1HFOFFG) 0 No fault condition, 1 XT1 HF fault
   639         *  @field(XT1LFOFFG) 0 No fault condition, 1 XT1 LF fault
   640         *  @field(DCOFFG) 0 No fault condition, 1 DCO fault
   641         */
   642        struct UCSCTL7_t {
   643            XT2OFFG_t   XT2OFFG;                /*! XT2 oscillator fault flag. If this bit is set, the OFIFG flag is also set. XT2OFFG is set if a XT2 fault
   644                                                 * condition exists. XT2OFFG can be cleared via software. If the XT2 fault condition still remains,
   645                                                 * XT2OFFG is set.
   646                                                 *  0  No fault condition occurred after the last reset.
   647                                                 *  1  XT2 fault. An XT2 fault occurred after the last reset. */
   648            XT1HFOFFG_t XT1HFOFFG;              /*! XT1 oscillator fault flag (HF mode). If this bit is set, the OFIFG flag is also set. XT1HFOFFG is set if a
   649                                                 * XT1 fault condition exists. XT1HFOFFG can be cleared via software. If the XT1 fault condition still
   650                                                 * remains, XT1HFOFFG is set.
   651                                                 *  0  No fault condition occurred after the last reset.
   652                                                 *  1  XT1 fault. An XT1 fault occurred after the last reset. */
   653            XT1LFOFFG_t XT1LFOFFG;              /*! XT1 oscillator fault flag (LF mode). If this bit is set, the OFIFG flag is also set. XT1LFOFFG is set if a
   654                                                 * XT1 fault condition exists. XT1LFOFFG can be cleared via software. If the XT1 fault condition still
   655                                                 * remains, XT1LFOFFG is set.
   656                                                 *  0  No fault condition occurred after the last reset.
   657                                                 *  1  XT1 fault (LF mode). A XT1 fault occurred after the last reset. */
   658            DCOFFG_t    DCOFFG;                 /*! DCO fault flag. If this bit is set, the OFIFG flag is also set. The DCOFFG bit is set if DCO = {0} or
   659                                                 * DCO = {31}. DCOFFG can be cleared via software. If the DCO fault condition still remains, DCOFFG is
   660                                                 * set.
   661                                                 *  0  No fault condition occurred after the last reset.
   662                                                 *  1  DCO fault. A DCO fault occurred after the last reset. */
   663        }
   664
   665        /*!
   666         *  ======== UCSCTL8_t ========
   667         *  Unified Clock System Control 8 Register
   668         *
   669         *  @field(MODOSCREQEN) 0  MODOSC conditional requests are disabled
   670         *                      1  MODOSC conditional requests are enabled
   671         *  @field(SMCLKREQEN)  0  SMCLK conditional requests are disabled
   672         *                      1  SMCLK conditional requests are enabled
   673         *  @field(MCLKREQEN)   0  MCLK conditional requests are disabled
   674         *                      1  MCLK conditional requests are enabled
   675         *  @field(ACLKREQEN)   0  ACLK conditional requests are disabled
   676         *                      1  ACLK conditional requests are enabled
   677         */
   678        struct UCSCTL8_t {
   679            MODOSCREQEN_t   MODOSCREQEN;        /*! MODOSC clock request enable. Setting this enables conditional module requests for MODOSC.
   680                                                 *  0  MODOSC conditional requests are disabled.
   681                                                 *  1  MODOSC conditional requests are enabled. */
   682            SMCLKREQEN_t    SMCLKREQEN;         /*! SMCLK clock request enable. Setting this enables conditional module requests for SMCLK.
   683                                                 *  0  SMCLK conditional requests are disabled.
   684                                                 *  1  SMCLK conditional requests are enabled. */
   685            MCLKREQEN_t     MCLKREQEN;          /*! MCLK clock request enable. Setting this enables conditional module requests for MCLK
   686                                                 *  0  MCLK conditional requests are disabled.
   687                                                 *  1  MCLK conditional requests are enabled. */
   688            ACLKREQEN_t     ACLKREQEN;          /*! ACLK clock request enable. Setting this enables conditional module requests for ACLK
   689                                                 *  0  ACLK conditional requests are disabled.
   690                                                 *  1  ACLK conditional requests are enabled. */
   691        }
   692
   693        /*!
   694         *  ======== UCSCTL9_t ========
   695         *  Unified Clock System Control 9 Register
   696         *
   697         *  @field(XT2BYPASSLV) 0  Input range from 0 to DVCC
   698         *                      1  Input range from 0 to DVIO
   699         *  @field(XT1BYPASSLV) 0  Input range from 0 to DVCC
   700         *                      1  Input range from 0 to DVIO
   701         */
   702        struct UCSCTL9_t {
   703            XT2BYPASSLV_t   XT2BYPASSLV;        /*! Selects XT2 bypass input swing level. Must be set for reduced swing operation.
   704                                                 *  0  Input range from 0 to DVCC
   705                                                 *  1  Input range from 0 to DVIO */
   706            XT1BYPASSLV_t   XT1BYPASSLV;        /*! Selects XT1 bypass input swing level. Must be set for reduced swing operation.
   707                                                 *  0  Input range from 0 to DVCC
   708                                                 *  1  Input range from 0 to DVIO */
   709        }
   710
   711    /*
   712     * Driverlib definitions
   713     */
   714        /*! Select the clock source */
   715        enum UCS_CLK_SOURCE_t {
   716            UCS_XT1CLK_SELECT = 0x0000,         /*! XT1CLK */
   717            UCS_VLOCLK_SELECT = 0x0010,         /*! VLOCLK */
   718            UCS_REFOCLK_SELECT = 0x0020,        /*! REFOCLK */
   719            UCS_DCOCLK_SELECT = 0x0030,         /*! DCOCLK */
   720            UCS_DCOCLKDIV_SELECT = 0x0040,      /*! DCOCLKDIV */
   721            UCS_XT2CLK_SELECT = 0x0050          /*! XT2CLK */
   722        };
   723
   724        /*! Select clock source divider */
   725        enum UCS_CLK_SRC_DIVIDER_t {
   726            UCS_CLOCK_DIVIDER_1 = 0x0000,       /*! Divide by 1 */
   727            UCS_CLOCK_DIVIDER_2 = 0x0010,       /*! Divide by 2 */
   728            UCS_CLOCK_DIVIDER_4 = 0x0020,       /*! Divide by 4 */
   729            UCS_CLOCK_DIVIDER_8 = 0x0030,       /*! Divide by 8 */
   730            UCS_CLOCK_DIVIDER_12 = 0x0040,      /*! Divide by 12 */
   731            UCS_CLOCK_DIVIDER_16 = 0x0050,      /*! Divide by 16 */
   732            UCS_CLOCK_DIVIDER_32 = 0x0060       /*! Divide by 32 */
   733        };
   734
   735        /*! XT1 oscillator capacitor select */
   736        enum UCS_XCAP_t {
   737            UCS_XCAP_0 = 0x0000,                /*! ~ 2 pF */
   738            UCS_XCAP_1 = 0x0004,                /*! ~ 5.5 pF */
   739            UCS_XCAP_2 = 0x0008,                /*! ~ 8.5 pF */
   740            UCS_XCAP_3 = 0x000C                 /*! ~ 12 pF */
   741        };
   742
   743    instance:
   744
   745        /*! Unified Clock System Control 0 Register */
   746        config UCSCTL0_t UCSCTL0 = {
   747            DCO0        : DCO0_OFF,
   748            DCO1        : DCO1_OFF,
   749            DCO2        : DCO2_OFF,
   750            DCO3        : DCO3_OFF,
   751            DCO4        : DCO4_OFF,
   752            MOD0        : MOD0_OFF,
   753            MOD1        : MOD1_OFF,
   754            MOD2        : MOD2_OFF,
   755            MOD3        : MOD3_OFF,
   756            MOD4        : MOD4_OFF,
   757        };
   758
   759        /*! Unified Clock System Control 1 Register */
   760        config UCSCTL1_t UCSCTL1 = {
   761            DCORSEL     : DCORSEL_2,
   762            DISMOD      : DISMOD_OFF,
   763        };
   764
   765        /*! Unified Clock System Control 2 Register */
   766        config UCSCTL2_t UCSCTL2 = {
   767            FLLD        : FLLD_1,
   768            FLLN0       : FLLN0,
   769            FLLN1       : FLLN1,
   770            FLLN2       : FLLN2,
   771            FLLN3       : FLLN3,
   772            FLLN4       : FLLN4,
   773            FLLN5       : FLLN5_OFF,
   774            FLLN6       : FLLN6_OFF,
   775            FLLN7       : FLLN7_OFF,
   776            FLLN8       : FLLN8_OFF,
   777            FLLN9       : FLLN9_OFF,
   778        };
   779
   780        /*! Unified Clock System Control 3 Register */
   781        config UCSCTL3_t UCSCTL3 = {
   782            SELREF      : SELREF_0,
   783            FLLREFDIV   : FLLREFDIV_0,
   784        };
   785
   786        /*! Unified Clock System Control 4 Register */
   787        config UCSCTL4_t UCSCTL4 = {
   788            SELA        : SELA_0,
   789            SELS        : SELS_4,
   790            SELM        : SELM_4,
   791        };
   792
   793        /*! Unified Clock System Control 5 Register */
   794        config UCSCTL5_t UCSCTL5 = {
   795            DIVPA       : DIVPA_0,
   796            DIVA        : DIVA_0,
   797            DIVS        : DIVS_0,
   798            DIVM        : DIVM_0,
   799        };
   800
   801        /*! Unified Clock System Control 6 Register */
   802        config UCSCTL6_t UCSCTL6 = {
   803            XT2DRIVE    : XT2DRIVE_3,
   804            XT2BYPASS   : XT2BYPASS_OFF,
   805            XT2OFF      : XT2OFF,
   806            XT1DRIVE    : XT1DRIVE_3,
   807            XTS         : XTS,
   808            XT1BYPASS   : XT1BYPASS,
   809            XCAP        : XCAP_3,
   810            SMCLKOFF    : SMCLKOFF_OFF,
   811            XT1OFF      : XT1OFF,
   812        };
   813
   814        /*! Unified Clock System Control 7 Register */
   815        config UCSCTL7_t UCSCTL7 = {
   816            XT2OFFG     : XT2OFFG_OFF,
   817            XT1HFOFFG   : XT1HFOFFG_OFF,
   818            XT1LFOFFG   : XT1LFOFFG,
   819            DCOFFG      : DCOFFG,
   820        };
   821
   822        /*! Unified Clock System Control 8 Register */
   823        config UCSCTL8_t UCSCTL8 = {
   824            MODOSCREQEN : MODOSCREQEN_OFF,
   825            SMCLKREQEN  : SMCLKREQEN,
   826            MCLKREQEN   : MCLKREQEN,
   827            ACLKREQEN   : ACLKREQEN,
   828        };
   829
   830        /*! Unified Clock System Control 9 Register */
   831        config UCSCTL9_t UCSCTL9 = {
   832            XT2BYPASSLV : XT2BYPASSLV_OFF,
   833            XT1BYPASSLV : XT1BYPASSLV_OFF,
   834        };
   835
   836        /*! MCLK clock source select */
   837        config UCS_CLK_SOURCE_t UCS_MCLK_SOURCE = UCS_DCOCLKDIV_SELECT;
   838
   839        /*! SMCLK clock source select */
   840        config UCS_CLK_SOURCE_t UCS_SMCLK_SOURCE = UCS_DCOCLKDIV_SELECT;
   841
   842        /*! ACLK clock source select */
   843        config UCS_CLK_SOURCE_t UCS_ACLK_SOURCE = UCS_XT1CLK_SELECT;
   844
   845        /*! FLL reference clock source select */
   846        config UCS_CLK_SOURCE_t UCS_FLL_REF_CLK_SOURCE = UCS_XT1CLK_SELECT;
   847
   848        /*! MCLK clock source divider select */
   849        config UCS_CLK_SRC_DIVIDER_t UCS_MCLK_SRC_DIVIDER = UCS_CLOCK_DIVIDER_1;
   850
   851        /*! SMCLK clock source divider select */
   852        config UCS_CLK_SRC_DIVIDER_t UCS_SMCLK_SRC_DIVIDER = UCS_CLOCK_DIVIDER_1;
   853
   854        /*! ACLK clock source divider select */
   855        config UCS_CLK_SRC_DIVIDER_t UCS_ACLK_SRC_DIVIDER = UCS_CLOCK_DIVIDER_1;
   856
   857        /*! External pin ACLK clock source divider select */
   858        config UCS_CLK_SRC_DIVIDER_t UCS_PACLK_SRC_DIVIDER = UCS_CLOCK_DIVIDER_1;
   859
   860        /*! FLL reference clock source divider select */
   861        config UCS_CLK_SRC_DIVIDER_t UCS_FLL_REF_SRC_DIVIDER = UCS_CLOCK_DIVIDER_1;
   862
   863        /*! FLLN value */
   864        config UInt UCS_FLL_RATIO = 31;
   865
   866        /*! Set FLL target frequency */
   867        config Float UCS_FLL_FREQ = 0;
   868
   869        /*! Set XT1 drive strength */
   870        config XT1DRIVE_t UCS_XT1_DRIVE = XT1DRIVE_3;
   871
   872        /*! Set XT2 drive strength */
   873        config XT2DRIVE_t UCS_XT2_DRIVE = XT2DRIVE_3;
   874
   875        /*! Set oscillator capacitor. Available only in LF mode. See device-specific datasheet for actual values. */
   876        config UCS_XCAP_t UCS_XCAP = UCS_XCAP_3;
   877
   878        /*! Set XT1 in bypass mode. The frequency input at XIN1 pin requires 0 to VCC. */
   879        config Bool UCS_XT1BYPASS = false;
   880
   881        /*! Set XT2 in bypass mode. The frequency input at XIN2 pin requires 0 to VCC. */
   882        config Bool UCS_XT2BYPASS = false;
   883
   884        /*! MODOSC clock request enable. Setting this enables conditional module requests for MODOSC.
   885         *  0  MODOSC conditional requests are disabled.
   886         *  1  MODOSC conditional requests are enabled. */
   887        config MODOSCREQEN_t UCS_MODOSCREQEN = MODOSCREQEN_OFF;
   888
   889        /*! SMCLK clock request enable. Setting this enables conditional module requests for SMCLK.
   890         *  0  SMCLK conditional requests are disabled.
   891         *  1  SMCLK conditional requests are enabled. */
   892        config SMCLKREQEN_t UCS_SMCLKREQEN = SMCLKREQEN;
   893
   894        /*! MCLK clock request enable. Setting this enables conditional module requests for MCLK
   895         *  0  MCLK conditional requests are disabled.
   896         *  1  MCLK conditional requests are enabled. */
   897        config MCLKREQEN_t UCS_MCLKREQEN = MCLKREQEN;
   898
   899        /*! ACLK clock request enable. Setting this enables conditional module requests for ACLK
   900         *  0  ACLK conditional requests are disabled.
   901         *  1  ACLK conditional requests are enabled. */
   902        config ACLKREQEN_t UCS_ACLKREQEN = ACLKREQEN;
   903
   904        /*! Turns OFF SMCLK using the SMCLKOFF bit
   905         *  0  SMCLK On
   906         *  1  SMCLK Off */
   907        config Bool UCS_SMCLKOFF = false;
   908
   909        /*!
   910         * UCS base address
   911         */
   912        config String baseAddress = "__MSP430_BASEADDRESS_UCS__";
   913
   914        config Float VLOCLKHz = 12000;
   915        config Float WATCHCRYSTALCLKHz = 32768;
   916        config Float REFOCLKHz = 32768;
   917        config Float XT1CLKHz = 0;
   918        config Float XT2CLKHz = 0;
   919
   920        /*!
   921         *  ======== DCOCLKDIVHz ========
   922         *  Divided DCO clock frequency in Hertz
   923         */
   924        readonly config Float DCOCLKDIVHz;
   925
   926        /*! Determine if each Register needs to be forced set or not */
   927        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   928        [
   929            { register : "UCS_SMCLKREQEN"  , regForceSet : false },
   930            { register : "UCS_MCLKREQEN" , regForceSet : false },
   931            { register : "UCS_ACLKREQEN" , regForceSet : false },
   932            { register : "UCS_MODOSCREQEN" , regForceSet : false }
   933        ];
   934    }


package ti.catalog.msp430.peripherals.communication
index URL

MSP430 USCI peripherals

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/package.xdc
requires ti.catalog.msp430.peripherals.clock;
package ti.catalog.msp430.peripherals.communication [1, 0, 0] {
    interface IEUSCI;
    // Enhanced Universal Serial Communication Interface
    interface IUSCI;
    // Universal Serial Communication Interface
    interface IUSCI_A0_SPI;
    // Universal Serial Communication Interface A0 SPI 2xx
    interface IUSCI_A0_UART;
    // Universal Serial Communication Interface A0 UART 2xx
    interface IUSCI_A1_SPI;
    // Universal Serial Communication Interface A1 SPI 2xx
    interface IUSCI_A1_UART;
    // Universal Serial Communication Interface A1 UART 2xx
    interface IUSCI_B0_I2C;
    // Universal Serial Communication Interface B0 I2C 2xx
    interface IUSCI_B0_SPI;
    // Universal Serial Communication Interface B0 SPI 2xx
    interface IUSCI_B1_I2C;
    // Universal Serial Communication Interface B1 I2C 2xx
    interface IUSCI_B1_SPI;
    // Universal Serial Communication Interface B1 SPI 2xx
    interface IUSCI_I2C;
    // Universal Serial Communication Interface
    interface IUSCI_SPI;
    // Universal Serial Communication Interface
    interface IUSCI_UART;
    // Universal Serial Communication Interface
    interface IUSI;
    // Universal Serial Interface
    module EUSCI_A0;
    // Enhanced Univerisal Serial Communication Interface A0
    module EUSCI_A1;
    // Enhanced Univerisal Serial Communication Interface A1
    module EUSCI_B0;
    // Enhanced Univerisal Serial Communication Interface B0
    module USCI_A0_SPI_2xx;
    // Universal Serial Communication Interface A0 SPI 2xx
    module USCI_A0_UART_2xx;
    // Universal Serial Communication Interface A0 UART 2xx
    module USCI_A1_SPI_2xx;
    // Universal Serial Communication Interface A1 SPI 2xx
    module USCI_A1_UART_2xx;
    // Universal Serial Communication Interface
    module USCI_B0_I2C_2xx;
    // Universal Serial Communication Interface B0 I2C 2xx
    module USCI_B0_SPI_2xx;
    // Universal Serial Communication Interface B0 SPI 2xx
    module USCI_B1_I2C_2xx;
    // Universal Serial Communication Interface B1 I2C 2xx
    module USCI_B1_SPI_2xx;
    // Universal Serial Communication Interface B1 SPI 2xx
    module USI;
    // Universal Serial Interface
}
generated on Thu, 08 Nov 2012 02:16:46 GMT


package ti.catalog.msp430.peripherals.communication

     1    requires ti.catalog.msp430.peripherals.clock;
     2
     3    /*!
     4     *  ======== ti.catalog.msp430.peripherals.communication ========
     5     *  MSP430 USCI peripherals
     6     */
     7    package ti.catalog.msp430.peripherals.communication [1, 0, 0]
     8    {
     9        interface IUSI;
    10        interface IUSCI , IUSCI_I2C , IUSCI_SPI , IUSCI_UART;
    11        interface IUSCI_A0_UART , IUSCI_A0_SPI , IUSCI_A1_UART;
    12        interface IUSCI_B0_SPI , IUSCI_B0_I2C;
    13        interface IEUSCI;
    14        module USCI_A0_UART_2xx;
    15        module USCI_A0_SPI_2xx;
    16        module USCI_B0_SPI_2xx;
    17        module USCI_B0_I2C_2xx;
    18        module USCI_A1_UART_2xx;
    19        module USCI_A1_SPI_2xx;
    20        module USCI_B1_SPI_2xx;
    21        module USCI_B1_I2C_2xx;
    22        module USI;
    23        module EUSCI_A0;
    24        module EUSCI_A1;
    25        module EUSCI_B0;
    26    }


module ti.catalog.msp430.peripherals.communication.EUSCI_A0

metaonly module ti.catalog.msp430.peripherals.communication.EUSCI_A0
index URL

Enhanced Univerisal Serial Communication Interface A0

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/EUSCI_A0.xdc
var EUSCI_A0 = xdc.useModule('ti.catalog.msp430.peripherals.communication.EUSCI_A0');
module-wide constants & types
    var obj = new EUSCI_A0.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new EUSCI_A0.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     EUSCI_A0.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     EUSCI_A0.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new EUSCI_A0.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = EUSCI_A0.ForceSetDefaultRegister_t[] [ ];
        params.interruptSource// USI interrupt enables = EUSCI_A0.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = EUSCI_A0.create// Create an instance-object(IClock.Instance clock, params);
struct EUSCI_A0.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new EUSCI_A0.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct EUSCI_A0.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new EUSCI_A0.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
EUSCI_A0.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
EUSCI_A0.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
EUSCI_A0.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
EUSCI_A0.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new EUSCI_A0.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = EUSCI_A0.ForceSetDefaultRegister_t[] [ ];
    // Determine if each Register needs to be forced set or not
    params.interruptSource = EUSCI_A0.regIntVect_t[2] undefined;
    // USI interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config EUSCI_A0.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new EUSCI_A0.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config EUSCI_A0.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new EUSCI_A0.Params;
...
const params.forceSetDefaultRegister = EUSCI_A0.ForceSetDefaultRegister_t[] [ ];
config EUSCI_A0.interruptSource // instance
index URL

USI interrupt enables

XDCscript usage meta-domain
var params = new EUSCI_A0.Params;
...
params.interruptSource = EUSCI_A0.regIntVect_t[2] undefined;
config EUSCI_A0.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new EUSCI_A0.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config EUSCI_A0.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new EUSCI_A0.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new EUSCI_A0.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = EUSCI_A0.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:44 GMT


module ti.catalog.msp430.peripherals.communication.EUSCI_A0

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Enhanced Univerisal Serial Communication Interface A0
    16     */
    17    metaonly module EUSCI_A0 inherits IEUSCI {
    18
    19        /*
    20         *  ======== create ========
    21         */
    22        create(IClock.Instance clock);
    23
    24    instance:
    25        /*! @_nodoc */
    26        config IClock.Instance clock;
    27
    28        /*!
    29         *  ======== baseAddr ========
    30         *  Address of the peripheral's control register.
    31         *
    32         *  A peripheral's registers are commonly accessed through a structure
    33         *  that defines the offsets of a particular register from the lowest
    34         *  address mapped to a peripheral. That lowest address is specified by
    35         *  this parameter.
    36         */
    37        config UInt baseAddr;
    38
    39        /*! USI interrupt enables */
    40        config regIntVect_t interruptSource[2];
    41
    42        /*! Determine if each Register needs to be forced set or not */
    43        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    44        [
    45        ];
    46    }


module ti.catalog.msp430.peripherals.communication.EUSCI_A1

metaonly module ti.catalog.msp430.peripherals.communication.EUSCI_A1
index URL

Enhanced Univerisal Serial Communication Interface A1

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/EUSCI_A1.xdc
var EUSCI_A1 = xdc.useModule('ti.catalog.msp430.peripherals.communication.EUSCI_A1');
module-wide constants & types
    var obj = new EUSCI_A1.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new EUSCI_A1.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     EUSCI_A1.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     EUSCI_A1.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new EUSCI_A1.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = EUSCI_A1.ForceSetDefaultRegister_t[] [ ];
        params.interruptSource// USI interrupt enables = EUSCI_A1.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = EUSCI_A1.create// Create an instance-object(IClock.Instance clock, params);
struct EUSCI_A1.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new EUSCI_A1.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct EUSCI_A1.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new EUSCI_A1.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
EUSCI_A1.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
EUSCI_A1.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
EUSCI_A1.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
EUSCI_A1.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new EUSCI_A1.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = EUSCI_A1.ForceSetDefaultRegister_t[] [ ];
    // Determine if each Register needs to be forced set or not
    params.interruptSource = EUSCI_A1.regIntVect_t[2] undefined;
    // USI interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config EUSCI_A1.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new EUSCI_A1.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config EUSCI_A1.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new EUSCI_A1.Params;
...
const params.forceSetDefaultRegister = EUSCI_A1.ForceSetDefaultRegister_t[] [ ];
config EUSCI_A1.interruptSource // instance
index URL

USI interrupt enables

XDCscript usage meta-domain
var params = new EUSCI_A1.Params;
...
params.interruptSource = EUSCI_A1.regIntVect_t[2] undefined;
config EUSCI_A1.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new EUSCI_A1.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config EUSCI_A1.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new EUSCI_A1.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new EUSCI_A1.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = EUSCI_A1.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:44 GMT


module ti.catalog.msp430.peripherals.communication.EUSCI_A1

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Enhanced Univerisal Serial Communication Interface A1
    16     */
    17    metaonly module EUSCI_A1 inherits IEUSCI {
    18
    19        /*
    20         *  ======== create ========
    21         */
    22        create(IClock.Instance clock);
    23
    24    instance:
    25        /*! @_nodoc */
    26        config IClock.Instance clock;
    27
    28        /*!
    29         *  ======== baseAddr ========
    30         *  Address of the peripheral's control register.
    31         *
    32         *  A peripheral's registers are commonly accessed through a structure
    33         *  that defines the offsets of a particular register from the lowest
    34         *  address mapped to a peripheral. That lowest address is specified by
    35         *  this parameter.
    36         */
    37        config UInt baseAddr;
    38
    39        /*! USI interrupt enables */
    40        config regIntVect_t interruptSource[2];
    41
    42        /*! Determine if each Register needs to be forced set or not */
    43        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    44        [
    45        ];
    46    }


module ti.catalog.msp430.peripherals.communication.EUSCI_B0

metaonly module ti.catalog.msp430.peripherals.communication.EUSCI_B0
index URL

Enhanced Univerisal Serial Communication Interface B0

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/EUSCI_B0.xdc
var EUSCI_B0 = xdc.useModule('ti.catalog.msp430.peripherals.communication.EUSCI_B0');
module-wide constants & types
    var obj = new EUSCI_B0.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new EUSCI_B0.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     EUSCI_B0.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     EUSCI_B0.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new EUSCI_B0.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = EUSCI_B0.ForceSetDefaultRegister_t[] [ ];
        params.interruptSource// USI interrupt enables = EUSCI_B0.regIntVect_t[13] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = EUSCI_B0.create// Create an instance-object(IClock.Instance clock, params);
struct EUSCI_B0.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new EUSCI_B0.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct EUSCI_B0.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new EUSCI_B0.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
EUSCI_B0.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
EUSCI_B0.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
EUSCI_B0.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
EUSCI_B0.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new EUSCI_B0.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = EUSCI_B0.ForceSetDefaultRegister_t[] [ ];
    // Determine if each Register needs to be forced set or not
    params.interruptSource = EUSCI_B0.regIntVect_t[13] undefined;
    // USI interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config EUSCI_B0.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new EUSCI_B0.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config EUSCI_B0.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new EUSCI_B0.Params;
...
const params.forceSetDefaultRegister = EUSCI_B0.ForceSetDefaultRegister_t[] [ ];
config EUSCI_B0.interruptSource // instance
index URL

USI interrupt enables

XDCscript usage meta-domain
var params = new EUSCI_B0.Params;
...
params.interruptSource = EUSCI_B0.regIntVect_t[13] undefined;
config EUSCI_B0.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new EUSCI_B0.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config EUSCI_B0.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new EUSCI_B0.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new EUSCI_B0.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = EUSCI_B0.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:44 GMT


module ti.catalog.msp430.peripherals.communication.EUSCI_B0

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Enhanced Univerisal Serial Communication Interface B0
    16     */
    17    metaonly module EUSCI_B0 inherits IEUSCI {
    18
    19        /*
    20         *  ======== create ========
    21         */
    22        create(IClock.Instance clock);
    23
    24    instance:
    25        /*! @_nodoc */
    26        config IClock.Instance clock;
    27
    28        /*!
    29         *  ======== baseAddr ========
    30         *  Address of the peripheral's control register.
    31         *
    32         *  A peripheral's registers are commonly accessed through a structure
    33         *  that defines the offsets of a particular register from the lowest
    34         *  address mapped to a peripheral. That lowest address is specified by
    35         *  this parameter.
    36         */
    37        config UInt baseAddr;
    38
    39        /*! USI interrupt enables */
    40        config regIntVect_t interruptSource[13];
    41
    42        /*! Determine if each Register needs to be forced set or not */
    43        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    44        [
    45        ];
    46    }


interface ti.catalog.msp430.peripherals.communication.IEUSCI

metaonly interface ti.catalog.msp430.peripherals.communication.IEUSCI
index URL

Enhanced Universal Serial Communication Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
metaonly interface IEUSCI { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IEUSCI inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
typedef IEUSCI.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IEUSCI.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
typedef String StringArray[];
struct IEUSCI.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IEUSCI.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IEUSCI.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IEUSCI.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IEUSCI.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IEUSCI.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IEUSCI.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:16:41 GMT


interface ti.catalog.msp430.peripherals.communication.IEUSCI

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IEUSCI ========
    14     *  Enhanced Universal Serial Communication Interface
    15     */
    16    metaonly interface IEUSCI inherits xdc.platform.IPeripheral {
    17
    18        /*!
    19        *  ======== regIntVect_t ========
    20        *  Interrupt vector description
    21        *
    22        *  Type to describe a single interrupt vector pin and all its possible
    23        *  configurations.
    24        *
    25        *  @see #regIntVect_t
    26        */
    27        struct regIntVect_t {
    28            String                    registerName;
    29            String                    registerDescription;
    30            String                    isrToggleString;
    31            String                    priorityName;
    32            Bool                      interruptEnable;
    33            Bool                      interruptHandler;
    34            Int                       priority;
    35        }
    36
    37        /*!
    38        *  ======== ForceSetDefaultRegister_t ========
    39        *  Force Set Default Register
    40        *
    41        *  Type to store if each register needs to be forced initialized
    42        *  even if the register is in default state.
    43        *
    44        *  @see #ForceSetDefaultRegister_t
    45        */
    46        struct ForceSetDefaultRegister_t {
    47            String     register;
    48            Bool       regForceSet;
    49        }
    50
    51    instance:
    52
    53    }


interface ti.catalog.msp430.peripherals.communication.IUSCI

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI
index URL

Universal Serial Communication Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
metaonly interface IUSCI { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI inherits IPeripheral {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
typedef IUSCI.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
typedef String StringArray[];
struct IUSCI.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
config Float UCLKHz = 1000000;
config IUSCI.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
config String owner;
IUSCI.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:41 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IUSCI ========
    14     *  Universal Serial Communication Interface
    15     */
    16    metaonly interface IUSCI inherits xdc.platform.IPeripheral {
    17        /*****************************************************************
    18         * REGISTER BIT DEFINITIONS                                      *
    19         *****************************************************************/
    20
    21        /*! MSB first select. Controls the direction of the receive and transmit shift register. */
    22        enum UCMSB_t {
    23            UCMSB_OFF = 0x00,       /*! LSB first */
    24            UCMSB = 0x02            /*! MSB first */
    25        };
    26
    27        /*! Character length. Selects 7-bit or 8-bit character length. */
    28        enum UC7BIT_t {
    29            UC7BIT_OFF = 0x00,      /*! 8-bit */
    30            UC7BIT = 0x02           /*! 7-bit */
    31        };
    32
    33        /*! Synchronous mode enable */
    34        enum UCSYNC_t {
    35            UCSYNC_OFF = 0x00,      /*! Asynchronous mode */
    36            UCSYNC = 0x02           /*! Synchronous Mode */
    37        };
    38
    39        /*! Receive erroneous-character interrupt-enable */
    40        enum UCRXEIE_t {
    41            UCRXEIE_OFF = 0x00,     /*! Erroneous characters rejected and UCAxRXIFG is not set */
    42            UCRXEIE = 0x02          /*! Erroneous characters received will set UCAxRXIFG */
    43        };
    44
    45        /*! Receive break character interrupt-enable */
    46        enum UCBRKIE_t {
    47            UCBRKIE_OFF = 0x00,     /*! Received break characters do not set UCAxRXIFG. */
    48            UCBRKIE = 0x02          /*! Received break characters set UCAxRXIFG. */
    49        };
    50
    51        /*! Dormant. Puts USCI into sleep mode. */
    52        enum UCDORM_t {
    53            UCDORM_OFF = 0x00,      /*! Not dormant. All received characters will set UCAxRXIFG. */
    54            UCDORM = 0x02           /*! Dormant. Only characters that are preceded by an idle-line or with
    55                                     * address bit set will set UCAxRXIFG. In UART mode with automatic baud
    56                                     * rate detection only the combination of a break and synch field will set
    57                                     * UCAxRXIFG. */
    58        };
    59
    60        /*! Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. */
    61        enum UCTXADDR_t {
    62            UCTXADDR_OFF = 0x00,    /*! Next frame transmitted is data */
    63            UCTXADDR = 0x02         /*! Next frame transmitted is an address */
    64        };
    65
    66        /*! Transmit break. Transmits a break with the next write to the transmit buffer.
    67         * In UART mode with automatic baud rate detection 055h must be written
    68         * into UCAxTXBUF to generate the required break/synch fields. Otherwise
    69         * 0h must be written into the transmit buffer. */
    70        enum UCTXBRK_t {
    71            UCTXBRK_OFF = 0x00,     /*! Next frame transmitted is not a break */
    72            UCTXBRK = 0x02          /*! Next frame transmitted is a break or a break/synch */
    73        };
    74
    75        /*! Software reset enable */
    76        enum UCSWRST_t {
    77            UCSWRST_OFF = 0x00,     /*! Disabled. USCI reset released for operation. */
    78            UCSWRST = 0x02          /*! Enabled. USCI logic held in reset state. */
    79        };
    80
    81        /*! Listen enable. The UCLISTEN bit selects loopback mode. */
    82        enum UCLISTEN_t {
    83            UCLISTEN_OFF = 0x00,   /*! Disabled. */
    84            UCLISTEN = 0x02        /*! Enabled. UCAxTXD is internally fed back to the receiver. */
    85        };
    86
    87        /*! Framing error flag */
    88        enum UCFE_t {
    89            UCFE_OFF = 0x00,        /*! 0 No error */
    90            UCFE = 0x02             /*! Character received with low stop bit */
    91        };
    92
    93        /*! Overrun error flag. */
    94        enum UCOE_t {
    95            UCOE_OFF = 0x00,        /*! No error. */
    96            UCOE = 0x02             /*! Overrun error occurred. */
    97        };
    98
    99        /*! Parity error flag. When UCPEN = 0, UCPE is read as 0. */
   100        enum UCPE_t {
   101            UCPE_OFF = 0x00,        /*! No error. */
   102            UCPE = 0x02             /*! Character received with parity error. */
   103        };
   104
   105        /*! Break detect flag */
   106        enum UCBRK_t {
   107            UCBRK_OFF = 0x00,       /*! No break condition */
   108            UCBRK = 0x02            /*! Break condition occurred */
   109        };
   110
   111        /*!  Bit 2 Receive error flag. This bit indicates a character was received with error(s).
   112         * When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also
   113         * set. UCRXERR is cleared when UCAxRXBUF is read. */
   114        enum UCRXERR_t {
   115            UCRXERR_OFF = 0x00,     /*! No receive errors detected */
   116            UCRXERR = 0x02          /*! Receive error detected */
   117        };
   118
   119        /*! Address received in address-bit multiprocessor mode. */
   120        enum UCADDR_t {
   121            UCADDR_OFF = 0x00,      /*! Received character is data */
   122            UCADDR = 0x02           /*! Received character is an address */
   123        };
   124
   125        /*!  Idle line detected in idle-line multiprocessor mode. */
   126        enum UCIDLE_t {
   127            UCIDLE_OFF = 0x00,      /*! No idle line detected */
   128            UCIDLE = 0x02           /*! Idle line detected */
   129        };
   130
   131        /*! USCI busy. This bit indicates if a transmit or receive operation is in progress. */
   132        enum UCBUSY_t {
   133            UCBUSY_OFF = 0x00,      /*! USCI inactive */
   134            UCBUSY = 0x01           /*! USCI transmitting or receiving */
   135        };
   136
   137        /*! USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. */
   138        enum UCMODE_SYNC_t {
   139            UCMODE_0 = 0x00,        /*! 3-Pin SPI */
   140            UCMODE_1 = 0x01,        /*! 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 */
   141            UCMODE_2 = 0x02,        /*! 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 */
   142            UCMODE_3 = 0x04         /*! I2C Mode */
   143        };
   144
   145        /*!
   146        *  ======== regIntVect_t ========
   147        *  Interrupt vector description
   148        *
   149        *  Type to describe a single interrupt vector pin and all its possible
   150        *  configurations.
   151        *
   152        *  @see #regIntVect_t
   153        */
   154        struct regIntVect_t {
   155            String                    registerName;
   156            String                    registerDescription;
   157            String                    isrToggleString;
   158            String                    priorityName;
   159            Bool                      interruptEnable;
   160            Bool                      interruptHandler;
   161            Int                       priority;
   162        }
   163
   164        /*!
   165        *  ======== ForceSetDefaultRegister_t ========
   166        *  Force Set Default Register
   167        *
   168        *  Type to store if each register needs to be forced initialized
   169        *  even if the register is in default state.
   170        *
   171        *  @see #ForceSetDefaultRegister_t
   172        */
   173        struct ForceSetDefaultRegister_t {
   174            String     register;
   175            Bool       regForceSet;
   176        }
   177
   178    instance:
   179        /*!
   180         * Stores the UCLK external clock frequency in float
   181         */
   182        config float UCLKHz = 1000000;
   183
   184        /*!
   185        *  ======== setUCxxBR0 ========
   186        *  Sets UCxxBR0 register value based on which module
   187        *
   188        *  @see #setUCxxBR0
   189        */
   190        void setUCxxBR0(Bits8 value);
   191
   192        /*!
   193        *  ======== getUCxxBR0 ========
   194        *  Returns UCxxBR0 register value based on which module
   195        *
   196        *  @see #getUCxxBR0
   197        */
   198        Bits8 getUCxxBR0();
   199
   200        /*!
   201        *  ======== setUCxxBR1 ========
   202        *  Sets UCxxBR1 register value based on which module
   203        *
   204        *  @see #setUCxxBR1
   205        */
   206        void setUCxxBR1(Bits8 value);
   207
   208        /*!
   209        *  ======== getUCxxBR1 ========
   210        *  Returns UCxxBR1 register value based on which module
   211        *
   212        *  @see #getUCxxBR1
   213        */
   214        Bits8 getUCxxBR1();
   215
   216        /*!
   217         *  ======== getUCxxTXIE ========
   218         *  Gets UCxxTXIE bit
   219         *
   220         *  @see #getUCxxTXIE
   221         */
   222        Bool    getUCxxTXIE();
   223
   224        /*!
   225         *  ======== setUCxxTXIE ========
   226         *  Sets UCxxTXIE bit
   227         *
   228         *  @see #setUCxxTXIE
   229         */
   230        Bool    setUCxxTXIE(Bool set);
   231
   232        /*!
   233         *  ======== getUCxxRXIE ========
   234         *  Gets UCxxRXIE bit
   235         *
   236         *  @see #getUCxxRXIE
   237         */
   238        Bool    getUCxxRXIE();
   239
   240        /*!
   241         *  ======== setUCxxRXIE ========
   242         *  Sets UCxxRXIE bit
   243         *
   244         *  @see #setUCxxRXIE
   245         */
   246        Bool    setUCxxRXIE(Bool set);
   247    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_A0_SPI

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_A0_SPI
index URL

Universal Serial Communication Interface A0 SPI 2xx

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
metaonly interface IUSCI_A0_SPI { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI_SPI
    // inherits ti.catalog.msp430.peripherals.communication.IUSCI
        // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_A0_SPI inherits IUSCI_SPI {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCCKPH_t// Clock phase select {
         UCCKPH_OFF// Data is changed on the first UCLK edge and captured on the following edge,
         UCCKPH// Data is captured on the first UCLK edge and changed on the following edge
    };
    enum UCCKPL_t// Clock polarity select {
         UCCKPL_OFF// Inactive state is low,
         UCCKPL// Inactive state is high
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCMST_t// Master mode select {
         UCMST_OFF// Slave mode,
         UCMST// Master mode
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSSEL_SPI_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// NA,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_SPI.UCCKPH_t UCCKPH// Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge;
         IUSCI_SPI.UCCKPL_t UCCKPL// Clock polarity select 0 The inactive state is low 1 The inactive state is high;
         IUSCI_SPI.UCMSB_t UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first;
         IUSCI_SPI.UC7BIT_t UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data;
         IUSCI_SPI.UCMST_t UCMST// Master mode select 0 Slave mode 1 Master mode;
         IUSCI_SPI.UCMODE_SYNC_t UCMODE// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode;
         IUSCI_SPI.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_SPI.UCSSEL_SPI_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_SPI.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_SPI.UCLISTEN_t UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver;
         IUSCI_SPI.UCFE_t UCFE// Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred;
         IUSCI_SPI.UCOE_t UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred;
         IUSCI_SPI.UCBUSY_t UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Bits8 UCA0BR0// Bit Rate Control Register 0 = 0;
    config Bits8 UCA0BR1// Bit Rate Control Register 1 = 0;
    config IUSCI_A0_SPI.UCxCTL0_t UCA0CTL0// Control Register 0 = {
        UCCKPH: IUSCI_SPI.UCCKPH_OFF,
        UCCKPL: IUSCI_SPI.UCCKPL_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCMST: IUSCI_SPI.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    config IUSCI_A0_SPI.UCxCTL1_t UCA0CTL1// Control Register 1 = {
        UCSSEL: IUSCI_SPI.UCSSEL_0,
        UCSWRST: IUSCI.UCSWRST
    };
    config Bits8 UCA0RXBUF// Receive Buffer Register = 0;
    config IUSCI_A0_SPI.UCxSTAT_t UCA0STAT// Status Register = {
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    config Bits8 UCA0TXBUF// Transmit Buffer Register = 0;
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_A0_SPI.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_A0_SPI.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_A0_SPI.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_A0_SPI.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_A0_SPI.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_A0_SPI.UCCKPH_t
index URL

Clock phase select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCCKPH_t {
    UCCKPH_OFF,
    // Data is changed on the first UCLK edge and captured on the following edge
    UCCKPH
    // Data is captured on the first UCLK edge and changed on the following edge
};
enum IUSCI_A0_SPI.UCCKPL_t
index URL

Clock polarity select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCCKPL_t {
    UCCKPL_OFF,
    // Inactive state is low
    UCCKPL
    // Inactive state is high
};
enum IUSCI_A0_SPI.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_A0_SPI.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_A0_SPI.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_A0_SPI.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_A0_SPI.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_A0_SPI.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_A0_SPI.UCMST_t
index URL

Master mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCMST_t {
    UCMST_OFF,
    // Slave mode
    UCMST
    // Master mode
};
enum IUSCI_A0_SPI.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_A0_SPI.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_A0_SPI.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_A0_SPI.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_A0_SPI.UCSSEL_SPI_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCSSEL_SPI_t {
    UCSSEL_0,
    // NA
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_A0_SPI.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_A0_SPI.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_A0_SPI.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_A0_SPI.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
typedef IUSCI_A0_SPI.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_A0_SPI.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
typedef String StringArray[];
struct IUSCI_A0_SPI.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_A0_SPI.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
metaonly struct UCxCTL0_t {
     IUSCI_SPI.UCCKPH_t UCCKPH;
    // Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge
     IUSCI_SPI.UCCKPL_t UCCKPL;
    // Clock polarity select 0 The inactive state is low 1 The inactive state is high
     IUSCI_SPI.UCMSB_t UCMSB;
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
     IUSCI_SPI.UC7BIT_t UC7BIT;
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
     IUSCI_SPI.UCMST_t UCMST;
    // Master mode select 0 Slave mode 1 Master mode
     IUSCI_SPI.UCMODE_SYNC_t UCMODE;
    // USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode
     IUSCI_SPI.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
};
struct IUSCI_A0_SPI.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
metaonly struct UCxCTL1_t {
     IUSCI_SPI.UCSSEL_SPI_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_SPI.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_A0_SPI.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
metaonly struct UCxSTAT_t {
     IUSCI_SPI.UCLISTEN_t UCLISTEN;
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
     IUSCI_SPI.UCFE_t UCFE;
    // Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred
     IUSCI_SPI.UCOE_t UCOE;
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
     IUSCI_SPI.UCBUSY_t UCBUSY;
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
};
struct IUSCI_A0_SPI.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_A0_SPI.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_A0_SPI.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_A0_SPI.UCA0BR0 // instance
index URL

Bit Rate Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config Bits8 UCA0BR0 = 0;
config IUSCI_A0_SPI.UCA0BR1 // instance
index URL

Bit Rate Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config Bits8 UCA0BR1 = 0;
config IUSCI_A0_SPI.UCA0CTL0 // instance
index URL

Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config IUSCI_A0_SPI.UCxCTL0_t UCA0CTL0 = {
    UCCKPH: IUSCI_SPI.UCCKPH_OFF,
    UCCKPL: IUSCI_SPI.UCCKPL_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCMST: IUSCI_SPI.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config IUSCI_A0_SPI.UCA0CTL1 // instance
index URL

Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config IUSCI_A0_SPI.UCxCTL1_t UCA0CTL1 = {
    UCSSEL: IUSCI_SPI.UCSSEL_0,
    UCSWRST: IUSCI.UCSWRST
};
config IUSCI_A0_SPI.UCA0RXBUF // instance
index URL

Receive Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config Bits8 UCA0RXBUF = 0;
config IUSCI_A0_SPI.UCA0STAT // instance
index URL

Status Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config IUSCI_A0_SPI.UCxSTAT_t UCA0STAT = {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config IUSCI_A0_SPI.UCA0TXBUF // instance
index URL

Transmit Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config Bits8 UCA0TXBUF = 0;
config IUSCI_A0_SPI.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config Float UCLKHz = 1000000;
config IUSCI_A0_SPI.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_A0_SPI.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
config String owner;
IUSCI_A0_SPI.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_A0_SPI.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_A0_SPI.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_A0_SPI.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_A0_SPI.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_A0_SPI.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_A0_SPI.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_A0_SPI.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:41 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_A0_SPI

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface A0 SPI 2xx
    14     */
    15    metaonly interface IUSCI_A0_SPI inherits IUSCI_SPI {
    16
    17    instance:
    18        /*! Control Register 0 */
    19        config UCxCTL0_t UCA0CTL0 = {
    20            UCCKPH      : UCCKPH_OFF,
    21            UCCKPL      : UCCKPL_OFF,
    22            UCMSB       : UCMSB_OFF,
    23            UC7BIT      : UC7BIT_OFF,
    24            UCMST       : UCMST_OFF,
    25            UCMODE      : UCMODE_0,
    26            UCSYNC      : UCSYNC,
    27        };
    28
    29        /*! Control Register 1 */
    30        config UCxCTL1_t UCA0CTL1 = {
    31            UCSSEL      : UCSSEL_0,
    32            UCSWRST     : UCSWRST,
    33        };
    34
    35        /*! Status Register */
    36        config UCxSTAT_t UCA0STAT = {
    37            UCLISTEN    : UCLISTEN_OFF,
    38            UCFE        : UCFE_OFF,
    39            UCOE        : UCOE_OFF,
    40            UCBUSY      : UCBUSY,
    41        };
    42
    43        /*! Bit Rate Control Register 0 */
    44        config Bits8 UCA0BR0 = 0;
    45
    46        /*! Bit Rate Control Register 1 */
    47        config Bits8 UCA0BR1 = 0;
    48
    49        /*! Receive Buffer Register */
    50        config Bits8 UCA0RXBUF = 0;
    51
    52        /*! Transmit Buffer Register */
    53        config Bits8 UCA0TXBUF = 0;
    54    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_A0_UART

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_A0_UART
index URL

Universal Serial Communication Interface A0 UART 2xx

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly interface IUSCI_A0_UART { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI_UART
    // inherits ti.catalog.msp430.peripherals.communication.IUSCI
        // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_A0_UART inherits IUSCI_UART {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCABDEN_t// Automatic baud rate detect enable {
         UCABDEN_OFF// Baud rate detection disabled. Length of break and synch field is not measured,
         UCABDEN// Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCBRF_t// First modulation stage select {
         UCBRF_0// First stage 0,
         UCBRF_1// First stage 1,
         UCBRF_2// First stage 2,
         UCBRF_3// First stage 3,
         UCBRF_4// First stage 4,
         UCBRF_5// First stage 5,
         UCBRF_6// First stage 6,
         UCBRF_7// First stage 7,
         UCBRF_8// First stage 8,
         UCBRF_9// First stage 9,
         UCBRF_10// First stage 10,
         UCBRF_11// First stage 11,
         UCBRF_12// First stage 12,
         UCBRF_13// First stage 13,
         UCBRF_14// First stage 14,
         UCBRF_15// First stage 15
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBRS_t// Second modulation stage select {
         UCBRS_0// Second stage 0,
         UCBRS_1// Second stage 1,
         UCBRS_2// Second stage 2,
         UCBRS_3// Second stage 3,
         UCBRS_4// Second stage 4,
         UCBRS_5// Second stage 5,
         UCBRS_6// Second stage 6,
         UCBRS_7// Second stage 7
    };
    enum UCBTOE_t// Break time out error {
         UCBTOE_OFF// No error,
         UCBTOE// Length of break field exceeded 22 bit times
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCDELIM0_t// Break/synch delimiter length bit 0 {
         UCDELIM0_OFF// Break Sync Delimiter bit 0 Off,
         UCDELIM0// Break Sync Delimiter bit 0 On
    };
    enum UCDELIM1_t// Break/synch delimiter length bit 1 {
         UCDELIM1_OFF// Break Sync Delimiter bit 1 Off,
         UCDELIM1// Break Sync Delimiter bit 1 On
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCIREN_t// IrDA encoder/decoder enable {
         UCIREN_OFF// IrDA encoder/decoder disabled,
         UCIREN// IrDA encoder/decoder enabled
    };
    enum UCIRRXFE_t// IrDA receive filter enabled {
         UCIRRXFE_OFF// Receive filter disabled,
         UCIRRXFE// Receive filter enabled
    };
    enum UCIRRXFL0_t// IRDA Receive Filter Length Bit 0 {
         UCIRRXFL0_OFF// Bit 0 OFF,
         UCIRRXFL0// Bit 0 ON
    };
    enum UCIRRXFL1_t// IRDA Receive Filter Length Bit 1 {
         UCIRRXFL1_OFF// Bit 1 OFF,
         UCIRRXFL1// Bit 1 ON
    };
    enum UCIRRXFL2_t// IRDA Receive Filter Length Bit 2 {
         UCIRRXFL2_OFF// Bit 2 OFF,
         UCIRRXFL2// Bit 2 ON
    };
    enum UCIRRXFL3_t// IRDA Receive Filter Length Bit 3 {
         UCIRRXFL3_OFF// Bit 3 OFF,
         UCIRRXFL3// Bit 3 ON
    };
    enum UCIRRXFL4_t// IRDA Receive Filter Length Bit 4 {
         UCIRRXFL4_OFF// Bit 4 OFF,
         UCIRRXFL4// Bit 4 ON
    };
    enum UCIRRXFL5_t// IRDA Receive Filter Length Bit 5 {
         UCIRRXFL5_OFF// Bit 5 OFF,
         UCIRRXFL5// Bit 5 ON
    };
    enum UCIRRXPL_t// IrDA receive input UCAxRXD polarity {
         UCIRRXPL_OFF// IrDA transceiver delivers a high pulse when a light pulse is seen,
         UCIRRXPL// IrDA transceiver delivers a low pulse when a light pulse is seen
    };
    enum UCIRTXCLK_t// IrDA transmit pulse clock select {
         UCIRTXCLK_OFF// BRCLK,
         UCIRTXCLK// BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
    };
    enum UCIRTXPL0_t// IRDA Transmit Pulse Length Bit 0 {
         UCIRTXPL0_OFF// Bit 0 OFF,
         UCIRTXPL0// Bit 0 ON
    };
    enum UCIRTXPL1_t// IRDA Transmit Pulse Length Bit 1 {
         UCIRTXPL1_OFF// Bit 1 OFF,
         UCIRTXPL1// Bit 1 ON
    };
    enum UCIRTXPL2_t// IRDA Transmit Pulse Length Bit 2 {
         UCIRTXPL2_OFF// Bit 2 OFF,
         UCIRTXPL2// Bit 2 ON
    };
    enum UCIRTXPL3_t// IRDA Transmit Pulse Length Bit 3 {
         UCIRTXPL3_OFF// Bit 3 OFF,
         UCIRTXPL3// Bit 3 ON
    };
    enum UCIRTXPL4_t// IRDA Transmit Pulse Length Bit 4 {
         UCIRTXPL4_OFF// Bit 4 OFF,
         UCIRTXPL4// Bit 4 ON
    };
    enum UCIRTXPL5_t// IRDA Transmit Pulse Length Bit 5 {
         UCIRTXPL5_OFF// Bit 5 OFF,
         UCIRTXPL5// Bit 5 ON
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMODE_ASYNC_t// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0 {
         UCMODE_0// UART Mode,
         UCMODE_1// Idle-Line Multiprocessor Mode,
         UCMODE_2// Address-Bit Multiprocessor Mode,
         UCMODE_3// UART Mode with automatic baud rate detection
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCOS16_t// Oversampling mode enabled {
         UCOS16_OFF// Disabled,
         UCOS16// Enabled
    };
    enum UCPAR_t// Parity select. UCPAR is not used when parity is disabled {
         UCPAR_OFF// Odd parity,
         UCPAR// Even parity
    };
    enum UCPEN_t// Parity enable {
         UCPEN_OFF// Parity Disabled,
         UCPEN// Parity Enabled
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSPB_t// Stop bit select. Number of stop bits {
         UCSPB_OFF// One stop bit,
         UCSPB// Two stop bits
    };
    enum UCSSEL_UART_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// UCLK,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSTOE_t// Synch field time out error {
         UCSTOE_OFF// No error,
         UCSTOE// Length of synch field exceeded measurable time
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCxABCTL_t// {
         IUSCI_UART.UCDELIM1_t UCDELIM1// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times;
         IUSCI_UART.UCDELIM0_t UCDELIM0// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times;
         IUSCI_UART.UCSTOE_t UCSTOE// Synch field time out error 0 No error 1 Length of synch field exceeded measurable time;
         IUSCI_UART.UCBTOE_t UCBTOE// Break time out error 0 No error 1 Length of break field exceeded 22 bit times;
         IUSCI_UART.UCABDEN_t UCABDEN// Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_UART.UCPEN_t UCPEN// Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation;
         IUSCI_UART.UCPAR_t UCPAR// Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity;
         IUSCI_UART.UCMSB_t UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first;
         IUSCI_UART.UC7BIT_t UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data;
         IUSCI_UART.UCSPB_t UCSPB// Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits;
         IUSCI_UART.UCMODE_ASYNC_t UCMODE// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection;
         IUSCI_UART.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_UART.UCSSEL_UART_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_UART.UCRXEIE_t UCRXEIE// Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG;
         IUSCI_UART.UCBRKIE_t UCBRKIE// Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG;
         IUSCI_UART.UCDORM_t UCDORM// Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
         IUSCI_UART.UCTXADDR_t UCTXADDR// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address;
         IUSCI_UART.UCTXBRK_t UCTXBRK// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch;
         IUSCI_UART.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxIRRCTL_t// {
         IUSCI_UART.UCIRRXFL5_t UCIRRXFL5// IRDA Receive Filter Length Bit 5;
         IUSCI_UART.UCIRRXFL4_t UCIRRXFL4// IRDA Receive Filter Length Bit 4;
         IUSCI_UART.UCIRRXFL3_t UCIRRXFL3// IRDA Receive Filter Length Bit 3;
         IUSCI_UART.UCIRRXFL2_t UCIRRXFL2// IRDA Receive Filter Length Bit 2;
         IUSCI_UART.UCIRRXFL1_t UCIRRXFL1// IRDA Receive Filter Length Bit 1;
         IUSCI_UART.UCIRRXFL0_t UCIRRXFL0// IRDA Receive Filter Length Bit 0;
         IUSCI_UART.UCIRRXPL_t UCIRRXPL// IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen;
         IUSCI_UART.UCIRRXFE_t UCIRRXFE// IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled;
    };
    metaonly struct UCxIRTCTL_t// {
         IUSCI_UART.UCIRTXPL5_t UCIRTXPL5// IRDA Transmit Pulse Length Bit 5;
         IUSCI_UART.UCIRTXPL4_t UCIRTXPL4// IRDA Transmit Pulse Length Bit 4;
         IUSCI_UART.UCIRTXPL3_t UCIRTXPL3// IRDA Transmit Pulse Length Bit 3;
         IUSCI_UART.UCIRTXPL2_t UCIRTXPL2// IRDA Transmit Pulse Length Bit 2;
         IUSCI_UART.UCIRTXPL1_t UCIRTXPL1// IRDA Transmit Pulse Length Bit 1;
         IUSCI_UART.UCIRTXPL0_t UCIRTXPL0// IRDA Transmit Pulse Length Bit 0;
         IUSCI_UART.UCIRTXCLK_t UCIRTXCLK// IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK;
         IUSCI_UART.UCIREN_t UCIREN// IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled;
    };
    metaonly struct UCxMCTL_t// {
         IUSCI_UART.UCBRF_t UCBRF// First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0;
         IUSCI_UART.UCBRS_t UCBRS// Second modulation stage select. These bits determine the modulation pattern for BITCLK;
         IUSCI_UART.UCOS16_t UCOS16// Oversampling mode enabled 0 Disabled 1 Enabled;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_UART.UCLISTEN_t UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver;
         IUSCI_UART.UCFE_t UCFE// Framing error flag 0 No error 1 Character received with low stop bit;
         IUSCI_UART.UCOE_t UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred;
         IUSCI_UART.UCPE_t UCPE// Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error;
         IUSCI_UART.UCBRK_t UCBRK// Break detect flag 0 No break condition 1 Break condition occurred;
         IUSCI_UART.UCRXERR_t UCRXERR// Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected;
         IUSCI_UART.UCADDR_t UCADDR// Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address;
         IUSCI_UART.UCIDLE_t UCIDLE// Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected;
         IUSCI_UART.UCBUSY_t UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config IUSCI_A0_UART.UCxABCTL_t UCA0ABCTL// Auto Baud Rate Control Register = {
        UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
        UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
        UCSTOE: IUSCI_UART.UCSTOE_OFF,
        UCBTOE: IUSCI_UART.UCBTOE_OFF,
        UCABDEN: IUSCI_UART.UCABDEN_OFF
    };
    config Bits8 UCA0BR0// Baud rate control register 0 = 0;
    config Bits8 UCA0BR1// Baud rate control register 1 = 0;
    config IUSCI_A0_UART.UCxCTL0_t UCA0CTL0// Control Register 0 = {
        UCPEN: IUSCI_UART.UCPEN_OFF,
        UCPAR: IUSCI_UART.UCPAR_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCSPB: IUSCI_UART.UCSPB_OFF,
        UCMODE: IUSCI_UART.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC_OFF
    };
    config IUSCI_A0_UART.UCxCTL1_t UCA0CTL1// Control Register 1 = {
        UCSSEL: IUSCI_UART.UCSSEL_0,
        UCRXEIE: IUSCI.UCRXEIE_OFF,
        UCBRKIE: IUSCI.UCBRKIE_OFF,
        UCDORM: IUSCI.UCDORM_OFF,
        UCTXADDR: IUSCI.UCTXADDR_OFF,
        UCTXBRK: IUSCI.UCTXBRK_OFF,
        UCSWRST: IUSCI.UCSWRST
    };
    config IUSCI_A0_UART.UCxIRRCTL_t UCA0IRRCTL// IrDA Receive Control Register = {
        UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
        UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
        UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
        UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
        UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
        UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
        UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
        UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
    };
    config IUSCI_A0_UART.UCxIRTCTL_t UCA0IRTCTL// IrDA Transmit Control Register = {
        UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
        UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
        UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
        UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
        UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
        UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
        UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
        UCIREN: IUSCI_UART.UCIREN_OFF
    };
    config IUSCI_A0_UART.UCxMCTL_t UCA0MCTL// Modulation Control Register = {
        UCBRF: IUSCI_UART.UCBRF_0,
        UCBRS: IUSCI_UART.UCBRS_0,
        UCOS16: IUSCI_UART.UCOS16_OFF
    };
    config Bits8 UCA0RXBUF// Receive Buffer Register = 0;
    config IUSCI_A0_UART.UCxSTAT_t UCA0STAT// Status Register = {
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCPE: IUSCI.UCPE_OFF,
        UCBRK: IUSCI.UCBRK_OFF,
        UCRXERR: IUSCI.UCRXERR_OFF,
        UCADDR: IUSCI.UCADDR_OFF,
        UCIDLE: IUSCI.UCIDLE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    config Bits8 UCA0TXBUF// Transmit Buffer Register = 0;
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_A0_UART.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_A0_UART.UCABDEN_t
index URL

Automatic baud rate detect enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCABDEN_t {
    UCABDEN_OFF,
    // Baud rate detection disabled. Length of break and synch field is not measured
    UCABDEN
    // Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
};
enum IUSCI_A0_UART.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_A0_UART.UCBRF_t
index URL

First modulation stage select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCBRF_t {
    UCBRF_0,
    // First stage 0
    UCBRF_1,
    // First stage 1
    UCBRF_2,
    // First stage 2
    UCBRF_3,
    // First stage 3
    UCBRF_4,
    // First stage 4
    UCBRF_5,
    // First stage 5
    UCBRF_6,
    // First stage 6
    UCBRF_7,
    // First stage 7
    UCBRF_8,
    // First stage 8
    UCBRF_9,
    // First stage 9
    UCBRF_10,
    // First stage 10
    UCBRF_11,
    // First stage 11
    UCBRF_12,
    // First stage 12
    UCBRF_13,
    // First stage 13
    UCBRF_14,
    // First stage 14
    UCBRF_15
    // First stage 15
};
enum IUSCI_A0_UART.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_A0_UART.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_A0_UART.UCBRS_t
index URL

Second modulation stage select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCBRS_t {
    UCBRS_0,
    // Second stage 0
    UCBRS_1,
    // Second stage 1
    UCBRS_2,
    // Second stage 2
    UCBRS_3,
    // Second stage 3
    UCBRS_4,
    // Second stage 4
    UCBRS_5,
    // Second stage 5
    UCBRS_6,
    // Second stage 6
    UCBRS_7
    // Second stage 7
};
enum IUSCI_A0_UART.UCBTOE_t
index URL

Break time out error

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCBTOE_t {
    UCBTOE_OFF,
    // No error
    UCBTOE
    // Length of break field exceeded 22 bit times
};
enum IUSCI_A0_UART.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_A0_UART.UCDELIM0_t
index URL

Break/synch delimiter length bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCDELIM0_t {
    UCDELIM0_OFF,
    // Break Sync Delimiter bit 0 Off
    UCDELIM0
    // Break Sync Delimiter bit 0 On
};
enum IUSCI_A0_UART.UCDELIM1_t
index URL

Break/synch delimiter length bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCDELIM1_t {
    UCDELIM1_OFF,
    // Break Sync Delimiter bit 1 Off
    UCDELIM1
    // Break Sync Delimiter bit 1 On
};
enum IUSCI_A0_UART.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_A0_UART.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_A0_UART.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_A0_UART.UCIREN_t
index URL

IrDA encoder/decoder enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIREN_t {
    UCIREN_OFF,
    // IrDA encoder/decoder disabled
    UCIREN
    // IrDA encoder/decoder enabled
};
enum IUSCI_A0_UART.UCIRRXFE_t
index URL

IrDA receive filter enabled

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRRXFE_t {
    UCIRRXFE_OFF,
    // Receive filter disabled
    UCIRRXFE
    // Receive filter enabled
};
enum IUSCI_A0_UART.UCIRRXFL0_t
index URL

IRDA Receive Filter Length Bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRRXFL0_t {
    UCIRRXFL0_OFF,
    // Bit 0 OFF
    UCIRRXFL0
    // Bit 0 ON
};
enum IUSCI_A0_UART.UCIRRXFL1_t
index URL

IRDA Receive Filter Length Bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRRXFL1_t {
    UCIRRXFL1_OFF,
    // Bit 1 OFF
    UCIRRXFL1
    // Bit 1 ON
};
enum IUSCI_A0_UART.UCIRRXFL2_t
index URL

IRDA Receive Filter Length Bit 2

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRRXFL2_t {
    UCIRRXFL2_OFF,
    // Bit 2 OFF
    UCIRRXFL2
    // Bit 2 ON
};
enum IUSCI_A0_UART.UCIRRXFL3_t
index URL

IRDA Receive Filter Length Bit 3

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRRXFL3_t {
    UCIRRXFL3_OFF,
    // Bit 3 OFF
    UCIRRXFL3
    // Bit 3 ON
};
enum IUSCI_A0_UART.UCIRRXFL4_t
index URL

IRDA Receive Filter Length Bit 4

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRRXFL4_t {
    UCIRRXFL4_OFF,
    // Bit 4 OFF
    UCIRRXFL4
    // Bit 4 ON
};
enum IUSCI_A0_UART.UCIRRXFL5_t
index URL

IRDA Receive Filter Length Bit 5

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRRXFL5_t {
    UCIRRXFL5_OFF,
    // Bit 5 OFF
    UCIRRXFL5
    // Bit 5 ON
};
enum IUSCI_A0_UART.UCIRRXPL_t
index URL

IrDA receive input UCAxRXD polarity

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRRXPL_t {
    UCIRRXPL_OFF,
    // IrDA transceiver delivers a high pulse when a light pulse is seen
    UCIRRXPL
    // IrDA transceiver delivers a low pulse when a light pulse is seen
};
enum IUSCI_A0_UART.UCIRTXCLK_t
index URL

IrDA transmit pulse clock select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRTXCLK_t {
    UCIRTXCLK_OFF,
    // BRCLK
    UCIRTXCLK
    // BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
};
enum IUSCI_A0_UART.UCIRTXPL0_t
index URL

IRDA Transmit Pulse Length Bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRTXPL0_t {
    UCIRTXPL0_OFF,
    // Bit 0 OFF
    UCIRTXPL0
    // Bit 0 ON
};
enum IUSCI_A0_UART.UCIRTXPL1_t
index URL

IRDA Transmit Pulse Length Bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRTXPL1_t {
    UCIRTXPL1_OFF,
    // Bit 1 OFF
    UCIRTXPL1
    // Bit 1 ON
};
enum IUSCI_A0_UART.UCIRTXPL2_t
index URL

IRDA Transmit Pulse Length Bit 2

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRTXPL2_t {
    UCIRTXPL2_OFF,
    // Bit 2 OFF
    UCIRTXPL2
    // Bit 2 ON
};
enum IUSCI_A0_UART.UCIRTXPL3_t
index URL

IRDA Transmit Pulse Length Bit 3

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRTXPL3_t {
    UCIRTXPL3_OFF,
    // Bit 3 OFF
    UCIRTXPL3
    // Bit 3 ON
};
enum IUSCI_A0_UART.UCIRTXPL4_t
index URL

IRDA Transmit Pulse Length Bit 4

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRTXPL4_t {
    UCIRTXPL4_OFF,
    // Bit 4 OFF
    UCIRTXPL4
    // Bit 4 ON
};
enum IUSCI_A0_UART.UCIRTXPL5_t
index URL

IRDA Transmit Pulse Length Bit 5

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCIRTXPL5_t {
    UCIRTXPL5_OFF,
    // Bit 5 OFF
    UCIRTXPL5
    // Bit 5 ON
};
enum IUSCI_A0_UART.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_A0_UART.UCMODE_ASYNC_t
index URL

USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCMODE_ASYNC_t {
    UCMODE_0,
    // UART Mode
    UCMODE_1,
    // Idle-Line Multiprocessor Mode
    UCMODE_2,
    // Address-Bit Multiprocessor Mode
    UCMODE_3
    // UART Mode with automatic baud rate detection
};
enum IUSCI_A0_UART.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_A0_UART.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_A0_UART.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_A0_UART.UCOS16_t
index URL

Oversampling mode enabled

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCOS16_t {
    UCOS16_OFF,
    // Disabled
    UCOS16
    // Enabled
};
enum IUSCI_A0_UART.UCPAR_t
index URL

Parity select. UCPAR is not used when parity is disabled

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCPAR_t {
    UCPAR_OFF,
    // Odd parity
    UCPAR
    // Even parity
};
enum IUSCI_A0_UART.UCPEN_t
index URL

Parity enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCPEN_t {
    UCPEN_OFF,
    // Parity Disabled
    UCPEN
    // Parity Enabled
};
enum IUSCI_A0_UART.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_A0_UART.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_A0_UART.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_A0_UART.UCSPB_t
index URL

Stop bit select. Number of stop bits

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCSPB_t {
    UCSPB_OFF,
    // One stop bit
    UCSPB
    // Two stop bits
};
enum IUSCI_A0_UART.UCSSEL_UART_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCSSEL_UART_t {
    UCSSEL_0,
    // UCLK
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_A0_UART.UCSTOE_t
index URL

Synch field time out error

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCSTOE_t {
    UCSTOE_OFF,
    // No error
    UCSTOE
    // Length of synch field exceeded measurable time
};
enum IUSCI_A0_UART.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_A0_UART.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_A0_UART.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_A0_UART.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
typedef IUSCI_A0_UART.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_A0_UART.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
typedef String StringArray[];
struct IUSCI_A0_UART.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_A0_UART.UCxABCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly struct UCxABCTL_t {
     IUSCI_UART.UCDELIM1_t UCDELIM1;
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
     IUSCI_UART.UCDELIM0_t UCDELIM0;
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
     IUSCI_UART.UCSTOE_t UCSTOE;
    // Synch field time out error 0 No error 1 Length of synch field exceeded measurable time
     IUSCI_UART.UCBTOE_t UCBTOE;
    // Break time out error 0 No error 1 Length of break field exceeded 22 bit times
     IUSCI_UART.UCABDEN_t UCABDEN;
    // Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
};
struct IUSCI_A0_UART.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly struct UCxCTL0_t {
     IUSCI_UART.UCPEN_t UCPEN;
    // Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation
     IUSCI_UART.UCPAR_t UCPAR;
    // Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity
     IUSCI_UART.UCMSB_t UCMSB;
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
     IUSCI_UART.UC7BIT_t UC7BIT;
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
     IUSCI_UART.UCSPB_t UCSPB;
    // Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits
     IUSCI_UART.UCMODE_ASYNC_t UCMODE;
    // USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection
     IUSCI_UART.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
};
struct IUSCI_A0_UART.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly struct UCxCTL1_t {
     IUSCI_UART.UCSSEL_UART_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_UART.UCRXEIE_t UCRXEIE;
    // Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG
     IUSCI_UART.UCBRKIE_t UCBRKIE;
    // Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG
     IUSCI_UART.UCDORM_t UCDORM;
    // Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
     IUSCI_UART.UCTXADDR_t UCTXADDR;
    // Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address
     IUSCI_UART.UCTXBRK_t UCTXBRK;
    // Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch
     IUSCI_UART.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_A0_UART.UCxIRRCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly struct UCxIRRCTL_t {
     IUSCI_UART.UCIRRXFL5_t UCIRRXFL5;
    // IRDA Receive Filter Length Bit 5
     IUSCI_UART.UCIRRXFL4_t UCIRRXFL4;
    // IRDA Receive Filter Length Bit 4
     IUSCI_UART.UCIRRXFL3_t UCIRRXFL3;
    // IRDA Receive Filter Length Bit 3
     IUSCI_UART.UCIRRXFL2_t UCIRRXFL2;
    // IRDA Receive Filter Length Bit 2
     IUSCI_UART.UCIRRXFL1_t UCIRRXFL1;
    // IRDA Receive Filter Length Bit 1
     IUSCI_UART.UCIRRXFL0_t UCIRRXFL0;
    // IRDA Receive Filter Length Bit 0
     IUSCI_UART.UCIRRXPL_t UCIRRXPL;
    // IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen
     IUSCI_UART.UCIRRXFE_t UCIRRXFE;
    // IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled
};
struct IUSCI_A0_UART.UCxIRTCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly struct UCxIRTCTL_t {
     IUSCI_UART.UCIRTXPL5_t UCIRTXPL5;
    // IRDA Transmit Pulse Length Bit 5
     IUSCI_UART.UCIRTXPL4_t UCIRTXPL4;
    // IRDA Transmit Pulse Length Bit 4
     IUSCI_UART.UCIRTXPL3_t UCIRTXPL3;
    // IRDA Transmit Pulse Length Bit 3
     IUSCI_UART.UCIRTXPL2_t UCIRTXPL2;
    // IRDA Transmit Pulse Length Bit 2
     IUSCI_UART.UCIRTXPL1_t UCIRTXPL1;
    // IRDA Transmit Pulse Length Bit 1
     IUSCI_UART.UCIRTXPL0_t UCIRTXPL0;
    // IRDA Transmit Pulse Length Bit 0
     IUSCI_UART.UCIRTXCLK_t UCIRTXCLK;
    // IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
     IUSCI_UART.UCIREN_t UCIREN;
    // IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled
};
struct IUSCI_A0_UART.UCxMCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly struct UCxMCTL_t {
     IUSCI_UART.UCBRF_t UCBRF;
    // First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0
     IUSCI_UART.UCBRS_t UCBRS;
    // Second modulation stage select. These bits determine the modulation pattern for BITCLK
     IUSCI_UART.UCOS16_t UCOS16;
    // Oversampling mode enabled 0 Disabled 1 Enabled
};
struct IUSCI_A0_UART.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly struct UCxSTAT_t {
     IUSCI_UART.UCLISTEN_t UCLISTEN;
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
     IUSCI_UART.UCFE_t UCFE;
    // Framing error flag 0 No error 1 Character received with low stop bit
     IUSCI_UART.UCOE_t UCOE;
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
     IUSCI_UART.UCPE_t UCPE;
    // Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error
     IUSCI_UART.UCBRK_t UCBRK;
    // Break detect flag 0 No break condition 1 Break condition occurred
     IUSCI_UART.UCRXERR_t UCRXERR;
    // Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected
     IUSCI_UART.UCADDR_t UCADDR;
    // Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address
     IUSCI_UART.UCIDLE_t UCIDLE;
    // Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected
     IUSCI_UART.UCBUSY_t UCBUSY;
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
};
struct IUSCI_A0_UART.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_A0_UART.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_A0_UART.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_A0_UART.UCA0ABCTL // instance
index URL

Auto Baud Rate Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config IUSCI_A0_UART.UCxABCTL_t UCA0ABCTL = {
    UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
    UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
    UCSTOE: IUSCI_UART.UCSTOE_OFF,
    UCBTOE: IUSCI_UART.UCBTOE_OFF,
    UCABDEN: IUSCI_UART.UCABDEN_OFF
};
config IUSCI_A0_UART.UCA0BR0 // instance
index URL

Baud rate control register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config Bits8 UCA0BR0 = 0;
config IUSCI_A0_UART.UCA0BR1 // instance
index URL

Baud rate control register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config Bits8 UCA0BR1 = 0;
config IUSCI_A0_UART.UCA0CTL0 // instance
index URL

Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config IUSCI_A0_UART.UCxCTL0_t UCA0CTL0 = {
    UCPEN: IUSCI_UART.UCPEN_OFF,
    UCPAR: IUSCI_UART.UCPAR_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCSPB: IUSCI_UART.UCSPB_OFF,
    UCMODE: IUSCI_UART.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC_OFF
};
config IUSCI_A0_UART.UCA0CTL1 // instance
index URL

Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config IUSCI_A0_UART.UCxCTL1_t UCA0CTL1 = {
    UCSSEL: IUSCI_UART.UCSSEL_0,
    UCRXEIE: IUSCI.UCRXEIE_OFF,
    UCBRKIE: IUSCI.UCBRKIE_OFF,
    UCDORM: IUSCI.UCDORM_OFF,
    UCTXADDR: IUSCI.UCTXADDR_OFF,
    UCTXBRK: IUSCI.UCTXBRK_OFF,
    UCSWRST: IUSCI.UCSWRST
};
config IUSCI_A0_UART.UCA0IRRCTL // instance
index URL

IrDA Receive Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config IUSCI_A0_UART.UCxIRRCTL_t UCA0IRRCTL = {
    UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
    UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
    UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
    UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
    UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
    UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
    UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
    UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
};
config IUSCI_A0_UART.UCA0IRTCTL // instance
index URL

IrDA Transmit Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config IUSCI_A0_UART.UCxIRTCTL_t UCA0IRTCTL = {
    UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
    UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
    UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
    UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
    UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
    UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
    UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
    UCIREN: IUSCI_UART.UCIREN_OFF
};
config IUSCI_A0_UART.UCA0MCTL // instance
index URL

Modulation Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config IUSCI_A0_UART.UCxMCTL_t UCA0MCTL = {
    UCBRF: IUSCI_UART.UCBRF_0,
    UCBRS: IUSCI_UART.UCBRS_0,
    UCOS16: IUSCI_UART.UCOS16_OFF
};
config IUSCI_A0_UART.UCA0RXBUF // instance
index URL

Receive Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config Bits8 UCA0RXBUF = 0;
config IUSCI_A0_UART.UCA0STAT // instance
index URL

Status Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config IUSCI_A0_UART.UCxSTAT_t UCA0STAT = {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCPE: IUSCI.UCPE_OFF,
    UCBRK: IUSCI.UCBRK_OFF,
    UCRXERR: IUSCI.UCRXERR_OFF,
    UCADDR: IUSCI.UCADDR_OFF,
    UCIDLE: IUSCI.UCIDLE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config IUSCI_A0_UART.UCA0TXBUF // instance
index URL

Transmit Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config Bits8 UCA0TXBUF = 0;
config IUSCI_A0_UART.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config Float UCLKHz = 1000000;
config IUSCI_A0_UART.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_A0_UART.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
config String owner;
IUSCI_A0_UART.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_A0_UART.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_A0_UART.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_A0_UART.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_A0_UART.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_A0_UART.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_A0_UART.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_A0_UART.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:41 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_A0_UART

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface A0 UART 2xx
    14     */
    15    metaonly interface IUSCI_A0_UART inherits IUSCI_UART {
    16
    17    instance:
    18        /*! Control Register 0 */
    19        config UCxCTL0_t UCA0CTL0 = {
    20            UCPEN       : UCPEN_OFF,
    21            UCPAR       : UCPAR_OFF,
    22            UCMSB       : UCMSB_OFF,
    23            UC7BIT      : UC7BIT_OFF,
    24            UCSPB       : UCSPB_OFF,
    25            UCMODE      : UCMODE_0,
    26            UCSYNC      : UCSYNC_OFF,
    27        };
    28
    29        /*! Control Register 1 */
    30        config UCxCTL1_t UCA0CTL1 = {
    31            UCSSEL      : UCSSEL_0,
    32            UCRXEIE     : UCRXEIE_OFF,
    33            UCBRKIE     : UCBRKIE_OFF,
    34            UCDORM      : UCDORM_OFF,
    35            UCTXADDR    : UCTXADDR_OFF,
    36            UCTXBRK     : UCTXBRK_OFF,
    37            UCSWRST     : UCSWRST,
    38        };
    39
    40        /*! Modulation Control Register */
    41        config UCxMCTL_t UCA0MCTL = {
    42            UCBRF       : UCBRF_0,
    43            UCBRS       : UCBRS_0,
    44            UCOS16      : UCOS16_OFF,
    45        };
    46
    47        /*! Status Register */
    48        config UCxSTAT_t UCA0STAT = {
    49            UCLISTEN    : UCLISTEN_OFF,
    50            UCFE        : UCFE_OFF,
    51            UCOE        : UCOE_OFF,
    52            UCPE        : UCPE_OFF,
    53            UCBRK       : UCBRK_OFF,
    54            UCRXERR     : UCRXERR_OFF,
    55            UCADDR      : UCADDR_OFF,
    56            UCIDLE      : UCIDLE_OFF,
    57            UCBUSY      : UCBUSY,
    58        };
    59
    60        /*! IrDA Transmit Control Register */
    61        config UCxIRTCTL_t UCA0IRTCTL = {
    62            UCIRTXPL5   : UCIRTXPL5_OFF,
    63            UCIRTXPL4   : UCIRTXPL4_OFF,
    64            UCIRTXPL3   : UCIRTXPL3_OFF,
    65            UCIRTXPL2   : UCIRTXPL2_OFF,
    66            UCIRTXPL1   : UCIRTXPL1_OFF,
    67            UCIRTXPL0   : UCIRTXPL0_OFF,
    68            UCIRTXCLK   : UCIRTXCLK_OFF,
    69            UCIREN      : UCIREN_OFF,
    70        };
    71
    72        /*! IrDA Receive Control Register */
    73        config UCxIRRCTL_t UCA0IRRCTL = {
    74            UCIRRXFL5   : UCIRRXFL5_OFF,
    75            UCIRRXFL4   : UCIRRXFL4_OFF,
    76            UCIRRXFL3   : UCIRRXFL3_OFF,
    77            UCIRRXFL2   : UCIRRXFL2_OFF,
    78            UCIRRXFL1   : UCIRRXFL1_OFF,
    79            UCIRRXFL0   : UCIRRXFL0_OFF,
    80            UCIRRXPL    : UCIRRXPL_OFF,
    81            UCIRRXFE    : UCIRRXFE_OFF,
    82        };
    83
    84        /*! Auto Baud Rate Control Register */
    85        config UCxABCTL_t UCA0ABCTL = {
    86            UCDELIM1    : UCDELIM1_OFF,
    87            UCDELIM0    : UCDELIM0_OFF,
    88            UCSTOE      : UCSTOE_OFF,
    89            UCBTOE      : UCBTOE_OFF,
    90            UCABDEN     : UCABDEN_OFF,
    91        };
    92
    93        /*! Receive Buffer Register */
    94        config Bits8 UCA0RXBUF = 0;
    95
    96        /*! Transmit Buffer Register */
    97        config Bits8 UCA0TXBUF = 0;
    98
    99        /*! Baud rate control register 0 */
   100        config Bits8 UCA0BR0 = 0;
   101
   102        /*! Baud rate control register 1 */
   103        config Bits8 UCA0BR1 = 0;
   104    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_A1_SPI

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_A1_SPI
index URL

Universal Serial Communication Interface A1 SPI 2xx

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
metaonly interface IUSCI_A1_SPI { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI_SPI
    // inherits ti.catalog.msp430.peripherals.communication.IUSCI
        // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_A1_SPI inherits IUSCI_SPI {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCCKPH_t// Clock phase select {
         UCCKPH_OFF// Data is changed on the first UCLK edge and captured on the following edge,
         UCCKPH// Data is captured on the first UCLK edge and changed on the following edge
    };
    enum UCCKPL_t// Clock polarity select {
         UCCKPL_OFF// Inactive state is low,
         UCCKPL// Inactive state is high
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCMST_t// Master mode select {
         UCMST_OFF// Slave mode,
         UCMST// Master mode
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSSEL_SPI_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// NA,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_SPI.UCCKPH_t UCCKPH// Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge;
         IUSCI_SPI.UCCKPL_t UCCKPL// Clock polarity select 0 The inactive state is low 1 The inactive state is high;
         IUSCI_SPI.UCMSB_t UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first;
         IUSCI_SPI.UC7BIT_t UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data;
         IUSCI_SPI.UCMST_t UCMST// Master mode select 0 Slave mode 1 Master mode;
         IUSCI_SPI.UCMODE_SYNC_t UCMODE// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode;
         IUSCI_SPI.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_SPI.UCSSEL_SPI_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_SPI.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_SPI.UCLISTEN_t UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver;
         IUSCI_SPI.UCFE_t UCFE// Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred;
         IUSCI_SPI.UCOE_t UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred;
         IUSCI_SPI.UCBUSY_t UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Bits8 UCA1BR0// Bit Rate Control Register 0 = 0;
    config Bits8 UCA1BR1// Bit Rate Control Register 1 = 0;
    config IUSCI_A1_SPI.UCxCTL0_t UCA1CTL0// Control Register 0 = {
        UCCKPH: IUSCI_SPI.UCCKPH_OFF,
        UCCKPL: IUSCI_SPI.UCCKPL_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCMST: IUSCI_SPI.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    config IUSCI_A1_SPI.UCxCTL1_t UCA1CTL1// Control Register 1 = {
        UCSSEL: IUSCI_SPI.UCSSEL_0,
        UCSWRST: IUSCI.UCSWRST
    };
    config Bits8 UCA1RXBUF// Receive Buffer Register = 0;
    config IUSCI_A1_SPI.UCxSTAT_t UCA1STAT// Status Register = {
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    config Bits8 UCA1TXBUF// Transmit Buffer Register = 0;
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_A1_SPI.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_A1_SPI.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_A1_SPI.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_A1_SPI.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_A1_SPI.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_A1_SPI.UCCKPH_t
index URL

Clock phase select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCCKPH_t {
    UCCKPH_OFF,
    // Data is changed on the first UCLK edge and captured on the following edge
    UCCKPH
    // Data is captured on the first UCLK edge and changed on the following edge
};
enum IUSCI_A1_SPI.UCCKPL_t
index URL

Clock polarity select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCCKPL_t {
    UCCKPL_OFF,
    // Inactive state is low
    UCCKPL
    // Inactive state is high
};
enum IUSCI_A1_SPI.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_A1_SPI.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_A1_SPI.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_A1_SPI.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_A1_SPI.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_A1_SPI.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_A1_SPI.UCMST_t
index URL

Master mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCMST_t {
    UCMST_OFF,
    // Slave mode
    UCMST
    // Master mode
};
enum IUSCI_A1_SPI.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_A1_SPI.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_A1_SPI.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_A1_SPI.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_A1_SPI.UCSSEL_SPI_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCSSEL_SPI_t {
    UCSSEL_0,
    // NA
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_A1_SPI.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_A1_SPI.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_A1_SPI.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_A1_SPI.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
typedef IUSCI_A1_SPI.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_A1_SPI.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
typedef String StringArray[];
struct IUSCI_A1_SPI.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_A1_SPI.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
metaonly struct UCxCTL0_t {
     IUSCI_SPI.UCCKPH_t UCCKPH;
    // Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge
     IUSCI_SPI.UCCKPL_t UCCKPL;
    // Clock polarity select 0 The inactive state is low 1 The inactive state is high
     IUSCI_SPI.UCMSB_t UCMSB;
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
     IUSCI_SPI.UC7BIT_t UC7BIT;
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
     IUSCI_SPI.UCMST_t UCMST;
    // Master mode select 0 Slave mode 1 Master mode
     IUSCI_SPI.UCMODE_SYNC_t UCMODE;
    // USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode
     IUSCI_SPI.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
};
struct IUSCI_A1_SPI.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
metaonly struct UCxCTL1_t {
     IUSCI_SPI.UCSSEL_SPI_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_SPI.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_A1_SPI.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
metaonly struct UCxSTAT_t {
     IUSCI_SPI.UCLISTEN_t UCLISTEN;
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
     IUSCI_SPI.UCFE_t UCFE;
    // Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred
     IUSCI_SPI.UCOE_t UCOE;
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
     IUSCI_SPI.UCBUSY_t UCBUSY;
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
};
struct IUSCI_A1_SPI.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_A1_SPI.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_A1_SPI.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_A1_SPI.UCA1BR0 // instance
index URL

Bit Rate Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config Bits8 UCA1BR0 = 0;
config IUSCI_A1_SPI.UCA1BR1 // instance
index URL

Bit Rate Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config Bits8 UCA1BR1 = 0;
config IUSCI_A1_SPI.UCA1CTL0 // instance
index URL

Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config IUSCI_A1_SPI.UCxCTL0_t UCA1CTL0 = {
    UCCKPH: IUSCI_SPI.UCCKPH_OFF,
    UCCKPL: IUSCI_SPI.UCCKPL_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCMST: IUSCI_SPI.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config IUSCI_A1_SPI.UCA1CTL1 // instance
index URL

Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config IUSCI_A1_SPI.UCxCTL1_t UCA1CTL1 = {
    UCSSEL: IUSCI_SPI.UCSSEL_0,
    UCSWRST: IUSCI.UCSWRST
};
config IUSCI_A1_SPI.UCA1RXBUF // instance
index URL

Receive Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config Bits8 UCA1RXBUF = 0;
config IUSCI_A1_SPI.UCA1STAT // instance
index URL

Status Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config IUSCI_A1_SPI.UCxSTAT_t UCA1STAT = {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config IUSCI_A1_SPI.UCA1TXBUF // instance
index URL

Transmit Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config Bits8 UCA1TXBUF = 0;
config IUSCI_A1_SPI.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config Float UCLKHz = 1000000;
config IUSCI_A1_SPI.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_A1_SPI.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
config String owner;
IUSCI_A1_SPI.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_A1_SPI.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_A1_SPI.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_A1_SPI.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_A1_SPI.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_A1_SPI.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_A1_SPI.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_A1_SPI.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_SPI.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:41 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_A1_SPI

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface A1 SPI 2xx
    14     */
    15    metaonly interface IUSCI_A1_SPI inherits IUSCI_SPI {
    16
    17    instance:
    18        /*! Control Register 0 */
    19        config UCxCTL0_t UCA1CTL0 = {
    20            UCCKPH      : UCCKPH_OFF,
    21            UCCKPL      : UCCKPL_OFF,
    22            UCMSB       : UCMSB_OFF,
    23            UC7BIT      : UC7BIT_OFF,
    24            UCMST       : UCMST_OFF,
    25            UCMODE      : UCMODE_0,
    26            UCSYNC      : UCSYNC,
    27        };
    28
    29        /*! Control Register 1 */
    30        config UCxCTL1_t UCA1CTL1 = {
    31            UCSSEL      : UCSSEL_0,
    32            UCSWRST     : UCSWRST,
    33        };
    34
    35        /*! Status Register */
    36        config UCxSTAT_t UCA1STAT = {
    37            UCLISTEN    : UCLISTEN_OFF,
    38            UCFE        : UCFE_OFF,
    39            UCOE        : UCOE_OFF,
    40            UCBUSY      : UCBUSY,
    41        };
    42
    43        /*! Bit Rate Control Register 0 */
    44        config Bits8 UCA1BR0 = 0;
    45
    46        /*! Bit Rate Control Register 1 */
    47        config Bits8 UCA1BR1 = 0;
    48
    49        /*! Receive Buffer Register */
    50        config Bits8 UCA1RXBUF = 0;
    51
    52        /*! Transmit Buffer Register */
    53        config Bits8 UCA1TXBUF = 0;
    54    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_A1_UART

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_A1_UART
index URL

Universal Serial Communication Interface A1 UART 2xx

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly interface IUSCI_A1_UART { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI_UART
    // inherits ti.catalog.msp430.peripherals.communication.IUSCI
        // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_A1_UART inherits IUSCI_UART {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCABDEN_t// Automatic baud rate detect enable {
         UCABDEN_OFF// Baud rate detection disabled. Length of break and synch field is not measured,
         UCABDEN// Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCBRF_t// First modulation stage select {
         UCBRF_0// First stage 0,
         UCBRF_1// First stage 1,
         UCBRF_2// First stage 2,
         UCBRF_3// First stage 3,
         UCBRF_4// First stage 4,
         UCBRF_5// First stage 5,
         UCBRF_6// First stage 6,
         UCBRF_7// First stage 7,
         UCBRF_8// First stage 8,
         UCBRF_9// First stage 9,
         UCBRF_10// First stage 10,
         UCBRF_11// First stage 11,
         UCBRF_12// First stage 12,
         UCBRF_13// First stage 13,
         UCBRF_14// First stage 14,
         UCBRF_15// First stage 15
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBRS_t// Second modulation stage select {
         UCBRS_0// Second stage 0,
         UCBRS_1// Second stage 1,
         UCBRS_2// Second stage 2,
         UCBRS_3// Second stage 3,
         UCBRS_4// Second stage 4,
         UCBRS_5// Second stage 5,
         UCBRS_6// Second stage 6,
         UCBRS_7// Second stage 7
    };
    enum UCBTOE_t// Break time out error {
         UCBTOE_OFF// No error,
         UCBTOE// Length of break field exceeded 22 bit times
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCDELIM0_t// Break/synch delimiter length bit 0 {
         UCDELIM0_OFF// Break Sync Delimiter bit 0 Off,
         UCDELIM0// Break Sync Delimiter bit 0 On
    };
    enum UCDELIM1_t// Break/synch delimiter length bit 1 {
         UCDELIM1_OFF// Break Sync Delimiter bit 1 Off,
         UCDELIM1// Break Sync Delimiter bit 1 On
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCIREN_t// IrDA encoder/decoder enable {
         UCIREN_OFF// IrDA encoder/decoder disabled,
         UCIREN// IrDA encoder/decoder enabled
    };
    enum UCIRRXFE_t// IrDA receive filter enabled {
         UCIRRXFE_OFF// Receive filter disabled,
         UCIRRXFE// Receive filter enabled
    };
    enum UCIRRXFL0_t// IRDA Receive Filter Length Bit 0 {
         UCIRRXFL0_OFF// Bit 0 OFF,
         UCIRRXFL0// Bit 0 ON
    };
    enum UCIRRXFL1_t// IRDA Receive Filter Length Bit 1 {
         UCIRRXFL1_OFF// Bit 1 OFF,
         UCIRRXFL1// Bit 1 ON
    };
    enum UCIRRXFL2_t// IRDA Receive Filter Length Bit 2 {
         UCIRRXFL2_OFF// Bit 2 OFF,
         UCIRRXFL2// Bit 2 ON
    };
    enum UCIRRXFL3_t// IRDA Receive Filter Length Bit 3 {
         UCIRRXFL3_OFF// Bit 3 OFF,
         UCIRRXFL3// Bit 3 ON
    };
    enum UCIRRXFL4_t// IRDA Receive Filter Length Bit 4 {
         UCIRRXFL4_OFF// Bit 4 OFF,
         UCIRRXFL4// Bit 4 ON
    };
    enum UCIRRXFL5_t// IRDA Receive Filter Length Bit 5 {
         UCIRRXFL5_OFF// Bit 5 OFF,
         UCIRRXFL5// Bit 5 ON
    };
    enum UCIRRXPL_t// IrDA receive input UCAxRXD polarity {
         UCIRRXPL_OFF// IrDA transceiver delivers a high pulse when a light pulse is seen,
         UCIRRXPL// IrDA transceiver delivers a low pulse when a light pulse is seen
    };
    enum UCIRTXCLK_t// IrDA transmit pulse clock select {
         UCIRTXCLK_OFF// BRCLK,
         UCIRTXCLK// BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
    };
    enum UCIRTXPL0_t// IRDA Transmit Pulse Length Bit 0 {
         UCIRTXPL0_OFF// Bit 0 OFF,
         UCIRTXPL0// Bit 0 ON
    };
    enum UCIRTXPL1_t// IRDA Transmit Pulse Length Bit 1 {
         UCIRTXPL1_OFF// Bit 1 OFF,
         UCIRTXPL1// Bit 1 ON
    };
    enum UCIRTXPL2_t// IRDA Transmit Pulse Length Bit 2 {
         UCIRTXPL2_OFF// Bit 2 OFF,
         UCIRTXPL2// Bit 2 ON
    };
    enum UCIRTXPL3_t// IRDA Transmit Pulse Length Bit 3 {
         UCIRTXPL3_OFF// Bit 3 OFF,
         UCIRTXPL3// Bit 3 ON
    };
    enum UCIRTXPL4_t// IRDA Transmit Pulse Length Bit 4 {
         UCIRTXPL4_OFF// Bit 4 OFF,
         UCIRTXPL4// Bit 4 ON
    };
    enum UCIRTXPL5_t// IRDA Transmit Pulse Length Bit 5 {
         UCIRTXPL5_OFF// Bit 5 OFF,
         UCIRTXPL5// Bit 5 ON
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMODE_ASYNC_t// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0 {
         UCMODE_0// UART Mode,
         UCMODE_1// Idle-Line Multiprocessor Mode,
         UCMODE_2// Address-Bit Multiprocessor Mode,
         UCMODE_3// UART Mode with automatic baud rate detection
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCOS16_t// Oversampling mode enabled {
         UCOS16_OFF// Disabled,
         UCOS16// Enabled
    };
    enum UCPAR_t// Parity select. UCPAR is not used when parity is disabled {
         UCPAR_OFF// Odd parity,
         UCPAR// Even parity
    };
    enum UCPEN_t// Parity enable {
         UCPEN_OFF// Parity Disabled,
         UCPEN// Parity Enabled
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSPB_t// Stop bit select. Number of stop bits {
         UCSPB_OFF// One stop bit,
         UCSPB// Two stop bits
    };
    enum UCSSEL_UART_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// UCLK,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSTOE_t// Synch field time out error {
         UCSTOE_OFF// No error,
         UCSTOE// Length of synch field exceeded measurable time
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCxABCTL_t// {
         IUSCI_UART.UCDELIM1_t UCDELIM1// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times;
         IUSCI_UART.UCDELIM0_t UCDELIM0// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times;
         IUSCI_UART.UCSTOE_t UCSTOE// Synch field time out error 0 No error 1 Length of synch field exceeded measurable time;
         IUSCI_UART.UCBTOE_t UCBTOE// Break time out error 0 No error 1 Length of break field exceeded 22 bit times;
         IUSCI_UART.UCABDEN_t UCABDEN// Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_UART.UCPEN_t UCPEN// Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation;
         IUSCI_UART.UCPAR_t UCPAR// Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity;
         IUSCI_UART.UCMSB_t UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first;
         IUSCI_UART.UC7BIT_t UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data;
         IUSCI_UART.UCSPB_t UCSPB// Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits;
         IUSCI_UART.UCMODE_ASYNC_t UCMODE// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection;
         IUSCI_UART.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_UART.UCSSEL_UART_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_UART.UCRXEIE_t UCRXEIE// Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG;
         IUSCI_UART.UCBRKIE_t UCBRKIE// Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG;
         IUSCI_UART.UCDORM_t UCDORM// Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
         IUSCI_UART.UCTXADDR_t UCTXADDR// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address;
         IUSCI_UART.UCTXBRK_t UCTXBRK// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch;
         IUSCI_UART.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxIRRCTL_t// {
         IUSCI_UART.UCIRRXFL5_t UCIRRXFL5// IRDA Receive Filter Length Bit 5;
         IUSCI_UART.UCIRRXFL4_t UCIRRXFL4// IRDA Receive Filter Length Bit 4;
         IUSCI_UART.UCIRRXFL3_t UCIRRXFL3// IRDA Receive Filter Length Bit 3;
         IUSCI_UART.UCIRRXFL2_t UCIRRXFL2// IRDA Receive Filter Length Bit 2;
         IUSCI_UART.UCIRRXFL1_t UCIRRXFL1// IRDA Receive Filter Length Bit 1;
         IUSCI_UART.UCIRRXFL0_t UCIRRXFL0// IRDA Receive Filter Length Bit 0;
         IUSCI_UART.UCIRRXPL_t UCIRRXPL// IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen;
         IUSCI_UART.UCIRRXFE_t UCIRRXFE// IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled;
    };
    metaonly struct UCxIRTCTL_t// {
         IUSCI_UART.UCIRTXPL5_t UCIRTXPL5// IRDA Transmit Pulse Length Bit 5;
         IUSCI_UART.UCIRTXPL4_t UCIRTXPL4// IRDA Transmit Pulse Length Bit 4;
         IUSCI_UART.UCIRTXPL3_t UCIRTXPL3// IRDA Transmit Pulse Length Bit 3;
         IUSCI_UART.UCIRTXPL2_t UCIRTXPL2// IRDA Transmit Pulse Length Bit 2;
         IUSCI_UART.UCIRTXPL1_t UCIRTXPL1// IRDA Transmit Pulse Length Bit 1;
         IUSCI_UART.UCIRTXPL0_t UCIRTXPL0// IRDA Transmit Pulse Length Bit 0;
         IUSCI_UART.UCIRTXCLK_t UCIRTXCLK// IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK;
         IUSCI_UART.UCIREN_t UCIREN// IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled;
    };
    metaonly struct UCxMCTL_t// {
         IUSCI_UART.UCBRF_t UCBRF// First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0;
         IUSCI_UART.UCBRS_t UCBRS// Second modulation stage select. These bits determine the modulation pattern for BITCLK;
         IUSCI_UART.UCOS16_t UCOS16// Oversampling mode enabled 0 Disabled 1 Enabled;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_UART.UCLISTEN_t UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver;
         IUSCI_UART.UCFE_t UCFE// Framing error flag 0 No error 1 Character received with low stop bit;
         IUSCI_UART.UCOE_t UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred;
         IUSCI_UART.UCPE_t UCPE// Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error;
         IUSCI_UART.UCBRK_t UCBRK// Break detect flag 0 No break condition 1 Break condition occurred;
         IUSCI_UART.UCRXERR_t UCRXERR// Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected;
         IUSCI_UART.UCADDR_t UCADDR// Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address;
         IUSCI_UART.UCIDLE_t UCIDLE// Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected;
         IUSCI_UART.UCBUSY_t UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config IUSCI_A1_UART.UCxABCTL_t UCA1ABCTL// Auto Baud Rate Control Register = {
        UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
        UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
        UCSTOE: IUSCI_UART.UCSTOE_OFF,
        UCBTOE: IUSCI_UART.UCBTOE_OFF,
        UCABDEN: IUSCI_UART.UCABDEN_OFF
    };
    config Bits8 UCA1BR0// Baud rate control register 0 = 0;
    config Bits8 UCA1BR1// Baud rate control register 1 = 0;
    config IUSCI_A1_UART.UCxCTL0_t UCA1CTL0// Control Register 0 = {
        UCPEN: IUSCI_UART.UCPEN_OFF,
        UCPAR: IUSCI_UART.UCPAR_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCSPB: IUSCI_UART.UCSPB_OFF,
        UCMODE: IUSCI_UART.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC_OFF
    };
    config IUSCI_A1_UART.UCxCTL1_t UCA1CTL1// Control Register 1 = {
        UCSSEL: IUSCI_UART.UCSSEL_0,
        UCRXEIE: IUSCI.UCRXEIE_OFF,
        UCBRKIE: IUSCI.UCBRKIE_OFF,
        UCDORM: IUSCI.UCDORM_OFF,
        UCTXADDR: IUSCI.UCTXADDR_OFF,
        UCTXBRK: IUSCI.UCTXBRK_OFF,
        UCSWRST: IUSCI.UCSWRST
    };
    config IUSCI_A1_UART.UCxIRRCTL_t UCA1IRRCTL// IrDA Receive Control Register = {
        UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
        UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
        UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
        UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
        UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
        UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
        UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
        UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
    };
    config IUSCI_A1_UART.UCxIRTCTL_t UCA1IRTCTL// IrDA Transmit Control Register = {
        UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
        UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
        UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
        UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
        UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
        UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
        UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
        UCIREN: IUSCI_UART.UCIREN_OFF
    };
    config IUSCI_A1_UART.UCxMCTL_t UCA1MCTL// Modulation Control Register = {
        UCBRF: IUSCI_UART.UCBRF_0,
        UCBRS: IUSCI_UART.UCBRS_0,
        UCOS16: IUSCI_UART.UCOS16_OFF
    };
    config Bits8 UCA1RXBUF// Receive Buffer Register = 0;
    config IUSCI_A1_UART.UCxSTAT_t UCA1STAT// Status Register = {
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCPE: IUSCI.UCPE_OFF,
        UCBRK: IUSCI.UCBRK_OFF,
        UCRXERR: IUSCI.UCRXERR_OFF,
        UCADDR: IUSCI.UCADDR_OFF,
        UCIDLE: IUSCI.UCIDLE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    config Bits8 UCA1TXBUF// Transmit Buffer Register = 0;
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_A1_UART.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_A1_UART.UCABDEN_t
index URL

Automatic baud rate detect enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCABDEN_t {
    UCABDEN_OFF,
    // Baud rate detection disabled. Length of break and synch field is not measured
    UCABDEN
    // Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
};
enum IUSCI_A1_UART.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_A1_UART.UCBRF_t
index URL

First modulation stage select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCBRF_t {
    UCBRF_0,
    // First stage 0
    UCBRF_1,
    // First stage 1
    UCBRF_2,
    // First stage 2
    UCBRF_3,
    // First stage 3
    UCBRF_4,
    // First stage 4
    UCBRF_5,
    // First stage 5
    UCBRF_6,
    // First stage 6
    UCBRF_7,
    // First stage 7
    UCBRF_8,
    // First stage 8
    UCBRF_9,
    // First stage 9
    UCBRF_10,
    // First stage 10
    UCBRF_11,
    // First stage 11
    UCBRF_12,
    // First stage 12
    UCBRF_13,
    // First stage 13
    UCBRF_14,
    // First stage 14
    UCBRF_15
    // First stage 15
};
enum IUSCI_A1_UART.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_A1_UART.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_A1_UART.UCBRS_t
index URL

Second modulation stage select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCBRS_t {
    UCBRS_0,
    // Second stage 0
    UCBRS_1,
    // Second stage 1
    UCBRS_2,
    // Second stage 2
    UCBRS_3,
    // Second stage 3
    UCBRS_4,
    // Second stage 4
    UCBRS_5,
    // Second stage 5
    UCBRS_6,
    // Second stage 6
    UCBRS_7
    // Second stage 7
};
enum IUSCI_A1_UART.UCBTOE_t
index URL

Break time out error

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCBTOE_t {
    UCBTOE_OFF,
    // No error
    UCBTOE
    // Length of break field exceeded 22 bit times
};
enum IUSCI_A1_UART.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_A1_UART.UCDELIM0_t
index URL

Break/synch delimiter length bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCDELIM0_t {
    UCDELIM0_OFF,
    // Break Sync Delimiter bit 0 Off
    UCDELIM0
    // Break Sync Delimiter bit 0 On
};
enum IUSCI_A1_UART.UCDELIM1_t
index URL

Break/synch delimiter length bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCDELIM1_t {
    UCDELIM1_OFF,
    // Break Sync Delimiter bit 1 Off
    UCDELIM1
    // Break Sync Delimiter bit 1 On
};
enum IUSCI_A1_UART.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_A1_UART.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_A1_UART.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_A1_UART.UCIREN_t
index URL

IrDA encoder/decoder enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIREN_t {
    UCIREN_OFF,
    // IrDA encoder/decoder disabled
    UCIREN
    // IrDA encoder/decoder enabled
};
enum IUSCI_A1_UART.UCIRRXFE_t
index URL

IrDA receive filter enabled

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRRXFE_t {
    UCIRRXFE_OFF,
    // Receive filter disabled
    UCIRRXFE
    // Receive filter enabled
};
enum IUSCI_A1_UART.UCIRRXFL0_t
index URL

IRDA Receive Filter Length Bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRRXFL0_t {
    UCIRRXFL0_OFF,
    // Bit 0 OFF
    UCIRRXFL0
    // Bit 0 ON
};
enum IUSCI_A1_UART.UCIRRXFL1_t
index URL

IRDA Receive Filter Length Bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRRXFL1_t {
    UCIRRXFL1_OFF,
    // Bit 1 OFF
    UCIRRXFL1
    // Bit 1 ON
};
enum IUSCI_A1_UART.UCIRRXFL2_t
index URL

IRDA Receive Filter Length Bit 2

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRRXFL2_t {
    UCIRRXFL2_OFF,
    // Bit 2 OFF
    UCIRRXFL2
    // Bit 2 ON
};
enum IUSCI_A1_UART.UCIRRXFL3_t
index URL

IRDA Receive Filter Length Bit 3

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRRXFL3_t {
    UCIRRXFL3_OFF,
    // Bit 3 OFF
    UCIRRXFL3
    // Bit 3 ON
};
enum IUSCI_A1_UART.UCIRRXFL4_t
index URL

IRDA Receive Filter Length Bit 4

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRRXFL4_t {
    UCIRRXFL4_OFF,
    // Bit 4 OFF
    UCIRRXFL4
    // Bit 4 ON
};
enum IUSCI_A1_UART.UCIRRXFL5_t
index URL

IRDA Receive Filter Length Bit 5

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRRXFL5_t {
    UCIRRXFL5_OFF,
    // Bit 5 OFF
    UCIRRXFL5
    // Bit 5 ON
};
enum IUSCI_A1_UART.UCIRRXPL_t
index URL

IrDA receive input UCAxRXD polarity

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRRXPL_t {
    UCIRRXPL_OFF,
    // IrDA transceiver delivers a high pulse when a light pulse is seen
    UCIRRXPL
    // IrDA transceiver delivers a low pulse when a light pulse is seen
};
enum IUSCI_A1_UART.UCIRTXCLK_t
index URL

IrDA transmit pulse clock select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRTXCLK_t {
    UCIRTXCLK_OFF,
    // BRCLK
    UCIRTXCLK
    // BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
};
enum IUSCI_A1_UART.UCIRTXPL0_t
index URL

IRDA Transmit Pulse Length Bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRTXPL0_t {
    UCIRTXPL0_OFF,
    // Bit 0 OFF
    UCIRTXPL0
    // Bit 0 ON
};
enum IUSCI_A1_UART.UCIRTXPL1_t
index URL

IRDA Transmit Pulse Length Bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRTXPL1_t {
    UCIRTXPL1_OFF,
    // Bit 1 OFF
    UCIRTXPL1
    // Bit 1 ON
};
enum IUSCI_A1_UART.UCIRTXPL2_t
index URL

IRDA Transmit Pulse Length Bit 2

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRTXPL2_t {
    UCIRTXPL2_OFF,
    // Bit 2 OFF
    UCIRTXPL2
    // Bit 2 ON
};
enum IUSCI_A1_UART.UCIRTXPL3_t
index URL

IRDA Transmit Pulse Length Bit 3

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRTXPL3_t {
    UCIRTXPL3_OFF,
    // Bit 3 OFF
    UCIRTXPL3
    // Bit 3 ON
};
enum IUSCI_A1_UART.UCIRTXPL4_t
index URL

IRDA Transmit Pulse Length Bit 4

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRTXPL4_t {
    UCIRTXPL4_OFF,
    // Bit 4 OFF
    UCIRTXPL4
    // Bit 4 ON
};
enum IUSCI_A1_UART.UCIRTXPL5_t
index URL

IRDA Transmit Pulse Length Bit 5

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCIRTXPL5_t {
    UCIRTXPL5_OFF,
    // Bit 5 OFF
    UCIRTXPL5
    // Bit 5 ON
};
enum IUSCI_A1_UART.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_A1_UART.UCMODE_ASYNC_t
index URL

USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCMODE_ASYNC_t {
    UCMODE_0,
    // UART Mode
    UCMODE_1,
    // Idle-Line Multiprocessor Mode
    UCMODE_2,
    // Address-Bit Multiprocessor Mode
    UCMODE_3
    // UART Mode with automatic baud rate detection
};
enum IUSCI_A1_UART.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_A1_UART.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_A1_UART.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_A1_UART.UCOS16_t
index URL

Oversampling mode enabled

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCOS16_t {
    UCOS16_OFF,
    // Disabled
    UCOS16
    // Enabled
};
enum IUSCI_A1_UART.UCPAR_t
index URL

Parity select. UCPAR is not used when parity is disabled

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCPAR_t {
    UCPAR_OFF,
    // Odd parity
    UCPAR
    // Even parity
};
enum IUSCI_A1_UART.UCPEN_t
index URL

Parity enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCPEN_t {
    UCPEN_OFF,
    // Parity Disabled
    UCPEN
    // Parity Enabled
};
enum IUSCI_A1_UART.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_A1_UART.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_A1_UART.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_A1_UART.UCSPB_t
index URL

Stop bit select. Number of stop bits

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCSPB_t {
    UCSPB_OFF,
    // One stop bit
    UCSPB
    // Two stop bits
};
enum IUSCI_A1_UART.UCSSEL_UART_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCSSEL_UART_t {
    UCSSEL_0,
    // UCLK
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_A1_UART.UCSTOE_t
index URL

Synch field time out error

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCSTOE_t {
    UCSTOE_OFF,
    // No error
    UCSTOE
    // Length of synch field exceeded measurable time
};
enum IUSCI_A1_UART.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_A1_UART.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_A1_UART.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_A1_UART.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
typedef IUSCI_A1_UART.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_A1_UART.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
typedef String StringArray[];
struct IUSCI_A1_UART.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_A1_UART.UCxABCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly struct UCxABCTL_t {
     IUSCI_UART.UCDELIM1_t UCDELIM1;
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
     IUSCI_UART.UCDELIM0_t UCDELIM0;
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
     IUSCI_UART.UCSTOE_t UCSTOE;
    // Synch field time out error 0 No error 1 Length of synch field exceeded measurable time
     IUSCI_UART.UCBTOE_t UCBTOE;
    // Break time out error 0 No error 1 Length of break field exceeded 22 bit times
     IUSCI_UART.UCABDEN_t UCABDEN;
    // Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
};
struct IUSCI_A1_UART.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly struct UCxCTL0_t {
     IUSCI_UART.UCPEN_t UCPEN;
    // Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation
     IUSCI_UART.UCPAR_t UCPAR;
    // Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity
     IUSCI_UART.UCMSB_t UCMSB;
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
     IUSCI_UART.UC7BIT_t UC7BIT;
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
     IUSCI_UART.UCSPB_t UCSPB;
    // Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits
     IUSCI_UART.UCMODE_ASYNC_t UCMODE;
    // USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection
     IUSCI_UART.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
};
struct IUSCI_A1_UART.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly struct UCxCTL1_t {
     IUSCI_UART.UCSSEL_UART_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_UART.UCRXEIE_t UCRXEIE;
    // Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG
     IUSCI_UART.UCBRKIE_t UCBRKIE;
    // Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG
     IUSCI_UART.UCDORM_t UCDORM;
    // Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
     IUSCI_UART.UCTXADDR_t UCTXADDR;
    // Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address
     IUSCI_UART.UCTXBRK_t UCTXBRK;
    // Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch
     IUSCI_UART.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_A1_UART.UCxIRRCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly struct UCxIRRCTL_t {
     IUSCI_UART.UCIRRXFL5_t UCIRRXFL5;
    // IRDA Receive Filter Length Bit 5
     IUSCI_UART.UCIRRXFL4_t UCIRRXFL4;
    // IRDA Receive Filter Length Bit 4
     IUSCI_UART.UCIRRXFL3_t UCIRRXFL3;
    // IRDA Receive Filter Length Bit 3
     IUSCI_UART.UCIRRXFL2_t UCIRRXFL2;
    // IRDA Receive Filter Length Bit 2
     IUSCI_UART.UCIRRXFL1_t UCIRRXFL1;
    // IRDA Receive Filter Length Bit 1
     IUSCI_UART.UCIRRXFL0_t UCIRRXFL0;
    // IRDA Receive Filter Length Bit 0
     IUSCI_UART.UCIRRXPL_t UCIRRXPL;
    // IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen
     IUSCI_UART.UCIRRXFE_t UCIRRXFE;
    // IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled
};
struct IUSCI_A1_UART.UCxIRTCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly struct UCxIRTCTL_t {
     IUSCI_UART.UCIRTXPL5_t UCIRTXPL5;
    // IRDA Transmit Pulse Length Bit 5
     IUSCI_UART.UCIRTXPL4_t UCIRTXPL4;
    // IRDA Transmit Pulse Length Bit 4
     IUSCI_UART.UCIRTXPL3_t UCIRTXPL3;
    // IRDA Transmit Pulse Length Bit 3
     IUSCI_UART.UCIRTXPL2_t UCIRTXPL2;
    // IRDA Transmit Pulse Length Bit 2
     IUSCI_UART.UCIRTXPL1_t UCIRTXPL1;
    // IRDA Transmit Pulse Length Bit 1
     IUSCI_UART.UCIRTXPL0_t UCIRTXPL0;
    // IRDA Transmit Pulse Length Bit 0
     IUSCI_UART.UCIRTXCLK_t UCIRTXCLK;
    // IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
     IUSCI_UART.UCIREN_t UCIREN;
    // IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled
};
struct IUSCI_A1_UART.UCxMCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly struct UCxMCTL_t {
     IUSCI_UART.UCBRF_t UCBRF;
    // First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0
     IUSCI_UART.UCBRS_t UCBRS;
    // Second modulation stage select. These bits determine the modulation pattern for BITCLK
     IUSCI_UART.UCOS16_t UCOS16;
    // Oversampling mode enabled 0 Disabled 1 Enabled
};
struct IUSCI_A1_UART.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly struct UCxSTAT_t {
     IUSCI_UART.UCLISTEN_t UCLISTEN;
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
     IUSCI_UART.UCFE_t UCFE;
    // Framing error flag 0 No error 1 Character received with low stop bit
     IUSCI_UART.UCOE_t UCOE;
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
     IUSCI_UART.UCPE_t UCPE;
    // Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error
     IUSCI_UART.UCBRK_t UCBRK;
    // Break detect flag 0 No break condition 1 Break condition occurred
     IUSCI_UART.UCRXERR_t UCRXERR;
    // Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected
     IUSCI_UART.UCADDR_t UCADDR;
    // Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address
     IUSCI_UART.UCIDLE_t UCIDLE;
    // Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected
     IUSCI_UART.UCBUSY_t UCBUSY;
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
};
struct IUSCI_A1_UART.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_A1_UART.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_A1_UART.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_A1_UART.UCA1ABCTL // instance
index URL

Auto Baud Rate Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config IUSCI_A1_UART.UCxABCTL_t UCA1ABCTL = {
    UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
    UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
    UCSTOE: IUSCI_UART.UCSTOE_OFF,
    UCBTOE: IUSCI_UART.UCBTOE_OFF,
    UCABDEN: IUSCI_UART.UCABDEN_OFF
};
config IUSCI_A1_UART.UCA1BR0 // instance
index URL

Baud rate control register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config Bits8 UCA1BR0 = 0;
config IUSCI_A1_UART.UCA1BR1 // instance
index URL

Baud rate control register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config Bits8 UCA1BR1 = 0;
config IUSCI_A1_UART.UCA1CTL0 // instance
index URL

Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config IUSCI_A1_UART.UCxCTL0_t UCA1CTL0 = {
    UCPEN: IUSCI_UART.UCPEN_OFF,
    UCPAR: IUSCI_UART.UCPAR_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCSPB: IUSCI_UART.UCSPB_OFF,
    UCMODE: IUSCI_UART.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC_OFF
};
config IUSCI_A1_UART.UCA1CTL1 // instance
index URL

Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config IUSCI_A1_UART.UCxCTL1_t UCA1CTL1 = {
    UCSSEL: IUSCI_UART.UCSSEL_0,
    UCRXEIE: IUSCI.UCRXEIE_OFF,
    UCBRKIE: IUSCI.UCBRKIE_OFF,
    UCDORM: IUSCI.UCDORM_OFF,
    UCTXADDR: IUSCI.UCTXADDR_OFF,
    UCTXBRK: IUSCI.UCTXBRK_OFF,
    UCSWRST: IUSCI.UCSWRST
};
config IUSCI_A1_UART.UCA1IRRCTL // instance
index URL

IrDA Receive Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config IUSCI_A1_UART.UCxIRRCTL_t UCA1IRRCTL = {
    UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
    UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
    UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
    UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
    UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
    UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
    UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
    UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
};
config IUSCI_A1_UART.UCA1IRTCTL // instance
index URL

IrDA Transmit Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config IUSCI_A1_UART.UCxIRTCTL_t UCA1IRTCTL = {
    UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
    UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
    UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
    UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
    UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
    UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
    UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
    UCIREN: IUSCI_UART.UCIREN_OFF
};
config IUSCI_A1_UART.UCA1MCTL // instance
index URL

Modulation Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config IUSCI_A1_UART.UCxMCTL_t UCA1MCTL = {
    UCBRF: IUSCI_UART.UCBRF_0,
    UCBRS: IUSCI_UART.UCBRS_0,
    UCOS16: IUSCI_UART.UCOS16_OFF
};
config IUSCI_A1_UART.UCA1RXBUF // instance
index URL

Receive Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config Bits8 UCA1RXBUF = 0;
config IUSCI_A1_UART.UCA1STAT // instance
index URL

Status Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config IUSCI_A1_UART.UCxSTAT_t UCA1STAT = {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCPE: IUSCI.UCPE_OFF,
    UCBRK: IUSCI.UCBRK_OFF,
    UCRXERR: IUSCI.UCRXERR_OFF,
    UCADDR: IUSCI.UCADDR_OFF,
    UCIDLE: IUSCI.UCIDLE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config IUSCI_A1_UART.UCA1TXBUF // instance
index URL

Transmit Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config Bits8 UCA1TXBUF = 0;
config IUSCI_A1_UART.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config Float UCLKHz = 1000000;
config IUSCI_A1_UART.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_A1_UART.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
config String owner;
IUSCI_A1_UART.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_A1_UART.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_A1_UART.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_A1_UART.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_A1_UART.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_A1_UART.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_A1_UART.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_A1_UART.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:42 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_A1_UART

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface A1 UART 2xx
    14     */
    15    metaonly interface IUSCI_A1_UART inherits IUSCI_UART {
    16
    17    instance:
    18        /*! Control Register 0 */
    19        config UCxCTL0_t UCA1CTL0 = {
    20            UCPEN       : UCPEN_OFF,
    21            UCPAR       : UCPAR_OFF,
    22            UCMSB       : UCMSB_OFF,
    23            UC7BIT      : UC7BIT_OFF,
    24            UCSPB       : UCSPB_OFF,
    25            UCMODE      : UCMODE_0,
    26            UCSYNC      : UCSYNC_OFF,
    27        };
    28
    29        /*! Control Register 1 */
    30        config UCxCTL1_t UCA1CTL1 = {
    31            UCSSEL      : UCSSEL_0,
    32            UCRXEIE     : UCRXEIE_OFF,
    33            UCBRKIE     : UCBRKIE_OFF,
    34            UCDORM      : UCDORM_OFF,
    35            UCTXADDR    : UCTXADDR_OFF,
    36            UCTXBRK     : UCTXBRK_OFF,
    37            UCSWRST     : UCSWRST,
    38        };
    39
    40        /*! Modulation Control Register */
    41        config UCxMCTL_t UCA1MCTL = {
    42            UCBRF       : UCBRF_0,
    43            UCBRS       : UCBRS_0,
    44            UCOS16      : UCOS16_OFF,
    45        };
    46
    47        /*! Status Register */
    48        config UCxSTAT_t UCA1STAT = {
    49            UCLISTEN    : UCLISTEN_OFF,
    50            UCFE        : UCFE_OFF,
    51            UCOE        : UCOE_OFF,
    52            UCPE        : UCPE_OFF,
    53            UCBRK       : UCBRK_OFF,
    54            UCRXERR     : UCRXERR_OFF,
    55            UCADDR      : UCADDR_OFF,
    56            UCIDLE      : UCIDLE_OFF,
    57            UCBUSY      : UCBUSY,
    58        };
    59
    60        /*! IrDA Transmit Control Register */
    61        config UCxIRTCTL_t UCA1IRTCTL = {
    62            UCIRTXPL5   : UCIRTXPL5_OFF,
    63            UCIRTXPL4   : UCIRTXPL4_OFF,
    64            UCIRTXPL3   : UCIRTXPL3_OFF,
    65            UCIRTXPL2   : UCIRTXPL2_OFF,
    66            UCIRTXPL1   : UCIRTXPL1_OFF,
    67            UCIRTXPL0   : UCIRTXPL0_OFF,
    68            UCIRTXCLK   : UCIRTXCLK_OFF,
    69            UCIREN      : UCIREN_OFF,
    70        };
    71
    72        /*! IrDA Receive Control Register */
    73        config UCxIRRCTL_t UCA1IRRCTL = {
    74            UCIRRXFL5   : UCIRRXFL5_OFF,
    75            UCIRRXFL4   : UCIRRXFL4_OFF,
    76            UCIRRXFL3   : UCIRRXFL3_OFF,
    77            UCIRRXFL2   : UCIRRXFL2_OFF,
    78            UCIRRXFL1   : UCIRRXFL1_OFF,
    79            UCIRRXFL0   : UCIRRXFL0_OFF,
    80            UCIRRXPL    : UCIRRXPL_OFF,
    81            UCIRRXFE    : UCIRRXFE_OFF,
    82        };
    83
    84        /*! Auto Baud Rate Control Register */
    85        config UCxABCTL_t UCA1ABCTL = {
    86            UCDELIM1    : UCDELIM1_OFF,
    87            UCDELIM0    : UCDELIM0_OFF,
    88            UCSTOE      : UCSTOE_OFF,
    89            UCBTOE      : UCBTOE_OFF,
    90            UCABDEN     : UCABDEN_OFF,
    91        };
    92
    93        /*! Receive Buffer Register */
    94        config Bits8 UCA1RXBUF = 0;
    95
    96        /*! Transmit Buffer Register */
    97        config Bits8 UCA1TXBUF = 0;
    98
    99        /*! Baud rate control register 0 */
   100        config Bits8 UCA1BR0 = 0;
   101
   102        /*! Baud rate control register 1 */
   103        config Bits8 UCA1BR1 = 0;
   104    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_B0_I2C

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_B0_I2C
index URL

Universal Serial Communication Interface B0 I2C 2xx

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
metaonly interface IUSCI_B0_I2C { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI_I2C
    // inherits ti.catalog.msp430.peripherals.communication.IUSCI
        // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_B0_I2C inherits IUSCI_I2C {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCA10_t// Own addressing mode select {
         UCA10_OFF// Own address is a 7-bit address,
         UCA10// Own address is a 10-bit address
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCALIFG_t// Arbitration lost interrupt flag {
         UCALIFG_OFF// No interrupt pending,
         UCALIFG// Interrupt pending
    };
    enum UCBBUSY_t// Bus busy {
         UCBBUSY_OFF// Bus inactive,
         UCBBUSY// Bus busy
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCGCEN_t// General call response enable {
         UCGCEN_OFF// Do not respond to a general call,
         UCGCEN// Respond to a general call
    };
    enum UCGC_t// General call address received {
         UCGC_OFF// No general call address received,
         UCGC// General call address received
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMM_t// Multi-master environment select {
         UCMM_OFF// Single master environment. There is no other master in the system. The address compare unit is disabled,
         UCMM// Multi master environment
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCMST_t// Master mode select {
         UCMST_OFF// Slave mode,
         UCMST// Master mode
    };
    enum UCNACKIFG_t// Not-acknowledge received interrupt flag {
         UCNACKIFG_OFF// No interrupt pending,
         UCNACKIFG// Interrupt pending
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSCLLOW_t// SCL low {
         UCSCLLOW_OFF// SCL is not held low,
         UCSCLLOW// SCL is held low
    };
    enum UCSLA10_t// Slave addressing mode select {
         UCSLA10_OFF// Address slave with 7-bit address,
         UCSLA10// Address slave with 10-bit address
    };
    enum UCSSEL_I2C_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// UCLK,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSTPIFG_t// Stop condition interrupt flag {
         UCSTPIFG_OFF// No interrupt pending,
         UCSTPIFG// Interrupt pending
    };
    enum UCSTTIFG_t// Start condition interrupt flag {
         UCSTTIFG_OFF// No interrupt pending,
         UCSTTIFG// Interrupt pending
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTR_t// Transmitter/Receiver {
         UCTR_OFF// Receiver,
         UCTR// Transmitter
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    enum UCTXNACK_t// Transmit a NACK {
         UCTXNACK_OFF// Acknowledge normally,
         UCTXNACK// Generate NACK
    };
    enum UCTXSTP_t// Transmit STOP condition in master mode {
         UCTXSTP_OFF// No STOP generated,
         UCTXSTP// Generate STOP
    };
    enum UCTXSTT_t// Transmit START condition in master mode {
         UCTXSTT_OFF// Do not generate START condition,
         UCTXSTT// Generate START condition
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCBxI2COA_t// {
         IUSCI_I2C.UCGCEN_t UCGCEN// General call response enable 0 Do not respond to a general call 1 Respond to a general call;
        UChar I2COA// I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_I2C.UCA10_t UCA10// Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address;
         IUSCI_I2C.UCSLA10_t UCSLA10// Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address;
         IUSCI_I2C.UCMM_t UCMM// Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment;
         IUSCI_I2C.UCMST_t UCMST// Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode;
         IUSCI_I2C.UCMODE_SYNC_t UCMODE// USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode;
         IUSCI_I2C.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_I2C.UCSSEL_I2C_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_I2C.UCTR_t UCTR// Transmitter/Receiver 0 Receiver 1 Transmitter;
         IUSCI_I2C.UCTXNACK_t UCTXNACK// Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK;
         IUSCI_I2C.UCTXSTP_t UCTXSTP// Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP;
         IUSCI_I2C.UCTXSTT_t UCTXSTT// Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition;
         IUSCI_I2C.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_I2C.UCSCLLOW_t UCSCLLOW// SCL low 0 SCL is not held low 1 SCL is held low;
         IUSCI_I2C.UCGC_t UCGC// General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received;
         IUSCI_I2C.UCBBUSY_t UCBBUSY// Bus busy 0 Bus inactive 1 Bus busy;
         IUSCI_I2C.UCNACKIFG_t UCNACKIFG// Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending;
         IUSCI_I2C.UCSTPIFG_t UCSTPIFG// Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending;
         IUSCI_I2C.UCSTTIFG_t UCSTTIFG// Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending;
         IUSCI_I2C.UCALIFG_t UCALIFG// Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Bits8 UCB0BR0// Bit Rate Control Register 0 = 0;
    config Bits8 UCB0BR1// Bit Rate Control Register 1 = 0;
    config IUSCI_B0_I2C.UCxCTL0_t UCB0CTL0// Control Register 0 = {
        UCA10: IUSCI_I2C.UCA10_OFF,
        UCSLA10: IUSCI_I2C.UCSLA10_OFF,
        UCMM: IUSCI_I2C.UCMM_OFF,
        UCMST: IUSCI_I2C.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    config IUSCI_B0_I2C.UCxCTL1_t UCB0CTL1// Control Register 1 = {
        UCSSEL: IUSCI_I2C.UCSSEL_0,
        UCTR: IUSCI_I2C.UCTR_OFF,
        UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
        UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
        UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
        UCSWRST: IUSCI.UCSWRST
    };
    config IUSCI_B0_I2C.UCBxI2COA_t UCB0I2COA// I2C Own Address Register = {
        UCGCEN: IUSCI_I2C.UCGCEN_OFF,
        I2COA: 0
    };
    config Bits8 UCB0I2CSA// I2C Slave Address Register = 0;
    config Bits8 UCB0RXBUF// Receive Buffer Register = 0;
    config IUSCI_B0_I2C.UCxSTAT_t UCB0STAT// Status Register = {
        UCSCLLOW: IUSCI_I2C.UCSCLLOW,
        UCGC: IUSCI_I2C.UCGC,
        UCBBUSY: IUSCI_I2C.UCBBUSY,
        UCNACKIFG: IUSCI_I2C.UCNACKIFG,
        UCSTPIFG: IUSCI_I2C.UCSTPIFG,
        UCSTTIFG: IUSCI_I2C.UCSTTIFG,
        UCALIFG: IUSCI_I2C.UCALIFG
    };
    config Bits8 UCB0TXBUF// Transmit Buffer Register = 0;
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCBxI2CSA// Returns UCBxI2CSA register value based on which module();
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCBxI2CSA// Sets UCxxI2CSA register value based on which module(Bits8 value);
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_B0_I2C.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_B0_I2C.UCA10_t
index URL

Own addressing mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCA10_t {
    UCA10_OFF,
    // Own address is a 7-bit address
    UCA10
    // Own address is a 10-bit address
};
enum IUSCI_B0_I2C.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_B0_I2C.UCALIFG_t
index URL

Arbitration lost interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCALIFG_t {
    UCALIFG_OFF,
    // No interrupt pending
    UCALIFG
    // Interrupt pending
};
enum IUSCI_B0_I2C.UCBBUSY_t
index URL

Bus busy

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCBBUSY_t {
    UCBBUSY_OFF,
    // Bus inactive
    UCBBUSY
    // Bus busy
};
enum IUSCI_B0_I2C.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_B0_I2C.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_B0_I2C.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_B0_I2C.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_B0_I2C.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_B0_I2C.UCGCEN_t
index URL

General call response enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCGCEN_t {
    UCGCEN_OFF,
    // Do not respond to a general call
    UCGCEN
    // Respond to a general call
};
enum IUSCI_B0_I2C.UCGC_t
index URL

General call address received

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCGC_t {
    UCGC_OFF,
    // No general call address received
    UCGC
    // General call address received
};
enum IUSCI_B0_I2C.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_B0_I2C.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_B0_I2C.UCMM_t
index URL

Multi-master environment select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCMM_t {
    UCMM_OFF,
    // Single master environment. There is no other master in the system. The address compare unit is disabled
    UCMM
    // Multi master environment
};
enum IUSCI_B0_I2C.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_B0_I2C.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_B0_I2C.UCMST_t
index URL

Master mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCMST_t {
    UCMST_OFF,
    // Slave mode
    UCMST
    // Master mode
};
enum IUSCI_B0_I2C.UCNACKIFG_t
index URL

Not-acknowledge received interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCNACKIFG_t {
    UCNACKIFG_OFF,
    // No interrupt pending
    UCNACKIFG
    // Interrupt pending
};
enum IUSCI_B0_I2C.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_B0_I2C.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_B0_I2C.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_B0_I2C.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_B0_I2C.UCSCLLOW_t
index URL

SCL low

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCSCLLOW_t {
    UCSCLLOW_OFF,
    // SCL is not held low
    UCSCLLOW
    // SCL is held low
};
enum IUSCI_B0_I2C.UCSLA10_t
index URL

Slave addressing mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCSLA10_t {
    UCSLA10_OFF,
    // Address slave with 7-bit address
    UCSLA10
    // Address slave with 10-bit address
};
enum IUSCI_B0_I2C.UCSSEL_I2C_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCSSEL_I2C_t {
    UCSSEL_0,
    // UCLK
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_B0_I2C.UCSTPIFG_t
index URL

Stop condition interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCSTPIFG_t {
    UCSTPIFG_OFF,
    // No interrupt pending
    UCSTPIFG
    // Interrupt pending
};
enum IUSCI_B0_I2C.UCSTTIFG_t
index URL

Start condition interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCSTTIFG_t {
    UCSTTIFG_OFF,
    // No interrupt pending
    UCSTTIFG
    // Interrupt pending
};
enum IUSCI_B0_I2C.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_B0_I2C.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_B0_I2C.UCTR_t
index URL

Transmitter/Receiver

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCTR_t {
    UCTR_OFF,
    // Receiver
    UCTR
    // Transmitter
};
enum IUSCI_B0_I2C.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_B0_I2C.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
enum IUSCI_B0_I2C.UCTXNACK_t
index URL

Transmit a NACK

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCTXNACK_t {
    UCTXNACK_OFF,
    // Acknowledge normally
    UCTXNACK
    // Generate NACK
};
enum IUSCI_B0_I2C.UCTXSTP_t
index URL

Transmit STOP condition in master mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCTXSTP_t {
    UCTXSTP_OFF,
    // No STOP generated
    UCTXSTP
    // Generate STOP
};
enum IUSCI_B0_I2C.UCTXSTT_t
index URL

Transmit START condition in master mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
enum UCTXSTT_t {
    UCTXSTT_OFF,
    // Do not generate START condition
    UCTXSTT
    // Generate START condition
};
typedef IUSCI_B0_I2C.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_B0_I2C.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
typedef String StringArray[];
struct IUSCI_B0_I2C.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_B0_I2C.UCBxI2COA_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
metaonly struct UCBxI2COA_t {
     IUSCI_I2C.UCGCEN_t UCGCEN;
    // General call response enable 0 Do not respond to a general call 1 Respond to a general call
    UChar I2COA;
    // I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB
};
struct IUSCI_B0_I2C.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
metaonly struct UCxCTL0_t {
     IUSCI_I2C.UCA10_t UCA10;
    // Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address
     IUSCI_I2C.UCSLA10_t UCSLA10;
    // Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address
     IUSCI_I2C.UCMM_t UCMM;
    // Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment
     IUSCI_I2C.UCMST_t UCMST;
    // Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode
     IUSCI_I2C.UCMODE_SYNC_t UCMODE;
    // USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode
     IUSCI_I2C.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode
};
struct IUSCI_B0_I2C.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
metaonly struct UCxCTL1_t {
     IUSCI_I2C.UCSSEL_I2C_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_I2C.UCTR_t UCTR;
    // Transmitter/Receiver 0 Receiver 1 Transmitter
     IUSCI_I2C.UCTXNACK_t UCTXNACK;
    // Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK
     IUSCI_I2C.UCTXSTP_t UCTXSTP;
    // Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP
     IUSCI_I2C.UCTXSTT_t UCTXSTT;
    // Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition
     IUSCI_I2C.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_B0_I2C.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
metaonly struct UCxSTAT_t {
     IUSCI_I2C.UCSCLLOW_t UCSCLLOW;
    // SCL low 0 SCL is not held low 1 SCL is held low
     IUSCI_I2C.UCGC_t UCGC;
    // General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received
     IUSCI_I2C.UCBBUSY_t UCBBUSY;
    // Bus busy 0 Bus inactive 1 Bus busy
     IUSCI_I2C.UCNACKIFG_t UCNACKIFG;
    // Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
     IUSCI_I2C.UCSTPIFG_t UCSTPIFG;
    // Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
     IUSCI_I2C.UCSTTIFG_t UCSTTIFG;
    // Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending
     IUSCI_I2C.UCALIFG_t UCALIFG;
    // Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending
};
struct IUSCI_B0_I2C.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_B0_I2C.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_B0_I2C.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_B0_I2C.UCB0BR0 // instance
index URL

Bit Rate Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config Bits8 UCB0BR0 = 0;
config IUSCI_B0_I2C.UCB0BR1 // instance
index URL

Bit Rate Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config Bits8 UCB0BR1 = 0;
config IUSCI_B0_I2C.UCB0CTL0 // instance
index URL

Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config IUSCI_B0_I2C.UCxCTL0_t UCB0CTL0 = {
    UCA10: IUSCI_I2C.UCA10_OFF,
    UCSLA10: IUSCI_I2C.UCSLA10_OFF,
    UCMM: IUSCI_I2C.UCMM_OFF,
    UCMST: IUSCI_I2C.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config IUSCI_B0_I2C.UCB0CTL1 // instance
index URL

Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config IUSCI_B0_I2C.UCxCTL1_t UCB0CTL1 = {
    UCSSEL: IUSCI_I2C.UCSSEL_0,
    UCTR: IUSCI_I2C.UCTR_OFF,
    UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
    UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
    UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
    UCSWRST: IUSCI.UCSWRST
};
config IUSCI_B0_I2C.UCB0I2COA // instance
index URL

I2C Own Address Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config IUSCI_B0_I2C.UCBxI2COA_t UCB0I2COA = {
    UCGCEN: IUSCI_I2C.UCGCEN_OFF,
    I2COA: 0
};
config IUSCI_B0_I2C.UCB0I2CSA // instance
index URL

I2C Slave Address Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config Bits8 UCB0I2CSA = 0;
config IUSCI_B0_I2C.UCB0RXBUF // instance
index URL

Receive Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config Bits8 UCB0RXBUF = 0;
config IUSCI_B0_I2C.UCB0STAT // instance
index URL

Status Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config IUSCI_B0_I2C.UCxSTAT_t UCB0STAT = {
    UCSCLLOW: IUSCI_I2C.UCSCLLOW,
    UCGC: IUSCI_I2C.UCGC,
    UCBBUSY: IUSCI_I2C.UCBBUSY,
    UCNACKIFG: IUSCI_I2C.UCNACKIFG,
    UCSTPIFG: IUSCI_I2C.UCSTPIFG,
    UCSTTIFG: IUSCI_I2C.UCSTTIFG,
    UCALIFG: IUSCI_I2C.UCALIFG
};
config IUSCI_B0_I2C.UCB0TXBUF // instance
index URL

Transmit Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config Bits8 UCB0TXBUF = 0;
config IUSCI_B0_I2C.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config Float UCLKHz = 1000000;
config IUSCI_B0_I2C.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_B0_I2C.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
config String owner;
IUSCI_B0_I2C.getUCBxI2CSA() // instance
index URL

Returns UCBxI2CSA register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bits8 getUCBxI2CSA();
SEE
getUCBxI2CSA
IUSCI_B0_I2C.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_B0_I2C.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_B0_I2C.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_B0_I2C.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_B0_I2C.setUCBxI2CSA() // instance
index URL

Sets UCxxI2CSA register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Void setUCBxI2CSA(Bits8 value);
SEE
setUCBxI2CSA
IUSCI_B0_I2C.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_B0_I2C.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_B0_I2C.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_B0_I2C.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:42 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_B0_I2C

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface B0 I2C 2xx
    14     */
    15    metaonly interface IUSCI_B0_I2C inherits IUSCI_I2C {
    16
    17    instance:
    18        /*! Control Register 0 */
    19        config UCxCTL0_t UCB0CTL0 = {
    20            UCA10       : UCA10_OFF,
    21            UCSLA10     : UCSLA10_OFF,
    22            UCMM        : UCMM_OFF,
    23            UCMST       : UCMST_OFF,
    24            UCMODE      : UCMODE_0,
    25            UCSYNC      : UCSYNC,
    26        };
    27
    28        /*! Control Register 1 */
    29        config UCxCTL1_t UCB0CTL1 = {
    30            UCSSEL      : UCSSEL_0,
    31            UCTR        : UCTR_OFF,
    32            UCTXNACK    : UCTXNACK_OFF,
    33            UCTXSTP     : UCTXSTP_OFF,
    34            UCTXSTT     : UCTXSTT_OFF,
    35            UCSWRST     : UCSWRST,
    36        };
    37
    38        /*! Status Register */
    39        config UCxSTAT_t UCB0STAT = {
    40            UCSCLLOW    : UCSCLLOW,
    41            UCGC        : UCGC,
    42            UCBBUSY     : UCBBUSY,
    43            UCNACKIFG   : UCNACKIFG,
    44            UCSTPIFG    : UCSTPIFG,
    45            UCSTTIFG    : UCSTTIFG,
    46            UCALIFG     : UCALIFG,
    47        };
    48
    49        /*! I2C Own Address Register */
    50        config UCBxI2COA_t UCB0I2COA = {
    51            UCGCEN      : UCGCEN_OFF,
    52            I2COA       : 0,
    53        };
    54
    55        /*! I2C Slave Address Register */
    56        config Bits8 UCB0I2CSA = 0;
    57
    58        /*! Receive Buffer Register */
    59        config Bits8 UCB0RXBUF = 0;
    60
    61        /*! Transmit Buffer Register */
    62        config Bits8 UCB0TXBUF = 0;
    63
    64        /*! Bit Rate Control Register 0 */
    65        config Bits8 UCB0BR0 = 0;
    66
    67        /*! Bit Rate Control Register 1 */
    68        config Bits8 UCB0BR1 = 0;
    69    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_B0_SPI

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_B0_SPI
index URL

Universal Serial Communication Interface B0 SPI 2xx

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
metaonly interface IUSCI_B0_SPI { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI_SPI
    // inherits ti.catalog.msp430.peripherals.communication.IUSCI
        // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_B0_SPI inherits IUSCI_SPI {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCCKPH_t// Clock phase select {
         UCCKPH_OFF// Data is changed on the first UCLK edge and captured on the following edge,
         UCCKPH// Data is captured on the first UCLK edge and changed on the following edge
    };
    enum UCCKPL_t// Clock polarity select {
         UCCKPL_OFF// Inactive state is low,
         UCCKPL// Inactive state is high
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCMST_t// Master mode select {
         UCMST_OFF// Slave mode,
         UCMST// Master mode
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSSEL_SPI_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// NA,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_SPI.UCCKPH_t UCCKPH// Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge;
         IUSCI_SPI.UCCKPL_t UCCKPL// Clock polarity select 0 The inactive state is low 1 The inactive state is high;
         IUSCI_SPI.UCMSB_t UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first;
         IUSCI_SPI.UC7BIT_t UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data;
         IUSCI_SPI.UCMST_t UCMST// Master mode select 0 Slave mode 1 Master mode;
         IUSCI_SPI.UCMODE_SYNC_t UCMODE// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode;
         IUSCI_SPI.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_SPI.UCSSEL_SPI_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_SPI.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_SPI.UCLISTEN_t UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver;
         IUSCI_SPI.UCFE_t UCFE// Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred;
         IUSCI_SPI.UCOE_t UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred;
         IUSCI_SPI.UCBUSY_t UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Bits8 UCB0BR0// Bit Rate Control Register 0 = 0;
    config Bits8 UCB0BR1// Bit Rate Control Register 1 = 0;
    config IUSCI_B0_SPI.UCxCTL0_t UCB0CTL0// Control Register 0 = {
        UCCKPH: IUSCI_SPI.UCCKPH_OFF,
        UCCKPL: IUSCI_SPI.UCCKPL_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCMST: IUSCI_SPI.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    config IUSCI_B0_SPI.UCxCTL1_t UCB0CTL1// Control Register 1 = {
        UCSSEL: IUSCI_SPI.UCSSEL_0,
        UCSWRST: IUSCI.UCSWRST
    };
    config Bits8 UCB0RXBUF// Receive Buffer Register = 0;
    config IUSCI_B0_SPI.UCxSTAT_t UCB0STAT// Status Register = {
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    config Bits8 UCB0TXBUF// Transmit Buffer Register = 0;
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_B0_SPI.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_B0_SPI.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_B0_SPI.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_B0_SPI.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_B0_SPI.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_B0_SPI.UCCKPH_t
index URL

Clock phase select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCCKPH_t {
    UCCKPH_OFF,
    // Data is changed on the first UCLK edge and captured on the following edge
    UCCKPH
    // Data is captured on the first UCLK edge and changed on the following edge
};
enum IUSCI_B0_SPI.UCCKPL_t
index URL

Clock polarity select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCCKPL_t {
    UCCKPL_OFF,
    // Inactive state is low
    UCCKPL
    // Inactive state is high
};
enum IUSCI_B0_SPI.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_B0_SPI.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_B0_SPI.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_B0_SPI.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_B0_SPI.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_B0_SPI.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_B0_SPI.UCMST_t
index URL

Master mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCMST_t {
    UCMST_OFF,
    // Slave mode
    UCMST
    // Master mode
};
enum IUSCI_B0_SPI.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_B0_SPI.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_B0_SPI.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_B0_SPI.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_B0_SPI.UCSSEL_SPI_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCSSEL_SPI_t {
    UCSSEL_0,
    // NA
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_B0_SPI.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_B0_SPI.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_B0_SPI.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_B0_SPI.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
typedef IUSCI_B0_SPI.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_B0_SPI.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
typedef String StringArray[];
struct IUSCI_B0_SPI.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_B0_SPI.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
metaonly struct UCxCTL0_t {
     IUSCI_SPI.UCCKPH_t UCCKPH;
    // Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge
     IUSCI_SPI.UCCKPL_t UCCKPL;
    // Clock polarity select 0 The inactive state is low 1 The inactive state is high
     IUSCI_SPI.UCMSB_t UCMSB;
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
     IUSCI_SPI.UC7BIT_t UC7BIT;
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
     IUSCI_SPI.UCMST_t UCMST;
    // Master mode select 0 Slave mode 1 Master mode
     IUSCI_SPI.UCMODE_SYNC_t UCMODE;
    // USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode
     IUSCI_SPI.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
};
struct IUSCI_B0_SPI.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
metaonly struct UCxCTL1_t {
     IUSCI_SPI.UCSSEL_SPI_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_SPI.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_B0_SPI.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
metaonly struct UCxSTAT_t {
     IUSCI_SPI.UCLISTEN_t UCLISTEN;
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
     IUSCI_SPI.UCFE_t UCFE;
    // Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred
     IUSCI_SPI.UCOE_t UCOE;
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
     IUSCI_SPI.UCBUSY_t UCBUSY;
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
};
struct IUSCI_B0_SPI.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_B0_SPI.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_B0_SPI.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_B0_SPI.UCB0BR0 // instance
index URL

Bit Rate Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config Bits8 UCB0BR0 = 0;
config IUSCI_B0_SPI.UCB0BR1 // instance
index URL

Bit Rate Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config Bits8 UCB0BR1 = 0;
config IUSCI_B0_SPI.UCB0CTL0 // instance
index URL

Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config IUSCI_B0_SPI.UCxCTL0_t UCB0CTL0 = {
    UCCKPH: IUSCI_SPI.UCCKPH_OFF,
    UCCKPL: IUSCI_SPI.UCCKPL_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCMST: IUSCI_SPI.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config IUSCI_B0_SPI.UCB0CTL1 // instance
index URL

Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config IUSCI_B0_SPI.UCxCTL1_t UCB0CTL1 = {
    UCSSEL: IUSCI_SPI.UCSSEL_0,
    UCSWRST: IUSCI.UCSWRST
};
config IUSCI_B0_SPI.UCB0RXBUF // instance
index URL

Receive Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config Bits8 UCB0RXBUF = 0;
config IUSCI_B0_SPI.UCB0STAT // instance
index URL

Status Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config IUSCI_B0_SPI.UCxSTAT_t UCB0STAT = {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config IUSCI_B0_SPI.UCB0TXBUF // instance
index URL

Transmit Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config Bits8 UCB0TXBUF = 0;
config IUSCI_B0_SPI.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config Float UCLKHz = 1000000;
config IUSCI_B0_SPI.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_B0_SPI.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
config String owner;
IUSCI_B0_SPI.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_B0_SPI.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_B0_SPI.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_B0_SPI.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_B0_SPI.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_B0_SPI.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_B0_SPI.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_B0_SPI.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:42 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_B0_SPI

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface B0 SPI 2xx
    14     */
    15    metaonly interface IUSCI_B0_SPI inherits IUSCI_SPI {
    16
    17    instance:
    18        /*! Control Register 0 */
    19        config UCxCTL0_t UCB0CTL0 = {
    20            UCCKPH      : UCCKPH_OFF,
    21            UCCKPL      : UCCKPL_OFF,
    22            UCMSB       : UCMSB_OFF,
    23            UC7BIT      : UC7BIT_OFF,
    24            UCMST       : UCMST_OFF,
    25            UCMODE      : UCMODE_0,
    26            UCSYNC      : UCSYNC,
    27        };
    28
    29        /*! Control Register 1 */
    30        config UCxCTL1_t UCB0CTL1 = {
    31            UCSSEL      : UCSSEL_0,
    32            UCSWRST     : UCSWRST,
    33        };
    34
    35        /*! Status Register */
    36        config UCxSTAT_t UCB0STAT = {
    37            UCLISTEN    : UCLISTEN_OFF,
    38            UCFE        : UCFE_OFF,
    39            UCOE        : UCOE_OFF,
    40            UCBUSY      : UCBUSY,
    41        };
    42
    43        /*! Bit Rate Control Register 0 */
    44        config Bits8 UCB0BR0 = 0;
    45
    46        /*! Bit Rate Control Register 1 */
    47        config Bits8 UCB0BR1 = 0;
    48
    49        /*! Receive Buffer Register */
    50        config Bits8 UCB0RXBUF = 0;
    51
    52        /*! Transmit Buffer Register */
    53        config Bits8 UCB0TXBUF = 0;
    54    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_B1_I2C

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_B1_I2C
index URL

Universal Serial Communication Interface B1 I2C 2xx

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
metaonly interface IUSCI_B1_I2C { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI_I2C
    // inherits ti.catalog.msp430.peripherals.communication.IUSCI
        // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_B1_I2C inherits IUSCI_I2C {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCA10_t// Own addressing mode select {
         UCA10_OFF// Own address is a 7-bit address,
         UCA10// Own address is a 10-bit address
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCALIFG_t// Arbitration lost interrupt flag {
         UCALIFG_OFF// No interrupt pending,
         UCALIFG// Interrupt pending
    };
    enum UCBBUSY_t// Bus busy {
         UCBBUSY_OFF// Bus inactive,
         UCBBUSY// Bus busy
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCGCEN_t// General call response enable {
         UCGCEN_OFF// Do not respond to a general call,
         UCGCEN// Respond to a general call
    };
    enum UCGC_t// General call address received {
         UCGC_OFF// No general call address received,
         UCGC// General call address received
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMM_t// Multi-master environment select {
         UCMM_OFF// Single master environment. There is no other master in the system. The address compare unit is disabled,
         UCMM// Multi master environment
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCMST_t// Master mode select {
         UCMST_OFF// Slave mode,
         UCMST// Master mode
    };
    enum UCNACKIFG_t// Not-acknowledge received interrupt flag {
         UCNACKIFG_OFF// No interrupt pending,
         UCNACKIFG// Interrupt pending
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSCLLOW_t// SCL low {
         UCSCLLOW_OFF// SCL is not held low,
         UCSCLLOW// SCL is held low
    };
    enum UCSLA10_t// Slave addressing mode select {
         UCSLA10_OFF// Address slave with 7-bit address,
         UCSLA10// Address slave with 10-bit address
    };
    enum UCSSEL_I2C_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// UCLK,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSTPIFG_t// Stop condition interrupt flag {
         UCSTPIFG_OFF// No interrupt pending,
         UCSTPIFG// Interrupt pending
    };
    enum UCSTTIFG_t// Start condition interrupt flag {
         UCSTTIFG_OFF// No interrupt pending,
         UCSTTIFG// Interrupt pending
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTR_t// Transmitter/Receiver {
         UCTR_OFF// Receiver,
         UCTR// Transmitter
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    enum UCTXNACK_t// Transmit a NACK {
         UCTXNACK_OFF// Acknowledge normally,
         UCTXNACK// Generate NACK
    };
    enum UCTXSTP_t// Transmit STOP condition in master mode {
         UCTXSTP_OFF// No STOP generated,
         UCTXSTP// Generate STOP
    };
    enum UCTXSTT_t// Transmit START condition in master mode {
         UCTXSTT_OFF// Do not generate START condition,
         UCTXSTT// Generate START condition
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCBxI2COA_t// {
         IUSCI_I2C.UCGCEN_t UCGCEN// General call response enable 0 Do not respond to a general call 1 Respond to a general call;
        UChar I2COA// I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_I2C.UCA10_t UCA10// Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address;
         IUSCI_I2C.UCSLA10_t UCSLA10// Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address;
         IUSCI_I2C.UCMM_t UCMM// Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment;
         IUSCI_I2C.UCMST_t UCMST// Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode;
         IUSCI_I2C.UCMODE_SYNC_t UCMODE// USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode;
         IUSCI_I2C.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_I2C.UCSSEL_I2C_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_I2C.UCTR_t UCTR// Transmitter/Receiver 0 Receiver 1 Transmitter;
         IUSCI_I2C.UCTXNACK_t UCTXNACK// Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK;
         IUSCI_I2C.UCTXSTP_t UCTXSTP// Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP;
         IUSCI_I2C.UCTXSTT_t UCTXSTT// Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition;
         IUSCI_I2C.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_I2C.UCSCLLOW_t UCSCLLOW// SCL low 0 SCL is not held low 1 SCL is held low;
         IUSCI_I2C.UCGC_t UCGC// General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received;
         IUSCI_I2C.UCBBUSY_t UCBBUSY// Bus busy 0 Bus inactive 1 Bus busy;
         IUSCI_I2C.UCNACKIFG_t UCNACKIFG// Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending;
         IUSCI_I2C.UCSTPIFG_t UCSTPIFG// Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending;
         IUSCI_I2C.UCSTTIFG_t UCSTTIFG// Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending;
         IUSCI_I2C.UCALIFG_t UCALIFG// Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Bits8 UCB1BR0// Bit Rate Control Register 0 = 0;
    config Bits8 UCB1BR1// Bit Rate Control Register 1 = 0;
    config IUSCI_B1_I2C.UCxCTL0_t UCB1CTL0// Control Register 0 = {
        UCA10: IUSCI_I2C.UCA10_OFF,
        UCSLA10: IUSCI_I2C.UCSLA10_OFF,
        UCMM: IUSCI_I2C.UCMM_OFF,
        UCMST: IUSCI_I2C.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    config IUSCI_B1_I2C.UCxCTL1_t UCB1CTL1// Control Register 1 = {
        UCSSEL: IUSCI_I2C.UCSSEL_0,
        UCTR: IUSCI_I2C.UCTR_OFF,
        UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
        UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
        UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
        UCSWRST: IUSCI.UCSWRST
    };
    config IUSCI_B1_I2C.UCBxI2COA_t UCB1I2COA// I2C Own Address Register = {
        UCGCEN: IUSCI_I2C.UCGCEN_OFF,
        I2COA: 0
    };
    config Bits8 UCB1I2CSA// I2C Slave Address Register = 0;
    config Bits8 UCB1RXBUF// Receive Buffer Register = 0;
    config IUSCI_B1_I2C.UCxSTAT_t UCB1STAT// Status Register = {
        UCSCLLOW: IUSCI_I2C.UCSCLLOW,
        UCGC: IUSCI_I2C.UCGC,
        UCBBUSY: IUSCI_I2C.UCBBUSY,
        UCNACKIFG: IUSCI_I2C.UCNACKIFG,
        UCSTPIFG: IUSCI_I2C.UCSTPIFG,
        UCSTTIFG: IUSCI_I2C.UCSTTIFG,
        UCALIFG: IUSCI_I2C.UCALIFG
    };
    config Bits8 UCB1TXBUF// Transmit Buffer Register = 0;
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCBxI2CSA// Returns UCBxI2CSA register value based on which module();
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCBxI2CSA// Sets UCxxI2CSA register value based on which module(Bits8 value);
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_B1_I2C.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_B1_I2C.UCA10_t
index URL

Own addressing mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCA10_t {
    UCA10_OFF,
    // Own address is a 7-bit address
    UCA10
    // Own address is a 10-bit address
};
enum IUSCI_B1_I2C.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_B1_I2C.UCALIFG_t
index URL

Arbitration lost interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCALIFG_t {
    UCALIFG_OFF,
    // No interrupt pending
    UCALIFG
    // Interrupt pending
};
enum IUSCI_B1_I2C.UCBBUSY_t
index URL

Bus busy

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCBBUSY_t {
    UCBBUSY_OFF,
    // Bus inactive
    UCBBUSY
    // Bus busy
};
enum IUSCI_B1_I2C.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_B1_I2C.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_B1_I2C.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_B1_I2C.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_B1_I2C.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_B1_I2C.UCGCEN_t
index URL

General call response enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCGCEN_t {
    UCGCEN_OFF,
    // Do not respond to a general call
    UCGCEN
    // Respond to a general call
};
enum IUSCI_B1_I2C.UCGC_t
index URL

General call address received

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCGC_t {
    UCGC_OFF,
    // No general call address received
    UCGC
    // General call address received
};
enum IUSCI_B1_I2C.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_B1_I2C.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_B1_I2C.UCMM_t
index URL

Multi-master environment select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCMM_t {
    UCMM_OFF,
    // Single master environment. There is no other master in the system. The address compare unit is disabled
    UCMM
    // Multi master environment
};
enum IUSCI_B1_I2C.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_B1_I2C.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_B1_I2C.UCMST_t
index URL

Master mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCMST_t {
    UCMST_OFF,
    // Slave mode
    UCMST
    // Master mode
};
enum IUSCI_B1_I2C.UCNACKIFG_t
index URL

Not-acknowledge received interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCNACKIFG_t {
    UCNACKIFG_OFF,
    // No interrupt pending
    UCNACKIFG
    // Interrupt pending
};
enum IUSCI_B1_I2C.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_B1_I2C.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_B1_I2C.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_B1_I2C.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_B1_I2C.UCSCLLOW_t
index URL

SCL low

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCSCLLOW_t {
    UCSCLLOW_OFF,
    // SCL is not held low
    UCSCLLOW
    // SCL is held low
};
enum IUSCI_B1_I2C.UCSLA10_t
index URL

Slave addressing mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCSLA10_t {
    UCSLA10_OFF,
    // Address slave with 7-bit address
    UCSLA10
    // Address slave with 10-bit address
};
enum IUSCI_B1_I2C.UCSSEL_I2C_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCSSEL_I2C_t {
    UCSSEL_0,
    // UCLK
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_B1_I2C.UCSTPIFG_t
index URL

Stop condition interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCSTPIFG_t {
    UCSTPIFG_OFF,
    // No interrupt pending
    UCSTPIFG
    // Interrupt pending
};
enum IUSCI_B1_I2C.UCSTTIFG_t
index URL

Start condition interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCSTTIFG_t {
    UCSTTIFG_OFF,
    // No interrupt pending
    UCSTTIFG
    // Interrupt pending
};
enum IUSCI_B1_I2C.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_B1_I2C.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_B1_I2C.UCTR_t
index URL

Transmitter/Receiver

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCTR_t {
    UCTR_OFF,
    // Receiver
    UCTR
    // Transmitter
};
enum IUSCI_B1_I2C.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_B1_I2C.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
enum IUSCI_B1_I2C.UCTXNACK_t
index URL

Transmit a NACK

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCTXNACK_t {
    UCTXNACK_OFF,
    // Acknowledge normally
    UCTXNACK
    // Generate NACK
};
enum IUSCI_B1_I2C.UCTXSTP_t
index URL

Transmit STOP condition in master mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCTXSTP_t {
    UCTXSTP_OFF,
    // No STOP generated
    UCTXSTP
    // Generate STOP
};
enum IUSCI_B1_I2C.UCTXSTT_t
index URL

Transmit START condition in master mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
enum UCTXSTT_t {
    UCTXSTT_OFF,
    // Do not generate START condition
    UCTXSTT
    // Generate START condition
};
typedef IUSCI_B1_I2C.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_B1_I2C.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
typedef String StringArray[];
struct IUSCI_B1_I2C.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_B1_I2C.UCBxI2COA_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
metaonly struct UCBxI2COA_t {
     IUSCI_I2C.UCGCEN_t UCGCEN;
    // General call response enable 0 Do not respond to a general call 1 Respond to a general call
    UChar I2COA;
    // I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB
};
struct IUSCI_B1_I2C.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
metaonly struct UCxCTL0_t {
     IUSCI_I2C.UCA10_t UCA10;
    // Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address
     IUSCI_I2C.UCSLA10_t UCSLA10;
    // Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address
     IUSCI_I2C.UCMM_t UCMM;
    // Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment
     IUSCI_I2C.UCMST_t UCMST;
    // Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode
     IUSCI_I2C.UCMODE_SYNC_t UCMODE;
    // USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode
     IUSCI_I2C.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode
};
struct IUSCI_B1_I2C.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
metaonly struct UCxCTL1_t {
     IUSCI_I2C.UCSSEL_I2C_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_I2C.UCTR_t UCTR;
    // Transmitter/Receiver 0 Receiver 1 Transmitter
     IUSCI_I2C.UCTXNACK_t UCTXNACK;
    // Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK
     IUSCI_I2C.UCTXSTP_t UCTXSTP;
    // Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP
     IUSCI_I2C.UCTXSTT_t UCTXSTT;
    // Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition
     IUSCI_I2C.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_B1_I2C.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
metaonly struct UCxSTAT_t {
     IUSCI_I2C.UCSCLLOW_t UCSCLLOW;
    // SCL low 0 SCL is not held low 1 SCL is held low
     IUSCI_I2C.UCGC_t UCGC;
    // General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received
     IUSCI_I2C.UCBBUSY_t UCBBUSY;
    // Bus busy 0 Bus inactive 1 Bus busy
     IUSCI_I2C.UCNACKIFG_t UCNACKIFG;
    // Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
     IUSCI_I2C.UCSTPIFG_t UCSTPIFG;
    // Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
     IUSCI_I2C.UCSTTIFG_t UCSTTIFG;
    // Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending
     IUSCI_I2C.UCALIFG_t UCALIFG;
    // Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending
};
struct IUSCI_B1_I2C.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_B1_I2C.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_B1_I2C.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_B1_I2C.UCB1BR0 // instance
index URL

Bit Rate Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config Bits8 UCB1BR0 = 0;
config IUSCI_B1_I2C.UCB1BR1 // instance
index URL

Bit Rate Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config Bits8 UCB1BR1 = 0;
config IUSCI_B1_I2C.UCB1CTL0 // instance
index URL

Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config IUSCI_B1_I2C.UCxCTL0_t UCB1CTL0 = {
    UCA10: IUSCI_I2C.UCA10_OFF,
    UCSLA10: IUSCI_I2C.UCSLA10_OFF,
    UCMM: IUSCI_I2C.UCMM_OFF,
    UCMST: IUSCI_I2C.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config IUSCI_B1_I2C.UCB1CTL1 // instance
index URL

Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config IUSCI_B1_I2C.UCxCTL1_t UCB1CTL1 = {
    UCSSEL: IUSCI_I2C.UCSSEL_0,
    UCTR: IUSCI_I2C.UCTR_OFF,
    UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
    UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
    UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
    UCSWRST: IUSCI.UCSWRST
};
config IUSCI_B1_I2C.UCB1I2COA // instance
index URL

I2C Own Address Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config IUSCI_B1_I2C.UCBxI2COA_t UCB1I2COA = {
    UCGCEN: IUSCI_I2C.UCGCEN_OFF,
    I2COA: 0
};
config IUSCI_B1_I2C.UCB1I2CSA // instance
index URL

I2C Slave Address Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config Bits8 UCB1I2CSA = 0;
config IUSCI_B1_I2C.UCB1RXBUF // instance
index URL

Receive Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config Bits8 UCB1RXBUF = 0;
config IUSCI_B1_I2C.UCB1STAT // instance
index URL

Status Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config IUSCI_B1_I2C.UCxSTAT_t UCB1STAT = {
    UCSCLLOW: IUSCI_I2C.UCSCLLOW,
    UCGC: IUSCI_I2C.UCGC,
    UCBBUSY: IUSCI_I2C.UCBBUSY,
    UCNACKIFG: IUSCI_I2C.UCNACKIFG,
    UCSTPIFG: IUSCI_I2C.UCSTPIFG,
    UCSTTIFG: IUSCI_I2C.UCSTTIFG,
    UCALIFG: IUSCI_I2C.UCALIFG
};
config IUSCI_B1_I2C.UCB1TXBUF // instance
index URL

Transmit Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config Bits8 UCB1TXBUF = 0;
config IUSCI_B1_I2C.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config Float UCLKHz = 1000000;
config IUSCI_B1_I2C.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_B1_I2C.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
config String owner;
IUSCI_B1_I2C.getUCBxI2CSA() // instance
index URL

Returns UCBxI2CSA register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Bits8 getUCBxI2CSA();
SEE
getUCBxI2CSA
IUSCI_B1_I2C.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_B1_I2C.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_B1_I2C.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_B1_I2C.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_B1_I2C.setUCBxI2CSA() // instance
index URL

Sets UCxxI2CSA register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Void setUCBxI2CSA(Bits8 value);
SEE
setUCBxI2CSA
IUSCI_B1_I2C.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_B1_I2C.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_B1_I2C.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_B1_I2C.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_I2C.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:42 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_B1_I2C

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface B1 I2C 2xx
    14     */
    15    metaonly interface IUSCI_B1_I2C inherits IUSCI_I2C {
    16
    17    instance:
    18        /*! Control Register 0 */
    19        config UCxCTL0_t UCB1CTL0 = {
    20            UCA10       : UCA10_OFF,
    21            UCSLA10     : UCSLA10_OFF,
    22            UCMM        : UCMM_OFF,
    23            UCMST       : UCMST_OFF,
    24            UCMODE      : UCMODE_0,
    25            UCSYNC      : UCSYNC,
    26        };
    27
    28        /*! Control Register 1 */
    29        config UCxCTL1_t UCB1CTL1 = {
    30            UCSSEL      : UCSSEL_0,
    31            UCTR        : UCTR_OFF,
    32            UCTXNACK    : UCTXNACK_OFF,
    33            UCTXSTP     : UCTXSTP_OFF,
    34            UCTXSTT     : UCTXSTT_OFF,
    35            UCSWRST     : UCSWRST,
    36        };
    37
    38        /*! Status Register */
    39        config UCxSTAT_t UCB1STAT = {
    40            UCSCLLOW    : UCSCLLOW,
    41            UCGC        : UCGC,
    42            UCBBUSY     : UCBBUSY,
    43            UCNACKIFG   : UCNACKIFG,
    44            UCSTPIFG    : UCSTPIFG,
    45            UCSTTIFG    : UCSTTIFG,
    46            UCALIFG     : UCALIFG,
    47        };
    48
    49        /*! I2C Own Address Register */
    50        config UCBxI2COA_t UCB1I2COA = {
    51            UCGCEN      : UCGCEN_OFF,
    52            I2COA       : 0,
    53        };
    54
    55        /*! I2C Slave Address Register */
    56        config Bits8 UCB1I2CSA = 0;
    57
    58        /*! Receive Buffer Register */
    59        config Bits8 UCB1RXBUF = 0;
    60
    61        /*! Transmit Buffer Register */
    62        config Bits8 UCB1TXBUF = 0;
    63
    64        /*! Bit Rate Control Register 0 */
    65        config Bits8 UCB1BR0 = 0;
    66
    67        /*! Bit Rate Control Register 1 */
    68        config Bits8 UCB1BR1 = 0;
    69    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_B1_SPI

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_B1_SPI
index URL

Universal Serial Communication Interface B1 SPI 2xx

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
metaonly interface IUSCI_B1_SPI { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI_SPI
    // inherits ti.catalog.msp430.peripherals.communication.IUSCI
        // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_B1_SPI inherits IUSCI_SPI {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCCKPH_t// Clock phase select {
         UCCKPH_OFF// Data is changed on the first UCLK edge and captured on the following edge,
         UCCKPH// Data is captured on the first UCLK edge and changed on the following edge
    };
    enum UCCKPL_t// Clock polarity select {
         UCCKPL_OFF// Inactive state is low,
         UCCKPL// Inactive state is high
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCMST_t// Master mode select {
         UCMST_OFF// Slave mode,
         UCMST// Master mode
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSSEL_SPI_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// NA,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_SPI.UCCKPH_t UCCKPH// Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge;
         IUSCI_SPI.UCCKPL_t UCCKPL// Clock polarity select 0 The inactive state is low 1 The inactive state is high;
         IUSCI_SPI.UCMSB_t UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first;
         IUSCI_SPI.UC7BIT_t UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data;
         IUSCI_SPI.UCMST_t UCMST// Master mode select 0 Slave mode 1 Master mode;
         IUSCI_SPI.UCMODE_SYNC_t UCMODE// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode;
         IUSCI_SPI.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_SPI.UCSSEL_SPI_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_SPI.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_SPI.UCLISTEN_t UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver;
         IUSCI_SPI.UCFE_t UCFE// Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred;
         IUSCI_SPI.UCOE_t UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred;
         IUSCI_SPI.UCBUSY_t UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Bits8 UCB1BR0// Bit Rate Control Register 0 = 0;
    config Bits8 UCB1BR1// Bit Rate Control Register 1 = 0;
    config IUSCI_B1_SPI.UCxCTL0_t UCB1CTL0// Control Register 0 = {
        UCCKPH: IUSCI_SPI.UCCKPH_OFF,
        UCCKPL: IUSCI_SPI.UCCKPL_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCMST: IUSCI_SPI.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    config IUSCI_B1_SPI.UCxCTL1_t UCB1CTL1// Control Register 1 = {
        UCSSEL: IUSCI_SPI.UCSSEL_0,
        UCSWRST: IUSCI.UCSWRST
    };
    config Bits8 UCB1RXBUF// Receive Buffer Register = 0;
    config IUSCI_B1_SPI.UCxSTAT_t UCB1STAT// Status Register = {
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    config Bits8 UCB1TXBUF// Transmit Buffer Register = 0;
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_B1_SPI.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_B1_SPI.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_B1_SPI.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_B1_SPI.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_B1_SPI.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_B1_SPI.UCCKPH_t
index URL

Clock phase select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCCKPH_t {
    UCCKPH_OFF,
    // Data is changed on the first UCLK edge and captured on the following edge
    UCCKPH
    // Data is captured on the first UCLK edge and changed on the following edge
};
enum IUSCI_B1_SPI.UCCKPL_t
index URL

Clock polarity select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCCKPL_t {
    UCCKPL_OFF,
    // Inactive state is low
    UCCKPL
    // Inactive state is high
};
enum IUSCI_B1_SPI.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_B1_SPI.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_B1_SPI.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_B1_SPI.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_B1_SPI.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_B1_SPI.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_B1_SPI.UCMST_t
index URL

Master mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCMST_t {
    UCMST_OFF,
    // Slave mode
    UCMST
    // Master mode
};
enum IUSCI_B1_SPI.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_B1_SPI.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_B1_SPI.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_B1_SPI.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_B1_SPI.UCSSEL_SPI_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCSSEL_SPI_t {
    UCSSEL_0,
    // NA
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_B1_SPI.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_B1_SPI.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_B1_SPI.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_B1_SPI.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
typedef IUSCI_B1_SPI.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_B1_SPI.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
typedef String StringArray[];
struct IUSCI_B1_SPI.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_B1_SPI.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
metaonly struct UCxCTL0_t {
     IUSCI_SPI.UCCKPH_t UCCKPH;
    // Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge
     IUSCI_SPI.UCCKPL_t UCCKPL;
    // Clock polarity select 0 The inactive state is low 1 The inactive state is high
     IUSCI_SPI.UCMSB_t UCMSB;
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
     IUSCI_SPI.UC7BIT_t UC7BIT;
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
     IUSCI_SPI.UCMST_t UCMST;
    // Master mode select 0 Slave mode 1 Master mode
     IUSCI_SPI.UCMODE_SYNC_t UCMODE;
    // USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode
     IUSCI_SPI.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
};
struct IUSCI_B1_SPI.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
metaonly struct UCxCTL1_t {
     IUSCI_SPI.UCSSEL_SPI_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_SPI.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_B1_SPI.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
metaonly struct UCxSTAT_t {
     IUSCI_SPI.UCLISTEN_t UCLISTEN;
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
     IUSCI_SPI.UCFE_t UCFE;
    // Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred
     IUSCI_SPI.UCOE_t UCOE;
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
     IUSCI_SPI.UCBUSY_t UCBUSY;
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
};
struct IUSCI_B1_SPI.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_B1_SPI.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_B1_SPI.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_B1_SPI.UCB1BR0 // instance
index URL

Bit Rate Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config Bits8 UCB1BR0 = 0;
config IUSCI_B1_SPI.UCB1BR1 // instance
index URL

Bit Rate Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config Bits8 UCB1BR1 = 0;
config IUSCI_B1_SPI.UCB1CTL0 // instance
index URL

Control Register 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config IUSCI_B1_SPI.UCxCTL0_t UCB1CTL0 = {
    UCCKPH: IUSCI_SPI.UCCKPH_OFF,
    UCCKPL: IUSCI_SPI.UCCKPL_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCMST: IUSCI_SPI.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config IUSCI_B1_SPI.UCB1CTL1 // instance
index URL

Control Register 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config IUSCI_B1_SPI.UCxCTL1_t UCB1CTL1 = {
    UCSSEL: IUSCI_SPI.UCSSEL_0,
    UCSWRST: IUSCI.UCSWRST
};
config IUSCI_B1_SPI.UCB1RXBUF // instance
index URL

Receive Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config Bits8 UCB1RXBUF = 0;
config IUSCI_B1_SPI.UCB1STAT // instance
index URL

Status Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config IUSCI_B1_SPI.UCxSTAT_t UCB1STAT = {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config IUSCI_B1_SPI.UCB1TXBUF // instance
index URL

Transmit Buffer Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config Bits8 UCB1TXBUF = 0;
config IUSCI_B1_SPI.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config Float UCLKHz = 1000000;
config IUSCI_B1_SPI.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_B1_SPI.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
config String owner;
IUSCI_B1_SPI.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_B1_SPI.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_B1_SPI.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_B1_SPI.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_B1_SPI.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_B1_SPI.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_B1_SPI.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_B1_SPI.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B1_SPI.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:43 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_B1_SPI

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface B1 SPI 2xx
    14     */
    15    metaonly interface IUSCI_B1_SPI inherits IUSCI_SPI {
    16
    17    instance:
    18        /*! Control Register 0 */
    19        config UCxCTL0_t UCB1CTL0 = {
    20            UCCKPH      : UCCKPH_OFF,
    21            UCCKPL      : UCCKPL_OFF,
    22            UCMSB       : UCMSB_OFF,
    23            UC7BIT      : UC7BIT_OFF,
    24            UCMST       : UCMST_OFF,
    25            UCMODE      : UCMODE_0,
    26            UCSYNC      : UCSYNC,
    27        };
    28
    29        /*! Control Register 1 */
    30        config UCxCTL1_t UCB1CTL1 = {
    31            UCSSEL      : UCSSEL_0,
    32            UCSWRST     : UCSWRST,
    33        };
    34
    35        /*! Status Register */
    36        config UCxSTAT_t UCB1STAT = {
    37            UCLISTEN    : UCLISTEN_OFF,
    38            UCFE        : UCFE_OFF,
    39            UCOE        : UCOE_OFF,
    40            UCBUSY      : UCBUSY,
    41        };
    42
    43        /*! Bit Rate Control Register 0 */
    44        config Bits8 UCB1BR0 = 0;
    45
    46        /*! Bit Rate Control Register 1 */
    47        config Bits8 UCB1BR1 = 0;
    48
    49        /*! Receive Buffer Register */
    50        config Bits8 UCB1RXBUF = 0;
    51
    52        /*! Transmit Buffer Register */
    53        config Bits8 UCB1TXBUF = 0;
    54    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_I2C

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_I2C
index URL

Universal Serial Communication Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
metaonly interface IUSCI_I2C { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI
    // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_I2C inherits IUSCI {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCA10_t// Own addressing mode select {
         UCA10_OFF// Own address is a 7-bit address,
         UCA10// Own address is a 10-bit address
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCALIFG_t// Arbitration lost interrupt flag {
         UCALIFG_OFF// No interrupt pending,
         UCALIFG// Interrupt pending
    };
    enum UCBBUSY_t// Bus busy {
         UCBBUSY_OFF// Bus inactive,
         UCBBUSY// Bus busy
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCGCEN_t// General call response enable {
         UCGCEN_OFF// Do not respond to a general call,
         UCGCEN// Respond to a general call
    };
    enum UCGC_t// General call address received {
         UCGC_OFF// No general call address received,
         UCGC// General call address received
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMM_t// Multi-master environment select {
         UCMM_OFF// Single master environment. There is no other master in the system. The address compare unit is disabled,
         UCMM// Multi master environment
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCMST_t// Master mode select {
         UCMST_OFF// Slave mode,
         UCMST// Master mode
    };
    enum UCNACKIFG_t// Not-acknowledge received interrupt flag {
         UCNACKIFG_OFF// No interrupt pending,
         UCNACKIFG// Interrupt pending
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSCLLOW_t// SCL low {
         UCSCLLOW_OFF// SCL is not held low,
         UCSCLLOW// SCL is held low
    };
    enum UCSLA10_t// Slave addressing mode select {
         UCSLA10_OFF// Address slave with 7-bit address,
         UCSLA10// Address slave with 10-bit address
    };
    enum UCSSEL_I2C_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// UCLK,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSTPIFG_t// Stop condition interrupt flag {
         UCSTPIFG_OFF// No interrupt pending,
         UCSTPIFG// Interrupt pending
    };
    enum UCSTTIFG_t// Start condition interrupt flag {
         UCSTTIFG_OFF// No interrupt pending,
         UCSTTIFG// Interrupt pending
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTR_t// Transmitter/Receiver {
         UCTR_OFF// Receiver,
         UCTR// Transmitter
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    enum UCTXNACK_t// Transmit a NACK {
         UCTXNACK_OFF// Acknowledge normally,
         UCTXNACK// Generate NACK
    };
    enum UCTXSTP_t// Transmit STOP condition in master mode {
         UCTXSTP_OFF// No STOP generated,
         UCTXSTP// Generate STOP
    };
    enum UCTXSTT_t// Transmit START condition in master mode {
         UCTXSTT_OFF// Do not generate START condition,
         UCTXSTT// Generate START condition
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCBxI2COA_t// {
         IUSCI_I2C.UCGCEN_t UCGCEN// General call response enable 0 Do not respond to a general call 1 Respond to a general call;
        UChar I2COA// I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_I2C.UCA10_t UCA10// Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address;
         IUSCI_I2C.UCSLA10_t UCSLA10// Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address;
         IUSCI_I2C.UCMM_t UCMM// Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment;
         IUSCI_I2C.UCMST_t UCMST// Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode;
         IUSCI_I2C.UCMODE_SYNC_t UCMODE// USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode;
         IUSCI_I2C.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_I2C.UCSSEL_I2C_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_I2C.UCTR_t UCTR// Transmitter/Receiver 0 Receiver 1 Transmitter;
         IUSCI_I2C.UCTXNACK_t UCTXNACK// Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK;
         IUSCI_I2C.UCTXSTP_t UCTXSTP// Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP;
         IUSCI_I2C.UCTXSTT_t UCTXSTT// Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition;
         IUSCI_I2C.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_I2C.UCSCLLOW_t UCSCLLOW// SCL low 0 SCL is not held low 1 SCL is held low;
         IUSCI_I2C.UCGC_t UCGC// General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received;
         IUSCI_I2C.UCBBUSY_t UCBBUSY// Bus busy 0 Bus inactive 1 Bus busy;
         IUSCI_I2C.UCNACKIFG_t UCNACKIFG// Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending;
         IUSCI_I2C.UCSTPIFG_t UCSTPIFG// Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending;
         IUSCI_I2C.UCSTTIFG_t UCSTTIFG// Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending;
         IUSCI_I2C.UCALIFG_t UCALIFG// Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCBxI2CSA// Returns UCBxI2CSA register value based on which module();
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCBxI2CSA// Sets UCxxI2CSA register value based on which module(Bits8 value);
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_I2C.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_I2C.UCA10_t
index URL

Own addressing mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCA10_t {
    UCA10_OFF,
    // Own address is a 7-bit address
    UCA10
    // Own address is a 10-bit address
};
enum IUSCI_I2C.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_I2C.UCALIFG_t
index URL

Arbitration lost interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCALIFG_t {
    UCALIFG_OFF,
    // No interrupt pending
    UCALIFG
    // Interrupt pending
};
enum IUSCI_I2C.UCBBUSY_t
index URL

Bus busy

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCBBUSY_t {
    UCBBUSY_OFF,
    // Bus inactive
    UCBBUSY
    // Bus busy
};
enum IUSCI_I2C.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_I2C.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_I2C.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_I2C.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_I2C.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_I2C.UCGCEN_t
index URL

General call response enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCGCEN_t {
    UCGCEN_OFF,
    // Do not respond to a general call
    UCGCEN
    // Respond to a general call
};
enum IUSCI_I2C.UCGC_t
index URL

General call address received

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCGC_t {
    UCGC_OFF,
    // No general call address received
    UCGC
    // General call address received
};
enum IUSCI_I2C.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_I2C.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_I2C.UCMM_t
index URL

Multi-master environment select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCMM_t {
    UCMM_OFF,
    // Single master environment. There is no other master in the system. The address compare unit is disabled
    UCMM
    // Multi master environment
};
enum IUSCI_I2C.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_I2C.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_I2C.UCMST_t
index URL

Master mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCMST_t {
    UCMST_OFF,
    // Slave mode
    UCMST
    // Master mode
};
enum IUSCI_I2C.UCNACKIFG_t
index URL

Not-acknowledge received interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCNACKIFG_t {
    UCNACKIFG_OFF,
    // No interrupt pending
    UCNACKIFG
    // Interrupt pending
};
enum IUSCI_I2C.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_I2C.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_I2C.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_I2C.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_I2C.UCSCLLOW_t
index URL

SCL low

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCSCLLOW_t {
    UCSCLLOW_OFF,
    // SCL is not held low
    UCSCLLOW
    // SCL is held low
};
enum IUSCI_I2C.UCSLA10_t
index URL

Slave addressing mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCSLA10_t {
    UCSLA10_OFF,
    // Address slave with 7-bit address
    UCSLA10
    // Address slave with 10-bit address
};
enum IUSCI_I2C.UCSSEL_I2C_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCSSEL_I2C_t {
    UCSSEL_0,
    // UCLK
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_I2C.UCSTPIFG_t
index URL

Stop condition interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCSTPIFG_t {
    UCSTPIFG_OFF,
    // No interrupt pending
    UCSTPIFG
    // Interrupt pending
};
enum IUSCI_I2C.UCSTTIFG_t
index URL

Start condition interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCSTTIFG_t {
    UCSTTIFG_OFF,
    // No interrupt pending
    UCSTTIFG
    // Interrupt pending
};
enum IUSCI_I2C.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_I2C.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_I2C.UCTR_t
index URL

Transmitter/Receiver

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCTR_t {
    UCTR_OFF,
    // Receiver
    UCTR
    // Transmitter
};
enum IUSCI_I2C.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_I2C.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
enum IUSCI_I2C.UCTXNACK_t
index URL

Transmit a NACK

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCTXNACK_t {
    UCTXNACK_OFF,
    // Acknowledge normally
    UCTXNACK
    // Generate NACK
};
enum IUSCI_I2C.UCTXSTP_t
index URL

Transmit STOP condition in master mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCTXSTP_t {
    UCTXSTP_OFF,
    // No STOP generated
    UCTXSTP
    // Generate STOP
};
enum IUSCI_I2C.UCTXSTT_t
index URL

Transmit START condition in master mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
enum UCTXSTT_t {
    UCTXSTT_OFF,
    // Do not generate START condition
    UCTXSTT
    // Generate START condition
};
typedef IUSCI_I2C.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_I2C.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
typedef String StringArray[];
struct IUSCI_I2C.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_I2C.UCBxI2COA_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
metaonly struct UCBxI2COA_t {
     IUSCI_I2C.UCGCEN_t UCGCEN;
    // General call response enable 0 Do not respond to a general call 1 Respond to a general call
    UChar I2COA;
    // I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB
};
struct IUSCI_I2C.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
metaonly struct UCxCTL0_t {
     IUSCI_I2C.UCA10_t UCA10;
    // Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address
     IUSCI_I2C.UCSLA10_t UCSLA10;
    // Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address
     IUSCI_I2C.UCMM_t UCMM;
    // Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment
     IUSCI_I2C.UCMST_t UCMST;
    // Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode
     IUSCI_I2C.UCMODE_SYNC_t UCMODE;
    // USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode
     IUSCI_I2C.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode
};
struct IUSCI_I2C.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
metaonly struct UCxCTL1_t {
     IUSCI_I2C.UCSSEL_I2C_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_I2C.UCTR_t UCTR;
    // Transmitter/Receiver 0 Receiver 1 Transmitter
     IUSCI_I2C.UCTXNACK_t UCTXNACK;
    // Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK
     IUSCI_I2C.UCTXSTP_t UCTXSTP;
    // Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP
     IUSCI_I2C.UCTXSTT_t UCTXSTT;
    // Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition
     IUSCI_I2C.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_I2C.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
metaonly struct UCxSTAT_t {
     IUSCI_I2C.UCSCLLOW_t UCSCLLOW;
    // SCL low 0 SCL is not held low 1 SCL is held low
     IUSCI_I2C.UCGC_t UCGC;
    // General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received
     IUSCI_I2C.UCBBUSY_t UCBBUSY;
    // Bus busy 0 Bus inactive 1 Bus busy
     IUSCI_I2C.UCNACKIFG_t UCNACKIFG;
    // Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
     IUSCI_I2C.UCSTPIFG_t UCSTPIFG;
    // Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
     IUSCI_I2C.UCSTTIFG_t UCSTTIFG;
    // Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending
     IUSCI_I2C.UCALIFG_t UCALIFG;
    // Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending
};
struct IUSCI_I2C.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_I2C.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_I2C.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_I2C.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
config Float UCLKHz = 1000000;
config IUSCI_I2C.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_I2C.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
config String owner;
IUSCI_I2C.getUCBxI2CSA() // instance
index URL

Returns UCBxI2CSA register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bits8 getUCBxI2CSA();
SEE
getUCBxI2CSA
IUSCI_I2C.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_I2C.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_I2C.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_I2C.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_I2C.setUCBxI2CSA() // instance
index URL

Sets UCxxI2CSA register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Void setUCBxI2CSA(Bits8 value);
SEE
setUCBxI2CSA
IUSCI_I2C.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_I2C.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_I2C.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_I2C.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:43 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_I2C

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface
    14     */
    15    metaonly interface IUSCI_I2C inherits IUSCI {
    16
    17        //*****************************************************************
    18        //* REGISTER BIT DEFINITIONS                                      *
    19        //*****************************************************************
    20
    21        /*! Own addressing mode select */
    22        enum UCA10_t {
    23            UCA10_OFF = 0x00,       /*! Own address is a 7-bit address */
    24            UCA10 = 0x80            /*! Own address is a 10-bit address */
    25        };
    26
    27        /*! Slave addressing mode select */
    28        enum UCSLA10_t {
    29            UCSLA10_OFF = 0x00,     /*! Address slave with 7-bit address */
    30            UCSLA10 = 0x40          /*! Address slave with 10-bit address */
    31        };
    32
    33        /*! Multi-master environment select */
    34        enum UCMM_t {
    35            UCMM_OFF = 0x00,        /*! Single master environment. There is no other master in the system. The address compare unit is disabled. */
    36            UCMM = 0x20             /*! Multi master environment */
    37        };
    38
    39        /*! Master mode select */
    40        enum UCMST_t {
    41            UCMST_OFF = 0x00,       /*! Slave mode */
    42            UCMST = 0x40            /*! Master mode */
    43        };
    44
    45        /*! USCI clock source select. These bits select the BRCLK source clock. */
    46        enum UCSSEL_I2C_t {
    47            UCSSEL_0 = 0x00,        /*! UCLK */
    48            UCSSEL_1 = 0x01,        /*! ACLK */
    49            UCSSEL_2 = 0x02         /*! SMCLK */
    50    /*      UCSSEL_3 = 0x04         /*! SMCLK */
    51        };
    52
    53        /*! Transmitter/Receiver */
    54        enum UCTR_t {
    55            UCTR_OFF = 0x00,        /*! Receiver */
    56            UCTR = 0x10             /*! Transmitter */
    57        };
    58
    59        /*! Transmit a NACK */
    60        enum UCTXNACK_t {
    61            UCTXNACK_OFF = 0x00,    /*! Acknowledge normally */
    62            UCTXNACK = 0x08         /*! Generate NACK */
    63        };
    64
    65        /*! Transmit STOP condition in master mode */
    66        enum UCTXSTP_t {
    67            UCTXSTP_OFF = 0x00,     /*! No STOP generated */
    68            UCTXSTP = 0x10          /*! Generate STOP */
    69        };
    70
    71        /*! Transmit START condition in master mode */
    72        enum UCTXSTT_t {
    73            UCTXSTT_OFF = 0x00,     /*! Do not generate START condition */
    74            UCTXSTT = 0x10          /*! Generate START condition */
    75        };
    76
    77        /*! SCL low */
    78        enum UCSCLLOW_t {
    79            UCSCLLOW_OFF = 0x00,    /*! SCL is not held low */
    80            UCSCLLOW = 0x10         /*! SCL is held low */
    81        };
    82
    83        /*! General call address received */
    84        enum UCGC_t {
    85            UCGC_OFF = 0x00,        /*! No general call address received */
    86            UCGC = 0x10             /*! General call address received */
    87        };
    88
    89        /*! Bus busy */
    90        enum UCBBUSY_t {
    91            UCBBUSY_OFF = 0x00,     /*! Bus inactive */
    92            UCBBUSY = 0x10          /*! Bus busy */
    93        };
    94
    95        /*! Not-acknowledge received interrupt flag */
    96        enum UCNACKIFG_t {
    97            UCNACKIFG_OFF = 0x00,   /*! No interrupt pending */
    98            UCNACKIFG = 0x10        /*! Interrupt pending */
    99        };
   100
   101        /*! Stop condition interrupt flag */
   102        enum UCSTPIFG_t {
   103            UCSTPIFG_OFF = 0x00,    /*! No interrupt pending */
   104            UCSTPIFG = 0x10         /*! Interrupt pending */
   105        };
   106
   107        /*! Start condition interrupt flag */
   108        enum UCSTTIFG_t {
   109            UCSTTIFG_OFF = 0x00,    /*! No interrupt pending */
   110            UCSTTIFG = 0x10         /*! Interrupt pending */
   111        };
   112
   113        /*! Arbitration lost interrupt flag */
   114        enum UCALIFG_t {
   115            UCALIFG_OFF = 0x00,     /*! No interrupt pending */
   116            UCALIFG = 0x10          /*! Interrupt pending */
   117        };
   118
   119        /*! General call response enable */
   120        enum UCGCEN_t {
   121            UCGCEN_OFF = 0x00,      /*! Do not respond to a general call */
   122            UCGCEN = 0x80           /*! Respond to a general call */
   123        };
   124
   125        struct UCxCTL0_t {
   126            UCA10_t     UCA10;      /*! Own addressing mode select
   127                                     *  0  Own address is a 7-bit address
   128                                     *  1  Own address is a 10-bit address */
   129            UCSLA10_t   UCSLA10;    /*! Slave addressing mode select
   130                                     *  0  Address slave with 7-bit address
   131                                     *  1  Address slave with 10-bit address */
   132            UCMM_t      UCMM;       /*! Multi-master environment select
   133                                     *  0  Single master environment. There is no other master in the system.
   134                                     *     The address compare unit is disabled.
   135                                     *  1  Multi master environment */
   136            UCMST_t     UCMST;      /*! Master mode select. When a master looses arbitration in a multi-master
   137                                     *environment (UCMM = 1) the UCMST bit is automatically cleared and the
   138                                     *module acts as slave.
   139                                     *  0  Slave mode
   140                                     *  1  Master mode */
   141            UCMODE_SYNC_t UCMODE;   /*! USCI Mode. The UCMODEx bits select the synchronous mode when
   142                                     *UCSYNC = 1.
   143                                     *  00  3-pin SPI
   144                                     *  01  4-pin SPI (master/slave enabled if STE = 1)
   145                                     *  10  4-pin SPI (master/slave enabled if STE = 0)
   146                                     *  11  I2C mode */
   147            UCSYNC_t    UCSYNC;     /*! Synchronous mode enable
   148                                     *  0  Asynchronous mode
   149                                     *  1  Synchronous mode */
   150        }
   151
   152        struct UCxCTL1_t {
   153            UCSSEL_I2C_t UCSSEL;    /*! USCI clock source select. These bits select the BRCLK source clock.
   154                                     *  00  UCLKI
   155                                     *  01  ACLK
   156                                     *  10  SMCLK
   157                                     *  11  SMCLK */
   158            UCTR_t      UCTR;       /*! Transmitter/Receiver
   159                                     *  0  Receiver
   160                                     *  1  Transmitter */
   161            UCTXNACK_t  UCTXNACK;   /*! Transmit a NACK. UCTXNACK is automatically cleared after a NACK is
   162                                     *transmitted.
   163                                     *  0  Acknowledge normally
   164                                     *  1  Generate NACK */
   165            UCTXSTP_t   UCTXSTP;    /*! Transmit STOP condition in master mode. Ignored in slave mode. In
   166                                     *master receiver mode the STOP condition is preceded by a NACK.
   167                                     *UCTXSTP is automatically cleared after STOP is generated.
   168                                     *  0  No STOP generated
   169                                     *  1  Generate STOP */
   170            UCTXSTT_t   UCTXSTT;    /*! Transmit START condition in master mode. Ignored in slave mode. In
   171                                     *master receiver mode a repeated START condition is preceded by a
   172                                     *NACK. UCTXSTT is automatically cleared after START condition and
   173                                     *address information is transmitted.
   174                                     *Ignored in slave mode.
   175                                     *  0  Do not generate START condition
   176                                     *  1  Generate START condition */
   177            UCSWRST_t   UCSWRST;    /*! Software reset enable
   178                                     *  0  Disabled. USCI reset released for operation.
   179                                     *  1  Enabled. USCI logic held in reset state. */
   180        }
   181
   182        struct UCxSTAT_t {
   183            UCSCLLOW_t  UCSCLLOW;   /*! SCL low
   184                                     *  0  SCL is not held low
   185                                     *  1  SCL is held low */
   186            UCGC_t      UCGC;       /*! General call address received. UCGC is automatically cleared when a
   187                                     *START condition is received.
   188                                     *  0  No general call address received
   189                                     *  1  General call address received */
   190            UCBBUSY_t   UCBBUSY;    /*! Bus busy
   191                                     *  0  Bus inactive
   192                                     *  1  Bus busy */
   193            UCNACKIFG_t UCNACKIFG;  /*! Not-acknowledge received interrupt flag. UCNACKIFG is automatically
   194                                     *cleared when a START condition is received.
   195                                     *  0  No interrupt pending
   196                                     *  1  Interrupt pending */
   197            UCSTPIFG_t  UCSTPIFG;   /*!  Stop condition interrupt flag. UCSTPIFG is automatically cleared when a
   198                                     *START condition is received.
   199                                     *  0  No interrupt pending
   200                                     *  1  Interrupt pending */
   201            UCSTTIFG_t  UCSTTIFG;   /*! Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP
   202                                     *condition is received.
   203                                     *  0  No interrupt pending
   204                                     *  1  Interrupt pending */
   205            UCALIFG_t   UCALIFG;    /*! Arbitration lost interrupt flag
   206                                     *  0  No interrupt pending
   207                                     *  1  Interrupt pending */
   208        }
   209
   210        struct UCBxI2COA_t {
   211            UCGCEN_t    UCGCEN;     /*! General call response enable
   212                                     *  0  Do not respond to a general call
   213                                     *  1  Respond to a general call */
   214            UChar       I2COA;      /*! I2C own address. The I2COAx bits contain the local address of the USCI_Bx
   215                                     *I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is
   216                                     *the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB. */
   217        }
   218
   219    instance:
   220        /*!
   221        *  ======== getUCBxI2CSA ========
   222        *  Returns UCBxI2CSA register value based on which module
   223        *
   224        *  @see #getUCBxI2CSA
   225        */
   226        Bits8 getUCBxI2CSA();
   227
   228        /*!
   229        *  ======== setUCBxI2CSA ========
   230        *  Sets UCxxI2CSA register value based on which module
   231        *
   232        *  @see #setUCBxI2CSA
   233        */
   234        void setUCBxI2CSA(Bits8 value);
   235    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_SPI

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_SPI
index URL

Universal Serial Communication Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
metaonly interface IUSCI_SPI { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI
    // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_SPI inherits IUSCI {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCCKPH_t// Clock phase select {
         UCCKPH_OFF// Data is changed on the first UCLK edge and captured on the following edge,
         UCCKPH// Data is captured on the first UCLK edge and changed on the following edge
    };
    enum UCCKPL_t// Clock polarity select {
         UCCKPL_OFF// Inactive state is low,
         UCCKPL// Inactive state is high
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCMST_t// Master mode select {
         UCMST_OFF// Slave mode,
         UCMST// Master mode
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSSEL_SPI_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// NA,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_SPI.UCCKPH_t UCCKPH// Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge;
         IUSCI_SPI.UCCKPL_t UCCKPL// Clock polarity select 0 The inactive state is low 1 The inactive state is high;
         IUSCI_SPI.UCMSB_t UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first;
         IUSCI_SPI.UC7BIT_t UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data;
         IUSCI_SPI.UCMST_t UCMST// Master mode select 0 Slave mode 1 Master mode;
         IUSCI_SPI.UCMODE_SYNC_t UCMODE// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode;
         IUSCI_SPI.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_SPI.UCSSEL_SPI_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_SPI.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_SPI.UCLISTEN_t UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver;
         IUSCI_SPI.UCFE_t UCFE// Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred;
         IUSCI_SPI.UCOE_t UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred;
         IUSCI_SPI.UCBUSY_t UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_SPI.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_SPI.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_SPI.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_SPI.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_SPI.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_SPI.UCCKPH_t
index URL

Clock phase select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCCKPH_t {
    UCCKPH_OFF,
    // Data is changed on the first UCLK edge and captured on the following edge
    UCCKPH
    // Data is captured on the first UCLK edge and changed on the following edge
};
enum IUSCI_SPI.UCCKPL_t
index URL

Clock polarity select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCCKPL_t {
    UCCKPL_OFF,
    // Inactive state is low
    UCCKPL
    // Inactive state is high
};
enum IUSCI_SPI.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_SPI.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_SPI.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_SPI.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_SPI.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_SPI.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_SPI.UCMST_t
index URL

Master mode select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCMST_t {
    UCMST_OFF,
    // Slave mode
    UCMST
    // Master mode
};
enum IUSCI_SPI.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_SPI.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_SPI.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_SPI.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_SPI.UCSSEL_SPI_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCSSEL_SPI_t {
    UCSSEL_0,
    // NA
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_SPI.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_SPI.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_SPI.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_SPI.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
typedef IUSCI_SPI.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_SPI.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
typedef String StringArray[];
struct IUSCI_SPI.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_SPI.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
metaonly struct UCxCTL0_t {
     IUSCI_SPI.UCCKPH_t UCCKPH;
    // Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge
     IUSCI_SPI.UCCKPL_t UCCKPL;
    // Clock polarity select 0 The inactive state is low 1 The inactive state is high
     IUSCI_SPI.UCMSB_t UCMSB;
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
     IUSCI_SPI.UC7BIT_t UC7BIT;
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
     IUSCI_SPI.UCMST_t UCMST;
    // Master mode select 0 Slave mode 1 Master mode
     IUSCI_SPI.UCMODE_SYNC_t UCMODE;
    // USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode
     IUSCI_SPI.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
};
struct IUSCI_SPI.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
metaonly struct UCxCTL1_t {
     IUSCI_SPI.UCSSEL_SPI_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_SPI.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_SPI.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
metaonly struct UCxSTAT_t {
     IUSCI_SPI.UCLISTEN_t UCLISTEN;
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
     IUSCI_SPI.UCFE_t UCFE;
    // Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred
     IUSCI_SPI.UCOE_t UCOE;
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
     IUSCI_SPI.UCBUSY_t UCBUSY;
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
};
struct IUSCI_SPI.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_SPI.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_SPI.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_SPI.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
config Float UCLKHz = 1000000;
config IUSCI_SPI.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_SPI.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
config String owner;
IUSCI_SPI.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_SPI.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_SPI.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_SPI.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_SPI.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_SPI.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_SPI.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_SPI.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:43 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_SPI

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface
    14     */
    15    metaonly interface IUSCI_SPI inherits IUSCI {
    16
    17        //*****************************************************************
    18        //* REGISTER BIT DEFINITIONS                                      *
    19        //*****************************************************************
    20
    21        /*! Clock phase select. */
    22        enum UCCKPH_t {
    23            UCCKPH_OFF = 0x00,      /*! Data is changed on the first UCLK edge and captured on the following edge. */
    24            UCCKPH = 0x80           /*! Data is captured on the first UCLK edge and changed on the following edge. */
    25        };
    26
    27        /*! Clock polarity select. */
    28        enum UCCKPL_t {
    29            UCCKPL_OFF = 0x00,      /*! Inactive state is low */
    30            UCCKPL = 0x40           /*! Inactive state is high */
    31        };
    32
    33        /*! Master mode select */
    34        enum UCMST_t {
    35            UCMST_OFF = 0x00,       /*! Slave mode */
    36            UCMST = 0x40            /*! Master mode */
    37        };
    38
    39        /*! USCI clock source select. These bits select the BRCLK source clock. */
    40        enum UCSSEL_SPI_t {
    41            UCSSEL_0 = 0x00,        /*! NA */
    42            UCSSEL_1 = 0x01,        /*! ACLK */
    43            UCSSEL_2 = 0x02         /*! SMCLK */
    44    /*        UCSSEL_3 = 0x04      /*! SMCLK */
    45        };
    46
    47        struct UCxCTL0_t {
    48            UCCKPH_t    UCCKPH;     /*! Clock phase select.
    49                                     *  0  Data is changed on the first UCLK edge and captured on the
    50                                     *     following edge.
    51                                     *  1  Data is captured on the first UCLK edge and changed on the
    52                                     *     following edge. */
    53            UCCKPL_t    UCCKPL;     /*! Clock polarity select
    54                                     *  0  The inactive state is low
    55                                     *  1  The inactive state is high */
    56            UCMSB_t     UCMSB;      /*! MSB first select. Controls the direction of the receive and transmit shift
    57                                     *register.
    58                                     *  0  LSB first
    59                                     *  1  MSB first */
    60            UC7BIT_t    UC7BIT;     /*! Character length. Selects 7-bit or 8-bit character length.
    61                                     *  0  8-bit data
    62                                     *  1  7-bit data */
    63            UCMST_t     UCMST;      /*! Master mode select
    64                                     *  0  Slave mode
    65                                     *  1  Master mode */
    66            UCMODE_SYNC_t UCMODE;   /*! USCI mode. The UCMODEx bits select the synchronous mode when
    67                                     *UCSYNC = 1.
    68                                     *  00  3-Pin SPI
    69                                     *  01  4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    70                                     *  10  4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    71                                     *  11  I2C Mode */
    72            UCSYNC_t    UCSYNC;     /*! Synchronous mode enable
    73                                     *  0  Asynchronous mode
    74                                     *  1  Synchronous Mode */
    75        }
    76
    77        struct UCxCTL1_t {
    78            UCSSEL_SPI_t UCSSEL;    /*! USCI clock source select. These bits select the BRCLK source clock in
    79                                     *master mode. UCxCLK is always used in slave mode.
    80                                     *  00  NA
    81                                     *  01  ACLK
    82                                     *  10  SMCLK
    83                                     *  11  SMCLK */
    84            UCSWRST_t    UCSWRST;   /*! Software reset enable
    85                                     *  0  Disabled. USCI reset released for operation.
    86                                     *  1  Enabled. USCI logic held in reset state. */
    87        }
    88
    89        struct UCxSTAT_t {
    90            UCLISTEN_t  UCLISTEN;   /*! Listen enable. The UCLISTEN bit selects loopback mode.
    91                                     *  0  Disabled
    92                                     *  1  Enabled. UCAxTXD is internally fed back to the receiver. */
    93            UCFE_t      UCFE;       /*! Framing error flag. This bit indicates a bus conflict in 4-wire master mode.
    94                                     *UCFE is not used in 3-wire master or any slave mode.
    95                                     *  0  No error
    96                                     *  1  Bus conflict occurred */
    97            UCOE_t      UCOE;       /*! Overrun error flag. This bit is set when a character is transferred into
    98                                     *UCAxRXBUF before the previous character was read. UCOE is cleared
    99                                     *automatically when UCxRXBUF is read, and must not be cleared by
   100                                     *software. Otherwise, it will not function correctly.
   101                                     *  0  No error
   102                                     *  1  Overrun error occurred */
   103            UCBUSY_t    UCBUSY;     /*! USCI busy. This bit indicates if a transmit or receive operation is in
   104                                     *progress.
   105                                     *  0  USCI inactive
   106                                     *  1  USCI transmitting or receiving */
   107        }
   108    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_UART

metaonly interface ti.catalog.msp430.peripherals.communication.IUSCI_UART
index URL

Universal Serial Communication Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly interface IUSCI_UART { ...
// inherits ti.catalog.msp430.peripherals.communication.IUSCI
    // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSCI_UART inherits IUSCI {
module-wide constants & types
    enum UC7BIT_t// Character length. Selects 7-bit or 8-bit character length {
         UC7BIT_OFF// 8-bit,
         UC7BIT// 7-bit
    };
    enum UCABDEN_t// Automatic baud rate detect enable {
         UCABDEN_OFF// Baud rate detection disabled. Length of break and synch field is not measured,
         UCABDEN// Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
    };
    enum UCADDR_t// Address received in address-bit multiprocessor mode {
         UCADDR_OFF// Received character is data,
         UCADDR// Received character is an address
    };
    enum UCBRF_t// First modulation stage select {
         UCBRF_0// First stage 0,
         UCBRF_1// First stage 1,
         UCBRF_2// First stage 2,
         UCBRF_3// First stage 3,
         UCBRF_4// First stage 4,
         UCBRF_5// First stage 5,
         UCBRF_6// First stage 6,
         UCBRF_7// First stage 7,
         UCBRF_8// First stage 8,
         UCBRF_9// First stage 9,
         UCBRF_10// First stage 10,
         UCBRF_11// First stage 11,
         UCBRF_12// First stage 12,
         UCBRF_13// First stage 13,
         UCBRF_14// First stage 14,
         UCBRF_15// First stage 15
    };
    enum UCBRKIE_t// Receive break character interrupt-enable {
         UCBRKIE_OFF// Received break characters do not set UCAxRXIFG,
         UCBRKIE// Received break characters set UCAxRXIFG
    };
    enum UCBRK_t// Break detect flag {
         UCBRK_OFF// No break condition,
         UCBRK// Break condition occurred
    };
    enum UCBRS_t// Second modulation stage select {
         UCBRS_0// Second stage 0,
         UCBRS_1// Second stage 1,
         UCBRS_2// Second stage 2,
         UCBRS_3// Second stage 3,
         UCBRS_4// Second stage 4,
         UCBRS_5// Second stage 5,
         UCBRS_6// Second stage 6,
         UCBRS_7// Second stage 7
    };
    enum UCBTOE_t// Break time out error {
         UCBTOE_OFF// No error,
         UCBTOE// Length of break field exceeded 22 bit times
    };
    enum UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress {
         UCBUSY_OFF// USCI inactive,
         UCBUSY// USCI transmitting or receiving
    };
    enum UCDELIM0_t// Break/synch delimiter length bit 0 {
         UCDELIM0_OFF// Break Sync Delimiter bit 0 Off,
         UCDELIM0// Break Sync Delimiter bit 0 On
    };
    enum UCDELIM1_t// Break/synch delimiter length bit 1 {
         UCDELIM1_OFF// Break Sync Delimiter bit 1 Off,
         UCDELIM1// Break Sync Delimiter bit 1 On
    };
    enum UCDORM_t// Dormant. Puts USCI into sleep mode {
         UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG,
         UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    };
    enum UCFE_t// Framing error flag {
         UCFE_OFF// 0 No error,
         UCFE// Character received with low stop bit
    };
    enum UCIDLE_t// Idle line detected in idle-line multiprocessor mode {
         UCIDLE_OFF// No idle line detected,
         UCIDLE// Idle line detected
    };
    enum UCIREN_t// IrDA encoder/decoder enable {
         UCIREN_OFF// IrDA encoder/decoder disabled,
         UCIREN// IrDA encoder/decoder enabled
    };
    enum UCIRRXFE_t// IrDA receive filter enabled {
         UCIRRXFE_OFF// Receive filter disabled,
         UCIRRXFE// Receive filter enabled
    };
    enum UCIRRXFL0_t// IRDA Receive Filter Length Bit 0 {
         UCIRRXFL0_OFF// Bit 0 OFF,
         UCIRRXFL0// Bit 0 ON
    };
    enum UCIRRXFL1_t// IRDA Receive Filter Length Bit 1 {
         UCIRRXFL1_OFF// Bit 1 OFF,
         UCIRRXFL1// Bit 1 ON
    };
    enum UCIRRXFL2_t// IRDA Receive Filter Length Bit 2 {
         UCIRRXFL2_OFF// Bit 2 OFF,
         UCIRRXFL2// Bit 2 ON
    };
    enum UCIRRXFL3_t// IRDA Receive Filter Length Bit 3 {
         UCIRRXFL3_OFF// Bit 3 OFF,
         UCIRRXFL3// Bit 3 ON
    };
    enum UCIRRXFL4_t// IRDA Receive Filter Length Bit 4 {
         UCIRRXFL4_OFF// Bit 4 OFF,
         UCIRRXFL4// Bit 4 ON
    };
    enum UCIRRXFL5_t// IRDA Receive Filter Length Bit 5 {
         UCIRRXFL5_OFF// Bit 5 OFF,
         UCIRRXFL5// Bit 5 ON
    };
    enum UCIRRXPL_t// IrDA receive input UCAxRXD polarity {
         UCIRRXPL_OFF// IrDA transceiver delivers a high pulse when a light pulse is seen,
         UCIRRXPL// IrDA transceiver delivers a low pulse when a light pulse is seen
    };
    enum UCIRTXCLK_t// IrDA transmit pulse clock select {
         UCIRTXCLK_OFF// BRCLK,
         UCIRTXCLK// BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
    };
    enum UCIRTXPL0_t// IRDA Transmit Pulse Length Bit 0 {
         UCIRTXPL0_OFF// Bit 0 OFF,
         UCIRTXPL0// Bit 0 ON
    };
    enum UCIRTXPL1_t// IRDA Transmit Pulse Length Bit 1 {
         UCIRTXPL1_OFF// Bit 1 OFF,
         UCIRTXPL1// Bit 1 ON
    };
    enum UCIRTXPL2_t// IRDA Transmit Pulse Length Bit 2 {
         UCIRTXPL2_OFF// Bit 2 OFF,
         UCIRTXPL2// Bit 2 ON
    };
    enum UCIRTXPL3_t// IRDA Transmit Pulse Length Bit 3 {
         UCIRTXPL3_OFF// Bit 3 OFF,
         UCIRTXPL3// Bit 3 ON
    };
    enum UCIRTXPL4_t// IRDA Transmit Pulse Length Bit 4 {
         UCIRTXPL4_OFF// Bit 4 OFF,
         UCIRTXPL4// Bit 4 ON
    };
    enum UCIRTXPL5_t// IRDA Transmit Pulse Length Bit 5 {
         UCIRTXPL5_OFF// Bit 5 OFF,
         UCIRTXPL5// Bit 5 ON
    };
    enum UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode {
         UCLISTEN_OFF// Disabled,
         UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver
    };
    enum UCMODE_ASYNC_t// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0 {
         UCMODE_0// UART Mode,
         UCMODE_1// Idle-Line Multiprocessor Mode,
         UCMODE_2// Address-Bit Multiprocessor Mode,
         UCMODE_3// UART Mode with automatic baud rate detection
    };
    enum UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1 {
         UCMODE_0// 3-Pin SPI,
         UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1,
         UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0,
         UCMODE_3// I2C Mode
    };
    enum UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register {
         UCMSB_OFF// LSB first,
         UCMSB// MSB first
    };
    enum UCOE_t// Overrun error flag {
         UCOE_OFF// No error,
         UCOE// Overrun error occurred
    };
    enum UCOS16_t// Oversampling mode enabled {
         UCOS16_OFF// Disabled,
         UCOS16// Enabled
    };
    enum UCPAR_t// Parity select. UCPAR is not used when parity is disabled {
         UCPAR_OFF// Odd parity,
         UCPAR// Even parity
    };
    enum UCPEN_t// Parity enable {
         UCPEN_OFF// Parity Disabled,
         UCPEN// Parity Enabled
    };
    enum UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0 {
         UCPE_OFF// No error,
         UCPE// Character received with parity error
    };
    enum UCRXEIE_t// Receive erroneous-character interrupt-enable {
         UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set,
         UCRXEIE// Erroneous characters received will set UCAxRXIFG
    };
    enum UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read {
         UCRXERR_OFF// No receive errors detected,
         UCRXERR// Receive error detected
    };
    enum UCSPB_t// Stop bit select. Number of stop bits {
         UCSPB_OFF// One stop bit,
         UCSPB// Two stop bits
    };
    enum UCSSEL_UART_t// USCI clock source select. These bits select the BRCLK source clock {
         UCSSEL_0// UCLK,
         UCSSEL_1// ACLK,
         UCSSEL_2// SMCLK
    };
    enum UCSTOE_t// Synch field time out error {
         UCSTOE_OFF// No error,
         UCSTOE// Length of synch field exceeded measurable time
    };
    enum UCSWRST_t// Software reset enable {
         UCSWRST_OFF// Disabled. USCI reset released for operation,
         UCSWRST// Enabled. USCI logic held in reset state
    };
    enum UCSYNC_t// Synchronous mode enable {
         UCSYNC_OFF// Asynchronous mode,
         UCSYNC// Synchronous Mode
    };
    enum UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode {
         UCTXADDR_OFF// Next frame transmitted is data,
         UCTXADDR// Next frame transmitted is an address
    };
    enum UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer {
         UCTXBRK_OFF// Next frame transmitted is not a break,
         UCTXBRK// Next frame transmitted is a break or a break/synch
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct UCxABCTL_t// {
         IUSCI_UART.UCDELIM1_t UCDELIM1// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times;
         IUSCI_UART.UCDELIM0_t UCDELIM0// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times;
         IUSCI_UART.UCSTOE_t UCSTOE// Synch field time out error 0 No error 1 Length of synch field exceeded measurable time;
         IUSCI_UART.UCBTOE_t UCBTOE// Break time out error 0 No error 1 Length of break field exceeded 22 bit times;
         IUSCI_UART.UCABDEN_t UCABDEN// Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly;
    };
    metaonly struct UCxCTL0_t// {
         IUSCI_UART.UCPEN_t UCPEN// Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation;
         IUSCI_UART.UCPAR_t UCPAR// Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity;
         IUSCI_UART.UCMSB_t UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first;
         IUSCI_UART.UC7BIT_t UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data;
         IUSCI_UART.UCSPB_t UCSPB// Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits;
         IUSCI_UART.UCMODE_ASYNC_t UCMODE// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection;
         IUSCI_UART.UCSYNC_t UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode;
    };
    metaonly struct UCxCTL1_t// {
         IUSCI_UART.UCSSEL_UART_t UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK;
         IUSCI_UART.UCRXEIE_t UCRXEIE// Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG;
         IUSCI_UART.UCBRKIE_t UCBRKIE// Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG;
         IUSCI_UART.UCDORM_t UCDORM// Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
         IUSCI_UART.UCTXADDR_t UCTXADDR// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address;
         IUSCI_UART.UCTXBRK_t UCTXBRK// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch;
         IUSCI_UART.UCSWRST_t UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state;
    };
    metaonly struct UCxIRRCTL_t// {
         IUSCI_UART.UCIRRXFL5_t UCIRRXFL5// IRDA Receive Filter Length Bit 5;
         IUSCI_UART.UCIRRXFL4_t UCIRRXFL4// IRDA Receive Filter Length Bit 4;
         IUSCI_UART.UCIRRXFL3_t UCIRRXFL3// IRDA Receive Filter Length Bit 3;
         IUSCI_UART.UCIRRXFL2_t UCIRRXFL2// IRDA Receive Filter Length Bit 2;
         IUSCI_UART.UCIRRXFL1_t UCIRRXFL1// IRDA Receive Filter Length Bit 1;
         IUSCI_UART.UCIRRXFL0_t UCIRRXFL0// IRDA Receive Filter Length Bit 0;
         IUSCI_UART.UCIRRXPL_t UCIRRXPL// IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen;
         IUSCI_UART.UCIRRXFE_t UCIRRXFE// IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled;
    };
    metaonly struct UCxIRTCTL_t// {
         IUSCI_UART.UCIRTXPL5_t UCIRTXPL5// IRDA Transmit Pulse Length Bit 5;
         IUSCI_UART.UCIRTXPL4_t UCIRTXPL4// IRDA Transmit Pulse Length Bit 4;
         IUSCI_UART.UCIRTXPL3_t UCIRTXPL3// IRDA Transmit Pulse Length Bit 3;
         IUSCI_UART.UCIRTXPL2_t UCIRTXPL2// IRDA Transmit Pulse Length Bit 2;
         IUSCI_UART.UCIRTXPL1_t UCIRTXPL1// IRDA Transmit Pulse Length Bit 1;
         IUSCI_UART.UCIRTXPL0_t UCIRTXPL0// IRDA Transmit Pulse Length Bit 0;
         IUSCI_UART.UCIRTXCLK_t UCIRTXCLK// IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK;
         IUSCI_UART.UCIREN_t UCIREN// IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled;
    };
    metaonly struct UCxMCTL_t// {
         IUSCI_UART.UCBRF_t UCBRF// First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0;
         IUSCI_UART.UCBRS_t UCBRS// Second modulation stage select. These bits determine the modulation pattern for BITCLK;
         IUSCI_UART.UCOS16_t UCOS16// Oversampling mode enabled 0 Disabled 1 Enabled;
    };
    metaonly struct UCxSTAT_t// {
         IUSCI_UART.UCLISTEN_t UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver;
         IUSCI_UART.UCFE_t UCFE// Framing error flag 0 No error 1 Character received with low stop bit;
         IUSCI_UART.UCOE_t UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred;
         IUSCI_UART.UCPE_t UCPE// Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error;
         IUSCI_UART.UCBRK_t UCBRK// Break detect flag 0 No break condition 1 Break condition occurred;
         IUSCI_UART.UCRXERR_t UCRXERR// Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected;
         IUSCI_UART.UCADDR_t UCADDR// Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address;
         IUSCI_UART.UCIDLE_t UCIDLE// Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected;
         IUSCI_UART.UCBUSY_t UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Float UCLKHz// Stores the UCLK external clock frequency in float = 1000000;
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bits8 getUCxxBR0// Returns UCxxBR0 register value based on which module();
    Bits8 getUCxxBR1// Returns UCxxBR1 register value based on which module();
    Bool getUCxxRXIE// Gets UCxxRXIE bit();
    Bool getUCxxTXIE// Gets UCxxTXIE bit();
    Void setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value);
    Void setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value);
    Bool setUCxxRXIE// Sets UCxxRXIE bit(Bool set);
    Bool setUCxxTXIE// Sets UCxxTXIE bit(Bool set);
}
enum IUSCI_UART.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UC7BIT_t {
    UC7BIT_OFF,
    // 8-bit
    UC7BIT
    // 7-bit
};
enum IUSCI_UART.UCABDEN_t
index URL

Automatic baud rate detect enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCABDEN_t {
    UCABDEN_OFF,
    // Baud rate detection disabled. Length of break and synch field is not measured
    UCABDEN
    // Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
};
enum IUSCI_UART.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCADDR_t {
    UCADDR_OFF,
    // Received character is data
    UCADDR
    // Received character is an address
};
enum IUSCI_UART.UCBRF_t
index URL

First modulation stage select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCBRF_t {
    UCBRF_0,
    // First stage 0
    UCBRF_1,
    // First stage 1
    UCBRF_2,
    // First stage 2
    UCBRF_3,
    // First stage 3
    UCBRF_4,
    // First stage 4
    UCBRF_5,
    // First stage 5
    UCBRF_6,
    // First stage 6
    UCBRF_7,
    // First stage 7
    UCBRF_8,
    // First stage 8
    UCBRF_9,
    // First stage 9
    UCBRF_10,
    // First stage 10
    UCBRF_11,
    // First stage 11
    UCBRF_12,
    // First stage 12
    UCBRF_13,
    // First stage 13
    UCBRF_14,
    // First stage 14
    UCBRF_15
    // First stage 15
};
enum IUSCI_UART.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCBRKIE_t {
    UCBRKIE_OFF,
    // Received break characters do not set UCAxRXIFG
    UCBRKIE
    // Received break characters set UCAxRXIFG
};
enum IUSCI_UART.UCBRK_t
index URL

Break detect flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCBRK_t {
    UCBRK_OFF,
    // No break condition
    UCBRK
    // Break condition occurred
};
enum IUSCI_UART.UCBRS_t
index URL

Second modulation stage select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCBRS_t {
    UCBRS_0,
    // Second stage 0
    UCBRS_1,
    // Second stage 1
    UCBRS_2,
    // Second stage 2
    UCBRS_3,
    // Second stage 3
    UCBRS_4,
    // Second stage 4
    UCBRS_5,
    // Second stage 5
    UCBRS_6,
    // Second stage 6
    UCBRS_7
    // Second stage 7
};
enum IUSCI_UART.UCBTOE_t
index URL

Break time out error

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCBTOE_t {
    UCBTOE_OFF,
    // No error
    UCBTOE
    // Length of break field exceeded 22 bit times
};
enum IUSCI_UART.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCBUSY_t {
    UCBUSY_OFF,
    // USCI inactive
    UCBUSY
    // USCI transmitting or receiving
};
enum IUSCI_UART.UCDELIM0_t
index URL

Break/synch delimiter length bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCDELIM0_t {
    UCDELIM0_OFF,
    // Break Sync Delimiter bit 0 Off
    UCDELIM0
    // Break Sync Delimiter bit 0 On
};
enum IUSCI_UART.UCDELIM1_t
index URL

Break/synch delimiter length bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCDELIM1_t {
    UCDELIM1_OFF,
    // Break Sync Delimiter bit 1 Off
    UCDELIM1
    // Break Sync Delimiter bit 1 On
};
enum IUSCI_UART.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCDORM_t {
    UCDORM_OFF,
    // Not dormant. All received characters will set UCAxRXIFG
    UCDORM
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
};
enum IUSCI_UART.UCFE_t
index URL

Framing error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCFE_t {
    UCFE_OFF,
    // 0 No error
    UCFE
    // Character received with low stop bit
};
enum IUSCI_UART.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIDLE_t {
    UCIDLE_OFF,
    // No idle line detected
    UCIDLE
    // Idle line detected
};
enum IUSCI_UART.UCIREN_t
index URL

IrDA encoder/decoder enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIREN_t {
    UCIREN_OFF,
    // IrDA encoder/decoder disabled
    UCIREN
    // IrDA encoder/decoder enabled
};
enum IUSCI_UART.UCIRRXFE_t
index URL

IrDA receive filter enabled

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRRXFE_t {
    UCIRRXFE_OFF,
    // Receive filter disabled
    UCIRRXFE
    // Receive filter enabled
};
enum IUSCI_UART.UCIRRXFL0_t
index URL

IRDA Receive Filter Length Bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRRXFL0_t {
    UCIRRXFL0_OFF,
    // Bit 0 OFF
    UCIRRXFL0
    // Bit 0 ON
};
enum IUSCI_UART.UCIRRXFL1_t
index URL

IRDA Receive Filter Length Bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRRXFL1_t {
    UCIRRXFL1_OFF,
    // Bit 1 OFF
    UCIRRXFL1
    // Bit 1 ON
};
enum IUSCI_UART.UCIRRXFL2_t
index URL

IRDA Receive Filter Length Bit 2

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRRXFL2_t {
    UCIRRXFL2_OFF,
    // Bit 2 OFF
    UCIRRXFL2
    // Bit 2 ON
};
enum IUSCI_UART.UCIRRXFL3_t
index URL

IRDA Receive Filter Length Bit 3

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRRXFL3_t {
    UCIRRXFL3_OFF,
    // Bit 3 OFF
    UCIRRXFL3
    // Bit 3 ON
};
enum IUSCI_UART.UCIRRXFL4_t
index URL

IRDA Receive Filter Length Bit 4

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRRXFL4_t {
    UCIRRXFL4_OFF,
    // Bit 4 OFF
    UCIRRXFL4
    // Bit 4 ON
};
enum IUSCI_UART.UCIRRXFL5_t
index URL

IRDA Receive Filter Length Bit 5

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRRXFL5_t {
    UCIRRXFL5_OFF,
    // Bit 5 OFF
    UCIRRXFL5
    // Bit 5 ON
};
enum IUSCI_UART.UCIRRXPL_t
index URL

IrDA receive input UCAxRXD polarity

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRRXPL_t {
    UCIRRXPL_OFF,
    // IrDA transceiver delivers a high pulse when a light pulse is seen
    UCIRRXPL
    // IrDA transceiver delivers a low pulse when a light pulse is seen
};
enum IUSCI_UART.UCIRTXCLK_t
index URL

IrDA transmit pulse clock select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRTXCLK_t {
    UCIRTXCLK_OFF,
    // BRCLK
    UCIRTXCLK
    // BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
};
enum IUSCI_UART.UCIRTXPL0_t
index URL

IRDA Transmit Pulse Length Bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRTXPL0_t {
    UCIRTXPL0_OFF,
    // Bit 0 OFF
    UCIRTXPL0
    // Bit 0 ON
};
enum IUSCI_UART.UCIRTXPL1_t
index URL

IRDA Transmit Pulse Length Bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRTXPL1_t {
    UCIRTXPL1_OFF,
    // Bit 1 OFF
    UCIRTXPL1
    // Bit 1 ON
};
enum IUSCI_UART.UCIRTXPL2_t
index URL

IRDA Transmit Pulse Length Bit 2

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRTXPL2_t {
    UCIRTXPL2_OFF,
    // Bit 2 OFF
    UCIRTXPL2
    // Bit 2 ON
};
enum IUSCI_UART.UCIRTXPL3_t
index URL

IRDA Transmit Pulse Length Bit 3

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRTXPL3_t {
    UCIRTXPL3_OFF,
    // Bit 3 OFF
    UCIRTXPL3
    // Bit 3 ON
};
enum IUSCI_UART.UCIRTXPL4_t
index URL

IRDA Transmit Pulse Length Bit 4

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRTXPL4_t {
    UCIRTXPL4_OFF,
    // Bit 4 OFF
    UCIRTXPL4
    // Bit 4 ON
};
enum IUSCI_UART.UCIRTXPL5_t
index URL

IRDA Transmit Pulse Length Bit 5

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCIRTXPL5_t {
    UCIRTXPL5_OFF,
    // Bit 5 OFF
    UCIRTXPL5
    // Bit 5 ON
};
enum IUSCI_UART.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCLISTEN_t {
    UCLISTEN_OFF,
    // Disabled
    UCLISTEN
    // Enabled. UCAxTXD is internally fed back to the receiver
};
enum IUSCI_UART.UCMODE_ASYNC_t
index URL

USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCMODE_ASYNC_t {
    UCMODE_0,
    // UART Mode
    UCMODE_1,
    // Idle-Line Multiprocessor Mode
    UCMODE_2,
    // Address-Bit Multiprocessor Mode
    UCMODE_3
    // UART Mode with automatic baud rate detection
};
enum IUSCI_UART.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCMODE_SYNC_t {
    UCMODE_0,
    // 3-Pin SPI
    UCMODE_1,
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    UCMODE_2,
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    UCMODE_3
    // I2C Mode
};
enum IUSCI_UART.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCMSB_t {
    UCMSB_OFF,
    // LSB first
    UCMSB
    // MSB first
};
enum IUSCI_UART.UCOE_t
index URL

Overrun error flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCOE_t {
    UCOE_OFF,
    // No error
    UCOE
    // Overrun error occurred
};
enum IUSCI_UART.UCOS16_t
index URL

Oversampling mode enabled

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCOS16_t {
    UCOS16_OFF,
    // Disabled
    UCOS16
    // Enabled
};
enum IUSCI_UART.UCPAR_t
index URL

Parity select. UCPAR is not used when parity is disabled

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCPAR_t {
    UCPAR_OFF,
    // Odd parity
    UCPAR
    // Even parity
};
enum IUSCI_UART.UCPEN_t
index URL

Parity enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCPEN_t {
    UCPEN_OFF,
    // Parity Disabled
    UCPEN
    // Parity Enabled
};
enum IUSCI_UART.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCPE_t {
    UCPE_OFF,
    // No error
    UCPE
    // Character received with parity error
};
enum IUSCI_UART.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCRXEIE_t {
    UCRXEIE_OFF,
    // Erroneous characters rejected and UCAxRXIFG is not set
    UCRXEIE
    // Erroneous characters received will set UCAxRXIFG
};
enum IUSCI_UART.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCRXERR_t {
    UCRXERR_OFF,
    // No receive errors detected
    UCRXERR
    // Receive error detected
};
enum IUSCI_UART.UCSPB_t
index URL

Stop bit select. Number of stop bits

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCSPB_t {
    UCSPB_OFF,
    // One stop bit
    UCSPB
    // Two stop bits
};
enum IUSCI_UART.UCSSEL_UART_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCSSEL_UART_t {
    UCSSEL_0,
    // UCLK
    UCSSEL_1,
    // ACLK
    UCSSEL_2
    // SMCLK
};
enum IUSCI_UART.UCSTOE_t
index URL

Synch field time out error

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCSTOE_t {
    UCSTOE_OFF,
    // No error
    UCSTOE
    // Length of synch field exceeded measurable time
};
enum IUSCI_UART.UCSWRST_t
index URL

Software reset enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCSWRST_t {
    UCSWRST_OFF,
    // Disabled. USCI reset released for operation
    UCSWRST
    // Enabled. USCI logic held in reset state
};
enum IUSCI_UART.UCSYNC_t
index URL

Synchronous mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCSYNC_t {
    UCSYNC_OFF,
    // Asynchronous mode
    UCSYNC
    // Synchronous Mode
};
enum IUSCI_UART.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCTXADDR_t {
    UCTXADDR_OFF,
    // Next frame transmitted is data
    UCTXADDR
    // Next frame transmitted is an address
};
enum IUSCI_UART.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
enum UCTXBRK_t {
    UCTXBRK_OFF,
    // Next frame transmitted is not a break
    UCTXBRK
    // Next frame transmitted is a break or a break/synch
};
typedef IUSCI_UART.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSCI_UART.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
typedef String StringArray[];
struct IUSCI_UART.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSCI_UART.UCxABCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly struct UCxABCTL_t {
     IUSCI_UART.UCDELIM1_t UCDELIM1;
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
     IUSCI_UART.UCDELIM0_t UCDELIM0;
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
     IUSCI_UART.UCSTOE_t UCSTOE;
    // Synch field time out error 0 No error 1 Length of synch field exceeded measurable time
     IUSCI_UART.UCBTOE_t UCBTOE;
    // Break time out error 0 No error 1 Length of break field exceeded 22 bit times
     IUSCI_UART.UCABDEN_t UCABDEN;
    // Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
};
struct IUSCI_UART.UCxCTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly struct UCxCTL0_t {
     IUSCI_UART.UCPEN_t UCPEN;
    // Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation
     IUSCI_UART.UCPAR_t UCPAR;
    // Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity
     IUSCI_UART.UCMSB_t UCMSB;
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
     IUSCI_UART.UC7BIT_t UC7BIT;
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
     IUSCI_UART.UCSPB_t UCSPB;
    // Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits
     IUSCI_UART.UCMODE_ASYNC_t UCMODE;
    // USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection
     IUSCI_UART.UCSYNC_t UCSYNC;
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
};
struct IUSCI_UART.UCxCTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly struct UCxCTL1_t {
     IUSCI_UART.UCSSEL_UART_t UCSSEL;
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK
     IUSCI_UART.UCRXEIE_t UCRXEIE;
    // Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG
     IUSCI_UART.UCBRKIE_t UCBRKIE;
    // Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG
     IUSCI_UART.UCDORM_t UCDORM;
    // Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
     IUSCI_UART.UCTXADDR_t UCTXADDR;
    // Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address
     IUSCI_UART.UCTXBRK_t UCTXBRK;
    // Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch
     IUSCI_UART.UCSWRST_t UCSWRST;
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
};
struct IUSCI_UART.UCxIRRCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly struct UCxIRRCTL_t {
     IUSCI_UART.UCIRRXFL5_t UCIRRXFL5;
    // IRDA Receive Filter Length Bit 5
     IUSCI_UART.UCIRRXFL4_t UCIRRXFL4;
    // IRDA Receive Filter Length Bit 4
     IUSCI_UART.UCIRRXFL3_t UCIRRXFL3;
    // IRDA Receive Filter Length Bit 3
     IUSCI_UART.UCIRRXFL2_t UCIRRXFL2;
    // IRDA Receive Filter Length Bit 2
     IUSCI_UART.UCIRRXFL1_t UCIRRXFL1;
    // IRDA Receive Filter Length Bit 1
     IUSCI_UART.UCIRRXFL0_t UCIRRXFL0;
    // IRDA Receive Filter Length Bit 0
     IUSCI_UART.UCIRRXPL_t UCIRRXPL;
    // IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen
     IUSCI_UART.UCIRRXFE_t UCIRRXFE;
    // IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled
};
struct IUSCI_UART.UCxIRTCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly struct UCxIRTCTL_t {
     IUSCI_UART.UCIRTXPL5_t UCIRTXPL5;
    // IRDA Transmit Pulse Length Bit 5
     IUSCI_UART.UCIRTXPL4_t UCIRTXPL4;
    // IRDA Transmit Pulse Length Bit 4
     IUSCI_UART.UCIRTXPL3_t UCIRTXPL3;
    // IRDA Transmit Pulse Length Bit 3
     IUSCI_UART.UCIRTXPL2_t UCIRTXPL2;
    // IRDA Transmit Pulse Length Bit 2
     IUSCI_UART.UCIRTXPL1_t UCIRTXPL1;
    // IRDA Transmit Pulse Length Bit 1
     IUSCI_UART.UCIRTXPL0_t UCIRTXPL0;
    // IRDA Transmit Pulse Length Bit 0
     IUSCI_UART.UCIRTXCLK_t UCIRTXCLK;
    // IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
     IUSCI_UART.UCIREN_t UCIREN;
    // IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled
};
struct IUSCI_UART.UCxMCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly struct UCxMCTL_t {
     IUSCI_UART.UCBRF_t UCBRF;
    // First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0
     IUSCI_UART.UCBRS_t UCBRS;
    // Second modulation stage select. These bits determine the modulation pattern for BITCLK
     IUSCI_UART.UCOS16_t UCOS16;
    // Oversampling mode enabled 0 Disabled 1 Enabled
};
struct IUSCI_UART.UCxSTAT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly struct UCxSTAT_t {
     IUSCI_UART.UCLISTEN_t UCLISTEN;
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
     IUSCI_UART.UCFE_t UCFE;
    // Framing error flag 0 No error 1 Character received with low stop bit
     IUSCI_UART.UCOE_t UCOE;
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
     IUSCI_UART.UCPE_t UCPE;
    // Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error
     IUSCI_UART.UCBRK_t UCBRK;
    // Break detect flag 0 No break condition 1 Break condition occurred
     IUSCI_UART.UCRXERR_t UCRXERR;
    // Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected
     IUSCI_UART.UCADDR_t UCADDR;
    // Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address
     IUSCI_UART.UCIDLE_t UCIDLE;
    // Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected
     IUSCI_UART.UCBUSY_t UCBUSY;
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
};
struct IUSCI_UART.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSCI_UART.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSCI_UART.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSCI_UART.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
config Float UCLKHz = 1000000;
config IUSCI_UART.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSCI_UART.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
config String owner;
IUSCI_UART.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bits8 getUCxxBR0();
SEE
getUCxxBR0
IUSCI_UART.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bits8 getUCxxBR1();
SEE
getUCxxBR1
IUSCI_UART.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bool getUCxxRXIE();
SEE
getUCxxRXIE
IUSCI_UART.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bool getUCxxTXIE();
SEE
getUCxxTXIE
IUSCI_UART.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Void setUCxxBR0(Bits8 value);
SEE
setUCxxBR0
IUSCI_UART.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Void setUCxxBR1(Bits8 value);
SEE
setUCxxBR1
IUSCI_UART.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bool setUCxxRXIE(Bool set);
SEE
setUCxxRXIE
IUSCI_UART.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bool setUCxxTXIE(Bool set);
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:43 GMT


interface ti.catalog.msp430.peripherals.communication.IUSCI_UART

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     * Universal Serial Communication Interface
    14     */
    15    metaonly interface IUSCI_UART inherits IUSCI {
    16
    17        //*****************************************************************
    18        //* REGISTER BIT DEFINITIONS                                      *
    19        //*****************************************************************
    20
    21        /*! Parity enable */
    22        enum UCPEN_t {
    23            UCPEN_OFF = 0x00,       /*! Parity Disabled */
    24            UCPEN = 0x02            /*! Parity Enabled */
    25        };
    26
    27        /*! Parity select. UCPAR is not used when parity is disabled. */
    28        enum UCPAR_t {
    29            UCPAR_OFF = 0x00,       /*! Odd parity */
    30            UCPAR = 0x02            /*! Even parity */
    31        };
    32
    33        /*! Stop bit select. Number of stop bits. */
    34        enum UCSPB_t {
    35            UCSPB_OFF = 0x00,       /*! One stop bit */
    36            UCSPB = 0x02            /*! Two stop bits */
    37        };
    38
    39        /*! First modulation stage select */
    40        enum UCBRF_t {
    41            UCBRF_0 = 0x00,         /*! First stage 0 */
    42            UCBRF_1 = 0x10,         /*! First stage 1 */
    43            UCBRF_2 = 0x20,         /*! First stage 2 */
    44            UCBRF_3 = 0x30,         /*! First stage 3 */
    45            UCBRF_4 = 0x40,         /*! First stage 4 */
    46            UCBRF_5 = 0x50,         /*! First stage 5 */
    47            UCBRF_6 = 0x60,         /*! First stage 6 */
    48            UCBRF_7 = 0x70,         /*! First stage 7 */
    49            UCBRF_8 = 0x80,         /*! First stage 8 */
    50            UCBRF_9 = 0x90,         /*! First stage 9 */
    51            UCBRF_10 = 0xA0,        /*! First stage 10 */
    52            UCBRF_11 = 0xB0,        /*! First stage 11 */
    53            UCBRF_12 = 0xC0,        /*! First stage 12 */
    54            UCBRF_13 = 0xD0,        /*! First stage 13 */
    55            UCBRF_14 = 0xE0,        /*! First stage 14 */
    56            UCBRF_15 = 0xF0         /*! First stage 15 */
    57        };
    58
    59        /*! Second modulation stage select */
    60        enum UCBRS_t {
    61            UCBRS_0 = 0x00,         /*! Second stage 0 */
    62            UCBRS_1 = 0x02,         /*! Second stage 1 */
    63            UCBRS_2 = 0x04,         /*! Second stage 2 */
    64            UCBRS_3 = 0x06,         /*! Second stage 3 */
    65            UCBRS_4 = 0x08,         /*! Second stage 4 */
    66            UCBRS_5 = 0x0A,         /*! Second stage 5 */
    67            UCBRS_6 = 0x0C,         /*! Second stage 6 */
    68            UCBRS_7 = 0x0E          /*! Second stage 7 */
    69        };
    70
    71        /*! Oversampling mode enabled */
    72        enum UCOS16_t {
    73            UCOS16_OFF = 0x00,      /*! Disabled. */
    74            UCOS16 = 0x02           /*! Enabled. */
    75        };
    76
    77
    78            /*! IRDA Transmit Pulse Length Bit 5 */
    79        enum UCIRTXPL5_t {
    80            UCIRTXPL5_OFF = 0x00,   /*! Bit 5 OFF */
    81            UCIRTXPL5 = 0x80        /*! Bit 5 ON */
    82        };
    83
    84        /*! IRDA Transmit Pulse Length Bit 4 */
    85        enum UCIRTXPL4_t {
    86            UCIRTXPL4_OFF = 0x00,   /*! Bit 4 OFF */
    87            UCIRTXPL4 = 0x40        /*! Bit 4 ON */
    88        };
    89
    90        /*! IRDA Transmit Pulse Length Bit 3 */
    91        enum UCIRTXPL3_t {
    92            UCIRTXPL3_OFF = 0x00,   /*! Bit 3 OFF */
    93            UCIRTXPL3 = 0x20        /*! Bit 3 ON */
    94        };
    95
    96        /*! IRDA Transmit Pulse Length Bit 2 */
    97        enum UCIRTXPL2_t {
    98            UCIRTXPL2_OFF = 0x00,   /*! Bit 2 OFF */
    99            UCIRTXPL2 = 0x10        /*! Bit 2 ON */
   100        };
   101
   102        /*! IRDA Transmit Pulse Length Bit 1 */
   103        enum UCIRTXPL1_t {
   104            UCIRTXPL1_OFF = 0x00,   /*! Bit 1 OFF */
   105            UCIRTXPL1 = 0x08        /*! Bit 1 ON */
   106        };
   107
   108        /*! IRDA Transmit Pulse Length Bit 0 */
   109        enum UCIRTXPL0_t {
   110            UCIRTXPL0_OFF = 0x00,   /*! Bit 0 OFF */
   111            UCIRTXPL0 = 0x04        /*! Bit 0 ON */
   112        };
   113
   114        /*! IrDA transmit pulse clock select. */
   115        enum UCIRTXCLK_t {
   116            UCIRTXCLK_OFF = 0x00,   /*! BRCLK. */
   117            UCIRTXCLK = 0x02        /*! BITCLK16 when UCOS16 = 1. Otherwise, BRCLK. */
   118        };
   119
   120        /*! IrDA encoder/decoder enable. */
   121        enum UCIREN_t {
   122            UCIREN_OFF = 0x00,      /*! IrDA encoder/decoder disabled. */
   123            UCIREN = 0x02           /*! IrDA encoder/decoder enabled. */
   124        };
   125
   126        /*! IRDA Receive Filter Length Bit 5 */
   127        enum UCIRRXFL5_t {
   128            UCIRRXFL5_OFF = 0x00,   /*! Bit 5 OFF */
   129            UCIRRXFL5 = 0x80        /*! Bit 5 ON */
   130        };
   131
   132        /*! IRDA Receive Filter Length Bit 4 */
   133        enum UCIRRXFL4_t {
   134            UCIRRXFL4_OFF = 0x00,   /*! Bit 4 OFF */
   135            UCIRRXFL4 = 0x40        /*! Bit 4 ON */
   136        };
   137
   138        /*! IRDA Receive Filter Length Bit 3 */
   139        enum UCIRRXFL3_t {
   140            UCIRRXFL3_OFF = 0x00,   /*! Bit 3 OFF */
   141            UCIRRXFL3 = 0x20        /*! Bit 3 ON */
   142        };
   143
   144        /*! IRDA Receive Filter Length Bit 2 */
   145        enum UCIRRXFL2_t {
   146            UCIRRXFL2_OFF = 0x00,   /*! Bit 2 OFF */
   147            UCIRRXFL2 = 0x10        /*! Bit 2 ON */
   148        };
   149
   150        /*! IRDA Receive Filter Length Bit 1 */
   151        enum UCIRRXFL1_t {
   152            UCIRRXFL1_OFF = 0x00,   /*! Bit 1 OFF */
   153            UCIRRXFL1 = 0x08        /*! Bit 1 ON */
   154        };
   155
   156        /*! IRDA Receive Filter Length Bit 0 */
   157        enum UCIRRXFL0_t {
   158            UCIRRXFL0_OFF = 0x00,   /*! Bit 0 OFF */
   159            UCIRRXFL0 = 0x04        /*! Bit 0 ON */
   160        };
   161
   162        /*! IrDA receive input UCAxRXD polarity. */
   163        enum UCIRRXPL_t {
   164            UCIRRXPL_OFF = 0x00,    /*! IrDA transceiver delivers a high pulse when a light pulse is seen. */
   165            UCIRRXPL = 0x02         /*! IrDA transceiver delivers a low pulse when a light pulse is seen. */
   166        };
   167
   168        /*! IrDA receive filter enabled. */
   169        enum UCIRRXFE_t {
   170            UCIRRXFE_OFF = 0x00,    /*! Receive filter disabled. */
   171            UCIRRXFE = 0x02         /*! Receive filter enabled. */
   172        };
   173
   174        /*! Break/synch delimiter length bit 0 */
   175        enum UCDELIM0_t {
   176            UCDELIM0_OFF = 0x00,    /*! Break Sync Delimiter bit 0 Off */
   177            UCDELIM0 = 0x02         /*! Break Sync Delimiter bit 0 On */
   178        };
   179
   180        /*! Break/synch delimiter length bit 1 */
   181        enum UCDELIM1_t {
   182            UCDELIM1_OFF = 0x00,    /*! Break Sync Delimiter bit 1 Off */
   183            UCDELIM1 = 0x02         /*! Break Sync Delimiter bit 1 On */
   184        };
   185
   186        /*! Synch field time out error. */
   187        enum UCSTOE_t {
   188            UCSTOE_OFF = 0x00,      /*! No error. */
   189            UCSTOE = 0x02           /*! Length of synch field exceeded measurable time. */
   190        };
   191
   192        /*! Break time out error. */
   193        enum UCBTOE_t {
   194            UCBTOE_OFF = 0x00,      /*! No error. */
   195            UCBTOE = 0x02           /*! Length of break field exceeded 22 bit times. */
   196        };
   197
   198        /*! Automatic baud rate detect enable. */
   199        enum UCABDEN_t {
   200            UCABDEN_OFF = 0x00,     /*! Baud rate detection disabled. Length of break and synch field is not
   201                                     * measured. */
   202            UCABDEN = 0x02          /*! Baud rate detection enabled. Length of break and synch field is
   203                                     * measured and baud rate settings are changed accordingly. */
   204        };
   205
   206        /*! USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. */
   207        enum UCMODE_ASYNC_t {
   208            UCMODE_0 = 0x00,        /*! UART Mode. */
   209            UCMODE_1 = 0x01,        /*! Idle-Line Multiprocessor Mode. */
   210            UCMODE_2 = 0x02,        /*! Address-Bit Multiprocessor Mode. */
   211            UCMODE_3 = 0x04         /*! UART Mode with automatic baud rate detection. */
   212        };
   213
   214        /*! USCI clock source select. These bits select the BRCLK source clock. */
   215        enum UCSSEL_UART_t {
   216            UCSSEL_0 = 0x00,        /*! UCLK */
   217            UCSSEL_1 = 0x01,        /*! ACLK */
   218            UCSSEL_2 = 0x02         /*! SMCLK */
   219    /*        UCSSEL_3 = 0x04         /*! SMCLK */
   220        };
   221
   222        struct UCxCTL0_t {
   223            UCPEN_t     UCPEN;      /*! Parity enable
   224                                     *  0  Parity disabled.
   225                                     *  1  Parity enabled. Parity bit is generated (UCAxTXD) and expected
   226                                     *     (UCAxRXD). In address-bit multiprocessor mode, the address bit is
   227                                     *     included in the parity calculation. */
   228            UCPAR_t     UCPAR;      /*! Parity select. UCPAR is not used when parity is disabled.
   229                                     *  0  Odd parity
   230                                     *  1  Even parity */
   231            UCMSB_t     UCMSB;      /*! MSB first select. Controls the direction of the receive and transmit shift
   232                                     *register.
   233                                     *  0  LSB first
   234                                     *  1  MSB first */
   235            UC7BIT_t    UC7BIT;     /*! Character length. Selects 7-bit or 8-bit character length.
   236                                     *  0  8-bit data
   237                                     *  1  7-bit data */
   238            UCSPB_t     UCSPB;      /*! Stop bit select. Number of stop bits.
   239                                     *  0  One stop bit
   240                                     *  1  Two stop bits */
   241            UCMODE_ASYNC_t UCMODE;  /*! USCI mode. The UCMODEx bits select the asynchronous mode when
   242                                     *UCSYNC = 0.
   243                                     *  00  UART Mode.
   244                                     *  01  Idle-Line Multiprocessor Mode.
   245                                     *  10  Address-Bit Multiprocessor Mode.
   246                                     *  11  UART Mode with automatic baud rate detection. */
   247            UCSYNC_t    UCSYNC;     /*!Synchronous mode enable
   248                                     *  0  Asynchronous mode
   249                                     *  1  Synchronous Mode */
   250        }
   251
   252        struct UCxCTL1_t {
   253            UCSSEL_UART_t UCSSEL;   /*! USCI clock source select. These bits select the BRCLK source clock.
   254                                     *  00  UCLK
   255                                     *  01  ACLK
   256                                     *  10  SMCLK
   257                                     *  11  SMCLK */
   258            UCRXEIE_t   UCRXEIE;    /*! Receive erroneous-character interrupt-enable
   259                                     *  0  Erroneous characters rejected and UCAxRXIFG is not set
   260                                     *  1  Erroneous characters received will set UCAxRXIFG */
   261            UCBRKIE_t   UCBRKIE;    /*! Receive break character interrupt-enable
   262                                     *  0  Received break characters do not set UCAxRXIFG.
   263                                     *  1  Received break characters set UCAxRXIFG. */
   264            UCDORM_t    UCDORM;     /*! Dormant. Puts USCI into sleep mode.
   265                                     *  0  Not dormant. All received characters will set UCAxRXIFG.
   266                                     *  1  Dormant. Only characters that are preceded by an idle-line or with
   267                                     *     address bit set will set UCAxRXIFG. In UART mode with automatic baud
   268                                     *     rate detection only the combination of a break and synch field will set
   269                                     *     UCAxRXIFG. */
   270            UCTXADDR_t  UCTXADDR;   /*! Transmit address. Next frame to be transmitted will be marked as address
   271                                     *depending on the selected multiprocessor mode.
   272                                     *  0  Next frame transmitted is data
   273                                     *  1  Next frame transmitted is an address */
   274            UCTXBRK_t   UCTXBRK;    /*! Transmit break. Transmits a break with the next write to the transmit buffer.
   275                                     *In UART mode with automatic baud rate detection 055h must be written
   276                                     *into UCAxTXBUF to generate the required break/synch fields. Otherwise
   277                                     *0h must be written into the transmit buffer.
   278                                     *   0  Next frame transmitted is not a break
   279                                     *   1  Next frame transmitted is a break or a break/synch */
   280            UCSWRST_t   UCSWRST;    /*! Software reset enable
   281                                     *   0  Disabled. USCI reset released for operation.
   282                                     *   1  Enabled. USCI logic held in reset state. */
   283        }
   284
   285        struct UCxMCTL_t {
   286            UCBRF_t     UCBRF;      /*! First modulation stage select. These bits determine the modulation pattern
   287                                     *for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0. */
   288            UCBRS_t     UCBRS;      /*! Second modulation stage select. These bits determine the modulation
   289                                     *pattern for BITCLK. */
   290            UCOS16_t    UCOS16;     /*! Oversampling mode enabled
   291                                     *  0  Disabled
   292                                     *  1  Enabled */
   293        }
   294
   295        struct UCxSTAT_t {
   296            UCLISTEN_t  UCLISTEN;   /*! Listen enable. The UCLISTEN bit selects loopback mode.
   297                                     *  0  Disabled
   298                                     *  1  Enabled. UCAxTXD is internally fed back to the receiver. */
   299            UCFE_t      UCFE;       /*! Framing error flag
   300                                     *  0  No error
   301                                     *  1  Character received with low stop bit */
   302            UCOE_t      UCOE;       /*! Overrun error flag. This bit is set when a character is transferred into
   303                                     *UCAxRXBUF before the previous character was read. UCOE is cleared
   304                                     *automatically when UCxRXBUF is read, and must not be cleared by
   305                                     *software. Otherwise, it will not function correctly.
   306                                     *  0  No error
   307                                     *  1  Overrun error occurred */
   308            UCPE_t      UCPE;       /*! Parity error flag. When UCPEN = 0, UCPE is read as 0.
   309                                     *  0  No error
   310                                     *  1  Character received with parity error */
   311            UCBRK_t     UCBRK;      /*! Break detect flag
   312                                     *  0  No break condition
   313                                     *  1  Break condition occurred */
   314            UCRXERR_t   UCRXERR;    /*! Receive error flag. This bit indicates a character was received with error(s).
   315                                     *When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also
   316                                     *set. UCRXERR is cleared when UCAxRXBUF is read.
   317                                     *  0  No receive errors detected
   318                                     *  1  Receive error detected */
   319            UCADDR_t    UCADDR;     /*! Address received in address-bit multiprocessor mode.
   320                                     *  0  Received character is data
   321                                     *  1  Received character is an address */
   322            UCIDLE_t    UCIDLE;     /*! Idle line detected in idle-line multiprocessor mode.
   323                                     *  0  No idle line detected
   324                                     *  1  Idle line detected */
   325            UCBUSY_t    UCBUSY;     /*! USCI busy. This bit indicates if a transmit or receive operation is in
   326                                     *progress.
   327                                     *  0  USCI inactive
   328                                     *  1  USCI transmitting or receiving */
   329        }
   330
   331        struct UCxIRTCTL_t {
   332            UCIRTXPL5_t  UCIRTXPL5; /*! IRDA Transmit Pulse Length Bit 5 */
   333            UCIRTXPL4_t  UCIRTXPL4; /*! IRDA Transmit Pulse Length Bit 4 */
   334            UCIRTXPL3_t  UCIRTXPL3; /*! IRDA Transmit Pulse Length Bit 3 */
   335            UCIRTXPL2_t  UCIRTXPL2; /*! IRDA Transmit Pulse Length Bit 2 */
   336            UCIRTXPL1_t  UCIRTXPL1; /*! IRDA Transmit Pulse Length Bit 1 */
   337            UCIRTXPL0_t  UCIRTXPL0; /*! IRDA Transmit Pulse Length Bit 0 */
   338            UCIRTXCLK_t  UCIRTXCLK; /*! IrDA transmit pulse clock select
   339                                     *  0  BRCLK
   340                                     *  1  BITCLK16 when UCOS16 = 1. Otherwise, BRCLK */
   341            UCIREN_t     UCIREN;    /*! IrDA encoder/decoder enable.
   342                                     *  0  IrDA encoder/decoder disabled
   343                                     *  1  IrDA encoder/decoder enabled */
   344        }
   345
   346        struct UCxIRRCTL_t {
   347            UCIRRXFL5_t  UCIRRXFL5; /*! IRDA Receive Filter Length Bit 5 */
   348            UCIRRXFL4_t  UCIRRXFL4; /*! IRDA Receive Filter Length Bit 4 */
   349            UCIRRXFL3_t  UCIRRXFL3; /*! IRDA Receive Filter Length Bit 3 */
   350            UCIRRXFL2_t  UCIRRXFL2; /*! IRDA Receive Filter Length Bit 2 */
   351            UCIRRXFL1_t  UCIRRXFL1; /*! IRDA Receive Filter Length Bit 1 */
   352            UCIRRXFL0_t  UCIRRXFL0; /*! IRDA Receive Filter Length Bit 0 */
   353            UCIRRXPL_t   UCIRRXPL;  /*! IrDA receive input UCAxRXD polarity
   354                                     *  0  IrDA transceiver delivers a high pulse when a light pulse is seen
   355                                     *  1  IrDA transceiver delivers a low pulse when a light pulse is seen */
   356            UCIRRXFE_t   UCIRRXFE;  /*! IrDA receive filter enabled
   357                                     *  0  Receive filter disabled
   358                                     *  1  Receive filter enabled */
   359        }
   360
   361        struct UCxABCTL_t {
   362            UCDELIM1_t   UCDELIM1;  /*! Break/synch delimiter length
   363                                     *  00  1 bit time
   364                                     *  01  2 bit times
   365                                     *  10  3 bit times
   366                                     *  11  4 bit times */
   367            UCDELIM0_t   UCDELIM0;  /*! Break/synch delimiter length
   368                                     *  00  1 bit time
   369                                     *  01  2 bit times
   370                                     *  10  3 bit times
   371                                     *  11  4 bit times */
   372            UCSTOE_t     UCSTOE;    /*! Synch field time out error
   373                                     *  0  No error
   374                                     *  1  Length of synch field exceeded measurable time */
   375            UCBTOE_t     UCBTOE;    /*! Break time out error
   376                                     *  0  No error
   377                                     *  1  Length of break field exceeded 22 bit times */
   378            UCABDEN_t    UCABDEN;   /*! Automatic baud rate detect enable
   379                                     *  0  Baud rate detection disabled. Length of break and synch field is not
   380                                     *     measured.
   381                                     *  1  Baud rate detection enabled. Length of break and synch field is
   382                                     *     measured and baud rate settings are changed accordingly. */
   383        }
   384    }


interface ti.catalog.msp430.peripherals.communication.IUSI

metaonly interface ti.catalog.msp430.peripherals.communication.IUSI
index URL

Universal Serial Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
metaonly interface IUSI { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
package ti.catalog.msp430.peripherals.communication;
metaonly interface IUSI inherits IPeripheral {
module-wide constants & types
    enum USI16B_t// 16-bit shift register enable {
         USI16B_OFF// 8-bit shift register mode. Low byte register USISRL is used,
         USI16B// 16-bit shift register mode. Both high and low byte registers USISRL and USISRH are used. USISR addresses all 16 bits simultaneously
    };
    enum USIAL_t// Arbitration lost {
         USIAL_OFF// No arbitration lost condition,
         USIAL// Arbitration lost
    };
    enum USICKPH_t// Clock phase select {
         USICKPH_OFF// Data is changed on the first SCLK edge and captured on the following edge,
         USICKPH// Data is captured on the first SCLK edge and changed on the following edge
    };
    enum USICKPL_t// Clock polarity select {
         USICKPL_OFF// Inactive state is low,
         USICKPL// Inactive state is high
    };
    enum USICNT0_t// USI bit count - Bit0 {
         USICNT0_OFF// USI bit count,
         USICNT0// USI bit count
    };
    enum USICNT1_t// USI bit count - Bit1 {
         USICNT1_OFF// USI bit count,
         USICNT1// USI bit count
    };
    enum USICNT2_t// USI bit count - Bit2 {
         USICNT2_OFF// USI bit count,
         USICNT2// USI bit count
    };
    enum USICNT3_t// USI bit count - Bit3 {
         USICNT3_OFF// USI bit count,
         USICNT3// USI bit count
    };
    enum USICNT4_t// USI bit count - Bit4 {
         USICNT4_OFF// USI bit count,
         USICNT4// USI bit count
    };
    enum USIDIV_t// Clock divider select {
         USIDIV_0// Divide by 1,
         USIDIV_1// Divide by 2,
         USIDIV_2// Divide by 4,
         USIDIV_3// Divide by 8,
         USIDIV_4// Divide by 16,
         USIDIV_5// Divide by 32,
         USIDIV_6// Divide by 64,
         USIDIV_7// Divide by 128
    };
    enum USIGE_t// Output latch control {
         USIGE_OFF// Output latch enable depends on shift clock,
         USIGE// Output latch always enabled and transparent
    };
    enum USII2C_t// I2C mode enable {
         USII2C_OFF// I2C mode disabled,
         USII2C// I2C mode enabled
    };
    enum USIIE_t// USI counter interrupt enable {
         USIIE_OFF// Interrupt disabled,
         USIIE// Interrupt enabled
    };
    enum USIIFGCC_t// USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be cleared automatically when USICNTx is written with a value > 0 {
         USIIFGCC_OFF// USIIFG automatically cleared on USICNTx update,
         USIIFGCC// USIIFG is not cleared automatically
    };
    enum USIIFG_t// USI counter interrupt flag. Set when the USICNTx = 0. Automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0 {
         USIIFG_OFF// No interrupt pending,
         USIIFG// Interrupt pending
    };
    enum USILSB_t// LSB first select. This bit controls the direction of the receive and transmit shift register {
         USILSB_OFF// MSB first,
         USILSB// LSB first
    };
    enum USIMST_t// Master select {
         USIMST_OFF// Slave mode,
         USIMST// Master mode
    };
    enum USIOE_t// Data output enable {
         USIOE_OFF// Output disabled,
         USIOE// Output enabled
    };
    enum USIPE5_t// USI SCLK port enable. Input in SPI slave mode, or I2C mode, output in SPI master mode {
         USIPE5_OFF// USI function disabled,
         USIPE5// USI function enabled
    };
    enum USIPE6_t// USI SDO/SCL port enable. Output in SPI mode, input or open drain output in I2C mode {
         USIPE6_OFF// USI function disabled,
         USIPE6// USI function enabled
    };
    enum USIPE7_t// USI SDI/SDA port enable. Input in SPI mode, input or open drain output in I2C mode {
         USIPE7_OFF// USI function disabled,
         USIPE7// USI function enabled
    };
    enum USISCLREL_t// SCL release. The SCL line is released from low to idle. USISCLREL is cleared if a START condition is detected {
         USISCLREL_OFF// SCL line is held low if USIIFG is set,
         USISCLREL// SCL line is released
    };
    enum USISSEL_t// Clock source select. Not used in slave mode {
         USISSEL_0// SCLK (Not used in SPI mode),
         USISSEL_1// ACLK,
         USISSEL_2// SMCLK,
         USISSEL_3// SMCLK,
         USISSEL_4// USISWCLK bit,
         USISSEL_5// TACCR0,
         USISSEL_6// TACCR1,
         USISSEL_7// TACCR2 (Reserved on MSP430F20xx devices)
    };
    enum USISTP_t// STOP condition received. USISTP is automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0 {
         USISTP_OFF// No STOP condition received,
         USISTP// STOP condition received
    };
    enum USISTTIE_t// START condition interrupt-enable {
         USISTTIE_OFF// Interrupt on START condition disabled,
         USISTTIE// Interrupt on START condition enabled
    };
    enum USISTTIFG_t// START condition interrupt flag {
         USISTTIFG_OFF// No START condition received. No interrupt pending,
         USISTTIFG// START condition received. Interrupt pending
    };
    enum USISWCLK_t// Software clock {
         USISWCLK_OFF// Input clock is low,
         USISWCLK// Input clock is high
    };
    enum USISWRST_t// USI software reset {
         USISWRST_OFF// USI released for operation,
         USISWRST// USI logic held in reset state
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct USICKCTL_t// {
         IUSI.USIDIV_t USIDIV// Clock divider select 000 Divide by 1 001 Divide by 2 010 Divide by 4 011 Divide by 8 100 Divide by 16 101 Divide by 32 110 Divide by 64 111 Divide by 128;
         IUSI.USISSEL_t USISSEL// Clock source select. Not used in slave mode. 000 SCLK (Not used in SPI mode) 001 ACLK 010 SMCLK 011 SMCLK 100 USISWCLK bit 101 TACCR0 110 TACCR1 111 TACCR2 (Reserved on MSP430F20xx devices);
         IUSI.USICKPL_t USICKPL// Clock polarity select 0 Inactive state is low 1 Inactive state is high;
         IUSI.USISWCLK_t USISWCLK// Software clock 0 Input clock is low 1 Input clock is high;
    };
    metaonly struct USICNT_t// {
         IUSI.USISCLREL_t USISCLREL// SCL release. The SCL line is released from low to idle. USISCLREL is cleared if a START condition is detected. 0 SCL line is held low if USIIFG is set 1 SCL line is released;
         IUSI.USI16B_t USI16B// 16-bit shift register enable 0 8-bit shift register mode. Low byte register USISRL is used. 1 16-bit shift register mode. Both high and low byte registers USISRL and USISRH are used. USISR addresses all 16 bits simultaneously;
         IUSI.USIIFGCC_t USIIFGCC// USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be cleared automatically when USICNTx is written with a value > 0. 0 USIIFG automatically cleared on USICNTx update 1 USIIFG is not cleared automatically;
         IUSI.USICNT4_t USICNT4// USI bit count bit 4 The USICNTx bits set the number of bits to be received or transmitted;
         IUSI.USICNT3_t USICNT3// USI bit count bit 3 The USICNTx bits set the number of bits to be received or transmitted;
         IUSI.USICNT2_t USICNT2// USI bit count bit 2 The USICNTx bits set the number of bits to be received or transmitted;
         IUSI.USICNT1_t USICNT1// USI bit count bit 1 The USICNTx bits set the number of bits to be received or transmitted;
         IUSI.USICNT0_t USICNT0// USI bit count bit 0 The USICNTx bits set the number of bits to be received or transmitted;
    };
    metaonly struct USICTL0_t// {
         IUSI.USIPE7_t USIPE7// USI SDI/SDA port enable. Input in SPI mode, input or open drain output in I2C mode. 0 USI function disabled 1 USI function enabled;
         IUSI.USIPE6_t USIPE6// USI SDO/SCL port enable. Output in SPI mode, input or open drain output in I2C mode. 0 USI function disabled 1 USI function enabled;
         IUSI.USIPE5_t USIPE5// USI SCLK port enable. Input in SPI slave mode, or I2C mode, output in SPI master mode. 0 USI function disabled 1 USI function enabled;
         IUSI.USILSB_t USILSB// LSB first select. This bit controls the direction of the receive and transmit shift register. 0 MSB first 1 LSB first;
         IUSI.USIMST_t USIMST// Master select 0 Slave mode 1 Master mode;
         IUSI.USIGE_t USIGE// Output latch control 0 Output latch enable depends on shift clock 1 Output latch always enabled and transparent;
         IUSI.USIOE_t USIOE// Data output enable 0 Output disabled 1 Output enabled;
         IUSI.USISWRST_t USISWRST// USI software reset 0 USI released for operation. 1 USI logic held in reset state;
    };
    metaonly struct USICTL1_t// {
         IUSI.USICKPH_t USICKPH// Clock phase select 0 Data is changed on the first SCLK edge and captured on the following edge. 1 Data is captured on the first SCLK edge and changed on the following edge;
         IUSI.USII2C_t USII2C// I2C mode enable 0 I2C mode disabled 1 I2C mode enabled;
         IUSI.USISTTIE_t USISTTIE// START condition interrupt-enable 0 Interrupt on START condition disabled 1 Interrupt on START condition enabled;
         IUSI.USIIE_t USIIE// USI counter interrupt enable 0 Interrupt disabled 1 Interrupt enabled;
         IUSI.USIAL_t USIAL// Arbitration lost 0 No arbitration lost condition 1 Arbitration lost;
         IUSI.USISTP_t USISTP// STOP condition received. USISTP is automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0. 0 No STOP condition received 1 STOP condition received;
         IUSI.USISTTIFG_t USISTTIFG// START condition interrupt flag 0 No START condition received. No interrupt pending. 1 START condition received. Interrupt pending;
         IUSI.USIIFG_t USIIFG// USI counter interrupt flag. Set when the USICNTx = 0. Automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0. 0 No interrupt pending 1 Interrupt pending;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    Bool getUSIIE// Gets USIIE register();
    Bool getUSISTTIE// Gets USISTTIE register();
    Bool setUSIIE// Sets USIIE register(Bool set);
    Bool setUSISTTIE// Sets USISTTIE register(Bool set);
}
enum IUSI.USI16B_t
index URL

16-bit shift register enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USI16B_t {
    USI16B_OFF,
    // 8-bit shift register mode. Low byte register USISRL is used
    USI16B
    // 16-bit shift register mode. Both high and low byte registers USISRL and USISRH are used. USISR addresses all 16 bits simultaneously
};
enum IUSI.USIAL_t
index URL

Arbitration lost

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIAL_t {
    USIAL_OFF,
    // No arbitration lost condition
    USIAL
    // Arbitration lost
};
enum IUSI.USICKPH_t
index URL

Clock phase select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USICKPH_t {
    USICKPH_OFF,
    // Data is changed on the first SCLK edge and captured on the following edge
    USICKPH
    // Data is captured on the first SCLK edge and changed on the following edge
};
enum IUSI.USICKPL_t
index URL

Clock polarity select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USICKPL_t {
    USICKPL_OFF,
    // Inactive state is low
    USICKPL
    // Inactive state is high
};
enum IUSI.USICNT0_t
index URL

USI bit count - Bit0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USICNT0_t {
    USICNT0_OFF,
    // USI bit count
    USICNT0
    // USI bit count
};
enum IUSI.USICNT1_t
index URL

USI bit count - Bit1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USICNT1_t {
    USICNT1_OFF,
    // USI bit count
    USICNT1
    // USI bit count
};
enum IUSI.USICNT2_t
index URL

USI bit count - Bit2

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USICNT2_t {
    USICNT2_OFF,
    // USI bit count
    USICNT2
    // USI bit count
};
enum IUSI.USICNT3_t
index URL

USI bit count - Bit3

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USICNT3_t {
    USICNT3_OFF,
    // USI bit count
    USICNT3
    // USI bit count
};
enum IUSI.USICNT4_t
index URL

USI bit count - Bit4

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USICNT4_t {
    USICNT4_OFF,
    // USI bit count
    USICNT4
    // USI bit count
};
enum IUSI.USIDIV_t
index URL

Clock divider select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIDIV_t {
    USIDIV_0,
    // Divide by 1
    USIDIV_1,
    // Divide by 2
    USIDIV_2,
    // Divide by 4
    USIDIV_3,
    // Divide by 8
    USIDIV_4,
    // Divide by 16
    USIDIV_5,
    // Divide by 32
    USIDIV_6,
    // Divide by 64
    USIDIV_7
    // Divide by 128
};
enum IUSI.USIGE_t
index URL

Output latch control

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIGE_t {
    USIGE_OFF,
    // Output latch enable depends on shift clock
    USIGE
    // Output latch always enabled and transparent
};
enum IUSI.USII2C_t
index URL

I2C mode enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USII2C_t {
    USII2C_OFF,
    // I2C mode disabled
    USII2C
    // I2C mode enabled
};
enum IUSI.USIIE_t
index URL

USI counter interrupt enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIIE_t {
    USIIE_OFF,
    // Interrupt disabled
    USIIE
    // Interrupt enabled
};
enum IUSI.USIIFGCC_t
index URL

USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be cleared automatically when USICNTx is written with a value > 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIIFGCC_t {
    USIIFGCC_OFF,
    // USIIFG automatically cleared on USICNTx update
    USIIFGCC
    // USIIFG is not cleared automatically
};
enum IUSI.USIIFG_t
index URL

USI counter interrupt flag. Set when the USICNTx = 0. Automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIIFG_t {
    USIIFG_OFF,
    // No interrupt pending
    USIIFG
    // Interrupt pending
};
enum IUSI.USILSB_t
index URL

LSB first select. This bit controls the direction of the receive and transmit shift register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USILSB_t {
    USILSB_OFF,
    // MSB first
    USILSB
    // LSB first
};
enum IUSI.USIMST_t
index URL

Master select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIMST_t {
    USIMST_OFF,
    // Slave mode
    USIMST
    // Master mode
};
enum IUSI.USIOE_t
index URL

Data output enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIOE_t {
    USIOE_OFF,
    // Output disabled
    USIOE
    // Output enabled
};
enum IUSI.USIPE5_t
index URL

USI SCLK port enable. Input in SPI slave mode, or I2C mode, output in SPI master mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIPE5_t {
    USIPE5_OFF,
    // USI function disabled
    USIPE5
    // USI function enabled
};
enum IUSI.USIPE6_t
index URL

USI SDO/SCL port enable. Output in SPI mode, input or open drain output in I2C mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIPE6_t {
    USIPE6_OFF,
    // USI function disabled
    USIPE6
    // USI function enabled
};
enum IUSI.USIPE7_t
index URL

USI SDI/SDA port enable. Input in SPI mode, input or open drain output in I2C mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USIPE7_t {
    USIPE7_OFF,
    // USI function disabled
    USIPE7
    // USI function enabled
};
enum IUSI.USISCLREL_t
index URL

SCL release. The SCL line is released from low to idle. USISCLREL is cleared if a START condition is detected

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USISCLREL_t {
    USISCLREL_OFF,
    // SCL line is held low if USIIFG is set
    USISCLREL
    // SCL line is released
};
enum IUSI.USISSEL_t
index URL

Clock source select. Not used in slave mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USISSEL_t {
    USISSEL_0,
    // SCLK (Not used in SPI mode)
    USISSEL_1,
    // ACLK
    USISSEL_2,
    // SMCLK
    USISSEL_3,
    // SMCLK
    USISSEL_4,
    // USISWCLK bit
    USISSEL_5,
    // TACCR0
    USISSEL_6,
    // TACCR1
    USISSEL_7
    // TACCR2 (Reserved on MSP430F20xx devices)
};
enum IUSI.USISTP_t
index URL

STOP condition received. USISTP is automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USISTP_t {
    USISTP_OFF,
    // No STOP condition received
    USISTP
    // STOP condition received
};
enum IUSI.USISTTIE_t
index URL

START condition interrupt-enable

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USISTTIE_t {
    USISTTIE_OFF,
    // Interrupt on START condition disabled
    USISTTIE
    // Interrupt on START condition enabled
};
enum IUSI.USISTTIFG_t
index URL

START condition interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USISTTIFG_t {
    USISTTIFG_OFF,
    // No START condition received. No interrupt pending
    USISTTIFG
    // START condition received. Interrupt pending
};
enum IUSI.USISWCLK_t
index URL

Software clock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USISWCLK_t {
    USISWCLK_OFF,
    // Input clock is low
    USISWCLK
    // Input clock is high
};
enum IUSI.USISWRST_t
index URL

USI software reset

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
enum USISWRST_t {
    USISWRST_OFF,
    // USI released for operation
    USISWRST
    // USI logic held in reset state
};
typedef IUSI.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IUSI.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
typedef String StringArray[];
struct IUSI.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IUSI.USICKCTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
metaonly struct USICKCTL_t {
     IUSI.USIDIV_t USIDIV;
    // Clock divider select 000 Divide by 1 001 Divide by 2 010 Divide by 4 011 Divide by 8 100 Divide by 16 101 Divide by 32 110 Divide by 64 111 Divide by 128
     IUSI.USISSEL_t USISSEL;
    // Clock source select. Not used in slave mode. 000 SCLK (Not used in SPI mode) 001 ACLK 010 SMCLK 011 SMCLK 100 USISWCLK bit 101 TACCR0 110 TACCR1 111 TACCR2 (Reserved on MSP430F20xx devices)
     IUSI.USICKPL_t USICKPL;
    // Clock polarity select 0 Inactive state is low 1 Inactive state is high
     IUSI.USISWCLK_t USISWCLK;
    // Software clock 0 Input clock is low 1 Input clock is high
};
struct IUSI.USICNT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
metaonly struct USICNT_t {
     IUSI.USISCLREL_t USISCLREL;
    // SCL release. The SCL line is released from low to idle. USISCLREL is cleared if a START condition is detected. 0 SCL line is held low if USIIFG is set 1 SCL line is released
     IUSI.USI16B_t USI16B;
    // 16-bit shift register enable 0 8-bit shift register mode. Low byte register USISRL is used. 1 16-bit shift register mode. Both high and low byte registers USISRL and USISRH are used. USISR addresses all 16 bits simultaneously
     IUSI.USIIFGCC_t USIIFGCC;
    // USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be cleared automatically when USICNTx is written with a value > 0. 0 USIIFG automatically cleared on USICNTx update 1 USIIFG is not cleared automatically
     IUSI.USICNT4_t USICNT4;
    // USI bit count bit 4 The USICNTx bits set the number of bits to be received or transmitted
     IUSI.USICNT3_t USICNT3;
    // USI bit count bit 3 The USICNTx bits set the number of bits to be received or transmitted
     IUSI.USICNT2_t USICNT2;
    // USI bit count bit 2 The USICNTx bits set the number of bits to be received or transmitted
     IUSI.USICNT1_t USICNT1;
    // USI bit count bit 1 The USICNTx bits set the number of bits to be received or transmitted
     IUSI.USICNT0_t USICNT0;
    // USI bit count bit 0 The USICNTx bits set the number of bits to be received or transmitted
};
struct IUSI.USICTL0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
metaonly struct USICTL0_t {
     IUSI.USIPE7_t USIPE7;
    // USI SDI/SDA port enable. Input in SPI mode, input or open drain output in I2C mode. 0 USI function disabled 1 USI function enabled
     IUSI.USIPE6_t USIPE6;
    // USI SDO/SCL port enable. Output in SPI mode, input or open drain output in I2C mode. 0 USI function disabled 1 USI function enabled
     IUSI.USIPE5_t USIPE5;
    // USI SCLK port enable. Input in SPI slave mode, or I2C mode, output in SPI master mode. 0 USI function disabled 1 USI function enabled
     IUSI.USILSB_t USILSB;
    // LSB first select. This bit controls the direction of the receive and transmit shift register. 0 MSB first 1 LSB first
     IUSI.USIMST_t USIMST;
    // Master select 0 Slave mode 1 Master mode
     IUSI.USIGE_t USIGE;
    // Output latch control 0 Output latch enable depends on shift clock 1 Output latch always enabled and transparent
     IUSI.USIOE_t USIOE;
    // Data output enable 0 Output disabled 1 Output enabled
     IUSI.USISWRST_t USISWRST;
    // USI software reset 0 USI released for operation. 1 USI logic held in reset state
};
struct IUSI.USICTL1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
metaonly struct USICTL1_t {
     IUSI.USICKPH_t USICKPH;
    // Clock phase select 0 Data is changed on the first SCLK edge and captured on the following edge. 1 Data is captured on the first SCLK edge and changed on the following edge
     IUSI.USII2C_t USII2C;
    // I2C mode enable 0 I2C mode disabled 1 I2C mode enabled
     IUSI.USISTTIE_t USISTTIE;
    // START condition interrupt-enable 0 Interrupt on START condition disabled 1 Interrupt on START condition enabled
     IUSI.USIIE_t USIIE;
    // USI counter interrupt enable 0 Interrupt disabled 1 Interrupt enabled
     IUSI.USIAL_t USIAL;
    // Arbitration lost 0 No arbitration lost condition 1 Arbitration lost
     IUSI.USISTP_t USISTP;
    // STOP condition received. USISTP is automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0. 0 No STOP condition received 1 STOP condition received
     IUSI.USISTTIFG_t USISTTIFG;
    // START condition interrupt flag 0 No START condition received. No interrupt pending. 1 START condition received. Interrupt pending
     IUSI.USIIFG_t USIIFG;
    // USI counter interrupt flag. Set when the USICNTx = 0. Automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0. 0 No interrupt pending 1 Interrupt pending
};
struct IUSI.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IUSI.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IUSI.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IUSI.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IUSI.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
config String owner;
IUSI.getUSIIE() // instance
index URL

Gets USIIE register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
Bool getUSIIE();
SEE
setUSIIE
IUSI.getUSISTTIE() // instance
index URL

Gets USISTTIE register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
Bool getUSISTTIE();
SEE
getUSISTTIE
IUSI.setUSIIE() // instance
index URL

Sets USIIE register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
Bool setUSIIE(Bool set);
SEE
setUSIIE
IUSI.setUSISTTIE() // instance
index URL

Sets USISTTIE register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSI.xdc
Bool setUSISTTIE(Bool set);
SEE
setUSISTTIE
generated on Thu, 08 Nov 2012 02:16:44 GMT


interface ti.catalog.msp430.peripherals.communication.IUSI

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IUSI ========
    14     *  Universal Serial Interface
    15     */
    16    metaonly interface IUSI inherits xdc.platform.IPeripheral {
    17        /*****************************************************************
    18         * REGISTER BIT DEFINITIONS                                      *
    19         *****************************************************************/
    20
    21        /*! USI SDI/SDA port enable.
    22         *Input in SPI mode, input or open drain output in I2C mode. */
    23        enum USIPE7_t {
    24            USIPE7_OFF = 0x00,      /*! USI function disabled */
    25            USIPE7 = 0x80           /*! USI function enabled */
    26        };
    27
    28        /*! USI SDO/SCL port enable.
    29         *Output in SPI mode, input or open drain output in I2C mode. */
    30        enum USIPE6_t {
    31            USIPE6_OFF = 0x00,      /*! USI function disabled */
    32            USIPE6 = 0x40           /*! USI function enabled */
    33        };
    34
    35        /*! USI SCLK port enable.
    36         *Input in SPI slave mode, or I2C mode, output in SPI master mode. */
    37        enum USIPE5_t {
    38            USIPE5_OFF = 0x00,      /*! USI function disabled */
    39            USIPE5 = 0x20           /*! USI function enabled */
    40        };
    41
    42        /*! LSB first select. This bit controls the direction of the receive and transmit shift register. */
    43        enum USILSB_t {
    44            USILSB_OFF = 0x00,      /*! MSB first */
    45            USILSB = 0x10           /*! LSB first */
    46        };
    47
    48        /*! Master select */
    49        enum USIMST_t {
    50            USIMST_OFF = 0x00,      /*! Slave mode */
    51            USIMST = 0x08           /*! Master mode */
    52        };
    53
    54        /*! Output latch control */
    55        enum USIGE_t {
    56            USIGE_OFF = 0x00,       /*! Output latch enable depends on shift clock */
    57            USIGE = 0x04            /*! Output latch always enabled and transparent */
    58        };
    59
    60        /*! Data output enable */
    61        enum USIOE_t {
    62            USIOE_OFF = 0x00,       /*! Output disabled */
    63            USIOE = 0x02            /*! Output enabled */
    64        };
    65
    66        /*! USI software reset */
    67        enum USISWRST_t {
    68            USISWRST_OFF = 0x00,    /*! USI released for operation. */
    69            USISWRST = 0x01         /*! USI logic held in reset state. */
    70        };
    71
    72        /*! Clock phase select */
    73        enum USICKPH_t {
    74            USICKPH_OFF = 0x00,     /*! Data is changed on the first SCLK edge and captured on the following edge. */
    75            USICKPH = 0x80          /*! Data is captured on the first SCLK edge and changed on the following edge. */
    76        };
    77
    78        /*! I2C mode enable */
    79        enum USII2C_t {
    80            USII2C_OFF = 0x00,      /*! I2C mode disabled */
    81            USII2C = 0x40           /*! I2C mode enabled */
    82        };
    83
    84        /*! START condition interrupt-enable */
    85        enum USISTTIE_t {
    86            USISTTIE_OFF = 0x00,    /*! Interrupt on START condition disabled */
    87            USISTTIE = 0x20         /*! Interrupt on START condition enabled */
    88        };
    89
    90        /*! USI counter interrupt enable */
    91        enum USIIE_t {
    92            USIIE_OFF = 0x00,       /*! Interrupt disabled */
    93            USIIE = 0x10            /*! Interrupt enabled */
    94        };
    95
    96        /*! Arbitration lost */
    97        enum USIAL_t {
    98            USIAL_OFF = 0x00,       /*! No arbitration lost condition */
    99            USIAL = 0x08            /*! Arbitration lost */
   100        };
   101
   102        /*! STOP condition received. USISTP is automatically cleared if USICNTx is
   103           *loaded with a value > 0 when USIIFGCC = 0. */
   104        enum USISTP_t {
   105            USISTP_OFF = 0x00,     /*! No STOP condition received */
   106            USISTP = 0x04          /*! STOP condition received */
   107        };
   108
   109        /*! START condition interrupt flag */
   110        enum USISTTIFG_t {
   111            USISTTIFG_OFF = 0x00,  /*! No START condition received. No interrupt pending. */
   112            USISTTIFG = 0x02       /*! START condition received. Interrupt pending. */
   113        };
   114
   115        /*! USI counter interrupt flag. Set when the USICNTx = 0. Automatically
   116           *cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0. */
   117        enum USIIFG_t {
   118            USIIFG_OFF = 0x00,     /*! No interrupt pending */
   119            USIIFG = 0x01          /*! Interrupt pending */
   120        };
   121
   122        /*! Clock divider select */
   123        enum USIDIV_t {
   124            USIDIV_0 = 0x00,       /*! Divide by 1 */
   125            USIDIV_1 = 0x20,       /*! Divide by 2 */
   126            USIDIV_2 = 0x40,       /*! Divide by 4 */
   127            USIDIV_3 = 0x60,       /*! Divide by 8 */
   128            USIDIV_4 = 0x80,       /*! Divide by 16 */
   129            USIDIV_5 = 0xA0,       /*! Divide by 32 */
   130            USIDIV_6 = 0xC0,       /*! Divide by 64 */
   131            USIDIV_7 = 0xE0        /*! Divide by 128 */
   132        };
   133
   134        /*! Clock source select. Not used in slave mode. */
   135        enum USISSEL_t {
   136            USISSEL_0 = 0x00,      /*! SCLK (Not used in SPI mode) */
   137            USISSEL_1 = 0x04,      /*! ACLK */
   138            USISSEL_2 = 0x08,      /*! SMCLK */
   139            USISSEL_3 = 0x0C,      /*! SMCLK */
   140            USISSEL_4 = 0x10,      /*! USISWCLK bit */
   141            USISSEL_5 = 0x14,      /*! TACCR0 */
   142            USISSEL_6 = 0x18,      /*! TACCR1 */
   143            USISSEL_7 = 0x1C       /*! TACCR2 (Reserved on MSP430F20xx devices) */
   144        };
   145
   146        /*! Clock polarity select */
   147        enum USICKPL_t {
   148            USICKPL_OFF = 0x00,     /*! Inactive state is low */
   149            USICKPL = 0x02          /*! Inactive state is high */
   150        };
   151
   152        /*! Software clock */
   153        enum USISWCLK_t {
   154            USISWCLK_OFF = 0x00,    /*! Input clock is low */
   155            USISWCLK = 0x01         /*! Input clock is high */
   156        };
   157
   158        /*! SCL release. The SCL line is released from low to idle. USISCLREL is
   159           *cleared if a START condition is detected. */
   160        enum USISCLREL_t {
   161            USISCLREL_OFF = 0x00,   /*! SCL line is held low if USIIFG is set */
   162            USISCLREL = 0x80        /*! SCL line is released */
   163        };
   164
   165        /*! 16-bit shift register enable */
   166        enum USI16B_t {
   167            USI16B_OFF = 0x00,      /*! 8-bit shift register mode. Low byte register USISRL is used. */
   168            USI16B = 0x40           /*! 16-bit shift register mode. Both high and low byte registers USISRL
   169                                       *and USISRH are used. USISR addresses all 16 bits simultaneously. */
   170        };
   171
   172        /*! USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be
   173           *cleared automatically when USICNTx is written with a value > 0. */
   174        enum USIIFGCC_t {
   175            USIIFGCC_OFF = 0x00,    /*! USIIFG automatically cleared on USICNTx update */
   176            USIIFGCC = 0x20         /*! USIIFG is not cleared automatically */
   177        };
   178
   179        /*! USI bit count - Bit4 */
   180        enum USICNT4_t {
   181            USICNT4_OFF = 0x00,     /*! USI bit count */
   182            USICNT4 = 0x10          /*! USI bit count */
   183        };
   184
   185        /*! USI bit count - Bit3 */
   186        enum USICNT3_t {
   187            USICNT3_OFF = 0x00,     /*! USI bit count */
   188            USICNT3 = 0x08          /*! USI bit count */
   189        };
   190
   191        /*! USI bit count - Bit2 */
   192        enum USICNT2_t {
   193            USICNT2_OFF = 0x00,     /*! USI bit count */
   194            USICNT2 = 0x04          /*! USI bit count */
   195        };
   196
   197        /*! USI bit count - Bit1 */
   198        enum USICNT1_t {
   199            USICNT1_OFF = 0x00,     /*! USI bit count */
   200            USICNT1 = 0x02          /*! USI bit count */
   201        };
   202
   203        /*! USI bit count - Bit0 */
   204        enum USICNT0_t {
   205            USICNT0_OFF = 0x00,     /*! USI bit count */
   206            USICNT0 = 0x01          /*! USI bit count */
   207        };
   208
   209        struct USICTL0_t {
   210            USIPE7_t    USIPE7;     /*! USI SDI/SDA port enable.
   211                                     *Input in SPI mode, input or open drain output in I2C mode.
   212                                     *  0  USI function disabled
   213                                     *  1  USI function enabled */
   214            USIPE6_t    USIPE6;     /*! USI SDO/SCL port enable.
   215                                     *Output in SPI mode, input or open drain output in I2C mode.
   216                                     *  0  USI function disabled
   217                                     *  1  USI function enabled */
   218            USIPE5_t    USIPE5;     /*! USI SCLK port enable.
   219                                     *Input in SPI slave mode, or I2C mode, output in SPI master mode.
   220                                     *  0  USI function disabled
   221                                     *  1  USI function enabled */
   222            USILSB_t    USILSB;     /*! LSB first select. This bit controls the direction of the receive and transmit shift register.
   223                                     *  0  MSB first
   224                                     *  1  LSB first */
   225            USIMST_t    USIMST;     /*! Master select
   226                                     *  0  Slave mode
   227                                     *  1  Master mode */
   228            USIGE_t     USIGE;      /*! Output latch control
   229                                     *  0  Output latch enable depends on shift clock
   230                                     *  1  Output latch always enabled and transparent */
   231            USIOE_t     USIOE;      /*! Data output enable
   232                                     *  0  Output disabled
   233                                     *  1  Output enabled */
   234            USISWRST_t  USISWRST;   /*! USI software reset
   235                                     *  0  USI released for operation.
   236                                     *  1  USI logic held in reset state. */
   237        }
   238
   239        struct USICTL1_t {
   240            USICKPH_t   USICKPH;    /*! Clock phase select
   241                                     *  0  Data is changed on the first SCLK edge and captured on the
   242                                     *     following edge.
   243                                     *  1  Data is captured on the first SCLK edge and changed on the
   244                                     *     following edge. */
   245            USII2C_t    USII2C;     /*! I2C mode enable
   246                                     *  0  I2C mode disabled
   247                                     *  1  I2C mode enabled*/
   248            USISTTIE_t  USISTTIE;   /*! START condition interrupt-enable
   249                                     *  0  Interrupt on START condition disabled
   250                                     *  1  Interrupt on START condition enabled */
   251            USIIE_t     USIIE;      /*! USI counter interrupt enable
   252                                     *  0  Interrupt disabled
   253                                     *  1  Interrupt enabled */
   254            USIAL_t     USIAL;      /*! Arbitration lost
   255                                     *  0  No arbitration lost condition
   256                                     *  1  Arbitration lost */
   257            USISTP_t    USISTP;     /*! STOP condition received. USISTP is automatically cleared if USICNTx is
   258                                     *loaded with a value > 0 when USIIFGCC = 0.
   259                                     *  0  No STOP condition received
   260                                     *  1  STOP condition received */
   261            USISTTIFG_t USISTTIFG;  /*! START condition interrupt flag
   262                                     *  0  No START condition received. No interrupt pending.
   263                                     *  1  START condition received. Interrupt pending. */
   264            USIIFG_t    USIIFG;     /*! USI counter interrupt flag. Set when the USICNTx = 0. Automatically
   265                                     *cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0.
   266                                     *  0  No interrupt pending
   267                                     *  1  Interrupt pending */
   268        }
   269
   270        struct USICKCTL_t {
   271            USIDIV_t    USIDIV;     /*! Clock divider select
   272                                     *  000  Divide by 1
   273                                     *  001  Divide by 2
   274                                     *  010  Divide by 4
   275                                     *  011  Divide by 8
   276                                     *  100  Divide by 16
   277                                     *  101  Divide by 32
   278                                     *  110  Divide by 64
   279                                     *  111  Divide by 128 */
   280            USISSEL_t   USISSEL;    /*! Clock source select. Not used in slave mode.
   281                                     *  000  SCLK (Not used in SPI mode)
   282                                     *  001  ACLK
   283                                     *  010  SMCLK
   284                                     *  011  SMCLK
   285                                     *  100  USISWCLK bit
   286                                     *  101  TACCR0
   287                                     *  110  TACCR1
   288                                     *  111  TACCR2 (Reserved on MSP430F20xx devices) */
   289            USICKPL_t   USICKPL;    /*! Clock polarity select
   290                                     *  0  Inactive state is low
   291                                     *  1  Inactive state is high */
   292            USISWCLK_t  USISWCLK;   /*! Software clock
   293                                     *  0  Input clock is low
   294                                     *  1  Input clock is high */
   295        }
   296
   297        struct USICNT_t {
   298            USISCLREL_t USISCLREL;  /*! SCL release. The SCL line is released from low to idle. USISCLREL is
   299                                     *  cleared if a START condition is detected.
   300                                     *  0  SCL line is held low if USIIFG is set
   301                                     *  1  SCL line is released */
   302            USI16B_t    USI16B;     /*! 16-bit shift register enable
   303                                     *  0  8-bit shift register mode. Low byte register USISRL is used.
   304                                     *  1  16-bit shift register mode. Both high and low byte registers USISRL
   305                                     *  and USISRH are used. USISR addresses all 16 bits simultaneously.*/
   306            USIIFGCC_t  USIIFGCC;   /*! USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be
   307                                     *cleared automatically when USICNTx is written with a value > 0.
   308                                     *  0  USIIFG automatically cleared on USICNTx update
   309                                     *  1  USIIFG is not cleared automatically */
   310            USICNT4_t   USICNT4;    /*! USI bit count bit 4
   311                                     *The USICNTx bits set the number of bits to be received or transmitted. */
   312            USICNT3_t   USICNT3;    /*! USI bit count bit 3
   313                                     *The USICNTx bits set the number of bits to be received or transmitted. */
   314            USICNT2_t   USICNT2;    /*! USI bit count bit 2
   315                                     *The USICNTx bits set the number of bits to be received or transmitted. */
   316            USICNT1_t   USICNT1;    /*! USI bit count bit 1
   317                                     *The USICNTx bits set the number of bits to be received or transmitted. */
   318            USICNT0_t   USICNT0;    /*! USI bit count bit 0
   319                                     *The USICNTx bits set the number of bits to be received or transmitted. */
   320        }
   321
   322        /*!
   323        *  ======== ForceSetDefaultRegister_t ========
   324        *  Force Set Default Register
   325        *
   326        *  Type to store if each register needs to be forced initialized
   327        *  even if the register is in default state.
   328        *
   329        *  @see #ForceSetDefaultRegister_t
   330        */
   331        struct ForceSetDefaultRegister_t {
   332            String     register;
   333            Bool       regForceSet;
   334        }
   335
   336        /*!
   337        *  ======== regIntVect_t ========
   338        *  Interrupt vector description
   339        *
   340        *  Type to describe a single interrupt vector pin and all its possible
   341        *  configurations.
   342        *
   343        *  @see #regIntVect_t
   344        */
   345        struct regIntVect_t {
   346            String                    registerName;
   347            String                    registerDescription;
   348            String                    isrToggleString;
   349            String                    priorityName;
   350            Bool                      interruptEnable;
   351            Bool                      interruptHandler;
   352            Int                       priority;
   353        }
   354
   355    instance:
   356
   357        /*!
   358        *  ======== setUSIIE ========
   359        *  Sets USIIE register
   360        *
   361        *  @see #setUSIIE
   362        */
   363        Bool setUSIIE(Bool set);
   364
   365        /*!
   366        *  ======== setUSIIE ========
   367        *  Gets USIIE register
   368        *
   369        *  @see #setUSIIE
   370        */
   371        Bool getUSIIE();
   372
   373        /*!
   374        *  ======== setUSISTTIE ========
   375        *  Sets USISTTIE register
   376        *
   377        *  @see #setUSISTTIE
   378        */
   379        Bool setUSISTTIE(Bool set);
   380
   381        /*!
   382        *  ======== getUSISTTIE ========
   383        *  Gets USISTTIE register
   384        *
   385        *  @see #getUSISTTIE
   386        */
   387        Bool getUSISTTIE();
   388    }


module ti.catalog.msp430.peripherals.communication.USCI_A0_SPI_2xx

metaonly module ti.catalog.msp430.peripherals.communication.USCI_A0_SPI_2xx
index URL

Universal Serial Communication Interface A0 SPI 2xx

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/USCI_A0_SPI_2xx.xdc
var USCI_A0_SPI_2xx = xdc.useModule('ti.catalog.msp430.peripherals.communication.USCI_A0_SPI_2xx');
module-wide constants & types
    values of type USCI_A0_SPI_2xx.UC7BIT_t// Character length. Selects 7-bit or 8-bit character length
        const USCI_A0_SPI_2xx.UC7BIT_OFF// 8-bit;
        const USCI_A0_SPI_2xx.UC7BIT// 7-bit;
    values of type USCI_A0_SPI_2xx.UCADDR_t// Address received in address-bit multiprocessor mode
        const USCI_A0_SPI_2xx.UCADDR_OFF// Received character is data;
        const USCI_A0_SPI_2xx.UCADDR// Received character is an address;
    values of type USCI_A0_SPI_2xx.UCBRKIE_t// Receive break character interrupt-enable
        const USCI_A0_SPI_2xx.UCBRKIE_OFF// Received break characters do not set UCAxRXIFG;
        const USCI_A0_SPI_2xx.UCBRKIE// Received break characters set UCAxRXIFG;
    values of type USCI_A0_SPI_2xx.UCBRK_t// Break detect flag
        const USCI_A0_SPI_2xx.UCBRK_OFF// No break condition;
        const USCI_A0_SPI_2xx.UCBRK// Break condition occurred;
    values of type USCI_A0_SPI_2xx.UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress
        const USCI_A0_SPI_2xx.UCBUSY_OFF// USCI inactive;
        const USCI_A0_SPI_2xx.UCBUSY// USCI transmitting or receiving;
    values of type USCI_A0_SPI_2xx.UCCKPH_t// Clock phase select
        const USCI_A0_SPI_2xx.UCCKPH_OFF// Data is changed on the first UCLK edge and captured on the following edge;
        const USCI_A0_SPI_2xx.UCCKPH// Data is captured on the first UCLK edge and changed on the following edge;
    values of type USCI_A0_SPI_2xx.UCCKPL_t// Clock polarity select
        const USCI_A0_SPI_2xx.UCCKPL_OFF// Inactive state is low;
        const USCI_A0_SPI_2xx.UCCKPL// Inactive state is high;
    values of type USCI_A0_SPI_2xx.UCDORM_t// Dormant. Puts USCI into sleep mode
        const USCI_A0_SPI_2xx.UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG;
        const USCI_A0_SPI_2xx.UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
    values of type USCI_A0_SPI_2xx.UCFE_t// Framing error flag
        const USCI_A0_SPI_2xx.UCFE_OFF// 0 No error;
        const USCI_A0_SPI_2xx.UCFE// Character received with low stop bit;
    values of type USCI_A0_SPI_2xx.UCIDLE_t// Idle line detected in idle-line multiprocessor mode
        const USCI_A0_SPI_2xx.UCIDLE_OFF// No idle line detected;
        const USCI_A0_SPI_2xx.UCIDLE// Idle line detected;
    values of type USCI_A0_SPI_2xx.UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode
        const USCI_A0_SPI_2xx.UCLISTEN_OFF// Disabled;
        const USCI_A0_SPI_2xx.UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver;
    values of type USCI_A0_SPI_2xx.UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1
        const USCI_A0_SPI_2xx.UCMODE_0// 3-Pin SPI;
        const USCI_A0_SPI_2xx.UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1;
        const USCI_A0_SPI_2xx.UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0;
        const USCI_A0_SPI_2xx.UCMODE_3// I2C Mode;
    values of type USCI_A0_SPI_2xx.UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register
        const USCI_A0_SPI_2xx.UCMSB_OFF// LSB first;
        const USCI_A0_SPI_2xx.UCMSB// MSB first;
    values of type USCI_A0_SPI_2xx.UCMST_t// Master mode select
        const USCI_A0_SPI_2xx.UCMST_OFF// Slave mode;
        const USCI_A0_SPI_2xx.UCMST// Master mode;
    values of type USCI_A0_SPI_2xx.UCOE_t// Overrun error flag
        const USCI_A0_SPI_2xx.UCOE_OFF// No error;
        const USCI_A0_SPI_2xx.UCOE// Overrun error occurred;
    values of type USCI_A0_SPI_2xx.UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0
        const USCI_A0_SPI_2xx.UCPE_OFF// No error;
        const USCI_A0_SPI_2xx.UCPE// Character received with parity error;
    values of type USCI_A0_SPI_2xx.UCRXEIE_t// Receive erroneous-character interrupt-enable
        const USCI_A0_SPI_2xx.UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set;
        const USCI_A0_SPI_2xx.UCRXEIE// Erroneous characters received will set UCAxRXIFG;
    values of type USCI_A0_SPI_2xx.UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read
        const USCI_A0_SPI_2xx.UCRXERR_OFF// No receive errors detected;
        const USCI_A0_SPI_2xx.UCRXERR// Receive error detected;
    values of type USCI_A0_SPI_2xx.UCSSEL_SPI_t// USCI clock source select. These bits select the BRCLK source clock
        const USCI_A0_SPI_2xx.UCSSEL_0// NA;
        const USCI_A0_SPI_2xx.UCSSEL_1// ACLK;
        const USCI_A0_SPI_2xx.UCSSEL_2// SMCLK;
    values of type USCI_A0_SPI_2xx.UCSWRST_t// Software reset enable
        const USCI_A0_SPI_2xx.UCSWRST_OFF// Disabled. USCI reset released for operation;
        const USCI_A0_SPI_2xx.UCSWRST// Enabled. USCI logic held in reset state;
    values of type USCI_A0_SPI_2xx.UCSYNC_t// Synchronous mode enable
        const USCI_A0_SPI_2xx.UCSYNC_OFF// Asynchronous mode;
        const USCI_A0_SPI_2xx.UCSYNC// Synchronous Mode;
    values of type USCI_A0_SPI_2xx.UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode
        const USCI_A0_SPI_2xx.UCTXADDR_OFF// Next frame transmitted is data;
        const USCI_A0_SPI_2xx.UCTXADDR// Next frame transmitted is an address;
    values of type USCI_A0_SPI_2xx.UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer
        const USCI_A0_SPI_2xx.UCTXBRK_OFF// Next frame transmitted is not a break;
        const USCI_A0_SPI_2xx.UCTXBRK// Next frame transmitted is a break or a break/synch;
    var obj = new USCI_A0_SPI_2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new USCI_A0_SPI_2xx.UCxCTL0_t// ;
        obj.UCCKPH// Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge = IUSCI_SPI.UCCKPH_t ...
        obj.UCCKPL// Clock polarity select 0 The inactive state is low 1 The inactive state is high = IUSCI_SPI.UCCKPL_t ...
        obj.UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first = IUSCI_SPI.UCMSB_t ...
        obj.UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data = IUSCI_SPI.UC7BIT_t ...
        obj.UCMST// Master mode select 0 Slave mode 1 Master mode = IUSCI_SPI.UCMST_t ...
        obj.UCMODE// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode = IUSCI_SPI.UCMODE_SYNC_t ...
        obj.UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode = IUSCI_SPI.UCSYNC_t ...
    var obj = new USCI_A0_SPI_2xx.UCxCTL1_t// ;
        obj.UCSSEL// USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK = IUSCI_SPI.UCSSEL_SPI_t ...
        obj.UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state = IUSCI_SPI.UCSWRST_t ...
    var obj = new USCI_A0_SPI_2xx.UCxSTAT_t// ;
        obj.UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver = IUSCI_SPI.UCLISTEN_t ...
        obj.UCFE// Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred = IUSCI_SPI.UCFE_t ...
        obj.UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred = IUSCI_SPI.UCOE_t ...
        obj.UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving = IUSCI_SPI.UCBUSY_t ...
    var obj = new USCI_A0_SPI_2xx.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     USCI_A0_SPI_2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     USCI_A0_SPI_2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new USCI_A0_SPI_2xx.Params// Instance config-params object;
        params.UCA0BR0// Bit Rate Control Register 0 = Bits8 0;
        params.UCA0BR1// Bit Rate Control Register 1 = Bits8 0;
        params.UCA0CTL0// Control Register 0 = IUSCI_A0_SPI.UCxCTL0_t {
            UCCKPH: IUSCI_SPI.UCCKPH_OFF,
            UCCKPL: IUSCI_SPI.UCCKPL_OFF,
            UCMSB: IUSCI.UCMSB_OFF,
            UC7BIT: IUSCI.UC7BIT_OFF,
            UCMST: IUSCI_SPI.UCMST_OFF,
            UCMODE: IUSCI.UCMODE_0,
            UCSYNC: IUSCI.UCSYNC
        };
        params.UCA0CTL1// Control Register 1 = IUSCI_A0_SPI.UCxCTL1_t {
            UCSSEL: IUSCI_SPI.UCSSEL_0,
            UCSWRST: IUSCI.UCSWRST
        };
        params.UCA0RXBUF// Receive Buffer Register = Bits8 0;
        params.UCA0STAT// Status Register = IUSCI_A0_SPI.UCxSTAT_t {
            UCLISTEN: IUSCI.UCLISTEN_OFF,
            UCFE: IUSCI.UCFE_OFF,
            UCOE: IUSCI.UCOE_OFF,
            UCBUSY: IUSCI.UCBUSY
        };
        params.UCA0TXBUF// Transmit Buffer Register = Bits8 0;
        params.UCLKHz// Stores the UCLK external clock frequency in float = Float 1000000;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = USCI_A0_SPI_2xx.ForceSetDefaultRegister_t[] [
            {
                register: "UCA0CTL0",
                regForceSet: false
            },
            {
                register: "UCA0CTL1",
                regForceSet: false
            },
            {
                register: "UCA0BR0",
                regForceSet: false
            },
            {
                register: "UCA0BR1",
                regForceSet: false
            },
            {
                register: "UCA0STAT",
                regForceSet: false
            },
            {
                register: "UCA0RXBUF",
                regForceSet: false
            },
            {
                register: "UCA0TXBUF",
                regForceSet: false
            }
        ];
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = USCI_A0_SPI_2xx.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getUCxxBR0// Returns UCxxBR0 register value based on which module() returns Bits8
     inst.getUCxxBR1// Returns UCxxBR1 register value based on which module() returns Bits8
     inst.getUCxxRXIE// Gets UCxxRXIE bit() returns Bool
     inst.getUCxxTXIE// Gets UCxxTXIE bit() returns Bool
     inst.setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value) returns Void
     inst.setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value) returns Void
     inst.setUCxxRXIE// Sets UCxxRXIE bit(Bool set) returns Bool
     inst.setUCxxTXIE// Sets UCxxTXIE bit(Bool set) returns Bool
enum USCI_A0_SPI_2xx.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UC7BIT_t
    const USCI_A0_SPI_2xx.UC7BIT_OFF;
    // 8-bit
    const USCI_A0_SPI_2xx.UC7BIT;
    // 7-bit
enum USCI_A0_SPI_2xx.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCADDR_t
    const USCI_A0_SPI_2xx.UCADDR_OFF;
    // Received character is data
    const USCI_A0_SPI_2xx.UCADDR;
    // Received character is an address
enum USCI_A0_SPI_2xx.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCBRKIE_t
    const USCI_A0_SPI_2xx.UCBRKIE_OFF;
    // Received break characters do not set UCAxRXIFG
    const USCI_A0_SPI_2xx.UCBRKIE;
    // Received break characters set UCAxRXIFG
enum USCI_A0_SPI_2xx.UCBRK_t
index URL

Break detect flag

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCBRK_t
    const USCI_A0_SPI_2xx.UCBRK_OFF;
    // No break condition
    const USCI_A0_SPI_2xx.UCBRK;
    // Break condition occurred
enum USCI_A0_SPI_2xx.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCBUSY_t
    const USCI_A0_SPI_2xx.UCBUSY_OFF;
    // USCI inactive
    const USCI_A0_SPI_2xx.UCBUSY;
    // USCI transmitting or receiving
enum USCI_A0_SPI_2xx.UCCKPH_t
index URL

Clock phase select

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCCKPH_t
    const USCI_A0_SPI_2xx.UCCKPH_OFF;
    // Data is changed on the first UCLK edge and captured on the following edge
    const USCI_A0_SPI_2xx.UCCKPH;
    // Data is captured on the first UCLK edge and changed on the following edge
enum USCI_A0_SPI_2xx.UCCKPL_t
index URL

Clock polarity select

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCCKPL_t
    const USCI_A0_SPI_2xx.UCCKPL_OFF;
    // Inactive state is low
    const USCI_A0_SPI_2xx.UCCKPL;
    // Inactive state is high
enum USCI_A0_SPI_2xx.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCDORM_t
    const USCI_A0_SPI_2xx.UCDORM_OFF;
    // Not dormant. All received characters will set UCAxRXIFG
    const USCI_A0_SPI_2xx.UCDORM;
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
enum USCI_A0_SPI_2xx.UCFE_t
index URL

Framing error flag

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCFE_t
    const USCI_A0_SPI_2xx.UCFE_OFF;
    // 0 No error
    const USCI_A0_SPI_2xx.UCFE;
    // Character received with low stop bit
enum USCI_A0_SPI_2xx.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCIDLE_t
    const USCI_A0_SPI_2xx.UCIDLE_OFF;
    // No idle line detected
    const USCI_A0_SPI_2xx.UCIDLE;
    // Idle line detected
enum USCI_A0_SPI_2xx.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCLISTEN_t
    const USCI_A0_SPI_2xx.UCLISTEN_OFF;
    // Disabled
    const USCI_A0_SPI_2xx.UCLISTEN;
    // Enabled. UCAxTXD is internally fed back to the receiver
enum USCI_A0_SPI_2xx.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCMODE_SYNC_t
    const USCI_A0_SPI_2xx.UCMODE_0;
    // 3-Pin SPI
    const USCI_A0_SPI_2xx.UCMODE_1;
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    const USCI_A0_SPI_2xx.UCMODE_2;
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    const USCI_A0_SPI_2xx.UCMODE_3;
    // I2C Mode
enum USCI_A0_SPI_2xx.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCMSB_t
    const USCI_A0_SPI_2xx.UCMSB_OFF;
    // LSB first
    const USCI_A0_SPI_2xx.UCMSB;
    // MSB first
enum USCI_A0_SPI_2xx.UCMST_t
index URL

Master mode select

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCMST_t
    const USCI_A0_SPI_2xx.UCMST_OFF;
    // Slave mode
    const USCI_A0_SPI_2xx.UCMST;
    // Master mode
enum USCI_A0_SPI_2xx.UCOE_t
index URL

Overrun error flag

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCOE_t
    const USCI_A0_SPI_2xx.UCOE_OFF;
    // No error
    const USCI_A0_SPI_2xx.UCOE;
    // Overrun error occurred
enum USCI_A0_SPI_2xx.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCPE_t
    const USCI_A0_SPI_2xx.UCPE_OFF;
    // No error
    const USCI_A0_SPI_2xx.UCPE;
    // Character received with parity error
enum USCI_A0_SPI_2xx.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCRXEIE_t
    const USCI_A0_SPI_2xx.UCRXEIE_OFF;
    // Erroneous characters rejected and UCAxRXIFG is not set
    const USCI_A0_SPI_2xx.UCRXEIE;
    // Erroneous characters received will set UCAxRXIFG
enum USCI_A0_SPI_2xx.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCRXERR_t
    const USCI_A0_SPI_2xx.UCRXERR_OFF;
    // No receive errors detected
    const USCI_A0_SPI_2xx.UCRXERR;
    // Receive error detected
enum USCI_A0_SPI_2xx.UCSSEL_SPI_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCSSEL_SPI_t
    const USCI_A0_SPI_2xx.UCSSEL_0;
    // NA
    const USCI_A0_SPI_2xx.UCSSEL_1;
    // ACLK
    const USCI_A0_SPI_2xx.UCSSEL_2;
    // SMCLK
enum USCI_A0_SPI_2xx.UCSWRST_t
index URL

Software reset enable

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCSWRST_t
    const USCI_A0_SPI_2xx.UCSWRST_OFF;
    // Disabled. USCI reset released for operation
    const USCI_A0_SPI_2xx.UCSWRST;
    // Enabled. USCI logic held in reset state
enum USCI_A0_SPI_2xx.UCSYNC_t
index URL

Synchronous mode enable

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCSYNC_t
    const USCI_A0_SPI_2xx.UCSYNC_OFF;
    // Asynchronous mode
    const USCI_A0_SPI_2xx.UCSYNC;
    // Synchronous Mode
enum USCI_A0_SPI_2xx.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCTXADDR_t
    const USCI_A0_SPI_2xx.UCTXADDR_OFF;
    // Next frame transmitted is data
    const USCI_A0_SPI_2xx.UCTXADDR;
    // Next frame transmitted is an address
enum USCI_A0_SPI_2xx.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCscript usage meta-domain
values of type USCI_A0_SPI_2xx.UCTXBRK_t
    const USCI_A0_SPI_2xx.UCTXBRK_OFF;
    // Next frame transmitted is not a break
    const USCI_A0_SPI_2xx.UCTXBRK;
    // Next frame transmitted is a break or a break/synch
struct USCI_A0_SPI_2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new USCI_A0_SPI_2xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct USCI_A0_SPI_2xx.UCxCTL0_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_SPI_2xx.UCxCTL0_t;
    obj.UCCKPH = IUSCI_SPI.UCCKPH_t ...
    // Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge
    obj.UCCKPL = IUSCI_SPI.UCCKPL_t ...
    // Clock polarity select 0 The inactive state is low 1 The inactive state is high
    obj.UCMSB = IUSCI_SPI.UCMSB_t ...
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
    obj.UC7BIT = IUSCI_SPI.UC7BIT_t ...
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
    obj.UCMST = IUSCI_SPI.UCMST_t ...
    // Master mode select 0 Slave mode 1 Master mode
    obj.UCMODE = IUSCI_SPI.UCMODE_SYNC_t ...
    // USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode
    obj.UCSYNC = IUSCI_SPI.UCSYNC_t ...
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
struct USCI_A0_SPI_2xx.UCxCTL1_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_SPI_2xx.UCxCTL1_t;
    obj.UCSSEL = IUSCI_SPI.UCSSEL_SPI_t ...
    // USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK
    obj.UCSWRST = IUSCI_SPI.UCSWRST_t ...
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
struct USCI_A0_SPI_2xx.UCxSTAT_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_SPI_2xx.UCxSTAT_t;
    obj.UCLISTEN = IUSCI_SPI.UCLISTEN_t ...
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
    obj.UCFE = IUSCI_SPI.UCFE_t ...
    // Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred
    obj.UCOE = IUSCI_SPI.UCOE_t ...
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
    obj.UCBUSY = IUSCI_SPI.UCBUSY_t ...
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
struct USCI_A0_SPI_2xx.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new USCI_A0_SPI_2xx.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
USCI_A0_SPI_2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
USCI_A0_SPI_2xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
USCI_A0_SPI_2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
USCI_A0_SPI_2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
// Instance config-params object
    params.UCA0BR0 = Bits8 0;
    // Bit Rate Control Register 0
    params.UCA0BR1 = Bits8 0;
    // Bit Rate Control Register 1
    params.UCA0CTL0 = IUSCI_A0_SPI.UCxCTL0_t {
    // Control Register 0
        UCCKPH: IUSCI_SPI.UCCKPH_OFF,
        UCCKPL: IUSCI_SPI.UCCKPL_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCMST: IUSCI_SPI.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    params.UCA0CTL1 = IUSCI_A0_SPI.UCxCTL1_t {
    // Control Register 1
        UCSSEL: IUSCI_SPI.UCSSEL_0,
        UCSWRST: IUSCI.UCSWRST
    };
    params.UCA0RXBUF = Bits8 0;
    // Receive Buffer Register
    params.UCA0STAT = IUSCI_A0_SPI.UCxSTAT_t {
    // Status Register
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    params.UCA0TXBUF = Bits8 0;
    // Transmit Buffer Register
    params.UCLKHz = Float 1000000;
    // Stores the UCLK external clock frequency in float
    params.forceSetDefaultRegister = USCI_A0_SPI_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "UCA0CTL0",
            regForceSet: false
        },
        {
            register: "UCA0CTL1",
            regForceSet: false
        },
        {
            register: "UCA0BR0",
            regForceSet: false
        },
        {
            register: "UCA0BR1",
            regForceSet: false
        },
        {
            register: "UCA0STAT",
            regForceSet: false
        },
        {
            register: "UCA0RXBUF",
            regForceSet: false
        },
        {
            register: "UCA0TXBUF",
            regForceSet: false
        }
    ];
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config USCI_A0_SPI_2xx.UCA0BR0 // instance
index URL

Bit Rate Control Register 0

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.UCA0BR0 = Bits8 0;
config USCI_A0_SPI_2xx.UCA0BR1 // instance
index URL

Bit Rate Control Register 1

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.UCA0BR1 = Bits8 0;
config USCI_A0_SPI_2xx.UCA0CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.UCA0CTL0 = IUSCI_A0_SPI.UCxCTL0_t {
    UCCKPH: IUSCI_SPI.UCCKPH_OFF,
    UCCKPL: IUSCI_SPI.UCCKPL_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCMST: IUSCI_SPI.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config USCI_A0_SPI_2xx.UCA0CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.UCA0CTL1 = IUSCI_A0_SPI.UCxCTL1_t {
    UCSSEL: IUSCI_SPI.UCSSEL_0,
    UCSWRST: IUSCI.UCSWRST
};
config USCI_A0_SPI_2xx.UCA0RXBUF // instance
index URL

Receive Buffer Register

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.UCA0RXBUF = Bits8 0;
config USCI_A0_SPI_2xx.UCA0STAT // instance
index URL

Status Register

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.UCA0STAT = IUSCI_A0_SPI.UCxSTAT_t {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config USCI_A0_SPI_2xx.UCA0TXBUF // instance
index URL

Transmit Buffer Register

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.UCA0TXBUF = Bits8 0;
config USCI_A0_SPI_2xx.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.UCLKHz = Float 1000000;
config USCI_A0_SPI_2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
const params.forceSetDefaultRegister = USCI_A0_SPI_2xx.ForceSetDefaultRegister_t[] [
    {
        register: "UCA0CTL0",
        regForceSet: false
    },
    {
        register: "UCA0CTL1",
        regForceSet: false
    },
    {
        register: "UCA0BR0",
        regForceSet: false
    },
    {
        register: "UCA0BR1",
        regForceSet: false
    },
    {
        register: "UCA0STAT",
        regForceSet: false
    },
    {
        register: "UCA0RXBUF",
        regForceSet: false
    },
    {
        register: "UCA0TXBUF",
        regForceSet: false
    }
];
config USCI_A0_SPI_2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config USCI_A0_SPI_2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new USCI_A0_SPI_2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = USCI_A0_SPI_2xx.create(IClock.Instance clock, params);
// Create an instance-object
USCI_A0_SPI_2xx.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR0() returns Bits8
SEE
getUCxxBR0
USCI_A0_SPI_2xx.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR1() returns Bits8
SEE
getUCxxBR1
USCI_A0_SPI_2xx.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCscript usage meta-domain
inst.getUCxxRXIE() returns Bool
SEE
getUCxxRXIE
USCI_A0_SPI_2xx.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCscript usage meta-domain
inst.getUCxxTXIE() returns Bool
SEE
getUCxxTXIE
USCI_A0_SPI_2xx.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR0(Bits8 value) returns Void
SEE
setUCxxBR0
USCI_A0_SPI_2xx.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR1(Bits8 value) returns Void
SEE
setUCxxBR1
USCI_A0_SPI_2xx.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCscript usage meta-domain
inst.setUCxxRXIE(Bool set) returns Bool
SEE
setUCxxRXIE
USCI_A0_SPI_2xx.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCscript usage meta-domain
inst.setUCxxTXIE(Bool set) returns Bool
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:44 GMT


module ti.catalog.msp430.peripherals.communication.USCI_A0_SPI_2xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Universal Serial Communication Interface A0 SPI 2xx
    16     */
    17    metaonly module USCI_A0_SPI_2xx inherits IUSCI_A0_SPI {
    18        /*
    19         *  ======== create ========
    20         */
    21        create(IClock.Instance clock);
    22
    23
    24
    25    instance:
    26        /*! @_nodoc */
    27        config IClock.Instance clock;
    28
    29        /*! Determine if each Register needs to be forced set or not */
    30        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    31        [
    32            { register : "UCA0CTL0"   , regForceSet : false },
    33            { register : "UCA0CTL1"   , regForceSet : false },
    34            { register : "UCA0BR0"    , regForceSet : false },
    35            { register : "UCA0BR1"    , regForceSet : false },
    36            { register : "UCA0STAT"   , regForceSet : false },
    37            { register : "UCA0RXBUF"  , regForceSet : false },
    38            { register : "UCA0TXBUF"  , regForceSet : false }
    39        ];
    40    }


module ti.catalog.msp430.peripherals.communication.USCI_A0_UART_2xx

metaonly module ti.catalog.msp430.peripherals.communication.USCI_A0_UART_2xx
index URL

Universal Serial Communication Interface A0 UART 2xx

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/USCI_A0_UART_2xx.xdc
var USCI_A0_UART_2xx = xdc.useModule('ti.catalog.msp430.peripherals.communication.USCI_A0_UART_2xx');
module-wide constants & types
    values of type USCI_A0_UART_2xx.UC7BIT_t// Character length. Selects 7-bit or 8-bit character length
        const USCI_A0_UART_2xx.UC7BIT_OFF// 8-bit;
        const USCI_A0_UART_2xx.UC7BIT// 7-bit;
    values of type USCI_A0_UART_2xx.UCABDEN_t// Automatic baud rate detect enable
        const USCI_A0_UART_2xx.UCABDEN_OFF// Baud rate detection disabled. Length of break and synch field is not measured;
        const USCI_A0_UART_2xx.UCABDEN// Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly;
    values of type USCI_A0_UART_2xx.UCADDR_t// Address received in address-bit multiprocessor mode
        const USCI_A0_UART_2xx.UCADDR_OFF// Received character is data;
        const USCI_A0_UART_2xx.UCADDR// Received character is an address;
    values of type USCI_A0_UART_2xx.UCBRF_t// First modulation stage select
        const USCI_A0_UART_2xx.UCBRF_0// First stage 0;
        const USCI_A0_UART_2xx.UCBRF_1// First stage 1;
        const USCI_A0_UART_2xx.UCBRF_2// First stage 2;
        const USCI_A0_UART_2xx.UCBRF_3// First stage 3;
        const USCI_A0_UART_2xx.UCBRF_4// First stage 4;
        const USCI_A0_UART_2xx.UCBRF_5// First stage 5;
        const USCI_A0_UART_2xx.UCBRF_6// First stage 6;
        const USCI_A0_UART_2xx.UCBRF_7// First stage 7;
        const USCI_A0_UART_2xx.UCBRF_8// First stage 8;
        const USCI_A0_UART_2xx.UCBRF_9// First stage 9;
        const USCI_A0_UART_2xx.UCBRF_10// First stage 10;
        const USCI_A0_UART_2xx.UCBRF_11// First stage 11;
        const USCI_A0_UART_2xx.UCBRF_12// First stage 12;
        const USCI_A0_UART_2xx.UCBRF_13// First stage 13;
        const USCI_A0_UART_2xx.UCBRF_14// First stage 14;
        const USCI_A0_UART_2xx.UCBRF_15// First stage 15;
    values of type USCI_A0_UART_2xx.UCBRKIE_t// Receive break character interrupt-enable
        const USCI_A0_UART_2xx.UCBRKIE_OFF// Received break characters do not set UCAxRXIFG;
        const USCI_A0_UART_2xx.UCBRKIE// Received break characters set UCAxRXIFG;
    values of type USCI_A0_UART_2xx.UCBRK_t// Break detect flag
        const USCI_A0_UART_2xx.UCBRK_OFF// No break condition;
        const USCI_A0_UART_2xx.UCBRK// Break condition occurred;
    values of type USCI_A0_UART_2xx.UCBRS_t// Second modulation stage select
        const USCI_A0_UART_2xx.UCBRS_0// Second stage 0;
        const USCI_A0_UART_2xx.UCBRS_1// Second stage 1;
        const USCI_A0_UART_2xx.UCBRS_2// Second stage 2;
        const USCI_A0_UART_2xx.UCBRS_3// Second stage 3;
        const USCI_A0_UART_2xx.UCBRS_4// Second stage 4;
        const USCI_A0_UART_2xx.UCBRS_5// Second stage 5;
        const USCI_A0_UART_2xx.UCBRS_6// Second stage 6;
        const USCI_A0_UART_2xx.UCBRS_7// Second stage 7;
    values of type USCI_A0_UART_2xx.UCBTOE_t// Break time out error
        const USCI_A0_UART_2xx.UCBTOE_OFF// No error;
        const USCI_A0_UART_2xx.UCBTOE// Length of break field exceeded 22 bit times;
    values of type USCI_A0_UART_2xx.UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress
        const USCI_A0_UART_2xx.UCBUSY_OFF// USCI inactive;
        const USCI_A0_UART_2xx.UCBUSY// USCI transmitting or receiving;
    values of type USCI_A0_UART_2xx.UCDELIM0_t// Break/synch delimiter length bit 0
        const USCI_A0_UART_2xx.UCDELIM0_OFF// Break Sync Delimiter bit 0 Off;
        const USCI_A0_UART_2xx.UCDELIM0// Break Sync Delimiter bit 0 On;
    values of type USCI_A0_UART_2xx.UCDELIM1_t// Break/synch delimiter length bit 1
        const USCI_A0_UART_2xx.UCDELIM1_OFF// Break Sync Delimiter bit 1 Off;
        const USCI_A0_UART_2xx.UCDELIM1// Break Sync Delimiter bit 1 On;
    values of type USCI_A0_UART_2xx.UCDORM_t// Dormant. Puts USCI into sleep mode
        const USCI_A0_UART_2xx.UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG;
        const USCI_A0_UART_2xx.UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
    values of type USCI_A0_UART_2xx.UCFE_t// Framing error flag
        const USCI_A0_UART_2xx.UCFE_OFF// 0 No error;
        const USCI_A0_UART_2xx.UCFE// Character received with low stop bit;
    values of type USCI_A0_UART_2xx.UCIDLE_t// Idle line detected in idle-line multiprocessor mode
        const USCI_A0_UART_2xx.UCIDLE_OFF// No idle line detected;
        const USCI_A0_UART_2xx.UCIDLE// Idle line detected;
    values of type USCI_A0_UART_2xx.UCIREN_t// IrDA encoder/decoder enable
        const USCI_A0_UART_2xx.UCIREN_OFF// IrDA encoder/decoder disabled;
        const USCI_A0_UART_2xx.UCIREN// IrDA encoder/decoder enabled;
    values of type USCI_A0_UART_2xx.UCIRRXFE_t// IrDA receive filter enabled
        const USCI_A0_UART_2xx.UCIRRXFE_OFF// Receive filter disabled;
        const USCI_A0_UART_2xx.UCIRRXFE// Receive filter enabled;
    values of type USCI_A0_UART_2xx.UCIRRXFL0_t// IRDA Receive Filter Length Bit 0
        const USCI_A0_UART_2xx.UCIRRXFL0_OFF// Bit 0 OFF;
        const USCI_A0_UART_2xx.UCIRRXFL0// Bit 0 ON;
    values of type USCI_A0_UART_2xx.UCIRRXFL1_t// IRDA Receive Filter Length Bit 1
        const USCI_A0_UART_2xx.UCIRRXFL1_OFF// Bit 1 OFF;
        const USCI_A0_UART_2xx.UCIRRXFL1// Bit 1 ON;
    values of type USCI_A0_UART_2xx.UCIRRXFL2_t// IRDA Receive Filter Length Bit 2
        const USCI_A0_UART_2xx.UCIRRXFL2_OFF// Bit 2 OFF;
        const USCI_A0_UART_2xx.UCIRRXFL2// Bit 2 ON;
    values of type USCI_A0_UART_2xx.UCIRRXFL3_t// IRDA Receive Filter Length Bit 3
        const USCI_A0_UART_2xx.UCIRRXFL3_OFF// Bit 3 OFF;
        const USCI_A0_UART_2xx.UCIRRXFL3// Bit 3 ON;
    values of type USCI_A0_UART_2xx.UCIRRXFL4_t// IRDA Receive Filter Length Bit 4
        const USCI_A0_UART_2xx.UCIRRXFL4_OFF// Bit 4 OFF;
        const USCI_A0_UART_2xx.UCIRRXFL4// Bit 4 ON;
    values of type USCI_A0_UART_2xx.UCIRRXFL5_t// IRDA Receive Filter Length Bit 5
        const USCI_A0_UART_2xx.UCIRRXFL5_OFF// Bit 5 OFF;
        const USCI_A0_UART_2xx.UCIRRXFL5// Bit 5 ON;
    values of type USCI_A0_UART_2xx.UCIRRXPL_t// IrDA receive input UCAxRXD polarity
        const USCI_A0_UART_2xx.UCIRRXPL_OFF// IrDA transceiver delivers a high pulse when a light pulse is seen;
        const USCI_A0_UART_2xx.UCIRRXPL// IrDA transceiver delivers a low pulse when a light pulse is seen;
    values of type USCI_A0_UART_2xx.UCIRTXCLK_t// IrDA transmit pulse clock select
        const USCI_A0_UART_2xx.UCIRTXCLK_OFF// BRCLK;
        const USCI_A0_UART_2xx.UCIRTXCLK// BITCLK16 when UCOS16 = 1. Otherwise, BRCLK;
    values of type USCI_A0_UART_2xx.UCIRTXPL0_t// IRDA Transmit Pulse Length Bit 0
        const USCI_A0_UART_2xx.UCIRTXPL0_OFF// Bit 0 OFF;
        const USCI_A0_UART_2xx.UCIRTXPL0// Bit 0 ON;
    values of type USCI_A0_UART_2xx.UCIRTXPL1_t// IRDA Transmit Pulse Length Bit 1
        const USCI_A0_UART_2xx.UCIRTXPL1_OFF// Bit 1 OFF;
        const USCI_A0_UART_2xx.UCIRTXPL1// Bit 1 ON;
    values of type USCI_A0_UART_2xx.UCIRTXPL2_t// IRDA Transmit Pulse Length Bit 2
        const USCI_A0_UART_2xx.UCIRTXPL2_OFF// Bit 2 OFF;
        const USCI_A0_UART_2xx.UCIRTXPL2// Bit 2 ON;
    values of type USCI_A0_UART_2xx.UCIRTXPL3_t// IRDA Transmit Pulse Length Bit 3
        const USCI_A0_UART_2xx.UCIRTXPL3_OFF// Bit 3 OFF;
        const USCI_A0_UART_2xx.UCIRTXPL3// Bit 3 ON;
    values of type USCI_A0_UART_2xx.UCIRTXPL4_t// IRDA Transmit Pulse Length Bit 4
        const USCI_A0_UART_2xx.UCIRTXPL4_OFF// Bit 4 OFF;
        const USCI_A0_UART_2xx.UCIRTXPL4// Bit 4 ON;
    values of type USCI_A0_UART_2xx.UCIRTXPL5_t// IRDA Transmit Pulse Length Bit 5
        const USCI_A0_UART_2xx.UCIRTXPL5_OFF// Bit 5 OFF;
        const USCI_A0_UART_2xx.UCIRTXPL5// Bit 5 ON;
    values of type USCI_A0_UART_2xx.UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode
        const USCI_A0_UART_2xx.UCLISTEN_OFF// Disabled;
        const USCI_A0_UART_2xx.UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver;
    values of type USCI_A0_UART_2xx.UCMODE_ASYNC_t// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0
        const USCI_A0_UART_2xx.UCMODE_0// UART Mode;
        const USCI_A0_UART_2xx.UCMODE_1// Idle-Line Multiprocessor Mode;
        const USCI_A0_UART_2xx.UCMODE_2// Address-Bit Multiprocessor Mode;
        const USCI_A0_UART_2xx.UCMODE_3// UART Mode with automatic baud rate detection;
    values of type USCI_A0_UART_2xx.UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1
        const USCI_A0_UART_2xx.UCMODE_0// 3-Pin SPI;
        const USCI_A0_UART_2xx.UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1;
        const USCI_A0_UART_2xx.UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0;
        const USCI_A0_UART_2xx.UCMODE_3// I2C Mode;
    values of type USCI_A0_UART_2xx.UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register
        const USCI_A0_UART_2xx.UCMSB_OFF// LSB first;
        const USCI_A0_UART_2xx.UCMSB// MSB first;
    values of type USCI_A0_UART_2xx.UCOE_t// Overrun error flag
        const USCI_A0_UART_2xx.UCOE_OFF// No error;
        const USCI_A0_UART_2xx.UCOE// Overrun error occurred;
    values of type USCI_A0_UART_2xx.UCOS16_t// Oversampling mode enabled
        const USCI_A0_UART_2xx.UCOS16_OFF// Disabled;
        const USCI_A0_UART_2xx.UCOS16// Enabled;
    values of type USCI_A0_UART_2xx.UCPAR_t// Parity select. UCPAR is not used when parity is disabled
        const USCI_A0_UART_2xx.UCPAR_OFF// Odd parity;
        const USCI_A0_UART_2xx.UCPAR// Even parity;
    values of type USCI_A0_UART_2xx.UCPEN_t// Parity enable
        const USCI_A0_UART_2xx.UCPEN_OFF// Parity Disabled;
        const USCI_A0_UART_2xx.UCPEN// Parity Enabled;
    values of type USCI_A0_UART_2xx.UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0
        const USCI_A0_UART_2xx.UCPE_OFF// No error;
        const USCI_A0_UART_2xx.UCPE// Character received with parity error;
    values of type USCI_A0_UART_2xx.UCRXEIE_t// Receive erroneous-character interrupt-enable
        const USCI_A0_UART_2xx.UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set;
        const USCI_A0_UART_2xx.UCRXEIE// Erroneous characters received will set UCAxRXIFG;
    values of type USCI_A0_UART_2xx.UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read
        const USCI_A0_UART_2xx.UCRXERR_OFF// No receive errors detected;
        const USCI_A0_UART_2xx.UCRXERR// Receive error detected;
    values of type USCI_A0_UART_2xx.UCSPB_t// Stop bit select. Number of stop bits
        const USCI_A0_UART_2xx.UCSPB_OFF// One stop bit;
        const USCI_A0_UART_2xx.UCSPB// Two stop bits;
    values of type USCI_A0_UART_2xx.UCSSEL_UART_t// USCI clock source select. These bits select the BRCLK source clock
        const USCI_A0_UART_2xx.UCSSEL_0// UCLK;
        const USCI_A0_UART_2xx.UCSSEL_1// ACLK;
        const USCI_A0_UART_2xx.UCSSEL_2// SMCLK;
    values of type USCI_A0_UART_2xx.UCSTOE_t// Synch field time out error
        const USCI_A0_UART_2xx.UCSTOE_OFF// No error;
        const USCI_A0_UART_2xx.UCSTOE// Length of synch field exceeded measurable time;
    values of type USCI_A0_UART_2xx.UCSWRST_t// Software reset enable
        const USCI_A0_UART_2xx.UCSWRST_OFF// Disabled. USCI reset released for operation;
        const USCI_A0_UART_2xx.UCSWRST// Enabled. USCI logic held in reset state;
    values of type USCI_A0_UART_2xx.UCSYNC_t// Synchronous mode enable
        const USCI_A0_UART_2xx.UCSYNC_OFF// Asynchronous mode;
        const USCI_A0_UART_2xx.UCSYNC// Synchronous Mode;
    values of type USCI_A0_UART_2xx.UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode
        const USCI_A0_UART_2xx.UCTXADDR_OFF// Next frame transmitted is data;
        const USCI_A0_UART_2xx.UCTXADDR// Next frame transmitted is an address;
    values of type USCI_A0_UART_2xx.UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer
        const USCI_A0_UART_2xx.UCTXBRK_OFF// Next frame transmitted is not a break;
        const USCI_A0_UART_2xx.UCTXBRK// Next frame transmitted is a break or a break/synch;
    var obj = new USCI_A0_UART_2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new USCI_A0_UART_2xx.UCxABCTL_t// ;
        obj.UCDELIM1// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times = IUSCI_UART.UCDELIM1_t ...
        obj.UCDELIM0// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times = IUSCI_UART.UCDELIM0_t ...
        obj.UCSTOE// Synch field time out error 0 No error 1 Length of synch field exceeded measurable time = IUSCI_UART.UCSTOE_t ...
        obj.UCBTOE// Break time out error 0 No error 1 Length of break field exceeded 22 bit times = IUSCI_UART.UCBTOE_t ...
        obj.UCABDEN// Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly = IUSCI_UART.UCABDEN_t ...
    var obj = new USCI_A0_UART_2xx.UCxCTL0_t// ;
        obj.UCPEN// Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation = IUSCI_UART.UCPEN_t ...
        obj.UCPAR// Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity = IUSCI_UART.UCPAR_t ...
        obj.UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first = IUSCI_UART.UCMSB_t ...
        obj.UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data = IUSCI_UART.UC7BIT_t ...
        obj.UCSPB// Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits = IUSCI_UART.UCSPB_t ...
        obj.UCMODE// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection = IUSCI_UART.UCMODE_ASYNC_t ...
        obj.UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode = IUSCI_UART.UCSYNC_t ...
    var obj = new USCI_A0_UART_2xx.UCxCTL1_t// ;
        obj.UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK = IUSCI_UART.UCSSEL_UART_t ...
        obj.UCRXEIE// Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG = IUSCI_UART.UCRXEIE_t ...
        obj.UCBRKIE// Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG = IUSCI_UART.UCBRKIE_t ...
        obj.UCDORM// Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG = IUSCI_UART.UCDORM_t ...
        obj.UCTXADDR// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address = IUSCI_UART.UCTXADDR_t ...
        obj.UCTXBRK// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch = IUSCI_UART.UCTXBRK_t ...
        obj.UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state = IUSCI_UART.UCSWRST_t ...
    var obj = new USCI_A0_UART_2xx.UCxIRRCTL_t// ;
        obj.UCIRRXFL5// IRDA Receive Filter Length Bit 5 = IUSCI_UART.UCIRRXFL5_t ...
        obj.UCIRRXFL4// IRDA Receive Filter Length Bit 4 = IUSCI_UART.UCIRRXFL4_t ...
        obj.UCIRRXFL3// IRDA Receive Filter Length Bit 3 = IUSCI_UART.UCIRRXFL3_t ...
        obj.UCIRRXFL2// IRDA Receive Filter Length Bit 2 = IUSCI_UART.UCIRRXFL2_t ...
        obj.UCIRRXFL1// IRDA Receive Filter Length Bit 1 = IUSCI_UART.UCIRRXFL1_t ...
        obj.UCIRRXFL0// IRDA Receive Filter Length Bit 0 = IUSCI_UART.UCIRRXFL0_t ...
        obj.UCIRRXPL// IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen = IUSCI_UART.UCIRRXPL_t ...
        obj.UCIRRXFE// IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled = IUSCI_UART.UCIRRXFE_t ...
    var obj = new USCI_A0_UART_2xx.UCxIRTCTL_t// ;
        obj.UCIRTXPL5// IRDA Transmit Pulse Length Bit 5 = IUSCI_UART.UCIRTXPL5_t ...
        obj.UCIRTXPL4// IRDA Transmit Pulse Length Bit 4 = IUSCI_UART.UCIRTXPL4_t ...
        obj.UCIRTXPL3// IRDA Transmit Pulse Length Bit 3 = IUSCI_UART.UCIRTXPL3_t ...
        obj.UCIRTXPL2// IRDA Transmit Pulse Length Bit 2 = IUSCI_UART.UCIRTXPL2_t ...
        obj.UCIRTXPL1// IRDA Transmit Pulse Length Bit 1 = IUSCI_UART.UCIRTXPL1_t ...
        obj.UCIRTXPL0// IRDA Transmit Pulse Length Bit 0 = IUSCI_UART.UCIRTXPL0_t ...
        obj.UCIRTXCLK// IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK = IUSCI_UART.UCIRTXCLK_t ...
        obj.UCIREN// IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled = IUSCI_UART.UCIREN_t ...
    var obj = new USCI_A0_UART_2xx.UCxMCTL_t// ;
        obj.UCBRF// First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0 = IUSCI_UART.UCBRF_t ...
        obj.UCBRS// Second modulation stage select. These bits determine the modulation pattern for BITCLK = IUSCI_UART.UCBRS_t ...
        obj.UCOS16// Oversampling mode enabled 0 Disabled 1 Enabled = IUSCI_UART.UCOS16_t ...
    var obj = new USCI_A0_UART_2xx.UCxSTAT_t// ;
        obj.UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver = IUSCI_UART.UCLISTEN_t ...
        obj.UCFE// Framing error flag 0 No error 1 Character received with low stop bit = IUSCI_UART.UCFE_t ...
        obj.UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred = IUSCI_UART.UCOE_t ...
        obj.UCPE// Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error = IUSCI_UART.UCPE_t ...
        obj.UCBRK// Break detect flag 0 No break condition 1 Break condition occurred = IUSCI_UART.UCBRK_t ...
        obj.UCRXERR// Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected = IUSCI_UART.UCRXERR_t ...
        obj.UCADDR// Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address = IUSCI_UART.UCADDR_t ...
        obj.UCIDLE// Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected = IUSCI_UART.UCIDLE_t ...
        obj.UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving = IUSCI_UART.UCBUSY_t ...
    var obj = new USCI_A0_UART_2xx.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     USCI_A0_UART_2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     USCI_A0_UART_2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new USCI_A0_UART_2xx.Params// Instance config-params object;
        params.UCA0ABCTL// Auto Baud Rate Control Register = IUSCI_A0_UART.UCxABCTL_t {
            UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
            UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
            UCSTOE: IUSCI_UART.UCSTOE_OFF,
            UCBTOE: IUSCI_UART.UCBTOE_OFF,
            UCABDEN: IUSCI_UART.UCABDEN_OFF
        };
        params.UCA0BR0// Baud rate control register 0 = Bits8 0;
        params.UCA0BR1// Baud rate control register 1 = Bits8 0;
        params.UCA0CTL0// Control Register 0 = IUSCI_A0_UART.UCxCTL0_t {
            UCPEN: IUSCI_UART.UCPEN_OFF,
            UCPAR: IUSCI_UART.UCPAR_OFF,
            UCMSB: IUSCI.UCMSB_OFF,
            UC7BIT: IUSCI.UC7BIT_OFF,
            UCSPB: IUSCI_UART.UCSPB_OFF,
            UCMODE: IUSCI_UART.UCMODE_0,
            UCSYNC: IUSCI.UCSYNC_OFF
        };
        params.UCA0CTL1// Control Register 1 = IUSCI_A0_UART.UCxCTL1_t {
            UCSSEL: IUSCI_UART.UCSSEL_0,
            UCRXEIE: IUSCI.UCRXEIE_OFF,
            UCBRKIE: IUSCI.UCBRKIE_OFF,
            UCDORM: IUSCI.UCDORM_OFF,
            UCTXADDR: IUSCI.UCTXADDR_OFF,
            UCTXBRK: IUSCI.UCTXBRK_OFF,
            UCSWRST: IUSCI.UCSWRST
        };
        params.UCA0IRRCTL// IrDA Receive Control Register = IUSCI_A0_UART.UCxIRRCTL_t {
            UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
            UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
            UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
            UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
            UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
            UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
            UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
            UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
        };
        params.UCA0IRTCTL// IrDA Transmit Control Register = IUSCI_A0_UART.UCxIRTCTL_t {
            UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
            UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
            UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
            UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
            UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
            UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
            UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
            UCIREN: IUSCI_UART.UCIREN_OFF
        };
        params.UCA0MCTL// Modulation Control Register = IUSCI_A0_UART.UCxMCTL_t {
            UCBRF: IUSCI_UART.UCBRF_0,
            UCBRS: IUSCI_UART.UCBRS_0,
            UCOS16: IUSCI_UART.UCOS16_OFF
        };
        params.UCA0RXBUF// Receive Buffer Register = Bits8 0;
        params.UCA0STAT// Status Register = IUSCI_A0_UART.UCxSTAT_t {
            UCLISTEN: IUSCI.UCLISTEN_OFF,
            UCFE: IUSCI.UCFE_OFF,
            UCOE: IUSCI.UCOE_OFF,
            UCPE: IUSCI.UCPE_OFF,
            UCBRK: IUSCI.UCBRK_OFF,
            UCRXERR: IUSCI.UCRXERR_OFF,
            UCADDR: IUSCI.UCADDR_OFF,
            UCIDLE: IUSCI.UCIDLE_OFF,
            UCBUSY: IUSCI.UCBUSY
        };
        params.UCA0TXBUF// Transmit Buffer Register = Bits8 0;
        params.UCLKHz// Stores the UCLK external clock frequency in float = Float 1000000;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = USCI_A0_UART_2xx.ForceSetDefaultRegister_t[] [
            {
                register: "UCA0CTL0",
                regForceSet: false
            },
            {
                register: "UCA0CTL1",
                regForceSet: false
            },
            {
                register: "UCA0BR0",
                regForceSet: false
            },
            {
                register: "UCA0BR1",
                regForceSet: false
            },
            {
                register: "UCA0MCTL",
                regForceSet: false
            },
            {
                register: "UCA0STAT",
                regForceSet: false
            },
            {
                register: "UCA0RXBUF",
                regForceSet: false
            },
            {
                register: "UCA0TXBUF",
                regForceSet: false
            },
            {
                register: "UCA0ABCTL",
                regForceSet: false
            },
            {
                register: "UCA0IRTCTL",
                regForceSet: false
            },
            {
                register: "UCA0IRRCTL",
                regForceSet: false
            }
        ];
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = USCI_A0_UART_2xx.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getUCxxBR0// Returns UCxxBR0 register value based on which module() returns Bits8
     inst.getUCxxBR1// Returns UCxxBR1 register value based on which module() returns Bits8
     inst.getUCxxRXIE// Gets UCxxRXIE bit() returns Bool
     inst.getUCxxTXIE// Gets UCxxTXIE bit() returns Bool
     inst.setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value) returns Void
     inst.setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value) returns Void
     inst.setUCxxRXIE// Sets UCxxRXIE bit(Bool set) returns Bool
     inst.setUCxxTXIE// Sets UCxxTXIE bit(Bool set) returns Bool
enum USCI_A0_UART_2xx.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UC7BIT_t
    const USCI_A0_UART_2xx.UC7BIT_OFF;
    // 8-bit
    const USCI_A0_UART_2xx.UC7BIT;
    // 7-bit
enum USCI_A0_UART_2xx.UCABDEN_t
index URL

Automatic baud rate detect enable

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCABDEN_t
    const USCI_A0_UART_2xx.UCABDEN_OFF;
    // Baud rate detection disabled. Length of break and synch field is not measured
    const USCI_A0_UART_2xx.UCABDEN;
    // Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
enum USCI_A0_UART_2xx.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCADDR_t
    const USCI_A0_UART_2xx.UCADDR_OFF;
    // Received character is data
    const USCI_A0_UART_2xx.UCADDR;
    // Received character is an address
enum USCI_A0_UART_2xx.UCBRF_t
index URL

First modulation stage select

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCBRF_t
    const USCI_A0_UART_2xx.UCBRF_0;
    // First stage 0
    const USCI_A0_UART_2xx.UCBRF_1;
    // First stage 1
    const USCI_A0_UART_2xx.UCBRF_2;
    // First stage 2
    const USCI_A0_UART_2xx.UCBRF_3;
    // First stage 3
    const USCI_A0_UART_2xx.UCBRF_4;
    // First stage 4
    const USCI_A0_UART_2xx.UCBRF_5;
    // First stage 5
    const USCI_A0_UART_2xx.UCBRF_6;
    // First stage 6
    const USCI_A0_UART_2xx.UCBRF_7;
    // First stage 7
    const USCI_A0_UART_2xx.UCBRF_8;
    // First stage 8
    const USCI_A0_UART_2xx.UCBRF_9;
    // First stage 9
    const USCI_A0_UART_2xx.UCBRF_10;
    // First stage 10
    const USCI_A0_UART_2xx.UCBRF_11;
    // First stage 11
    const USCI_A0_UART_2xx.UCBRF_12;
    // First stage 12
    const USCI_A0_UART_2xx.UCBRF_13;
    // First stage 13
    const USCI_A0_UART_2xx.UCBRF_14;
    // First stage 14
    const USCI_A0_UART_2xx.UCBRF_15;
    // First stage 15
enum USCI_A0_UART_2xx.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCBRKIE_t
    const USCI_A0_UART_2xx.UCBRKIE_OFF;
    // Received break characters do not set UCAxRXIFG
    const USCI_A0_UART_2xx.UCBRKIE;
    // Received break characters set UCAxRXIFG
enum USCI_A0_UART_2xx.UCBRK_t
index URL

Break detect flag

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCBRK_t
    const USCI_A0_UART_2xx.UCBRK_OFF;
    // No break condition
    const USCI_A0_UART_2xx.UCBRK;
    // Break condition occurred
enum USCI_A0_UART_2xx.UCBRS_t
index URL

Second modulation stage select

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCBRS_t
    const USCI_A0_UART_2xx.UCBRS_0;
    // Second stage 0
    const USCI_A0_UART_2xx.UCBRS_1;
    // Second stage 1
    const USCI_A0_UART_2xx.UCBRS_2;
    // Second stage 2
    const USCI_A0_UART_2xx.UCBRS_3;
    // Second stage 3
    const USCI_A0_UART_2xx.UCBRS_4;
    // Second stage 4
    const USCI_A0_UART_2xx.UCBRS_5;
    // Second stage 5
    const USCI_A0_UART_2xx.UCBRS_6;
    // Second stage 6
    const USCI_A0_UART_2xx.UCBRS_7;
    // Second stage 7
enum USCI_A0_UART_2xx.UCBTOE_t
index URL

Break time out error

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCBTOE_t
    const USCI_A0_UART_2xx.UCBTOE_OFF;
    // No error
    const USCI_A0_UART_2xx.UCBTOE;
    // Length of break field exceeded 22 bit times
enum USCI_A0_UART_2xx.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCBUSY_t
    const USCI_A0_UART_2xx.UCBUSY_OFF;
    // USCI inactive
    const USCI_A0_UART_2xx.UCBUSY;
    // USCI transmitting or receiving
enum USCI_A0_UART_2xx.UCDELIM0_t
index URL

Break/synch delimiter length bit 0

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCDELIM0_t
    const USCI_A0_UART_2xx.UCDELIM0_OFF;
    // Break Sync Delimiter bit 0 Off
    const USCI_A0_UART_2xx.UCDELIM0;
    // Break Sync Delimiter bit 0 On
enum USCI_A0_UART_2xx.UCDELIM1_t
index URL

Break/synch delimiter length bit 1

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCDELIM1_t
    const USCI_A0_UART_2xx.UCDELIM1_OFF;
    // Break Sync Delimiter bit 1 Off
    const USCI_A0_UART_2xx.UCDELIM1;
    // Break Sync Delimiter bit 1 On
enum USCI_A0_UART_2xx.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCDORM_t
    const USCI_A0_UART_2xx.UCDORM_OFF;
    // Not dormant. All received characters will set UCAxRXIFG
    const USCI_A0_UART_2xx.UCDORM;
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
enum USCI_A0_UART_2xx.UCFE_t
index URL

Framing error flag

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCFE_t
    const USCI_A0_UART_2xx.UCFE_OFF;
    // 0 No error
    const USCI_A0_UART_2xx.UCFE;
    // Character received with low stop bit
enum USCI_A0_UART_2xx.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIDLE_t
    const USCI_A0_UART_2xx.UCIDLE_OFF;
    // No idle line detected
    const USCI_A0_UART_2xx.UCIDLE;
    // Idle line detected
enum USCI_A0_UART_2xx.UCIREN_t
index URL

IrDA encoder/decoder enable

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIREN_t
    const USCI_A0_UART_2xx.UCIREN_OFF;
    // IrDA encoder/decoder disabled
    const USCI_A0_UART_2xx.UCIREN;
    // IrDA encoder/decoder enabled
enum USCI_A0_UART_2xx.UCIRRXFE_t
index URL

IrDA receive filter enabled

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRRXFE_t
    const USCI_A0_UART_2xx.UCIRRXFE_OFF;
    // Receive filter disabled
    const USCI_A0_UART_2xx.UCIRRXFE;
    // Receive filter enabled
enum USCI_A0_UART_2xx.UCIRRXFL0_t
index URL

IRDA Receive Filter Length Bit 0

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRRXFL0_t
    const USCI_A0_UART_2xx.UCIRRXFL0_OFF;
    // Bit 0 OFF
    const USCI_A0_UART_2xx.UCIRRXFL0;
    // Bit 0 ON
enum USCI_A0_UART_2xx.UCIRRXFL1_t
index URL

IRDA Receive Filter Length Bit 1

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRRXFL1_t
    const USCI_A0_UART_2xx.UCIRRXFL1_OFF;
    // Bit 1 OFF
    const USCI_A0_UART_2xx.UCIRRXFL1;
    // Bit 1 ON
enum USCI_A0_UART_2xx.UCIRRXFL2_t
index URL

IRDA Receive Filter Length Bit 2

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRRXFL2_t
    const USCI_A0_UART_2xx.UCIRRXFL2_OFF;
    // Bit 2 OFF
    const USCI_A0_UART_2xx.UCIRRXFL2;
    // Bit 2 ON
enum USCI_A0_UART_2xx.UCIRRXFL3_t
index URL

IRDA Receive Filter Length Bit 3

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRRXFL3_t
    const USCI_A0_UART_2xx.UCIRRXFL3_OFF;
    // Bit 3 OFF
    const USCI_A0_UART_2xx.UCIRRXFL3;
    // Bit 3 ON
enum USCI_A0_UART_2xx.UCIRRXFL4_t
index URL

IRDA Receive Filter Length Bit 4

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRRXFL4_t
    const USCI_A0_UART_2xx.UCIRRXFL4_OFF;
    // Bit 4 OFF
    const USCI_A0_UART_2xx.UCIRRXFL4;
    // Bit 4 ON
enum USCI_A0_UART_2xx.UCIRRXFL5_t
index URL

IRDA Receive Filter Length Bit 5

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRRXFL5_t
    const USCI_A0_UART_2xx.UCIRRXFL5_OFF;
    // Bit 5 OFF
    const USCI_A0_UART_2xx.UCIRRXFL5;
    // Bit 5 ON
enum USCI_A0_UART_2xx.UCIRRXPL_t
index URL

IrDA receive input UCAxRXD polarity

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRRXPL_t
    const USCI_A0_UART_2xx.UCIRRXPL_OFF;
    // IrDA transceiver delivers a high pulse when a light pulse is seen
    const USCI_A0_UART_2xx.UCIRRXPL;
    // IrDA transceiver delivers a low pulse when a light pulse is seen
enum USCI_A0_UART_2xx.UCIRTXCLK_t
index URL

IrDA transmit pulse clock select

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRTXCLK_t
    const USCI_A0_UART_2xx.UCIRTXCLK_OFF;
    // BRCLK
    const USCI_A0_UART_2xx.UCIRTXCLK;
    // BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
enum USCI_A0_UART_2xx.UCIRTXPL0_t
index URL

IRDA Transmit Pulse Length Bit 0

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRTXPL0_t
    const USCI_A0_UART_2xx.UCIRTXPL0_OFF;
    // Bit 0 OFF
    const USCI_A0_UART_2xx.UCIRTXPL0;
    // Bit 0 ON
enum USCI_A0_UART_2xx.UCIRTXPL1_t
index URL

IRDA Transmit Pulse Length Bit 1

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRTXPL1_t
    const USCI_A0_UART_2xx.UCIRTXPL1_OFF;
    // Bit 1 OFF
    const USCI_A0_UART_2xx.UCIRTXPL1;
    // Bit 1 ON
enum USCI_A0_UART_2xx.UCIRTXPL2_t
index URL

IRDA Transmit Pulse Length Bit 2

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRTXPL2_t
    const USCI_A0_UART_2xx.UCIRTXPL2_OFF;
    // Bit 2 OFF
    const USCI_A0_UART_2xx.UCIRTXPL2;
    // Bit 2 ON
enum USCI_A0_UART_2xx.UCIRTXPL3_t
index URL

IRDA Transmit Pulse Length Bit 3

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRTXPL3_t
    const USCI_A0_UART_2xx.UCIRTXPL3_OFF;
    // Bit 3 OFF
    const USCI_A0_UART_2xx.UCIRTXPL3;
    // Bit 3 ON
enum USCI_A0_UART_2xx.UCIRTXPL4_t
index URL

IRDA Transmit Pulse Length Bit 4

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRTXPL4_t
    const USCI_A0_UART_2xx.UCIRTXPL4_OFF;
    // Bit 4 OFF
    const USCI_A0_UART_2xx.UCIRTXPL4;
    // Bit 4 ON
enum USCI_A0_UART_2xx.UCIRTXPL5_t
index URL

IRDA Transmit Pulse Length Bit 5

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCIRTXPL5_t
    const USCI_A0_UART_2xx.UCIRTXPL5_OFF;
    // Bit 5 OFF
    const USCI_A0_UART_2xx.UCIRTXPL5;
    // Bit 5 ON
enum USCI_A0_UART_2xx.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCLISTEN_t
    const USCI_A0_UART_2xx.UCLISTEN_OFF;
    // Disabled
    const USCI_A0_UART_2xx.UCLISTEN;
    // Enabled. UCAxTXD is internally fed back to the receiver
enum USCI_A0_UART_2xx.UCMODE_ASYNC_t
index URL

USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCMODE_ASYNC_t
    const USCI_A0_UART_2xx.UCMODE_0;
    // UART Mode
    const USCI_A0_UART_2xx.UCMODE_1;
    // Idle-Line Multiprocessor Mode
    const USCI_A0_UART_2xx.UCMODE_2;
    // Address-Bit Multiprocessor Mode
    const USCI_A0_UART_2xx.UCMODE_3;
    // UART Mode with automatic baud rate detection
enum USCI_A0_UART_2xx.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCMODE_SYNC_t
    const USCI_A0_UART_2xx.UCMODE_0;
    // 3-Pin SPI
    const USCI_A0_UART_2xx.UCMODE_1;
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    const USCI_A0_UART_2xx.UCMODE_2;
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    const USCI_A0_UART_2xx.UCMODE_3;
    // I2C Mode
enum USCI_A0_UART_2xx.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCMSB_t
    const USCI_A0_UART_2xx.UCMSB_OFF;
    // LSB first
    const USCI_A0_UART_2xx.UCMSB;
    // MSB first
enum USCI_A0_UART_2xx.UCOE_t
index URL

Overrun error flag

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCOE_t
    const USCI_A0_UART_2xx.UCOE_OFF;
    // No error
    const USCI_A0_UART_2xx.UCOE;
    // Overrun error occurred
enum USCI_A0_UART_2xx.UCOS16_t
index URL

Oversampling mode enabled

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCOS16_t
    const USCI_A0_UART_2xx.UCOS16_OFF;
    // Disabled
    const USCI_A0_UART_2xx.UCOS16;
    // Enabled
enum USCI_A0_UART_2xx.UCPAR_t
index URL

Parity select. UCPAR is not used when parity is disabled

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCPAR_t
    const USCI_A0_UART_2xx.UCPAR_OFF;
    // Odd parity
    const USCI_A0_UART_2xx.UCPAR;
    // Even parity
enum USCI_A0_UART_2xx.UCPEN_t
index URL

Parity enable

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCPEN_t
    const USCI_A0_UART_2xx.UCPEN_OFF;
    // Parity Disabled
    const USCI_A0_UART_2xx.UCPEN;
    // Parity Enabled
enum USCI_A0_UART_2xx.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCPE_t
    const USCI_A0_UART_2xx.UCPE_OFF;
    // No error
    const USCI_A0_UART_2xx.UCPE;
    // Character received with parity error
enum USCI_A0_UART_2xx.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCRXEIE_t
    const USCI_A0_UART_2xx.UCRXEIE_OFF;
    // Erroneous characters rejected and UCAxRXIFG is not set
    const USCI_A0_UART_2xx.UCRXEIE;
    // Erroneous characters received will set UCAxRXIFG
enum USCI_A0_UART_2xx.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCRXERR_t
    const USCI_A0_UART_2xx.UCRXERR_OFF;
    // No receive errors detected
    const USCI_A0_UART_2xx.UCRXERR;
    // Receive error detected
enum USCI_A0_UART_2xx.UCSPB_t
index URL

Stop bit select. Number of stop bits

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCSPB_t
    const USCI_A0_UART_2xx.UCSPB_OFF;
    // One stop bit
    const USCI_A0_UART_2xx.UCSPB;
    // Two stop bits
enum USCI_A0_UART_2xx.UCSSEL_UART_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCSSEL_UART_t
    const USCI_A0_UART_2xx.UCSSEL_0;
    // UCLK
    const USCI_A0_UART_2xx.UCSSEL_1;
    // ACLK
    const USCI_A0_UART_2xx.UCSSEL_2;
    // SMCLK
enum USCI_A0_UART_2xx.UCSTOE_t
index URL

Synch field time out error

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCSTOE_t
    const USCI_A0_UART_2xx.UCSTOE_OFF;
    // No error
    const USCI_A0_UART_2xx.UCSTOE;
    // Length of synch field exceeded measurable time
enum USCI_A0_UART_2xx.UCSWRST_t
index URL

Software reset enable

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCSWRST_t
    const USCI_A0_UART_2xx.UCSWRST_OFF;
    // Disabled. USCI reset released for operation
    const USCI_A0_UART_2xx.UCSWRST;
    // Enabled. USCI logic held in reset state
enum USCI_A0_UART_2xx.UCSYNC_t
index URL

Synchronous mode enable

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCSYNC_t
    const USCI_A0_UART_2xx.UCSYNC_OFF;
    // Asynchronous mode
    const USCI_A0_UART_2xx.UCSYNC;
    // Synchronous Mode
enum USCI_A0_UART_2xx.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCTXADDR_t
    const USCI_A0_UART_2xx.UCTXADDR_OFF;
    // Next frame transmitted is data
    const USCI_A0_UART_2xx.UCTXADDR;
    // Next frame transmitted is an address
enum USCI_A0_UART_2xx.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCscript usage meta-domain
values of type USCI_A0_UART_2xx.UCTXBRK_t
    const USCI_A0_UART_2xx.UCTXBRK_OFF;
    // Next frame transmitted is not a break
    const USCI_A0_UART_2xx.UCTXBRK;
    // Next frame transmitted is a break or a break/synch
struct USCI_A0_UART_2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new USCI_A0_UART_2xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct USCI_A0_UART_2xx.UCxABCTL_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_UART_2xx.UCxABCTL_t;
    obj.UCDELIM1 = IUSCI_UART.UCDELIM1_t ...
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
    obj.UCDELIM0 = IUSCI_UART.UCDELIM0_t ...
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
    obj.UCSTOE = IUSCI_UART.UCSTOE_t ...
    // Synch field time out error 0 No error 1 Length of synch field exceeded measurable time
    obj.UCBTOE = IUSCI_UART.UCBTOE_t ...
    // Break time out error 0 No error 1 Length of break field exceeded 22 bit times
    obj.UCABDEN = IUSCI_UART.UCABDEN_t ...
    // Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
struct USCI_A0_UART_2xx.UCxCTL0_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_UART_2xx.UCxCTL0_t;
    obj.UCPEN = IUSCI_UART.UCPEN_t ...
    // Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation
    obj.UCPAR = IUSCI_UART.UCPAR_t ...
    // Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity
    obj.UCMSB = IUSCI_UART.UCMSB_t ...
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
    obj.UC7BIT = IUSCI_UART.UC7BIT_t ...
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
    obj.UCSPB = IUSCI_UART.UCSPB_t ...
    // Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits
    obj.UCMODE = IUSCI_UART.UCMODE_ASYNC_t ...
    // USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection
    obj.UCSYNC = IUSCI_UART.UCSYNC_t ...
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
struct USCI_A0_UART_2xx.UCxCTL1_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_UART_2xx.UCxCTL1_t;
    obj.UCSSEL = IUSCI_UART.UCSSEL_UART_t ...
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK
    obj.UCRXEIE = IUSCI_UART.UCRXEIE_t ...
    // Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG
    obj.UCBRKIE = IUSCI_UART.UCBRKIE_t ...
    // Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG
    obj.UCDORM = IUSCI_UART.UCDORM_t ...
    // Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    obj.UCTXADDR = IUSCI_UART.UCTXADDR_t ...
    // Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address
    obj.UCTXBRK = IUSCI_UART.UCTXBRK_t ...
    // Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch
    obj.UCSWRST = IUSCI_UART.UCSWRST_t ...
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
struct USCI_A0_UART_2xx.UCxIRRCTL_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_UART_2xx.UCxIRRCTL_t;
    obj.UCIRRXFL5 = IUSCI_UART.UCIRRXFL5_t ...
    // IRDA Receive Filter Length Bit 5
    obj.UCIRRXFL4 = IUSCI_UART.UCIRRXFL4_t ...
    // IRDA Receive Filter Length Bit 4
    obj.UCIRRXFL3 = IUSCI_UART.UCIRRXFL3_t ...
    // IRDA Receive Filter Length Bit 3
    obj.UCIRRXFL2 = IUSCI_UART.UCIRRXFL2_t ...
    // IRDA Receive Filter Length Bit 2
    obj.UCIRRXFL1 = IUSCI_UART.UCIRRXFL1_t ...
    // IRDA Receive Filter Length Bit 1
    obj.UCIRRXFL0 = IUSCI_UART.UCIRRXFL0_t ...
    // IRDA Receive Filter Length Bit 0
    obj.UCIRRXPL = IUSCI_UART.UCIRRXPL_t ...
    // IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen
    obj.UCIRRXFE = IUSCI_UART.UCIRRXFE_t ...
    // IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled
struct USCI_A0_UART_2xx.UCxIRTCTL_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_UART_2xx.UCxIRTCTL_t;
    obj.UCIRTXPL5 = IUSCI_UART.UCIRTXPL5_t ...
    // IRDA Transmit Pulse Length Bit 5
    obj.UCIRTXPL4 = IUSCI_UART.UCIRTXPL4_t ...
    // IRDA Transmit Pulse Length Bit 4
    obj.UCIRTXPL3 = IUSCI_UART.UCIRTXPL3_t ...
    // IRDA Transmit Pulse Length Bit 3
    obj.UCIRTXPL2 = IUSCI_UART.UCIRTXPL2_t ...
    // IRDA Transmit Pulse Length Bit 2
    obj.UCIRTXPL1 = IUSCI_UART.UCIRTXPL1_t ...
    // IRDA Transmit Pulse Length Bit 1
    obj.UCIRTXPL0 = IUSCI_UART.UCIRTXPL0_t ...
    // IRDA Transmit Pulse Length Bit 0
    obj.UCIRTXCLK = IUSCI_UART.UCIRTXCLK_t ...
    // IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
    obj.UCIREN = IUSCI_UART.UCIREN_t ...
    // IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled
struct USCI_A0_UART_2xx.UCxMCTL_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_UART_2xx.UCxMCTL_t;
    obj.UCBRF = IUSCI_UART.UCBRF_t ...
    // First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0
    obj.UCBRS = IUSCI_UART.UCBRS_t ...
    // Second modulation stage select. These bits determine the modulation pattern for BITCLK
    obj.UCOS16 = IUSCI_UART.UCOS16_t ...
    // Oversampling mode enabled 0 Disabled 1 Enabled
struct USCI_A0_UART_2xx.UCxSTAT_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A0_UART_2xx.UCxSTAT_t;
    obj.UCLISTEN = IUSCI_UART.UCLISTEN_t ...
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
    obj.UCFE = IUSCI_UART.UCFE_t ...
    // Framing error flag 0 No error 1 Character received with low stop bit
    obj.UCOE = IUSCI_UART.UCOE_t ...
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
    obj.UCPE = IUSCI_UART.UCPE_t ...
    // Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error
    obj.UCBRK = IUSCI_UART.UCBRK_t ...
    // Break detect flag 0 No break condition 1 Break condition occurred
    obj.UCRXERR = IUSCI_UART.UCRXERR_t ...
    // Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected
    obj.UCADDR = IUSCI_UART.UCADDR_t ...
    // Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address
    obj.UCIDLE = IUSCI_UART.UCIDLE_t ...
    // Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected
    obj.UCBUSY = IUSCI_UART.UCBUSY_t ...
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
struct USCI_A0_UART_2xx.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new USCI_A0_UART_2xx.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
USCI_A0_UART_2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
USCI_A0_UART_2xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
USCI_A0_UART_2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
USCI_A0_UART_2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
// Instance config-params object
    params.UCA0ABCTL = IUSCI_A0_UART.UCxABCTL_t {
    // Auto Baud Rate Control Register
        UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
        UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
        UCSTOE: IUSCI_UART.UCSTOE_OFF,
        UCBTOE: IUSCI_UART.UCBTOE_OFF,
        UCABDEN: IUSCI_UART.UCABDEN_OFF
    };
    params.UCA0BR0 = Bits8 0;
    // Baud rate control register 0
    params.UCA0BR1 = Bits8 0;
    // Baud rate control register 1
    params.UCA0CTL0 = IUSCI_A0_UART.UCxCTL0_t {
    // Control Register 0
        UCPEN: IUSCI_UART.UCPEN_OFF,
        UCPAR: IUSCI_UART.UCPAR_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCSPB: IUSCI_UART.UCSPB_OFF,
        UCMODE: IUSCI_UART.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC_OFF
    };
    params.UCA0CTL1 = IUSCI_A0_UART.UCxCTL1_t {
    // Control Register 1
        UCSSEL: IUSCI_UART.UCSSEL_0,
        UCRXEIE: IUSCI.UCRXEIE_OFF,
        UCBRKIE: IUSCI.UCBRKIE_OFF,
        UCDORM: IUSCI.UCDORM_OFF,
        UCTXADDR: IUSCI.UCTXADDR_OFF,
        UCTXBRK: IUSCI.UCTXBRK_OFF,
        UCSWRST: IUSCI.UCSWRST
    };
    params.UCA0IRRCTL = IUSCI_A0_UART.UCxIRRCTL_t {
    // IrDA Receive Control Register
        UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
        UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
        UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
        UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
        UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
        UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
        UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
        UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
    };
    params.UCA0IRTCTL = IUSCI_A0_UART.UCxIRTCTL_t {
    // IrDA Transmit Control Register
        UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
        UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
        UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
        UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
        UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
        UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
        UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
        UCIREN: IUSCI_UART.UCIREN_OFF
    };
    params.UCA0MCTL = IUSCI_A0_UART.UCxMCTL_t {
    // Modulation Control Register
        UCBRF: IUSCI_UART.UCBRF_0,
        UCBRS: IUSCI_UART.UCBRS_0,
        UCOS16: IUSCI_UART.UCOS16_OFF
    };
    params.UCA0RXBUF = Bits8 0;
    // Receive Buffer Register
    params.UCA0STAT = IUSCI_A0_UART.UCxSTAT_t {
    // Status Register
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCPE: IUSCI.UCPE_OFF,
        UCBRK: IUSCI.UCBRK_OFF,
        UCRXERR: IUSCI.UCRXERR_OFF,
        UCADDR: IUSCI.UCADDR_OFF,
        UCIDLE: IUSCI.UCIDLE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    params.UCA0TXBUF = Bits8 0;
    // Transmit Buffer Register
    params.UCLKHz = Float 1000000;
    // Stores the UCLK external clock frequency in float
    params.forceSetDefaultRegister = USCI_A0_UART_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "UCA0CTL0",
            regForceSet: false
        },
        {
            register: "UCA0CTL1",
            regForceSet: false
        },
        {
            register: "UCA0BR0",
            regForceSet: false
        },
        {
            register: "UCA0BR1",
            regForceSet: false
        },
        {
            register: "UCA0MCTL",
            regForceSet: false
        },
        {
            register: "UCA0STAT",
            regForceSet: false
        },
        {
            register: "UCA0RXBUF",
            regForceSet: false
        },
        {
            register: "UCA0TXBUF",
            regForceSet: false
        },
        {
            register: "UCA0ABCTL",
            regForceSet: false
        },
        {
            register: "UCA0IRTCTL",
            regForceSet: false
        },
        {
            register: "UCA0IRRCTL",
            regForceSet: false
        }
    ];
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config USCI_A0_UART_2xx.UCA0ABCTL // instance
index URL

Auto Baud Rate Control Register

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0ABCTL = IUSCI_A0_UART.UCxABCTL_t {
    UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
    UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
    UCSTOE: IUSCI_UART.UCSTOE_OFF,
    UCBTOE: IUSCI_UART.UCBTOE_OFF,
    UCABDEN: IUSCI_UART.UCABDEN_OFF
};
config USCI_A0_UART_2xx.UCA0BR0 // instance
index URL

Baud rate control register 0

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0BR0 = Bits8 0;
config USCI_A0_UART_2xx.UCA0BR1 // instance
index URL

Baud rate control register 1

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0BR1 = Bits8 0;
config USCI_A0_UART_2xx.UCA0CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0CTL0 = IUSCI_A0_UART.UCxCTL0_t {
    UCPEN: IUSCI_UART.UCPEN_OFF,
    UCPAR: IUSCI_UART.UCPAR_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCSPB: IUSCI_UART.UCSPB_OFF,
    UCMODE: IUSCI_UART.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC_OFF
};
config USCI_A0_UART_2xx.UCA0CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0CTL1 = IUSCI_A0_UART.UCxCTL1_t {
    UCSSEL: IUSCI_UART.UCSSEL_0,
    UCRXEIE: IUSCI.UCRXEIE_OFF,
    UCBRKIE: IUSCI.UCBRKIE_OFF,
    UCDORM: IUSCI.UCDORM_OFF,
    UCTXADDR: IUSCI.UCTXADDR_OFF,
    UCTXBRK: IUSCI.UCTXBRK_OFF,
    UCSWRST: IUSCI.UCSWRST
};
config USCI_A0_UART_2xx.UCA0IRRCTL // instance
index URL

IrDA Receive Control Register

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0IRRCTL = IUSCI_A0_UART.UCxIRRCTL_t {
    UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
    UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
    UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
    UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
    UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
    UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
    UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
    UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
};
config USCI_A0_UART_2xx.UCA0IRTCTL // instance
index URL

IrDA Transmit Control Register

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0IRTCTL = IUSCI_A0_UART.UCxIRTCTL_t {
    UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
    UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
    UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
    UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
    UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
    UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
    UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
    UCIREN: IUSCI_UART.UCIREN_OFF
};
config USCI_A0_UART_2xx.UCA0MCTL // instance
index URL

Modulation Control Register

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0MCTL = IUSCI_A0_UART.UCxMCTL_t {
    UCBRF: IUSCI_UART.UCBRF_0,
    UCBRS: IUSCI_UART.UCBRS_0,
    UCOS16: IUSCI_UART.UCOS16_OFF
};
config USCI_A0_UART_2xx.UCA0RXBUF // instance
index URL

Receive Buffer Register

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0RXBUF = Bits8 0;
config USCI_A0_UART_2xx.UCA0STAT // instance
index URL

Status Register

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0STAT = IUSCI_A0_UART.UCxSTAT_t {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCPE: IUSCI.UCPE_OFF,
    UCBRK: IUSCI.UCBRK_OFF,
    UCRXERR: IUSCI.UCRXERR_OFF,
    UCADDR: IUSCI.UCADDR_OFF,
    UCIDLE: IUSCI.UCIDLE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config USCI_A0_UART_2xx.UCA0TXBUF // instance
index URL

Transmit Buffer Register

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCA0TXBUF = Bits8 0;
config USCI_A0_UART_2xx.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.UCLKHz = Float 1000000;
config USCI_A0_UART_2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
const params.forceSetDefaultRegister = USCI_A0_UART_2xx.ForceSetDefaultRegister_t[] [
    {
        register: "UCA0CTL0",
        regForceSet: false
    },
    {
        register: "UCA0CTL1",
        regForceSet: false
    },
    {
        register: "UCA0BR0",
        regForceSet: false
    },
    {
        register: "UCA0BR1",
        regForceSet: false
    },
    {
        register: "UCA0MCTL",
        regForceSet: false
    },
    {
        register: "UCA0STAT",
        regForceSet: false
    },
    {
        register: "UCA0RXBUF",
        regForceSet: false
    },
    {
        register: "UCA0TXBUF",
        regForceSet: false
    },
    {
        register: "UCA0ABCTL",
        regForceSet: false
    },
    {
        register: "UCA0IRTCTL",
        regForceSet: false
    },
    {
        register: "UCA0IRRCTL",
        regForceSet: false
    }
];
config USCI_A0_UART_2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config USCI_A0_UART_2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new USCI_A0_UART_2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = USCI_A0_UART_2xx.create(IClock.Instance clock, params);
// Create an instance-object
USCI_A0_UART_2xx.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR0() returns Bits8
SEE
getUCxxBR0
USCI_A0_UART_2xx.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR1() returns Bits8
SEE
getUCxxBR1
USCI_A0_UART_2xx.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCscript usage meta-domain
inst.getUCxxRXIE() returns Bool
SEE
getUCxxRXIE
USCI_A0_UART_2xx.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCscript usage meta-domain
inst.getUCxxTXIE() returns Bool
SEE
getUCxxTXIE
USCI_A0_UART_2xx.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR0(Bits8 value) returns Void
SEE
setUCxxBR0
USCI_A0_UART_2xx.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR1(Bits8 value) returns Void
SEE
setUCxxBR1
USCI_A0_UART_2xx.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCscript usage meta-domain
inst.setUCxxRXIE(Bool set) returns Bool
SEE
setUCxxRXIE
USCI_A0_UART_2xx.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCscript usage meta-domain
inst.setUCxxTXIE(Bool set) returns Bool
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:44 GMT


module ti.catalog.msp430.peripherals.communication.USCI_A0_UART_2xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Universal Serial Communication Interface A0 UART 2xx
    16     */
    17    metaonly module USCI_A0_UART_2xx inherits IUSCI_A0_UART {
    18        /* Add 2xx-specific stuff here */
    19
    20        /*
    21         *  ======== create ========
    22         */
    23        create(IClock.Instance clock);
    24
    25    instance:
    26        /*! @_nodoc */
    27        config IClock.Instance clock;
    28
    29        /*! Determine if each Register needs to be forced set or not */
    30        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    31        [
    32            { register : "UCA0CTL0"   , regForceSet : false },
    33            { register : "UCA0CTL1"   , regForceSet : false },
    34            { register : "UCA0BR0"    , regForceSet : false },
    35            { register : "UCA0BR1"    , regForceSet : false },
    36            { register : "UCA0MCTL"   , regForceSet : false },
    37            { register : "UCA0STAT"   , regForceSet : false },
    38            { register : "UCA0RXBUF"  , regForceSet : false },
    39            { register : "UCA0TXBUF"  , regForceSet : false },
    40            { register : "UCA0ABCTL"  , regForceSet : false },
    41            { register : "UCA0IRTCTL" , regForceSet : false },
    42            { register : "UCA0IRRCTL" , regForceSet : false }
    43        ];
    44    }


module ti.catalog.msp430.peripherals.communication.USCI_A1_SPI_2xx

metaonly module ti.catalog.msp430.peripherals.communication.USCI_A1_SPI_2xx
index URL

Universal Serial Communication Interface A1 SPI 2xx

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/USCI_A1_SPI_2xx.xdc
var USCI_A1_SPI_2xx = xdc.useModule('ti.catalog.msp430.peripherals.communication.USCI_A1_SPI_2xx');
module-wide constants & types
    values of type USCI_A1_SPI_2xx.UC7BIT_t// Character length. Selects 7-bit or 8-bit character length
        const USCI_A1_SPI_2xx.UC7BIT_OFF// 8-bit;
        const USCI_A1_SPI_2xx.UC7BIT// 7-bit;
    values of type USCI_A1_SPI_2xx.UCA1RXIE_t// USCI_A1 receive interrupt enable
        const USCI_A1_SPI_2xx.UCA1RXIE_OFF// Interrupt disabled;
        const USCI_A1_SPI_2xx.UCA1RXIE// Interrupt enabled;
    values of type USCI_A1_SPI_2xx.UCA1TXIE_t// USCI_A1 transmit interrupt enable
        const USCI_A1_SPI_2xx.UCA1TXIE_OFF// Interrupt disabled;
        const USCI_A1_SPI_2xx.UCA1TXIE// Interrupt enabled;
    values of type USCI_A1_SPI_2xx.UCADDR_t// Address received in address-bit multiprocessor mode
        const USCI_A1_SPI_2xx.UCADDR_OFF// Received character is data;
        const USCI_A1_SPI_2xx.UCADDR// Received character is an address;
    values of type USCI_A1_SPI_2xx.UCBRKIE_t// Receive break character interrupt-enable
        const USCI_A1_SPI_2xx.UCBRKIE_OFF// Received break characters do not set UCAxRXIFG;
        const USCI_A1_SPI_2xx.UCBRKIE// Received break characters set UCAxRXIFG;
    values of type USCI_A1_SPI_2xx.UCBRK_t// Break detect flag
        const USCI_A1_SPI_2xx.UCBRK_OFF// No break condition;
        const USCI_A1_SPI_2xx.UCBRK// Break condition occurred;
    values of type USCI_A1_SPI_2xx.UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress
        const USCI_A1_SPI_2xx.UCBUSY_OFF// USCI inactive;
        const USCI_A1_SPI_2xx.UCBUSY// USCI transmitting or receiving;
    values of type USCI_A1_SPI_2xx.UCCKPH_t// Clock phase select
        const USCI_A1_SPI_2xx.UCCKPH_OFF// Data is changed on the first UCLK edge and captured on the following edge;
        const USCI_A1_SPI_2xx.UCCKPH// Data is captured on the first UCLK edge and changed on the following edge;
    values of type USCI_A1_SPI_2xx.UCCKPL_t// Clock polarity select
        const USCI_A1_SPI_2xx.UCCKPL_OFF// Inactive state is low;
        const USCI_A1_SPI_2xx.UCCKPL// Inactive state is high;
    values of type USCI_A1_SPI_2xx.UCDORM_t// Dormant. Puts USCI into sleep mode
        const USCI_A1_SPI_2xx.UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG;
        const USCI_A1_SPI_2xx.UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
    values of type USCI_A1_SPI_2xx.UCFE_t// Framing error flag
        const USCI_A1_SPI_2xx.UCFE_OFF// 0 No error;
        const USCI_A1_SPI_2xx.UCFE// Character received with low stop bit;
    values of type USCI_A1_SPI_2xx.UCIDLE_t// Idle line detected in idle-line multiprocessor mode
        const USCI_A1_SPI_2xx.UCIDLE_OFF// No idle line detected;
        const USCI_A1_SPI_2xx.UCIDLE// Idle line detected;
    values of type USCI_A1_SPI_2xx.UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode
        const USCI_A1_SPI_2xx.UCLISTEN_OFF// Disabled;
        const USCI_A1_SPI_2xx.UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver;
    values of type USCI_A1_SPI_2xx.UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1
        const USCI_A1_SPI_2xx.UCMODE_0// 3-Pin SPI;
        const USCI_A1_SPI_2xx.UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1;
        const USCI_A1_SPI_2xx.UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0;
        const USCI_A1_SPI_2xx.UCMODE_3// I2C Mode;
    values of type USCI_A1_SPI_2xx.UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register
        const USCI_A1_SPI_2xx.UCMSB_OFF// LSB first;
        const USCI_A1_SPI_2xx.UCMSB// MSB first;
    values of type USCI_A1_SPI_2xx.UCMST_t// Master mode select
        const USCI_A1_SPI_2xx.UCMST_OFF// Slave mode;
        const USCI_A1_SPI_2xx.UCMST// Master mode;
    values of type USCI_A1_SPI_2xx.UCOE_t// Overrun error flag
        const USCI_A1_SPI_2xx.UCOE_OFF// No error;
        const USCI_A1_SPI_2xx.UCOE// Overrun error occurred;
    values of type USCI_A1_SPI_2xx.UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0
        const USCI_A1_SPI_2xx.UCPE_OFF// No error;
        const USCI_A1_SPI_2xx.UCPE// Character received with parity error;
    values of type USCI_A1_SPI_2xx.UCRXEIE_t// Receive erroneous-character interrupt-enable
        const USCI_A1_SPI_2xx.UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set;
        const USCI_A1_SPI_2xx.UCRXEIE// Erroneous characters received will set UCAxRXIFG;
    values of type USCI_A1_SPI_2xx.UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read
        const USCI_A1_SPI_2xx.UCRXERR_OFF// No receive errors detected;
        const USCI_A1_SPI_2xx.UCRXERR// Receive error detected;
    values of type USCI_A1_SPI_2xx.UCSSEL_SPI_t// USCI clock source select. These bits select the BRCLK source clock
        const USCI_A1_SPI_2xx.UCSSEL_0// NA;
        const USCI_A1_SPI_2xx.UCSSEL_1// ACLK;
        const USCI_A1_SPI_2xx.UCSSEL_2// SMCLK;
    values of type USCI_A1_SPI_2xx.UCSWRST_t// Software reset enable
        const USCI_A1_SPI_2xx.UCSWRST_OFF// Disabled. USCI reset released for operation;
        const USCI_A1_SPI_2xx.UCSWRST// Enabled. USCI logic held in reset state;
    values of type USCI_A1_SPI_2xx.UCSYNC_t// Synchronous mode enable
        const USCI_A1_SPI_2xx.UCSYNC_OFF// Asynchronous mode;
        const USCI_A1_SPI_2xx.UCSYNC// Synchronous Mode;
    values of type USCI_A1_SPI_2xx.UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode
        const USCI_A1_SPI_2xx.UCTXADDR_OFF// Next frame transmitted is data;
        const USCI_A1_SPI_2xx.UCTXADDR// Next frame transmitted is an address;
    values of type USCI_A1_SPI_2xx.UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer
        const USCI_A1_SPI_2xx.UCTXBRK_OFF// Next frame transmitted is not a break;
        const USCI_A1_SPI_2xx.UCTXBRK// Next frame transmitted is a break or a break/synch;
    var obj = new USCI_A1_SPI_2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new USCI_A1_SPI_2xx.UC1IE_t// USCI_A1 SPI Interrupt Enable Register;
        obj.UCA1TXIE// USCI_A1 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_A1_SPI_2xx.UCA1TXIE_t ...
        obj.UCA1RXIE// USCI_A1 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_A1_SPI_2xx.UCA1RXIE_t ...
    var obj = new USCI_A1_SPI_2xx.UCxCTL0_t// ;
        obj.UCCKPH// Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge = IUSCI_SPI.UCCKPH_t ...
        obj.UCCKPL// Clock polarity select 0 The inactive state is low 1 The inactive state is high = IUSCI_SPI.UCCKPL_t ...
        obj.UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first = IUSCI_SPI.UCMSB_t ...
        obj.UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data = IUSCI_SPI.UC7BIT_t ...
        obj.UCMST// Master mode select 0 Slave mode 1 Master mode = IUSCI_SPI.UCMST_t ...
        obj.UCMODE// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode = IUSCI_SPI.UCMODE_SYNC_t ...
        obj.UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode = IUSCI_SPI.UCSYNC_t ...
    var obj = new USCI_A1_SPI_2xx.UCxCTL1_t// ;
        obj.UCSSEL// USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK = IUSCI_SPI.UCSSEL_SPI_t ...
        obj.UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state = IUSCI_SPI.UCSWRST_t ...
    var obj = new USCI_A1_SPI_2xx.UCxSTAT_t// ;
        obj.UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver = IUSCI_SPI.UCLISTEN_t ...
        obj.UCFE// Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred = IUSCI_SPI.UCFE_t ...
        obj.UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred = IUSCI_SPI.UCOE_t ...
        obj.UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving = IUSCI_SPI.UCBUSY_t ...
    var obj = new USCI_A1_SPI_2xx.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     USCI_A1_SPI_2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     USCI_A1_SPI_2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new USCI_A1_SPI_2xx.Params// Instance config-params object;
        params.UC1IE// USCI_A1 Interrupt Enable Register = USCI_A1_SPI_2xx.UC1IE_t {
            UCA1TXIE: USCI_A1_SPI_2xx.UCA1TXIE_OFF,
            UCA1RXIE: USCI_A1_SPI_2xx.UCA1RXIE_OFF
        };
        params.UCA1BR0// Bit Rate Control Register 0 = Bits8 0;
        params.UCA1BR1// Bit Rate Control Register 1 = Bits8 0;
        params.UCA1CTL0// Control Register 0 = IUSCI_A1_SPI.UCxCTL0_t {
            UCCKPH: IUSCI_SPI.UCCKPH_OFF,
            UCCKPL: IUSCI_SPI.UCCKPL_OFF,
            UCMSB: IUSCI.UCMSB_OFF,
            UC7BIT: IUSCI.UC7BIT_OFF,
            UCMST: IUSCI_SPI.UCMST_OFF,
            UCMODE: IUSCI.UCMODE_0,
            UCSYNC: IUSCI.UCSYNC
        };
        params.UCA1CTL1// Control Register 1 = IUSCI_A1_SPI.UCxCTL1_t {
            UCSSEL: IUSCI_SPI.UCSSEL_0,
            UCSWRST: IUSCI.UCSWRST
        };
        params.UCA1RXBUF// Receive Buffer Register = Bits8 0;
        params.UCA1STAT// Status Register = IUSCI_A1_SPI.UCxSTAT_t {
            UCLISTEN: IUSCI.UCLISTEN_OFF,
            UCFE: IUSCI.UCFE_OFF,
            UCOE: IUSCI.UCOE_OFF,
            UCBUSY: IUSCI.UCBUSY
        };
        params.UCA1TXBUF// Transmit Buffer Register = Bits8 0;
        params.UCLKHz// Stores the UCLK external clock frequency in float = Float 1000000;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = USCI_A1_SPI_2xx.ForceSetDefaultRegister_t[] [
            {
                register: "UCA1CTL0",
                regForceSet: false
            },
            {
                register: "UCA1CTL1",
                regForceSet: false
            },
            {
                register: "UCA1BR0",
                regForceSet: false
            },
            {
                register: "UCA1BR1",
                regForceSet: false
            },
            {
                register: "UCA1STAT",
                regForceSet: false
            },
            {
                register: "UCA1RXBUF",
                regForceSet: false
            },
            {
                register: "UCA1TXBUF",
                regForceSet: false
            },
            {
                register: "UC1IE",
                regForceSet: false
            }
        ];
        params.interruptSource// USCI_A1 UART interrupt enables = USCI_A1_SPI_2xx.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = USCI_A1_SPI_2xx.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getUCxxBR0// Returns UCxxBR0 register value based on which module() returns Bits8
     inst.getUCxxBR1// Returns UCxxBR1 register value based on which module() returns Bits8
     inst.getUCxxRXIE// Gets UCxxRXIE bit() returns Bool
     inst.getUCxxTXIE// Gets UCxxTXIE bit() returns Bool
     inst.setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value) returns Void
     inst.setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value) returns Void
     inst.setUCxxRXIE// Sets UCxxRXIE bit(Bool set) returns Bool
     inst.setUCxxTXIE// Sets UCxxTXIE bit(Bool set) returns Bool
enum USCI_A1_SPI_2xx.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UC7BIT_t
    const USCI_A1_SPI_2xx.UC7BIT_OFF;
    // 8-bit
    const USCI_A1_SPI_2xx.UC7BIT;
    // 7-bit
enum USCI_A1_SPI_2xx.UCA1RXIE_t
index URL

USCI_A1 receive interrupt enable

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCA1RXIE_t
    const USCI_A1_SPI_2xx.UCA1RXIE_OFF;
    // Interrupt disabled
    const USCI_A1_SPI_2xx.UCA1RXIE;
    // Interrupt enabled
enum USCI_A1_SPI_2xx.UCA1TXIE_t
index URL

USCI_A1 transmit interrupt enable

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCA1TXIE_t
    const USCI_A1_SPI_2xx.UCA1TXIE_OFF;
    // Interrupt disabled
    const USCI_A1_SPI_2xx.UCA1TXIE;
    // Interrupt enabled
enum USCI_A1_SPI_2xx.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCADDR_t
    const USCI_A1_SPI_2xx.UCADDR_OFF;
    // Received character is data
    const USCI_A1_SPI_2xx.UCADDR;
    // Received character is an address
enum USCI_A1_SPI_2xx.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCBRKIE_t
    const USCI_A1_SPI_2xx.UCBRKIE_OFF;
    // Received break characters do not set UCAxRXIFG
    const USCI_A1_SPI_2xx.UCBRKIE;
    // Received break characters set UCAxRXIFG
enum USCI_A1_SPI_2xx.UCBRK_t
index URL

Break detect flag

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCBRK_t
    const USCI_A1_SPI_2xx.UCBRK_OFF;
    // No break condition
    const USCI_A1_SPI_2xx.UCBRK;
    // Break condition occurred
enum USCI_A1_SPI_2xx.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCBUSY_t
    const USCI_A1_SPI_2xx.UCBUSY_OFF;
    // USCI inactive
    const USCI_A1_SPI_2xx.UCBUSY;
    // USCI transmitting or receiving
enum USCI_A1_SPI_2xx.UCCKPH_t
index URL

Clock phase select

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCCKPH_t
    const USCI_A1_SPI_2xx.UCCKPH_OFF;
    // Data is changed on the first UCLK edge and captured on the following edge
    const USCI_A1_SPI_2xx.UCCKPH;
    // Data is captured on the first UCLK edge and changed on the following edge
enum USCI_A1_SPI_2xx.UCCKPL_t
index URL

Clock polarity select

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCCKPL_t
    const USCI_A1_SPI_2xx.UCCKPL_OFF;
    // Inactive state is low
    const USCI_A1_SPI_2xx.UCCKPL;
    // Inactive state is high
enum USCI_A1_SPI_2xx.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCDORM_t
    const USCI_A1_SPI_2xx.UCDORM_OFF;
    // Not dormant. All received characters will set UCAxRXIFG
    const USCI_A1_SPI_2xx.UCDORM;
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
enum USCI_A1_SPI_2xx.UCFE_t
index URL

Framing error flag

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCFE_t
    const USCI_A1_SPI_2xx.UCFE_OFF;
    // 0 No error
    const USCI_A1_SPI_2xx.UCFE;
    // Character received with low stop bit
enum USCI_A1_SPI_2xx.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCIDLE_t
    const USCI_A1_SPI_2xx.UCIDLE_OFF;
    // No idle line detected
    const USCI_A1_SPI_2xx.UCIDLE;
    // Idle line detected
enum USCI_A1_SPI_2xx.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCLISTEN_t
    const USCI_A1_SPI_2xx.UCLISTEN_OFF;
    // Disabled
    const USCI_A1_SPI_2xx.UCLISTEN;
    // Enabled. UCAxTXD is internally fed back to the receiver
enum USCI_A1_SPI_2xx.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCMODE_SYNC_t
    const USCI_A1_SPI_2xx.UCMODE_0;
    // 3-Pin SPI
    const USCI_A1_SPI_2xx.UCMODE_1;
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    const USCI_A1_SPI_2xx.UCMODE_2;
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    const USCI_A1_SPI_2xx.UCMODE_3;
    // I2C Mode
enum USCI_A1_SPI_2xx.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCMSB_t
    const USCI_A1_SPI_2xx.UCMSB_OFF;
    // LSB first
    const USCI_A1_SPI_2xx.UCMSB;
    // MSB first
enum USCI_A1_SPI_2xx.UCMST_t
index URL

Master mode select

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCMST_t
    const USCI_A1_SPI_2xx.UCMST_OFF;
    // Slave mode
    const USCI_A1_SPI_2xx.UCMST;
    // Master mode
enum USCI_A1_SPI_2xx.UCOE_t
index URL

Overrun error flag

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCOE_t
    const USCI_A1_SPI_2xx.UCOE_OFF;
    // No error
    const USCI_A1_SPI_2xx.UCOE;
    // Overrun error occurred
enum USCI_A1_SPI_2xx.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCPE_t
    const USCI_A1_SPI_2xx.UCPE_OFF;
    // No error
    const USCI_A1_SPI_2xx.UCPE;
    // Character received with parity error
enum USCI_A1_SPI_2xx.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCRXEIE_t
    const USCI_A1_SPI_2xx.UCRXEIE_OFF;
    // Erroneous characters rejected and UCAxRXIFG is not set
    const USCI_A1_SPI_2xx.UCRXEIE;
    // Erroneous characters received will set UCAxRXIFG
enum USCI_A1_SPI_2xx.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCRXERR_t
    const USCI_A1_SPI_2xx.UCRXERR_OFF;
    // No receive errors detected
    const USCI_A1_SPI_2xx.UCRXERR;
    // Receive error detected
enum USCI_A1_SPI_2xx.UCSSEL_SPI_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCSSEL_SPI_t
    const USCI_A1_SPI_2xx.UCSSEL_0;
    // NA
    const USCI_A1_SPI_2xx.UCSSEL_1;
    // ACLK
    const USCI_A1_SPI_2xx.UCSSEL_2;
    // SMCLK
enum USCI_A1_SPI_2xx.UCSWRST_t
index URL

Software reset enable

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCSWRST_t
    const USCI_A1_SPI_2xx.UCSWRST_OFF;
    // Disabled. USCI reset released for operation
    const USCI_A1_SPI_2xx.UCSWRST;
    // Enabled. USCI logic held in reset state
enum USCI_A1_SPI_2xx.UCSYNC_t
index URL

Synchronous mode enable

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCSYNC_t
    const USCI_A1_SPI_2xx.UCSYNC_OFF;
    // Asynchronous mode
    const USCI_A1_SPI_2xx.UCSYNC;
    // Synchronous Mode
enum USCI_A1_SPI_2xx.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCTXADDR_t
    const USCI_A1_SPI_2xx.UCTXADDR_OFF;
    // Next frame transmitted is data
    const USCI_A1_SPI_2xx.UCTXADDR;
    // Next frame transmitted is an address
enum USCI_A1_SPI_2xx.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCscript usage meta-domain
values of type USCI_A1_SPI_2xx.UCTXBRK_t
    const USCI_A1_SPI_2xx.UCTXBRK_OFF;
    // Next frame transmitted is not a break
    const USCI_A1_SPI_2xx.UCTXBRK;
    // Next frame transmitted is a break or a break/synch
struct USCI_A1_SPI_2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new USCI_A1_SPI_2xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct USCI_A1_SPI_2xx.UC1IE_t
index URL

USCI_A1 SPI Interrupt Enable Register

XDCscript usage meta-domain
var obj = new USCI_A1_SPI_2xx.UC1IE_t;
    obj.UCA1TXIE = USCI_A1_SPI_2xx.UCA1TXIE_t ...
    // USCI_A1 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCA1RXIE = USCI_A1_SPI_2xx.UCA1RXIE_t ...
    // USCI_A1 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled
struct USCI_A1_SPI_2xx.UCxCTL0_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_SPI_2xx.UCxCTL0_t;
    obj.UCCKPH = IUSCI_SPI.UCCKPH_t ...
    // Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge
    obj.UCCKPL = IUSCI_SPI.UCCKPL_t ...
    // Clock polarity select 0 The inactive state is low 1 The inactive state is high
    obj.UCMSB = IUSCI_SPI.UCMSB_t ...
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
    obj.UC7BIT = IUSCI_SPI.UC7BIT_t ...
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
    obj.UCMST = IUSCI_SPI.UCMST_t ...
    // Master mode select 0 Slave mode 1 Master mode
    obj.UCMODE = IUSCI_SPI.UCMODE_SYNC_t ...
    // USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode
    obj.UCSYNC = IUSCI_SPI.UCSYNC_t ...
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
struct USCI_A1_SPI_2xx.UCxCTL1_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_SPI_2xx.UCxCTL1_t;
    obj.UCSSEL = IUSCI_SPI.UCSSEL_SPI_t ...
    // USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK
    obj.UCSWRST = IUSCI_SPI.UCSWRST_t ...
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
struct USCI_A1_SPI_2xx.UCxSTAT_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_SPI_2xx.UCxSTAT_t;
    obj.UCLISTEN = IUSCI_SPI.UCLISTEN_t ...
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
    obj.UCFE = IUSCI_SPI.UCFE_t ...
    // Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred
    obj.UCOE = IUSCI_SPI.UCOE_t ...
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
    obj.UCBUSY = IUSCI_SPI.UCBUSY_t ...
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
struct USCI_A1_SPI_2xx.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new USCI_A1_SPI_2xx.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
USCI_A1_SPI_2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
USCI_A1_SPI_2xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
USCI_A1_SPI_2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
USCI_A1_SPI_2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
// Instance config-params object
    params.UC1IE = USCI_A1_SPI_2xx.UC1IE_t {
    // USCI_A1 Interrupt Enable Register
        UCA1TXIE: USCI_A1_SPI_2xx.UCA1TXIE_OFF,
        UCA1RXIE: USCI_A1_SPI_2xx.UCA1RXIE_OFF
    };
    params.UCA1BR0 = Bits8 0;
    // Bit Rate Control Register 0
    params.UCA1BR1 = Bits8 0;
    // Bit Rate Control Register 1
    params.UCA1CTL0 = IUSCI_A1_SPI.UCxCTL0_t {
    // Control Register 0
        UCCKPH: IUSCI_SPI.UCCKPH_OFF,
        UCCKPL: IUSCI_SPI.UCCKPL_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCMST: IUSCI_SPI.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    params.UCA1CTL1 = IUSCI_A1_SPI.UCxCTL1_t {
    // Control Register 1
        UCSSEL: IUSCI_SPI.UCSSEL_0,
        UCSWRST: IUSCI.UCSWRST
    };
    params.UCA1RXBUF = Bits8 0;
    // Receive Buffer Register
    params.UCA1STAT = IUSCI_A1_SPI.UCxSTAT_t {
    // Status Register
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    params.UCA1TXBUF = Bits8 0;
    // Transmit Buffer Register
    params.UCLKHz = Float 1000000;
    // Stores the UCLK external clock frequency in float
    params.forceSetDefaultRegister = USCI_A1_SPI_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "UCA1CTL0",
            regForceSet: false
        },
        {
            register: "UCA1CTL1",
            regForceSet: false
        },
        {
            register: "UCA1BR0",
            regForceSet: false
        },
        {
            register: "UCA1BR1",
            regForceSet: false
        },
        {
            register: "UCA1STAT",
            regForceSet: false
        },
        {
            register: "UCA1RXBUF",
            regForceSet: false
        },
        {
            register: "UCA1TXBUF",
            regForceSet: false
        },
        {
            register: "UC1IE",
            regForceSet: false
        }
    ];
    params.interruptSource = USCI_A1_SPI_2xx.regIntVect_t[2] undefined;
    // USCI_A1 UART interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config USCI_A1_SPI_2xx.UC1IE // instance
index URL

USCI_A1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.UC1IE = USCI_A1_SPI_2xx.UC1IE_t {
    UCA1TXIE: USCI_A1_SPI_2xx.UCA1TXIE_OFF,
    UCA1RXIE: USCI_A1_SPI_2xx.UCA1RXIE_OFF
};
config USCI_A1_SPI_2xx.UCA1BR0 // instance
index URL

Bit Rate Control Register 0

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.UCA1BR0 = Bits8 0;
config USCI_A1_SPI_2xx.UCA1BR1 // instance
index URL

Bit Rate Control Register 1

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.UCA1BR1 = Bits8 0;
config USCI_A1_SPI_2xx.UCA1CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.UCA1CTL0 = IUSCI_A1_SPI.UCxCTL0_t {
    UCCKPH: IUSCI_SPI.UCCKPH_OFF,
    UCCKPL: IUSCI_SPI.UCCKPL_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCMST: IUSCI_SPI.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config USCI_A1_SPI_2xx.UCA1CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.UCA1CTL1 = IUSCI_A1_SPI.UCxCTL1_t {
    UCSSEL: IUSCI_SPI.UCSSEL_0,
    UCSWRST: IUSCI.UCSWRST
};
config USCI_A1_SPI_2xx.UCA1RXBUF // instance
index URL

Receive Buffer Register

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.UCA1RXBUF = Bits8 0;
config USCI_A1_SPI_2xx.UCA1STAT // instance
index URL

Status Register

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.UCA1STAT = IUSCI_A1_SPI.UCxSTAT_t {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config USCI_A1_SPI_2xx.UCA1TXBUF // instance
index URL

Transmit Buffer Register

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.UCA1TXBUF = Bits8 0;
config USCI_A1_SPI_2xx.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.UCLKHz = Float 1000000;
config USCI_A1_SPI_2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
const params.forceSetDefaultRegister = USCI_A1_SPI_2xx.ForceSetDefaultRegister_t[] [
    {
        register: "UCA1CTL0",
        regForceSet: false
    },
    {
        register: "UCA1CTL1",
        regForceSet: false
    },
    {
        register: "UCA1BR0",
        regForceSet: false
    },
    {
        register: "UCA1BR1",
        regForceSet: false
    },
    {
        register: "UCA1STAT",
        regForceSet: false
    },
    {
        register: "UCA1RXBUF",
        regForceSet: false
    },
    {
        register: "UCA1TXBUF",
        regForceSet: false
    },
    {
        register: "UC1IE",
        regForceSet: false
    }
];
config USCI_A1_SPI_2xx.interruptSource // instance
index URL

USCI_A1 UART interrupt enables

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.interruptSource = USCI_A1_SPI_2xx.regIntVect_t[2] undefined;
config USCI_A1_SPI_2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config USCI_A1_SPI_2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new USCI_A1_SPI_2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = USCI_A1_SPI_2xx.create(IClock.Instance clock, params);
// Create an instance-object
USCI_A1_SPI_2xx.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR0() returns Bits8
SEE
getUCxxBR0
USCI_A1_SPI_2xx.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR1() returns Bits8
SEE
getUCxxBR1
USCI_A1_SPI_2xx.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCscript usage meta-domain
inst.getUCxxRXIE() returns Bool
SEE
getUCxxRXIE
USCI_A1_SPI_2xx.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCscript usage meta-domain
inst.getUCxxTXIE() returns Bool
SEE
getUCxxTXIE
USCI_A1_SPI_2xx.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR0(Bits8 value) returns Void
SEE
setUCxxBR0
USCI_A1_SPI_2xx.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR1(Bits8 value) returns Void
SEE
setUCxxBR1
USCI_A1_SPI_2xx.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCscript usage meta-domain
inst.setUCxxRXIE(Bool set) returns Bool
SEE
setUCxxRXIE
USCI_A1_SPI_2xx.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCscript usage meta-domain
inst.setUCxxTXIE(Bool set) returns Bool
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:44 GMT


module ti.catalog.msp430.peripherals.communication.USCI_A1_SPI_2xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Universal Serial Communication Interface A1 SPI 2xx
    16     */
    17    metaonly module USCI_A1_SPI_2xx inherits IUSCI_A1_SPI {
    18        /*
    19         *  ======== create ========
    20         */
    21        create(IClock.Instance clock);
    22
    23        /*! USCI_A1 transmit interrupt enable */
    24        enum UCA1TXIE_t {
    25            UCA1TXIE_OFF = 0x00,    /*! Interrupt disabled */
    26            UCA1TXIE = 0x02         /*! Interrupt enabled */
    27        };
    28
    29        /*! USCI_A1 receive interrupt enable */
    30        enum UCA1RXIE_t {
    31            UCA1RXIE_OFF = 0x00,     /*! Interrupt disabled */
    32            UCA1RXIE = 0x01          /*! Interrupt enabled */
    33        };
    34
    35        /*! USCI_A1 SPI Interrupt Enable Register */
    36        struct UC1IE_t {
    37            UCA1TXIE_t  UCA1TXIE;   /*! USCI_A1 transmit interrupt enable
    38                                     *  0  Interrupt disabled
    39                                     *  1  Interrupt enabled */
    40            UCA1RXIE_t  UCA1RXIE;   /*! USCI_A1 receive interrupt enable
    41                                     *  0  Interrupt disabled
    42                                     *  1  Interrupt enabled */
    43        }
    44
    45    instance:
    46        /*! @_nodoc */
    47        config IClock.Instance clock;
    48
    49        /*! USCI_A1 Interrupt Enable Register */
    50        config UC1IE_t UC1IE = {
    51            UCA1TXIE    : UCA1TXIE_OFF,
    52            UCA1RXIE    : UCA1RXIE_OFF
    53        };
    54
    55        /*! USCI_A1 UART interrupt enables */
    56        config regIntVect_t interruptSource[2];
    57
    58        /*! Determine if each Register needs to be forced set or not */
    59        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    60        [
    61            { register : "UCA1CTL0"   , regForceSet : false },
    62            { register : "UCA1CTL1"   , regForceSet : false },
    63            { register : "UCA1BR0"    , regForceSet : false },
    64            { register : "UCA1BR1"    , regForceSet : false },
    65            { register : "UCA1STAT"   , regForceSet : false },
    66            { register : "UCA1RXBUF"  , regForceSet : false },
    67            { register : "UCA1TXBUF"  , regForceSet : false },
    68            { register : "UC1IE"      , regForceSet : false }
    69        ];
    70    }


module ti.catalog.msp430.peripherals.communication.USCI_A1_UART_2xx

metaonly module ti.catalog.msp430.peripherals.communication.USCI_A1_UART_2xx
index URL

Universal Serial Communication Interface

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/USCI_A1_UART_2xx.xdc
var USCI_A1_UART_2xx = xdc.useModule('ti.catalog.msp430.peripherals.communication.USCI_A1_UART_2xx');
module-wide constants & types
    values of type USCI_A1_UART_2xx.UC7BIT_t// Character length. Selects 7-bit or 8-bit character length
        const USCI_A1_UART_2xx.UC7BIT_OFF// 8-bit;
        const USCI_A1_UART_2xx.UC7BIT// 7-bit;
    values of type USCI_A1_UART_2xx.UCA1RXIE_t// USCI_A1 receive interrupt enable
        const USCI_A1_UART_2xx.UCA1RXIE_OFF// Interrupt disabled;
        const USCI_A1_UART_2xx.UCA1RXIE// Interrupt enabled;
    values of type USCI_A1_UART_2xx.UCA1TXIE_t// USCI_A1 transmit interrupt enable
        const USCI_A1_UART_2xx.UCA1TXIE_OFF// Interrupt disabled;
        const USCI_A1_UART_2xx.UCA1TXIE// Interrupt enabled;
    values of type USCI_A1_UART_2xx.UCABDEN_t// Automatic baud rate detect enable
        const USCI_A1_UART_2xx.UCABDEN_OFF// Baud rate detection disabled. Length of break and synch field is not measured;
        const USCI_A1_UART_2xx.UCABDEN// Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly;
    values of type USCI_A1_UART_2xx.UCADDR_t// Address received in address-bit multiprocessor mode
        const USCI_A1_UART_2xx.UCADDR_OFF// Received character is data;
        const USCI_A1_UART_2xx.UCADDR// Received character is an address;
    values of type USCI_A1_UART_2xx.UCBRF_t// First modulation stage select
        const USCI_A1_UART_2xx.UCBRF_0// First stage 0;
        const USCI_A1_UART_2xx.UCBRF_1// First stage 1;
        const USCI_A1_UART_2xx.UCBRF_2// First stage 2;
        const USCI_A1_UART_2xx.UCBRF_3// First stage 3;
        const USCI_A1_UART_2xx.UCBRF_4// First stage 4;
        const USCI_A1_UART_2xx.UCBRF_5// First stage 5;
        const USCI_A1_UART_2xx.UCBRF_6// First stage 6;
        const USCI_A1_UART_2xx.UCBRF_7// First stage 7;
        const USCI_A1_UART_2xx.UCBRF_8// First stage 8;
        const USCI_A1_UART_2xx.UCBRF_9// First stage 9;
        const USCI_A1_UART_2xx.UCBRF_10// First stage 10;
        const USCI_A1_UART_2xx.UCBRF_11// First stage 11;
        const USCI_A1_UART_2xx.UCBRF_12// First stage 12;
        const USCI_A1_UART_2xx.UCBRF_13// First stage 13;
        const USCI_A1_UART_2xx.UCBRF_14// First stage 14;
        const USCI_A1_UART_2xx.UCBRF_15// First stage 15;
    values of type USCI_A1_UART_2xx.UCBRKIE_t// Receive break character interrupt-enable
        const USCI_A1_UART_2xx.UCBRKIE_OFF// Received break characters do not set UCAxRXIFG;
        const USCI_A1_UART_2xx.UCBRKIE// Received break characters set UCAxRXIFG;
    values of type USCI_A1_UART_2xx.UCBRK_t// Break detect flag
        const USCI_A1_UART_2xx.UCBRK_OFF// No break condition;
        const USCI_A1_UART_2xx.UCBRK// Break condition occurred;
    values of type USCI_A1_UART_2xx.UCBRS_t// Second modulation stage select
        const USCI_A1_UART_2xx.UCBRS_0// Second stage 0;
        const USCI_A1_UART_2xx.UCBRS_1// Second stage 1;
        const USCI_A1_UART_2xx.UCBRS_2// Second stage 2;
        const USCI_A1_UART_2xx.UCBRS_3// Second stage 3;
        const USCI_A1_UART_2xx.UCBRS_4// Second stage 4;
        const USCI_A1_UART_2xx.UCBRS_5// Second stage 5;
        const USCI_A1_UART_2xx.UCBRS_6// Second stage 6;
        const USCI_A1_UART_2xx.UCBRS_7// Second stage 7;
    values of type USCI_A1_UART_2xx.UCBTOE_t// Break time out error
        const USCI_A1_UART_2xx.UCBTOE_OFF// No error;
        const USCI_A1_UART_2xx.UCBTOE// Length of break field exceeded 22 bit times;
    values of type USCI_A1_UART_2xx.UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress
        const USCI_A1_UART_2xx.UCBUSY_OFF// USCI inactive;
        const USCI_A1_UART_2xx.UCBUSY// USCI transmitting or receiving;
    values of type USCI_A1_UART_2xx.UCDELIM0_t// Break/synch delimiter length bit 0
        const USCI_A1_UART_2xx.UCDELIM0_OFF// Break Sync Delimiter bit 0 Off;
        const USCI_A1_UART_2xx.UCDELIM0// Break Sync Delimiter bit 0 On;
    values of type USCI_A1_UART_2xx.UCDELIM1_t// Break/synch delimiter length bit 1
        const USCI_A1_UART_2xx.UCDELIM1_OFF// Break Sync Delimiter bit 1 Off;
        const USCI_A1_UART_2xx.UCDELIM1// Break Sync Delimiter bit 1 On;
    values of type USCI_A1_UART_2xx.UCDORM_t// Dormant. Puts USCI into sleep mode
        const USCI_A1_UART_2xx.UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG;
        const USCI_A1_UART_2xx.UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
    values of type USCI_A1_UART_2xx.UCFE_t// Framing error flag
        const USCI_A1_UART_2xx.UCFE_OFF// 0 No error;
        const USCI_A1_UART_2xx.UCFE// Character received with low stop bit;
    values of type USCI_A1_UART_2xx.UCIDLE_t// Idle line detected in idle-line multiprocessor mode
        const USCI_A1_UART_2xx.UCIDLE_OFF// No idle line detected;
        const USCI_A1_UART_2xx.UCIDLE// Idle line detected;
    values of type USCI_A1_UART_2xx.UCIREN_t// IrDA encoder/decoder enable
        const USCI_A1_UART_2xx.UCIREN_OFF// IrDA encoder/decoder disabled;
        const USCI_A1_UART_2xx.UCIREN// IrDA encoder/decoder enabled;
    values of type USCI_A1_UART_2xx.UCIRRXFE_t// IrDA receive filter enabled
        const USCI_A1_UART_2xx.UCIRRXFE_OFF// Receive filter disabled;
        const USCI_A1_UART_2xx.UCIRRXFE// Receive filter enabled;
    values of type USCI_A1_UART_2xx.UCIRRXFL0_t// IRDA Receive Filter Length Bit 0
        const USCI_A1_UART_2xx.UCIRRXFL0_OFF// Bit 0 OFF;
        const USCI_A1_UART_2xx.UCIRRXFL0// Bit 0 ON;
    values of type USCI_A1_UART_2xx.UCIRRXFL1_t// IRDA Receive Filter Length Bit 1
        const USCI_A1_UART_2xx.UCIRRXFL1_OFF// Bit 1 OFF;
        const USCI_A1_UART_2xx.UCIRRXFL1// Bit 1 ON;
    values of type USCI_A1_UART_2xx.UCIRRXFL2_t// IRDA Receive Filter Length Bit 2
        const USCI_A1_UART_2xx.UCIRRXFL2_OFF// Bit 2 OFF;
        const USCI_A1_UART_2xx.UCIRRXFL2// Bit 2 ON;
    values of type USCI_A1_UART_2xx.UCIRRXFL3_t// IRDA Receive Filter Length Bit 3
        const USCI_A1_UART_2xx.UCIRRXFL3_OFF// Bit 3 OFF;
        const USCI_A1_UART_2xx.UCIRRXFL3// Bit 3 ON;
    values of type USCI_A1_UART_2xx.UCIRRXFL4_t// IRDA Receive Filter Length Bit 4
        const USCI_A1_UART_2xx.UCIRRXFL4_OFF// Bit 4 OFF;
        const USCI_A1_UART_2xx.UCIRRXFL4// Bit 4 ON;
    values of type USCI_A1_UART_2xx.UCIRRXFL5_t// IRDA Receive Filter Length Bit 5
        const USCI_A1_UART_2xx.UCIRRXFL5_OFF// Bit 5 OFF;
        const USCI_A1_UART_2xx.UCIRRXFL5// Bit 5 ON;
    values of type USCI_A1_UART_2xx.UCIRRXPL_t// IrDA receive input UCAxRXD polarity
        const USCI_A1_UART_2xx.UCIRRXPL_OFF// IrDA transceiver delivers a high pulse when a light pulse is seen;
        const USCI_A1_UART_2xx.UCIRRXPL// IrDA transceiver delivers a low pulse when a light pulse is seen;
    values of type USCI_A1_UART_2xx.UCIRTXCLK_t// IrDA transmit pulse clock select
        const USCI_A1_UART_2xx.UCIRTXCLK_OFF// BRCLK;
        const USCI_A1_UART_2xx.UCIRTXCLK// BITCLK16 when UCOS16 = 1. Otherwise, BRCLK;
    values of type USCI_A1_UART_2xx.UCIRTXPL0_t// IRDA Transmit Pulse Length Bit 0
        const USCI_A1_UART_2xx.UCIRTXPL0_OFF// Bit 0 OFF;
        const USCI_A1_UART_2xx.UCIRTXPL0// Bit 0 ON;
    values of type USCI_A1_UART_2xx.UCIRTXPL1_t// IRDA Transmit Pulse Length Bit 1
        const USCI_A1_UART_2xx.UCIRTXPL1_OFF// Bit 1 OFF;
        const USCI_A1_UART_2xx.UCIRTXPL1// Bit 1 ON;
    values of type USCI_A1_UART_2xx.UCIRTXPL2_t// IRDA Transmit Pulse Length Bit 2
        const USCI_A1_UART_2xx.UCIRTXPL2_OFF// Bit 2 OFF;
        const USCI_A1_UART_2xx.UCIRTXPL2// Bit 2 ON;
    values of type USCI_A1_UART_2xx.UCIRTXPL3_t// IRDA Transmit Pulse Length Bit 3
        const USCI_A1_UART_2xx.UCIRTXPL3_OFF// Bit 3 OFF;
        const USCI_A1_UART_2xx.UCIRTXPL3// Bit 3 ON;
    values of type USCI_A1_UART_2xx.UCIRTXPL4_t// IRDA Transmit Pulse Length Bit 4
        const USCI_A1_UART_2xx.UCIRTXPL4_OFF// Bit 4 OFF;
        const USCI_A1_UART_2xx.UCIRTXPL4// Bit 4 ON;
    values of type USCI_A1_UART_2xx.UCIRTXPL5_t// IRDA Transmit Pulse Length Bit 5
        const USCI_A1_UART_2xx.UCIRTXPL5_OFF// Bit 5 OFF;
        const USCI_A1_UART_2xx.UCIRTXPL5// Bit 5 ON;
    values of type USCI_A1_UART_2xx.UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode
        const USCI_A1_UART_2xx.UCLISTEN_OFF// Disabled;
        const USCI_A1_UART_2xx.UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver;
    values of type USCI_A1_UART_2xx.UCMODE_ASYNC_t// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0
        const USCI_A1_UART_2xx.UCMODE_0// UART Mode;
        const USCI_A1_UART_2xx.UCMODE_1// Idle-Line Multiprocessor Mode;
        const USCI_A1_UART_2xx.UCMODE_2// Address-Bit Multiprocessor Mode;
        const USCI_A1_UART_2xx.UCMODE_3// UART Mode with automatic baud rate detection;
    values of type USCI_A1_UART_2xx.UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1
        const USCI_A1_UART_2xx.UCMODE_0// 3-Pin SPI;
        const USCI_A1_UART_2xx.UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1;
        const USCI_A1_UART_2xx.UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0;
        const USCI_A1_UART_2xx.UCMODE_3// I2C Mode;
    values of type USCI_A1_UART_2xx.UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register
        const USCI_A1_UART_2xx.UCMSB_OFF// LSB first;
        const USCI_A1_UART_2xx.UCMSB// MSB first;
    values of type USCI_A1_UART_2xx.UCOE_t// Overrun error flag
        const USCI_A1_UART_2xx.UCOE_OFF// No error;
        const USCI_A1_UART_2xx.UCOE// Overrun error occurred;
    values of type USCI_A1_UART_2xx.UCOS16_t// Oversampling mode enabled
        const USCI_A1_UART_2xx.UCOS16_OFF// Disabled;
        const USCI_A1_UART_2xx.UCOS16// Enabled;
    values of type USCI_A1_UART_2xx.UCPAR_t// Parity select. UCPAR is not used when parity is disabled
        const USCI_A1_UART_2xx.UCPAR_OFF// Odd parity;
        const USCI_A1_UART_2xx.UCPAR// Even parity;
    values of type USCI_A1_UART_2xx.UCPEN_t// Parity enable
        const USCI_A1_UART_2xx.UCPEN_OFF// Parity Disabled;
        const USCI_A1_UART_2xx.UCPEN// Parity Enabled;
    values of type USCI_A1_UART_2xx.UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0
        const USCI_A1_UART_2xx.UCPE_OFF// No error;
        const USCI_A1_UART_2xx.UCPE// Character received with parity error;
    values of type USCI_A1_UART_2xx.UCRXEIE_t// Receive erroneous-character interrupt-enable
        const USCI_A1_UART_2xx.UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set;
        const USCI_A1_UART_2xx.UCRXEIE// Erroneous characters received will set UCAxRXIFG;
    values of type USCI_A1_UART_2xx.UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read
        const USCI_A1_UART_2xx.UCRXERR_OFF// No receive errors detected;
        const USCI_A1_UART_2xx.UCRXERR// Receive error detected;
    values of type USCI_A1_UART_2xx.UCSPB_t// Stop bit select. Number of stop bits
        const USCI_A1_UART_2xx.UCSPB_OFF// One stop bit;
        const USCI_A1_UART_2xx.UCSPB// Two stop bits;
    values of type USCI_A1_UART_2xx.UCSSEL_UART_t// USCI clock source select. These bits select the BRCLK source clock
        const USCI_A1_UART_2xx.UCSSEL_0// UCLK;
        const USCI_A1_UART_2xx.UCSSEL_1// ACLK;
        const USCI_A1_UART_2xx.UCSSEL_2// SMCLK;
    values of type USCI_A1_UART_2xx.UCSTOE_t// Synch field time out error
        const USCI_A1_UART_2xx.UCSTOE_OFF// No error;
        const USCI_A1_UART_2xx.UCSTOE// Length of synch field exceeded measurable time;
    values of type USCI_A1_UART_2xx.UCSWRST_t// Software reset enable
        const USCI_A1_UART_2xx.UCSWRST_OFF// Disabled. USCI reset released for operation;
        const USCI_A1_UART_2xx.UCSWRST// Enabled. USCI logic held in reset state;
    values of type USCI_A1_UART_2xx.UCSYNC_t// Synchronous mode enable
        const USCI_A1_UART_2xx.UCSYNC_OFF// Asynchronous mode;
        const USCI_A1_UART_2xx.UCSYNC// Synchronous Mode;
    values of type USCI_A1_UART_2xx.UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode
        const USCI_A1_UART_2xx.UCTXADDR_OFF// Next frame transmitted is data;
        const USCI_A1_UART_2xx.UCTXADDR// Next frame transmitted is an address;
    values of type USCI_A1_UART_2xx.UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer
        const USCI_A1_UART_2xx.UCTXBRK_OFF// Next frame transmitted is not a break;
        const USCI_A1_UART_2xx.UCTXBRK// Next frame transmitted is a break or a break/synch;
    var obj = new USCI_A1_UART_2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new USCI_A1_UART_2xx.UC1IE_t// USCI_Ax UART Interrupt Enable Register;
        obj.UCA1TXIE// USCI_A1 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_A1_UART_2xx.UCA1TXIE_t ...
        obj.UCA1RXIE// USCI_A1 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_A1_UART_2xx.UCA1RXIE_t ...
    var obj = new USCI_A1_UART_2xx.UCxABCTL_t// ;
        obj.UCDELIM1// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times = IUSCI_UART.UCDELIM1_t ...
        obj.UCDELIM0// Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times = IUSCI_UART.UCDELIM0_t ...
        obj.UCSTOE// Synch field time out error 0 No error 1 Length of synch field exceeded measurable time = IUSCI_UART.UCSTOE_t ...
        obj.UCBTOE// Break time out error 0 No error 1 Length of break field exceeded 22 bit times = IUSCI_UART.UCBTOE_t ...
        obj.UCABDEN// Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly = IUSCI_UART.UCABDEN_t ...
    var obj = new USCI_A1_UART_2xx.UCxCTL0_t// ;
        obj.UCPEN// Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation = IUSCI_UART.UCPEN_t ...
        obj.UCPAR// Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity = IUSCI_UART.UCPAR_t ...
        obj.UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first = IUSCI_UART.UCMSB_t ...
        obj.UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data = IUSCI_UART.UC7BIT_t ...
        obj.UCSPB// Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits = IUSCI_UART.UCSPB_t ...
        obj.UCMODE// USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection = IUSCI_UART.UCMODE_ASYNC_t ...
        obj.UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode = IUSCI_UART.UCSYNC_t ...
    var obj = new USCI_A1_UART_2xx.UCxCTL1_t// ;
        obj.UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK = IUSCI_UART.UCSSEL_UART_t ...
        obj.UCRXEIE// Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG = IUSCI_UART.UCRXEIE_t ...
        obj.UCBRKIE// Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG = IUSCI_UART.UCBRKIE_t ...
        obj.UCDORM// Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG = IUSCI_UART.UCDORM_t ...
        obj.UCTXADDR// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address = IUSCI_UART.UCTXADDR_t ...
        obj.UCTXBRK// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch = IUSCI_UART.UCTXBRK_t ...
        obj.UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state = IUSCI_UART.UCSWRST_t ...
    var obj = new USCI_A1_UART_2xx.UCxIRRCTL_t// ;
        obj.UCIRRXFL5// IRDA Receive Filter Length Bit 5 = IUSCI_UART.UCIRRXFL5_t ...
        obj.UCIRRXFL4// IRDA Receive Filter Length Bit 4 = IUSCI_UART.UCIRRXFL4_t ...
        obj.UCIRRXFL3// IRDA Receive Filter Length Bit 3 = IUSCI_UART.UCIRRXFL3_t ...
        obj.UCIRRXFL2// IRDA Receive Filter Length Bit 2 = IUSCI_UART.UCIRRXFL2_t ...
        obj.UCIRRXFL1// IRDA Receive Filter Length Bit 1 = IUSCI_UART.UCIRRXFL1_t ...
        obj.UCIRRXFL0// IRDA Receive Filter Length Bit 0 = IUSCI_UART.UCIRRXFL0_t ...
        obj.UCIRRXPL// IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen = IUSCI_UART.UCIRRXPL_t ...
        obj.UCIRRXFE// IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled = IUSCI_UART.UCIRRXFE_t ...
    var obj = new USCI_A1_UART_2xx.UCxIRTCTL_t// ;
        obj.UCIRTXPL5// IRDA Transmit Pulse Length Bit 5 = IUSCI_UART.UCIRTXPL5_t ...
        obj.UCIRTXPL4// IRDA Transmit Pulse Length Bit 4 = IUSCI_UART.UCIRTXPL4_t ...
        obj.UCIRTXPL3// IRDA Transmit Pulse Length Bit 3 = IUSCI_UART.UCIRTXPL3_t ...
        obj.UCIRTXPL2// IRDA Transmit Pulse Length Bit 2 = IUSCI_UART.UCIRTXPL2_t ...
        obj.UCIRTXPL1// IRDA Transmit Pulse Length Bit 1 = IUSCI_UART.UCIRTXPL1_t ...
        obj.UCIRTXPL0// IRDA Transmit Pulse Length Bit 0 = IUSCI_UART.UCIRTXPL0_t ...
        obj.UCIRTXCLK// IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK = IUSCI_UART.UCIRTXCLK_t ...
        obj.UCIREN// IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled = IUSCI_UART.UCIREN_t ...
    var obj = new USCI_A1_UART_2xx.UCxMCTL_t// ;
        obj.UCBRF// First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0 = IUSCI_UART.UCBRF_t ...
        obj.UCBRS// Second modulation stage select. These bits determine the modulation pattern for BITCLK = IUSCI_UART.UCBRS_t ...
        obj.UCOS16// Oversampling mode enabled 0 Disabled 1 Enabled = IUSCI_UART.UCOS16_t ...
    var obj = new USCI_A1_UART_2xx.UCxSTAT_t// ;
        obj.UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver = IUSCI_UART.UCLISTEN_t ...
        obj.UCFE// Framing error flag 0 No error 1 Character received with low stop bit = IUSCI_UART.UCFE_t ...
        obj.UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred = IUSCI_UART.UCOE_t ...
        obj.UCPE// Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error = IUSCI_UART.UCPE_t ...
        obj.UCBRK// Break detect flag 0 No break condition 1 Break condition occurred = IUSCI_UART.UCBRK_t ...
        obj.UCRXERR// Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected = IUSCI_UART.UCRXERR_t ...
        obj.UCADDR// Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address = IUSCI_UART.UCADDR_t ...
        obj.UCIDLE// Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected = IUSCI_UART.UCIDLE_t ...
        obj.UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving = IUSCI_UART.UCBUSY_t ...
    var obj = new USCI_A1_UART_2xx.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     USCI_A1_UART_2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     USCI_A1_UART_2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new USCI_A1_UART_2xx.Params// Instance config-params object;
        params.UC1IE// USCI_A1 Interrupt Enable Register = USCI_A1_UART_2xx.UC1IE_t {
            UCA1TXIE: USCI_A1_UART_2xx.UCA1TXIE_OFF,
            UCA1RXIE: USCI_A1_UART_2xx.UCA1RXIE_OFF
        };
        params.UCA1ABCTL// Auto Baud Rate Control Register = IUSCI_A1_UART.UCxABCTL_t {
            UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
            UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
            UCSTOE: IUSCI_UART.UCSTOE_OFF,
            UCBTOE: IUSCI_UART.UCBTOE_OFF,
            UCABDEN: IUSCI_UART.UCABDEN_OFF
        };
        params.UCA1BR0// Baud rate control register 0 = Bits8 0;
        params.UCA1BR1// Baud rate control register 1 = Bits8 0;
        params.UCA1CTL0// Control Register 0 = IUSCI_A1_UART.UCxCTL0_t {
            UCPEN: IUSCI_UART.UCPEN_OFF,
            UCPAR: IUSCI_UART.UCPAR_OFF,
            UCMSB: IUSCI.UCMSB_OFF,
            UC7BIT: IUSCI.UC7BIT_OFF,
            UCSPB: IUSCI_UART.UCSPB_OFF,
            UCMODE: IUSCI_UART.UCMODE_0,
            UCSYNC: IUSCI.UCSYNC_OFF
        };
        params.UCA1CTL1// Control Register 1 = IUSCI_A1_UART.UCxCTL1_t {
            UCSSEL: IUSCI_UART.UCSSEL_0,
            UCRXEIE: IUSCI.UCRXEIE_OFF,
            UCBRKIE: IUSCI.UCBRKIE_OFF,
            UCDORM: IUSCI.UCDORM_OFF,
            UCTXADDR: IUSCI.UCTXADDR_OFF,
            UCTXBRK: IUSCI.UCTXBRK_OFF,
            UCSWRST: IUSCI.UCSWRST
        };
        params.UCA1IRRCTL// IrDA Receive Control Register = IUSCI_A1_UART.UCxIRRCTL_t {
            UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
            UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
            UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
            UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
            UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
            UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
            UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
            UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
        };
        params.UCA1IRTCTL// IrDA Transmit Control Register = IUSCI_A1_UART.UCxIRTCTL_t {
            UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
            UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
            UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
            UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
            UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
            UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
            UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
            UCIREN: IUSCI_UART.UCIREN_OFF
        };
        params.UCA1MCTL// Modulation Control Register = IUSCI_A1_UART.UCxMCTL_t {
            UCBRF: IUSCI_UART.UCBRF_0,
            UCBRS: IUSCI_UART.UCBRS_0,
            UCOS16: IUSCI_UART.UCOS16_OFF
        };
        params.UCA1RXBUF// Receive Buffer Register = Bits8 0;
        params.UCA1STAT// Status Register = IUSCI_A1_UART.UCxSTAT_t {
            UCLISTEN: IUSCI.UCLISTEN_OFF,
            UCFE: IUSCI.UCFE_OFF,
            UCOE: IUSCI.UCOE_OFF,
            UCPE: IUSCI.UCPE_OFF,
            UCBRK: IUSCI.UCBRK_OFF,
            UCRXERR: IUSCI.UCRXERR_OFF,
            UCADDR: IUSCI.UCADDR_OFF,
            UCIDLE: IUSCI.UCIDLE_OFF,
            UCBUSY: IUSCI.UCBUSY
        };
        params.UCA1TXBUF// Transmit Buffer Register = Bits8 0;
        params.UCLKHz// Stores the UCLK external clock frequency in float = Float 1000000;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = USCI_A1_UART_2xx.ForceSetDefaultRegister_t[] [
            {
                register: "UCA1CTL0",
                regForceSet: false
            },
            {
                register: "UCA1CTL1",
                regForceSet: false
            },
            {
                register: "UCA1BR0",
                regForceSet: false
            },
            {
                register: "UCA1BR1",
                regForceSet: false
            },
            {
                register: "UCA1MCTL",
                regForceSet: false
            },
            {
                register: "UCA1STAT",
                regForceSet: false
            },
            {
                register: "UCA1RXBUF",
                regForceSet: false
            },
            {
                register: "UCA1TXBUF",
                regForceSet: false
            },
            {
                register: "UCA1ABCTL",
                regForceSet: false
            },
            {
                register: "UCA1IRTCTL",
                regForceSet: false
            },
            {
                register: "UCA1IRRCTL",
                regForceSet: false
            },
            {
                register: "UC1IE",
                regForceSet: false
            }
        ];
        params.interruptSource// USCI_A1 UART interrupt enables = USCI_A1_UART_2xx.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = USCI_A1_UART_2xx.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getUCxxBR0// Returns UCxxBR0 register value based on which module() returns Bits8
     inst.getUCxxBR1// Returns UCxxBR1 register value based on which module() returns Bits8
     inst.getUCxxRXIE// Gets UCxxRXIE bit() returns Bool
     inst.getUCxxTXIE// Gets UCxxTXIE bit() returns Bool
     inst.setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value) returns Void
     inst.setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value) returns Void
     inst.setUCxxRXIE// Sets UCxxRXIE bit(Bool set) returns Bool
     inst.setUCxxTXIE// Sets UCxxTXIE bit(Bool set) returns Bool
enum USCI_A1_UART_2xx.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UC7BIT_t
    const USCI_A1_UART_2xx.UC7BIT_OFF;
    // 8-bit
    const USCI_A1_UART_2xx.UC7BIT;
    // 7-bit
enum USCI_A1_UART_2xx.UCA1RXIE_t
index URL

USCI_A1 receive interrupt enable

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCA1RXIE_t
    const USCI_A1_UART_2xx.UCA1RXIE_OFF;
    // Interrupt disabled
    const USCI_A1_UART_2xx.UCA1RXIE;
    // Interrupt enabled
enum USCI_A1_UART_2xx.UCA1TXIE_t
index URL

USCI_A1 transmit interrupt enable

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCA1TXIE_t
    const USCI_A1_UART_2xx.UCA1TXIE_OFF;
    // Interrupt disabled
    const USCI_A1_UART_2xx.UCA1TXIE;
    // Interrupt enabled
enum USCI_A1_UART_2xx.UCABDEN_t
index URL

Automatic baud rate detect enable

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCABDEN_t
    const USCI_A1_UART_2xx.UCABDEN_OFF;
    // Baud rate detection disabled. Length of break and synch field is not measured
    const USCI_A1_UART_2xx.UCABDEN;
    // Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
enum USCI_A1_UART_2xx.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCADDR_t
    const USCI_A1_UART_2xx.UCADDR_OFF;
    // Received character is data
    const USCI_A1_UART_2xx.UCADDR;
    // Received character is an address
enum USCI_A1_UART_2xx.UCBRF_t
index URL

First modulation stage select

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCBRF_t
    const USCI_A1_UART_2xx.UCBRF_0;
    // First stage 0
    const USCI_A1_UART_2xx.UCBRF_1;
    // First stage 1
    const USCI_A1_UART_2xx.UCBRF_2;
    // First stage 2
    const USCI_A1_UART_2xx.UCBRF_3;
    // First stage 3
    const USCI_A1_UART_2xx.UCBRF_4;
    // First stage 4
    const USCI_A1_UART_2xx.UCBRF_5;
    // First stage 5
    const USCI_A1_UART_2xx.UCBRF_6;
    // First stage 6
    const USCI_A1_UART_2xx.UCBRF_7;
    // First stage 7
    const USCI_A1_UART_2xx.UCBRF_8;
    // First stage 8
    const USCI_A1_UART_2xx.UCBRF_9;
    // First stage 9
    const USCI_A1_UART_2xx.UCBRF_10;
    // First stage 10
    const USCI_A1_UART_2xx.UCBRF_11;
    // First stage 11
    const USCI_A1_UART_2xx.UCBRF_12;
    // First stage 12
    const USCI_A1_UART_2xx.UCBRF_13;
    // First stage 13
    const USCI_A1_UART_2xx.UCBRF_14;
    // First stage 14
    const USCI_A1_UART_2xx.UCBRF_15;
    // First stage 15
enum USCI_A1_UART_2xx.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCBRKIE_t
    const USCI_A1_UART_2xx.UCBRKIE_OFF;
    // Received break characters do not set UCAxRXIFG
    const USCI_A1_UART_2xx.UCBRKIE;
    // Received break characters set UCAxRXIFG
enum USCI_A1_UART_2xx.UCBRK_t
index URL

Break detect flag

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCBRK_t
    const USCI_A1_UART_2xx.UCBRK_OFF;
    // No break condition
    const USCI_A1_UART_2xx.UCBRK;
    // Break condition occurred
enum USCI_A1_UART_2xx.UCBRS_t
index URL

Second modulation stage select

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCBRS_t
    const USCI_A1_UART_2xx.UCBRS_0;
    // Second stage 0
    const USCI_A1_UART_2xx.UCBRS_1;
    // Second stage 1
    const USCI_A1_UART_2xx.UCBRS_2;
    // Second stage 2
    const USCI_A1_UART_2xx.UCBRS_3;
    // Second stage 3
    const USCI_A1_UART_2xx.UCBRS_4;
    // Second stage 4
    const USCI_A1_UART_2xx.UCBRS_5;
    // Second stage 5
    const USCI_A1_UART_2xx.UCBRS_6;
    // Second stage 6
    const USCI_A1_UART_2xx.UCBRS_7;
    // Second stage 7
enum USCI_A1_UART_2xx.UCBTOE_t
index URL

Break time out error

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCBTOE_t
    const USCI_A1_UART_2xx.UCBTOE_OFF;
    // No error
    const USCI_A1_UART_2xx.UCBTOE;
    // Length of break field exceeded 22 bit times
enum USCI_A1_UART_2xx.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCBUSY_t
    const USCI_A1_UART_2xx.UCBUSY_OFF;
    // USCI inactive
    const USCI_A1_UART_2xx.UCBUSY;
    // USCI transmitting or receiving
enum USCI_A1_UART_2xx.UCDELIM0_t
index URL

Break/synch delimiter length bit 0

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCDELIM0_t
    const USCI_A1_UART_2xx.UCDELIM0_OFF;
    // Break Sync Delimiter bit 0 Off
    const USCI_A1_UART_2xx.UCDELIM0;
    // Break Sync Delimiter bit 0 On
enum USCI_A1_UART_2xx.UCDELIM1_t
index URL

Break/synch delimiter length bit 1

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCDELIM1_t
    const USCI_A1_UART_2xx.UCDELIM1_OFF;
    // Break Sync Delimiter bit 1 Off
    const USCI_A1_UART_2xx.UCDELIM1;
    // Break Sync Delimiter bit 1 On
enum USCI_A1_UART_2xx.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCDORM_t
    const USCI_A1_UART_2xx.UCDORM_OFF;
    // Not dormant. All received characters will set UCAxRXIFG
    const USCI_A1_UART_2xx.UCDORM;
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
enum USCI_A1_UART_2xx.UCFE_t
index URL

Framing error flag

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCFE_t
    const USCI_A1_UART_2xx.UCFE_OFF;
    // 0 No error
    const USCI_A1_UART_2xx.UCFE;
    // Character received with low stop bit
enum USCI_A1_UART_2xx.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIDLE_t
    const USCI_A1_UART_2xx.UCIDLE_OFF;
    // No idle line detected
    const USCI_A1_UART_2xx.UCIDLE;
    // Idle line detected
enum USCI_A1_UART_2xx.UCIREN_t
index URL

IrDA encoder/decoder enable

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIREN_t
    const USCI_A1_UART_2xx.UCIREN_OFF;
    // IrDA encoder/decoder disabled
    const USCI_A1_UART_2xx.UCIREN;
    // IrDA encoder/decoder enabled
enum USCI_A1_UART_2xx.UCIRRXFE_t
index URL

IrDA receive filter enabled

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRRXFE_t
    const USCI_A1_UART_2xx.UCIRRXFE_OFF;
    // Receive filter disabled
    const USCI_A1_UART_2xx.UCIRRXFE;
    // Receive filter enabled
enum USCI_A1_UART_2xx.UCIRRXFL0_t
index URL

IRDA Receive Filter Length Bit 0

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRRXFL0_t
    const USCI_A1_UART_2xx.UCIRRXFL0_OFF;
    // Bit 0 OFF
    const USCI_A1_UART_2xx.UCIRRXFL0;
    // Bit 0 ON
enum USCI_A1_UART_2xx.UCIRRXFL1_t
index URL

IRDA Receive Filter Length Bit 1

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRRXFL1_t
    const USCI_A1_UART_2xx.UCIRRXFL1_OFF;
    // Bit 1 OFF
    const USCI_A1_UART_2xx.UCIRRXFL1;
    // Bit 1 ON
enum USCI_A1_UART_2xx.UCIRRXFL2_t
index URL

IRDA Receive Filter Length Bit 2

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRRXFL2_t
    const USCI_A1_UART_2xx.UCIRRXFL2_OFF;
    // Bit 2 OFF
    const USCI_A1_UART_2xx.UCIRRXFL2;
    // Bit 2 ON
enum USCI_A1_UART_2xx.UCIRRXFL3_t
index URL

IRDA Receive Filter Length Bit 3

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRRXFL3_t
    const USCI_A1_UART_2xx.UCIRRXFL3_OFF;
    // Bit 3 OFF
    const USCI_A1_UART_2xx.UCIRRXFL3;
    // Bit 3 ON
enum USCI_A1_UART_2xx.UCIRRXFL4_t
index URL

IRDA Receive Filter Length Bit 4

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRRXFL4_t
    const USCI_A1_UART_2xx.UCIRRXFL4_OFF;
    // Bit 4 OFF
    const USCI_A1_UART_2xx.UCIRRXFL4;
    // Bit 4 ON
enum USCI_A1_UART_2xx.UCIRRXFL5_t
index URL

IRDA Receive Filter Length Bit 5

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRRXFL5_t
    const USCI_A1_UART_2xx.UCIRRXFL5_OFF;
    // Bit 5 OFF
    const USCI_A1_UART_2xx.UCIRRXFL5;
    // Bit 5 ON
enum USCI_A1_UART_2xx.UCIRRXPL_t
index URL

IrDA receive input UCAxRXD polarity

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRRXPL_t
    const USCI_A1_UART_2xx.UCIRRXPL_OFF;
    // IrDA transceiver delivers a high pulse when a light pulse is seen
    const USCI_A1_UART_2xx.UCIRRXPL;
    // IrDA transceiver delivers a low pulse when a light pulse is seen
enum USCI_A1_UART_2xx.UCIRTXCLK_t
index URL

IrDA transmit pulse clock select

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRTXCLK_t
    const USCI_A1_UART_2xx.UCIRTXCLK_OFF;
    // BRCLK
    const USCI_A1_UART_2xx.UCIRTXCLK;
    // BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
enum USCI_A1_UART_2xx.UCIRTXPL0_t
index URL

IRDA Transmit Pulse Length Bit 0

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRTXPL0_t
    const USCI_A1_UART_2xx.UCIRTXPL0_OFF;
    // Bit 0 OFF
    const USCI_A1_UART_2xx.UCIRTXPL0;
    // Bit 0 ON
enum USCI_A1_UART_2xx.UCIRTXPL1_t
index URL

IRDA Transmit Pulse Length Bit 1

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRTXPL1_t
    const USCI_A1_UART_2xx.UCIRTXPL1_OFF;
    // Bit 1 OFF
    const USCI_A1_UART_2xx.UCIRTXPL1;
    // Bit 1 ON
enum USCI_A1_UART_2xx.UCIRTXPL2_t
index URL

IRDA Transmit Pulse Length Bit 2

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRTXPL2_t
    const USCI_A1_UART_2xx.UCIRTXPL2_OFF;
    // Bit 2 OFF
    const USCI_A1_UART_2xx.UCIRTXPL2;
    // Bit 2 ON
enum USCI_A1_UART_2xx.UCIRTXPL3_t
index URL

IRDA Transmit Pulse Length Bit 3

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRTXPL3_t
    const USCI_A1_UART_2xx.UCIRTXPL3_OFF;
    // Bit 3 OFF
    const USCI_A1_UART_2xx.UCIRTXPL3;
    // Bit 3 ON
enum USCI_A1_UART_2xx.UCIRTXPL4_t
index URL

IRDA Transmit Pulse Length Bit 4

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRTXPL4_t
    const USCI_A1_UART_2xx.UCIRTXPL4_OFF;
    // Bit 4 OFF
    const USCI_A1_UART_2xx.UCIRTXPL4;
    // Bit 4 ON
enum USCI_A1_UART_2xx.UCIRTXPL5_t
index URL

IRDA Transmit Pulse Length Bit 5

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCIRTXPL5_t
    const USCI_A1_UART_2xx.UCIRTXPL5_OFF;
    // Bit 5 OFF
    const USCI_A1_UART_2xx.UCIRTXPL5;
    // Bit 5 ON
enum USCI_A1_UART_2xx.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCLISTEN_t
    const USCI_A1_UART_2xx.UCLISTEN_OFF;
    // Disabled
    const USCI_A1_UART_2xx.UCLISTEN;
    // Enabled. UCAxTXD is internally fed back to the receiver
enum USCI_A1_UART_2xx.UCMODE_ASYNC_t
index URL

USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCMODE_ASYNC_t
    const USCI_A1_UART_2xx.UCMODE_0;
    // UART Mode
    const USCI_A1_UART_2xx.UCMODE_1;
    // Idle-Line Multiprocessor Mode
    const USCI_A1_UART_2xx.UCMODE_2;
    // Address-Bit Multiprocessor Mode
    const USCI_A1_UART_2xx.UCMODE_3;
    // UART Mode with automatic baud rate detection
enum USCI_A1_UART_2xx.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCMODE_SYNC_t
    const USCI_A1_UART_2xx.UCMODE_0;
    // 3-Pin SPI
    const USCI_A1_UART_2xx.UCMODE_1;
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    const USCI_A1_UART_2xx.UCMODE_2;
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    const USCI_A1_UART_2xx.UCMODE_3;
    // I2C Mode
enum USCI_A1_UART_2xx.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCMSB_t
    const USCI_A1_UART_2xx.UCMSB_OFF;
    // LSB first
    const USCI_A1_UART_2xx.UCMSB;
    // MSB first
enum USCI_A1_UART_2xx.UCOE_t
index URL

Overrun error flag

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCOE_t
    const USCI_A1_UART_2xx.UCOE_OFF;
    // No error
    const USCI_A1_UART_2xx.UCOE;
    // Overrun error occurred
enum USCI_A1_UART_2xx.UCOS16_t
index URL

Oversampling mode enabled

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCOS16_t
    const USCI_A1_UART_2xx.UCOS16_OFF;
    // Disabled
    const USCI_A1_UART_2xx.UCOS16;
    // Enabled
enum USCI_A1_UART_2xx.UCPAR_t
index URL

Parity select. UCPAR is not used when parity is disabled

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCPAR_t
    const USCI_A1_UART_2xx.UCPAR_OFF;
    // Odd parity
    const USCI_A1_UART_2xx.UCPAR;
    // Even parity
enum USCI_A1_UART_2xx.UCPEN_t
index URL

Parity enable

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCPEN_t
    const USCI_A1_UART_2xx.UCPEN_OFF;
    // Parity Disabled
    const USCI_A1_UART_2xx.UCPEN;
    // Parity Enabled
enum USCI_A1_UART_2xx.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCPE_t
    const USCI_A1_UART_2xx.UCPE_OFF;
    // No error
    const USCI_A1_UART_2xx.UCPE;
    // Character received with parity error
enum USCI_A1_UART_2xx.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCRXEIE_t
    const USCI_A1_UART_2xx.UCRXEIE_OFF;
    // Erroneous characters rejected and UCAxRXIFG is not set
    const USCI_A1_UART_2xx.UCRXEIE;
    // Erroneous characters received will set UCAxRXIFG
enum USCI_A1_UART_2xx.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCRXERR_t
    const USCI_A1_UART_2xx.UCRXERR_OFF;
    // No receive errors detected
    const USCI_A1_UART_2xx.UCRXERR;
    // Receive error detected
enum USCI_A1_UART_2xx.UCSPB_t
index URL

Stop bit select. Number of stop bits

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCSPB_t
    const USCI_A1_UART_2xx.UCSPB_OFF;
    // One stop bit
    const USCI_A1_UART_2xx.UCSPB;
    // Two stop bits
enum USCI_A1_UART_2xx.UCSSEL_UART_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCSSEL_UART_t
    const USCI_A1_UART_2xx.UCSSEL_0;
    // UCLK
    const USCI_A1_UART_2xx.UCSSEL_1;
    // ACLK
    const USCI_A1_UART_2xx.UCSSEL_2;
    // SMCLK
enum USCI_A1_UART_2xx.UCSTOE_t
index URL

Synch field time out error

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCSTOE_t
    const USCI_A1_UART_2xx.UCSTOE_OFF;
    // No error
    const USCI_A1_UART_2xx.UCSTOE;
    // Length of synch field exceeded measurable time
enum USCI_A1_UART_2xx.UCSWRST_t
index URL

Software reset enable

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCSWRST_t
    const USCI_A1_UART_2xx.UCSWRST_OFF;
    // Disabled. USCI reset released for operation
    const USCI_A1_UART_2xx.UCSWRST;
    // Enabled. USCI logic held in reset state
enum USCI_A1_UART_2xx.UCSYNC_t
index URL

Synchronous mode enable

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCSYNC_t
    const USCI_A1_UART_2xx.UCSYNC_OFF;
    // Asynchronous mode
    const USCI_A1_UART_2xx.UCSYNC;
    // Synchronous Mode
enum USCI_A1_UART_2xx.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCTXADDR_t
    const USCI_A1_UART_2xx.UCTXADDR_OFF;
    // Next frame transmitted is data
    const USCI_A1_UART_2xx.UCTXADDR;
    // Next frame transmitted is an address
enum USCI_A1_UART_2xx.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCscript usage meta-domain
values of type USCI_A1_UART_2xx.UCTXBRK_t
    const USCI_A1_UART_2xx.UCTXBRK_OFF;
    // Next frame transmitted is not a break
    const USCI_A1_UART_2xx.UCTXBRK;
    // Next frame transmitted is a break or a break/synch
struct USCI_A1_UART_2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct USCI_A1_UART_2xx.UC1IE_t
index URL

USCI_Ax UART Interrupt Enable Register

XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.UC1IE_t;
    obj.UCA1TXIE = USCI_A1_UART_2xx.UCA1TXIE_t ...
    // USCI_A1 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCA1RXIE = USCI_A1_UART_2xx.UCA1RXIE_t ...
    // USCI_A1 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled
struct USCI_A1_UART_2xx.UCxABCTL_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.UCxABCTL_t;
    obj.UCDELIM1 = IUSCI_UART.UCDELIM1_t ...
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
    obj.UCDELIM0 = IUSCI_UART.UCDELIM0_t ...
    // Break/synch delimiter length 00 1 bit time 01 2 bit times 10 3 bit times 11 4 bit times
    obj.UCSTOE = IUSCI_UART.UCSTOE_t ...
    // Synch field time out error 0 No error 1 Length of synch field exceeded measurable time
    obj.UCBTOE = IUSCI_UART.UCBTOE_t ...
    // Break time out error 0 No error 1 Length of break field exceeded 22 bit times
    obj.UCABDEN = IUSCI_UART.UCABDEN_t ...
    // Automatic baud rate detect enable 0 Baud rate detection disabled. Length of break and synch field is not measured. 1 Baud rate detection enabled. Length of break and synch field is measured and baud rate settings are changed accordingly
struct USCI_A1_UART_2xx.UCxCTL0_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.UCxCTL0_t;
    obj.UCPEN = IUSCI_UART.UCPEN_t ...
    // Parity enable 0 Parity disabled. 1 Parity enabled. Parity bit is generated (UCAxTXD) and expected (UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation
    obj.UCPAR = IUSCI_UART.UCPAR_t ...
    // Parity select. UCPAR is not used when parity is disabled. 0 Odd parity 1 Even parity
    obj.UCMSB = IUSCI_UART.UCMSB_t ...
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
    obj.UC7BIT = IUSCI_UART.UC7BIT_t ...
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
    obj.UCSPB = IUSCI_UART.UCSPB_t ...
    // Stop bit select. Number of stop bits. 0 One stop bit 1 Two stop bits
    obj.UCMODE = IUSCI_UART.UCMODE_ASYNC_t ...
    // USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. 00 UART Mode. 01 Idle-Line Multiprocessor Mode. 10 Address-Bit Multiprocessor Mode. 11 UART Mode with automatic baud rate detection
    obj.UCSYNC = IUSCI_UART.UCSYNC_t ...
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
struct USCI_A1_UART_2xx.UCxCTL1_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.UCxCTL1_t;
    obj.UCSSEL = IUSCI_UART.UCSSEL_UART_t ...
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLK 01 ACLK 10 SMCLK 11 SMCLK
    obj.UCRXEIE = IUSCI_UART.UCRXEIE_t ...
    // Receive erroneous-character interrupt-enable 0 Erroneous characters rejected and UCAxRXIFG is not set 1 Erroneous characters received will set UCAxRXIFG
    obj.UCBRKIE = IUSCI_UART.UCBRKIE_t ...
    // Receive break character interrupt-enable 0 Received break characters do not set UCAxRXIFG. 1 Received break characters set UCAxRXIFG
    obj.UCDORM = IUSCI_UART.UCDORM_t ...
    // Dormant. Puts USCI into sleep mode. 0 Not dormant. All received characters will set UCAxRXIFG. 1 Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
    obj.UCTXADDR = IUSCI_UART.UCTXADDR_t ...
    // Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. 0 Next frame transmitted is data 1 Next frame transmitted is an address
    obj.UCTXBRK = IUSCI_UART.UCTXBRK_t ...
    // Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer. 0 Next frame transmitted is not a break 1 Next frame transmitted is a break or a break/synch
    obj.UCSWRST = IUSCI_UART.UCSWRST_t ...
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
struct USCI_A1_UART_2xx.UCxIRRCTL_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.UCxIRRCTL_t;
    obj.UCIRRXFL5 = IUSCI_UART.UCIRRXFL5_t ...
    // IRDA Receive Filter Length Bit 5
    obj.UCIRRXFL4 = IUSCI_UART.UCIRRXFL4_t ...
    // IRDA Receive Filter Length Bit 4
    obj.UCIRRXFL3 = IUSCI_UART.UCIRRXFL3_t ...
    // IRDA Receive Filter Length Bit 3
    obj.UCIRRXFL2 = IUSCI_UART.UCIRRXFL2_t ...
    // IRDA Receive Filter Length Bit 2
    obj.UCIRRXFL1 = IUSCI_UART.UCIRRXFL1_t ...
    // IRDA Receive Filter Length Bit 1
    obj.UCIRRXFL0 = IUSCI_UART.UCIRRXFL0_t ...
    // IRDA Receive Filter Length Bit 0
    obj.UCIRRXPL = IUSCI_UART.UCIRRXPL_t ...
    // IrDA receive input UCAxRXD polarity 0 IrDA transceiver delivers a high pulse when a light pulse is seen 1 IrDA transceiver delivers a low pulse when a light pulse is seen
    obj.UCIRRXFE = IUSCI_UART.UCIRRXFE_t ...
    // IrDA receive filter enabled 0 Receive filter disabled 1 Receive filter enabled
struct USCI_A1_UART_2xx.UCxIRTCTL_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.UCxIRTCTL_t;
    obj.UCIRTXPL5 = IUSCI_UART.UCIRTXPL5_t ...
    // IRDA Transmit Pulse Length Bit 5
    obj.UCIRTXPL4 = IUSCI_UART.UCIRTXPL4_t ...
    // IRDA Transmit Pulse Length Bit 4
    obj.UCIRTXPL3 = IUSCI_UART.UCIRTXPL3_t ...
    // IRDA Transmit Pulse Length Bit 3
    obj.UCIRTXPL2 = IUSCI_UART.UCIRTXPL2_t ...
    // IRDA Transmit Pulse Length Bit 2
    obj.UCIRTXPL1 = IUSCI_UART.UCIRTXPL1_t ...
    // IRDA Transmit Pulse Length Bit 1
    obj.UCIRTXPL0 = IUSCI_UART.UCIRTXPL0_t ...
    // IRDA Transmit Pulse Length Bit 0
    obj.UCIRTXCLK = IUSCI_UART.UCIRTXCLK_t ...
    // IrDA transmit pulse clock select 0 BRCLK 1 BITCLK16 when UCOS16 = 1. Otherwise, BRCLK
    obj.UCIREN = IUSCI_UART.UCIREN_t ...
    // IrDA encoder/decoder enable. 0 IrDA encoder/decoder disabled 1 IrDA encoder/decoder enabled
struct USCI_A1_UART_2xx.UCxMCTL_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.UCxMCTL_t;
    obj.UCBRF = IUSCI_UART.UCBRF_t ...
    // First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0
    obj.UCBRS = IUSCI_UART.UCBRS_t ...
    // Second modulation stage select. These bits determine the modulation pattern for BITCLK
    obj.UCOS16 = IUSCI_UART.UCOS16_t ...
    // Oversampling mode enabled 0 Disabled 1 Enabled
struct USCI_A1_UART_2xx.UCxSTAT_t
index URL
XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.UCxSTAT_t;
    obj.UCLISTEN = IUSCI_UART.UCLISTEN_t ...
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
    obj.UCFE = IUSCI_UART.UCFE_t ...
    // Framing error flag 0 No error 1 Character received with low stop bit
    obj.UCOE = IUSCI_UART.UCOE_t ...
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
    obj.UCPE = IUSCI_UART.UCPE_t ...
    // Parity error flag. When UCPEN = 0, UCPE is read as 0. 0 No error 1 Character received with parity error
    obj.UCBRK = IUSCI_UART.UCBRK_t ...
    // Break detect flag 0 No break condition 1 Break condition occurred
    obj.UCRXERR = IUSCI_UART.UCRXERR_t ...
    // Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read. 0 No receive errors detected 1 Receive error detected
    obj.UCADDR = IUSCI_UART.UCADDR_t ...
    // Address received in address-bit multiprocessor mode. 0 Received character is data 1 Received character is an address
    obj.UCIDLE = IUSCI_UART.UCIDLE_t ...
    // Idle line detected in idle-line multiprocessor mode. 0 No idle line detected 1 Idle line detected
    obj.UCBUSY = IUSCI_UART.UCBUSY_t ...
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
struct USCI_A1_UART_2xx.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new USCI_A1_UART_2xx.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
USCI_A1_UART_2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
USCI_A1_UART_2xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
USCI_A1_UART_2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
USCI_A1_UART_2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
// Instance config-params object
    params.UC1IE = USCI_A1_UART_2xx.UC1IE_t {
    // USCI_A1 Interrupt Enable Register
        UCA1TXIE: USCI_A1_UART_2xx.UCA1TXIE_OFF,
        UCA1RXIE: USCI_A1_UART_2xx.UCA1RXIE_OFF
    };
    params.UCA1ABCTL = IUSCI_A1_UART.UCxABCTL_t {
    // Auto Baud Rate Control Register
        UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
        UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
        UCSTOE: IUSCI_UART.UCSTOE_OFF,
        UCBTOE: IUSCI_UART.UCBTOE_OFF,
        UCABDEN: IUSCI_UART.UCABDEN_OFF
    };
    params.UCA1BR0 = Bits8 0;
    // Baud rate control register 0
    params.UCA1BR1 = Bits8 0;
    // Baud rate control register 1
    params.UCA1CTL0 = IUSCI_A1_UART.UCxCTL0_t {
    // Control Register 0
        UCPEN: IUSCI_UART.UCPEN_OFF,
        UCPAR: IUSCI_UART.UCPAR_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCSPB: IUSCI_UART.UCSPB_OFF,
        UCMODE: IUSCI_UART.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC_OFF
    };
    params.UCA1CTL1 = IUSCI_A1_UART.UCxCTL1_t {
    // Control Register 1
        UCSSEL: IUSCI_UART.UCSSEL_0,
        UCRXEIE: IUSCI.UCRXEIE_OFF,
        UCBRKIE: IUSCI.UCBRKIE_OFF,
        UCDORM: IUSCI.UCDORM_OFF,
        UCTXADDR: IUSCI.UCTXADDR_OFF,
        UCTXBRK: IUSCI.UCTXBRK_OFF,
        UCSWRST: IUSCI.UCSWRST
    };
    params.UCA1IRRCTL = IUSCI_A1_UART.UCxIRRCTL_t {
    // IrDA Receive Control Register
        UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
        UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
        UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
        UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
        UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
        UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
        UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
        UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
    };
    params.UCA1IRTCTL = IUSCI_A1_UART.UCxIRTCTL_t {
    // IrDA Transmit Control Register
        UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
        UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
        UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
        UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
        UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
        UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
        UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
        UCIREN: IUSCI_UART.UCIREN_OFF
    };
    params.UCA1MCTL = IUSCI_A1_UART.UCxMCTL_t {
    // Modulation Control Register
        UCBRF: IUSCI_UART.UCBRF_0,
        UCBRS: IUSCI_UART.UCBRS_0,
        UCOS16: IUSCI_UART.UCOS16_OFF
    };
    params.UCA1RXBUF = Bits8 0;
    // Receive Buffer Register
    params.UCA1STAT = IUSCI_A1_UART.UCxSTAT_t {
    // Status Register
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCPE: IUSCI.UCPE_OFF,
        UCBRK: IUSCI.UCBRK_OFF,
        UCRXERR: IUSCI.UCRXERR_OFF,
        UCADDR: IUSCI.UCADDR_OFF,
        UCIDLE: IUSCI.UCIDLE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    params.UCA1TXBUF = Bits8 0;
    // Transmit Buffer Register
    params.UCLKHz = Float 1000000;
    // Stores the UCLK external clock frequency in float
    params.forceSetDefaultRegister = USCI_A1_UART_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "UCA1CTL0",
            regForceSet: false
        },
        {
            register: "UCA1CTL1",
            regForceSet: false
        },
        {
            register: "UCA1BR0",
            regForceSet: false
        },
        {
            register: "UCA1BR1",
            regForceSet: false
        },
        {
            register: "UCA1MCTL",
            regForceSet: false
        },
        {
            register: "UCA1STAT",
            regForceSet: false
        },
        {
            register: "UCA1RXBUF",
            regForceSet: false
        },
        {
            register: "UCA1TXBUF",
            regForceSet: false
        },
        {
            register: "UCA1ABCTL",
            regForceSet: false
        },
        {
            register: "UCA1IRTCTL",
            regForceSet: false
        },
        {
            register: "UCA1IRRCTL",
            regForceSet: false
        },
        {
            register: "UC1IE",
            regForceSet: false
        }
    ];
    params.interruptSource = USCI_A1_UART_2xx.regIntVect_t[2] undefined;
    // USCI_A1 UART interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config USCI_A1_UART_2xx.UC1IE // instance
index URL

USCI_A1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UC1IE = USCI_A1_UART_2xx.UC1IE_t {
    UCA1TXIE: USCI_A1_UART_2xx.UCA1TXIE_OFF,
    UCA1RXIE: USCI_A1_UART_2xx.UCA1RXIE_OFF
};
config USCI_A1_UART_2xx.UCA1ABCTL // instance
index URL

Auto Baud Rate Control Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1ABCTL = IUSCI_A1_UART.UCxABCTL_t {
    UCDELIM1: IUSCI_UART.UCDELIM1_OFF,
    UCDELIM0: IUSCI_UART.UCDELIM0_OFF,
    UCSTOE: IUSCI_UART.UCSTOE_OFF,
    UCBTOE: IUSCI_UART.UCBTOE_OFF,
    UCABDEN: IUSCI_UART.UCABDEN_OFF
};
config USCI_A1_UART_2xx.UCA1BR0 // instance
index URL

Baud rate control register 0

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1BR0 = Bits8 0;
config USCI_A1_UART_2xx.UCA1BR1 // instance
index URL

Baud rate control register 1

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1BR1 = Bits8 0;
config USCI_A1_UART_2xx.UCA1CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1CTL0 = IUSCI_A1_UART.UCxCTL0_t {
    UCPEN: IUSCI_UART.UCPEN_OFF,
    UCPAR: IUSCI_UART.UCPAR_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCSPB: IUSCI_UART.UCSPB_OFF,
    UCMODE: IUSCI_UART.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC_OFF
};
config USCI_A1_UART_2xx.UCA1CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1CTL1 = IUSCI_A1_UART.UCxCTL1_t {
    UCSSEL: IUSCI_UART.UCSSEL_0,
    UCRXEIE: IUSCI.UCRXEIE_OFF,
    UCBRKIE: IUSCI.UCBRKIE_OFF,
    UCDORM: IUSCI.UCDORM_OFF,
    UCTXADDR: IUSCI.UCTXADDR_OFF,
    UCTXBRK: IUSCI.UCTXBRK_OFF,
    UCSWRST: IUSCI.UCSWRST
};
config USCI_A1_UART_2xx.UCA1IRRCTL // instance
index URL

IrDA Receive Control Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1IRRCTL = IUSCI_A1_UART.UCxIRRCTL_t {
    UCIRRXFL5: IUSCI_UART.UCIRRXFL5_OFF,
    UCIRRXFL4: IUSCI_UART.UCIRRXFL4_OFF,
    UCIRRXFL3: IUSCI_UART.UCIRRXFL3_OFF,
    UCIRRXFL2: IUSCI_UART.UCIRRXFL2_OFF,
    UCIRRXFL1: IUSCI_UART.UCIRRXFL1_OFF,
    UCIRRXFL0: IUSCI_UART.UCIRRXFL0_OFF,
    UCIRRXPL: IUSCI_UART.UCIRRXPL_OFF,
    UCIRRXFE: IUSCI_UART.UCIRRXFE_OFF
};
config USCI_A1_UART_2xx.UCA1IRTCTL // instance
index URL

IrDA Transmit Control Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1IRTCTL = IUSCI_A1_UART.UCxIRTCTL_t {
    UCIRTXPL5: IUSCI_UART.UCIRTXPL5_OFF,
    UCIRTXPL4: IUSCI_UART.UCIRTXPL4_OFF,
    UCIRTXPL3: IUSCI_UART.UCIRTXPL3_OFF,
    UCIRTXPL2: IUSCI_UART.UCIRTXPL2_OFF,
    UCIRTXPL1: IUSCI_UART.UCIRTXPL1_OFF,
    UCIRTXPL0: IUSCI_UART.UCIRTXPL0_OFF,
    UCIRTXCLK: IUSCI_UART.UCIRTXCLK_OFF,
    UCIREN: IUSCI_UART.UCIREN_OFF
};
config USCI_A1_UART_2xx.UCA1MCTL // instance
index URL

Modulation Control Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1MCTL = IUSCI_A1_UART.UCxMCTL_t {
    UCBRF: IUSCI_UART.UCBRF_0,
    UCBRS: IUSCI_UART.UCBRS_0,
    UCOS16: IUSCI_UART.UCOS16_OFF
};
config USCI_A1_UART_2xx.UCA1RXBUF // instance
index URL

Receive Buffer Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1RXBUF = Bits8 0;
config USCI_A1_UART_2xx.UCA1STAT // instance
index URL

Status Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1STAT = IUSCI_A1_UART.UCxSTAT_t {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCPE: IUSCI.UCPE_OFF,
    UCBRK: IUSCI.UCBRK_OFF,
    UCRXERR: IUSCI.UCRXERR_OFF,
    UCADDR: IUSCI.UCADDR_OFF,
    UCIDLE: IUSCI.UCIDLE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config USCI_A1_UART_2xx.UCA1TXBUF // instance
index URL

Transmit Buffer Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA1TXBUF = Bits8 0;
config USCI_A1_UART_2xx.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCLKHz = Float 1000000;
config USCI_A1_UART_2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
const params.forceSetDefaultRegister = USCI_A1_UART_2xx.ForceSetDefaultRegister_t[] [
    {
        register: "UCA1CTL0",
        regForceSet: false
    },
    {
        register: "UCA1CTL1",
        regForceSet: false
    },
    {
        register: "UCA1BR0",
        regForceSet: false
    },
    {
        register: "UCA1BR1",
        regForceSet: false
    },
    {
        register: "UCA1MCTL",
        regForceSet: false
    },
    {
        register: "UCA1STAT",
        regForceSet: false
    },
    {
        register: "UCA1RXBUF",
        regForceSet: false
    },
    {
        register: "UCA1TXBUF",
        regForceSet: false
    },
    {
        register: "UCA1ABCTL",
        regForceSet: false
    },
    {
        register: "UCA1IRTCTL",
        regForceSet: false
    },
    {
        register: "UCA1IRRCTL",
        regForceSet: false
    },
    {
        register: "UC1IE",
        regForceSet: false
    }
];
config USCI_A1_UART_2xx.interruptSource // instance
index URL

USCI_A1 UART interrupt enables

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.interruptSource = USCI_A1_UART_2xx.regIntVect_t[2] undefined;
config USCI_A1_UART_2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config USCI_A1_UART_2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = USCI_A1_UART_2xx.create(IClock.Instance clock, params);
// Create an instance-object
USCI_A1_UART_2xx.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR0() returns Bits8
SEE
getUCxxBR0
USCI_A1_UART_2xx.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR1() returns Bits8
SEE
getUCxxBR1
USCI_A1_UART_2xx.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCscript usage meta-domain
inst.getUCxxRXIE() returns Bool
SEE
getUCxxRXIE
USCI_A1_UART_2xx.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCscript usage meta-domain
inst.getUCxxTXIE() returns Bool
SEE
getUCxxTXIE
USCI_A1_UART_2xx.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR0(Bits8 value) returns Void
SEE
setUCxxBR0
USCI_A1_UART_2xx.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR1(Bits8 value) returns Void
SEE
setUCxxBR1
USCI_A1_UART_2xx.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCscript usage meta-domain
inst.setUCxxRXIE(Bool set) returns Bool
SEE
setUCxxRXIE
USCI_A1_UART_2xx.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCscript usage meta-domain
inst.setUCxxTXIE(Bool set) returns Bool
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:45 GMT


module ti.catalog.msp430.peripherals.communication.USCI_A1_UART_2xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Universal Serial Communication Interface
    16     */
    17    metaonly module USCI_A1_UART_2xx inherits IUSCI_A1_UART {
    18        /* Add 2xx-specific stuff here */
    19
    20        /*
    21         *  ======== create ========
    22         */
    23        create(IClock.Instance clock);
    24
    25        /*! USCI_A1 transmit interrupt enable */
    26        enum UCA1TXIE_t {
    27            UCA1TXIE_OFF = 0x00,    /*! Interrupt disabled */
    28            UCA1TXIE = 0x02         /*! Interrupt enabled */
    29        };
    30
    31        /*! USCI_A1 receive interrupt enable */
    32        enum UCA1RXIE_t {
    33            UCA1RXIE_OFF = 0x00,     /*! Interrupt disabled */
    34            UCA1RXIE = 0x01          /*! Interrupt enabled */
    35        };
    36
    37        /*! USCI_Ax UART Interrupt Enable Register */
    38        struct UC1IE_t {
    39            UCA1TXIE_t  UCA1TXIE;   /*! USCI_A1 transmit interrupt enable
    40                                     *  0  Interrupt disabled
    41                                     *  1  Interrupt enabled */
    42            UCA1RXIE_t  UCA1RXIE;   /*! USCI_A1 receive interrupt enable
    43                                     *  0  Interrupt disabled
    44                                     *  1  Interrupt enabled */
    45        }
    46
    47    instance:
    48        /*! @_nodoc */
    49        config IClock.Instance clock;
    50
    51        /*! USCI_A1 Interrupt Enable Register */
    52        config UC1IE_t UC1IE = {
    53            UCA1TXIE    : UCA1TXIE_OFF,
    54            UCA1RXIE    : UCA1RXIE_OFF
    55        };
    56
    57        /*! USCI_A1 UART interrupt enables */
    58        config regIntVect_t interruptSource[2];
    59
    60        /*! Determine if each Register needs to be forced set or not */
    61        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    62        [
    63            { register : "UCA1CTL0"   , regForceSet : false },
    64            { register : "UCA1CTL1"   , regForceSet : false },
    65            { register : "UCA1BR0"    , regForceSet : false },
    66            { register : "UCA1BR1"    , regForceSet : false },
    67            { register : "UCA1MCTL"   , regForceSet : false },
    68            { register : "UCA1STAT"   , regForceSet : false },
    69            { register : "UCA1RXBUF"  , regForceSet : false },
    70            { register : "UCA1TXBUF"  , regForceSet : false },
    71            { register : "UCA1ABCTL"  , regForceSet : false },
    72            { register : "UCA1IRTCTL" , regForceSet : false },
    73            { register : "UCA1IRRCTL" , regForceSet : false },
    74            { register : "UC1IE"      , regForceSet : false }
    75        ];
    76    }


module ti.catalog.msp430.peripherals.communication.USCI_B0_I2C_2xx

metaonly module ti.catalog.msp430.peripherals.communication.USCI_B0_I2C_2xx
index URL

Universal Serial Communication Interface B0 I2C 2xx

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/USCI_B0_I2C_2xx.xdc
var USCI_B0_I2C_2xx = xdc.useModule('ti.catalog.msp430.peripherals.communication.USCI_B0_I2C_2xx');
module-wide constants & types
    values of type USCI_B0_I2C_2xx.UC7BIT_t// Character length. Selects 7-bit or 8-bit character length
        const USCI_B0_I2C_2xx.UC7BIT_OFF// 8-bit;
        const USCI_B0_I2C_2xx.UC7BIT// 7-bit;
    values of type USCI_B0_I2C_2xx.UCA10_t// Own addressing mode select
        const USCI_B0_I2C_2xx.UCA10_OFF// Own address is a 7-bit address;
        const USCI_B0_I2C_2xx.UCA10// Own address is a 10-bit address;
    values of type USCI_B0_I2C_2xx.UCADDR_t// Address received in address-bit multiprocessor mode
        const USCI_B0_I2C_2xx.UCADDR_OFF// Received character is data;
        const USCI_B0_I2C_2xx.UCADDR// Received character is an address;
    values of type USCI_B0_I2C_2xx.UCALIE_t// Arbitration lost interrupt enable
        const USCI_B0_I2C_2xx.UCALIE_OFF// Interrupt disabled;
        const USCI_B0_I2C_2xx.UCALIE// Interrupt enabled;
    values of type USCI_B0_I2C_2xx.UCALIFG_t// Arbitration lost interrupt flag
        const USCI_B0_I2C_2xx.UCALIFG_OFF// No interrupt pending;
        const USCI_B0_I2C_2xx.UCALIFG// Interrupt pending;
    values of type USCI_B0_I2C_2xx.UCBBUSY_t// Bus busy
        const USCI_B0_I2C_2xx.UCBBUSY_OFF// Bus inactive;
        const USCI_B0_I2C_2xx.UCBBUSY// Bus busy;
    values of type USCI_B0_I2C_2xx.UCBRKIE_t// Receive break character interrupt-enable
        const USCI_B0_I2C_2xx.UCBRKIE_OFF// Received break characters do not set UCAxRXIFG;
        const USCI_B0_I2C_2xx.UCBRKIE// Received break characters set UCAxRXIFG;
    values of type USCI_B0_I2C_2xx.UCBRK_t// Break detect flag
        const USCI_B0_I2C_2xx.UCBRK_OFF// No break condition;
        const USCI_B0_I2C_2xx.UCBRK// Break condition occurred;
    values of type USCI_B0_I2C_2xx.UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress
        const USCI_B0_I2C_2xx.UCBUSY_OFF// USCI inactive;
        const USCI_B0_I2C_2xx.UCBUSY// USCI transmitting or receiving;
    values of type USCI_B0_I2C_2xx.UCDORM_t// Dormant. Puts USCI into sleep mode
        const USCI_B0_I2C_2xx.UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG;
        const USCI_B0_I2C_2xx.UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
    values of type USCI_B0_I2C_2xx.UCFE_t// Framing error flag
        const USCI_B0_I2C_2xx.UCFE_OFF// 0 No error;
        const USCI_B0_I2C_2xx.UCFE// Character received with low stop bit;
    values of type USCI_B0_I2C_2xx.UCGCEN_t// General call response enable
        const USCI_B0_I2C_2xx.UCGCEN_OFF// Do not respond to a general call;
        const USCI_B0_I2C_2xx.UCGCEN// Respond to a general call;
    values of type USCI_B0_I2C_2xx.UCGC_t// General call address received
        const USCI_B0_I2C_2xx.UCGC_OFF// No general call address received;
        const USCI_B0_I2C_2xx.UCGC// General call address received;
    values of type USCI_B0_I2C_2xx.UCIDLE_t// Idle line detected in idle-line multiprocessor mode
        const USCI_B0_I2C_2xx.UCIDLE_OFF// No idle line detected;
        const USCI_B0_I2C_2xx.UCIDLE// Idle line detected;
    values of type USCI_B0_I2C_2xx.UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode
        const USCI_B0_I2C_2xx.UCLISTEN_OFF// Disabled;
        const USCI_B0_I2C_2xx.UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver;
    values of type USCI_B0_I2C_2xx.UCMM_t// Multi-master environment select
        const USCI_B0_I2C_2xx.UCMM_OFF// Single master environment. There is no other master in the system. The address compare unit is disabled;
        const USCI_B0_I2C_2xx.UCMM// Multi master environment;
    values of type USCI_B0_I2C_2xx.UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1
        const USCI_B0_I2C_2xx.UCMODE_0// 3-Pin SPI;
        const USCI_B0_I2C_2xx.UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1;
        const USCI_B0_I2C_2xx.UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0;
        const USCI_B0_I2C_2xx.UCMODE_3// I2C Mode;
    values of type USCI_B0_I2C_2xx.UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register
        const USCI_B0_I2C_2xx.UCMSB_OFF// LSB first;
        const USCI_B0_I2C_2xx.UCMSB// MSB first;
    values of type USCI_B0_I2C_2xx.UCMST_t// Master mode select
        const USCI_B0_I2C_2xx.UCMST_OFF// Slave mode;
        const USCI_B0_I2C_2xx.UCMST// Master mode;
    values of type USCI_B0_I2C_2xx.UCNACKIE_t// Not-acknowledge interrupt enable
        const USCI_B0_I2C_2xx.UCNACKIE_OFF// Interrupt disabled;
        const USCI_B0_I2C_2xx.UCNACKIE// Interrupt enabled;
    values of type USCI_B0_I2C_2xx.UCNACKIFG_t// Not-acknowledge received interrupt flag
        const USCI_B0_I2C_2xx.UCNACKIFG_OFF// No interrupt pending;
        const USCI_B0_I2C_2xx.UCNACKIFG// Interrupt pending;
    values of type USCI_B0_I2C_2xx.UCOE_t// Overrun error flag
        const USCI_B0_I2C_2xx.UCOE_OFF// No error;
        const USCI_B0_I2C_2xx.UCOE// Overrun error occurred;
    values of type USCI_B0_I2C_2xx.UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0
        const USCI_B0_I2C_2xx.UCPE_OFF// No error;
        const USCI_B0_I2C_2xx.UCPE// Character received with parity error;
    values of type USCI_B0_I2C_2xx.UCRXEIE_t// Receive erroneous-character interrupt-enable
        const USCI_B0_I2C_2xx.UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set;
        const USCI_B0_I2C_2xx.UCRXEIE// Erroneous characters received will set UCAxRXIFG;
    values of type USCI_B0_I2C_2xx.UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read
        const USCI_B0_I2C_2xx.UCRXERR_OFF// No receive errors detected;
        const USCI_B0_I2C_2xx.UCRXERR// Receive error detected;
    values of type USCI_B0_I2C_2xx.UCSCLLOW_t// SCL low
        const USCI_B0_I2C_2xx.UCSCLLOW_OFF// SCL is not held low;
        const USCI_B0_I2C_2xx.UCSCLLOW// SCL is held low;
    values of type USCI_B0_I2C_2xx.UCSLA10_t// Slave addressing mode select
        const USCI_B0_I2C_2xx.UCSLA10_OFF// Address slave with 7-bit address;
        const USCI_B0_I2C_2xx.UCSLA10// Address slave with 10-bit address;
    values of type USCI_B0_I2C_2xx.UCSSEL_I2C_t// USCI clock source select. These bits select the BRCLK source clock
        const USCI_B0_I2C_2xx.UCSSEL_0// UCLK;
        const USCI_B0_I2C_2xx.UCSSEL_1// ACLK;
        const USCI_B0_I2C_2xx.UCSSEL_2// SMCLK;
    values of type USCI_B0_I2C_2xx.UCSTPIE_t// Stop condition interrupt enable
        const USCI_B0_I2C_2xx.UCSTPIE_OFF// Interrupt disabled;
        const USCI_B0_I2C_2xx.UCSTPIE// Interrupt enabled;
    values of type USCI_B0_I2C_2xx.UCSTPIFG_t// Stop condition interrupt flag
        const USCI_B0_I2C_2xx.UCSTPIFG_OFF// No interrupt pending;
        const USCI_B0_I2C_2xx.UCSTPIFG// Interrupt pending;
    values of type USCI_B0_I2C_2xx.UCSTTIE_t// Start condition interrupt enable
        const USCI_B0_I2C_2xx.UCSTTIE_OFF// Interrupt disabled;
        const USCI_B0_I2C_2xx.UCSTTIE// Interrupt enabled;
    values of type USCI_B0_I2C_2xx.UCSTTIFG_t// Start condition interrupt flag
        const USCI_B0_I2C_2xx.UCSTTIFG_OFF// No interrupt pending;
        const USCI_B0_I2C_2xx.UCSTTIFG// Interrupt pending;
    values of type USCI_B0_I2C_2xx.UCSWRST_t// Software reset enable
        const USCI_B0_I2C_2xx.UCSWRST_OFF// Disabled. USCI reset released for operation;
        const USCI_B0_I2C_2xx.UCSWRST// Enabled. USCI logic held in reset state;
    values of type USCI_B0_I2C_2xx.UCSYNC_t// Synchronous mode enable
        const USCI_B0_I2C_2xx.UCSYNC_OFF// Asynchronous mode;
        const USCI_B0_I2C_2xx.UCSYNC// Synchronous Mode;
    values of type USCI_B0_I2C_2xx.UCTR_t// Transmitter/Receiver
        const USCI_B0_I2C_2xx.UCTR_OFF// Receiver;
        const USCI_B0_I2C_2xx.UCTR// Transmitter;
    values of type USCI_B0_I2C_2xx.UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode
        const USCI_B0_I2C_2xx.UCTXADDR_OFF// Next frame transmitted is data;
        const USCI_B0_I2C_2xx.UCTXADDR// Next frame transmitted is an address;
    values of type USCI_B0_I2C_2xx.UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer
        const USCI_B0_I2C_2xx.UCTXBRK_OFF// Next frame transmitted is not a break;
        const USCI_B0_I2C_2xx.UCTXBRK// Next frame transmitted is a break or a break/synch;
    values of type USCI_B0_I2C_2xx.UCTXNACK_t// Transmit a NACK
        const USCI_B0_I2C_2xx.UCTXNACK_OFF// Acknowledge normally;
        const USCI_B0_I2C_2xx.UCTXNACK// Generate NACK;
    values of type USCI_B0_I2C_2xx.UCTXSTP_t// Transmit STOP condition in master mode
        const USCI_B0_I2C_2xx.UCTXSTP_OFF// No STOP generated;
        const USCI_B0_I2C_2xx.UCTXSTP// Generate STOP;
    values of type USCI_B0_I2C_2xx.UCTXSTT_t// Transmit START condition in master mode
        const USCI_B0_I2C_2xx.UCTXSTT_OFF// Do not generate START condition;
        const USCI_B0_I2C_2xx.UCTXSTT// Generate START condition;
    var obj = new USCI_B0_I2C_2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new USCI_B0_I2C_2xx.UCBxI2CIE_t// USCI_Bx I2C Interrupt Enable Register;
        obj.UCNACKIE// Not-acknowledge interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B0_I2C_2xx.UCNACKIE_t ...
        obj.UCSTPIE// Stop condition interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B0_I2C_2xx.UCSTPIE_t ...
        obj.UCSTTIE// Start condition interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B0_I2C_2xx.UCSTTIE_t ...
        obj.UCALIE// Arbitration lost interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B0_I2C_2xx.UCALIE_t ...
    var obj = new USCI_B0_I2C_2xx.UCBxI2COA_t// ;
        obj.UCGCEN// General call response enable 0 Do not respond to a general call 1 Respond to a general call = IUSCI_I2C.UCGCEN_t ...
        obj.I2COA// I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB = UChar ...
    var obj = new USCI_B0_I2C_2xx.UCxCTL0_t// ;
        obj.UCA10// Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address = IUSCI_I2C.UCA10_t ...
        obj.UCSLA10// Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address = IUSCI_I2C.UCSLA10_t ...
        obj.UCMM// Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment = IUSCI_I2C.UCMM_t ...
        obj.UCMST// Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode = IUSCI_I2C.UCMST_t ...
        obj.UCMODE// USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode = IUSCI_I2C.UCMODE_SYNC_t ...
        obj.UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode = IUSCI_I2C.UCSYNC_t ...
    var obj = new USCI_B0_I2C_2xx.UCxCTL1_t// ;
        obj.UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK = IUSCI_I2C.UCSSEL_I2C_t ...
        obj.UCTR// Transmitter/Receiver 0 Receiver 1 Transmitter = IUSCI_I2C.UCTR_t ...
        obj.UCTXNACK// Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK = IUSCI_I2C.UCTXNACK_t ...
        obj.UCTXSTP// Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP = IUSCI_I2C.UCTXSTP_t ...
        obj.UCTXSTT// Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition = IUSCI_I2C.UCTXSTT_t ...
        obj.UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state = IUSCI_I2C.UCSWRST_t ...
    var obj = new USCI_B0_I2C_2xx.UCxSTAT_t// ;
        obj.UCSCLLOW// SCL low 0 SCL is not held low 1 SCL is held low = IUSCI_I2C.UCSCLLOW_t ...
        obj.UCGC// General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received = IUSCI_I2C.UCGC_t ...
        obj.UCBBUSY// Bus busy 0 Bus inactive 1 Bus busy = IUSCI_I2C.UCBBUSY_t ...
        obj.UCNACKIFG// Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending = IUSCI_I2C.UCNACKIFG_t ...
        obj.UCSTPIFG// Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending = IUSCI_I2C.UCSTPIFG_t ...
        obj.UCSTTIFG// Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending = IUSCI_I2C.UCSTTIFG_t ...
        obj.UCALIFG// Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending = IUSCI_I2C.UCALIFG_t ...
    var obj = new USCI_B0_I2C_2xx.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     USCI_B0_I2C_2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     USCI_B0_I2C_2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new USCI_B0_I2C_2xx.Params// Instance config-params object;
        params.UCB0BR0// Bit Rate Control Register 0 = Bits8 0;
        params.UCB0BR1// Bit Rate Control Register 1 = Bits8 0;
        params.UCB0CTL0// Control Register 0 = IUSCI_B0_I2C.UCxCTL0_t {
            UCA10: IUSCI_I2C.UCA10_OFF,
            UCSLA10: IUSCI_I2C.UCSLA10_OFF,
            UCMM: IUSCI_I2C.UCMM_OFF,
            UCMST: IUSCI_I2C.UCMST_OFF,
            UCMODE: IUSCI.UCMODE_0,
            UCSYNC: IUSCI.UCSYNC
        };
        params.UCB0CTL1// Control Register 1 = IUSCI_B0_I2C.UCxCTL1_t {
            UCSSEL: IUSCI_I2C.UCSSEL_0,
            UCTR: IUSCI_I2C.UCTR_OFF,
            UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
            UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
            UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
            UCSWRST: IUSCI.UCSWRST
        };
        params.UCB0I2CIE// USCI_Bx I2C Interrupt Enable Register = USCI_B0_I2C_2xx.UCBxI2CIE_t {
            UCNACKIE: USCI_B0_I2C_2xx.UCNACKIE_OFF,
            UCSTPIE: USCI_B0_I2C_2xx.UCSTPIE_OFF,
            UCSTTIE: USCI_B0_I2C_2xx.UCSTTIE_OFF,
            UCALIE: USCI_B0_I2C_2xx.UCALIE_OFF
        };
        params.UCB0I2COA// I2C Own Address Register = IUSCI_B0_I2C.UCBxI2COA_t {
            UCGCEN: IUSCI_I2C.UCGCEN_OFF,
            I2COA: 0
        };
        params.UCB0I2CSA// I2C Slave Address Register = Bits8 0;
        params.UCB0RXBUF// Receive Buffer Register = Bits8 0;
        params.UCB0STAT// Status Register = IUSCI_B0_I2C.UCxSTAT_t {
            UCSCLLOW: IUSCI_I2C.UCSCLLOW,
            UCGC: IUSCI_I2C.UCGC,
            UCBBUSY: IUSCI_I2C.UCBBUSY,
            UCNACKIFG: IUSCI_I2C.UCNACKIFG,
            UCSTPIFG: IUSCI_I2C.UCSTPIFG,
            UCSTTIFG: IUSCI_I2C.UCSTTIFG,
            UCALIFG: IUSCI_I2C.UCALIFG
        };
        params.UCB0TXBUF// Transmit Buffer Register = Bits8 0;
        params.UCLKHz// Stores the UCLK external clock frequency in float = Float 1000000;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = USCI_B0_I2C_2xx.ForceSetDefaultRegister_t[] [
            {
                register: "UCB0CTL0",
                regForceSet: false
            },
            {
                register: "UCB0CTL1",
                regForceSet: false
            },
            {
                register: "UCB0BR0",
                regForceSet: false
            },
            {
                register: "UCB0BR1",
                regForceSet: false
            },
            {
                register: "UCB0STAT",
                regForceSet: false
            },
            {
                register: "UCB0RXBUF",
                regForceSet: false
            },
            {
                register: "UCB0TXBUF",
                regForceSet: false
            },
            {
                register: "UCB0I2COA",
                regForceSet: false
            },
            {
                register: "UCB0I2CSA",
                regForceSet: false
            },
            {
                register: "UCB0I2CIE",
                regForceSet: false
            }
        ];
        params.interruptSource// USCI_B0 I2C interrupt enables = USCI_B0_I2C_2xx.regIntVect_t[4] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = USCI_B0_I2C_2xx.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getUCALIE// Gets UCALIE bit() returns Bool
     inst.getUCBxI2CSA// Returns UCBxI2CSA register value based on which module() returns Bits8
     inst.getUCNACKIE// Gets UCNACKIE bit() returns Bool
     inst.getUCSTPIE// Gets UCSTPIE bit() returns Bool
     inst.getUCSTTIE// Gets UCSTTIE bit() returns Bool
     inst.getUCxxBR0// Returns UCxxBR0 register value based on which module() returns Bits8
     inst.getUCxxBR1// Returns UCxxBR1 register value based on which module() returns Bits8
     inst.getUCxxRXIE// Gets UCxxRXIE bit() returns Bool
     inst.getUCxxTXIE// Gets UCxxTXIE bit() returns Bool
     inst.setUCALIE// Sets UCALIE bit(Bool set) returns Bool
     inst.setUCBxI2CSA// Sets UCxxI2CSA register value based on which module(Bits8 value) returns Void
     inst.setUCNACKIE// Sets UCNACKIE bit(Bool set) returns Bool
     inst.setUCSTPIE// Sets UCSTPIE bit(Bool set) returns Bool
     inst.setUCSTTIE// Sets UCSTTIE bit(Bool set) returns Bool
     inst.setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value) returns Void
     inst.setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value) returns Void
     inst.setUCxxRXIE// Sets UCxxRXIE bit(Bool set) returns Bool
     inst.setUCxxTXIE// Sets UCxxTXIE bit(Bool set) returns Bool
enum USCI_B0_I2C_2xx.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UC7BIT_t
    const USCI_B0_I2C_2xx.UC7BIT_OFF;
    // 8-bit
    const USCI_B0_I2C_2xx.UC7BIT;
    // 7-bit
enum USCI_B0_I2C_2xx.UCA10_t
index URL

Own addressing mode select

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCA10_t
    const USCI_B0_I2C_2xx.UCA10_OFF;
    // Own address is a 7-bit address
    const USCI_B0_I2C_2xx.UCA10;
    // Own address is a 10-bit address
enum USCI_B0_I2C_2xx.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCADDR_t
    const USCI_B0_I2C_2xx.UCADDR_OFF;
    // Received character is data
    const USCI_B0_I2C_2xx.UCADDR;
    // Received character is an address
enum USCI_B0_I2C_2xx.UCALIE_t
index URL

Arbitration lost interrupt enable

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCALIE_t
    const USCI_B0_I2C_2xx.UCALIE_OFF;
    // Interrupt disabled
    const USCI_B0_I2C_2xx.UCALIE;
    // Interrupt enabled
enum USCI_B0_I2C_2xx.UCALIFG_t
index URL

Arbitration lost interrupt flag

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCALIFG_t
    const USCI_B0_I2C_2xx.UCALIFG_OFF;
    // No interrupt pending
    const USCI_B0_I2C_2xx.UCALIFG;
    // Interrupt pending
enum USCI_B0_I2C_2xx.UCBBUSY_t
index URL

Bus busy

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCBBUSY_t
    const USCI_B0_I2C_2xx.UCBBUSY_OFF;
    // Bus inactive
    const USCI_B0_I2C_2xx.UCBBUSY;
    // Bus busy
enum USCI_B0_I2C_2xx.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCBRKIE_t
    const USCI_B0_I2C_2xx.UCBRKIE_OFF;
    // Received break characters do not set UCAxRXIFG
    const USCI_B0_I2C_2xx.UCBRKIE;
    // Received break characters set UCAxRXIFG
enum USCI_B0_I2C_2xx.UCBRK_t
index URL

Break detect flag

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCBRK_t
    const USCI_B0_I2C_2xx.UCBRK_OFF;
    // No break condition
    const USCI_B0_I2C_2xx.UCBRK;
    // Break condition occurred
enum USCI_B0_I2C_2xx.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCBUSY_t
    const USCI_B0_I2C_2xx.UCBUSY_OFF;
    // USCI inactive
    const USCI_B0_I2C_2xx.UCBUSY;
    // USCI transmitting or receiving
enum USCI_B0_I2C_2xx.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCDORM_t
    const USCI_B0_I2C_2xx.UCDORM_OFF;
    // Not dormant. All received characters will set UCAxRXIFG
    const USCI_B0_I2C_2xx.UCDORM;
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
enum USCI_B0_I2C_2xx.UCFE_t
index URL

Framing error flag

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCFE_t
    const USCI_B0_I2C_2xx.UCFE_OFF;
    // 0 No error
    const USCI_B0_I2C_2xx.UCFE;
    // Character received with low stop bit
enum USCI_B0_I2C_2xx.UCGCEN_t
index URL

General call response enable

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCGCEN_t
    const USCI_B0_I2C_2xx.UCGCEN_OFF;
    // Do not respond to a general call
    const USCI_B0_I2C_2xx.UCGCEN;
    // Respond to a general call
enum USCI_B0_I2C_2xx.UCGC_t
index URL

General call address received

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCGC_t
    const USCI_B0_I2C_2xx.UCGC_OFF;
    // No general call address received
    const USCI_B0_I2C_2xx.UCGC;
    // General call address received
enum USCI_B0_I2C_2xx.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCIDLE_t
    const USCI_B0_I2C_2xx.UCIDLE_OFF;
    // No idle line detected
    const USCI_B0_I2C_2xx.UCIDLE;
    // Idle line detected
enum USCI_B0_I2C_2xx.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCLISTEN_t
    const USCI_B0_I2C_2xx.UCLISTEN_OFF;
    // Disabled
    const USCI_B0_I2C_2xx.UCLISTEN;
    // Enabled. UCAxTXD is internally fed back to the receiver
enum USCI_B0_I2C_2xx.UCMM_t
index URL

Multi-master environment select

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCMM_t
    const USCI_B0_I2C_2xx.UCMM_OFF;
    // Single master environment. There is no other master in the system. The address compare unit is disabled
    const USCI_B0_I2C_2xx.UCMM;
    // Multi master environment
enum USCI_B0_I2C_2xx.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCMODE_SYNC_t
    const USCI_B0_I2C_2xx.UCMODE_0;
    // 3-Pin SPI
    const USCI_B0_I2C_2xx.UCMODE_1;
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    const USCI_B0_I2C_2xx.UCMODE_2;
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    const USCI_B0_I2C_2xx.UCMODE_3;
    // I2C Mode
enum USCI_B0_I2C_2xx.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCMSB_t
    const USCI_B0_I2C_2xx.UCMSB_OFF;
    // LSB first
    const USCI_B0_I2C_2xx.UCMSB;
    // MSB first
enum USCI_B0_I2C_2xx.UCMST_t
index URL

Master mode select

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCMST_t
    const USCI_B0_I2C_2xx.UCMST_OFF;
    // Slave mode
    const USCI_B0_I2C_2xx.UCMST;
    // Master mode
enum USCI_B0_I2C_2xx.UCNACKIE_t
index URL

Not-acknowledge interrupt enable

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCNACKIE_t
    const USCI_B0_I2C_2xx.UCNACKIE_OFF;
    // Interrupt disabled
    const USCI_B0_I2C_2xx.UCNACKIE;
    // Interrupt enabled
enum USCI_B0_I2C_2xx.UCNACKIFG_t
index URL

Not-acknowledge received interrupt flag

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCNACKIFG_t
    const USCI_B0_I2C_2xx.UCNACKIFG_OFF;
    // No interrupt pending
    const USCI_B0_I2C_2xx.UCNACKIFG;
    // Interrupt pending
enum USCI_B0_I2C_2xx.UCOE_t
index URL

Overrun error flag

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCOE_t
    const USCI_B0_I2C_2xx.UCOE_OFF;
    // No error
    const USCI_B0_I2C_2xx.UCOE;
    // Overrun error occurred
enum USCI_B0_I2C_2xx.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCPE_t
    const USCI_B0_I2C_2xx.UCPE_OFF;
    // No error
    const USCI_B0_I2C_2xx.UCPE;
    // Character received with parity error
enum USCI_B0_I2C_2xx.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCRXEIE_t
    const USCI_B0_I2C_2xx.UCRXEIE_OFF;
    // Erroneous characters rejected and UCAxRXIFG is not set
    const USCI_B0_I2C_2xx.UCRXEIE;
    // Erroneous characters received will set UCAxRXIFG
enum USCI_B0_I2C_2xx.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCRXERR_t
    const USCI_B0_I2C_2xx.UCRXERR_OFF;
    // No receive errors detected
    const USCI_B0_I2C_2xx.UCRXERR;
    // Receive error detected
enum USCI_B0_I2C_2xx.UCSCLLOW_t
index URL

SCL low

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCSCLLOW_t
    const USCI_B0_I2C_2xx.UCSCLLOW_OFF;
    // SCL is not held low
    const USCI_B0_I2C_2xx.UCSCLLOW;
    // SCL is held low
enum USCI_B0_I2C_2xx.UCSLA10_t
index URL

Slave addressing mode select

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCSLA10_t
    const USCI_B0_I2C_2xx.UCSLA10_OFF;
    // Address slave with 7-bit address
    const USCI_B0_I2C_2xx.UCSLA10;
    // Address slave with 10-bit address
enum USCI_B0_I2C_2xx.UCSSEL_I2C_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCSSEL_I2C_t
    const USCI_B0_I2C_2xx.UCSSEL_0;
    // UCLK
    const USCI_B0_I2C_2xx.UCSSEL_1;
    // ACLK
    const USCI_B0_I2C_2xx.UCSSEL_2;
    // SMCLK
enum USCI_B0_I2C_2xx.UCSTPIE_t
index URL

Stop condition interrupt enable

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCSTPIE_t
    const USCI_B0_I2C_2xx.UCSTPIE_OFF;
    // Interrupt disabled
    const USCI_B0_I2C_2xx.UCSTPIE;
    // Interrupt enabled
enum USCI_B0_I2C_2xx.UCSTPIFG_t
index URL

Stop condition interrupt flag

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCSTPIFG_t
    const USCI_B0_I2C_2xx.UCSTPIFG_OFF;
    // No interrupt pending
    const USCI_B0_I2C_2xx.UCSTPIFG;
    // Interrupt pending
enum USCI_B0_I2C_2xx.UCSTTIE_t
index URL

Start condition interrupt enable

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCSTTIE_t
    const USCI_B0_I2C_2xx.UCSTTIE_OFF;
    // Interrupt disabled
    const USCI_B0_I2C_2xx.UCSTTIE;
    // Interrupt enabled
enum USCI_B0_I2C_2xx.UCSTTIFG_t
index URL

Start condition interrupt flag

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCSTTIFG_t
    const USCI_B0_I2C_2xx.UCSTTIFG_OFF;
    // No interrupt pending
    const USCI_B0_I2C_2xx.UCSTTIFG;
    // Interrupt pending
enum USCI_B0_I2C_2xx.UCSWRST_t
index URL

Software reset enable

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCSWRST_t
    const USCI_B0_I2C_2xx.UCSWRST_OFF;
    // Disabled. USCI reset released for operation
    const USCI_B0_I2C_2xx.UCSWRST;
    // Enabled. USCI logic held in reset state
enum USCI_B0_I2C_2xx.UCSYNC_t
index URL

Synchronous mode enable

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCSYNC_t
    const USCI_B0_I2C_2xx.UCSYNC_OFF;
    // Asynchronous mode
    const USCI_B0_I2C_2xx.UCSYNC;
    // Synchronous Mode
enum USCI_B0_I2C_2xx.UCTR_t
index URL

Transmitter/Receiver

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCTR_t
    const USCI_B0_I2C_2xx.UCTR_OFF;
    // Receiver
    const USCI_B0_I2C_2xx.UCTR;
    // Transmitter
enum USCI_B0_I2C_2xx.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCTXADDR_t
    const USCI_B0_I2C_2xx.UCTXADDR_OFF;
    // Next frame transmitted is data
    const USCI_B0_I2C_2xx.UCTXADDR;
    // Next frame transmitted is an address
enum USCI_B0_I2C_2xx.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCTXBRK_t
    const USCI_B0_I2C_2xx.UCTXBRK_OFF;
    // Next frame transmitted is not a break
    const USCI_B0_I2C_2xx.UCTXBRK;
    // Next frame transmitted is a break or a break/synch
enum USCI_B0_I2C_2xx.UCTXNACK_t
index URL

Transmit a NACK

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCTXNACK_t
    const USCI_B0_I2C_2xx.UCTXNACK_OFF;
    // Acknowledge normally
    const USCI_B0_I2C_2xx.UCTXNACK;
    // Generate NACK
enum USCI_B0_I2C_2xx.UCTXSTP_t
index URL

Transmit STOP condition in master mode

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCTXSTP_t
    const USCI_B0_I2C_2xx.UCTXSTP_OFF;
    // No STOP generated
    const USCI_B0_I2C_2xx.UCTXSTP;
    // Generate STOP
enum USCI_B0_I2C_2xx.UCTXSTT_t
index URL

Transmit START condition in master mode

XDCscript usage meta-domain
values of type USCI_B0_I2C_2xx.UCTXSTT_t
    const USCI_B0_I2C_2xx.UCTXSTT_OFF;
    // Do not generate START condition
    const USCI_B0_I2C_2xx.UCTXSTT;
    // Generate START condition
struct USCI_B0_I2C_2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new USCI_B0_I2C_2xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct USCI_B0_I2C_2xx.UCBxI2CIE_t
index URL

USCI_Bx I2C Interrupt Enable Register

XDCscript usage meta-domain
var obj = new USCI_B0_I2C_2xx.UCBxI2CIE_t;
    obj.UCNACKIE = USCI_B0_I2C_2xx.UCNACKIE_t ...
    // Not-acknowledge interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCSTPIE = USCI_B0_I2C_2xx.UCSTPIE_t ...
    // Stop condition interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCSTTIE = USCI_B0_I2C_2xx.UCSTTIE_t ...
    // Start condition interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCALIE = USCI_B0_I2C_2xx.UCALIE_t ...
    // Arbitration lost interrupt enable 0 Interrupt disabled 1 Interrupt enabled
struct USCI_B0_I2C_2xx.UCBxI2COA_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B0_I2C_2xx.UCBxI2COA_t;
    obj.UCGCEN = IUSCI_I2C.UCGCEN_t ...
    // General call response enable 0 Do not respond to a general call 1 Respond to a general call
    obj.I2COA = UChar ...
    // I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB
struct USCI_B0_I2C_2xx.UCxCTL0_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B0_I2C_2xx.UCxCTL0_t;
    obj.UCA10 = IUSCI_I2C.UCA10_t ...
    // Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address
    obj.UCSLA10 = IUSCI_I2C.UCSLA10_t ...
    // Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address
    obj.UCMM = IUSCI_I2C.UCMM_t ...
    // Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment
    obj.UCMST = IUSCI_I2C.UCMST_t ...
    // Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode
    obj.UCMODE = IUSCI_I2C.UCMODE_SYNC_t ...
    // USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode
    obj.UCSYNC = IUSCI_I2C.UCSYNC_t ...
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode
struct USCI_B0_I2C_2xx.UCxCTL1_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B0_I2C_2xx.UCxCTL1_t;
    obj.UCSSEL = IUSCI_I2C.UCSSEL_I2C_t ...
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK
    obj.UCTR = IUSCI_I2C.UCTR_t ...
    // Transmitter/Receiver 0 Receiver 1 Transmitter
    obj.UCTXNACK = IUSCI_I2C.UCTXNACK_t ...
    // Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK
    obj.UCTXSTP = IUSCI_I2C.UCTXSTP_t ...
    // Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP
    obj.UCTXSTT = IUSCI_I2C.UCTXSTT_t ...
    // Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition
    obj.UCSWRST = IUSCI_I2C.UCSWRST_t ...
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
struct USCI_B0_I2C_2xx.UCxSTAT_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B0_I2C_2xx.UCxSTAT_t;
    obj.UCSCLLOW = IUSCI_I2C.UCSCLLOW_t ...
    // SCL low 0 SCL is not held low 1 SCL is held low
    obj.UCGC = IUSCI_I2C.UCGC_t ...
    // General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received
    obj.UCBBUSY = IUSCI_I2C.UCBBUSY_t ...
    // Bus busy 0 Bus inactive 1 Bus busy
    obj.UCNACKIFG = IUSCI_I2C.UCNACKIFG_t ...
    // Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
    obj.UCSTPIFG = IUSCI_I2C.UCSTPIFG_t ...
    // Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
    obj.UCSTTIFG = IUSCI_I2C.UCSTTIFG_t ...
    // Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending
    obj.UCALIFG = IUSCI_I2C.UCALIFG_t ...
    // Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending
struct USCI_B0_I2C_2xx.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new USCI_B0_I2C_2xx.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
USCI_B0_I2C_2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
USCI_B0_I2C_2xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
USCI_B0_I2C_2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
USCI_B0_I2C_2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
// Instance config-params object
    params.UCB0BR0 = Bits8 0;
    // Bit Rate Control Register 0
    params.UCB0BR1 = Bits8 0;
    // Bit Rate Control Register 1
    params.UCB0CTL0 = IUSCI_B0_I2C.UCxCTL0_t {
    // Control Register 0
        UCA10: IUSCI_I2C.UCA10_OFF,
        UCSLA10: IUSCI_I2C.UCSLA10_OFF,
        UCMM: IUSCI_I2C.UCMM_OFF,
        UCMST: IUSCI_I2C.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    params.UCB0CTL1 = IUSCI_B0_I2C.UCxCTL1_t {
    // Control Register 1
        UCSSEL: IUSCI_I2C.UCSSEL_0,
        UCTR: IUSCI_I2C.UCTR_OFF,
        UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
        UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
        UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
        UCSWRST: IUSCI.UCSWRST
    };
    params.UCB0I2CIE = USCI_B0_I2C_2xx.UCBxI2CIE_t {
    // USCI_Bx I2C Interrupt Enable Register
        UCNACKIE: USCI_B0_I2C_2xx.UCNACKIE_OFF,
        UCSTPIE: USCI_B0_I2C_2xx.UCSTPIE_OFF,
        UCSTTIE: USCI_B0_I2C_2xx.UCSTTIE_OFF,
        UCALIE: USCI_B0_I2C_2xx.UCALIE_OFF
    };
    params.UCB0I2COA = IUSCI_B0_I2C.UCBxI2COA_t {
    // I2C Own Address Register
        UCGCEN: IUSCI_I2C.UCGCEN_OFF,
        I2COA: 0
    };
    params.UCB0I2CSA = Bits8 0;
    // I2C Slave Address Register
    params.UCB0RXBUF = Bits8 0;
    // Receive Buffer Register
    params.UCB0STAT = IUSCI_B0_I2C.UCxSTAT_t {
    // Status Register
        UCSCLLOW: IUSCI_I2C.UCSCLLOW,
        UCGC: IUSCI_I2C.UCGC,
        UCBBUSY: IUSCI_I2C.UCBBUSY,
        UCNACKIFG: IUSCI_I2C.UCNACKIFG,
        UCSTPIFG: IUSCI_I2C.UCSTPIFG,
        UCSTTIFG: IUSCI_I2C.UCSTTIFG,
        UCALIFG: IUSCI_I2C.UCALIFG
    };
    params.UCB0TXBUF = Bits8 0;
    // Transmit Buffer Register
    params.UCLKHz = Float 1000000;
    // Stores the UCLK external clock frequency in float
    params.forceSetDefaultRegister = USCI_B0_I2C_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "UCB0CTL0",
            regForceSet: false
        },
        {
            register: "UCB0CTL1",
            regForceSet: false
        },
        {
            register: "UCB0BR0",
            regForceSet: false
        },
        {
            register: "UCB0BR1",
            regForceSet: false
        },
        {
            register: "UCB0STAT",
            regForceSet: false
        },
        {
            register: "UCB0RXBUF",
            regForceSet: false
        },
        {
            register: "UCB0TXBUF",
            regForceSet: false
        },
        {
            register: "UCB0I2COA",
            regForceSet: false
        },
        {
            register: "UCB0I2CSA",
            regForceSet: false
        },
        {
            register: "UCB0I2CIE",
            regForceSet: false
        }
    ];
    params.interruptSource = USCI_B0_I2C_2xx.regIntVect_t[4] undefined;
    // USCI_B0 I2C interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config USCI_B0_I2C_2xx.UCB0BR0 // instance
index URL

Bit Rate Control Register 0

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0BR0 = Bits8 0;
config USCI_B0_I2C_2xx.UCB0BR1 // instance
index URL

Bit Rate Control Register 1

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0BR1 = Bits8 0;
config USCI_B0_I2C_2xx.UCB0CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0CTL0 = IUSCI_B0_I2C.UCxCTL0_t {
    UCA10: IUSCI_I2C.UCA10_OFF,
    UCSLA10: IUSCI_I2C.UCSLA10_OFF,
    UCMM: IUSCI_I2C.UCMM_OFF,
    UCMST: IUSCI_I2C.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config USCI_B0_I2C_2xx.UCB0CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0CTL1 = IUSCI_B0_I2C.UCxCTL1_t {
    UCSSEL: IUSCI_I2C.UCSSEL_0,
    UCTR: IUSCI_I2C.UCTR_OFF,
    UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
    UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
    UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
    UCSWRST: IUSCI.UCSWRST
};
config USCI_B0_I2C_2xx.UCB0I2CIE // instance
index URL

USCI_Bx I2C Interrupt Enable Register

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0I2CIE = USCI_B0_I2C_2xx.UCBxI2CIE_t {
    UCNACKIE: USCI_B0_I2C_2xx.UCNACKIE_OFF,
    UCSTPIE: USCI_B0_I2C_2xx.UCSTPIE_OFF,
    UCSTTIE: USCI_B0_I2C_2xx.UCSTTIE_OFF,
    UCALIE: USCI_B0_I2C_2xx.UCALIE_OFF
};
config USCI_B0_I2C_2xx.UCB0I2COA // instance
index URL

I2C Own Address Register

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0I2COA = IUSCI_B0_I2C.UCBxI2COA_t {
    UCGCEN: IUSCI_I2C.UCGCEN_OFF,
    I2COA: 0
};
config USCI_B0_I2C_2xx.UCB0I2CSA // instance
index URL

I2C Slave Address Register

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0I2CSA = Bits8 0;
config USCI_B0_I2C_2xx.UCB0RXBUF // instance
index URL

Receive Buffer Register

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0RXBUF = Bits8 0;
config USCI_B0_I2C_2xx.UCB0STAT // instance
index URL

Status Register

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0STAT = IUSCI_B0_I2C.UCxSTAT_t {
    UCSCLLOW: IUSCI_I2C.UCSCLLOW,
    UCGC: IUSCI_I2C.UCGC,
    UCBBUSY: IUSCI_I2C.UCBBUSY,
    UCNACKIFG: IUSCI_I2C.UCNACKIFG,
    UCSTPIFG: IUSCI_I2C.UCSTPIFG,
    UCSTTIFG: IUSCI_I2C.UCSTTIFG,
    UCALIFG: IUSCI_I2C.UCALIFG
};
config USCI_B0_I2C_2xx.UCB0TXBUF // instance
index URL

Transmit Buffer Register

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCB0TXBUF = Bits8 0;
config USCI_B0_I2C_2xx.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.UCLKHz = Float 1000000;
config USCI_B0_I2C_2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
const params.forceSetDefaultRegister = USCI_B0_I2C_2xx.ForceSetDefaultRegister_t[] [
    {
        register: "UCB0CTL0",
        regForceSet: false
    },
    {
        register: "UCB0CTL1",
        regForceSet: false
    },
    {
        register: "UCB0BR0",
        regForceSet: false
    },
    {
        register: "UCB0BR1",
        regForceSet: false
    },
    {
        register: "UCB0STAT",
        regForceSet: false
    },
    {
        register: "UCB0RXBUF",
        regForceSet: false
    },
    {
        register: "UCB0TXBUF",
        regForceSet: false
    },
    {
        register: "UCB0I2COA",
        regForceSet: false
    },
    {
        register: "UCB0I2CSA",
        regForceSet: false
    },
    {
        register: "UCB0I2CIE",
        regForceSet: false
    }
];
config USCI_B0_I2C_2xx.interruptSource // instance
index URL

USCI_B0 I2C interrupt enables

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.interruptSource = USCI_B0_I2C_2xx.regIntVect_t[4] undefined;
config USCI_B0_I2C_2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config USCI_B0_I2C_2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new USCI_B0_I2C_2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = USCI_B0_I2C_2xx.create(IClock.Instance clock, params);
// Create an instance-object
USCI_B0_I2C_2xx.getUCALIE() // instance
index URL

Gets UCALIE bit

XDCscript usage meta-domain
inst.getUCALIE() returns Bool
SEE
getUCALIE
USCI_B0_I2C_2xx.getUCBxI2CSA() // instance
index URL

Returns UCBxI2CSA register value based on which module

XDCscript usage meta-domain
inst.getUCBxI2CSA() returns Bits8
SEE
getUCBxI2CSA
USCI_B0_I2C_2xx.getUCNACKIE() // instance
index URL

Gets UCNACKIE bit

XDCscript usage meta-domain
inst.getUCNACKIE() returns Bool
SEE
getUCNACKIE
USCI_B0_I2C_2xx.getUCSTPIE() // instance
index URL

Gets UCSTPIE bit

XDCscript usage meta-domain
inst.getUCSTPIE() returns Bool
SEE
getUCSTPIE
USCI_B0_I2C_2xx.getUCSTTIE() // instance
index URL

Gets UCSTTIE bit

XDCscript usage meta-domain
inst.getUCSTTIE() returns Bool
SEE
getUCSTTIE
USCI_B0_I2C_2xx.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR0() returns Bits8
SEE
getUCxxBR0
USCI_B0_I2C_2xx.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR1() returns Bits8
SEE
getUCxxBR1
USCI_B0_I2C_2xx.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCscript usage meta-domain
inst.getUCxxRXIE() returns Bool
SEE
getUCxxRXIE
USCI_B0_I2C_2xx.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCscript usage meta-domain
inst.getUCxxTXIE() returns Bool
SEE
getUCxxTXIE
USCI_B0_I2C_2xx.setUCALIE() // instance
index URL

Sets UCALIE bit

XDCscript usage meta-domain
inst.setUCALIE(Bool set) returns Bool
SEE
setUCALIE
USCI_B0_I2C_2xx.setUCBxI2CSA() // instance
index URL

Sets UCxxI2CSA register value based on which module

XDCscript usage meta-domain
inst.setUCBxI2CSA(Bits8 value) returns Void
SEE
setUCBxI2CSA
USCI_B0_I2C_2xx.setUCNACKIE() // instance
index URL

Sets UCNACKIE bit

XDCscript usage meta-domain
inst.setUCNACKIE(Bool set) returns Bool
SEE
setUCNACKIE
USCI_B0_I2C_2xx.setUCSTPIE() // instance
index URL

Sets UCSTPIE bit

XDCscript usage meta-domain
inst.setUCSTPIE(Bool set) returns Bool
SEE
setUCSTPIE
USCI_B0_I2C_2xx.setUCSTTIE() // instance
index URL

Sets UCSTTIE bit

XDCscript usage meta-domain
inst.setUCSTTIE(Bool set) returns Bool
SEE
setUCSTTIE
USCI_B0_I2C_2xx.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR0(Bits8 value) returns Void
SEE
setUCxxBR0
USCI_B0_I2C_2xx.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR1(Bits8 value) returns Void
SEE
setUCxxBR1
USCI_B0_I2C_2xx.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCscript usage meta-domain
inst.setUCxxRXIE(Bool set) returns Bool
SEE
setUCxxRXIE
USCI_B0_I2C_2xx.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCscript usage meta-domain
inst.setUCxxTXIE(Bool set) returns Bool
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:45 GMT


module ti.catalog.msp430.peripherals.communication.USCI_B0_I2C_2xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Universal Serial Communication Interface B0 I2C 2xx
    16     */
    17    metaonly module USCI_B0_I2C_2xx inherits IUSCI_B0_I2C {
    18
    19        /*
    20         *  ======== create ========
    21         */
    22        create(IClock.Instance clock);
    23
    24        /*! Not-acknowledge interrupt enable */
    25        enum UCNACKIE_t {
    26            UCNACKIE_OFF = 0x00,    /*! Interrupt disabled */
    27            UCNACKIE = 0x80         /*! Interrupt enabled */
    28        };
    29
    30        /*! Stop condition interrupt enable */
    31        enum UCSTPIE_t {
    32            UCSTPIE_OFF = 0x00,     /*! Interrupt disabled */
    33            UCSTPIE = 0x80          /*! Interrupt enabled */
    34        };
    35
    36        /*! Start condition interrupt enable */
    37        enum UCSTTIE_t {
    38            UCSTTIE_OFF = 0x00,     /*! Interrupt disabled */
    39            UCSTTIE = 0x80          /*! Interrupt enabled */
    40        };
    41
    42        /*! Arbitration lost interrupt enable */
    43        enum UCALIE_t {
    44            UCALIE_OFF = 0x00,      /*! Interrupt disabled */
    45            UCALIE = 0x80           /*! Interrupt enabled */
    46        };
    47
    48        /*! USCI_Bx I2C Interrupt Enable Register */
    49        struct UCBxI2CIE_t {
    50            UCNACKIE_t  UCNACKIE;   /*! Not-acknowledge interrupt enable
    51                                     *  0  Interrupt disabled
    52                                     *  1  Interrupt enabled */
    53            UCSTPIE_t   UCSTPIE;    /*! Stop condition interrupt enable
    54                                     *  0  Interrupt disabled
    55                                     *  1  Interrupt enabled */
    56            UCSTTIE_t   UCSTTIE;    /*! Start condition interrupt enable
    57                                     *  0  Interrupt disabled
    58                                     *  1  Interrupt enabled */
    59            UCALIE_t    UCALIE;    /*! Arbitration lost interrupt enable
    60                                     *  0  Interrupt disabled
    61                                     *  1  Interrupt enabled */
    62        }
    63
    64    instance:
    65        /*! @_nodoc */
    66        config IClock.Instance clock;
    67
    68        /*! USCI_Bx I2C Interrupt Enable Register */
    69        config UCBxI2CIE_t UCB0I2CIE = {
    70            UCNACKIE    : UCNACKIE_OFF,
    71            UCSTPIE     : UCSTPIE_OFF,
    72            UCSTTIE     : UCSTTIE_OFF,
    73            UCALIE      : UCALIE_OFF,
    74        };
    75
    76       /*!
    77        *  ======== setUCNACKIE ========
    78        *  Sets UCNACKIE bit
    79        *
    80        *  @see #setUCNACKIE
    81        */
    82        Bool setUCNACKIE(Bool set);
    83
    84       /*!
    85        *  ======== getUCNACKIE ========
    86        *  Gets UCNACKIE bit
    87        *
    88        *  @see #getUCNACKIE
    89        */
    90        Bool getUCNACKIE();
    91
    92       /*!
    93        *  ======== setUCSTPIE ========
    94        *  Sets UCSTPIE bit
    95        *
    96        *  @see #setUCSTPIE
    97        */
    98        Bool setUCSTPIE(Bool set);
    99
   100       /*!
   101        *  ======== getUCSTPIE ========
   102        *  Gets UCSTPIE bit
   103        *
   104        *  @see #getUCSTPIE
   105        */
   106        Bool getUCSTPIE();
   107
   108       /*!
   109        *  ======== setUCSTTIE ========
   110        *  Sets UCSTTIE bit
   111        *
   112        *  @see #setUCSTTIE
   113        */
   114        Bool setUCSTTIE(Bool set);
   115
   116       /*!
   117        *  ======== getUCSTTIE ========
   118        *  Gets UCSTTIE bit
   119        *
   120        *  @see #getUCSTTIE
   121        */
   122        Bool getUCSTTIE();
   123
   124       /*!
   125        *  ======== setUCALIE ========
   126        *  Sets UCALIE bit
   127        *
   128        *  @see #setUCALIE
   129        */
   130        Bool setUCALIE(Bool set);
   131
   132       /*!
   133        *  ======== getUCALIE ========
   134        *  Gets UCALIE bit
   135        *
   136        *  @see #getUCALIE
   137        */
   138        Bool getUCALIE();
   139
   140        /*! USCI_B0 I2C interrupt enables */
   141        config regIntVect_t interruptSource[4];
   142
   143        /*! Determine if each Register needs to be forced set or not */
   144        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   145        [
   146            { register : "UCB0CTL0"   , regForceSet : false },
   147            { register : "UCB0CTL1"   , regForceSet : false },
   148            { register : "UCB0BR0"    , regForceSet : false },
   149            { register : "UCB0BR1"    , regForceSet : false },
   150            { register : "UCB0STAT"   , regForceSet : false },
   151            { register : "UCB0RXBUF"  , regForceSet : false },
   152            { register : "UCB0TXBUF"  , regForceSet : false },
   153            { register : "UCB0I2COA"  , regForceSet : false },
   154            { register : "UCB0I2CSA"  , regForceSet : false },
   155            { register : "UCB0I2CIE"  , regForceSet : false }
   156        ];
   157    }


module ti.catalog.msp430.peripherals.communication.USCI_B0_SPI_2xx

metaonly module ti.catalog.msp430.peripherals.communication.USCI_B0_SPI_2xx
index URL

Universal Serial Communication Interface B0 SPI 2xx

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/USCI_B0_SPI_2xx.xdc
var USCI_B0_SPI_2xx = xdc.useModule('ti.catalog.msp430.peripherals.communication.USCI_B0_SPI_2xx');
module-wide constants & types
    values of type USCI_B0_SPI_2xx.UC7BIT_t// Character length. Selects 7-bit or 8-bit character length
        const USCI_B0_SPI_2xx.UC7BIT_OFF// 8-bit;
        const USCI_B0_SPI_2xx.UC7BIT// 7-bit;
    values of type USCI_B0_SPI_2xx.UCADDR_t// Address received in address-bit multiprocessor mode
        const USCI_B0_SPI_2xx.UCADDR_OFF// Received character is data;
        const USCI_B0_SPI_2xx.UCADDR// Received character is an address;
    values of type USCI_B0_SPI_2xx.UCBRKIE_t// Receive break character interrupt-enable
        const USCI_B0_SPI_2xx.UCBRKIE_OFF// Received break characters do not set UCAxRXIFG;
        const USCI_B0_SPI_2xx.UCBRKIE// Received break characters set UCAxRXIFG;
    values of type USCI_B0_SPI_2xx.UCBRK_t// Break detect flag
        const USCI_B0_SPI_2xx.UCBRK_OFF// No break condition;
        const USCI_B0_SPI_2xx.UCBRK// Break condition occurred;
    values of type USCI_B0_SPI_2xx.UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress
        const USCI_B0_SPI_2xx.UCBUSY_OFF// USCI inactive;
        const USCI_B0_SPI_2xx.UCBUSY// USCI transmitting or receiving;
    values of type USCI_B0_SPI_2xx.UCCKPH_t// Clock phase select
        const USCI_B0_SPI_2xx.UCCKPH_OFF// Data is changed on the first UCLK edge and captured on the following edge;
        const USCI_B0_SPI_2xx.UCCKPH// Data is captured on the first UCLK edge and changed on the following edge;
    values of type USCI_B0_SPI_2xx.UCCKPL_t// Clock polarity select
        const USCI_B0_SPI_2xx.UCCKPL_OFF// Inactive state is low;
        const USCI_B0_SPI_2xx.UCCKPL// Inactive state is high;
    values of type USCI_B0_SPI_2xx.UCDORM_t// Dormant. Puts USCI into sleep mode
        const USCI_B0_SPI_2xx.UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG;
        const USCI_B0_SPI_2xx.UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
    values of type USCI_B0_SPI_2xx.UCFE_t// Framing error flag
        const USCI_B0_SPI_2xx.UCFE_OFF// 0 No error;
        const USCI_B0_SPI_2xx.UCFE// Character received with low stop bit;
    values of type USCI_B0_SPI_2xx.UCIDLE_t// Idle line detected in idle-line multiprocessor mode
        const USCI_B0_SPI_2xx.UCIDLE_OFF// No idle line detected;
        const USCI_B0_SPI_2xx.UCIDLE// Idle line detected;
    values of type USCI_B0_SPI_2xx.UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode
        const USCI_B0_SPI_2xx.UCLISTEN_OFF// Disabled;
        const USCI_B0_SPI_2xx.UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver;
    values of type USCI_B0_SPI_2xx.UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1
        const USCI_B0_SPI_2xx.UCMODE_0// 3-Pin SPI;
        const USCI_B0_SPI_2xx.UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1;
        const USCI_B0_SPI_2xx.UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0;
        const USCI_B0_SPI_2xx.UCMODE_3// I2C Mode;
    values of type USCI_B0_SPI_2xx.UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register
        const USCI_B0_SPI_2xx.UCMSB_OFF// LSB first;
        const USCI_B0_SPI_2xx.UCMSB// MSB first;
    values of type USCI_B0_SPI_2xx.UCMST_t// Master mode select
        const USCI_B0_SPI_2xx.UCMST_OFF// Slave mode;
        const USCI_B0_SPI_2xx.UCMST// Master mode;
    values of type USCI_B0_SPI_2xx.UCOE_t// Overrun error flag
        const USCI_B0_SPI_2xx.UCOE_OFF// No error;
        const USCI_B0_SPI_2xx.UCOE// Overrun error occurred;
    values of type USCI_B0_SPI_2xx.UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0
        const USCI_B0_SPI_2xx.UCPE_OFF// No error;
        const USCI_B0_SPI_2xx.UCPE// Character received with parity error;
    values of type USCI_B0_SPI_2xx.UCRXEIE_t// Receive erroneous-character interrupt-enable
        const USCI_B0_SPI_2xx.UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set;
        const USCI_B0_SPI_2xx.UCRXEIE// Erroneous characters received will set UCAxRXIFG;
    values of type USCI_B0_SPI_2xx.UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read
        const USCI_B0_SPI_2xx.UCRXERR_OFF// No receive errors detected;
        const USCI_B0_SPI_2xx.UCRXERR// Receive error detected;
    values of type USCI_B0_SPI_2xx.UCSSEL_SPI_t// USCI clock source select. These bits select the BRCLK source clock
        const USCI_B0_SPI_2xx.UCSSEL_0// NA;
        const USCI_B0_SPI_2xx.UCSSEL_1// ACLK;
        const USCI_B0_SPI_2xx.UCSSEL_2// SMCLK;
    values of type USCI_B0_SPI_2xx.UCSWRST_t// Software reset enable
        const USCI_B0_SPI_2xx.UCSWRST_OFF// Disabled. USCI reset released for operation;
        const USCI_B0_SPI_2xx.UCSWRST// Enabled. USCI logic held in reset state;
    values of type USCI_B0_SPI_2xx.UCSYNC_t// Synchronous mode enable
        const USCI_B0_SPI_2xx.UCSYNC_OFF// Asynchronous mode;
        const USCI_B0_SPI_2xx.UCSYNC// Synchronous Mode;
    values of type USCI_B0_SPI_2xx.UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode
        const USCI_B0_SPI_2xx.UCTXADDR_OFF// Next frame transmitted is data;
        const USCI_B0_SPI_2xx.UCTXADDR// Next frame transmitted is an address;
    values of type USCI_B0_SPI_2xx.UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer
        const USCI_B0_SPI_2xx.UCTXBRK_OFF// Next frame transmitted is not a break;
        const USCI_B0_SPI_2xx.UCTXBRK// Next frame transmitted is a break or a break/synch;
    var obj = new USCI_B0_SPI_2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new USCI_B0_SPI_2xx.UCxCTL0_t// ;
        obj.UCCKPH// Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge = IUSCI_SPI.UCCKPH_t ...
        obj.UCCKPL// Clock polarity select 0 The inactive state is low 1 The inactive state is high = IUSCI_SPI.UCCKPL_t ...
        obj.UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first = IUSCI_SPI.UCMSB_t ...
        obj.UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data = IUSCI_SPI.UC7BIT_t ...
        obj.UCMST// Master mode select 0 Slave mode 1 Master mode = IUSCI_SPI.UCMST_t ...
        obj.UCMODE// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode = IUSCI_SPI.UCMODE_SYNC_t ...
        obj.UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode = IUSCI_SPI.UCSYNC_t ...
    var obj = new USCI_B0_SPI_2xx.UCxCTL1_t// ;
        obj.UCSSEL// USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK = IUSCI_SPI.UCSSEL_SPI_t ...
        obj.UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state = IUSCI_SPI.UCSWRST_t ...
    var obj = new USCI_B0_SPI_2xx.UCxSTAT_t// ;
        obj.UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver = IUSCI_SPI.UCLISTEN_t ...
        obj.UCFE// Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred = IUSCI_SPI.UCFE_t ...
        obj.UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred = IUSCI_SPI.UCOE_t ...
        obj.UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving = IUSCI_SPI.UCBUSY_t ...
    var obj = new USCI_B0_SPI_2xx.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     USCI_B0_SPI_2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     USCI_B0_SPI_2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new USCI_B0_SPI_2xx.Params// Instance config-params object;
        params.UCB0BR0// Bit Rate Control Register 0 = Bits8 0;
        params.UCB0BR1// Bit Rate Control Register 1 = Bits8 0;
        params.UCB0CTL0// Control Register 0 = IUSCI_B0_SPI.UCxCTL0_t {
            UCCKPH: IUSCI_SPI.UCCKPH_OFF,
            UCCKPL: IUSCI_SPI.UCCKPL_OFF,
            UCMSB: IUSCI.UCMSB_OFF,
            UC7BIT: IUSCI.UC7BIT_OFF,
            UCMST: IUSCI_SPI.UCMST_OFF,
            UCMODE: IUSCI.UCMODE_0,
            UCSYNC: IUSCI.UCSYNC
        };
        params.UCB0CTL1// Control Register 1 = IUSCI_B0_SPI.UCxCTL1_t {
            UCSSEL: IUSCI_SPI.UCSSEL_0,
            UCSWRST: IUSCI.UCSWRST
        };
        params.UCB0RXBUF// Receive Buffer Register = Bits8 0;
        params.UCB0STAT// Status Register = IUSCI_B0_SPI.UCxSTAT_t {
            UCLISTEN: IUSCI.UCLISTEN_OFF,
            UCFE: IUSCI.UCFE_OFF,
            UCOE: IUSCI.UCOE_OFF,
            UCBUSY: IUSCI.UCBUSY
        };
        params.UCB0TXBUF// Transmit Buffer Register = Bits8 0;
        params.UCLKHz// Stores the UCLK external clock frequency in float = Float 1000000;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = USCI_B0_SPI_2xx.ForceSetDefaultRegister_t[] [
            {
                register: "UCB0CTL0",
                regForceSet: false
            },
            {
                register: "UCB0CTL1",
                regForceSet: false
            },
            {
                register: "UCB0BR0",
                regForceSet: false
            },
            {
                register: "UCB0BR1",
                regForceSet: false
            },
            {
                register: "UCB0STAT",
                regForceSet: false
            },
            {
                register: "UCB0RXBUF",
                regForceSet: false
            },
            {
                register: "UCB0TXBUF",
                regForceSet: false
            }
        ];
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = USCI_B0_SPI_2xx.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getUCxxBR0// Returns UCxxBR0 register value based on which module() returns Bits8
     inst.getUCxxBR1// Returns UCxxBR1 register value based on which module() returns Bits8
     inst.getUCxxRXIE// Gets UCxxRXIE bit() returns Bool
     inst.getUCxxTXIE// Gets UCxxTXIE bit() returns Bool
     inst.setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value) returns Void
     inst.setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value) returns Void
     inst.setUCxxRXIE// Sets UCxxRXIE bit(Bool set) returns Bool
     inst.setUCxxTXIE// Sets UCxxTXIE bit(Bool set) returns Bool
enum USCI_B0_SPI_2xx.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UC7BIT_t
    const USCI_B0_SPI_2xx.UC7BIT_OFF;
    // 8-bit
    const USCI_B0_SPI_2xx.UC7BIT;
    // 7-bit
enum USCI_B0_SPI_2xx.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCADDR_t
    const USCI_B0_SPI_2xx.UCADDR_OFF;
    // Received character is data
    const USCI_B0_SPI_2xx.UCADDR;
    // Received character is an address
enum USCI_B0_SPI_2xx.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCBRKIE_t
    const USCI_B0_SPI_2xx.UCBRKIE_OFF;
    // Received break characters do not set UCAxRXIFG
    const USCI_B0_SPI_2xx.UCBRKIE;
    // Received break characters set UCAxRXIFG
enum USCI_B0_SPI_2xx.UCBRK_t
index URL

Break detect flag

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCBRK_t
    const USCI_B0_SPI_2xx.UCBRK_OFF;
    // No break condition
    const USCI_B0_SPI_2xx.UCBRK;
    // Break condition occurred
enum USCI_B0_SPI_2xx.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCBUSY_t
    const USCI_B0_SPI_2xx.UCBUSY_OFF;
    // USCI inactive
    const USCI_B0_SPI_2xx.UCBUSY;
    // USCI transmitting or receiving
enum USCI_B0_SPI_2xx.UCCKPH_t
index URL

Clock phase select

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCCKPH_t
    const USCI_B0_SPI_2xx.UCCKPH_OFF;
    // Data is changed on the first UCLK edge and captured on the following edge
    const USCI_B0_SPI_2xx.UCCKPH;
    // Data is captured on the first UCLK edge and changed on the following edge
enum USCI_B0_SPI_2xx.UCCKPL_t
index URL

Clock polarity select

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCCKPL_t
    const USCI_B0_SPI_2xx.UCCKPL_OFF;
    // Inactive state is low
    const USCI_B0_SPI_2xx.UCCKPL;
    // Inactive state is high
enum USCI_B0_SPI_2xx.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCDORM_t
    const USCI_B0_SPI_2xx.UCDORM_OFF;
    // Not dormant. All received characters will set UCAxRXIFG
    const USCI_B0_SPI_2xx.UCDORM;
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
enum USCI_B0_SPI_2xx.UCFE_t
index URL

Framing error flag

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCFE_t
    const USCI_B0_SPI_2xx.UCFE_OFF;
    // 0 No error
    const USCI_B0_SPI_2xx.UCFE;
    // Character received with low stop bit
enum USCI_B0_SPI_2xx.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCIDLE_t
    const USCI_B0_SPI_2xx.UCIDLE_OFF;
    // No idle line detected
    const USCI_B0_SPI_2xx.UCIDLE;
    // Idle line detected
enum USCI_B0_SPI_2xx.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCLISTEN_t
    const USCI_B0_SPI_2xx.UCLISTEN_OFF;
    // Disabled
    const USCI_B0_SPI_2xx.UCLISTEN;
    // Enabled. UCAxTXD is internally fed back to the receiver
enum USCI_B0_SPI_2xx.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCMODE_SYNC_t
    const USCI_B0_SPI_2xx.UCMODE_0;
    // 3-Pin SPI
    const USCI_B0_SPI_2xx.UCMODE_1;
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    const USCI_B0_SPI_2xx.UCMODE_2;
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    const USCI_B0_SPI_2xx.UCMODE_3;
    // I2C Mode
enum USCI_B0_SPI_2xx.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCMSB_t
    const USCI_B0_SPI_2xx.UCMSB_OFF;
    // LSB first
    const USCI_B0_SPI_2xx.UCMSB;
    // MSB first
enum USCI_B0_SPI_2xx.UCMST_t
index URL

Master mode select

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCMST_t
    const USCI_B0_SPI_2xx.UCMST_OFF;
    // Slave mode
    const USCI_B0_SPI_2xx.UCMST;
    // Master mode
enum USCI_B0_SPI_2xx.UCOE_t
index URL

Overrun error flag

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCOE_t
    const USCI_B0_SPI_2xx.UCOE_OFF;
    // No error
    const USCI_B0_SPI_2xx.UCOE;
    // Overrun error occurred
enum USCI_B0_SPI_2xx.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCPE_t
    const USCI_B0_SPI_2xx.UCPE_OFF;
    // No error
    const USCI_B0_SPI_2xx.UCPE;
    // Character received with parity error
enum USCI_B0_SPI_2xx.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCRXEIE_t
    const USCI_B0_SPI_2xx.UCRXEIE_OFF;
    // Erroneous characters rejected and UCAxRXIFG is not set
    const USCI_B0_SPI_2xx.UCRXEIE;
    // Erroneous characters received will set UCAxRXIFG
enum USCI_B0_SPI_2xx.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCRXERR_t
    const USCI_B0_SPI_2xx.UCRXERR_OFF;
    // No receive errors detected
    const USCI_B0_SPI_2xx.UCRXERR;
    // Receive error detected
enum USCI_B0_SPI_2xx.UCSSEL_SPI_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCSSEL_SPI_t
    const USCI_B0_SPI_2xx.UCSSEL_0;
    // NA
    const USCI_B0_SPI_2xx.UCSSEL_1;
    // ACLK
    const USCI_B0_SPI_2xx.UCSSEL_2;
    // SMCLK
enum USCI_B0_SPI_2xx.UCSWRST_t
index URL

Software reset enable

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCSWRST_t
    const USCI_B0_SPI_2xx.UCSWRST_OFF;
    // Disabled. USCI reset released for operation
    const USCI_B0_SPI_2xx.UCSWRST;
    // Enabled. USCI logic held in reset state
enum USCI_B0_SPI_2xx.UCSYNC_t
index URL

Synchronous mode enable

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCSYNC_t
    const USCI_B0_SPI_2xx.UCSYNC_OFF;
    // Asynchronous mode
    const USCI_B0_SPI_2xx.UCSYNC;
    // Synchronous Mode
enum USCI_B0_SPI_2xx.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCTXADDR_t
    const USCI_B0_SPI_2xx.UCTXADDR_OFF;
    // Next frame transmitted is data
    const USCI_B0_SPI_2xx.UCTXADDR;
    // Next frame transmitted is an address
enum USCI_B0_SPI_2xx.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCscript usage meta-domain
values of type USCI_B0_SPI_2xx.UCTXBRK_t
    const USCI_B0_SPI_2xx.UCTXBRK_OFF;
    // Next frame transmitted is not a break
    const USCI_B0_SPI_2xx.UCTXBRK;
    // Next frame transmitted is a break or a break/synch
struct USCI_B0_SPI_2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new USCI_B0_SPI_2xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct USCI_B0_SPI_2xx.UCxCTL0_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B0_SPI_2xx.UCxCTL0_t;
    obj.UCCKPH = IUSCI_SPI.UCCKPH_t ...
    // Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge
    obj.UCCKPL = IUSCI_SPI.UCCKPL_t ...
    // Clock polarity select 0 The inactive state is low 1 The inactive state is high
    obj.UCMSB = IUSCI_SPI.UCMSB_t ...
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
    obj.UC7BIT = IUSCI_SPI.UC7BIT_t ...
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
    obj.UCMST = IUSCI_SPI.UCMST_t ...
    // Master mode select 0 Slave mode 1 Master mode
    obj.UCMODE = IUSCI_SPI.UCMODE_SYNC_t ...
    // USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode
    obj.UCSYNC = IUSCI_SPI.UCSYNC_t ...
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
struct USCI_B0_SPI_2xx.UCxCTL1_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B0_SPI_2xx.UCxCTL1_t;
    obj.UCSSEL = IUSCI_SPI.UCSSEL_SPI_t ...
    // USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK
    obj.UCSWRST = IUSCI_SPI.UCSWRST_t ...
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
struct USCI_B0_SPI_2xx.UCxSTAT_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B0_SPI_2xx.UCxSTAT_t;
    obj.UCLISTEN = IUSCI_SPI.UCLISTEN_t ...
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
    obj.UCFE = IUSCI_SPI.UCFE_t ...
    // Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred
    obj.UCOE = IUSCI_SPI.UCOE_t ...
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
    obj.UCBUSY = IUSCI_SPI.UCBUSY_t ...
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
struct USCI_B0_SPI_2xx.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new USCI_B0_SPI_2xx.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
USCI_B0_SPI_2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
USCI_B0_SPI_2xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
USCI_B0_SPI_2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
USCI_B0_SPI_2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
// Instance config-params object
    params.UCB0BR0 = Bits8 0;
    // Bit Rate Control Register 0
    params.UCB0BR1 = Bits8 0;
    // Bit Rate Control Register 1
    params.UCB0CTL0 = IUSCI_B0_SPI.UCxCTL0_t {
    // Control Register 0
        UCCKPH: IUSCI_SPI.UCCKPH_OFF,
        UCCKPL: IUSCI_SPI.UCCKPL_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCMST: IUSCI_SPI.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    params.UCB0CTL1 = IUSCI_B0_SPI.UCxCTL1_t {
    // Control Register 1
        UCSSEL: IUSCI_SPI.UCSSEL_0,
        UCSWRST: IUSCI.UCSWRST
    };
    params.UCB0RXBUF = Bits8 0;
    // Receive Buffer Register
    params.UCB0STAT = IUSCI_B0_SPI.UCxSTAT_t {
    // Status Register
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    params.UCB0TXBUF = Bits8 0;
    // Transmit Buffer Register
    params.UCLKHz = Float 1000000;
    // Stores the UCLK external clock frequency in float
    params.forceSetDefaultRegister = USCI_B0_SPI_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "UCB0CTL0",
            regForceSet: false
        },
        {
            register: "UCB0CTL1",
            regForceSet: false
        },
        {
            register: "UCB0BR0",
            regForceSet: false
        },
        {
            register: "UCB0BR1",
            regForceSet: false
        },
        {
            register: "UCB0STAT",
            regForceSet: false
        },
        {
            register: "UCB0RXBUF",
            regForceSet: false
        },
        {
            register: "UCB0TXBUF",
            regForceSet: false
        }
    ];
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config USCI_B0_SPI_2xx.UCB0BR0 // instance
index URL

Bit Rate Control Register 0

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.UCB0BR0 = Bits8 0;
config USCI_B0_SPI_2xx.UCB0BR1 // instance
index URL

Bit Rate Control Register 1

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.UCB0BR1 = Bits8 0;
config USCI_B0_SPI_2xx.UCB0CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.UCB0CTL0 = IUSCI_B0_SPI.UCxCTL0_t {
    UCCKPH: IUSCI_SPI.UCCKPH_OFF,
    UCCKPL: IUSCI_SPI.UCCKPL_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCMST: IUSCI_SPI.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config USCI_B0_SPI_2xx.UCB0CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.UCB0CTL1 = IUSCI_B0_SPI.UCxCTL1_t {
    UCSSEL: IUSCI_SPI.UCSSEL_0,
    UCSWRST: IUSCI.UCSWRST
};
config USCI_B0_SPI_2xx.UCB0RXBUF // instance
index URL

Receive Buffer Register

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.UCB0RXBUF = Bits8 0;
config USCI_B0_SPI_2xx.UCB0STAT // instance
index URL

Status Register

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.UCB0STAT = IUSCI_B0_SPI.UCxSTAT_t {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config USCI_B0_SPI_2xx.UCB0TXBUF // instance
index URL

Transmit Buffer Register

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.UCB0TXBUF = Bits8 0;
config USCI_B0_SPI_2xx.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.UCLKHz = Float 1000000;
config USCI_B0_SPI_2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
const params.forceSetDefaultRegister = USCI_B0_SPI_2xx.ForceSetDefaultRegister_t[] [
    {
        register: "UCB0CTL0",
        regForceSet: false
    },
    {
        register: "UCB0CTL1",
        regForceSet: false
    },
    {
        register: "UCB0BR0",
        regForceSet: false
    },
    {
        register: "UCB0BR1",
        regForceSet: false
    },
    {
        register: "UCB0STAT",
        regForceSet: false
    },
    {
        register: "UCB0RXBUF",
        regForceSet: false
    },
    {
        register: "UCB0TXBUF",
        regForceSet: false
    }
];
config USCI_B0_SPI_2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config USCI_B0_SPI_2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new USCI_B0_SPI_2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = USCI_B0_SPI_2xx.create(IClock.Instance clock, params);
// Create an instance-object
USCI_B0_SPI_2xx.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR0() returns Bits8
SEE
getUCxxBR0
USCI_B0_SPI_2xx.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR1() returns Bits8
SEE
getUCxxBR1
USCI_B0_SPI_2xx.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCscript usage meta-domain
inst.getUCxxRXIE() returns Bool
SEE
getUCxxRXIE
USCI_B0_SPI_2xx.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCscript usage meta-domain
inst.getUCxxTXIE() returns Bool
SEE
getUCxxTXIE
USCI_B0_SPI_2xx.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR0(Bits8 value) returns Void
SEE
setUCxxBR0
USCI_B0_SPI_2xx.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR1(Bits8 value) returns Void
SEE
setUCxxBR1
USCI_B0_SPI_2xx.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCscript usage meta-domain
inst.setUCxxRXIE(Bool set) returns Bool
SEE
setUCxxRXIE
USCI_B0_SPI_2xx.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCscript usage meta-domain
inst.setUCxxTXIE(Bool set) returns Bool
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:45 GMT


module ti.catalog.msp430.peripherals.communication.USCI_B0_SPI_2xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Universal Serial Communication Interface B0 SPI 2xx
    16     */
    17    metaonly module USCI_B0_SPI_2xx inherits IUSCI_B0_SPI {
    18
    19        /*
    20         *  ======== create ========
    21         */
    22        create(IClock.Instance clock);
    23
    24    instance:
    25        /*! @_nodoc */
    26        config IClock.Instance clock;
    27
    28        /*! Determine if each Register needs to be forced set or not */
    29        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    30        [
    31            { register : "UCB0CTL0"   , regForceSet : false },
    32            { register : "UCB0CTL1"   , regForceSet : false },
    33            { register : "UCB0BR0"    , regForceSet : false },
    34            { register : "UCB0BR1"    , regForceSet : false },
    35            { register : "UCB0STAT"   , regForceSet : false },
    36            { register : "UCB0RXBUF"  , regForceSet : false },
    37            { register : "UCB0TXBUF"  , regForceSet : false }
    38        ];
    39    }


module ti.catalog.msp430.peripherals.communication.USCI_B1_I2C_2xx

metaonly module ti.catalog.msp430.peripherals.communication.USCI_B1_I2C_2xx
index URL

Universal Serial Communication Interface B1 I2C 2xx

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/USCI_B1_I2C_2xx.xdc
var USCI_B1_I2C_2xx = xdc.useModule('ti.catalog.msp430.peripherals.communication.USCI_B1_I2C_2xx');
module-wide constants & types
    values of type USCI_B1_I2C_2xx.UC7BIT_t// Character length. Selects 7-bit or 8-bit character length
        const USCI_B1_I2C_2xx.UC7BIT_OFF// 8-bit;
        const USCI_B1_I2C_2xx.UC7BIT// 7-bit;
    values of type USCI_B1_I2C_2xx.UCA10_t// Own addressing mode select
        const USCI_B1_I2C_2xx.UCA10_OFF// Own address is a 7-bit address;
        const USCI_B1_I2C_2xx.UCA10// Own address is a 10-bit address;
    values of type USCI_B1_I2C_2xx.UCADDR_t// Address received in address-bit multiprocessor mode
        const USCI_B1_I2C_2xx.UCADDR_OFF// Received character is data;
        const USCI_B1_I2C_2xx.UCADDR// Received character is an address;
    values of type USCI_B1_I2C_2xx.UCALIE_t// Arbitration lost interrupt enable
        const USCI_B1_I2C_2xx.UCALIE_OFF// Interrupt disabled;
        const USCI_B1_I2C_2xx.UCALIE// Interrupt enabled;
    values of type USCI_B1_I2C_2xx.UCALIFG_t// Arbitration lost interrupt flag
        const USCI_B1_I2C_2xx.UCALIFG_OFF// No interrupt pending;
        const USCI_B1_I2C_2xx.UCALIFG// Interrupt pending;
    values of type USCI_B1_I2C_2xx.UCB1RXIE_t// USCI_B1 receive interrupt enable
        const USCI_B1_I2C_2xx.UCB1RXIE_OFF// Interrupt disabled;
        const USCI_B1_I2C_2xx.UCB1RXIE// Interrupt enabled;
    values of type USCI_B1_I2C_2xx.UCB1TXIE_t// USCI_B1 transmit interrupt enable
        const USCI_B1_I2C_2xx.UCB1TXIE_OFF// Interrupt disabled;
        const USCI_B1_I2C_2xx.UCB1TXIE// Interrupt enabled;
    values of type USCI_B1_I2C_2xx.UCBBUSY_t// Bus busy
        const USCI_B1_I2C_2xx.UCBBUSY_OFF// Bus inactive;
        const USCI_B1_I2C_2xx.UCBBUSY// Bus busy;
    values of type USCI_B1_I2C_2xx.UCBRKIE_t// Receive break character interrupt-enable
        const USCI_B1_I2C_2xx.UCBRKIE_OFF// Received break characters do not set UCAxRXIFG;
        const USCI_B1_I2C_2xx.UCBRKIE// Received break characters set UCAxRXIFG;
    values of type USCI_B1_I2C_2xx.UCBRK_t// Break detect flag
        const USCI_B1_I2C_2xx.UCBRK_OFF// No break condition;
        const USCI_B1_I2C_2xx.UCBRK// Break condition occurred;
    values of type USCI_B1_I2C_2xx.UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress
        const USCI_B1_I2C_2xx.UCBUSY_OFF// USCI inactive;
        const USCI_B1_I2C_2xx.UCBUSY// USCI transmitting or receiving;
    values of type USCI_B1_I2C_2xx.UCDORM_t// Dormant. Puts USCI into sleep mode
        const USCI_B1_I2C_2xx.UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG;
        const USCI_B1_I2C_2xx.UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
    values of type USCI_B1_I2C_2xx.UCFE_t// Framing error flag
        const USCI_B1_I2C_2xx.UCFE_OFF// 0 No error;
        const USCI_B1_I2C_2xx.UCFE// Character received with low stop bit;
    values of type USCI_B1_I2C_2xx.UCGCEN_t// General call response enable
        const USCI_B1_I2C_2xx.UCGCEN_OFF// Do not respond to a general call;
        const USCI_B1_I2C_2xx.UCGCEN// Respond to a general call;
    values of type USCI_B1_I2C_2xx.UCGC_t// General call address received
        const USCI_B1_I2C_2xx.UCGC_OFF// No general call address received;
        const USCI_B1_I2C_2xx.UCGC// General call address received;
    values of type USCI_B1_I2C_2xx.UCIDLE_t// Idle line detected in idle-line multiprocessor mode
        const USCI_B1_I2C_2xx.UCIDLE_OFF// No idle line detected;
        const USCI_B1_I2C_2xx.UCIDLE// Idle line detected;
    values of type USCI_B1_I2C_2xx.UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode
        const USCI_B1_I2C_2xx.UCLISTEN_OFF// Disabled;
        const USCI_B1_I2C_2xx.UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver;
    values of type USCI_B1_I2C_2xx.UCMM_t// Multi-master environment select
        const USCI_B1_I2C_2xx.UCMM_OFF// Single master environment. There is no other master in the system. The address compare unit is disabled;
        const USCI_B1_I2C_2xx.UCMM// Multi master environment;
    values of type USCI_B1_I2C_2xx.UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1
        const USCI_B1_I2C_2xx.UCMODE_0// 3-Pin SPI;
        const USCI_B1_I2C_2xx.UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1;
        const USCI_B1_I2C_2xx.UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0;
        const USCI_B1_I2C_2xx.UCMODE_3// I2C Mode;
    values of type USCI_B1_I2C_2xx.UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register
        const USCI_B1_I2C_2xx.UCMSB_OFF// LSB first;
        const USCI_B1_I2C_2xx.UCMSB// MSB first;
    values of type USCI_B1_I2C_2xx.UCMST_t// Master mode select
        const USCI_B1_I2C_2xx.UCMST_OFF// Slave mode;
        const USCI_B1_I2C_2xx.UCMST// Master mode;
    values of type USCI_B1_I2C_2xx.UCNACKIE_t// Not-acknowledge interrupt enable
        const USCI_B1_I2C_2xx.UCNACKIE_OFF// Interrupt disabled;
        const USCI_B1_I2C_2xx.UCNACKIE// Interrupt enabled;
    values of type USCI_B1_I2C_2xx.UCNACKIFG_t// Not-acknowledge received interrupt flag
        const USCI_B1_I2C_2xx.UCNACKIFG_OFF// No interrupt pending;
        const USCI_B1_I2C_2xx.UCNACKIFG// Interrupt pending;
    values of type USCI_B1_I2C_2xx.UCOE_t// Overrun error flag
        const USCI_B1_I2C_2xx.UCOE_OFF// No error;
        const USCI_B1_I2C_2xx.UCOE// Overrun error occurred;
    values of type USCI_B1_I2C_2xx.UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0
        const USCI_B1_I2C_2xx.UCPE_OFF// No error;
        const USCI_B1_I2C_2xx.UCPE// Character received with parity error;
    values of type USCI_B1_I2C_2xx.UCRXEIE_t// Receive erroneous-character interrupt-enable
        const USCI_B1_I2C_2xx.UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set;
        const USCI_B1_I2C_2xx.UCRXEIE// Erroneous characters received will set UCAxRXIFG;
    values of type USCI_B1_I2C_2xx.UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read
        const USCI_B1_I2C_2xx.UCRXERR_OFF// No receive errors detected;
        const USCI_B1_I2C_2xx.UCRXERR// Receive error detected;
    values of type USCI_B1_I2C_2xx.UCSCLLOW_t// SCL low
        const USCI_B1_I2C_2xx.UCSCLLOW_OFF// SCL is not held low;
        const USCI_B1_I2C_2xx.UCSCLLOW// SCL is held low;
    values of type USCI_B1_I2C_2xx.UCSLA10_t// Slave addressing mode select
        const USCI_B1_I2C_2xx.UCSLA10_OFF// Address slave with 7-bit address;
        const USCI_B1_I2C_2xx.UCSLA10// Address slave with 10-bit address;
    values of type USCI_B1_I2C_2xx.UCSSEL_I2C_t// USCI clock source select. These bits select the BRCLK source clock
        const USCI_B1_I2C_2xx.UCSSEL_0// UCLK;
        const USCI_B1_I2C_2xx.UCSSEL_1// ACLK;
        const USCI_B1_I2C_2xx.UCSSEL_2// SMCLK;
    values of type USCI_B1_I2C_2xx.UCSTPIE_t// Stop condition interrupt enable
        const USCI_B1_I2C_2xx.UCSTPIE_OFF// Interrupt disabled;
        const USCI_B1_I2C_2xx.UCSTPIE// Interrupt enabled;
    values of type USCI_B1_I2C_2xx.UCSTPIFG_t// Stop condition interrupt flag
        const USCI_B1_I2C_2xx.UCSTPIFG_OFF// No interrupt pending;
        const USCI_B1_I2C_2xx.UCSTPIFG// Interrupt pending;
    values of type USCI_B1_I2C_2xx.UCSTTIE_t// Start condition interrupt enable
        const USCI_B1_I2C_2xx.UCSTTIE_OFF// Interrupt disabled;
        const USCI_B1_I2C_2xx.UCSTTIE// Interrupt enabled;
    values of type USCI_B1_I2C_2xx.UCSTTIFG_t// Start condition interrupt flag
        const USCI_B1_I2C_2xx.UCSTTIFG_OFF// No interrupt pending;
        const USCI_B1_I2C_2xx.UCSTTIFG// Interrupt pending;
    values of type USCI_B1_I2C_2xx.UCSWRST_t// Software reset enable
        const USCI_B1_I2C_2xx.UCSWRST_OFF// Disabled. USCI reset released for operation;
        const USCI_B1_I2C_2xx.UCSWRST// Enabled. USCI logic held in reset state;
    values of type USCI_B1_I2C_2xx.UCSYNC_t// Synchronous mode enable
        const USCI_B1_I2C_2xx.UCSYNC_OFF// Asynchronous mode;
        const USCI_B1_I2C_2xx.UCSYNC// Synchronous Mode;
    values of type USCI_B1_I2C_2xx.UCTR_t// Transmitter/Receiver
        const USCI_B1_I2C_2xx.UCTR_OFF// Receiver;
        const USCI_B1_I2C_2xx.UCTR// Transmitter;
    values of type USCI_B1_I2C_2xx.UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode
        const USCI_B1_I2C_2xx.UCTXADDR_OFF// Next frame transmitted is data;
        const USCI_B1_I2C_2xx.UCTXADDR// Next frame transmitted is an address;
    values of type USCI_B1_I2C_2xx.UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer
        const USCI_B1_I2C_2xx.UCTXBRK_OFF// Next frame transmitted is not a break;
        const USCI_B1_I2C_2xx.UCTXBRK// Next frame transmitted is a break or a break/synch;
    values of type USCI_B1_I2C_2xx.UCTXNACK_t// Transmit a NACK
        const USCI_B1_I2C_2xx.UCTXNACK_OFF// Acknowledge normally;
        const USCI_B1_I2C_2xx.UCTXNACK// Generate NACK;
    values of type USCI_B1_I2C_2xx.UCTXSTP_t// Transmit STOP condition in master mode
        const USCI_B1_I2C_2xx.UCTXSTP_OFF// No STOP generated;
        const USCI_B1_I2C_2xx.UCTXSTP// Generate STOP;
    values of type USCI_B1_I2C_2xx.UCTXSTT_t// Transmit START condition in master mode
        const USCI_B1_I2C_2xx.UCTXSTT_OFF// Do not generate START condition;
        const USCI_B1_I2C_2xx.UCTXSTT// Generate START condition;
    var obj = new USCI_B1_I2C_2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new USCI_B1_I2C_2xx.UC1IE_t// USCI_xx SPI Interrupt Enable Register;
        obj.UCB1TXIE// USCI_B1 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B1_I2C_2xx.UCB1TXIE_t ...
        obj.UCB1RXIE// USCI_B1 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B1_I2C_2xx.UCB1RXIE_t ...
    var obj = new USCI_B1_I2C_2xx.UCBxI2CIE_t// USCI_Bx I2C Interrupt Enable Register;
        obj.UCNACKIE// Not-acknowledge interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B1_I2C_2xx.UCNACKIE_t ...
        obj.UCSTPIE// Stop condition interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B1_I2C_2xx.UCSTPIE_t ...
        obj.UCSTTIE// Start condition interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B1_I2C_2xx.UCSTTIE_t ...
        obj.UCALIE// Arbitration lost interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B1_I2C_2xx.UCALIE_t ...
    var obj = new USCI_B1_I2C_2xx.UCBxI2COA_t// ;
        obj.UCGCEN// General call response enable 0 Do not respond to a general call 1 Respond to a general call = IUSCI_I2C.UCGCEN_t ...
        obj.I2COA// I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB = UChar ...
    var obj = new USCI_B1_I2C_2xx.UCxCTL0_t// ;
        obj.UCA10// Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address = IUSCI_I2C.UCA10_t ...
        obj.UCSLA10// Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address = IUSCI_I2C.UCSLA10_t ...
        obj.UCMM// Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment = IUSCI_I2C.UCMM_t ...
        obj.UCMST// Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode = IUSCI_I2C.UCMST_t ...
        obj.UCMODE// USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode = IUSCI_I2C.UCMODE_SYNC_t ...
        obj.UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode = IUSCI_I2C.UCSYNC_t ...
    var obj = new USCI_B1_I2C_2xx.UCxCTL1_t// ;
        obj.UCSSEL// USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK = IUSCI_I2C.UCSSEL_I2C_t ...
        obj.UCTR// Transmitter/Receiver 0 Receiver 1 Transmitter = IUSCI_I2C.UCTR_t ...
        obj.UCTXNACK// Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK = IUSCI_I2C.UCTXNACK_t ...
        obj.UCTXSTP// Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP = IUSCI_I2C.UCTXSTP_t ...
        obj.UCTXSTT// Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition = IUSCI_I2C.UCTXSTT_t ...
        obj.UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state = IUSCI_I2C.UCSWRST_t ...
    var obj = new USCI_B1_I2C_2xx.UCxSTAT_t// ;
        obj.UCSCLLOW// SCL low 0 SCL is not held low 1 SCL is held low = IUSCI_I2C.UCSCLLOW_t ...
        obj.UCGC// General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received = IUSCI_I2C.UCGC_t ...
        obj.UCBBUSY// Bus busy 0 Bus inactive 1 Bus busy = IUSCI_I2C.UCBBUSY_t ...
        obj.UCNACKIFG// Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending = IUSCI_I2C.UCNACKIFG_t ...
        obj.UCSTPIFG// Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending = IUSCI_I2C.UCSTPIFG_t ...
        obj.UCSTTIFG// Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending = IUSCI_I2C.UCSTTIFG_t ...
        obj.UCALIFG// Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending = IUSCI_I2C.UCALIFG_t ...
    var obj = new USCI_B1_I2C_2xx.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     USCI_B1_I2C_2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     USCI_B1_I2C_2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new USCI_B1_I2C_2xx.Params// Instance config-params object;
        params.UC1IE// USCI_B1 Interrupt Enable Register = USCI_B1_I2C_2xx.UC1IE_t {
            UCB1TXIE: USCI_B1_I2C_2xx.UCB1TXIE_OFF,
            UCB1RXIE: USCI_B1_I2C_2xx.UCB1RXIE_OFF
        };
        params.UCB1BR0// Bit Rate Control Register 0 = Bits8 0;
        params.UCB1BR1// Bit Rate Control Register 1 = Bits8 0;
        params.UCB1CTL0// Control Register 0 = IUSCI_B1_I2C.UCxCTL0_t {
            UCA10: IUSCI_I2C.UCA10_OFF,
            UCSLA10: IUSCI_I2C.UCSLA10_OFF,
            UCMM: IUSCI_I2C.UCMM_OFF,
            UCMST: IUSCI_I2C.UCMST_OFF,
            UCMODE: IUSCI.UCMODE_0,
            UCSYNC: IUSCI.UCSYNC
        };
        params.UCB1CTL1// Control Register 1 = IUSCI_B1_I2C.UCxCTL1_t {
            UCSSEL: IUSCI_I2C.UCSSEL_0,
            UCTR: IUSCI_I2C.UCTR_OFF,
            UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
            UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
            UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
            UCSWRST: IUSCI.UCSWRST
        };
        params.UCB1I2CIE// USCI_Bx I2C Interrupt Enable Register = USCI_B1_I2C_2xx.UCBxI2CIE_t {
            UCNACKIE: USCI_B1_I2C_2xx.UCNACKIE_OFF,
            UCSTPIE: USCI_B1_I2C_2xx.UCSTPIE_OFF,
            UCSTTIE: USCI_B1_I2C_2xx.UCSTTIE_OFF,
            UCALIE: USCI_B1_I2C_2xx.UCALIE_OFF
        };
        params.UCB1I2COA// I2C Own Address Register = IUSCI_B1_I2C.UCBxI2COA_t {
            UCGCEN: IUSCI_I2C.UCGCEN_OFF,
            I2COA: 0
        };
        params.UCB1I2CSA// I2C Slave Address Register = Bits8 0;
        params.UCB1RXBUF// Receive Buffer Register = Bits8 0;
        params.UCB1STAT// Status Register = IUSCI_B1_I2C.UCxSTAT_t {
            UCSCLLOW: IUSCI_I2C.UCSCLLOW,
            UCGC: IUSCI_I2C.UCGC,
            UCBBUSY: IUSCI_I2C.UCBBUSY,
            UCNACKIFG: IUSCI_I2C.UCNACKIFG,
            UCSTPIFG: IUSCI_I2C.UCSTPIFG,
            UCSTTIFG: IUSCI_I2C.UCSTTIFG,
            UCALIFG: IUSCI_I2C.UCALIFG
        };
        params.UCB1TXBUF// Transmit Buffer Register = Bits8 0;
        params.UCLKHz// Stores the UCLK external clock frequency in float = Float 1000000;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = USCI_B1_I2C_2xx.ForceSetDefaultRegister_t[] [
            {
                register: "UCB1CTL0",
                regForceSet: false
            },
            {
                register: "UCB1CTL1",
                regForceSet: false
            },
            {
                register: "UCB1BR0",
                regForceSet: false
            },
            {
                register: "UCB1BR1",
                regForceSet: false
            },
            {
                register: "UCB1STAT",
                regForceSet: false
            },
            {
                register: "UCB1RXBUF",
                regForceSet: false
            },
            {
                register: "UCB1TXBUF",
                regForceSet: false
            },
            {
                register: "UCB1I2COA",
                regForceSet: false
            },
            {
                register: "UCB1I2CSA",
                regForceSet: false
            },
            {
                register: "UCB1I2CIE",
                regForceSet: false
            },
            {
                register: "UC1IE",
                regForceSet: false
            }
        ];
        params.interruptSource// USCI_B1 I2C interrupt enables = USCI_B1_I2C_2xx.regIntVect_t[6] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = USCI_B1_I2C_2xx.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getUCALIE// Gets UCALIE bit() returns Bool
     inst.getUCBxI2CSA// Returns UCBxI2CSA register value based on which module() returns Bits8
     inst.getUCNACKIE// Gets UCNACKIE bit() returns Bool
     inst.getUCSTPIE// Gets UCSTPIE bit() returns Bool
     inst.getUCSTTIE// Gets UCSTTIE bit() returns Bool
     inst.getUCxxBR0// Returns UCxxBR0 register value based on which module() returns Bits8
     inst.getUCxxBR1// Returns UCxxBR1 register value based on which module() returns Bits8
     inst.getUCxxRXIE// Gets UCxxRXIE bit() returns Bool
     inst.getUCxxTXIE// Gets UCxxTXIE bit() returns Bool
     inst.setUCALIE// Sets UCALIE bit(Bool set) returns Bool
     inst.setUCBxI2CSA// Sets UCxxI2CSA register value based on which module(Bits8 value) returns Void
     inst.setUCNACKIE// Sets UCNACKIE bit(Bool set) returns Bool
     inst.setUCSTPIE// Sets UCSTPIE bit(Bool set) returns Bool
     inst.setUCSTTIE// Sets UCSTTIE bit(Bool set) returns Bool
     inst.setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value) returns Void
     inst.setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value) returns Void
     inst.setUCxxRXIE// Sets UCxxRXIE bit(Bool set) returns Bool
     inst.setUCxxTXIE// Sets UCxxTXIE bit(Bool set) returns Bool
enum USCI_B1_I2C_2xx.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UC7BIT_t
    const USCI_B1_I2C_2xx.UC7BIT_OFF;
    // 8-bit
    const USCI_B1_I2C_2xx.UC7BIT;
    // 7-bit
enum USCI_B1_I2C_2xx.UCA10_t
index URL

Own addressing mode select

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCA10_t
    const USCI_B1_I2C_2xx.UCA10_OFF;
    // Own address is a 7-bit address
    const USCI_B1_I2C_2xx.UCA10;
    // Own address is a 10-bit address
enum USCI_B1_I2C_2xx.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCADDR_t
    const USCI_B1_I2C_2xx.UCADDR_OFF;
    // Received character is data
    const USCI_B1_I2C_2xx.UCADDR;
    // Received character is an address
enum USCI_B1_I2C_2xx.UCALIE_t
index URL

Arbitration lost interrupt enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCALIE_t
    const USCI_B1_I2C_2xx.UCALIE_OFF;
    // Interrupt disabled
    const USCI_B1_I2C_2xx.UCALIE;
    // Interrupt enabled
enum USCI_B1_I2C_2xx.UCALIFG_t
index URL

Arbitration lost interrupt flag

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCALIFG_t
    const USCI_B1_I2C_2xx.UCALIFG_OFF;
    // No interrupt pending
    const USCI_B1_I2C_2xx.UCALIFG;
    // Interrupt pending
enum USCI_B1_I2C_2xx.UCB1RXIE_t
index URL

USCI_B1 receive interrupt enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCB1RXIE_t
    const USCI_B1_I2C_2xx.UCB1RXIE_OFF;
    // Interrupt disabled
    const USCI_B1_I2C_2xx.UCB1RXIE;
    // Interrupt enabled
enum USCI_B1_I2C_2xx.UCB1TXIE_t
index URL

USCI_B1 transmit interrupt enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCB1TXIE_t
    const USCI_B1_I2C_2xx.UCB1TXIE_OFF;
    // Interrupt disabled
    const USCI_B1_I2C_2xx.UCB1TXIE;
    // Interrupt enabled
enum USCI_B1_I2C_2xx.UCBBUSY_t
index URL

Bus busy

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCBBUSY_t
    const USCI_B1_I2C_2xx.UCBBUSY_OFF;
    // Bus inactive
    const USCI_B1_I2C_2xx.UCBBUSY;
    // Bus busy
enum USCI_B1_I2C_2xx.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCBRKIE_t
    const USCI_B1_I2C_2xx.UCBRKIE_OFF;
    // Received break characters do not set UCAxRXIFG
    const USCI_B1_I2C_2xx.UCBRKIE;
    // Received break characters set UCAxRXIFG
enum USCI_B1_I2C_2xx.UCBRK_t
index URL

Break detect flag

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCBRK_t
    const USCI_B1_I2C_2xx.UCBRK_OFF;
    // No break condition
    const USCI_B1_I2C_2xx.UCBRK;
    // Break condition occurred
enum USCI_B1_I2C_2xx.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCBUSY_t
    const USCI_B1_I2C_2xx.UCBUSY_OFF;
    // USCI inactive
    const USCI_B1_I2C_2xx.UCBUSY;
    // USCI transmitting or receiving
enum USCI_B1_I2C_2xx.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCDORM_t
    const USCI_B1_I2C_2xx.UCDORM_OFF;
    // Not dormant. All received characters will set UCAxRXIFG
    const USCI_B1_I2C_2xx.UCDORM;
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
enum USCI_B1_I2C_2xx.UCFE_t
index URL

Framing error flag

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCFE_t
    const USCI_B1_I2C_2xx.UCFE_OFF;
    // 0 No error
    const USCI_B1_I2C_2xx.UCFE;
    // Character received with low stop bit
enum USCI_B1_I2C_2xx.UCGCEN_t
index URL

General call response enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCGCEN_t
    const USCI_B1_I2C_2xx.UCGCEN_OFF;
    // Do not respond to a general call
    const USCI_B1_I2C_2xx.UCGCEN;
    // Respond to a general call
enum USCI_B1_I2C_2xx.UCGC_t
index URL

General call address received

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCGC_t
    const USCI_B1_I2C_2xx.UCGC_OFF;
    // No general call address received
    const USCI_B1_I2C_2xx.UCGC;
    // General call address received
enum USCI_B1_I2C_2xx.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCIDLE_t
    const USCI_B1_I2C_2xx.UCIDLE_OFF;
    // No idle line detected
    const USCI_B1_I2C_2xx.UCIDLE;
    // Idle line detected
enum USCI_B1_I2C_2xx.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCLISTEN_t
    const USCI_B1_I2C_2xx.UCLISTEN_OFF;
    // Disabled
    const USCI_B1_I2C_2xx.UCLISTEN;
    // Enabled. UCAxTXD is internally fed back to the receiver
enum USCI_B1_I2C_2xx.UCMM_t
index URL

Multi-master environment select

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCMM_t
    const USCI_B1_I2C_2xx.UCMM_OFF;
    // Single master environment. There is no other master in the system. The address compare unit is disabled
    const USCI_B1_I2C_2xx.UCMM;
    // Multi master environment
enum USCI_B1_I2C_2xx.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCMODE_SYNC_t
    const USCI_B1_I2C_2xx.UCMODE_0;
    // 3-Pin SPI
    const USCI_B1_I2C_2xx.UCMODE_1;
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    const USCI_B1_I2C_2xx.UCMODE_2;
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    const USCI_B1_I2C_2xx.UCMODE_3;
    // I2C Mode
enum USCI_B1_I2C_2xx.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCMSB_t
    const USCI_B1_I2C_2xx.UCMSB_OFF;
    // LSB first
    const USCI_B1_I2C_2xx.UCMSB;
    // MSB first
enum USCI_B1_I2C_2xx.UCMST_t
index URL

Master mode select

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCMST_t
    const USCI_B1_I2C_2xx.UCMST_OFF;
    // Slave mode
    const USCI_B1_I2C_2xx.UCMST;
    // Master mode
enum USCI_B1_I2C_2xx.UCNACKIE_t
index URL

Not-acknowledge interrupt enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCNACKIE_t
    const USCI_B1_I2C_2xx.UCNACKIE_OFF;
    // Interrupt disabled
    const USCI_B1_I2C_2xx.UCNACKIE;
    // Interrupt enabled
enum USCI_B1_I2C_2xx.UCNACKIFG_t
index URL

Not-acknowledge received interrupt flag

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCNACKIFG_t
    const USCI_B1_I2C_2xx.UCNACKIFG_OFF;
    // No interrupt pending
    const USCI_B1_I2C_2xx.UCNACKIFG;
    // Interrupt pending
enum USCI_B1_I2C_2xx.UCOE_t
index URL

Overrun error flag

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCOE_t
    const USCI_B1_I2C_2xx.UCOE_OFF;
    // No error
    const USCI_B1_I2C_2xx.UCOE;
    // Overrun error occurred
enum USCI_B1_I2C_2xx.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCPE_t
    const USCI_B1_I2C_2xx.UCPE_OFF;
    // No error
    const USCI_B1_I2C_2xx.UCPE;
    // Character received with parity error
enum USCI_B1_I2C_2xx.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCRXEIE_t
    const USCI_B1_I2C_2xx.UCRXEIE_OFF;
    // Erroneous characters rejected and UCAxRXIFG is not set
    const USCI_B1_I2C_2xx.UCRXEIE;
    // Erroneous characters received will set UCAxRXIFG
enum USCI_B1_I2C_2xx.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCRXERR_t
    const USCI_B1_I2C_2xx.UCRXERR_OFF;
    // No receive errors detected
    const USCI_B1_I2C_2xx.UCRXERR;
    // Receive error detected
enum USCI_B1_I2C_2xx.UCSCLLOW_t
index URL

SCL low

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCSCLLOW_t
    const USCI_B1_I2C_2xx.UCSCLLOW_OFF;
    // SCL is not held low
    const USCI_B1_I2C_2xx.UCSCLLOW;
    // SCL is held low
enum USCI_B1_I2C_2xx.UCSLA10_t
index URL

Slave addressing mode select

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCSLA10_t
    const USCI_B1_I2C_2xx.UCSLA10_OFF;
    // Address slave with 7-bit address
    const USCI_B1_I2C_2xx.UCSLA10;
    // Address slave with 10-bit address
enum USCI_B1_I2C_2xx.UCSSEL_I2C_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCSSEL_I2C_t
    const USCI_B1_I2C_2xx.UCSSEL_0;
    // UCLK
    const USCI_B1_I2C_2xx.UCSSEL_1;
    // ACLK
    const USCI_B1_I2C_2xx.UCSSEL_2;
    // SMCLK
enum USCI_B1_I2C_2xx.UCSTPIE_t
index URL

Stop condition interrupt enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCSTPIE_t
    const USCI_B1_I2C_2xx.UCSTPIE_OFF;
    // Interrupt disabled
    const USCI_B1_I2C_2xx.UCSTPIE;
    // Interrupt enabled
enum USCI_B1_I2C_2xx.UCSTPIFG_t
index URL

Stop condition interrupt flag

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCSTPIFG_t
    const USCI_B1_I2C_2xx.UCSTPIFG_OFF;
    // No interrupt pending
    const USCI_B1_I2C_2xx.UCSTPIFG;
    // Interrupt pending
enum USCI_B1_I2C_2xx.UCSTTIE_t
index URL

Start condition interrupt enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCSTTIE_t
    const USCI_B1_I2C_2xx.UCSTTIE_OFF;
    // Interrupt disabled
    const USCI_B1_I2C_2xx.UCSTTIE;
    // Interrupt enabled
enum USCI_B1_I2C_2xx.UCSTTIFG_t
index URL

Start condition interrupt flag

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCSTTIFG_t
    const USCI_B1_I2C_2xx.UCSTTIFG_OFF;
    // No interrupt pending
    const USCI_B1_I2C_2xx.UCSTTIFG;
    // Interrupt pending
enum USCI_B1_I2C_2xx.UCSWRST_t
index URL

Software reset enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCSWRST_t
    const USCI_B1_I2C_2xx.UCSWRST_OFF;
    // Disabled. USCI reset released for operation
    const USCI_B1_I2C_2xx.UCSWRST;
    // Enabled. USCI logic held in reset state
enum USCI_B1_I2C_2xx.UCSYNC_t
index URL

Synchronous mode enable

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCSYNC_t
    const USCI_B1_I2C_2xx.UCSYNC_OFF;
    // Asynchronous mode
    const USCI_B1_I2C_2xx.UCSYNC;
    // Synchronous Mode
enum USCI_B1_I2C_2xx.UCTR_t
index URL

Transmitter/Receiver

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCTR_t
    const USCI_B1_I2C_2xx.UCTR_OFF;
    // Receiver
    const USCI_B1_I2C_2xx.UCTR;
    // Transmitter
enum USCI_B1_I2C_2xx.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCTXADDR_t
    const USCI_B1_I2C_2xx.UCTXADDR_OFF;
    // Next frame transmitted is data
    const USCI_B1_I2C_2xx.UCTXADDR;
    // Next frame transmitted is an address
enum USCI_B1_I2C_2xx.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCTXBRK_t
    const USCI_B1_I2C_2xx.UCTXBRK_OFF;
    // Next frame transmitted is not a break
    const USCI_B1_I2C_2xx.UCTXBRK;
    // Next frame transmitted is a break or a break/synch
enum USCI_B1_I2C_2xx.UCTXNACK_t
index URL

Transmit a NACK

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCTXNACK_t
    const USCI_B1_I2C_2xx.UCTXNACK_OFF;
    // Acknowledge normally
    const USCI_B1_I2C_2xx.UCTXNACK;
    // Generate NACK
enum USCI_B1_I2C_2xx.UCTXSTP_t
index URL

Transmit STOP condition in master mode

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCTXSTP_t
    const USCI_B1_I2C_2xx.UCTXSTP_OFF;
    // No STOP generated
    const USCI_B1_I2C_2xx.UCTXSTP;
    // Generate STOP
enum USCI_B1_I2C_2xx.UCTXSTT_t
index URL

Transmit START condition in master mode

XDCscript usage meta-domain
values of type USCI_B1_I2C_2xx.UCTXSTT_t
    const USCI_B1_I2C_2xx.UCTXSTT_OFF;
    // Do not generate START condition
    const USCI_B1_I2C_2xx.UCTXSTT;
    // Generate START condition
struct USCI_B1_I2C_2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new USCI_B1_I2C_2xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct USCI_B1_I2C_2xx.UC1IE_t
index URL

USCI_xx SPI Interrupt Enable Register

XDCscript usage meta-domain
var obj = new USCI_B1_I2C_2xx.UC1IE_t;
    obj.UCB1TXIE = USCI_B1_I2C_2xx.UCB1TXIE_t ...
    // USCI_B1 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCB1RXIE = USCI_B1_I2C_2xx.UCB1RXIE_t ...
    // USCI_B1 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled
struct USCI_B1_I2C_2xx.UCBxI2CIE_t
index URL

USCI_Bx I2C Interrupt Enable Register

XDCscript usage meta-domain
var obj = new USCI_B1_I2C_2xx.UCBxI2CIE_t;
    obj.UCNACKIE = USCI_B1_I2C_2xx.UCNACKIE_t ...
    // Not-acknowledge interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCSTPIE = USCI_B1_I2C_2xx.UCSTPIE_t ...
    // Stop condition interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCSTTIE = USCI_B1_I2C_2xx.UCSTTIE_t ...
    // Start condition interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCALIE = USCI_B1_I2C_2xx.UCALIE_t ...
    // Arbitration lost interrupt enable 0 Interrupt disabled 1 Interrupt enabled
struct USCI_B1_I2C_2xx.UCBxI2COA_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B1_I2C_2xx.UCBxI2COA_t;
    obj.UCGCEN = IUSCI_I2C.UCGCEN_t ...
    // General call response enable 0 Do not respond to a general call 1 Respond to a general call
    obj.I2COA = UChar ...
    // I2C own address. The I2COAx bits contain the local address of the USCI_Bx I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB
struct USCI_B1_I2C_2xx.UCxCTL0_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B1_I2C_2xx.UCxCTL0_t;
    obj.UCA10 = IUSCI_I2C.UCA10_t ...
    // Own addressing mode select 0 Own address is a 7-bit address 1 Own address is a 10-bit address
    obj.UCSLA10 = IUSCI_I2C.UCSLA10_t ...
    // Slave addressing mode select 0 Address slave with 7-bit address 1 Address slave with 10-bit address
    obj.UCMM = IUSCI_I2C.UCMM_t ...
    // Multi-master environment select 0 Single master environment. There is no other master in the system. The address compare unit is disabled. 1 Multi master environment
    obj.UCMST = IUSCI_I2C.UCMST_t ...
    // Master mode select. When a master looses arbitration in a multi-master environment (UCMM = 1) the UCMST bit is automatically cleared and the module acts as slave. 0 Slave mode 1 Master mode
    obj.UCMODE = IUSCI_I2C.UCMODE_SYNC_t ...
    // USCI Mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-pin SPI 01 4-pin SPI (master/slave enabled if STE = 1) 10 4-pin SPI (master/slave enabled if STE = 0) 11 I2C mode
    obj.UCSYNC = IUSCI_I2C.UCSYNC_t ...
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous mode
struct USCI_B1_I2C_2xx.UCxCTL1_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B1_I2C_2xx.UCxCTL1_t;
    obj.UCSSEL = IUSCI_I2C.UCSSEL_I2C_t ...
    // USCI clock source select. These bits select the BRCLK source clock. 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK
    obj.UCTR = IUSCI_I2C.UCTR_t ...
    // Transmitter/Receiver 0 Receiver 1 Transmitter
    obj.UCTXNACK = IUSCI_I2C.UCTXNACK_t ...
    // Transmit a NACK. UCTXNACK is automatically cleared after a NACK is transmitted. 0 Acknowledge normally 1 Generate NACK
    obj.UCTXSTP = IUSCI_I2C.UCTXSTP_t ...
    // Transmit STOP condition in master mode. Ignored in slave mode. In master receiver mode the STOP condition is preceded by a NACK. UCTXSTP is automatically cleared after STOP is generated. 0 No STOP generated 1 Generate STOP
    obj.UCTXSTT = IUSCI_I2C.UCTXSTT_t ...
    // Transmit START condition in master mode. Ignored in slave mode. In master receiver mode a repeated START condition is preceded by a NACK. UCTXSTT is automatically cleared after START condition and address information is transmitted. Ignored in slave mode. 0 Do not generate START condition 1 Generate START condition
    obj.UCSWRST = IUSCI_I2C.UCSWRST_t ...
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
struct USCI_B1_I2C_2xx.UCxSTAT_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B1_I2C_2xx.UCxSTAT_t;
    obj.UCSCLLOW = IUSCI_I2C.UCSCLLOW_t ...
    // SCL low 0 SCL is not held low 1 SCL is held low
    obj.UCGC = IUSCI_I2C.UCGC_t ...
    // General call address received. UCGC is automatically cleared when a START condition is received. 0 No general call address received 1 General call address received
    obj.UCBBUSY = IUSCI_I2C.UCBBUSY_t ...
    // Bus busy 0 Bus inactive 1 Bus busy
    obj.UCNACKIFG = IUSCI_I2C.UCNACKIFG_t ...
    // Not-acknowledge received interrupt flag. UCNACKIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
    obj.UCSTPIFG = IUSCI_I2C.UCSTPIFG_t ...
    // Stop condition interrupt flag. UCSTPIFG is automatically cleared when a START condition is received. 0 No interrupt pending 1 Interrupt pending
    obj.UCSTTIFG = IUSCI_I2C.UCSTTIFG_t ...
    // Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP condition is received. 0 No interrupt pending 1 Interrupt pending
    obj.UCALIFG = IUSCI_I2C.UCALIFG_t ...
    // Arbitration lost interrupt flag 0 No interrupt pending 1 Interrupt pending
struct USCI_B1_I2C_2xx.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new USCI_B1_I2C_2xx.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
USCI_B1_I2C_2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
USCI_B1_I2C_2xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
USCI_B1_I2C_2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
USCI_B1_I2C_2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
// Instance config-params object
    params.UC1IE = USCI_B1_I2C_2xx.UC1IE_t {
    // USCI_B1 Interrupt Enable Register
        UCB1TXIE: USCI_B1_I2C_2xx.UCB1TXIE_OFF,
        UCB1RXIE: USCI_B1_I2C_2xx.UCB1RXIE_OFF
    };
    params.UCB1BR0 = Bits8 0;
    // Bit Rate Control Register 0
    params.UCB1BR1 = Bits8 0;
    // Bit Rate Control Register 1
    params.UCB1CTL0 = IUSCI_B1_I2C.UCxCTL0_t {
    // Control Register 0
        UCA10: IUSCI_I2C.UCA10_OFF,
        UCSLA10: IUSCI_I2C.UCSLA10_OFF,
        UCMM: IUSCI_I2C.UCMM_OFF,
        UCMST: IUSCI_I2C.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    params.UCB1CTL1 = IUSCI_B1_I2C.UCxCTL1_t {
    // Control Register 1
        UCSSEL: IUSCI_I2C.UCSSEL_0,
        UCTR: IUSCI_I2C.UCTR_OFF,
        UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
        UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
        UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
        UCSWRST: IUSCI.UCSWRST
    };
    params.UCB1I2CIE = USCI_B1_I2C_2xx.UCBxI2CIE_t {
    // USCI_Bx I2C Interrupt Enable Register
        UCNACKIE: USCI_B1_I2C_2xx.UCNACKIE_OFF,
        UCSTPIE: USCI_B1_I2C_2xx.UCSTPIE_OFF,
        UCSTTIE: USCI_B1_I2C_2xx.UCSTTIE_OFF,
        UCALIE: USCI_B1_I2C_2xx.UCALIE_OFF
    };
    params.UCB1I2COA = IUSCI_B1_I2C.UCBxI2COA_t {
    // I2C Own Address Register
        UCGCEN: IUSCI_I2C.UCGCEN_OFF,
        I2COA: 0
    };
    params.UCB1I2CSA = Bits8 0;
    // I2C Slave Address Register
    params.UCB1RXBUF = Bits8 0;
    // Receive Buffer Register
    params.UCB1STAT = IUSCI_B1_I2C.UCxSTAT_t {
    // Status Register
        UCSCLLOW: IUSCI_I2C.UCSCLLOW,
        UCGC: IUSCI_I2C.UCGC,
        UCBBUSY: IUSCI_I2C.UCBBUSY,
        UCNACKIFG: IUSCI_I2C.UCNACKIFG,
        UCSTPIFG: IUSCI_I2C.UCSTPIFG,
        UCSTTIFG: IUSCI_I2C.UCSTTIFG,
        UCALIFG: IUSCI_I2C.UCALIFG
    };
    params.UCB1TXBUF = Bits8 0;
    // Transmit Buffer Register
    params.UCLKHz = Float 1000000;
    // Stores the UCLK external clock frequency in float
    params.forceSetDefaultRegister = USCI_B1_I2C_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "UCB1CTL0",
            regForceSet: false
        },
        {
            register: "UCB1CTL1",
            regForceSet: false
        },
        {
            register: "UCB1BR0",
            regForceSet: false
        },
        {
            register: "UCB1BR1",
            regForceSet: false
        },
        {
            register: "UCB1STAT",
            regForceSet: false
        },
        {
            register: "UCB1RXBUF",
            regForceSet: false
        },
        {
            register: "UCB1TXBUF",
            regForceSet: false
        },
        {
            register: "UCB1I2COA",
            regForceSet: false
        },
        {
            register: "UCB1I2CSA",
            regForceSet: false
        },
        {
            register: "UCB1I2CIE",
            regForceSet: false
        },
        {
            register: "UC1IE",
            regForceSet: false
        }
    ];
    params.interruptSource = USCI_B1_I2C_2xx.regIntVect_t[6] undefined;
    // USCI_B1 I2C interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config USCI_B1_I2C_2xx.UC1IE // instance
index URL

USCI_B1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UC1IE = USCI_B1_I2C_2xx.UC1IE_t {
    UCB1TXIE: USCI_B1_I2C_2xx.UCB1TXIE_OFF,
    UCB1RXIE: USCI_B1_I2C_2xx.UCB1RXIE_OFF
};
config USCI_B1_I2C_2xx.UCB1BR0 // instance
index URL

Bit Rate Control Register 0

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1BR0 = Bits8 0;
config USCI_B1_I2C_2xx.UCB1BR1 // instance
index URL

Bit Rate Control Register 1

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1BR1 = Bits8 0;
config USCI_B1_I2C_2xx.UCB1CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1CTL0 = IUSCI_B1_I2C.UCxCTL0_t {
    UCA10: IUSCI_I2C.UCA10_OFF,
    UCSLA10: IUSCI_I2C.UCSLA10_OFF,
    UCMM: IUSCI_I2C.UCMM_OFF,
    UCMST: IUSCI_I2C.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config USCI_B1_I2C_2xx.UCB1CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1CTL1 = IUSCI_B1_I2C.UCxCTL1_t {
    UCSSEL: IUSCI_I2C.UCSSEL_0,
    UCTR: IUSCI_I2C.UCTR_OFF,
    UCTXNACK: IUSCI_I2C.UCTXNACK_OFF,
    UCTXSTP: IUSCI_I2C.UCTXSTP_OFF,
    UCTXSTT: IUSCI_I2C.UCTXSTT_OFF,
    UCSWRST: IUSCI.UCSWRST
};
config USCI_B1_I2C_2xx.UCB1I2CIE // instance
index URL

USCI_Bx I2C Interrupt Enable Register

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1I2CIE = USCI_B1_I2C_2xx.UCBxI2CIE_t {
    UCNACKIE: USCI_B1_I2C_2xx.UCNACKIE_OFF,
    UCSTPIE: USCI_B1_I2C_2xx.UCSTPIE_OFF,
    UCSTTIE: USCI_B1_I2C_2xx.UCSTTIE_OFF,
    UCALIE: USCI_B1_I2C_2xx.UCALIE_OFF
};
config USCI_B1_I2C_2xx.UCB1I2COA // instance
index URL

I2C Own Address Register

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1I2COA = IUSCI_B1_I2C.UCBxI2COA_t {
    UCGCEN: IUSCI_I2C.UCGCEN_OFF,
    I2COA: 0
};
config USCI_B1_I2C_2xx.UCB1I2CSA // instance
index URL

I2C Slave Address Register

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1I2CSA = Bits8 0;
config USCI_B1_I2C_2xx.UCB1RXBUF // instance
index URL

Receive Buffer Register

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1RXBUF = Bits8 0;
config USCI_B1_I2C_2xx.UCB1STAT // instance
index URL

Status Register

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1STAT = IUSCI_B1_I2C.UCxSTAT_t {
    UCSCLLOW: IUSCI_I2C.UCSCLLOW,
    UCGC: IUSCI_I2C.UCGC,
    UCBBUSY: IUSCI_I2C.UCBBUSY,
    UCNACKIFG: IUSCI_I2C.UCNACKIFG,
    UCSTPIFG: IUSCI_I2C.UCSTPIFG,
    UCSTTIFG: IUSCI_I2C.UCSTTIFG,
    UCALIFG: IUSCI_I2C.UCALIFG
};
config USCI_B1_I2C_2xx.UCB1TXBUF // instance
index URL

Transmit Buffer Register

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCB1TXBUF = Bits8 0;
config USCI_B1_I2C_2xx.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.UCLKHz = Float 1000000;
config USCI_B1_I2C_2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
const params.forceSetDefaultRegister = USCI_B1_I2C_2xx.ForceSetDefaultRegister_t[] [
    {
        register: "UCB1CTL0",
        regForceSet: false
    },
    {
        register: "UCB1CTL1",
        regForceSet: false
    },
    {
        register: "UCB1BR0",
        regForceSet: false
    },
    {
        register: "UCB1BR1",
        regForceSet: false
    },
    {
        register: "UCB1STAT",
        regForceSet: false
    },
    {
        register: "UCB1RXBUF",
        regForceSet: false
    },
    {
        register: "UCB1TXBUF",
        regForceSet: false
    },
    {
        register: "UCB1I2COA",
        regForceSet: false
    },
    {
        register: "UCB1I2CSA",
        regForceSet: false
    },
    {
        register: "UCB1I2CIE",
        regForceSet: false
    },
    {
        register: "UC1IE",
        regForceSet: false
    }
];
config USCI_B1_I2C_2xx.interruptSource // instance
index URL

USCI_B1 I2C interrupt enables

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.interruptSource = USCI_B1_I2C_2xx.regIntVect_t[6] undefined;
config USCI_B1_I2C_2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config USCI_B1_I2C_2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new USCI_B1_I2C_2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = USCI_B1_I2C_2xx.create(IClock.Instance clock, params);
// Create an instance-object
USCI_B1_I2C_2xx.getUCALIE() // instance
index URL

Gets UCALIE bit

XDCscript usage meta-domain
inst.getUCALIE() returns Bool
SEE
getUCALIE
USCI_B1_I2C_2xx.getUCBxI2CSA() // instance
index URL

Returns UCBxI2CSA register value based on which module

XDCscript usage meta-domain
inst.getUCBxI2CSA() returns Bits8
SEE
getUCBxI2CSA
USCI_B1_I2C_2xx.getUCNACKIE() // instance
index URL

Gets UCNACKIE bit

XDCscript usage meta-domain
inst.getUCNACKIE() returns Bool
SEE
getUCNACKIE
USCI_B1_I2C_2xx.getUCSTPIE() // instance
index URL

Gets UCSTPIE bit

XDCscript usage meta-domain
inst.getUCSTPIE() returns Bool
SEE
getUCSTPIE
USCI_B1_I2C_2xx.getUCSTTIE() // instance
index URL

Gets UCSTTIE bit

XDCscript usage meta-domain
inst.getUCSTTIE() returns Bool
SEE
getUCSTTIE
USCI_B1_I2C_2xx.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR0() returns Bits8
SEE
getUCxxBR0
USCI_B1_I2C_2xx.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR1() returns Bits8
SEE
getUCxxBR1
USCI_B1_I2C_2xx.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCscript usage meta-domain
inst.getUCxxRXIE() returns Bool
SEE
getUCxxRXIE
USCI_B1_I2C_2xx.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCscript usage meta-domain
inst.getUCxxTXIE() returns Bool
SEE
getUCxxTXIE
USCI_B1_I2C_2xx.setUCALIE() // instance
index URL

Sets UCALIE bit

XDCscript usage meta-domain
inst.setUCALIE(Bool set) returns Bool
SEE
setUCALIE
USCI_B1_I2C_2xx.setUCBxI2CSA() // instance
index URL

Sets UCxxI2CSA register value based on which module

XDCscript usage meta-domain
inst.setUCBxI2CSA(Bits8 value) returns Void
SEE
setUCBxI2CSA
USCI_B1_I2C_2xx.setUCNACKIE() // instance
index URL

Sets UCNACKIE bit

XDCscript usage meta-domain
inst.setUCNACKIE(Bool set) returns Bool
SEE
setUCNACKIE
USCI_B1_I2C_2xx.setUCSTPIE() // instance
index URL

Sets UCSTPIE bit

XDCscript usage meta-domain
inst.setUCSTPIE(Bool set) returns Bool
SEE
setUCSTPIE
USCI_B1_I2C_2xx.setUCSTTIE() // instance
index URL

Sets UCSTTIE bit

XDCscript usage meta-domain
inst.setUCSTTIE(Bool set) returns Bool
SEE
setUCSTTIE
USCI_B1_I2C_2xx.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR0(Bits8 value) returns Void
SEE
setUCxxBR0
USCI_B1_I2C_2xx.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR1(Bits8 value) returns Void
SEE
setUCxxBR1
USCI_B1_I2C_2xx.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCscript usage meta-domain
inst.setUCxxRXIE(Bool set) returns Bool
SEE
setUCxxRXIE
USCI_B1_I2C_2xx.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCscript usage meta-domain
inst.setUCxxTXIE(Bool set) returns Bool
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:46 GMT


module ti.catalog.msp430.peripherals.communication.USCI_B1_I2C_2xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Universal Serial Communication Interface B1 I2C 2xx
    16     */
    17    metaonly module USCI_B1_I2C_2xx inherits IUSCI_B1_I2C {
    18
    19        /*
    20         *  ======== create ========
    21         */
    22        create(IClock.Instance clock);
    23
    24        /*! Not-acknowledge interrupt enable */
    25        enum UCNACKIE_t {
    26            UCNACKIE_OFF = 0x00,    /*! Interrupt disabled */
    27            UCNACKIE = 0x80         /*! Interrupt enabled */
    28        };
    29
    30        /*! Stop condition interrupt enable */
    31        enum UCSTPIE_t {
    32            UCSTPIE_OFF = 0x00,     /*! Interrupt disabled */
    33            UCSTPIE = 0x80          /*! Interrupt enabled */
    34        };
    35
    36        /*! Start condition interrupt enable */
    37        enum UCSTTIE_t {
    38            UCSTTIE_OFF = 0x00,     /*! Interrupt disabled */
    39            UCSTTIE = 0x80          /*! Interrupt enabled */
    40        };
    41
    42        /*! Arbitration lost interrupt enable */
    43        enum UCALIE_t {
    44            UCALIE_OFF = 0x00,      /*! Interrupt disabled */
    45            UCALIE = 0x80           /*! Interrupt enabled */
    46        };
    47
    48        /*! USCI_Bx I2C Interrupt Enable Register */
    49        struct UCBxI2CIE_t {
    50            UCNACKIE_t  UCNACKIE;   /*! Not-acknowledge interrupt enable
    51                                     *  0  Interrupt disabled
    52                                     *  1  Interrupt enabled */
    53            UCSTPIE_t   UCSTPIE;    /*! Stop condition interrupt enable
    54                                     *  0  Interrupt disabled
    55                                     *  1  Interrupt enabled */
    56            UCSTTIE_t   UCSTTIE;    /*! Start condition interrupt enable
    57                                     *  0  Interrupt disabled
    58                                     *  1  Interrupt enabled */
    59            UCALIE_t    UCALIE;    /*! Arbitration lost interrupt enable
    60                                     *  0  Interrupt disabled
    61                                     *  1  Interrupt enabled */
    62        }
    63
    64        /*! USCI_B1 transmit interrupt enable */
    65        enum UCB1TXIE_t {
    66            UCB1TXIE_OFF = 0x00,    /*! Interrupt disabled */
    67            UCB1TXIE = 0x08         /*! Interrupt enabled */
    68        };
    69
    70        /*! USCI_B1 receive interrupt enable */
    71        enum UCB1RXIE_t {
    72            UCB1RXIE_OFF = 0x00,     /*! Interrupt disabled */
    73            UCB1RXIE = 0x04          /*! Interrupt enabled */
    74        };
    75
    76        /*! USCI_xx SPI Interrupt Enable Register */
    77        struct UC1IE_t {
    78            UCB1TXIE_t  UCB1TXIE;   /*! USCI_B1 transmit interrupt enable
    79                                     *  0  Interrupt disabled
    80                                     *  1  Interrupt enabled */
    81            UCB1RXIE_t  UCB1RXIE;   /*! USCI_B1 receive interrupt enable
    82                                     *  0  Interrupt disabled
    83                                     *  1  Interrupt enabled */
    84        }
    85
    86    instance:
    87        /*! @_nodoc */
    88        config IClock.Instance clock;
    89
    90        /*! USCI_Bx I2C Interrupt Enable Register */
    91        config UCBxI2CIE_t UCB1I2CIE = {
    92            UCNACKIE    : UCNACKIE_OFF,
    93            UCSTPIE     : UCSTPIE_OFF,
    94            UCSTTIE     : UCSTTIE_OFF,
    95            UCALIE      : UCALIE_OFF,
    96        };
    97
    98        /*! USCI_B1 Interrupt Enable Register */
    99        config UC1IE_t UC1IE = {
   100            UCB1TXIE    : UCB1TXIE_OFF,
   101            UCB1RXIE    : UCB1RXIE_OFF
   102        };
   103
   104       /*!
   105        *  ======== setUCNACKIE ========
   106        *  Sets UCNACKIE bit
   107        *
   108        *  @see #setUCNACKIE
   109        */
   110        Bool setUCNACKIE(Bool set);
   111
   112       /*!
   113        *  ======== getUCNACKIE ========
   114        *  Gets UCNACKIE bit
   115        *
   116        *  @see #getUCNACKIE
   117        */
   118        Bool getUCNACKIE();
   119
   120       /*!
   121        *  ======== setUCSTPIE ========
   122        *  Sets UCSTPIE bit
   123        *
   124        *  @see #setUCSTPIE
   125        */
   126        Bool setUCSTPIE(Bool set);
   127
   128       /*!
   129        *  ======== getUCSTPIE ========
   130        *  Gets UCSTPIE bit
   131        *
   132        *  @see #getUCSTPIE
   133        */
   134        Bool getUCSTPIE();
   135
   136       /*!
   137        *  ======== setUCSTTIE ========
   138        *  Sets UCSTTIE bit
   139        *
   140        *  @see #setUCSTTIE
   141        */
   142        Bool setUCSTTIE(Bool set);
   143
   144       /*!
   145        *  ======== getUCSTTIE ========
   146        *  Gets UCSTTIE bit
   147        *
   148        *  @see #getUCSTTIE
   149        */
   150        Bool getUCSTTIE();
   151
   152       /*!
   153        *  ======== setUCALIE ========
   154        *  Sets UCALIE bit
   155        *
   156        *  @see #setUCALIE
   157        */
   158        Bool setUCALIE(Bool set);
   159
   160       /*!
   161        *  ======== getUCALIE ========
   162        *  Gets UCALIE bit
   163        *
   164        *  @see #getUCALIE
   165        */
   166        Bool getUCALIE();
   167
   168        /*! USCI_B1 I2C interrupt enables */
   169        config regIntVect_t interruptSource[6];
   170
   171        /*! Determine if each Register needs to be forced set or not */
   172        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   173        [
   174            { register : "UCB1CTL0"   , regForceSet : false },
   175            { register : "UCB1CTL1"   , regForceSet : false },
   176            { register : "UCB1BR0"    , regForceSet : false },
   177            { register : "UCB1BR1"    , regForceSet : false },
   178            { register : "UCB1STAT"   , regForceSet : false },
   179            { register : "UCB1RXBUF"  , regForceSet : false },
   180            { register : "UCB1TXBUF"  , regForceSet : false },
   181            { register : "UCB1I2COA"  , regForceSet : false },
   182            { register : "UCB1I2CSA"  , regForceSet : false },
   183            { register : "UCB1I2CIE"  , regForceSet : false },
   184            { register : "UC1IE"      , regForceSet : false }
   185        ];
   186    }


module ti.catalog.msp430.peripherals.communication.USCI_B1_SPI_2xx

metaonly module ti.catalog.msp430.peripherals.communication.USCI_B1_SPI_2xx
index URL

Universal Serial Communication Interface B1 SPI 2xx

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/USCI_B1_SPI_2xx.xdc
var USCI_B1_SPI_2xx = xdc.useModule('ti.catalog.msp430.peripherals.communication.USCI_B1_SPI_2xx');
module-wide constants & types
    values of type USCI_B1_SPI_2xx.UC7BIT_t// Character length. Selects 7-bit or 8-bit character length
        const USCI_B1_SPI_2xx.UC7BIT_OFF// 8-bit;
        const USCI_B1_SPI_2xx.UC7BIT// 7-bit;
    values of type USCI_B1_SPI_2xx.UCADDR_t// Address received in address-bit multiprocessor mode
        const USCI_B1_SPI_2xx.UCADDR_OFF// Received character is data;
        const USCI_B1_SPI_2xx.UCADDR// Received character is an address;
    values of type USCI_B1_SPI_2xx.UCB1RXIE_t// USCI_B1 receive interrupt enable
        const USCI_B1_SPI_2xx.UCB1RXIE_OFF// Interrupt disabled;
        const USCI_B1_SPI_2xx.UCB1RXIE// Interrupt enabled;
    values of type USCI_B1_SPI_2xx.UCB1TXIE_t// USCI_B1 transmit interrupt enable
        const USCI_B1_SPI_2xx.UCB1TXIE_OFF// Interrupt disabled;
        const USCI_B1_SPI_2xx.UCB1TXIE// Interrupt enabled;
    values of type USCI_B1_SPI_2xx.UCBRKIE_t// Receive break character interrupt-enable
        const USCI_B1_SPI_2xx.UCBRKIE_OFF// Received break characters do not set UCAxRXIFG;
        const USCI_B1_SPI_2xx.UCBRKIE// Received break characters set UCAxRXIFG;
    values of type USCI_B1_SPI_2xx.UCBRK_t// Break detect flag
        const USCI_B1_SPI_2xx.UCBRK_OFF// No break condition;
        const USCI_B1_SPI_2xx.UCBRK// Break condition occurred;
    values of type USCI_B1_SPI_2xx.UCBUSY_t// USCI busy. This bit indicates if a transmit or receive operation is in progress
        const USCI_B1_SPI_2xx.UCBUSY_OFF// USCI inactive;
        const USCI_B1_SPI_2xx.UCBUSY// USCI transmitting or receiving;
    values of type USCI_B1_SPI_2xx.UCCKPH_t// Clock phase select
        const USCI_B1_SPI_2xx.UCCKPH_OFF// Data is changed on the first UCLK edge and captured on the following edge;
        const USCI_B1_SPI_2xx.UCCKPH// Data is captured on the first UCLK edge and changed on the following edge;
    values of type USCI_B1_SPI_2xx.UCCKPL_t// Clock polarity select
        const USCI_B1_SPI_2xx.UCCKPL_OFF// Inactive state is low;
        const USCI_B1_SPI_2xx.UCCKPL// Inactive state is high;
    values of type USCI_B1_SPI_2xx.UCDORM_t// Dormant. Puts USCI into sleep mode
        const USCI_B1_SPI_2xx.UCDORM_OFF// Not dormant. All received characters will set UCAxRXIFG;
        const USCI_B1_SPI_2xx.UCDORM// Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG;
    values of type USCI_B1_SPI_2xx.UCFE_t// Framing error flag
        const USCI_B1_SPI_2xx.UCFE_OFF// 0 No error;
        const USCI_B1_SPI_2xx.UCFE// Character received with low stop bit;
    values of type USCI_B1_SPI_2xx.UCIDLE_t// Idle line detected in idle-line multiprocessor mode
        const USCI_B1_SPI_2xx.UCIDLE_OFF// No idle line detected;
        const USCI_B1_SPI_2xx.UCIDLE// Idle line detected;
    values of type USCI_B1_SPI_2xx.UCLISTEN_t// Listen enable. The UCLISTEN bit selects loopback mode
        const USCI_B1_SPI_2xx.UCLISTEN_OFF// Disabled;
        const USCI_B1_SPI_2xx.UCLISTEN// Enabled. UCAxTXD is internally fed back to the receiver;
    values of type USCI_B1_SPI_2xx.UCMODE_SYNC_t// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1
        const USCI_B1_SPI_2xx.UCMODE_0// 3-Pin SPI;
        const USCI_B1_SPI_2xx.UCMODE_1// 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1;
        const USCI_B1_SPI_2xx.UCMODE_2// 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0;
        const USCI_B1_SPI_2xx.UCMODE_3// I2C Mode;
    values of type USCI_B1_SPI_2xx.UCMSB_t// MSB first select. Controls the direction of the receive and transmit shift register
        const USCI_B1_SPI_2xx.UCMSB_OFF// LSB first;
        const USCI_B1_SPI_2xx.UCMSB// MSB first;
    values of type USCI_B1_SPI_2xx.UCMST_t// Master mode select
        const USCI_B1_SPI_2xx.UCMST_OFF// Slave mode;
        const USCI_B1_SPI_2xx.UCMST// Master mode;
    values of type USCI_B1_SPI_2xx.UCOE_t// Overrun error flag
        const USCI_B1_SPI_2xx.UCOE_OFF// No error;
        const USCI_B1_SPI_2xx.UCOE// Overrun error occurred;
    values of type USCI_B1_SPI_2xx.UCPE_t// Parity error flag. When UCPEN = 0, UCPE is read as 0
        const USCI_B1_SPI_2xx.UCPE_OFF// No error;
        const USCI_B1_SPI_2xx.UCPE// Character received with parity error;
    values of type USCI_B1_SPI_2xx.UCRXEIE_t// Receive erroneous-character interrupt-enable
        const USCI_B1_SPI_2xx.UCRXEIE_OFF// Erroneous characters rejected and UCAxRXIFG is not set;
        const USCI_B1_SPI_2xx.UCRXEIE// Erroneous characters received will set UCAxRXIFG;
    values of type USCI_B1_SPI_2xx.UCRXERR_t// Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read
        const USCI_B1_SPI_2xx.UCRXERR_OFF// No receive errors detected;
        const USCI_B1_SPI_2xx.UCRXERR// Receive error detected;
    values of type USCI_B1_SPI_2xx.UCSSEL_SPI_t// USCI clock source select. These bits select the BRCLK source clock
        const USCI_B1_SPI_2xx.UCSSEL_0// NA;
        const USCI_B1_SPI_2xx.UCSSEL_1// ACLK;
        const USCI_B1_SPI_2xx.UCSSEL_2// SMCLK;
    values of type USCI_B1_SPI_2xx.UCSWRST_t// Software reset enable
        const USCI_B1_SPI_2xx.UCSWRST_OFF// Disabled. USCI reset released for operation;
        const USCI_B1_SPI_2xx.UCSWRST// Enabled. USCI logic held in reset state;
    values of type USCI_B1_SPI_2xx.UCSYNC_t// Synchronous mode enable
        const USCI_B1_SPI_2xx.UCSYNC_OFF// Asynchronous mode;
        const USCI_B1_SPI_2xx.UCSYNC// Synchronous Mode;
    values of type USCI_B1_SPI_2xx.UCTXADDR_t// Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode
        const USCI_B1_SPI_2xx.UCTXADDR_OFF// Next frame transmitted is data;
        const USCI_B1_SPI_2xx.UCTXADDR// Next frame transmitted is an address;
    values of type USCI_B1_SPI_2xx.UCTXBRK_t// Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer
        const USCI_B1_SPI_2xx.UCTXBRK_OFF// Next frame transmitted is not a break;
        const USCI_B1_SPI_2xx.UCTXBRK// Next frame transmitted is a break or a break/synch;
    var obj = new USCI_B1_SPI_2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new USCI_B1_SPI_2xx.UC1IE_t// USCI_xx SPI Interrupt Enable Register;
        obj.UCB1TXIE// USCI_B1 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B1_SPI_2xx.UCB1TXIE_t ...
        obj.UCB1RXIE// USCI_B1 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled = USCI_B1_SPI_2xx.UCB1RXIE_t ...
    var obj = new USCI_B1_SPI_2xx.UCxCTL0_t// ;
        obj.UCCKPH// Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge = IUSCI_SPI.UCCKPH_t ...
        obj.UCCKPL// Clock polarity select 0 The inactive state is low 1 The inactive state is high = IUSCI_SPI.UCCKPL_t ...
        obj.UCMSB// MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first = IUSCI_SPI.UCMSB_t ...
        obj.UC7BIT// Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data = IUSCI_SPI.UC7BIT_t ...
        obj.UCMST// Master mode select 0 Slave mode 1 Master mode = IUSCI_SPI.UCMST_t ...
        obj.UCMODE// USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode = IUSCI_SPI.UCMODE_SYNC_t ...
        obj.UCSYNC// Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode = IUSCI_SPI.UCSYNC_t ...
    var obj = new USCI_B1_SPI_2xx.UCxCTL1_t// ;
        obj.UCSSEL// USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK = IUSCI_SPI.UCSSEL_SPI_t ...
        obj.UCSWRST// Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state = IUSCI_SPI.UCSWRST_t ...
    var obj = new USCI_B1_SPI_2xx.UCxSTAT_t// ;
        obj.UCLISTEN// Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver = IUSCI_SPI.UCLISTEN_t ...
        obj.UCFE// Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred = IUSCI_SPI.UCFE_t ...
        obj.UCOE// Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred = IUSCI_SPI.UCOE_t ...
        obj.UCBUSY// USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving = IUSCI_SPI.UCBUSY_t ...
    var obj = new USCI_B1_SPI_2xx.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     USCI_B1_SPI_2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     USCI_B1_SPI_2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new USCI_B1_SPI_2xx.Params// Instance config-params object;
        params.UC1IE// USCI_B1 Interrupt Enable Register = USCI_B1_SPI_2xx.UC1IE_t {
            UCB1TXIE: USCI_B1_SPI_2xx.UCB1TXIE_OFF,
            UCB1RXIE: USCI_B1_SPI_2xx.UCB1RXIE_OFF
        };
        params.UCB1BR0// Bit Rate Control Register 0 = Bits8 0;
        params.UCB1BR1// Bit Rate Control Register 1 = Bits8 0;
        params.UCB1CTL0// Control Register 0 = IUSCI_B1_SPI.UCxCTL0_t {
            UCCKPH: IUSCI_SPI.UCCKPH_OFF,
            UCCKPL: IUSCI_SPI.UCCKPL_OFF,
            UCMSB: IUSCI.UCMSB_OFF,
            UC7BIT: IUSCI.UC7BIT_OFF,
            UCMST: IUSCI_SPI.UCMST_OFF,
            UCMODE: IUSCI.UCMODE_0,
            UCSYNC: IUSCI.UCSYNC
        };
        params.UCB1CTL1// Control Register 1 = IUSCI_B1_SPI.UCxCTL1_t {
            UCSSEL: IUSCI_SPI.UCSSEL_0,
            UCSWRST: IUSCI.UCSWRST
        };
        params.UCB1RXBUF// Receive Buffer Register = Bits8 0;
        params.UCB1STAT// Status Register = IUSCI_B1_SPI.UCxSTAT_t {
            UCLISTEN: IUSCI.UCLISTEN_OFF,
            UCFE: IUSCI.UCFE_OFF,
            UCOE: IUSCI.UCOE_OFF,
            UCBUSY: IUSCI.UCBUSY
        };
        params.UCB1TXBUF// Transmit Buffer Register = Bits8 0;
        params.UCLKHz// Stores the UCLK external clock frequency in float = Float 1000000;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = USCI_B1_SPI_2xx.ForceSetDefaultRegister_t[] [
            {
                register: "UCB1CTL0",
                regForceSet: false
            },
            {
                register: "UCB1CTL1",
                regForceSet: false
            },
            {
                register: "UCB1BR0",
                regForceSet: false
            },
            {
                register: "UCB1BR1",
                regForceSet: false
            },
            {
                register: "UCB1STAT",
                regForceSet: false
            },
            {
                register: "UCB1RXBUF",
                regForceSet: false
            },
            {
                register: "UCB1TXBUF",
                regForceSet: false
            },
            {
                register: "UC1IE",
                regForceSet: false
            }
        ];
        params.interruptSource// USCI_A1 SPI interrupt enables = USCI_B1_SPI_2xx.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = USCI_B1_SPI_2xx.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getUCxxBR0// Returns UCxxBR0 register value based on which module() returns Bits8
     inst.getUCxxBR1// Returns UCxxBR1 register value based on which module() returns Bits8
     inst.getUCxxRXIE// Gets UCxxRXIE bit() returns Bool
     inst.getUCxxTXIE// Gets UCxxTXIE bit() returns Bool
     inst.setUCxxBR0// Sets UCxxBR0 register value based on which module(Bits8 value) returns Void
     inst.setUCxxBR1// Sets UCxxBR1 register value based on which module(Bits8 value) returns Void
     inst.setUCxxRXIE// Sets UCxxRXIE bit(Bool set) returns Bool
     inst.setUCxxTXIE// Sets UCxxTXIE bit(Bool set) returns Bool
enum USCI_B1_SPI_2xx.UC7BIT_t
index URL

Character length. Selects 7-bit or 8-bit character length

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UC7BIT_t
    const USCI_B1_SPI_2xx.UC7BIT_OFF;
    // 8-bit
    const USCI_B1_SPI_2xx.UC7BIT;
    // 7-bit
enum USCI_B1_SPI_2xx.UCADDR_t
index URL

Address received in address-bit multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCADDR_t
    const USCI_B1_SPI_2xx.UCADDR_OFF;
    // Received character is data
    const USCI_B1_SPI_2xx.UCADDR;
    // Received character is an address
enum USCI_B1_SPI_2xx.UCB1RXIE_t
index URL

USCI_B1 receive interrupt enable

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCB1RXIE_t
    const USCI_B1_SPI_2xx.UCB1RXIE_OFF;
    // Interrupt disabled
    const USCI_B1_SPI_2xx.UCB1RXIE;
    // Interrupt enabled
enum USCI_B1_SPI_2xx.UCB1TXIE_t
index URL

USCI_B1 transmit interrupt enable

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCB1TXIE_t
    const USCI_B1_SPI_2xx.UCB1TXIE_OFF;
    // Interrupt disabled
    const USCI_B1_SPI_2xx.UCB1TXIE;
    // Interrupt enabled
enum USCI_B1_SPI_2xx.UCBRKIE_t
index URL

Receive break character interrupt-enable

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCBRKIE_t
    const USCI_B1_SPI_2xx.UCBRKIE_OFF;
    // Received break characters do not set UCAxRXIFG
    const USCI_B1_SPI_2xx.UCBRKIE;
    // Received break characters set UCAxRXIFG
enum USCI_B1_SPI_2xx.UCBRK_t
index URL

Break detect flag

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCBRK_t
    const USCI_B1_SPI_2xx.UCBRK_OFF;
    // No break condition
    const USCI_B1_SPI_2xx.UCBRK;
    // Break condition occurred
enum USCI_B1_SPI_2xx.UCBUSY_t
index URL

USCI busy. This bit indicates if a transmit or receive operation is in progress

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCBUSY_t
    const USCI_B1_SPI_2xx.UCBUSY_OFF;
    // USCI inactive
    const USCI_B1_SPI_2xx.UCBUSY;
    // USCI transmitting or receiving
enum USCI_B1_SPI_2xx.UCCKPH_t
index URL

Clock phase select

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCCKPH_t
    const USCI_B1_SPI_2xx.UCCKPH_OFF;
    // Data is changed on the first UCLK edge and captured on the following edge
    const USCI_B1_SPI_2xx.UCCKPH;
    // Data is captured on the first UCLK edge and changed on the following edge
enum USCI_B1_SPI_2xx.UCCKPL_t
index URL

Clock polarity select

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCCKPL_t
    const USCI_B1_SPI_2xx.UCCKPL_OFF;
    // Inactive state is low
    const USCI_B1_SPI_2xx.UCCKPL;
    // Inactive state is high
enum USCI_B1_SPI_2xx.UCDORM_t
index URL

Dormant. Puts USCI into sleep mode

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCDORM_t
    const USCI_B1_SPI_2xx.UCDORM_OFF;
    // Not dormant. All received characters will set UCAxRXIFG
    const USCI_B1_SPI_2xx.UCDORM;
    // Dormant. Only characters that are preceded by an idle-line or with address bit set will set UCAxRXIFG. In UART mode with automatic baud rate detection only the combination of a break and synch field will set UCAxRXIFG
enum USCI_B1_SPI_2xx.UCFE_t
index URL

Framing error flag

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCFE_t
    const USCI_B1_SPI_2xx.UCFE_OFF;
    // 0 No error
    const USCI_B1_SPI_2xx.UCFE;
    // Character received with low stop bit
enum USCI_B1_SPI_2xx.UCIDLE_t
index URL

Idle line detected in idle-line multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCIDLE_t
    const USCI_B1_SPI_2xx.UCIDLE_OFF;
    // No idle line detected
    const USCI_B1_SPI_2xx.UCIDLE;
    // Idle line detected
enum USCI_B1_SPI_2xx.UCLISTEN_t
index URL

Listen enable. The UCLISTEN bit selects loopback mode

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCLISTEN_t
    const USCI_B1_SPI_2xx.UCLISTEN_OFF;
    // Disabled
    const USCI_B1_SPI_2xx.UCLISTEN;
    // Enabled. UCAxTXD is internally fed back to the receiver
enum USCI_B1_SPI_2xx.UCMODE_SYNC_t
index URL

USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCMODE_SYNC_t
    const USCI_B1_SPI_2xx.UCMODE_0;
    // 3-Pin SPI
    const USCI_B1_SPI_2xx.UCMODE_1;
    // 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    const USCI_B1_SPI_2xx.UCMODE_2;
    // 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    const USCI_B1_SPI_2xx.UCMODE_3;
    // I2C Mode
enum USCI_B1_SPI_2xx.UCMSB_t
index URL

MSB first select. Controls the direction of the receive and transmit shift register

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCMSB_t
    const USCI_B1_SPI_2xx.UCMSB_OFF;
    // LSB first
    const USCI_B1_SPI_2xx.UCMSB;
    // MSB first
enum USCI_B1_SPI_2xx.UCMST_t
index URL

Master mode select

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCMST_t
    const USCI_B1_SPI_2xx.UCMST_OFF;
    // Slave mode
    const USCI_B1_SPI_2xx.UCMST;
    // Master mode
enum USCI_B1_SPI_2xx.UCOE_t
index URL

Overrun error flag

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCOE_t
    const USCI_B1_SPI_2xx.UCOE_OFF;
    // No error
    const USCI_B1_SPI_2xx.UCOE;
    // Overrun error occurred
enum USCI_B1_SPI_2xx.UCPE_t
index URL

Parity error flag. When UCPEN = 0, UCPE is read as 0

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCPE_t
    const USCI_B1_SPI_2xx.UCPE_OFF;
    // No error
    const USCI_B1_SPI_2xx.UCPE;
    // Character received with parity error
enum USCI_B1_SPI_2xx.UCRXEIE_t
index URL

Receive erroneous-character interrupt-enable

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCRXEIE_t
    const USCI_B1_SPI_2xx.UCRXEIE_OFF;
    // Erroneous characters rejected and UCAxRXIFG is not set
    const USCI_B1_SPI_2xx.UCRXEIE;
    // Erroneous characters received will set UCAxRXIFG
enum USCI_B1_SPI_2xx.UCRXERR_t
index URL

Bit 2 Receive error flag. This bit indicates a character was received with error(s). When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also set. UCRXERR is cleared when UCAxRXBUF is read

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCRXERR_t
    const USCI_B1_SPI_2xx.UCRXERR_OFF;
    // No receive errors detected
    const USCI_B1_SPI_2xx.UCRXERR;
    // Receive error detected
enum USCI_B1_SPI_2xx.UCSSEL_SPI_t
index URL

USCI clock source select. These bits select the BRCLK source clock

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCSSEL_SPI_t
    const USCI_B1_SPI_2xx.UCSSEL_0;
    // NA
    const USCI_B1_SPI_2xx.UCSSEL_1;
    // ACLK
    const USCI_B1_SPI_2xx.UCSSEL_2;
    // SMCLK
enum USCI_B1_SPI_2xx.UCSWRST_t
index URL

Software reset enable

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCSWRST_t
    const USCI_B1_SPI_2xx.UCSWRST_OFF;
    // Disabled. USCI reset released for operation
    const USCI_B1_SPI_2xx.UCSWRST;
    // Enabled. USCI logic held in reset state
enum USCI_B1_SPI_2xx.UCSYNC_t
index URL

Synchronous mode enable

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCSYNC_t
    const USCI_B1_SPI_2xx.UCSYNC_OFF;
    // Asynchronous mode
    const USCI_B1_SPI_2xx.UCSYNC;
    // Synchronous Mode
enum USCI_B1_SPI_2xx.UCTXADDR_t
index URL

Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCTXADDR_t
    const USCI_B1_SPI_2xx.UCTXADDR_OFF;
    // Next frame transmitted is data
    const USCI_B1_SPI_2xx.UCTXADDR;
    // Next frame transmitted is an address
enum USCI_B1_SPI_2xx.UCTXBRK_t
index URL

Transmit break. Transmits a break with the next write to the transmit buffer. In UART mode with automatic baud rate detection 055h must be written into UCAxTXBUF to generate the required break/synch fields. Otherwise 0h must be written into the transmit buffer

XDCscript usage meta-domain
values of type USCI_B1_SPI_2xx.UCTXBRK_t
    const USCI_B1_SPI_2xx.UCTXBRK_OFF;
    // Next frame transmitted is not a break
    const USCI_B1_SPI_2xx.UCTXBRK;
    // Next frame transmitted is a break or a break/synch
struct USCI_B1_SPI_2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new USCI_B1_SPI_2xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct USCI_B1_SPI_2xx.UC1IE_t
index URL

USCI_xx SPI Interrupt Enable Register

XDCscript usage meta-domain
var obj = new USCI_B1_SPI_2xx.UC1IE_t;
    obj.UCB1TXIE = USCI_B1_SPI_2xx.UCB1TXIE_t ...
    // USCI_B1 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCB1RXIE = USCI_B1_SPI_2xx.UCB1RXIE_t ...
    // USCI_B1 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled
struct USCI_B1_SPI_2xx.UCxCTL0_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B1_SPI_2xx.UCxCTL0_t;
    obj.UCCKPH = IUSCI_SPI.UCCKPH_t ...
    // Clock phase select. 0 Data is changed on the first UCLK edge and captured on the following edge. 1 Data is captured on the first UCLK edge and changed on the following edge
    obj.UCCKPL = IUSCI_SPI.UCCKPL_t ...
    // Clock polarity select 0 The inactive state is low 1 The inactive state is high
    obj.UCMSB = IUSCI_SPI.UCMSB_t ...
    // MSB first select. Controls the direction of the receive and transmit shift register. 0 LSB first 1 MSB first
    obj.UC7BIT = IUSCI_SPI.UC7BIT_t ...
    // Character length. Selects 7-bit or 8-bit character length. 0 8-bit data 1 7-bit data
    obj.UCMST = IUSCI_SPI.UCMST_t ...
    // Master mode select 0 Slave mode 1 Master mode
    obj.UCMODE = IUSCI_SPI.UCMODE_SYNC_t ...
    // USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. 00 3-Pin SPI 01 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 10 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 11 I2C Mode
    obj.UCSYNC = IUSCI_SPI.UCSYNC_t ...
    // Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode
struct USCI_B1_SPI_2xx.UCxCTL1_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B1_SPI_2xx.UCxCTL1_t;
    obj.UCSSEL = IUSCI_SPI.UCSSEL_SPI_t ...
    // USCI clock source select. These bits select the BRCLK source clock in master mode. UCxCLK is always used in slave mode. 00 NA 01 ACLK 10 SMCLK 11 SMCLK
    obj.UCSWRST = IUSCI_SPI.UCSWRST_t ...
    // Software reset enable 0 Disabled. USCI reset released for operation. 1 Enabled. USCI logic held in reset state
struct USCI_B1_SPI_2xx.UCxSTAT_t
index URL
XDCscript usage meta-domain
var obj = new USCI_B1_SPI_2xx.UCxSTAT_t;
    obj.UCLISTEN = IUSCI_SPI.UCLISTEN_t ...
    // Listen enable. The UCLISTEN bit selects loopback mode. 0 Disabled 1 Enabled. UCAxTXD is internally fed back to the receiver
    obj.UCFE = IUSCI_SPI.UCFE_t ...
    // Framing error flag. This bit indicates a bus conflict in 4-wire master mode. UCFE is not used in 3-wire master or any slave mode. 0 No error 1 Bus conflict occurred
    obj.UCOE = IUSCI_SPI.UCOE_t ...
    // Overrun error flag. This bit is set when a character is transferred into UCAxRXBUF before the previous character was read. UCOE is cleared automatically when UCxRXBUF is read, and must not be cleared by software. Otherwise, it will not function correctly. 0 No error 1 Overrun error occurred
    obj.UCBUSY = IUSCI_SPI.UCBUSY_t ...
    // USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving
struct USCI_B1_SPI_2xx.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new USCI_B1_SPI_2xx.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
USCI_B1_SPI_2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
USCI_B1_SPI_2xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
USCI_B1_SPI_2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
USCI_B1_SPI_2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
// Instance config-params object
    params.UC1IE = USCI_B1_SPI_2xx.UC1IE_t {
    // USCI_B1 Interrupt Enable Register
        UCB1TXIE: USCI_B1_SPI_2xx.UCB1TXIE_OFF,
        UCB1RXIE: USCI_B1_SPI_2xx.UCB1RXIE_OFF
    };
    params.UCB1BR0 = Bits8 0;
    // Bit Rate Control Register 0
    params.UCB1BR1 = Bits8 0;
    // Bit Rate Control Register 1
    params.UCB1CTL0 = IUSCI_B1_SPI.UCxCTL0_t {
    // Control Register 0
        UCCKPH: IUSCI_SPI.UCCKPH_OFF,
        UCCKPL: IUSCI_SPI.UCCKPL_OFF,
        UCMSB: IUSCI.UCMSB_OFF,
        UC7BIT: IUSCI.UC7BIT_OFF,
        UCMST: IUSCI_SPI.UCMST_OFF,
        UCMODE: IUSCI.UCMODE_0,
        UCSYNC: IUSCI.UCSYNC
    };
    params.UCB1CTL1 = IUSCI_B1_SPI.UCxCTL1_t {
    // Control Register 1
        UCSSEL: IUSCI_SPI.UCSSEL_0,
        UCSWRST: IUSCI.UCSWRST
    };
    params.UCB1RXBUF = Bits8 0;
    // Receive Buffer Register
    params.UCB1STAT = IUSCI_B1_SPI.UCxSTAT_t {
    // Status Register
        UCLISTEN: IUSCI.UCLISTEN_OFF,
        UCFE: IUSCI.UCFE_OFF,
        UCOE: IUSCI.UCOE_OFF,
        UCBUSY: IUSCI.UCBUSY
    };
    params.UCB1TXBUF = Bits8 0;
    // Transmit Buffer Register
    params.UCLKHz = Float 1000000;
    // Stores the UCLK external clock frequency in float
    params.forceSetDefaultRegister = USCI_B1_SPI_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "UCB1CTL0",
            regForceSet: false
        },
        {
            register: "UCB1CTL1",
            regForceSet: false
        },
        {
            register: "UCB1BR0",
            regForceSet: false
        },
        {
            register: "UCB1BR1",
            regForceSet: false
        },
        {
            register: "UCB1STAT",
            regForceSet: false
        },
        {
            register: "UCB1RXBUF",
            regForceSet: false
        },
        {
            register: "UCB1TXBUF",
            regForceSet: false
        },
        {
            register: "UC1IE",
            regForceSet: false
        }
    ];
    params.interruptSource = USCI_B1_SPI_2xx.regIntVect_t[2] undefined;
    // USCI_A1 SPI interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config USCI_B1_SPI_2xx.UC1IE // instance
index URL

USCI_B1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.UC1IE = USCI_B1_SPI_2xx.UC1IE_t {
    UCB1TXIE: USCI_B1_SPI_2xx.UCB1TXIE_OFF,
    UCB1RXIE: USCI_B1_SPI_2xx.UCB1RXIE_OFF
};
config USCI_B1_SPI_2xx.UCB1BR0 // instance
index URL

Bit Rate Control Register 0

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.UCB1BR0 = Bits8 0;
config USCI_B1_SPI_2xx.UCB1BR1 // instance
index URL

Bit Rate Control Register 1

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.UCB1BR1 = Bits8 0;
config USCI_B1_SPI_2xx.UCB1CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.UCB1CTL0 = IUSCI_B1_SPI.UCxCTL0_t {
    UCCKPH: IUSCI_SPI.UCCKPH_OFF,
    UCCKPL: IUSCI_SPI.UCCKPL_OFF,
    UCMSB: IUSCI.UCMSB_OFF,
    UC7BIT: IUSCI.UC7BIT_OFF,
    UCMST: IUSCI_SPI.UCMST_OFF,
    UCMODE: IUSCI.UCMODE_0,
    UCSYNC: IUSCI.UCSYNC
};
config USCI_B1_SPI_2xx.UCB1CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.UCB1CTL1 = IUSCI_B1_SPI.UCxCTL1_t {
    UCSSEL: IUSCI_SPI.UCSSEL_0,
    UCSWRST: IUSCI.UCSWRST
};
config USCI_B1_SPI_2xx.UCB1RXBUF // instance
index URL

Receive Buffer Register

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.UCB1RXBUF = Bits8 0;
config USCI_B1_SPI_2xx.UCB1STAT // instance
index URL

Status Register

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.UCB1STAT = IUSCI_B1_SPI.UCxSTAT_t {
    UCLISTEN: IUSCI.UCLISTEN_OFF,
    UCFE: IUSCI.UCFE_OFF,
    UCOE: IUSCI.UCOE_OFF,
    UCBUSY: IUSCI.UCBUSY
};
config USCI_B1_SPI_2xx.UCB1TXBUF // instance
index URL

Transmit Buffer Register

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.UCB1TXBUF = Bits8 0;
config USCI_B1_SPI_2xx.UCLKHz // instance
index URL

Stores the UCLK external clock frequency in float

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.UCLKHz = Float 1000000;
config USCI_B1_SPI_2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
const params.forceSetDefaultRegister = USCI_B1_SPI_2xx.ForceSetDefaultRegister_t[] [
    {
        register: "UCB1CTL0",
        regForceSet: false
    },
    {
        register: "UCB1CTL1",
        regForceSet: false
    },
    {
        register: "UCB1BR0",
        regForceSet: false
    },
    {
        register: "UCB1BR1",
        regForceSet: false
    },
    {
        register: "UCB1STAT",
        regForceSet: false
    },
    {
        register: "UCB1RXBUF",
        regForceSet: false
    },
    {
        register: "UCB1TXBUF",
        regForceSet: false
    },
    {
        register: "UC1IE",
        regForceSet: false
    }
];
config USCI_B1_SPI_2xx.interruptSource // instance
index URL

USCI_A1 SPI interrupt enables

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.interruptSource = USCI_B1_SPI_2xx.regIntVect_t[2] undefined;
config USCI_B1_SPI_2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config USCI_B1_SPI_2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new USCI_B1_SPI_2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = USCI_B1_SPI_2xx.create(IClock.Instance clock, params);
// Create an instance-object
USCI_B1_SPI_2xx.getUCxxBR0() // instance
index URL

Returns UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR0() returns Bits8
SEE
getUCxxBR0
USCI_B1_SPI_2xx.getUCxxBR1() // instance
index URL

Returns UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.getUCxxBR1() returns Bits8
SEE
getUCxxBR1
USCI_B1_SPI_2xx.getUCxxRXIE() // instance
index URL

Gets UCxxRXIE bit

XDCscript usage meta-domain
inst.getUCxxRXIE() returns Bool
SEE
getUCxxRXIE
USCI_B1_SPI_2xx.getUCxxTXIE() // instance
index URL

Gets UCxxTXIE bit

XDCscript usage meta-domain
inst.getUCxxTXIE() returns Bool
SEE
getUCxxTXIE
USCI_B1_SPI_2xx.setUCxxBR0() // instance
index URL

Sets UCxxBR0 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR0(Bits8 value) returns Void
SEE
setUCxxBR0
USCI_B1_SPI_2xx.setUCxxBR1() // instance
index URL

Sets UCxxBR1 register value based on which module

XDCscript usage meta-domain
inst.setUCxxBR1(Bits8 value) returns Void
SEE
setUCxxBR1
USCI_B1_SPI_2xx.setUCxxRXIE() // instance
index URL

Sets UCxxRXIE bit

XDCscript usage meta-domain
inst.setUCxxRXIE(Bool set) returns Bool
SEE
setUCxxRXIE
USCI_B1_SPI_2xx.setUCxxTXIE() // instance
index URL

Sets UCxxTXIE bit

XDCscript usage meta-domain
inst.setUCxxTXIE(Bool set) returns Bool
SEE
setUCxxTXIE
generated on Thu, 08 Nov 2012 02:16:46 GMT


module ti.catalog.msp430.peripherals.communication.USCI_B1_SPI_2xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Universal Serial Communication Interface B1 SPI 2xx
    16     */
    17    metaonly module USCI_B1_SPI_2xx inherits IUSCI_B1_SPI {
    18        /*
    19         *  ======== create ========
    20         */
    21        create(IClock.Instance clock);
    22
    23        /*! USCI_B1 transmit interrupt enable */
    24        enum UCB1TXIE_t {
    25            UCB1TXIE_OFF = 0x00,    /*! Interrupt disabled */
    26            UCB1TXIE = 0x08         /*! Interrupt enabled */
    27        };
    28
    29        /*! USCI_B1 receive interrupt enable */
    30        enum UCB1RXIE_t {
    31            UCB1RXIE_OFF = 0x00,     /*! Interrupt disabled */
    32            UCB1RXIE = 0x04          /*! Interrupt enabled */
    33        };
    34
    35        /*! USCI_xx SPI Interrupt Enable Register */
    36        struct UC1IE_t {
    37            UCB1TXIE_t  UCB1TXIE;   /*! USCI_B1 transmit interrupt enable
    38                                     *  0  Interrupt disabled
    39                                     *  1  Interrupt enabled */
    40            UCB1RXIE_t  UCB1RXIE;   /*! USCI_B1 receive interrupt enable
    41                                     *  0  Interrupt disabled
    42                                     *  1  Interrupt enabled */
    43        }
    44
    45    instance:
    46        /*! @_nodoc */
    47        config IClock.Instance clock;
    48
    49        /*! USCI_B1 Interrupt Enable Register */
    50        config UC1IE_t UC1IE = {
    51            UCB1TXIE    : UCB1TXIE_OFF,
    52            UCB1RXIE    : UCB1RXIE_OFF
    53        };
    54
    55        /*! USCI_A1 SPI interrupt enables */
    56        config regIntVect_t interruptSource[2];
    57
    58        /*! Determine if each Register needs to be forced set or not */
    59        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    60        [
    61            { register : "UCB1CTL0"   , regForceSet : false },
    62            { register : "UCB1CTL1"   , regForceSet : false },
    63            { register : "UCB1BR0"    , regForceSet : false },
    64            { register : "UCB1BR1"    , regForceSet : false },
    65            { register : "UCB1STAT"   , regForceSet : false },
    66            { register : "UCB1RXBUF"  , regForceSet : false },
    67            { register : "UCB1TXBUF"  , regForceSet : false },
    68            { register : "UC1IE"      , regForceSet : false }
    69        ];
    70    }


module ti.catalog.msp430.peripherals.communication.USI

metaonly module ti.catalog.msp430.peripherals.communication.USI
index URL

Universal Serial Interface

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/communication/USI.xdc
var USI = xdc.useModule('ti.catalog.msp430.peripherals.communication.USI');
module-wide constants & types
    values of type USI.USI16B_t// 16-bit shift register enable
        const USI.USI16B_OFF// 8-bit shift register mode. Low byte register USISRL is used;
        const USI.USI16B// 16-bit shift register mode. Both high and low byte registers USISRL and USISRH are used. USISR addresses all 16 bits simultaneously;
    values of type USI.USIAL_t// Arbitration lost
        const USI.USIAL_OFF// No arbitration lost condition;
        const USI.USIAL// Arbitration lost;
    values of type USI.USICKPH_t// Clock phase select
        const USI.USICKPH_OFF// Data is changed on the first SCLK edge and captured on the following edge;
        const USI.USICKPH// Data is captured on the first SCLK edge and changed on the following edge;
    values of type USI.USICKPL_t// Clock polarity select
        const USI.USICKPL_OFF// Inactive state is low;
        const USI.USICKPL// Inactive state is high;
    values of type USI.USICNT0_t// USI bit count - Bit0
        const USI.USICNT0_OFF// USI bit count;
        const USI.USICNT0// USI bit count;
    values of type USI.USICNT1_t// USI bit count - Bit1
        const USI.USICNT1_OFF// USI bit count;
        const USI.USICNT1// USI bit count;
    values of type USI.USICNT2_t// USI bit count - Bit2
        const USI.USICNT2_OFF// USI bit count;
        const USI.USICNT2// USI bit count;
    values of type USI.USICNT3_t// USI bit count - Bit3
        const USI.USICNT3_OFF// USI bit count;
        const USI.USICNT3// USI bit count;
    values of type USI.USICNT4_t// USI bit count - Bit4
        const USI.USICNT4_OFF// USI bit count;
        const USI.USICNT4// USI bit count;
    values of type USI.USIDIV_t// Clock divider select
        const USI.USIDIV_0// Divide by 1;
        const USI.USIDIV_1// Divide by 2;
        const USI.USIDIV_2// Divide by 4;
        const USI.USIDIV_3// Divide by 8;
        const USI.USIDIV_4// Divide by 16;
        const USI.USIDIV_5// Divide by 32;
        const USI.USIDIV_6// Divide by 64;
        const USI.USIDIV_7// Divide by 128;
    values of type USI.USIGE_t// Output latch control
        const USI.USIGE_OFF// Output latch enable depends on shift clock;
        const USI.USIGE// Output latch always enabled and transparent;
    values of type USI.USII2C_t// I2C mode enable
        const USI.USII2C_OFF// I2C mode disabled;
        const USI.USII2C// I2C mode enabled;
    values of type USI.USIIE_t// USI counter interrupt enable
        const USI.USIIE_OFF// Interrupt disabled;
        const USI.USIIE// Interrupt enabled;
    values of type USI.USIIFGCC_t// USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be cleared automatically when USICNTx is written with a value > 0
        const USI.USIIFGCC_OFF// USIIFG automatically cleared on USICNTx update;
        const USI.USIIFGCC// USIIFG is not cleared automatically;
    values of type USI.USIIFG_t// USI counter interrupt flag. Set when the USICNTx = 0. Automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0
        const USI.USIIFG_OFF// No interrupt pending;
        const USI.USIIFG// Interrupt pending;
    values of type USI.USILSB_t// LSB first select. This bit controls the direction of the receive and transmit shift register
        const USI.USILSB_OFF// MSB first;
        const USI.USILSB// LSB first;
    values of type USI.USIMST_t// Master select
        const USI.USIMST_OFF// Slave mode;
        const USI.USIMST// Master mode;
    values of type USI.USIOE_t// Data output enable
        const USI.USIOE_OFF// Output disabled;
        const USI.USIOE// Output enabled;
    values of type USI.USIPE5_t// USI SCLK port enable. Input in SPI slave mode, or I2C mode, output in SPI master mode
        const USI.USIPE5_OFF// USI function disabled;
        const USI.USIPE5// USI function enabled;
    values of type USI.USIPE6_t// USI SDO/SCL port enable. Output in SPI mode, input or open drain output in I2C mode
        const USI.USIPE6_OFF// USI function disabled;
        const USI.USIPE6// USI function enabled;
    values of type USI.USIPE7_t// USI SDI/SDA port enable. Input in SPI mode, input or open drain output in I2C mode
        const USI.USIPE7_OFF// USI function disabled;
        const USI.USIPE7// USI function enabled;
    values of type USI.USISCLREL_t// SCL release. The SCL line is released from low to idle. USISCLREL is cleared if a START condition is detected
        const USI.USISCLREL_OFF// SCL line is held low if USIIFG is set;
        const USI.USISCLREL// SCL line is released;
    values of type USI.USISSEL_t// Clock source select. Not used in slave mode
        const USI.USISSEL_0// SCLK (Not used in SPI mode);
        const USI.USISSEL_1// ACLK;
        const USI.USISSEL_2// SMCLK;
        const USI.USISSEL_3// SMCLK;
        const USI.USISSEL_4// USISWCLK bit;
        const USI.USISSEL_5// TACCR0;
        const USI.USISSEL_6// TACCR1;
        const USI.USISSEL_7// TACCR2 (Reserved on MSP430F20xx devices);
    values of type USI.USISTP_t// STOP condition received. USISTP is automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0
        const USI.USISTP_OFF// No STOP condition received;
        const USI.USISTP// STOP condition received;
    values of type USI.USISTTIE_t// START condition interrupt-enable
        const USI.USISTTIE_OFF// Interrupt on START condition disabled;
        const USI.USISTTIE// Interrupt on START condition enabled;
    values of type USI.USISTTIFG_t// START condition interrupt flag
        const USI.USISTTIFG_OFF// No START condition received. No interrupt pending;
        const USI.USISTTIFG// START condition received. Interrupt pending;
    values of type USI.USISWCLK_t// Software clock
        const USI.USISWCLK_OFF// Input clock is low;
        const USI.USISWCLK// Input clock is high;
    values of type USI.USISWRST_t// USI software reset
        const USI.USISWRST_OFF// USI released for operation;
        const USI.USISWRST// USI logic held in reset state;
    var obj = new USI.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new USI.USICKCTL_t// ;
        obj.USIDIV// Clock divider select 000 Divide by 1 001 Divide by 2 010 Divide by 4 011 Divide by 8 100 Divide by 16 101 Divide by 32 110 Divide by 64 111 Divide by 128 = IUSI.USIDIV_t ...
        obj.USISSEL// Clock source select. Not used in slave mode. 000 SCLK (Not used in SPI mode) 001 ACLK 010 SMCLK 011 SMCLK 100 USISWCLK bit 101 TACCR0 110 TACCR1 111 TACCR2 (Reserved on MSP430F20xx devices) = IUSI.USISSEL_t ...
        obj.USICKPL// Clock polarity select 0 Inactive state is low 1 Inactive state is high = IUSI.USICKPL_t ...
        obj.USISWCLK// Software clock 0 Input clock is low 1 Input clock is high = IUSI.USISWCLK_t ...
    var obj = new USI.USICNT_t// ;
        obj.USISCLREL// SCL release. The SCL line is released from low to idle. USISCLREL is cleared if a START condition is detected. 0 SCL line is held low if USIIFG is set 1 SCL line is released = IUSI.USISCLREL_t ...
        obj.USI16B// 16-bit shift register enable 0 8-bit shift register mode. Low byte register USISRL is used. 1 16-bit shift register mode. Both high and low byte registers USISRL and USISRH are used. USISR addresses all 16 bits simultaneously = IUSI.USI16B_t ...
        obj.USIIFGCC// USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be cleared automatically when USICNTx is written with a value > 0. 0 USIIFG automatically cleared on USICNTx update 1 USIIFG is not cleared automatically = IUSI.USIIFGCC_t ...
        obj.USICNT4// USI bit count bit 4 The USICNTx bits set the number of bits to be received or transmitted = IUSI.USICNT4_t ...
        obj.USICNT3// USI bit count bit 3 The USICNTx bits set the number of bits to be received or transmitted = IUSI.USICNT3_t ...
        obj.USICNT2// USI bit count bit 2 The USICNTx bits set the number of bits to be received or transmitted = IUSI.USICNT2_t ...
        obj.USICNT1// USI bit count bit 1 The USICNTx bits set the number of bits to be received or transmitted = IUSI.USICNT1_t ...
        obj.USICNT0// USI bit count bit 0 The USICNTx bits set the number of bits to be received or transmitted = IUSI.USICNT0_t ...
    var obj = new USI.USICTL0_t// ;
        obj.USIPE7// USI SDI/SDA port enable. Input in SPI mode, input or open drain output in I2C mode. 0 USI function disabled 1 USI function enabled = IUSI.USIPE7_t ...
        obj.USIPE6// USI SDO/SCL port enable. Output in SPI mode, input or open drain output in I2C mode. 0 USI function disabled 1 USI function enabled = IUSI.USIPE6_t ...
        obj.USIPE5// USI SCLK port enable. Input in SPI slave mode, or I2C mode, output in SPI master mode. 0 USI function disabled 1 USI function enabled = IUSI.USIPE5_t ...
        obj.USILSB// LSB first select. This bit controls the direction of the receive and transmit shift register. 0 MSB first 1 LSB first = IUSI.USILSB_t ...
        obj.USIMST// Master select 0 Slave mode 1 Master mode = IUSI.USIMST_t ...
        obj.USIGE// Output latch control 0 Output latch enable depends on shift clock 1 Output latch always enabled and transparent = IUSI.USIGE_t ...
        obj.USIOE// Data output enable 0 Output disabled 1 Output enabled = IUSI.USIOE_t ...
        obj.USISWRST// USI software reset 0 USI released for operation. 1 USI logic held in reset state = IUSI.USISWRST_t ...
    var obj = new USI.USICTL1_t// ;
        obj.USICKPH// Clock phase select 0 Data is changed on the first SCLK edge and captured on the following edge. 1 Data is captured on the first SCLK edge and changed on the following edge = IUSI.USICKPH_t ...
        obj.USII2C// I2C mode enable 0 I2C mode disabled 1 I2C mode enabled = IUSI.USII2C_t ...
        obj.USISTTIE// START condition interrupt-enable 0 Interrupt on START condition disabled 1 Interrupt on START condition enabled = IUSI.USISTTIE_t ...
        obj.USIIE// USI counter interrupt enable 0 Interrupt disabled 1 Interrupt enabled = IUSI.USIIE_t ...
        obj.USIAL// Arbitration lost 0 No arbitration lost condition 1 Arbitration lost = IUSI.USIAL_t ...
        obj.USISTP// STOP condition received. USISTP is automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0. 0 No STOP condition received 1 STOP condition received = IUSI.USISTP_t ...
        obj.USISTTIFG// START condition interrupt flag 0 No START condition received. No interrupt pending. 1 START condition received. Interrupt pending = IUSI.USISTTIFG_t ...
        obj.USIIFG// USI counter interrupt flag. Set when the USICNTx = 0. Automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0. 0 No interrupt pending 1 Interrupt pending = IUSI.USIIFG_t ...
    var obj = new USI.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     USI.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     USI.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new USI.Params// Instance config-params object;
        params.USICKCTL// USI Clock Control Register = USI.USICKCTL_t {
            USIDIV: IUSI.USIDIV_0,
            USISSEL: IUSI.USISSEL_0,
            USICKPL: IUSI.USICKPL_OFF,
            USISWCLK: IUSI.USISWCLK_OFF
        };
        params.USICNT// USI Bit Counter Register = USI.USICNT_t {
            USISCLREL: IUSI.USISCLREL_OFF,
            USI16B: IUSI.USI16B_OFF,
            USIIFGCC: IUSI.USIIFGCC_OFF,
            USICNT4: IUSI.USICNT4_OFF,
            USICNT3: IUSI.USICNT3_OFF,
            USICNT2: IUSI.USICNT2_OFF,
            USICNT1: IUSI.USICNT1_OFF,
            USICNT0: IUSI.USICNT0_OFF
        };
        params.USICTL0// USI Control Register 0 = USI.USICTL0_t {
            USIPE7: IUSI.USIPE7_OFF,
            USIPE6: IUSI.USIPE6_OFF,
            USIPE5: IUSI.USIPE5_OFF,
            USILSB: IUSI.USILSB_OFF,
            USIMST: IUSI.USIMST_OFF,
            USIGE: IUSI.USIGE_OFF,
            USIOE: IUSI.USIOE_OFF,
            USISWRST: IUSI.USISWRST
        };
        params.USICTL1// USI Control Register 1 = USI.USICTL1_t {
            USICKPH: IUSI.USICKPH_OFF,
            USII2C: IUSI.USII2C_OFF,
            USISTTIE: IUSI.USISTTIE_OFF,
            USIIE: IUSI.USIIE_OFF,
            USIAL: IUSI.USIAL_OFF,
            USISTP: IUSI.USISTP_OFF,
            USISTTIFG: IUSI.USISTTIFG_OFF,
            USIIFG: IUSI.USIIFG
        };
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = USI.ForceSetDefaultRegister_t[] [
            {
                register: "USICTL0",
                regForceSet: false
            },
            {
                register: "USICTL1",
                regForceSet: false
            },
            {
                register: "USICKCTL",
                regForceSet: false
            },
            {
                register: "USICNT",
                regForceSet: false
            }
        ];
        params.interruptSource// USI interrupt enables = USI.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = USI.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getUSIIE// Gets USIIE register() returns Bool
     inst.getUSISTTIE// Gets USISTTIE register() returns Bool
     inst.setUSIIE// Sets USIIE register(Bool set) returns Bool
     inst.setUSISTTIE// Sets USISTTIE register(Bool set) returns Bool
enum USI.USI16B_t
index URL

16-bit shift register enable

XDCscript usage meta-domain
values of type USI.USI16B_t
    const USI.USI16B_OFF;
    // 8-bit shift register mode. Low byte register USISRL is used
    const USI.USI16B;
    // 16-bit shift register mode. Both high and low byte registers USISRL and USISRH are used. USISR addresses all 16 bits simultaneously
enum USI.USIAL_t
index URL

Arbitration lost

XDCscript usage meta-domain
values of type USI.USIAL_t
    const USI.USIAL_OFF;
    // No arbitration lost condition
    const USI.USIAL;
    // Arbitration lost
enum USI.USICKPH_t
index URL

Clock phase select

XDCscript usage meta-domain
values of type USI.USICKPH_t
    const USI.USICKPH_OFF;
    // Data is changed on the first SCLK edge and captured on the following edge
    const USI.USICKPH;
    // Data is captured on the first SCLK edge and changed on the following edge
enum USI.USICKPL_t
index URL

Clock polarity select

XDCscript usage meta-domain
values of type USI.USICKPL_t
    const USI.USICKPL_OFF;
    // Inactive state is low
    const USI.USICKPL;
    // Inactive state is high
enum USI.USICNT0_t
index URL

USI bit count - Bit0

XDCscript usage meta-domain
values of type USI.USICNT0_t
    const USI.USICNT0_OFF;
    // USI bit count
    const USI.USICNT0;
    // USI bit count
enum USI.USICNT1_t
index URL

USI bit count - Bit1

XDCscript usage meta-domain
values of type USI.USICNT1_t
    const USI.USICNT1_OFF;
    // USI bit count
    const USI.USICNT1;
    // USI bit count
enum USI.USICNT2_t
index URL

USI bit count - Bit2

XDCscript usage meta-domain
values of type USI.USICNT2_t
    const USI.USICNT2_OFF;
    // USI bit count
    const USI.USICNT2;
    // USI bit count
enum USI.USICNT3_t
index URL

USI bit count - Bit3

XDCscript usage meta-domain
values of type USI.USICNT3_t
    const USI.USICNT3_OFF;
    // USI bit count
    const USI.USICNT3;
    // USI bit count
enum USI.USICNT4_t
index URL

USI bit count - Bit4

XDCscript usage meta-domain
values of type USI.USICNT4_t
    const USI.USICNT4_OFF;
    // USI bit count
    const USI.USICNT4;
    // USI bit count
enum USI.USIDIV_t
index URL

Clock divider select

XDCscript usage meta-domain
values of type USI.USIDIV_t
    const USI.USIDIV_0;
    // Divide by 1
    const USI.USIDIV_1;
    // Divide by 2
    const USI.USIDIV_2;
    // Divide by 4
    const USI.USIDIV_3;
    // Divide by 8
    const USI.USIDIV_4;
    // Divide by 16
    const USI.USIDIV_5;
    // Divide by 32
    const USI.USIDIV_6;
    // Divide by 64
    const USI.USIDIV_7;
    // Divide by 128
enum USI.USIGE_t
index URL

Output latch control

XDCscript usage meta-domain
values of type USI.USIGE_t
    const USI.USIGE_OFF;
    // Output latch enable depends on shift clock
    const USI.USIGE;
    // Output latch always enabled and transparent
enum USI.USII2C_t
index URL

I2C mode enable

XDCscript usage meta-domain
values of type USI.USII2C_t
    const USI.USII2C_OFF;
    // I2C mode disabled
    const USI.USII2C;
    // I2C mode enabled
enum USI.USIIE_t
index URL

USI counter interrupt enable

XDCscript usage meta-domain
values of type USI.USIIE_t
    const USI.USIIE_OFF;
    // Interrupt disabled
    const USI.USIIE;
    // Interrupt enabled
enum USI.USIIFGCC_t
index URL

USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be cleared automatically when USICNTx is written with a value > 0

XDCscript usage meta-domain
values of type USI.USIIFGCC_t
    const USI.USIIFGCC_OFF;
    // USIIFG automatically cleared on USICNTx update
    const USI.USIIFGCC;
    // USIIFG is not cleared automatically
enum USI.USIIFG_t
index URL

USI counter interrupt flag. Set when the USICNTx = 0. Automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0

XDCscript usage meta-domain
values of type USI.USIIFG_t
    const USI.USIIFG_OFF;
    // No interrupt pending
    const USI.USIIFG;
    // Interrupt pending
enum USI.USILSB_t
index URL

LSB first select. This bit controls the direction of the receive and transmit shift register

XDCscript usage meta-domain
values of type USI.USILSB_t
    const USI.USILSB_OFF;
    // MSB first
    const USI.USILSB;
    // LSB first
enum USI.USIMST_t
index URL

Master select

XDCscript usage meta-domain
values of type USI.USIMST_t
    const USI.USIMST_OFF;
    // Slave mode
    const USI.USIMST;
    // Master mode
enum USI.USIOE_t
index URL

Data output enable

XDCscript usage meta-domain
values of type USI.USIOE_t
    const USI.USIOE_OFF;
    // Output disabled
    const USI.USIOE;
    // Output enabled
enum USI.USIPE5_t
index URL

USI SCLK port enable. Input in SPI slave mode, or I2C mode, output in SPI master mode

XDCscript usage meta-domain
values of type USI.USIPE5_t
    const USI.USIPE5_OFF;
    // USI function disabled
    const USI.USIPE5;
    // USI function enabled
enum USI.USIPE6_t
index URL

USI SDO/SCL port enable. Output in SPI mode, input or open drain output in I2C mode

XDCscript usage meta-domain
values of type USI.USIPE6_t
    const USI.USIPE6_OFF;
    // USI function disabled
    const USI.USIPE6;
    // USI function enabled
enum USI.USIPE7_t
index URL

USI SDI/SDA port enable. Input in SPI mode, input or open drain output in I2C mode

XDCscript usage meta-domain
values of type USI.USIPE7_t
    const USI.USIPE7_OFF;
    // USI function disabled
    const USI.USIPE7;
    // USI function enabled
enum USI.USISCLREL_t
index URL

SCL release. The SCL line is released from low to idle. USISCLREL is cleared if a START condition is detected

XDCscript usage meta-domain
values of type USI.USISCLREL_t
    const USI.USISCLREL_OFF;
    // SCL line is held low if USIIFG is set
    const USI.USISCLREL;
    // SCL line is released
enum USI.USISSEL_t
index URL

Clock source select. Not used in slave mode

XDCscript usage meta-domain
values of type USI.USISSEL_t
    const USI.USISSEL_0;
    // SCLK (Not used in SPI mode)
    const USI.USISSEL_1;
    // ACLK
    const USI.USISSEL_2;
    // SMCLK
    const USI.USISSEL_3;
    // SMCLK
    const USI.USISSEL_4;
    // USISWCLK bit
    const USI.USISSEL_5;
    // TACCR0
    const USI.USISSEL_6;
    // TACCR1
    const USI.USISSEL_7;
    // TACCR2 (Reserved on MSP430F20xx devices)
enum USI.USISTP_t
index URL

STOP condition received. USISTP is automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0

XDCscript usage meta-domain
values of type USI.USISTP_t
    const USI.USISTP_OFF;
    // No STOP condition received
    const USI.USISTP;
    // STOP condition received
enum USI.USISTTIE_t
index URL

START condition interrupt-enable

XDCscript usage meta-domain
values of type USI.USISTTIE_t
    const USI.USISTTIE_OFF;
    // Interrupt on START condition disabled
    const USI.USISTTIE;
    // Interrupt on START condition enabled
enum USI.USISTTIFG_t
index URL

START condition interrupt flag

XDCscript usage meta-domain
values of type USI.USISTTIFG_t
    const USI.USISTTIFG_OFF;
    // No START condition received. No interrupt pending
    const USI.USISTTIFG;
    // START condition received. Interrupt pending
enum USI.USISWCLK_t
index URL

Software clock

XDCscript usage meta-domain
values of type USI.USISWCLK_t
    const USI.USISWCLK_OFF;
    // Input clock is low
    const USI.USISWCLK;
    // Input clock is high
enum USI.USISWRST_t
index URL

USI software reset

XDCscript usage meta-domain
values of type USI.USISWRST_t
    const USI.USISWRST_OFF;
    // USI released for operation
    const USI.USISWRST;
    // USI logic held in reset state
struct USI.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new USI.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct USI.USICKCTL_t
index URL
XDCscript usage meta-domain
var obj = new USI.USICKCTL_t;
    obj.USIDIV = IUSI.USIDIV_t ...
    // Clock divider select 000 Divide by 1 001 Divide by 2 010 Divide by 4 011 Divide by 8 100 Divide by 16 101 Divide by 32 110 Divide by 64 111 Divide by 128
    obj.USISSEL = IUSI.USISSEL_t ...
    // Clock source select. Not used in slave mode. 000 SCLK (Not used in SPI mode) 001 ACLK 010 SMCLK 011 SMCLK 100 USISWCLK bit 101 TACCR0 110 TACCR1 111 TACCR2 (Reserved on MSP430F20xx devices)
    obj.USICKPL = IUSI.USICKPL_t ...
    // Clock polarity select 0 Inactive state is low 1 Inactive state is high
    obj.USISWCLK = IUSI.USISWCLK_t ...
    // Software clock 0 Input clock is low 1 Input clock is high
struct USI.USICNT_t
index URL
XDCscript usage meta-domain
var obj = new USI.USICNT_t;
    obj.USISCLREL = IUSI.USISCLREL_t ...
    // SCL release. The SCL line is released from low to idle. USISCLREL is cleared if a START condition is detected. 0 SCL line is held low if USIIFG is set 1 SCL line is released
    obj.USI16B = IUSI.USI16B_t ...
    // 16-bit shift register enable 0 8-bit shift register mode. Low byte register USISRL is used. 1 16-bit shift register mode. Both high and low byte registers USISRL and USISRH are used. USISR addresses all 16 bits simultaneously
    obj.USIIFGCC = IUSI.USIIFGCC_t ...
    // USI interrupt flag clear control. When USIIFGCC = 1 the USIIFG will not be cleared automatically when USICNTx is written with a value > 0. 0 USIIFG automatically cleared on USICNTx update 1 USIIFG is not cleared automatically
    obj.USICNT4 = IUSI.USICNT4_t ...
    // USI bit count bit 4 The USICNTx bits set the number of bits to be received or transmitted
    obj.USICNT3 = IUSI.USICNT3_t ...
    // USI bit count bit 3 The USICNTx bits set the number of bits to be received or transmitted
    obj.USICNT2 = IUSI.USICNT2_t ...
    // USI bit count bit 2 The USICNTx bits set the number of bits to be received or transmitted
    obj.USICNT1 = IUSI.USICNT1_t ...
    // USI bit count bit 1 The USICNTx bits set the number of bits to be received or transmitted
    obj.USICNT0 = IUSI.USICNT0_t ...
    // USI bit count bit 0 The USICNTx bits set the number of bits to be received or transmitted
struct USI.USICTL0_t
index URL
XDCscript usage meta-domain
var obj = new USI.USICTL0_t;
    obj.USIPE7 = IUSI.USIPE7_t ...
    // USI SDI/SDA port enable. Input in SPI mode, input or open drain output in I2C mode. 0 USI function disabled 1 USI function enabled
    obj.USIPE6 = IUSI.USIPE6_t ...
    // USI SDO/SCL port enable. Output in SPI mode, input or open drain output in I2C mode. 0 USI function disabled 1 USI function enabled
    obj.USIPE5 = IUSI.USIPE5_t ...
    // USI SCLK port enable. Input in SPI slave mode, or I2C mode, output in SPI master mode. 0 USI function disabled 1 USI function enabled
    obj.USILSB = IUSI.USILSB_t ...
    // LSB first select. This bit controls the direction of the receive and transmit shift register. 0 MSB first 1 LSB first
    obj.USIMST = IUSI.USIMST_t ...
    // Master select 0 Slave mode 1 Master mode
    obj.USIGE = IUSI.USIGE_t ...
    // Output latch control 0 Output latch enable depends on shift clock 1 Output latch always enabled and transparent
    obj.USIOE = IUSI.USIOE_t ...
    // Data output enable 0 Output disabled 1 Output enabled
    obj.USISWRST = IUSI.USISWRST_t ...
    // USI software reset 0 USI released for operation. 1 USI logic held in reset state
struct USI.USICTL1_t
index URL
XDCscript usage meta-domain
var obj = new USI.USICTL1_t;
    obj.USICKPH = IUSI.USICKPH_t ...
    // Clock phase select 0 Data is changed on the first SCLK edge and captured on the following edge. 1 Data is captured on the first SCLK edge and changed on the following edge
    obj.USII2C = IUSI.USII2C_t ...
    // I2C mode enable 0 I2C mode disabled 1 I2C mode enabled
    obj.USISTTIE = IUSI.USISTTIE_t ...
    // START condition interrupt-enable 0 Interrupt on START condition disabled 1 Interrupt on START condition enabled
    obj.USIIE = IUSI.USIIE_t ...
    // USI counter interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.USIAL = IUSI.USIAL_t ...
    // Arbitration lost 0 No arbitration lost condition 1 Arbitration lost
    obj.USISTP = IUSI.USISTP_t ...
    // STOP condition received. USISTP is automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0. 0 No STOP condition received 1 STOP condition received
    obj.USISTTIFG = IUSI.USISTTIFG_t ...
    // START condition interrupt flag 0 No START condition received. No interrupt pending. 1 START condition received. Interrupt pending
    obj.USIIFG = IUSI.USIIFG_t ...
    // USI counter interrupt flag. Set when the USICNTx = 0. Automatically cleared if USICNTx is loaded with a value > 0 when USIIFGCC = 0. 0 No interrupt pending 1 Interrupt pending
struct USI.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new USI.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
USI.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
USI.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
USI.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
USI.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new USI.Params;
// Instance config-params object
    params.USICKCTL = USI.USICKCTL_t {
    // USI Clock Control Register
        USIDIV: IUSI.USIDIV_0,
        USISSEL: IUSI.USISSEL_0,
        USICKPL: IUSI.USICKPL_OFF,
        USISWCLK: IUSI.USISWCLK_OFF
    };
    params.USICNT = USI.USICNT_t {
    // USI Bit Counter Register
        USISCLREL: IUSI.USISCLREL_OFF,
        USI16B: IUSI.USI16B_OFF,
        USIIFGCC: IUSI.USIIFGCC_OFF,
        USICNT4: IUSI.USICNT4_OFF,
        USICNT3: IUSI.USICNT3_OFF,
        USICNT2: IUSI.USICNT2_OFF,
        USICNT1: IUSI.USICNT1_OFF,
        USICNT0: IUSI.USICNT0_OFF
    };
    params.USICTL0 = USI.USICTL0_t {
    // USI Control Register 0
        USIPE7: IUSI.USIPE7_OFF,
        USIPE6: IUSI.USIPE6_OFF,
        USIPE5: IUSI.USIPE5_OFF,
        USILSB: IUSI.USILSB_OFF,
        USIMST: IUSI.USIMST_OFF,
        USIGE: IUSI.USIGE_OFF,
        USIOE: IUSI.USIOE_OFF,
        USISWRST: IUSI.USISWRST
    };
    params.USICTL1 = USI.USICTL1_t {
    // USI Control Register 1
        USICKPH: IUSI.USICKPH_OFF,
        USII2C: IUSI.USII2C_OFF,
        USISTTIE: IUSI.USISTTIE_OFF,
        USIIE: IUSI.USIIE_OFF,
        USIAL: IUSI.USIAL_OFF,
        USISTP: IUSI.USISTP_OFF,
        USISTTIFG: IUSI.USISTTIFG_OFF,
        USIIFG: IUSI.USIIFG
    };
    params.forceSetDefaultRegister = USI.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "USICTL0",
            regForceSet: false
        },
        {
            register: "USICTL1",
            regForceSet: false
        },
        {
            register: "USICKCTL",
            regForceSet: false
        },
        {
            register: "USICNT",
            regForceSet: false
        }
    ];
    params.interruptSource = USI.regIntVect_t[2] undefined;
    // USI interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config USI.USICKCTL // instance
index URL

USI Clock Control Register

XDCscript usage meta-domain
var params = new USI.Params;
...
params.USICKCTL = USI.USICKCTL_t {
    USIDIV: IUSI.USIDIV_0,
    USISSEL: IUSI.USISSEL_0,
    USICKPL: IUSI.USICKPL_OFF,
    USISWCLK: IUSI.USISWCLK_OFF
};
config USI.USICNT // instance
index URL

USI Bit Counter Register

XDCscript usage meta-domain
var params = new USI.Params;
...
params.USICNT = USI.USICNT_t {
    USISCLREL: IUSI.USISCLREL_OFF,
    USI16B: IUSI.USI16B_OFF,
    USIIFGCC: IUSI.USIIFGCC_OFF,
    USICNT4: IUSI.USICNT4_OFF,
    USICNT3: IUSI.USICNT3_OFF,
    USICNT2: IUSI.USICNT2_OFF,
    USICNT1: IUSI.USICNT1_OFF,
    USICNT0: IUSI.USICNT0_OFF
};
config USI.USICTL0 // instance
index URL

USI Control Register 0

XDCscript usage meta-domain
var params = new USI.Params;
...
params.USICTL0 = USI.USICTL0_t {
    USIPE7: IUSI.USIPE7_OFF,
    USIPE6: IUSI.USIPE6_OFF,
    USIPE5: IUSI.USIPE5_OFF,
    USILSB: IUSI.USILSB_OFF,
    USIMST: IUSI.USIMST_OFF,
    USIGE: IUSI.USIGE_OFF,
    USIOE: IUSI.USIOE_OFF,
    USISWRST: IUSI.USISWRST
};
config USI.USICTL1 // instance
index URL

USI Control Register 1

XDCscript usage meta-domain
var params = new USI.Params;
...
params.USICTL1 = USI.USICTL1_t {
    USICKPH: IUSI.USICKPH_OFF,
    USII2C: IUSI.USII2C_OFF,
    USISTTIE: IUSI.USISTTIE_OFF,
    USIIE: IUSI.USIIE_OFF,
    USIAL: IUSI.USIAL_OFF,
    USISTP: IUSI.USISTP_OFF,
    USISTTIFG: IUSI.USISTTIFG_OFF,
    USIIFG: IUSI.USIIFG
};
config USI.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new USI.Params;
...
const params.forceSetDefaultRegister = USI.ForceSetDefaultRegister_t[] [
    {
        register: "USICTL0",
        regForceSet: false
    },
    {
        register: "USICTL1",
        regForceSet: false
    },
    {
        register: "USICKCTL",
        regForceSet: false
    },
    {
        register: "USICNT",
        regForceSet: false
    }
];
config USI.interruptSource // instance
index URL

USI interrupt enables

XDCscript usage meta-domain
var params = new USI.Params;
...
params.interruptSource = USI.regIntVect_t[2] undefined;
config USI.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new USI.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config USI.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new USI.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new USI.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = USI.create(IClock.Instance clock, params);
// Create an instance-object
USI.getUSIIE() // instance
index URL

Gets USIIE register

XDCscript usage meta-domain
inst.getUSIIE() returns Bool
SEE
setUSIIE
USI.getUSISTTIE() // instance
index URL

Gets USISTTIE register

XDCscript usage meta-domain
inst.getUSISTTIE() returns Bool
SEE
getUSISTTIE
USI.setUSIIE() // instance
index URL

Sets USIIE register

XDCscript usage meta-domain
inst.setUSIIE(Bool set) returns Bool
SEE
setUSIIE
USI.setUSISTTIE() // instance
index URL

Sets USISTTIE register

XDCscript usage meta-domain
inst.setUSISTTIE(Bool set) returns Bool
SEE
setUSISTTIE
generated on Thu, 08 Nov 2012 02:16:46 GMT


module ti.catalog.msp430.peripherals.communication.USI

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     * Universal Serial Interface
    16     */
    17    metaonly module USI inherits IUSI {
    18        /*
    19         *  ======== create ========
    20         */
    21        create(IClock.Instance clock);
    22
    23    instance:
    24        /*! @_nodoc */
    25        config IClock.Instance clock;
    26
    27        /*! USI Control Register 0 */
    28        config USICTL0_t USICTL0 = {
    29            USIPE7      : USIPE7_OFF,
    30            USIPE6      : USIPE6_OFF,
    31            USIPE5      : USIPE5_OFF,
    32            USILSB      : USILSB_OFF,
    33            USIMST      : USIMST_OFF,
    34            USIGE       : USIGE_OFF,
    35            USIOE       : USIOE_OFF,
    36            USISWRST    : USISWRST,
    37        };
    38
    39        /*! USI Control Register 1 */
    40        config USICTL1_t USICTL1 = {
    41            USICKPH     : USICKPH_OFF,
    42            USII2C      : USII2C_OFF,
    43            USISTTIE    : USISTTIE_OFF,
    44            USIIE       : USIIE_OFF,
    45            USIAL       : USIAL_OFF,
    46            USISTP      : USISTP_OFF,
    47            USISTTIFG   : USISTTIFG_OFF,
    48            USIIFG      : USIIFG,
    49        };
    50
    51        /*! USI Clock Control Register */
    52        config USICKCTL_t USICKCTL = {
    53            USIDIV      : USIDIV_0,
    54            USISSEL     : USISSEL_0,
    55            USICKPL     : USICKPL_OFF,
    56            USISWCLK    : USISWCLK_OFF,
    57        };
    58
    59        /*! USI Bit Counter Register */
    60        config USICNT_t USICNT = {
    61            USISCLREL   : USISCLREL_OFF,
    62            USI16B      : USI16B_OFF,
    63            USIIFGCC    : USIIFGCC_OFF,
    64            USICNT4     : USICNT4_OFF,
    65            USICNT3     : USICNT3_OFF,
    66            USICNT2     : USICNT2_OFF,
    67            USICNT1     : USICNT1_OFF,
    68            USICNT0     : USICNT0_OFF,
    69        };
    70
    71        /*! USI interrupt enables */
    72        config regIntVect_t interruptSource[2];
    73
    74        /*! Determine if each Register needs to be forced set or not */
    75        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    76        [
    77            { register : "USICTL0"    , regForceSet : false },
    78            { register : "USICTL1"    , regForceSet : false },
    79            { register : "USICKCTL"   , regForceSet : false },
    80            { register : "USICNT"     , regForceSet : false }
    81        ];
    82    }


package ti.catalog.msp430.peripherals.comparator
index URL

MSP430 Flash memory peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/package.xdc
package ti.catalog.msp430.peripherals.comparator [1, 0, 0] {
    interface IComparator;
    // MSP430 IComparator interface
    module Comparator_Aplus;
    // MSP430F2xx Family Comparator_Aplus Module
    module Comparator_D;
    // MSP430FR5xx Family Comparator_D Module
    module Comparator_E;
    // MSP430FR5xx Family Comparator_E Module
}
generated on Thu, 08 Nov 2012 02:16:48 GMT


package ti.catalog.msp430.peripherals.comparator

     1    /*!
     2     *  ======== ti.catalog.msp430.peripherals.memory ========
     3     *  MSP430 Flash memory peripheral
     4     */
     5    package ti.catalog.msp430.peripherals.comparator [1, 0, 0] {
     6        interface IComparator;
     7        module Comparator_Aplus;
     8        module Comparator_D;
     9        module Comparator_E;
    10    }


module ti.catalog.msp430.peripherals.comparator.Comparator_Aplus

metaonly module ti.catalog.msp430.peripherals.comparator.Comparator_Aplus
index URL

MSP430F2xx Family Comparator_Aplus Module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/comparator/Comparator_Aplus.xdc
var Comparator_Aplus = xdc.useModule('ti.catalog.msp430.peripherals.comparator.Comparator_Aplus');
module-wide constants & types
    values of type Comparator_Aplus.CAEX_t// CAEX Bit
        const Comparator_Aplus.CAEX_OFF// Disable CAEX bit;
        const Comparator_Aplus.CAEX// Enable CAEX bit;
    values of type Comparator_Aplus.CAF_t// CAF Bit
        const Comparator_Aplus.CAF_OFF// Disable CAF bit;
        const Comparator_Aplus.CAF// Enable CAF bit;
    values of type Comparator_Aplus.CAIES_t// CAIES Bit
        const Comparator_Aplus.CAIES_OFF// Rising Edge;
        const Comparator_Aplus.CAIES// Falling Edge;
    values of type Comparator_Aplus.CAIE_t// CAIE Bit
        const Comparator_Aplus.CAIE_OFF// Disable CAIE bit;
        const Comparator_Aplus.CAIE// Enable CAIE bit;
    values of type Comparator_Aplus.CAIFG_t// CAIFG Bit
        const Comparator_Aplus.CAIFG_OFF// Disable CAIFG bit;
        const Comparator_Aplus.CAIFG// Enable CAIFG bit;
    values of type Comparator_Aplus.CAON_t// CAON Bit
        const Comparator_Aplus.CAON_OFF// Disable CAON bit;
        const Comparator_Aplus.CAON// Enable CAON bit;
    values of type Comparator_Aplus.CAPD0_t// CAPD0 Bit
        const Comparator_Aplus.CAPD0_OFF// Disable CAPD0 bit;
        const Comparator_Aplus.CAPD0// Enable CAPD0 bit;
    values of type Comparator_Aplus.CAPD1_t// CAPD1 Bit
        const Comparator_Aplus.CAPD1_OFF// Disable CAPD1 bit;
        const Comparator_Aplus.CAPD1// Enable CAPD1 bit;
    values of type Comparator_Aplus.CAPD2_t// CAPD2 Bit
        const Comparator_Aplus.CAPD2_OFF// Disable CAPD2 bit;
        const Comparator_Aplus.CAPD2// Enable CAPD2 bit;
    values of type Comparator_Aplus.CAPD3_t// CAPD3 Bit
        const Comparator_Aplus.CAPD3_OFF// Disable CAPD3 bit;
        const Comparator_Aplus.CAPD3// Enable CAPD3 bit;
    values of type Comparator_Aplus.CAPD4_t// CAPD4 Bit
        const Comparator_Aplus.CAPD4_OFF// Disable CAPD4 bit;
        const Comparator_Aplus.CAPD4// Enable CAPD4 bit;
    values of type Comparator_Aplus.CAPD5_t// CAPD5 Bit
        const Comparator_Aplus.CAPD5_OFF// Disable CAPD5 bit;
        const Comparator_Aplus.CAPD5// Enable CAPD5 bit;
    values of type Comparator_Aplus.CAPD6_t// CAPD6 Bit
        const Comparator_Aplus.CAPD6_OFF// Disable CAPD6 bit;
        const Comparator_Aplus.CAPD6// Enable CAPD6 bit;
    values of type Comparator_Aplus.CAPD7_t// CAPD7 Bit
        const Comparator_Aplus.CAPD7_OFF// Disable CAPD7 bit;
        const Comparator_Aplus.CAPD7// Enable CAPD7 bit;
    values of type Comparator_Aplus.CAREF_t// CAREF Bit
        const Comparator_Aplus.CAREF_0// Reference Off;
        const Comparator_Aplus.CAREF_1// 0.25 * VCC;
        const Comparator_Aplus.CAREF_2// 0.50 * VCC;
        const Comparator_Aplus.CAREF_3// Diode Reference;
    values of type Comparator_Aplus.CARSEL_t// CARSEL Bit
        const Comparator_Aplus.CARSEL_OFF// Disable CARSEL bit;
        const Comparator_Aplus.CARSEL// Enable CARSEL bit;
    values of type Comparator_Aplus.CASHORT_t// CASHORT Bit
        const Comparator_Aplus.CASHORT_OFF// Disable CASHORT bit;
        const Comparator_Aplus.CASHORT// Enable CASHORT bit;
    values of type Comparator_Aplus.P2CA0_t// P2CA0 Bit
        const Comparator_Aplus.P2CA0_OFF// Disable P2CA0 bit;
        const Comparator_Aplus.P2CA0// Enable P2CA0 bit;
    values of type Comparator_Aplus.P2CA1_t// P2CA1 Bit
        const Comparator_Aplus.P2CA1_OFF// Disable P2CA1 bit;
        const Comparator_Aplus.P2CA1// Enable P2CA1 bit;
    values of type Comparator_Aplus.P2CA2_t// P2CA2 Bit
        const Comparator_Aplus.P2CA2_OFF// Disable P2CA2 bit;
        const Comparator_Aplus.P2CA2// Enable P2CA2 bit;
    values of type Comparator_Aplus.P2CA3_t// P2CA3 Bit
        const Comparator_Aplus.P2CA3_OFF// Disable P2CA3 bit;
        const Comparator_Aplus.P2CA3// Enable P2CA3 bit;
    values of type Comparator_Aplus.P2CA4_t// P2CA4 Bit
        const Comparator_Aplus.P2CA4_OFF// Disable P2CA4 bit;
        const Comparator_Aplus.P2CA4// Enable P2CA4 bit;
    var obj = new Comparator_Aplus.CACTL1_t// CACTL1 Register;
        obj.CAEX// Comparator_A+ exchange. This bit exchanges the comparator inputs and inverts the comparator output = Comparator_Aplus.CAEX_t ...
        obj.CARSEL// Comparator_A+ reference select. This bit selects which terminal the VCAREF is applied to. When CAEX = 0: 0 VCAREF is applied to the + terminal 1 VCAREF is applied to the - terminal When CAEX = 1: 0 VCAREF is applied to the - terminal 1 VCAREF is applied to the + terminal = Comparator_Aplus.CARSEL_t ...
        obj.CAREF// Comparator_A+ reference. These bits select the reference voltage VCAREF. 00 Internal reference off. An external reference can be applied. 01 0.25*VCC 10 0.50*VCC 11 Diode reference is selected = Comparator_Aplus.CAREF_t ...
        obj.CAON// Comparator_A+ on. This bit turns on the comparator. When the comparator is off it consumes no current. The reference circuitry is enabled or disabled independently. 0 Off 1 On = Comparator_Aplus.CAON_t ...
        obj.CAIES// Comparator_A interrupt edge select 0 Rising edge 1 Falling edge = Comparator_Aplus.CAIES_t ...
        obj.CAIE// Comparator_A+ interrupt enable 0 Disabled 1 Enabled = Comparator_Aplus.CAIE_t ...
        obj.CAIFG// The Comparator_A+ interrupt flag 0 No interrupt pending 1 Interrupt pending = Comparator_Aplus.CAIFG_t ...
    var obj = new Comparator_Aplus.CACTL2_t// CACTL1 Register;
        obj.CASHORT// Input short. This bit shorts the + and - input terminals. 0 Inputs not shorted. 1 Inputs shorted = Comparator_Aplus.CASHORT_t ...
        obj.P2CA4// Input select. This bit together with P2CA0 selects the + terminal input when CAEX = 0 and the - terminal input when CAEX = 1 = Comparator_Aplus.P2CA4_t ...
        obj.P2CA3// Input select. These bits select the - terminal input when CAEX = 0 and the + terminal input when CAEX = 1. 000 No connection 001 CA1 010 CA2 011 CA3 100 CA4 101 CA5 110 CA6 111 CA7 = Comparator_Aplus.P2CA3_t ...
        obj.P2CA2// Input select. These bits select the - terminal input when CAEX = 0 and the + terminal input when CAEX = 1. 000 No connection 001 CA1 010 CA2 011 CA3 100 CA4 101 CA5 110 CA6 111 CA7 = Comparator_Aplus.P2CA2_t ...
        obj.P2CA1// Input select. These bits select the - terminal input when CAEX = 0 and the + terminal input when CAEX = 1. 000 No connection 001 CA1 010 CA2 011 CA3 100 CA4 101 CA5 110 CA6 111 CA7 = Comparator_Aplus.P2CA1_t ...
        obj.P2CA0// Input select. This bit, together with P2CA4, selects the + terminal input when CAEX = 0 and the - terminal input when CAEX = 1. 00 No connection 01 CA0 10 CA1 11 CA2 = Comparator_Aplus.P2CA0_t ...
        obj.CAF// Comparator_A+ output filter 0 Comparator_A+ output is not filtered 1 Comparator_A+ output is filtered = Comparator_Aplus.CAF_t ...
    var obj = new Comparator_Aplus.CAPD_t// CAPD, Register;
        obj.CAPD7// CAPD7 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled = Comparator_Aplus.CAPD7_t ...
        obj.CAPD6// CAPD6 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled = Comparator_Aplus.CAPD6_t ...
        obj.CAPD5// CAPD5 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled = Comparator_Aplus.CAPD5_t ...
        obj.CAPD4// CAPD4 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled = Comparator_Aplus.CAPD4_t ...
        obj.CAPD3// CAPD3 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled = Comparator_Aplus.CAPD3_t ...
        obj.CAPD2// CAPD2 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled = Comparator_Aplus.CAPD2_t ...
        obj.CAPD1// CAPD1 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled = Comparator_Aplus.CAPD1_t ...
        obj.CAPD0// CAPD0 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled = Comparator_Aplus.CAPD0_t ...
    var obj = new Comparator_Aplus.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Comparator_Aplus.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Comparator_Aplus.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Comparator_Aplus.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Comparator_Aplus.Params// Instance config-params object;
        params.CACTL1// CACTL1 Register = Comparator_Aplus.CACTL1_t {
            CAEX: IComparator.CAEX_OFF,
            CARSEL: IComparator.CARSEL_OFF,
            CAREF: IComparator.CAREF_0,
            CAON: IComparator.CAON_OFF,
            CAIES: IComparator.CAIES_OFF,
            CAIE: IComparator.CAIE_OFF,
            CAIFG: IComparator.CAIFG_OFF
        };
        params.CACTL2// CACTL2 Register = Comparator_Aplus.CACTL2_t {
            CASHORT: IComparator.CASHORT_OFF,
            P2CA4: IComparator.P2CA4_OFF,
            P2CA3: IComparator.P2CA3_OFF,
            P2CA2: IComparator.P2CA2_OFF,
            P2CA1: IComparator.P2CA1_OFF,
            P2CA0: IComparator.P2CA0_OFF,
            CAF: IComparator.CAF_OFF
        };
        params.CAPD// CAPD, Register = Comparator_Aplus.CAPD_t {
            CAPD7: IComparator.CAPD7_OFF,
            CAPD6: IComparator.CAPD6_OFF,
            CAPD5: IComparator.CAPD5_OFF,
            CAPD4: IComparator.CAPD4_OFF,
            CAPD3: IComparator.CAPD3_OFF,
            CAPD2: IComparator.CAPD2_OFF,
            CAPD1: IComparator.CAPD1_OFF,
            CAPD0: IComparator.CAPD0_OFF
        };
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Comparator_Aplus.ForceSetDefaultRegister_t[] [
            {
                register: "CACTL1",
                regForceSet: false
            },
            {
                register: "CACTL2",
                regForceSet: false
            },
            {
                register: "CAPD",
                regForceSet: false
            }
        ];
        params.interruptSource// Comparator_A+ has 1 interrupt enable = Comparator_Aplus.regIntVect_t[1] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Comparator_Aplus.create// Create an instance-object(params);
enum Comparator_Aplus.CAEX_t
index URL

CAEX Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAEX_t
    const Comparator_Aplus.CAEX_OFF;
    // Disable CAEX bit
    const Comparator_Aplus.CAEX;
    // Enable CAEX bit
enum Comparator_Aplus.CAF_t
index URL

CAF Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAF_t
    const Comparator_Aplus.CAF_OFF;
    // Disable CAF bit
    const Comparator_Aplus.CAF;
    // Enable CAF bit
enum Comparator_Aplus.CAIES_t
index URL

CAIES Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAIES_t
    const Comparator_Aplus.CAIES_OFF;
    // Rising Edge
    const Comparator_Aplus.CAIES;
    // Falling Edge
enum Comparator_Aplus.CAIE_t
index URL

CAIE Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAIE_t
    const Comparator_Aplus.CAIE_OFF;
    // Disable CAIE bit
    const Comparator_Aplus.CAIE;
    // Enable CAIE bit
enum Comparator_Aplus.CAIFG_t
index URL

CAIFG Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAIFG_t
    const Comparator_Aplus.CAIFG_OFF;
    // Disable CAIFG bit
    const Comparator_Aplus.CAIFG;
    // Enable CAIFG bit
enum Comparator_Aplus.CAON_t
index URL

CAON Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAON_t
    const Comparator_Aplus.CAON_OFF;
    // Disable CAON bit
    const Comparator_Aplus.CAON;
    // Enable CAON bit
enum Comparator_Aplus.CAPD0_t
index URL

CAPD0 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAPD0_t
    const Comparator_Aplus.CAPD0_OFF;
    // Disable CAPD0 bit
    const Comparator_Aplus.CAPD0;
    // Enable CAPD0 bit
enum Comparator_Aplus.CAPD1_t
index URL

CAPD1 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAPD1_t
    const Comparator_Aplus.CAPD1_OFF;
    // Disable CAPD1 bit
    const Comparator_Aplus.CAPD1;
    // Enable CAPD1 bit
enum Comparator_Aplus.CAPD2_t
index URL

CAPD2 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAPD2_t
    const Comparator_Aplus.CAPD2_OFF;
    // Disable CAPD2 bit
    const Comparator_Aplus.CAPD2;
    // Enable CAPD2 bit
enum Comparator_Aplus.CAPD3_t
index URL

CAPD3 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAPD3_t
    const Comparator_Aplus.CAPD3_OFF;
    // Disable CAPD3 bit
    const Comparator_Aplus.CAPD3;
    // Enable CAPD3 bit
enum Comparator_Aplus.CAPD4_t
index URL

CAPD4 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAPD4_t
    const Comparator_Aplus.CAPD4_OFF;
    // Disable CAPD4 bit
    const Comparator_Aplus.CAPD4;
    // Enable CAPD4 bit
enum Comparator_Aplus.CAPD5_t
index URL

CAPD5 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAPD5_t
    const Comparator_Aplus.CAPD5_OFF;
    // Disable CAPD5 bit
    const Comparator_Aplus.CAPD5;
    // Enable CAPD5 bit
enum Comparator_Aplus.CAPD6_t
index URL

CAPD6 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAPD6_t
    const Comparator_Aplus.CAPD6_OFF;
    // Disable CAPD6 bit
    const Comparator_Aplus.CAPD6;
    // Enable CAPD6 bit
enum Comparator_Aplus.CAPD7_t
index URL

CAPD7 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAPD7_t
    const Comparator_Aplus.CAPD7_OFF;
    // Disable CAPD7 bit
    const Comparator_Aplus.CAPD7;
    // Enable CAPD7 bit
enum Comparator_Aplus.CAREF_t
index URL

CAREF Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CAREF_t
    const Comparator_Aplus.CAREF_0;
    // Reference Off
    const Comparator_Aplus.CAREF_1;
    // 0.25 * VCC
    const Comparator_Aplus.CAREF_2;
    // 0.50 * VCC
    const Comparator_Aplus.CAREF_3;
    // Diode Reference
enum Comparator_Aplus.CARSEL_t
index URL

CARSEL Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CARSEL_t
    const Comparator_Aplus.CARSEL_OFF;
    // Disable CARSEL bit
    const Comparator_Aplus.CARSEL;
    // Enable CARSEL bit
enum Comparator_Aplus.CASHORT_t
index URL

CASHORT Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.CASHORT_t
    const Comparator_Aplus.CASHORT_OFF;
    // Disable CASHORT bit
    const Comparator_Aplus.CASHORT;
    // Enable CASHORT bit
enum Comparator_Aplus.P2CA0_t
index URL

P2CA0 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.P2CA0_t
    const Comparator_Aplus.P2CA0_OFF;
    // Disable P2CA0 bit
    const Comparator_Aplus.P2CA0;
    // Enable P2CA0 bit
enum Comparator_Aplus.P2CA1_t
index URL

P2CA1 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.P2CA1_t
    const Comparator_Aplus.P2CA1_OFF;
    // Disable P2CA1 bit
    const Comparator_Aplus.P2CA1;
    // Enable P2CA1 bit
enum Comparator_Aplus.P2CA2_t
index URL

P2CA2 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.P2CA2_t
    const Comparator_Aplus.P2CA2_OFF;
    // Disable P2CA2 bit
    const Comparator_Aplus.P2CA2;
    // Enable P2CA2 bit
enum Comparator_Aplus.P2CA3_t
index URL

P2CA3 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.P2CA3_t
    const Comparator_Aplus.P2CA3_OFF;
    // Disable P2CA3 bit
    const Comparator_Aplus.P2CA3;
    // Enable P2CA3 bit
enum Comparator_Aplus.P2CA4_t
index URL

P2CA4 Bit

XDCscript usage meta-domain
values of type Comparator_Aplus.P2CA4_t
    const Comparator_Aplus.P2CA4_OFF;
    // Disable P2CA4 bit
    const Comparator_Aplus.P2CA4;
    // Enable P2CA4 bit
struct Comparator_Aplus.CACTL1_t
index URL

CACTL1 Register

XDCscript usage meta-domain
var obj = new Comparator_Aplus.CACTL1_t;
    obj.CAEX = Comparator_Aplus.CAEX_t ...
    // Comparator_A+ exchange. This bit exchanges the comparator inputs and inverts the comparator output
    obj.CARSEL = Comparator_Aplus.CARSEL_t ...
    // Comparator_A+ reference select. This bit selects which terminal the VCAREF is applied to. When CAEX = 0: 0 VCAREF is applied to the + terminal 1 VCAREF is applied to the - terminal When CAEX = 1: 0 VCAREF is applied to the - terminal 1 VCAREF is applied to the + terminal
    obj.CAREF = Comparator_Aplus.CAREF_t ...
    // Comparator_A+ reference. These bits select the reference voltage VCAREF. 00 Internal reference off. An external reference can be applied. 01 0.25*VCC 10 0.50*VCC 11 Diode reference is selected
    obj.CAON = Comparator_Aplus.CAON_t ...
    // Comparator_A+ on. This bit turns on the comparator. When the comparator is off it consumes no current. The reference circuitry is enabled or disabled independently. 0 Off 1 On
    obj.CAIES = Comparator_Aplus.CAIES_t ...
    // Comparator_A interrupt edge select 0 Rising edge 1 Falling edge
    obj.CAIE = Comparator_Aplus.CAIE_t ...
    // Comparator_A+ interrupt enable 0 Disabled 1 Enabled
    obj.CAIFG = Comparator_Aplus.CAIFG_t ...
    // The Comparator_A+ interrupt flag 0 No interrupt pending 1 Interrupt pending
struct Comparator_Aplus.CACTL2_t
index URL

CACTL1 Register

XDCscript usage meta-domain
var obj = new Comparator_Aplus.CACTL2_t;
    obj.CASHORT = Comparator_Aplus.CASHORT_t ...
    // Input short. This bit shorts the + and - input terminals. 0 Inputs not shorted. 1 Inputs shorted
    obj.P2CA4 = Comparator_Aplus.P2CA4_t ...
    // Input select. This bit together with P2CA0 selects the + terminal input when CAEX = 0 and the - terminal input when CAEX = 1
    obj.P2CA3 = Comparator_Aplus.P2CA3_t ...
    // Input select. These bits select the - terminal input when CAEX = 0 and the + terminal input when CAEX = 1. 000 No connection 001 CA1 010 CA2 011 CA3 100 CA4 101 CA5 110 CA6 111 CA7
    obj.P2CA2 = Comparator_Aplus.P2CA2_t ...
    // Input select. These bits select the - terminal input when CAEX = 0 and the + terminal input when CAEX = 1. 000 No connection 001 CA1 010 CA2 011 CA3 100 CA4 101 CA5 110 CA6 111 CA7
    obj.P2CA1 = Comparator_Aplus.P2CA1_t ...
    // Input select. These bits select the - terminal input when CAEX = 0 and the + terminal input when CAEX = 1. 000 No connection 001 CA1 010 CA2 011 CA3 100 CA4 101 CA5 110 CA6 111 CA7
    obj.P2CA0 = Comparator_Aplus.P2CA0_t ...
    // Input select. This bit, together with P2CA4, selects the + terminal input when CAEX = 0 and the - terminal input when CAEX = 1. 00 No connection 01 CA0 10 CA1 11 CA2
    obj.CAF = Comparator_Aplus.CAF_t ...
    // Comparator_A+ output filter 0 Comparator_A+ output is not filtered 1 Comparator_A+ output is filtered
struct Comparator_Aplus.CAPD_t
index URL

CAPD, Register

XDCscript usage meta-domain
var obj = new Comparator_Aplus.CAPD_t;
    obj.CAPD7 = Comparator_Aplus.CAPD7_t ...
    // CAPD7 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled
    obj.CAPD6 = Comparator_Aplus.CAPD6_t ...
    // CAPD6 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled
    obj.CAPD5 = Comparator_Aplus.CAPD5_t ...
    // CAPD5 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled
    obj.CAPD4 = Comparator_Aplus.CAPD4_t ...
    // CAPD4 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled
    obj.CAPD3 = Comparator_Aplus.CAPD3_t ...
    // CAPD3 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled
    obj.CAPD2 = Comparator_Aplus.CAPD2_t ...
    // CAPD2 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled
    obj.CAPD1 = Comparator_Aplus.CAPD1_t ...
    // CAPD1 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled
    obj.CAPD0 = Comparator_Aplus.CAPD0_t ...
    // CAPD0 Comparator_A+ port disable 0 The input buffer is enabled. 1 The input buffer is disabled
struct Comparator_Aplus.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Comparator_Aplus.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Comparator_Aplus.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Comparator_Aplus.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Comparator_Aplus.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Comparator_Aplus.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Comparator_Aplus.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Comparator_Aplus.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Comparator_Aplus.Params;
// Instance config-params object
    params.CACTL1 = Comparator_Aplus.CACTL1_t {
    // CACTL1 Register
        CAEX: IComparator.CAEX_OFF,
        CARSEL: IComparator.CARSEL_OFF,
        CAREF: IComparator.CAREF_0,
        CAON: IComparator.CAON_OFF,
        CAIES: IComparator.CAIES_OFF,
        CAIE: IComparator.CAIE_OFF,
        CAIFG: IComparator.CAIFG_OFF
    };
    params.CACTL2 = Comparator_Aplus.CACTL2_t {
    // CACTL2 Register
        CASHORT: IComparator.CASHORT_OFF,
        P2CA4: IComparator.P2CA4_OFF,
        P2CA3: IComparator.P2CA3_OFF,
        P2CA2: IComparator.P2CA2_OFF,
        P2CA1: IComparator.P2CA1_OFF,
        P2CA0: IComparator.P2CA0_OFF,
        CAF: IComparator.CAF_OFF
    };
    params.CAPD = Comparator_Aplus.CAPD_t {
    // CAPD, Register
        CAPD7: IComparator.CAPD7_OFF,
        CAPD6: IComparator.CAPD6_OFF,
        CAPD5: IComparator.CAPD5_OFF,
        CAPD4: IComparator.CAPD4_OFF,
        CAPD3: IComparator.CAPD3_OFF,
        CAPD2: IComparator.CAPD2_OFF,
        CAPD1: IComparator.CAPD1_OFF,
        CAPD0: IComparator.CAPD0_OFF
    };
    params.forceSetDefaultRegister = Comparator_Aplus.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "CACTL1",
            regForceSet: false
        },
        {
            register: "CACTL2",
            regForceSet: false
        },
        {
            register: "CAPD",
            regForceSet: false
        }
    ];
    params.interruptSource = Comparator_Aplus.regIntVect_t[1] undefined;
    // Comparator_A+ has 1 interrupt enable
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Comparator_Aplus.CACTL1 // instance
index URL

CACTL1 Register

XDCscript usage meta-domain
var params = new Comparator_Aplus.Params;
...
params.CACTL1 = Comparator_Aplus.CACTL1_t {
    CAEX: IComparator.CAEX_OFF,
    CARSEL: IComparator.CARSEL_OFF,
    CAREF: IComparator.CAREF_0,
    CAON: IComparator.CAON_OFF,
    CAIES: IComparator.CAIES_OFF,
    CAIE: IComparator.CAIE_OFF,
    CAIFG: IComparator.CAIFG_OFF
};
config Comparator_Aplus.CACTL2 // instance
index URL

CACTL2 Register

XDCscript usage meta-domain
var params = new Comparator_Aplus.Params;
...
params.CACTL2 = Comparator_Aplus.CACTL2_t {
    CASHORT: IComparator.CASHORT_OFF,
    P2CA4: IComparator.P2CA4_OFF,
    P2CA3: IComparator.P2CA3_OFF,
    P2CA2: IComparator.P2CA2_OFF,
    P2CA1: IComparator.P2CA1_OFF,
    P2CA0: IComparator.P2CA0_OFF,
    CAF: IComparator.CAF_OFF
};
config Comparator_Aplus.CAPD // instance
index URL

CAPD, Register

XDCscript usage meta-domain
var params = new Comparator_Aplus.Params;
...
params.CAPD = Comparator_Aplus.CAPD_t {
    CAPD7: IComparator.CAPD7_OFF,
    CAPD6: IComparator.CAPD6_OFF,
    CAPD5: IComparator.CAPD5_OFF,
    CAPD4: IComparator.CAPD4_OFF,
    CAPD3: IComparator.CAPD3_OFF,
    CAPD2: IComparator.CAPD2_OFF,
    CAPD1: IComparator.CAPD1_OFF,
    CAPD0: IComparator.CAPD0_OFF
};
config Comparator_Aplus.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Comparator_Aplus.Params;
...
const params.forceSetDefaultRegister = Comparator_Aplus.ForceSetDefaultRegister_t[] [
    {
        register: "CACTL1",
        regForceSet: false
    },
    {
        register: "CACTL2",
        regForceSet: false
    },
    {
        register: "CAPD",
        regForceSet: false
    }
];
config Comparator_Aplus.interruptSource // instance
index URL

Comparator_A+ has 1 interrupt enable

XDCscript usage meta-domain
var params = new Comparator_Aplus.Params;
...
params.interruptSource = Comparator_Aplus.regIntVect_t[1] undefined;
config Comparator_Aplus.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Comparator_Aplus.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Comparator_Aplus.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Comparator_Aplus.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Comparator_Aplus.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Comparator_Aplus.create(params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:47 GMT


module ti.catalog.msp430.peripherals.comparator.Comparator_Aplus

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Comparator_Aplus ========
    14     *  MSP430F2xx Family Comparator_Aplus Module
    15     */
    16    metaonly module Comparator_Aplus inherits IComparator {
    17
    18        /*! CACTL1 Register */
    19        struct CACTL1_t {
    20            CAEX_t      CAEX;               /*! Comparator_A+ exchange. This bit exchanges the comparator inputs and
    21                                             *inverts the comparator output. */
    22            CARSEL_t    CARSEL;             /*! Comparator_A+ reference select. This bit selects which terminal the
    23                                             * VCAREF is applied to.
    24                                             * When CAEX = 0:
    25                                             * 0     VCAREF is applied to the + terminal
    26                                             * 1     VCAREF is applied to the - terminal
    27                                             * When CAEX = 1:
    28                                             * 0     VCAREF is applied to the - terminal
    29                                             * 1     VCAREF is applied to the + terminal */
    30
    31            CAREF_t     CAREF;              /*! Comparator_A+ reference. These bits select the reference voltage VCAREF.
    32                                             * 00 Internal reference off. An external reference can be applied.
    33                                             * 01 0.25*VCC
    34                                             * 10 0.50*VCC
    35                                             * 11 Diode reference is selected */
    36
    37            CAON_t      CAON;               /*! Comparator_A+ on. This bit turns on the comparator. When the
    38                                             * comparator is off it consumes no current. The reference circuitry is enabled
    39                                             * or disabled independently.
    40                                             * 0     Off
    41                                             * 1     On */
    42
    43            CAIES_t     CAIES;              /*! Comparator_A interrupt edge select
    44                                             * 0  Rising edge
    45                                             * 1  Falling edge */
    46
    47            CAIE_t      CAIE;               /*! Comparator_A+ interrupt enable
    48                                             * 0 Disabled
    49                                             * 1 Enabled */
    50
    51            CAIFG_t     CAIFG;              /*! The Comparator_A+ interrupt flag
    52                                             * 0 No interrupt pending
    53                                             * 1 Interrupt pending */
    54        }
    55
    56        /*! CACTL1 Register */
    57        struct CACTL2_t {
    58            CASHORT_t   CASHORT;            /*! Input short. This bit shorts the + and - input terminals.
    59                                             * 0 Inputs not shorted.
    60                                             * 1 Inputs shorted. */
    61            P2CA4_t     P2CA4;              /*! Input select. This bit together with P2CA0 selects the + terminal input when
    62                                             * CAEX = 0 and the - terminal input when CAEX = 1 */
    63
    64            P2CA3_t     P2CA3;              /*! Input select. These bits select the - terminal input when CAEX = 0 and the
    65                                             * + terminal input when CAEX = 1.
    66                                             * 000 No connection
    67                                             * 001 CA1
    68                                             * 010 CA2
    69                                             * 011 CA3
    70                                             * 100 CA4
    71                                             * 101 CA5
    72                                             * 110 CA6
    73                                             * 111 CA7 */
    74            P2CA2_t     P2CA2;              /*! Input select. These bits select the - terminal input when CAEX = 0 and the
    75                                             * + terminal input when CAEX = 1.
    76                                             * 000 No connection
    77                                             * 001 CA1
    78                                             * 010 CA2
    79                                             * 011 CA3
    80                                             * 100 CA4
    81                                             * 101 CA5
    82                                             * 110 CA6
    83                                             * 111 CA7 */
    84           P2CA1_t     P2CA1;              /*! Input select. These bits select the - terminal input when CAEX = 0 and the
    85                                             * + terminal input when CAEX = 1.
    86                                             * 000 No connection
    87                                             * 001 CA1
    88                                             * 010 CA2
    89                                             * 011 CA3
    90                                             * 100 CA4
    91                                             * 101 CA5
    92                                             * 110 CA6
    93                                             * 111 CA7 */
    94            P2CA0_t     P2CA0;              /*! Input select. This bit, together with P2CA4, selects the + terminal input
    95                                             * when CAEX = 0 and the - terminal input when CAEX = 1.
    96                                             * 00 No connection
    97                                             * 01 CA0
    98                                             * 10 CA1
    99                                             * 11 CA2 */
   100            CAF_t       CAF;                /*! Comparator_A+ output filter
   101                                             * 0 Comparator_A+ output is not filtered
   102                                             * 1 Comparator_A+ output is filtered */
   103        }
   104
   105        /*! CAPD, Register */
   106        struct CAPD_t {
   107            CAPD7_t     CAPD7;              /*! CAPD7 Comparator_A+ port disable
   108                                             * 0 The input buffer is enabled.
   109                                             * 1 The input buffer is disabled.*/
   110
   111            CAPD6_t     CAPD6;              /*! CAPD6 Comparator_A+ port disable
   112                                             *  0 The input buffer is enabled.
   113                                             *  1 The input buffer is disabled.*/
   114            CAPD5_t     CAPD5;              /*! CAPD5 Comparator_A+ port disable
   115                                             *  0 The input buffer is enabled.
   116                                             *  1 The input buffer is disabled.*/
   117            CAPD4_t     CAPD4;              /*! CAPD4 Comparator_A+ port disable
   118                                             *  0 The input buffer is enabled.
   119                                             *  1 The input buffer is disabled.*/
   120            CAPD3_t     CAPD3;              /*! CAPD3 Comparator_A+ port disable
   121                                             *  0 The input buffer is enabled.
   122                                             *  1 The input buffer is disabled.*/
   123            CAPD2_t     CAPD2;              /*! CAPD2 Comparator_A+ port disable
   124                                             *  0 The input buffer is enabled.
   125                                             *  1 The input buffer is disabled.*/
   126            CAPD1_t     CAPD1;              /*! CAPD1 Comparator_A+ port disable
   127                                             *  0 The input buffer is enabled.
   128                                             *  1 The input buffer is disabled.*/
   129            CAPD0_t     CAPD0;              /*! CAPD0 Comparator_A+ port disable
   130                                             *  0 The input buffer is enabled.
   131                                             *  1 The input buffer is disabled.*/
   132        }
   133
   134        /*!
   135         *  ======== create ========
   136         *  Create an instance of this peripheral.
   137         */
   138        create();
   139
   140    instance:
   141       /*! CACTL1 Register */
   142        config CACTL1_t CACTL1 = {
   143            CAEX    :    CAEX_OFF,
   144            CARSEL  :    CARSEL_OFF,
   145            CAREF   :    CAREF_0,
   146            CAON    :    CAON_OFF,
   147            CAIES   :    CAIES_OFF,
   148            CAIE    :    CAIE_OFF,
   149            CAIFG   :    CAIFG_OFF
   150         };
   151
   152        /*! CACTL2 Register */
   153        config CACTL2_t CACTL2 = {
   154            CASHORT :    CASHORT_OFF,
   155            P2CA4   :     P2CA4_OFF,
   156            P2CA3   :     P2CA3_OFF,
   157            P2CA2   :     P2CA2_OFF,
   158            P2CA1   :     P2CA1_OFF,
   159            P2CA0   :    P2CA0_OFF,
   160            CAF     :    CAF_OFF
   161        };
   162
   163        /*! CAPD, Register */
   164        config CAPD_t CAPD = {
   165            CAPD7   :    CAPD7_OFF,
   166            CAPD6   :    CAPD6_OFF,
   167            CAPD5   :    CAPD5_OFF,
   168            CAPD4   :    CAPD4_OFF,
   169            CAPD3   :    CAPD3_OFF,
   170            CAPD2   :    CAPD2_OFF,
   171            CAPD1   :    CAPD1_OFF,
   172            CAPD0   :    CAPD0_OFF
   173        };
   174
   175        /*! Comparator_A+ has 1 interrupt enable */
   176        config regIntVect_t interruptSource[1];
   177
   178         /*! Determine if each Register needs to be forced set or not */
   179        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   180        [
   181            { register : "CACTL1" , regForceSet : false },
   182            { register : "CACTL2" , regForceSet : false },
   183            { register : "CAPD" , regForceSet : false }
   184        ];
   185    }


module ti.catalog.msp430.peripherals.comparator.Comparator_D

metaonly module ti.catalog.msp430.peripherals.comparator.Comparator_D
index URL

MSP430FR5xx Family Comparator_D Module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/comparator/Comparator_D.xdc
var Comparator_D = xdc.useModule('ti.catalog.msp430.peripherals.comparator.Comparator_D');
module-wide constants & types
    values of type Comparator_D.CAEX_t// CAEX Bit
        const Comparator_D.CAEX_OFF// Disable CAEX bit;
        const Comparator_D.CAEX// Enable CAEX bit;
    values of type Comparator_D.CAF_t// CAF Bit
        const Comparator_D.CAF_OFF// Disable CAF bit;
        const Comparator_D.CAF// Enable CAF bit;
    values of type Comparator_D.CAIES_t// CAIES Bit
        const Comparator_D.CAIES_OFF// Rising Edge;
        const Comparator_D.CAIES// Falling Edge;
    values of type Comparator_D.CAIE_t// CAIE Bit
        const Comparator_D.CAIE_OFF// Disable CAIE bit;
        const Comparator_D.CAIE// Enable CAIE bit;
    values of type Comparator_D.CAIFG_t// CAIFG Bit
        const Comparator_D.CAIFG_OFF// Disable CAIFG bit;
        const Comparator_D.CAIFG// Enable CAIFG bit;
    values of type Comparator_D.CAON_t// CAON Bit
        const Comparator_D.CAON_OFF// Disable CAON bit;
        const Comparator_D.CAON// Enable CAON bit;
    values of type Comparator_D.CAPD0_t// CAPD0 Bit
        const Comparator_D.CAPD0_OFF// Disable CAPD0 bit;
        const Comparator_D.CAPD0// Enable CAPD0 bit;
    values of type Comparator_D.CAPD1_t// CAPD1 Bit
        const Comparator_D.CAPD1_OFF// Disable CAPD1 bit;
        const Comparator_D.CAPD1// Enable CAPD1 bit;
    values of type Comparator_D.CAPD2_t// CAPD2 Bit
        const Comparator_D.CAPD2_OFF// Disable CAPD2 bit;
        const Comparator_D.CAPD2// Enable CAPD2 bit;
    values of type Comparator_D.CAPD3_t// CAPD3 Bit
        const Comparator_D.CAPD3_OFF// Disable CAPD3 bit;
        const Comparator_D.CAPD3// Enable CAPD3 bit;
    values of type Comparator_D.CAPD4_t// CAPD4 Bit
        const Comparator_D.CAPD4_OFF// Disable CAPD4 bit;
        const Comparator_D.CAPD4// Enable CAPD4 bit;
    values of type Comparator_D.CAPD5_t// CAPD5 Bit
        const Comparator_D.CAPD5_OFF// Disable CAPD5 bit;
        const Comparator_D.CAPD5// Enable CAPD5 bit;
    values of type Comparator_D.CAPD6_t// CAPD6 Bit
        const Comparator_D.CAPD6_OFF// Disable CAPD6 bit;
        const Comparator_D.CAPD6// Enable CAPD6 bit;
    values of type Comparator_D.CAPD7_t// CAPD7 Bit
        const Comparator_D.CAPD7_OFF// Disable CAPD7 bit;
        const Comparator_D.CAPD7// Enable CAPD7 bit;
    values of type Comparator_D.CAREF_t// CAREF Bit
        const Comparator_D.CAREF_0// Reference Off;
        const Comparator_D.CAREF_1// 0.25 * VCC;
        const Comparator_D.CAREF_2// 0.50 * VCC;
        const Comparator_D.CAREF_3// Diode Reference;
    values of type Comparator_D.CARSEL_t// CARSEL Bit
        const Comparator_D.CARSEL_OFF// Disable CARSEL bit;
        const Comparator_D.CARSEL// Enable CARSEL bit;
    values of type Comparator_D.CASHORT_t// CASHORT Bit
        const Comparator_D.CASHORT_OFF// Disable CASHORT bit;
        const Comparator_D.CASHORT// Enable CASHORT bit;
    values of type Comparator_D.CDIE_t//
        const Comparator_D.CDIE_OFF// Interrupt not enabled;
        const Comparator_D.CDIE// Interrupt enabled;
    values of type Comparator_D.CDIFG_t//
        const Comparator_D.CDIFG_OFF// No interrupt pending;
        const Comparator_D.CDIFG// Interrupt pending;
    values of type Comparator_D.CDIIE_t//
        const Comparator_D.CDIIE_OFF// Interrupt not enabled inverted polarity;
        const Comparator_D.CDIIE// Interrupt enabled inverted polarity;
    values of type Comparator_D.CDIIFG_t//
        const Comparator_D.CDIIFG_OFF// No inverted interrupt pending;
        const Comparator_D.CDIIFG// Inverted interrupt pending;
    values of type Comparator_D.P2CA0_t// P2CA0 Bit
        const Comparator_D.P2CA0_OFF// Disable P2CA0 bit;
        const Comparator_D.P2CA0// Enable P2CA0 bit;
    values of type Comparator_D.P2CA1_t// P2CA1 Bit
        const Comparator_D.P2CA1_OFF// Disable P2CA1 bit;
        const Comparator_D.P2CA1// Enable P2CA1 bit;
    values of type Comparator_D.P2CA2_t// P2CA2 Bit
        const Comparator_D.P2CA2_OFF// Disable P2CA2 bit;
        const Comparator_D.P2CA2// Enable P2CA2 bit;
    values of type Comparator_D.P2CA3_t// P2CA3 Bit
        const Comparator_D.P2CA3_OFF// Disable P2CA3 bit;
        const Comparator_D.P2CA3// Enable P2CA3 bit;
    values of type Comparator_D.P2CA4_t// P2CA4 Bit
        const Comparator_D.P2CA4_OFF// Disable P2CA4 bit;
        const Comparator_D.P2CA4// Enable P2CA4 bit;
    var obj = new Comparator_D.CDIEALL_t// ;
        obj.CDIE// Comparator D interrupt enable. This bit enables the CDIFG interrupt for comparator mode. 0 Interrupt disabled 1 Interrupt enabled = Comparator_D.CDIE_t ...
        obj.CDIIE// Comparator D interrupt enable inverted polarity. This bit enables the CDIIFG interrupt for comparator mode. 0 Interrupt disabled 1 Interrupt enabled = Comparator_D.CDIIE_t ...
    var obj = new Comparator_D.CDIFGALL_t// ;
        obj.CDIFG// Comparator D interrupt flag. 0 No interrupt pending 1 Interrupt pending = Comparator_D.CDIFG_t ...
        obj.CDIIFG// Comparator D interrupt flag. 0 No inverted interrupt pending 1 Inverted interrupt pending = Comparator_D.CDIIFG_t ...
    var obj = new Comparator_D.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Comparator_D.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Comparator_D.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Comparator_D.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Comparator_D.Params// Instance config-params object;
        params.CDIEALL// All the Interrupt Enables in Comparator_D = Comparator_D.CDIEALL_t {
            CDIE: Comparator_D.CDIE_OFF,
            CDIIE: Comparator_D.CDIIE_OFF
        };
        params.CDIFGALL// All the Interrupt Flags in Comparator_D = Comparator_D.CDIFGALL_t {
            CDIFG: Comparator_D.CDIFG_OFF,
            CDIIFG: Comparator_D.CDIIFG_OFF
        };
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Comparator_D.ForceSetDefaultRegister_t[] [
            {
                register: "CDIEALL",
                regForceSet: false
            },
            {
                register: "CDIFGALL",
                regForceSet: false
            }
        ];
        params.interruptSource// Comparator_D has own interrupt enables thus interruptSource is defined here = Comparator_D.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
enum Comparator_D.CAEX_t
index URL

CAEX Bit

XDCscript usage meta-domain
values of type Comparator_D.CAEX_t
    const Comparator_D.CAEX_OFF;
    // Disable CAEX bit
    const Comparator_D.CAEX;
    // Enable CAEX bit
enum Comparator_D.CAF_t
index URL

CAF Bit

XDCscript usage meta-domain
values of type Comparator_D.CAF_t
    const Comparator_D.CAF_OFF;
    // Disable CAF bit
    const Comparator_D.CAF;
    // Enable CAF bit
enum Comparator_D.CAIES_t
index URL

CAIES Bit

XDCscript usage meta-domain
values of type Comparator_D.CAIES_t
    const Comparator_D.CAIES_OFF;
    // Rising Edge
    const Comparator_D.CAIES;
    // Falling Edge
enum Comparator_D.CAIE_t
index URL

CAIE Bit

XDCscript usage meta-domain
values of type Comparator_D.CAIE_t
    const Comparator_D.CAIE_OFF;
    // Disable CAIE bit
    const Comparator_D.CAIE;
    // Enable CAIE bit
enum Comparator_D.CAIFG_t
index URL

CAIFG Bit

XDCscript usage meta-domain
values of type Comparator_D.CAIFG_t
    const Comparator_D.CAIFG_OFF;
    // Disable CAIFG bit
    const Comparator_D.CAIFG;
    // Enable CAIFG bit
enum Comparator_D.CAON_t
index URL

CAON Bit

XDCscript usage meta-domain
values of type Comparator_D.CAON_t
    const Comparator_D.CAON_OFF;
    // Disable CAON bit
    const Comparator_D.CAON;
    // Enable CAON bit
enum Comparator_D.CAPD0_t
index URL

CAPD0 Bit

XDCscript usage meta-domain
values of type Comparator_D.CAPD0_t
    const Comparator_D.CAPD0_OFF;
    // Disable CAPD0 bit
    const Comparator_D.CAPD0;
    // Enable CAPD0 bit
enum Comparator_D.CAPD1_t
index URL

CAPD1 Bit

XDCscript usage meta-domain
values of type Comparator_D.CAPD1_t
    const Comparator_D.CAPD1_OFF;
    // Disable CAPD1 bit
    const Comparator_D.CAPD1;
    // Enable CAPD1 bit
enum Comparator_D.CAPD2_t
index URL

CAPD2 Bit

XDCscript usage meta-domain
values of type Comparator_D.CAPD2_t
    const Comparator_D.CAPD2_OFF;
    // Disable CAPD2 bit
    const Comparator_D.CAPD2;
    // Enable CAPD2 bit
enum Comparator_D.CAPD3_t
index URL

CAPD3 Bit

XDCscript usage meta-domain
values of type Comparator_D.CAPD3_t
    const Comparator_D.CAPD3_OFF;
    // Disable CAPD3 bit
    const Comparator_D.CAPD3;
    // Enable CAPD3 bit
enum Comparator_D.CAPD4_t
index URL

CAPD4 Bit

XDCscript usage meta-domain
values of type Comparator_D.CAPD4_t
    const Comparator_D.CAPD4_OFF;
    // Disable CAPD4 bit
    const Comparator_D.CAPD4;
    // Enable CAPD4 bit
enum Comparator_D.CAPD5_t
index URL

CAPD5 Bit

XDCscript usage meta-domain
values of type Comparator_D.CAPD5_t
    const Comparator_D.CAPD5_OFF;
    // Disable CAPD5 bit
    const Comparator_D.CAPD5;
    // Enable CAPD5 bit
enum Comparator_D.CAPD6_t
index URL

CAPD6 Bit

XDCscript usage meta-domain
values of type Comparator_D.CAPD6_t
    const Comparator_D.CAPD6_OFF;
    // Disable CAPD6 bit
    const Comparator_D.CAPD6;
    // Enable CAPD6 bit
enum Comparator_D.CAPD7_t
index URL

CAPD7 Bit

XDCscript usage meta-domain
values of type Comparator_D.CAPD7_t
    const Comparator_D.CAPD7_OFF;
    // Disable CAPD7 bit
    const Comparator_D.CAPD7;
    // Enable CAPD7 bit
enum Comparator_D.CAREF_t
index URL

CAREF Bit

XDCscript usage meta-domain
values of type Comparator_D.CAREF_t
    const Comparator_D.CAREF_0;
    // Reference Off
    const Comparator_D.CAREF_1;
    // 0.25 * VCC
    const Comparator_D.CAREF_2;
    // 0.50 * VCC
    const Comparator_D.CAREF_3;
    // Diode Reference
enum Comparator_D.CARSEL_t
index URL

CARSEL Bit

XDCscript usage meta-domain
values of type Comparator_D.CARSEL_t
    const Comparator_D.CARSEL_OFF;
    // Disable CARSEL bit
    const Comparator_D.CARSEL;
    // Enable CARSEL bit
enum Comparator_D.CASHORT_t
index URL

CASHORT Bit

XDCscript usage meta-domain
values of type Comparator_D.CASHORT_t
    const Comparator_D.CASHORT_OFF;
    // Disable CASHORT bit
    const Comparator_D.CASHORT;
    // Enable CASHORT bit
enum Comparator_D.CDIE_t
index URL
XDCscript usage meta-domain
values of type Comparator_D.CDIE_t
    const Comparator_D.CDIE_OFF;
    // Interrupt not enabled
    const Comparator_D.CDIE;
    // Interrupt enabled
enum Comparator_D.CDIFG_t
index URL
XDCscript usage meta-domain
values of type Comparator_D.CDIFG_t
    const Comparator_D.CDIFG_OFF;
    // No interrupt pending
    const Comparator_D.CDIFG;
    // Interrupt pending
enum Comparator_D.CDIIE_t
index URL
XDCscript usage meta-domain
values of type Comparator_D.CDIIE_t
    const Comparator_D.CDIIE_OFF;
    // Interrupt not enabled inverted polarity
    const Comparator_D.CDIIE;
    // Interrupt enabled inverted polarity
enum Comparator_D.CDIIFG_t
index URL
XDCscript usage meta-domain
values of type Comparator_D.CDIIFG_t
    const Comparator_D.CDIIFG_OFF;
    // No inverted interrupt pending
    const Comparator_D.CDIIFG;
    // Inverted interrupt pending
enum Comparator_D.P2CA0_t
index URL

P2CA0 Bit

XDCscript usage meta-domain
values of type Comparator_D.P2CA0_t
    const Comparator_D.P2CA0_OFF;
    // Disable P2CA0 bit
    const Comparator_D.P2CA0;
    // Enable P2CA0 bit
enum Comparator_D.P2CA1_t
index URL

P2CA1 Bit

XDCscript usage meta-domain
values of type Comparator_D.P2CA1_t
    const Comparator_D.P2CA1_OFF;
    // Disable P2CA1 bit
    const Comparator_D.P2CA1;
    // Enable P2CA1 bit
enum Comparator_D.P2CA2_t
index URL

P2CA2 Bit

XDCscript usage meta-domain
values of type Comparator_D.P2CA2_t
    const Comparator_D.P2CA2_OFF;
    // Disable P2CA2 bit
    const Comparator_D.P2CA2;
    // Enable P2CA2 bit
enum Comparator_D.P2CA3_t
index URL

P2CA3 Bit

XDCscript usage meta-domain
values of type Comparator_D.P2CA3_t
    const Comparator_D.P2CA3_OFF;
    // Disable P2CA3 bit
    const Comparator_D.P2CA3;
    // Enable P2CA3 bit
enum Comparator_D.P2CA4_t
index URL

P2CA4 Bit

XDCscript usage meta-domain
values of type Comparator_D.P2CA4_t
    const Comparator_D.P2CA4_OFF;
    // Disable P2CA4 bit
    const Comparator_D.P2CA4;
    // Enable P2CA4 bit
struct Comparator_D.CDIEALL_t
index URL
XDCscript usage meta-domain
var obj = new Comparator_D.CDIEALL_t;
    obj.CDIE = Comparator_D.CDIE_t ...
    // Comparator D interrupt enable. This bit enables the CDIFG interrupt for comparator mode. 0 Interrupt disabled 1 Interrupt enabled
    obj.CDIIE = Comparator_D.CDIIE_t ...
    // Comparator D interrupt enable inverted polarity. This bit enables the CDIIFG interrupt for comparator mode. 0 Interrupt disabled 1 Interrupt enabled
struct Comparator_D.CDIFGALL_t
index URL
XDCscript usage meta-domain
var obj = new Comparator_D.CDIFGALL_t;
    obj.CDIFG = Comparator_D.CDIFG_t ...
    // Comparator D interrupt flag. 0 No interrupt pending 1 Interrupt pending
    obj.CDIIFG = Comparator_D.CDIIFG_t ...
    // Comparator D interrupt flag. 0 No inverted interrupt pending 1 Inverted interrupt pending
struct Comparator_D.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Comparator_D.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Comparator_D.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Comparator_D.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Comparator_D.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Comparator_D.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Comparator_D.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Comparator_D.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Comparator_D.Params;
// Instance config-params object
    params.CDIEALL = Comparator_D.CDIEALL_t {
    // All the Interrupt Enables in Comparator_D
        CDIE: Comparator_D.CDIE_OFF,
        CDIIE: Comparator_D.CDIIE_OFF
    };
    params.CDIFGALL = Comparator_D.CDIFGALL_t {
    // All the Interrupt Flags in Comparator_D
        CDIFG: Comparator_D.CDIFG_OFF,
        CDIIFG: Comparator_D.CDIIFG_OFF
    };
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Comparator_D.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "CDIEALL",
            regForceSet: false
        },
        {
            register: "CDIFGALL",
            regForceSet: false
        }
    ];
    params.interruptSource = Comparator_D.regIntVect_t[2] undefined;
    // Comparator_D has own interrupt enables thus interruptSource is defined here
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Comparator_D.CDIEALL // instance
index URL

All the Interrupt Enables in Comparator_D

XDCscript usage meta-domain
var params = new Comparator_D.Params;
...
params.CDIEALL = Comparator_D.CDIEALL_t {
    CDIE: Comparator_D.CDIE_OFF,
    CDIIE: Comparator_D.CDIIE_OFF
};
config Comparator_D.CDIFGALL // instance
index URL

All the Interrupt Flags in Comparator_D

XDCscript usage meta-domain
var params = new Comparator_D.Params;
...
params.CDIFGALL = Comparator_D.CDIFGALL_t {
    CDIFG: Comparator_D.CDIFG_OFF,
    CDIIFG: Comparator_D.CDIIFG_OFF
};
config Comparator_D.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Comparator_D.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Comparator_D.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Comparator_D.Params;
...
const params.forceSetDefaultRegister = Comparator_D.ForceSetDefaultRegister_t[] [
    {
        register: "CDIEALL",
        regForceSet: false
    },
    {
        register: "CDIFGALL",
        regForceSet: false
    }
];
config Comparator_D.interruptSource // instance
index URL

Comparator_D has own interrupt enables thus interruptSource is defined here

XDCscript usage meta-domain
var params = new Comparator_D.Params;
...
params.interruptSource = Comparator_D.regIntVect_t[2] undefined;
config Comparator_D.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Comparator_D.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Comparator_D.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Comparator_D.Params;
...
params.owner = String undefined;
generated on Thu, 08 Nov 2012 02:16:48 GMT


module ti.catalog.msp430.peripherals.comparator.Comparator_D

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Comparator_D ========
    14     *  MSP430FR5xx Family Comparator_D Module
    15     */
    16    metaonly module Comparator_D inherits IComparator {
    17
    18        enum CDIE_t{
    19            CDIE_OFF    = 0x0000,       /*! Interrupt not enabled */
    20            CDIE        = 0x0100        /*! Interrupt enabled */
    21        };
    22
    23        enum CDIIE_t{
    24            CDIIE_OFF   = 0x0000,       /*! Interrupt not enabled inverted polarity*/
    25            CDIIE       = 0x0200        /*! Interrupt enabled inverted polarity */
    26        };
    27
    28        enum CDIFG_t{
    29            CDIFG_OFF   = 0x00,         /*! No interrupt pending */
    30            CDIFG       = 0x01          /*! Interrupt pending */
    31        };
    32
    33        enum CDIIFG_t{
    34            CDIIFG_OFF  = 0x00,         /*! No inverted interrupt pending */
    35            CDIIFG      = 0x02          /*! Inverted interrupt pending */
    36        };
    37
    38        struct CDIEALL_t {
    39            CDIE_t      CDIE;          /*!  Comparator D interrupt enable. This
    40                                        *   bit enables the CDIFG interrupt for
    41                                        *   comparator mode.
    42                                        *   0  Interrupt disabled
    43                                        *   1  Interrupt enabled */
    44
    45            CDIIE_t      CDIIE;         /*! Comparator D interrupt enable inverted polarity. This
    46                                        *   bit enables the CDIIFG interrupt for
    47                                        *   comparator mode.
    48                                        *   0  Interrupt disabled
    49                                        *   1  Interrupt enabled */
    50        }
    51
    52        struct CDIFGALL_t {
    53            CDIFG_t      CDIFG;         /*! Comparator D interrupt flag.
    54                                         *  0  No interrupt pending
    55                                         *  1  Interrupt pending */
    56
    57            CDIIFG_t     CDIIFG;         /*! Comparator D interrupt flag.
    58                                         *  0  No inverted interrupt pending
    59                                         *  1  Inverted interrupt pending */
    60        }
    61    instance:
    62        /*!
    63         *  ======== baseAddr ========
    64         *  Address of the peripheral's control register.
    65         *
    66         *  A peripheral's registers are commonly accessed through a structure
    67         *  that defines the offsets of a particular register from the lowest
    68         *  address mapped to a peripheral. That lowest address is specified by
    69         *  this parameter.
    70         */
    71        config UInt baseAddr;
    72
    73         /*!
    74         *  ======== interruptSource ========
    75         *  Comparator_D has own interrupt enables
    76         *  thus interruptSource is defined here
    77         */
    78        config regIntVect_t interruptSource[2];
    79
    80        /*!
    81         *  ======== CDIEALL ========
    82         * All the Interrupt Enables in Comparator_D
    83         */
    84        config CDIEALL_t CDIEALL = {
    85            CDIE        : CDIE_OFF,
    86            CDIIE       : CDIIE_OFF
    87        };
    88
    89        /*!
    90         *  ======== CDIFGALL ========
    91         * All the Interrupt Flags in Comparator_D
    92         */
    93        config CDIFGALL_t CDIFGALL = {
    94            CDIFG       : CDIFG_OFF,
    95            CDIIFG      : CDIIFG_OFF
    96        };
    97
    98        /*!
    99        *   ======== forceSetDefaultRegister ========
   100        * Determine if each Register needs to be forced set or not
   101        */
   102        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   103        [
   104            { register : "CDIEALL" , regForceSet : false },
   105            { register : "CDIFGALL" , regForceSet : false },
   106        ];
   107    }


module ti.catalog.msp430.peripherals.comparator.Comparator_E

metaonly module ti.catalog.msp430.peripherals.comparator.Comparator_E
index URL

MSP430FR5xx Family Comparator_E Module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/comparator/Comparator_E.xdc
var Comparator_E = xdc.useModule('ti.catalog.msp430.peripherals.comparator.Comparator_E');
module-wide constants & types
    values of type Comparator_E.CAEX_t// CAEX Bit
        const Comparator_E.CAEX_OFF// Disable CAEX bit;
        const Comparator_E.CAEX// Enable CAEX bit;
    values of type Comparator_E.CAF_t// CAF Bit
        const Comparator_E.CAF_OFF// Disable CAF bit;
        const Comparator_E.CAF// Enable CAF bit;
    values of type Comparator_E.CAIES_t// CAIES Bit
        const Comparator_E.CAIES_OFF// Rising Edge;
        const Comparator_E.CAIES// Falling Edge;
    values of type Comparator_E.CAIE_t// CAIE Bit
        const Comparator_E.CAIE_OFF// Disable CAIE bit;
        const Comparator_E.CAIE// Enable CAIE bit;
    values of type Comparator_E.CAIFG_t// CAIFG Bit
        const Comparator_E.CAIFG_OFF// Disable CAIFG bit;
        const Comparator_E.CAIFG// Enable CAIFG bit;
    values of type Comparator_E.CAON_t// CAON Bit
        const Comparator_E.CAON_OFF// Disable CAON bit;
        const Comparator_E.CAON// Enable CAON bit;
    values of type Comparator_E.CAPD0_t// CAPD0 Bit
        const Comparator_E.CAPD0_OFF// Disable CAPD0 bit;
        const Comparator_E.CAPD0// Enable CAPD0 bit;
    values of type Comparator_E.CAPD1_t// CAPD1 Bit
        const Comparator_E.CAPD1_OFF// Disable CAPD1 bit;
        const Comparator_E.CAPD1// Enable CAPD1 bit;
    values of type Comparator_E.CAPD2_t// CAPD2 Bit
        const Comparator_E.CAPD2_OFF// Disable CAPD2 bit;
        const Comparator_E.CAPD2// Enable CAPD2 bit;
    values of type Comparator_E.CAPD3_t// CAPD3 Bit
        const Comparator_E.CAPD3_OFF// Disable CAPD3 bit;
        const Comparator_E.CAPD3// Enable CAPD3 bit;
    values of type Comparator_E.CAPD4_t// CAPD4 Bit
        const Comparator_E.CAPD4_OFF// Disable CAPD4 bit;
        const Comparator_E.CAPD4// Enable CAPD4 bit;
    values of type Comparator_E.CAPD5_t// CAPD5 Bit
        const Comparator_E.CAPD5_OFF// Disable CAPD5 bit;
        const Comparator_E.CAPD5// Enable CAPD5 bit;
    values of type Comparator_E.CAPD6_t// CAPD6 Bit
        const Comparator_E.CAPD6_OFF// Disable CAPD6 bit;
        const Comparator_E.CAPD6// Enable CAPD6 bit;
    values of type Comparator_E.CAPD7_t// CAPD7 Bit
        const Comparator_E.CAPD7_OFF// Disable CAPD7 bit;
        const Comparator_E.CAPD7// Enable CAPD7 bit;
    values of type Comparator_E.CAREF_t// CAREF Bit
        const Comparator_E.CAREF_0// Reference Off;
        const Comparator_E.CAREF_1// 0.25 * VCC;
        const Comparator_E.CAREF_2// 0.50 * VCC;
        const Comparator_E.CAREF_3// Diode Reference;
    values of type Comparator_E.CARSEL_t// CARSEL Bit
        const Comparator_E.CARSEL_OFF// Disable CARSEL bit;
        const Comparator_E.CARSEL// Enable CARSEL bit;
    values of type Comparator_E.CASHORT_t// CASHORT Bit
        const Comparator_E.CASHORT_OFF// Disable CASHORT bit;
        const Comparator_E.CASHORT// Enable CASHORT bit;
    values of type Comparator_E.P2CA0_t// P2CA0 Bit
        const Comparator_E.P2CA0_OFF// Disable P2CA0 bit;
        const Comparator_E.P2CA0// Enable P2CA0 bit;
    values of type Comparator_E.P2CA1_t// P2CA1 Bit
        const Comparator_E.P2CA1_OFF// Disable P2CA1 bit;
        const Comparator_E.P2CA1// Enable P2CA1 bit;
    values of type Comparator_E.P2CA2_t// P2CA2 Bit
        const Comparator_E.P2CA2_OFF// Disable P2CA2 bit;
        const Comparator_E.P2CA2// Enable P2CA2 bit;
    values of type Comparator_E.P2CA3_t// P2CA3 Bit
        const Comparator_E.P2CA3_OFF// Disable P2CA3 bit;
        const Comparator_E.P2CA3// Enable P2CA3 bit;
    values of type Comparator_E.P2CA4_t// P2CA4 Bit
        const Comparator_E.P2CA4_OFF// Disable P2CA4 bit;
        const Comparator_E.P2CA4// Enable P2CA4 bit;
    var obj = new Comparator_E.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Comparator_E.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Comparator_E.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Comparator_E.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Comparator_E.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Comparator_E.ForceSetDefaultRegister_t[] [ ];
        params.interruptSource// Interrupt enables = Comparator_E.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
enum Comparator_E.CAEX_t
index URL

CAEX Bit

XDCscript usage meta-domain
values of type Comparator_E.CAEX_t
    const Comparator_E.CAEX_OFF;
    // Disable CAEX bit
    const Comparator_E.CAEX;
    // Enable CAEX bit
enum Comparator_E.CAF_t
index URL

CAF Bit

XDCscript usage meta-domain
values of type Comparator_E.CAF_t
    const Comparator_E.CAF_OFF;
    // Disable CAF bit
    const Comparator_E.CAF;
    // Enable CAF bit
enum Comparator_E.CAIES_t
index URL

CAIES Bit

XDCscript usage meta-domain
values of type Comparator_E.CAIES_t
    const Comparator_E.CAIES_OFF;
    // Rising Edge
    const Comparator_E.CAIES;
    // Falling Edge
enum Comparator_E.CAIE_t
index URL

CAIE Bit

XDCscript usage meta-domain
values of type Comparator_E.CAIE_t
    const Comparator_E.CAIE_OFF;
    // Disable CAIE bit
    const Comparator_E.CAIE;
    // Enable CAIE bit
enum Comparator_E.CAIFG_t
index URL

CAIFG Bit

XDCscript usage meta-domain
values of type Comparator_E.CAIFG_t
    const Comparator_E.CAIFG_OFF;
    // Disable CAIFG bit
    const Comparator_E.CAIFG;
    // Enable CAIFG bit
enum Comparator_E.CAON_t
index URL

CAON Bit

XDCscript usage meta-domain
values of type Comparator_E.CAON_t
    const Comparator_E.CAON_OFF;
    // Disable CAON bit
    const Comparator_E.CAON;
    // Enable CAON bit
enum Comparator_E.CAPD0_t
index URL

CAPD0 Bit

XDCscript usage meta-domain
values of type Comparator_E.CAPD0_t
    const Comparator_E.CAPD0_OFF;
    // Disable CAPD0 bit
    const Comparator_E.CAPD0;
    // Enable CAPD0 bit
enum Comparator_E.CAPD1_t
index URL

CAPD1 Bit

XDCscript usage meta-domain
values of type Comparator_E.CAPD1_t
    const Comparator_E.CAPD1_OFF;
    // Disable CAPD1 bit
    const Comparator_E.CAPD1;
    // Enable CAPD1 bit
enum Comparator_E.CAPD2_t
index URL

CAPD2 Bit

XDCscript usage meta-domain
values of type Comparator_E.CAPD2_t
    const Comparator_E.CAPD2_OFF;
    // Disable CAPD2 bit
    const Comparator_E.CAPD2;
    // Enable CAPD2 bit
enum Comparator_E.CAPD3_t
index URL

CAPD3 Bit

XDCscript usage meta-domain
values of type Comparator_E.CAPD3_t
    const Comparator_E.CAPD3_OFF;
    // Disable CAPD3 bit
    const Comparator_E.CAPD3;
    // Enable CAPD3 bit
enum Comparator_E.CAPD4_t
index URL

CAPD4 Bit

XDCscript usage meta-domain
values of type Comparator_E.CAPD4_t
    const Comparator_E.CAPD4_OFF;
    // Disable CAPD4 bit
    const Comparator_E.CAPD4;
    // Enable CAPD4 bit
enum Comparator_E.CAPD5_t
index URL

CAPD5 Bit

XDCscript usage meta-domain
values of type Comparator_E.CAPD5_t
    const Comparator_E.CAPD5_OFF;
    // Disable CAPD5 bit
    const Comparator_E.CAPD5;
    // Enable CAPD5 bit
enum Comparator_E.CAPD6_t
index URL

CAPD6 Bit

XDCscript usage meta-domain
values of type Comparator_E.CAPD6_t
    const Comparator_E.CAPD6_OFF;
    // Disable CAPD6 bit
    const Comparator_E.CAPD6;
    // Enable CAPD6 bit
enum Comparator_E.CAPD7_t
index URL

CAPD7 Bit

XDCscript usage meta-domain
values of type Comparator_E.CAPD7_t
    const Comparator_E.CAPD7_OFF;
    // Disable CAPD7 bit
    const Comparator_E.CAPD7;
    // Enable CAPD7 bit
enum Comparator_E.CAREF_t
index URL

CAREF Bit

XDCscript usage meta-domain
values of type Comparator_E.CAREF_t
    const Comparator_E.CAREF_0;
    // Reference Off
    const Comparator_E.CAREF_1;
    // 0.25 * VCC
    const Comparator_E.CAREF_2;
    // 0.50 * VCC
    const Comparator_E.CAREF_3;
    // Diode Reference
enum Comparator_E.CARSEL_t
index URL

CARSEL Bit

XDCscript usage meta-domain
values of type Comparator_E.CARSEL_t
    const Comparator_E.CARSEL_OFF;
    // Disable CARSEL bit
    const Comparator_E.CARSEL;
    // Enable CARSEL bit
enum Comparator_E.CASHORT_t
index URL

CASHORT Bit

XDCscript usage meta-domain
values of type Comparator_E.CASHORT_t
    const Comparator_E.CASHORT_OFF;
    // Disable CASHORT bit
    const Comparator_E.CASHORT;
    // Enable CASHORT bit
enum Comparator_E.P2CA0_t
index URL

P2CA0 Bit

XDCscript usage meta-domain
values of type Comparator_E.P2CA0_t
    const Comparator_E.P2CA0_OFF;
    // Disable P2CA0 bit
    const Comparator_E.P2CA0;
    // Enable P2CA0 bit
enum Comparator_E.P2CA1_t
index URL

P2CA1 Bit

XDCscript usage meta-domain
values of type Comparator_E.P2CA1_t
    const Comparator_E.P2CA1_OFF;
    // Disable P2CA1 bit
    const Comparator_E.P2CA1;
    // Enable P2CA1 bit
enum Comparator_E.P2CA2_t
index URL

P2CA2 Bit

XDCscript usage meta-domain
values of type Comparator_E.P2CA2_t
    const Comparator_E.P2CA2_OFF;
    // Disable P2CA2 bit
    const Comparator_E.P2CA2;
    // Enable P2CA2 bit
enum Comparator_E.P2CA3_t
index URL

P2CA3 Bit

XDCscript usage meta-domain
values of type Comparator_E.P2CA3_t
    const Comparator_E.P2CA3_OFF;
    // Disable P2CA3 bit
    const Comparator_E.P2CA3;
    // Enable P2CA3 bit
enum Comparator_E.P2CA4_t
index URL

P2CA4 Bit

XDCscript usage meta-domain
values of type Comparator_E.P2CA4_t
    const Comparator_E.P2CA4_OFF;
    // Disable P2CA4 bit
    const Comparator_E.P2CA4;
    // Enable P2CA4 bit
struct Comparator_E.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Comparator_E.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Comparator_E.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Comparator_E.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Comparator_E.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Comparator_E.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Comparator_E.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Comparator_E.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Comparator_E.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Comparator_E.ForceSetDefaultRegister_t[] [ ];
    // Determine if each Register needs to be forced set or not
    params.interruptSource = Comparator_E.regIntVect_t[2] undefined;
    // Interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Comparator_E.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Comparator_E.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Comparator_E.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Comparator_E.Params;
...
const params.forceSetDefaultRegister = Comparator_E.ForceSetDefaultRegister_t[] [ ];
config Comparator_E.interruptSource // instance
index URL

Interrupt enables

XDCscript usage meta-domain
var params = new Comparator_E.Params;
...
params.interruptSource = Comparator_E.regIntVect_t[2] undefined;
config Comparator_E.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Comparator_E.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Comparator_E.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Comparator_E.Params;
...
params.owner = String undefined;
generated on Thu, 08 Nov 2012 02:16:48 GMT


module ti.catalog.msp430.peripherals.comparator.Comparator_E

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Comparator_E ========
    14     *  MSP430FR5xx Family Comparator_E Module
    15     */
    16    metaonly module Comparator_E inherits IComparator {
    17
    18    instance:
    19        /*!
    20         *  ======== baseAddr ========
    21         *  Address of the peripheral's control register.
    22         *
    23         *  A peripheral's registers are commonly accessed through a structure
    24         *  that defines the offsets of a particular register from the lowest
    25         *  address mapped to a peripheral. That lowest address is specified by
    26         *  this parameter.
    27         */
    28        config UInt baseAddr;
    29
    30        /*! Interrupt enables */
    31        config regIntVect_t interruptSource[2];
    32
    33        /*! Determine if each Register needs to be forced set or not */
    34        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    35        [
    36        ];
    37    }


interface ti.catalog.msp430.peripherals.comparator.IComparator

metaonly interface ti.catalog.msp430.peripherals.comparator.IComparator
index URL

MSP430 IComparator interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
metaonly interface IComparator { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
package ti.catalog.msp430.peripherals.comparator;
metaonly interface IComparator inherits IPeripheral {
module-wide constants & types
    enum CAEX_t// CAEX Bit {
         CAEX_OFF// Disable CAEX bit,
         CAEX// Enable CAEX bit
    };
    enum CAF_t// CAF Bit {
         CAF_OFF// Disable CAF bit,
         CAF// Enable CAF bit
    };
    enum CAIES_t// CAIES Bit {
         CAIES_OFF// Rising Edge,
         CAIES// Falling Edge
    };
    enum CAIE_t// CAIE Bit {
         CAIE_OFF// Disable CAIE bit,
         CAIE// Enable CAIE bit
    };
    enum CAIFG_t// CAIFG Bit {
         CAIFG_OFF// Disable CAIFG bit,
         CAIFG// Enable CAIFG bit
    };
    enum CAON_t// CAON Bit {
         CAON_OFF// Disable CAON bit,
         CAON// Enable CAON bit
    };
    enum CAPD0_t// CAPD0 Bit {
         CAPD0_OFF// Disable CAPD0 bit,
         CAPD0// Enable CAPD0 bit
    };
    enum CAPD1_t// CAPD1 Bit {
         CAPD1_OFF// Disable CAPD1 bit,
         CAPD1// Enable CAPD1 bit
    };
    enum CAPD2_t// CAPD2 Bit {
         CAPD2_OFF// Disable CAPD2 bit,
         CAPD2// Enable CAPD2 bit
    };
    enum CAPD3_t// CAPD3 Bit {
         CAPD3_OFF// Disable CAPD3 bit,
         CAPD3// Enable CAPD3 bit
    };
    enum CAPD4_t// CAPD4 Bit {
         CAPD4_OFF// Disable CAPD4 bit,
         CAPD4// Enable CAPD4 bit
    };
    enum CAPD5_t// CAPD5 Bit {
         CAPD5_OFF// Disable CAPD5 bit,
         CAPD5// Enable CAPD5 bit
    };
    enum CAPD6_t// CAPD6 Bit {
         CAPD6_OFF// Disable CAPD6 bit,
         CAPD6// Enable CAPD6 bit
    };
    enum CAPD7_t// CAPD7 Bit {
         CAPD7_OFF// Disable CAPD7 bit,
         CAPD7// Enable CAPD7 bit
    };
    enum CAREF_t// CAREF Bit {
         CAREF_0// Reference Off,
         CAREF_1// 0.25 * VCC,
         CAREF_2// 0.50 * VCC,
         CAREF_3// Diode Reference
    };
    enum CARSEL_t// CARSEL Bit {
         CARSEL_OFF// Disable CARSEL bit,
         CARSEL// Enable CARSEL bit
    };
    enum CASHORT_t// CASHORT Bit {
         CASHORT_OFF// Disable CASHORT bit,
         CASHORT// Enable CASHORT bit
    };
    enum P2CA0_t// P2CA0 Bit {
         P2CA0_OFF// Disable P2CA0 bit,
         P2CA0// Enable P2CA0 bit
    };
    enum P2CA1_t// P2CA1 Bit {
         P2CA1_OFF// Disable P2CA1 bit,
         P2CA1// Enable P2CA1 bit
    };
    enum P2CA2_t// P2CA2 Bit {
         P2CA2_OFF// Disable P2CA2 bit,
         P2CA2// Enable P2CA2 bit
    };
    enum P2CA3_t// P2CA3 Bit {
         P2CA3_OFF// Disable P2CA3 bit,
         P2CA3// Enable P2CA3 bit
    };
    enum P2CA4_t// P2CA4 Bit {
         P2CA4_OFF// Disable P2CA4 bit,
         P2CA4// Enable P2CA4 bit
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
enum IComparator.CAEX_t
index URL

CAEX Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAEX_t {
    CAEX_OFF,
    // Disable CAEX bit
    CAEX
    // Enable CAEX bit
};
enum IComparator.CAF_t
index URL

CAF Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAF_t {
    CAF_OFF,
    // Disable CAF bit
    CAF
    // Enable CAF bit
};
enum IComparator.CAIES_t
index URL

CAIES Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAIES_t {
    CAIES_OFF,
    // Rising Edge
    CAIES
    // Falling Edge
};
enum IComparator.CAIE_t
index URL

CAIE Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAIE_t {
    CAIE_OFF,
    // Disable CAIE bit
    CAIE
    // Enable CAIE bit
};
enum IComparator.CAIFG_t
index URL

CAIFG Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAIFG_t {
    CAIFG_OFF,
    // Disable CAIFG bit
    CAIFG
    // Enable CAIFG bit
};
enum IComparator.CAON_t
index URL

CAON Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAON_t {
    CAON_OFF,
    // Disable CAON bit
    CAON
    // Enable CAON bit
};
enum IComparator.CAPD0_t
index URL

CAPD0 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAPD0_t {
    CAPD0_OFF,
    // Disable CAPD0 bit
    CAPD0
    // Enable CAPD0 bit
};
enum IComparator.CAPD1_t
index URL

CAPD1 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAPD1_t {
    CAPD1_OFF,
    // Disable CAPD1 bit
    CAPD1
    // Enable CAPD1 bit
};
enum IComparator.CAPD2_t
index URL

CAPD2 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAPD2_t {
    CAPD2_OFF,
    // Disable CAPD2 bit
    CAPD2
    // Enable CAPD2 bit
};
enum IComparator.CAPD3_t
index URL

CAPD3 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAPD3_t {
    CAPD3_OFF,
    // Disable CAPD3 bit
    CAPD3
    // Enable CAPD3 bit
};
enum IComparator.CAPD4_t
index URL

CAPD4 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAPD4_t {
    CAPD4_OFF,
    // Disable CAPD4 bit
    CAPD4
    // Enable CAPD4 bit
};
enum IComparator.CAPD5_t
index URL

CAPD5 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAPD5_t {
    CAPD5_OFF,
    // Disable CAPD5 bit
    CAPD5
    // Enable CAPD5 bit
};
enum IComparator.CAPD6_t
index URL

CAPD6 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAPD6_t {
    CAPD6_OFF,
    // Disable CAPD6 bit
    CAPD6
    // Enable CAPD6 bit
};
enum IComparator.CAPD7_t
index URL

CAPD7 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAPD7_t {
    CAPD7_OFF,
    // Disable CAPD7 bit
    CAPD7
    // Enable CAPD7 bit
};
enum IComparator.CAREF_t
index URL

CAREF Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CAREF_t {
    CAREF_0,
    // Reference Off
    CAREF_1,
    // 0.25 * VCC
    CAREF_2,
    // 0.50 * VCC
    CAREF_3
    // Diode Reference
};
enum IComparator.CARSEL_t
index URL

CARSEL Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CARSEL_t {
    CARSEL_OFF,
    // Disable CARSEL bit
    CARSEL
    // Enable CARSEL bit
};
enum IComparator.CASHORT_t
index URL

CASHORT Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum CASHORT_t {
    CASHORT_OFF,
    // Disable CASHORT bit
    CASHORT
    // Enable CASHORT bit
};
enum IComparator.P2CA0_t
index URL

P2CA0 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum P2CA0_t {
    P2CA0_OFF,
    // Disable P2CA0 bit
    P2CA0
    // Enable P2CA0 bit
};
enum IComparator.P2CA1_t
index URL

P2CA1 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum P2CA1_t {
    P2CA1_OFF,
    // Disable P2CA1 bit
    P2CA1
    // Enable P2CA1 bit
};
enum IComparator.P2CA2_t
index URL

P2CA2 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum P2CA2_t {
    P2CA2_OFF,
    // Disable P2CA2 bit
    P2CA2
    // Enable P2CA2 bit
};
enum IComparator.P2CA3_t
index URL

P2CA3 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum P2CA3_t {
    P2CA3_OFF,
    // Disable P2CA3 bit
    P2CA3
    // Enable P2CA3 bit
};
enum IComparator.P2CA4_t
index URL

P2CA4 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
enum P2CA4_t {
    P2CA4_OFF,
    // Disable P2CA4 bit
    P2CA4
    // Enable P2CA4 bit
};
typedef IComparator.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IComparator.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
typedef String StringArray[];
struct IComparator.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IComparator.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IComparator.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IComparator.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IComparator.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IComparator.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/comparator/IComparator.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:16:47 GMT


interface ti.catalog.msp430.peripherals.comparator.IComparator

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IComparator ========
    14     *  MSP430 IComparator interface
    15     */
    16    metaonly interface IComparator inherits xdc.platform.IPeripheral {
    17
    18        /*! CAEX Bit */
    19        enum CAEX_t {
    20            CAEX_OFF = 0x0000,          /*! Disable CAEX bit */
    21            CAEX     = 0x0080           /*! Enable  CAEX bit */
    22        };
    23
    24        /*! CARSEL Bit */
    25        enum CARSEL_t {
    26            CARSEL_OFF     = 0x0000,    /*! Disable CARSEL bit */
    27            CARSEL         = 0x0040     /*! Enable  CARSEL bit */
    28         };
    29
    30         /*! CAREF Bit */
    31         enum CAREF_t {
    32             CAREF_0 = 0x0000,          /*! Reference Off */
    33             CAREF_1 = 0x0010,          /*! 0.25 * VCC */
    34             CAREF_2 = 0x0020,          /*! 0.50 * VCC */
    35             CAREF_3 = 0x0030           /*! Diode Reference */
    36         };
    37
    38        /*! CAON Bit */
    39        enum CAON_t {
    40             CAON_OFF = 0x0000,         /*! Disable CAON bit */
    41             CAON = 0x0008              /*! Enable  CAON bit */
    42          };
    43
    44        /*! CAIES Bit */
    45         enum CAIES_t {
    46             CAIES_OFF = 0x0000,        /*! Rising Edge */
    47             CAIES = 0x0004             /*! Falling Edge */
    48         };
    49
    50         /*! CAIE Bit */
    51         enum CAIE_t {
    52             CAIE_OFF = 0x0000,         /*! Disable CAIE bit */
    53             CAIE = 0x0002              /*! Enable  CAIE bit */
    54         };
    55
    56         /*! CAIFG Bit */
    57         enum CAIFG_t {
    58             CAIFG_OFF = 0x0000,        /*! Disable CAIFG bit */
    59             CAIFG = 0x0001             /*! Enable  CAIFG bit */
    60         };
    61
    62         /*! CASHORT Bit */
    63         enum CASHORT_t {
    64             CASHORT_OFF = 0x0000,      /*! Disable CASHORT bit */
    65             CASHORT = 0x0080           /*! Enable  CASHORT bit */
    66         };
    67
    68         /*! P2CA4 Bit */
    69         enum P2CA4_t {
    70             P2CA4_OFF = 0x0000,        /*! Disable P2CA4 bit */
    71             P2CA4 = 0x0040             /*! Enable  P2CA4 bit */
    72         };
    73
    74          /*! P2CA3 Bit */
    75         enum P2CA3_t {
    76             P2CA3_OFF = 0x0000,        /*! Disable P2CA3 bit */
    77             P2CA3 = 0x0020             /*! Enable  P2CA3 bit */
    78         };
    79
    80          /*! P2CA2 Bit */
    81         enum P2CA2_t {
    82             P2CA2_OFF = 0x0000,        /*! Disable P2CA2 bit */
    83             P2CA2 = 0x0010             /*! Enable  P2CA2 bit */
    84         };
    85
    86          /*! P2CA1 Bit */
    87         enum P2CA1_t {
    88             P2CA1_OFF = 0x0000,        /*! Disable P2CA1 bit */
    89             P2CA1 = 0x0008             /*! Enable  P2CA1 bit */
    90         };
    91
    92
    93         /*! P2CA0 Bit */
    94         enum P2CA0_t {
    95             P2CA0_OFF = 0x0000,        /*! Disable P2CA0 bit */
    96             P2CA0 = 0x0004             /*! Enable  P2CA0 bit */
    97         };
    98
    99         /*! CAF Bit */
   100         enum CAF_t {
   101             CAF_OFF = 0x0000,          /*! Disable CAF bit */
   102             CAF = 0x0002               /*! Enable  CAF bit */
   103         };
   104
   105         /*! CAPD7 Bit */
   106         enum CAPD7_t {
   107             CAPD7_OFF = 0x0000,        /*! Disable CAPD7 bit */
   108             CAPD7 = 0x0001             /*! Enable  CAPD7 bit */
   109         };
   110
   111         /*! CAPD6 Bit */
   112         enum CAPD6_t {
   113             CAPD6_OFF = 0x0000,        /*! Disable CAPD6 bit */
   114             CAPD6 = 0x0002             /*! Enable  CAPD6 bit */
   115         };
   116
   117         /*! CAPD5 Bit */
   118         enum CAPD5_t {
   119             CAPD5_OFF = 0x0000,        /*! Disable CAPD5 bit */
   120             CAPD5 = 0x0004             /*! Enable  CAPD5 bit */
   121         };
   122
   123         /*! CAPD4 Bit */
   124         enum CAPD4_t {
   125             CAPD4_OFF = 0x0000,        /*! Disable CAPD4 bit */
   126             CAPD4 = 0x0008             /*! Enable  CAPD4 bit */
   127         };
   128
   129         /*! CAPD3 Bit */
   130         enum CAPD3_t {
   131             CAPD3_OFF = 0x0000,        /*! Disable CAPD3 bit */
   132             CAPD3 = 0x0010             /*! Enable  CAPD3 bit */
   133         };
   134
   135         /*! CAPD2 Bit */
   136         enum CAPD2_t {
   137             CAPD2_OFF = 0x0000,        /*! Disable CAPD2 bit */
   138             CAPD2 = 0x0020             /*! Enable  CAPD2 bit */
   139         };
   140
   141         /*! CAPD1 Bit */
   142         enum CAPD1_t {
   143             CAPD1_OFF = 0x0000,        /*! Disable CAPD1 bit */
   144             CAPD1 = 0x0040             /*! Enable  CAPD1 bit */
   145         };
   146
   147         /*! CAPD0 Bit */
   148         enum CAPD0_t {
   149             CAPD0_OFF = 0x0000,        /*! Disable CAPD0 bit */
   150             CAPD0 = 0x0080             /*! Enable  CAPD0 bit */
   151         };
   152
   153
   154        /*!
   155        *  ======== ForceSetDefaultRegister_t ========
   156        *  Force Set Default Register
   157        *
   158        *  Type to store if each register needs to be forced initialized
   159        *  even if the register is in default state.
   160        *
   161        *  @see #ForceSetDefaultRegister_t
   162        */
   163        struct ForceSetDefaultRegister_t {
   164            String     register;
   165            Bool       regForceSet;
   166        }
   167
   168        /*!
   169        *  ======== regIntVect_t ========
   170        *  Interrupt vector description
   171        *
   172        *  Type to describe a single interrupt vector pin and all its possible
   173        *  configurations.
   174        *
   175        *  @see #regIntVect_t
   176        */
   177        struct regIntVect_t {
   178            String                    registerName;
   179            String                    registerDescription;
   180            String                    isrToggleString;
   181            String                    priorityName;
   182            Bool                      interruptEnable;
   183            Bool                      interruptHandler;
   184            Int                       priority;
   185        }
   186    instance:
   187
   188    }


package ti.catalog.msp430.peripherals.dac
index URL

MSP430 DAC peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/package.xdc
package ti.catalog.msp430.peripherals.dac [1, 0, 0] {
    interface IDAC;
    // MSP430 Digital to Analog Converter Interface
    module DAC12;
    // MSP430 12-bit Digital to Analog Converter
}
generated on Thu, 08 Nov 2012 02:16:48 GMT


package ti.catalog.msp430.peripherals.dac

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ti.catalog.msp430.peripherals.dac ========
    14     *  MSP430 DAC peripheral
    15     */
    16    package ti.catalog.msp430.peripherals.dac [1, 0, 0] {
    17        interface IDAC;
    18        module DAC12;
    19    }


module ti.catalog.msp430.peripherals.dac.DAC12

metaonly module ti.catalog.msp430.peripherals.dac.DAC12
index URL

MSP430 12-bit Digital to Analog Converter

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/dac/DAC12.xdc
var DAC12 = xdc.useModule('ti.catalog.msp430.peripherals.dac.DAC12');
module-wide constants & types
    values of type DAC12.DAC12AMP_t// DAC12AMPx Bits
        const DAC12.DAC12AMP_0;
        const DAC12.DAC12AMP_1;
        const DAC12.DAC12AMP_2;
        const DAC12.DAC12AMP_3;
        const DAC12.DAC12AMP_4;
        const DAC12.DAC12AMP_5;
        const DAC12.DAC12AMP_6;
        const DAC12.DAC12AMP_7;
    values of type DAC12.DAC12CALON_t// DAC12CALON Bit
        const DAC12.DAC12CALON_OFF;
        const DAC12.DAC12CALON;
    values of type DAC12.DAC12DF_t// DAC12DF Bit
        const DAC12.DAC12DF_OFF;
        const DAC12.DAC12DF;
    values of type DAC12.DAC12ENC_t// DAC12ENC Bit
        const DAC12.DAC12ENC_OFF;
        const DAC12.DAC12ENC;
    values of type DAC12.DAC12GRP_t// DAC12GRP Bit
        const DAC12.DAC12GRP_OFF;
        const DAC12.DAC12GRP;
    values of type DAC12.DAC12IE_t// DAC12IE Bit
        const DAC12.DAC12IE_OFF;
        const DAC12.DAC12IE;
    values of type DAC12.DAC12IFG_t// DAC12IFG Bit
        const DAC12.DAC12IFG_OFF;
        const DAC12.DAC12IFG;
    values of type DAC12.DAC12IR_t// DAC12IR Bit
        const DAC12.DAC12IR_OFF;
        const DAC12.DAC12IR;
    values of type DAC12.DAC12LSEL_t// DAC12LSELx Bits
        const DAC12.DAC12LSEL_0;
        const DAC12.DAC12LSEL_1;
        const DAC12.DAC12LSEL_2;
        const DAC12.DAC12LSEL_3;
    values of type DAC12.DAC12OPS_t// DAC12OPS Bit
        const DAC12.DAC12OPS_OFF;
        const DAC12.DAC12OPS;
    values of type DAC12.DAC12RES_t// DAC12RES Bit
        const DAC12.DAC12RES_OFF;
        const DAC12.DAC12RES;
    values of type DAC12.DAC12SREF_t// DAC12SREFx Bits
        const DAC12.DAC12SREF_0;
        const DAC12.DAC12SREF_1;
        const DAC12.DAC12SREF_2;
        const DAC12.DAC12SREF_3;
    var obj = new DAC12.DAC12_xCTL_t// ;
        obj.DAC12OPS// DAC12 output select 0 DAC12_0 output on P6.6, DAC12_1 output on P6.7 1 DAC12_0 output on VeREF+, DAC12_1 output on P6.5 = DAC12.DAC12OPS_t ...
        obj.DAC12SREF// DAC12 select reference voltage 00 VREF+ 01 VREF+ 10 VeREF+ 11 VeREF+ = DAC12.DAC12SREF_t ...
        obj.DAC12RES// DAC12 resolution select 0 12-bit resolution 1 8-bit resolution = DAC12.DAC12RES_t ...
        obj.DAC12LSEL// DAC12 load select. Selects the load trigger for the DAC12 latch. DAC12ENC must be set for the DAC to update, except when DAC12LSELx = 0. 00 DAC12 latch loads when DAC12_xDATwritten (DAC12ENCis ignored) 01 DAC12 latch loads when DAC12_xDAT written, or, when grouped, when all DAC12_xDAT registers in the group have been written. 10 Rising edge of Timer_A.OUT1 (TA1) 11 Rising edge of Timer_B.OUT2 (TB2) = DAC12.DAC12LSEL_t ...
        obj.DAC12CALON// DAC12 calibration on. This bit initiates the DAC12 offset calibration sequence and is automatically reset when the calibration completes. 0 Calibration is not active 1 Initiate calibration/calibration in progress = DAC12.DAC12CALON_t ...
        obj.DAC12IR// DAC12 input range. This bit sets the reference input and voltage output range. 0 DAC12 full-scale output = 3x reference voltage 1 DAC12 full-scale output = 1x reference voltage = DAC12.DAC12IR_t ...
        obj.DAC12AMP// DAC12 amplifier setting. These bits select settling time vs current consumption for the DAC12 input and output amplifiers. DAC12AMPx Input Buffer Output Buffer 000 Off DAC12 off, output high Z 001 Off DAC12 off, output 0 V 010 Low speed/current Low speed/current 011 Low speed/current Medium speed/current 100 Low speed/current High speed/current 101 Medium speed/current Medium speed/current 110 Medium speed/current High speed/current 111 High speed/current High speed/current = DAC12.DAC12AMP_t ...
        obj.DAC12DF// DAC12 data format 0 Straight binary 1 2s complement = DAC12.DAC12DF_t ...
        obj.DAC12IE// DAC12 interrupt enable 0 Disabled 1 Enabled = DAC12.DAC12IE_t ...
        obj.DAC12IFG// DAC12 Interrupt flag 0 No interrupt pending 1 Interrupt pending = DAC12.DAC12IFG_t ...
        obj.DAC12ENC// DAC12 enable conversion. This bit enables the DAC12 module when DAC12LSELx > 0. when DAC12LSELx = 0, DAC12ENC is ignored. 0 DAC12 disabled 1 DAC12 enabled = DAC12.DAC12ENC_t ...
        obj.DAC12GRP// DAC12 group. Groups DAC12_x with the next higher DAC12_x. 0 Not grouped 1 Grouped = DAC12.DAC12GRP_t ...
    var obj = new DAC12.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new DAC12.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     DAC12.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     DAC12.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new DAC12.Params// Instance config-params object;
        params.DAC12_0CTL// DAC12_0CTL Register = DAC12.DAC12_xCTL_t {
            DAC12OPS: IDAC.DAC12OPS_OFF,
            DAC12SREF: IDAC.DAC12SREF_0,
            DAC12RES: IDAC.DAC12RES_OFF,
            DAC12LSEL: IDAC.DAC12LSEL_0,
            DAC12CALON: IDAC.DAC12CALON_OFF,
            DAC12IR: IDAC.DAC12IR_OFF,
            DAC12AMP: IDAC.DAC12AMP_0,
            DAC12DF: IDAC.DAC12DF_OFF,
            DAC12IE: IDAC.DAC12IE_OFF,
            DAC12IFG: IDAC.DAC12IFG_OFF,
            DAC12ENC: IDAC.DAC12ENC_OFF,
            DAC12GRP: IDAC.DAC12GRP_OFF
        };
        params.DAC12_0DAT// DAC12_0DAT Register = Bits16 0;
        params.DAC12_1CTL// DAC12_1CTL Register = DAC12.DAC12_xCTL_t {
            DAC12OPS: IDAC.DAC12OPS_OFF,
            DAC12SREF: IDAC.DAC12SREF_0,
            DAC12RES: IDAC.DAC12RES_OFF,
            DAC12LSEL: IDAC.DAC12LSEL_0,
            DAC12CALON: IDAC.DAC12CALON_OFF,
            DAC12IR: IDAC.DAC12IR_OFF,
            DAC12AMP: IDAC.DAC12AMP_0,
            DAC12DF: IDAC.DAC12DF_OFF,
            DAC12IE: IDAC.DAC12IE_OFF,
            DAC12IFG: IDAC.DAC12IFG_OFF,
            DAC12ENC: IDAC.DAC12ENC_OFF,
            DAC12GRP: IDAC.DAC12GRP_OFF
        };
        params.DAC12_1DAT// DAC12_1DAT Register = Bits16 0;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = DAC12.ForceSetDefaultRegister_t[] [
            {
                register: "DAC12_0CTL",
                regForceSet: false
            },
            {
                register: "DAC12_1CTL",
                regForceSet: false
            },
            {
                register: "DAC12_0DAT",
                regForceSet: false
            },
            {
                register: "DAC12_1DAT",
                regForceSet: false
            }
        ];
        params.interruptSource// DAC12 has 2 interrupt enables = DAC12.regIntVect_t[2] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = DAC12.create// Create an instance-object(params);
enum DAC12.DAC12AMP_t
index URL

DAC12AMPx Bits

XDCscript usage meta-domain
values of type DAC12.DAC12AMP_t
    const DAC12.DAC12AMP_0;
    const DAC12.DAC12AMP_1;
    const DAC12.DAC12AMP_2;
    const DAC12.DAC12AMP_3;
    const DAC12.DAC12AMP_4;
    const DAC12.DAC12AMP_5;
    const DAC12.DAC12AMP_6;
    const DAC12.DAC12AMP_7;
enum DAC12.DAC12CALON_t
index URL

DAC12CALON Bit

XDCscript usage meta-domain
values of type DAC12.DAC12CALON_t
    const DAC12.DAC12CALON_OFF;
    const DAC12.DAC12CALON;
enum DAC12.DAC12DF_t
index URL

DAC12DF Bit

XDCscript usage meta-domain
values of type DAC12.DAC12DF_t
    const DAC12.DAC12DF_OFF;
    const DAC12.DAC12DF;
enum DAC12.DAC12ENC_t
index URL

DAC12ENC Bit

XDCscript usage meta-domain
values of type DAC12.DAC12ENC_t
    const DAC12.DAC12ENC_OFF;
    const DAC12.DAC12ENC;
enum DAC12.DAC12GRP_t
index URL

DAC12GRP Bit

XDCscript usage meta-domain
values of type DAC12.DAC12GRP_t
    const DAC12.DAC12GRP_OFF;
    const DAC12.DAC12GRP;
enum DAC12.DAC12IE_t
index URL

DAC12IE Bit

XDCscript usage meta-domain
values of type DAC12.DAC12IE_t
    const DAC12.DAC12IE_OFF;
    const DAC12.DAC12IE;
enum DAC12.DAC12IFG_t
index URL

DAC12IFG Bit

XDCscript usage meta-domain
values of type DAC12.DAC12IFG_t
    const DAC12.DAC12IFG_OFF;
    const DAC12.DAC12IFG;
enum DAC12.DAC12IR_t
index URL

DAC12IR Bit

XDCscript usage meta-domain
values of type DAC12.DAC12IR_t
    const DAC12.DAC12IR_OFF;
    const DAC12.DAC12IR;
enum DAC12.DAC12LSEL_t
index URL

DAC12LSELx Bits

XDCscript usage meta-domain
values of type DAC12.DAC12LSEL_t
    const DAC12.DAC12LSEL_0;
    const DAC12.DAC12LSEL_1;
    const DAC12.DAC12LSEL_2;
    const DAC12.DAC12LSEL_3;
enum DAC12.DAC12OPS_t
index URL

DAC12OPS Bit

XDCscript usage meta-domain
values of type DAC12.DAC12OPS_t
    const DAC12.DAC12OPS_OFF;
    const DAC12.DAC12OPS;
enum DAC12.DAC12RES_t
index URL

DAC12RES Bit

XDCscript usage meta-domain
values of type DAC12.DAC12RES_t
    const DAC12.DAC12RES_OFF;
    const DAC12.DAC12RES;
enum DAC12.DAC12SREF_t
index URL

DAC12SREFx Bits

XDCscript usage meta-domain
values of type DAC12.DAC12SREF_t
    const DAC12.DAC12SREF_0;
    const DAC12.DAC12SREF_1;
    const DAC12.DAC12SREF_2;
    const DAC12.DAC12SREF_3;
struct DAC12.DAC12_xCTL_t
index URL
XDCscript usage meta-domain
var obj = new DAC12.DAC12_xCTL_t;
    obj.DAC12OPS = DAC12.DAC12OPS_t ...
    // DAC12 output select 0 DAC12_0 output on P6.6, DAC12_1 output on P6.7 1 DAC12_0 output on VeREF+, DAC12_1 output on P6.5
    obj.DAC12SREF = DAC12.DAC12SREF_t ...
    // DAC12 select reference voltage 00 VREF+ 01 VREF+ 10 VeREF+ 11 VeREF+
    obj.DAC12RES = DAC12.DAC12RES_t ...
    // DAC12 resolution select 0 12-bit resolution 1 8-bit resolution
    obj.DAC12LSEL = DAC12.DAC12LSEL_t ...
    // DAC12 load select. Selects the load trigger for the DAC12 latch. DAC12ENC must be set for the DAC to update, except when DAC12LSELx = 0. 00 DAC12 latch loads when DAC12_xDATwritten (DAC12ENCis ignored) 01 DAC12 latch loads when DAC12_xDAT written, or, when grouped, when all DAC12_xDAT registers in the group have been written. 10 Rising edge of Timer_A.OUT1 (TA1) 11 Rising edge of Timer_B.OUT2 (TB2)
    obj.DAC12CALON = DAC12.DAC12CALON_t ...
    // DAC12 calibration on. This bit initiates the DAC12 offset calibration sequence and is automatically reset when the calibration completes. 0 Calibration is not active 1 Initiate calibration/calibration in progress
    obj.DAC12IR = DAC12.DAC12IR_t ...
    // DAC12 input range. This bit sets the reference input and voltage output range. 0 DAC12 full-scale output = 3x reference voltage 1 DAC12 full-scale output = 1x reference voltage
    obj.DAC12AMP = DAC12.DAC12AMP_t ...
    // DAC12 amplifier setting. These bits select settling time vs current consumption for the DAC12 input and output amplifiers. DAC12AMPx Input Buffer Output Buffer 000 Off DAC12 off, output high Z 001 Off DAC12 off, output 0 V 010 Low speed/current Low speed/current 011 Low speed/current Medium speed/current 100 Low speed/current High speed/current 101 Medium speed/current Medium speed/current 110 Medium speed/current High speed/current 111 High speed/current High speed/current
    obj.DAC12DF = DAC12.DAC12DF_t ...
    // DAC12 data format 0 Straight binary 1 2s complement
    obj.DAC12IE = DAC12.DAC12IE_t ...
    // DAC12 interrupt enable 0 Disabled 1 Enabled
    obj.DAC12IFG = DAC12.DAC12IFG_t ...
    // DAC12 Interrupt flag 0 No interrupt pending 1 Interrupt pending
    obj.DAC12ENC = DAC12.DAC12ENC_t ...
    // DAC12 enable conversion. This bit enables the DAC12 module when DAC12LSELx > 0. when DAC12LSELx = 0, DAC12ENC is ignored. 0 DAC12 disabled 1 DAC12 enabled
    obj.DAC12GRP = DAC12.DAC12GRP_t ...
    // DAC12 group. Groups DAC12_x with the next higher DAC12_x. 0 Not grouped 1 Grouped
struct DAC12.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new DAC12.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct DAC12.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new DAC12.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
DAC12.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
DAC12.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
DAC12.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
DAC12.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new DAC12.Params;
// Instance config-params object
    params.DAC12_0CTL = DAC12.DAC12_xCTL_t {
    // DAC12_0CTL Register
        DAC12OPS: IDAC.DAC12OPS_OFF,
        DAC12SREF: IDAC.DAC12SREF_0,
        DAC12RES: IDAC.DAC12RES_OFF,
        DAC12LSEL: IDAC.DAC12LSEL_0,
        DAC12CALON: IDAC.DAC12CALON_OFF,
        DAC12IR: IDAC.DAC12IR_OFF,
        DAC12AMP: IDAC.DAC12AMP_0,
        DAC12DF: IDAC.DAC12DF_OFF,
        DAC12IE: IDAC.DAC12IE_OFF,
        DAC12IFG: IDAC.DAC12IFG_OFF,
        DAC12ENC: IDAC.DAC12ENC_OFF,
        DAC12GRP: IDAC.DAC12GRP_OFF
    };
    params.DAC12_0DAT = Bits16 0;
    // DAC12_0DAT Register
    params.DAC12_1CTL = DAC12.DAC12_xCTL_t {
    // DAC12_1CTL Register
        DAC12OPS: IDAC.DAC12OPS_OFF,
        DAC12SREF: IDAC.DAC12SREF_0,
        DAC12RES: IDAC.DAC12RES_OFF,
        DAC12LSEL: IDAC.DAC12LSEL_0,
        DAC12CALON: IDAC.DAC12CALON_OFF,
        DAC12IR: IDAC.DAC12IR_OFF,
        DAC12AMP: IDAC.DAC12AMP_0,
        DAC12DF: IDAC.DAC12DF_OFF,
        DAC12IE: IDAC.DAC12IE_OFF,
        DAC12IFG: IDAC.DAC12IFG_OFF,
        DAC12ENC: IDAC.DAC12ENC_OFF,
        DAC12GRP: IDAC.DAC12GRP_OFF
    };
    params.DAC12_1DAT = Bits16 0;
    // DAC12_1DAT Register
    params.forceSetDefaultRegister = DAC12.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "DAC12_0CTL",
            regForceSet: false
        },
        {
            register: "DAC12_1CTL",
            regForceSet: false
        },
        {
            register: "DAC12_0DAT",
            regForceSet: false
        },
        {
            register: "DAC12_1DAT",
            regForceSet: false
        }
    ];
    params.interruptSource = DAC12.regIntVect_t[2] undefined;
    // DAC12 has 2 interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config DAC12.DAC12_0CTL // instance
index URL

DAC12_0CTL Register

XDCscript usage meta-domain
var params = new DAC12.Params;
...
params.DAC12_0CTL = DAC12.DAC12_xCTL_t {
    DAC12OPS: IDAC.DAC12OPS_OFF,
    DAC12SREF: IDAC.DAC12SREF_0,
    DAC12RES: IDAC.DAC12RES_OFF,
    DAC12LSEL: IDAC.DAC12LSEL_0,
    DAC12CALON: IDAC.DAC12CALON_OFF,
    DAC12IR: IDAC.DAC12IR_OFF,
    DAC12AMP: IDAC.DAC12AMP_0,
    DAC12DF: IDAC.DAC12DF_OFF,
    DAC12IE: IDAC.DAC12IE_OFF,
    DAC12IFG: IDAC.DAC12IFG_OFF,
    DAC12ENC: IDAC.DAC12ENC_OFF,
    DAC12GRP: IDAC.DAC12GRP_OFF
};
config DAC12.DAC12_0DAT // instance
index URL

DAC12_0DAT Register

XDCscript usage meta-domain
var params = new DAC12.Params;
...
params.DAC12_0DAT = Bits16 0;
config DAC12.DAC12_1CTL // instance
index URL

DAC12_1CTL Register

XDCscript usage meta-domain
var params = new DAC12.Params;
...
params.DAC12_1CTL = DAC12.DAC12_xCTL_t {
    DAC12OPS: IDAC.DAC12OPS_OFF,
    DAC12SREF: IDAC.DAC12SREF_0,
    DAC12RES: IDAC.DAC12RES_OFF,
    DAC12LSEL: IDAC.DAC12LSEL_0,
    DAC12CALON: IDAC.DAC12CALON_OFF,
    DAC12IR: IDAC.DAC12IR_OFF,
    DAC12AMP: IDAC.DAC12AMP_0,
    DAC12DF: IDAC.DAC12DF_OFF,
    DAC12IE: IDAC.DAC12IE_OFF,
    DAC12IFG: IDAC.DAC12IFG_OFF,
    DAC12ENC: IDAC.DAC12ENC_OFF,
    DAC12GRP: IDAC.DAC12GRP_OFF
};
config DAC12.DAC12_1DAT // instance
index URL

DAC12_1DAT Register

XDCscript usage meta-domain
var params = new DAC12.Params;
...
params.DAC12_1DAT = Bits16 0;
config DAC12.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new DAC12.Params;
...
const params.forceSetDefaultRegister = DAC12.ForceSetDefaultRegister_t[] [
    {
        register: "DAC12_0CTL",
        regForceSet: false
    },
    {
        register: "DAC12_1CTL",
        regForceSet: false
    },
    {
        register: "DAC12_0DAT",
        regForceSet: false
    },
    {
        register: "DAC12_1DAT",
        regForceSet: false
    }
];
config DAC12.interruptSource // instance
index URL

DAC12 has 2 interrupt enables

XDCscript usage meta-domain
var params = new DAC12.Params;
...
params.interruptSource = DAC12.regIntVect_t[2] undefined;
config DAC12.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new DAC12.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config DAC12.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new DAC12.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new DAC12.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = DAC12.create(params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:48 GMT


module ti.catalog.msp430.peripherals.dac.DAC12

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== DAC12 ========
    14     *  MSP430 12-bit Digital to Analog Converter
    15     */
    16    metaonly module DAC12 inherits IDAC {
    17
    18        struct DAC12_xCTL_t {
    19            DAC12OPS_t DAC12OPS;       /*! DAC12 output select
    20                                        * 0 DAC12_0 output on P6.6, DAC12_1 output on P6.7
    21                                        * 1 DAC12_0 output on VeREF+, DAC12_1 output on P6.5 */
    22            DAC12SREF_t DAC12SREF;     /*! DAC12 select reference voltage
    23                                        * 00 VREF+
    24                                        * 01 VREF+
    25                                        * 10 VeREF+
    26                                        * 11 VeREF+ */
    27            DAC12RES_t DAC12RES;       /*! DAC12 resolution select
    28                                        * 0 12-bit resolution
    29                                        * 1 8-bit resolution */
    30            DAC12LSEL_t DAC12LSEL;     /*! DAC12 load select. Selects the load trigger for the DAC12 latch. DAC12ENC
    31                                        * must be set for the DAC to update, except when DAC12LSELx = 0.
    32                                        * 00 DAC12 latch loads when DAC12_xDATwritten (DAC12ENCis ignored)
    33                                        * 01 DAC12 latch loads when DAC12_xDAT written, or, when grouped,
    34                                        * when all DAC12_xDAT registers in the group have been written.
    35                                        * 10 Rising edge of Timer_A.OUT1 (TA1)
    36                                        * 11 Rising edge of Timer_B.OUT2 (TB2) */
    37            DAC12CALON_t DAC12CALON;   /*! DAC12 calibration on. This bit initiates the DAC12 offset calibration sequence
    38                                        * and is automatically reset when the calibration completes.
    39                                        * 0 Calibration is not active
    40                                        * 1 Initiate calibration/calibration in progress */
    41            DAC12IR_t DAC12IR;         /*! DAC12 input range. This bit sets the reference input and voltage output range.
    42                                        * 0 DAC12 full-scale output = 3x reference voltage
    43                                        * 1 DAC12 full-scale output = 1x reference voltage */
    44            DAC12AMP_t DAC12AMP;       /*! DAC12 amplifier setting. These bits select settling time vs current
    45                                        * consumption for the DAC12 input and output amplifiers.
    46                                        * DAC12AMPx        Input Buffer        Output Buffer
    47                                        *    000       Off                    DAC12 off, output high Z
    48                                        *    001       Off                    DAC12 off, output 0 V
    49                                        *    010       Low speed/current      Low speed/current
    50                                        *    011       Low speed/current      Medium speed/current
    51                                        *    100       Low speed/current      High speed/current
    52                                        *    101       Medium speed/current   Medium speed/current
    53                                        *    110       Medium speed/current   High speed/current
    54                                        *    111       High speed/current     High speed/current */
    55            DAC12DF_t DAC12DF;         /*! DAC12 data format
    56                                        * 0 Straight binary
    57                                        * 1 2s complement */
    58            DAC12IE_t DAC12IE;         /*! DAC12 interrupt enable
    59                                        * 0 Disabled
    60                                        * 1 Enabled */
    61            DAC12IFG_t DAC12IFG;       /*! DAC12 Interrupt flag
    62                                        * 0 No interrupt pending
    63                                        * 1 Interrupt pending */
    64            DAC12ENC_t DAC12ENC;       /*! DAC12 enable conversion. This bit enables the DAC12 module when
    65                                        * DAC12LSELx > 0. when DAC12LSELx = 0, DAC12ENC is ignored.
    66                                        * 0 DAC12 disabled
    67                                        * 1 DAC12 enabled */
    68            DAC12GRP_t DAC12GRP;       /*! DAC12 group. Groups DAC12_x with the next higher DAC12_x.
    69                                        * 0 Not grouped
    70                                        * 1 Grouped */
    71        };
    72
    73        /*!
    74         *  ======== create ========
    75         *  Create an instance of this peripheral.
    76         */
    77        create();
    78
    79      instance:
    80
    81        /*! DAC12_0CTL Register */
    82        config DAC12_xCTL_t DAC12_0CTL = {
    83            DAC12OPS    : DAC12OPS_OFF,
    84            DAC12SREF   : DAC12SREF_0,
    85            DAC12RES    : DAC12RES_OFF,
    86            DAC12LSEL   : DAC12LSEL_0,
    87            DAC12CALON  : DAC12CALON_OFF,
    88            DAC12IR     : DAC12IR_OFF,
    89            DAC12AMP    : DAC12AMP_0,
    90            DAC12DF     : DAC12DF_OFF,
    91            DAC12IE     : DAC12IE_OFF,
    92            DAC12IFG    : DAC12IFG_OFF,
    93            DAC12ENC    : DAC12ENC_OFF,
    94            DAC12GRP    : DAC12GRP_OFF
    95        };
    96
    97        /*! DAC12_1CTL Register */
    98        config DAC12_xCTL_t DAC12_1CTL = {
    99            DAC12OPS    : DAC12OPS_OFF,
   100            DAC12SREF   : DAC12SREF_0,
   101            DAC12RES    : DAC12RES_OFF,
   102            DAC12LSEL   : DAC12LSEL_0,
   103            DAC12CALON  : DAC12CALON_OFF,
   104            DAC12IR     : DAC12IR_OFF,
   105            DAC12AMP    : DAC12AMP_0,
   106            DAC12DF     : DAC12DF_OFF,
   107            DAC12IE     : DAC12IE_OFF,
   108            DAC12IFG    : DAC12IFG_OFF,
   109            DAC12ENC    : DAC12ENC_OFF,
   110            DAC12GRP    : DAC12GRP_OFF
   111        };
   112
   113        /*! DAC12_0DAT Register */
   114        config Bits16 DAC12_0DAT = 0;
   115
   116        /*! DAC12_1DAT Register */
   117        config Bits16 DAC12_1DAT = 0;
   118
   119        /*! DAC12 has 2 interrupt enables */
   120        config regIntVect_t interruptSource[2];
   121
   122        /*! Determine if each Register needs to be forced set or not */
   123        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   124        [
   125            { register : "DAC12_0CTL" , regForceSet : false },
   126            { register : "DAC12_1CTL" , regForceSet : false },
   127            { register : "DAC12_0DAT" , regForceSet : false },
   128            { register : "DAC12_1DAT" , regForceSet : false }
   129        ];
   130    }


interface ti.catalog.msp430.peripherals.dac.IDAC

metaonly interface ti.catalog.msp430.peripherals.dac.IDAC
index URL

MSP430 Digital to Analog Converter Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
metaonly interface IDAC { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
package ti.catalog.msp430.peripherals.dac;
metaonly interface IDAC inherits IPeripheral {
module-wide constants & types
    enum DAC12AMP_t// DAC12AMPx Bits {
         DAC12AMP_0,
         DAC12AMP_1,
         DAC12AMP_2,
         DAC12AMP_3,
         DAC12AMP_4,
         DAC12AMP_5,
         DAC12AMP_6,
         DAC12AMP_7
    };
    enum DAC12CALON_t// DAC12CALON Bit {
         DAC12CALON_OFF,
         DAC12CALON
    };
    enum DAC12DF_t// DAC12DF Bit {
         DAC12DF_OFF,
         DAC12DF
    };
    enum DAC12ENC_t// DAC12ENC Bit {
         DAC12ENC_OFF,
         DAC12ENC
    };
    enum DAC12GRP_t// DAC12GRP Bit {
         DAC12GRP_OFF,
         DAC12GRP
    };
    enum DAC12IE_t// DAC12IE Bit {
         DAC12IE_OFF,
         DAC12IE
    };
    enum DAC12IFG_t// DAC12IFG Bit {
         DAC12IFG_OFF,
         DAC12IFG
    };
    enum DAC12IR_t// DAC12IR Bit {
         DAC12IR_OFF,
         DAC12IR
    };
    enum DAC12LSEL_t// DAC12LSELx Bits {
         DAC12LSEL_0,
         DAC12LSEL_1,
         DAC12LSEL_2,
         DAC12LSEL_3
    };
    enum DAC12OPS_t// DAC12OPS Bit {
         DAC12OPS_OFF,
         DAC12OPS
    };
    enum DAC12RES_t// DAC12RES Bit {
         DAC12RES_OFF,
         DAC12RES
    };
    enum DAC12SREF_t// DAC12SREFx Bits {
         DAC12SREF_0,
         DAC12SREF_1,
         DAC12SREF_2,
         DAC12SREF_3
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
enum IDAC.DAC12AMP_t
index URL

DAC12AMPx Bits

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12AMP_t {
    DAC12AMP_0,
    DAC12AMP_1,
    DAC12AMP_2,
    DAC12AMP_3,
    DAC12AMP_4,
    DAC12AMP_5,
    DAC12AMP_6,
    DAC12AMP_7
};
enum IDAC.DAC12CALON_t
index URL

DAC12CALON Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12CALON_t {
    DAC12CALON_OFF,
    DAC12CALON
};
enum IDAC.DAC12DF_t
index URL

DAC12DF Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12DF_t {
    DAC12DF_OFF,
    DAC12DF
};
enum IDAC.DAC12ENC_t
index URL

DAC12ENC Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12ENC_t {
    DAC12ENC_OFF,
    DAC12ENC
};
enum IDAC.DAC12GRP_t
index URL

DAC12GRP Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12GRP_t {
    DAC12GRP_OFF,
    DAC12GRP
};
enum IDAC.DAC12IE_t
index URL

DAC12IE Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12IE_t {
    DAC12IE_OFF,
    DAC12IE
};
enum IDAC.DAC12IFG_t
index URL

DAC12IFG Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12IFG_t {
    DAC12IFG_OFF,
    DAC12IFG
};
enum IDAC.DAC12IR_t
index URL

DAC12IR Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12IR_t {
    DAC12IR_OFF,
    DAC12IR
};
enum IDAC.DAC12LSEL_t
index URL

DAC12LSELx Bits

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12LSEL_t {
    DAC12LSEL_0,
    DAC12LSEL_1,
    DAC12LSEL_2,
    DAC12LSEL_3
};
enum IDAC.DAC12OPS_t
index URL

DAC12OPS Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12OPS_t {
    DAC12OPS_OFF,
    DAC12OPS
};
enum IDAC.DAC12RES_t
index URL

DAC12RES Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12RES_t {
    DAC12RES_OFF,
    DAC12RES
};
enum IDAC.DAC12SREF_t
index URL

DAC12SREFx Bits

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
enum DAC12SREF_t {
    DAC12SREF_0,
    DAC12SREF_1,
    DAC12SREF_2,
    DAC12SREF_3
};
typedef IDAC.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IDAC.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
typedef String StringArray[];
struct IDAC.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IDAC.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IDAC.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IDAC.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IDAC.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IDAC.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dac/IDAC.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:16:48 GMT


interface ti.catalog.msp430.peripherals.dac.IDAC

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== IDAC ========
    15     *  MSP430 Digital to Analog Converter Interface
    16     */
    17    metaonly interface IDAC inherits xdc.platform.IPeripheral {
    18
    19
    20        /*! DAC12OPS Bit */
    21        enum DAC12OPS_t {
    22            DAC12OPS_OFF = 0x0000,
    23            DAC12OPS = 0x8000
    24        };
    25
    26        /*! DAC12SREFx Bits */
    27        enum DAC12SREF_t {
    28            DAC12SREF_0 = (0*0x2000u),
    29            DAC12SREF_1 = (1*0x2000u),
    30            DAC12SREF_2 = (2*0x2000u),
    31            DAC12SREF_3 = (3*0x2000u)
    32        };
    33
    34        /*! DAC12RES Bit */
    35        enum DAC12RES_t {
    36            DAC12RES_OFF = 0x0000,
    37            DAC12RES = 0x1000
    38        };
    39
    40        /*! DAC12LSELx Bits */
    41        enum DAC12LSEL_t {
    42            DAC12LSEL_0 = (0*0x0400u),
    43            DAC12LSEL_1 = (1*0x0400u),
    44            DAC12LSEL_2 = (2*0x0400u),
    45            DAC12LSEL_3 = (3*0x0400u)
    46        };
    47
    48        /*! DAC12CALON Bit */
    49        enum DAC12CALON_t {
    50            DAC12CALON_OFF = 0x0000,
    51            DAC12CALON = 0x0200
    52        };
    53
    54        /*! DAC12IR Bit */
    55        enum DAC12IR_t {
    56            DAC12IR_OFF = 0x0000,
    57            DAC12IR = 0x0100
    58        };
    59
    60         /*! DAC12AMPx Bits */
    61        enum DAC12AMP_t {
    62            DAC12AMP_0 = (0*0x0020u),
    63            DAC12AMP_1 = (1*0x0020u),
    64            DAC12AMP_2 = (2*0x0020u),
    65            DAC12AMP_3 = (3*0x0020u),
    66            DAC12AMP_4 = (4*0x0020u),
    67            DAC12AMP_5 = (5*0x0020u),
    68            DAC12AMP_6 = (6*0x0020u),
    69            DAC12AMP_7 = (7*0x0020u)
    70        };
    71
    72        /*! DAC12DF Bit */
    73        enum DAC12DF_t {
    74            DAC12DF_OFF = 0x0000,
    75            DAC12DF = 0x0010
    76        };
    77
    78        /*! DAC12IE Bit */
    79        enum DAC12IE_t {
    80            DAC12IE_OFF = 0x0000,
    81            DAC12IE = 0x0008
    82        };
    83
    84        /*! DAC12IFG Bit */
    85        enum DAC12IFG_t {
    86            DAC12IFG_OFF = 0x0000,
    87            DAC12IFG = 0x0004
    88        };
    89
    90        /*! DAC12ENC Bit */
    91        enum DAC12ENC_t {
    92            DAC12ENC_OFF = 0x0000,
    93            DAC12ENC = 0x0002
    94        };
    95
    96        /*! DAC12GRP Bit */
    97        enum DAC12GRP_t {
    98            DAC12GRP_OFF = 0x0000,
    99            DAC12GRP = 0x0001
   100        };
   101
   102       /*!
   103        *  ======== ForceSetDefaultRegister_t ========
   104        *  Force Set Default Register
   105        *
   106        *  Type to store if each register needs to be forced initialized
   107        *  even if the register is in default state.
   108        *
   109        *  @see #ForceSetDefaultRegister_t
   110        */
   111        struct ForceSetDefaultRegister_t {
   112            String     register;
   113            Bool       regForceSet;
   114        }
   115
   116        /*!
   117        *  ======== regIntVect_t ========
   118        *  Interrupt vector description
   119        *
   120        *  Type to describe a single interrupt vector pin and all its possible
   121        *  configurations.
   122        *
   123        *  @see #regIntVect_t
   124        */
   125        struct regIntVect_t {
   126            String                    registerName;
   127            String                    registerDescription;
   128            String                    isrToggleString;
   129            String                    priorityName;
   130            Bool                      interruptEnable;
   131            Bool                      interruptHandler;
   132            Int                       priority;
   133        }
   134    instance:
   135
   136    }


package ti.catalog.msp430.peripherals.dma
index URL

MSP430 DMA controller peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/package.xdc
package ti.catalog.msp430.peripherals.dma [1, 0, 0] {
    interface IDMA;
    // MSP430 DMA controller
    module DMA;
    // MSP430 DMA controller
}
generated on Thu, 08 Nov 2012 02:16:49 GMT


package ti.catalog.msp430.peripherals.dma

     1
     2    /* requires ti.catalog.msp430.peripherals.special_function; ?? */
     3
     4    /*!
     5     *  ======== ti.catalog.msp430.peripherals.dma ========
     6     *  MSP430 DMA controller peripheral
     7     */
     8    package ti.catalog.msp430.peripherals.dma [1, 0, 0] {
     9        interface IDMA;
    10        module DMA;
    11    }


module ti.catalog.msp430.peripherals.dma.DMA

metaonly module ti.catalog.msp430.peripherals.dma.DMA
index URL

MSP430 DMA controller

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/dma/DMA.xdc
var DMA = xdc.useModule('ti.catalog.msp430.peripherals.dma.DMA');
module-wide constants & types
    var obj = new DMA.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new DMA.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
    var obj = new DMA.regTriggerVect_t// Trigger vector description;
        obj.channel = Int ...
        obj.triggerName = String ...
        obj.value = Int ...
module-wide functions
     DMA.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     DMA.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new DMA.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = DMA.ForceSetDefaultRegister_t[] [ ];
        params.interruptSource// DMA interrupt enables = DMA.regIntVect_t[8] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfChannels// = UInt undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
        params.triggerSource// = DMA.regTriggerVect_t[32][8] undefined;
struct DMA.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new DMA.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct DMA.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new DMA.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
struct DMA.regTriggerVect_t
index URL

Trigger vector description

XDCscript usage meta-domain
var obj = new DMA.regTriggerVect_t;
    obj.channel = Int ...
    obj.triggerName = String ...
    obj.value = Int ...
DMA.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
DMA.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
DMA.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
DMA.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new DMA.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = DMA.ForceSetDefaultRegister_t[] [ ];
    // Determine if each Register needs to be forced set or not
    params.interruptSource = DMA.regIntVect_t[8] undefined;
    // DMA interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfChannels = UInt undefined;
    //
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
    params.triggerSource = DMA.regTriggerVect_t[32][8] undefined;
    //
config DMA.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new DMA.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config DMA.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new DMA.Params;
...
const params.forceSetDefaultRegister = DMA.ForceSetDefaultRegister_t[] [ ];
config DMA.interruptSource // instance
index URL

DMA interrupt enables

XDCscript usage meta-domain
var params = new DMA.Params;
...
params.interruptSource = DMA.regIntVect_t[8] undefined;
config DMA.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new DMA.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config DMA.numberOfChannels // instance
index URL
XDCscript usage meta-domain
var params = new DMA.Params;
...
params.numberOfChannels = UInt undefined;
config DMA.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new DMA.Params;
...
params.owner = String undefined;
config DMA.triggerSource // instance
index URL
XDCscript usage meta-domain
var params = new DMA.Params;
...
params.triggerSource = DMA.regTriggerVect_t[32][8] undefined;
generated on Thu, 08 Nov 2012 02:16:49 GMT


module ti.catalog.msp430.peripherals.dma.DMA

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== DMA ========
    15     *  MSP430 DMA controller
    16     */
    17    metaonly module DMA inherits IDMA {
    18
    19    instance:
    20        /*!
    21         *  ======== baseAddr ========
    22         *  Address of the peripheral's control register.
    23         *
    24         *  A peripheral's registers are commonly accessed through a structure
    25         *  that defines the offsets of a particular register from the lowest
    26         *  address mapped to a peripheral. That lowest address is specified by
    27         *  this parameter.
    28         */
    29        config UInt baseAddr;
    30
    31        /*! DMA interrupt enables */
    32        config regIntVect_t interruptSource[8];
    33
    34        config regTriggerVect_t triggerSource[8][32];
    35
    36        config UInt numberOfChannels;
    37
    38        /*! Determine if each Register needs to be forced set or not */
    39        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    40        [
    41        ];
    42
    43    }


interface ti.catalog.msp430.peripherals.dma.IDMA

metaonly interface ti.catalog.msp430.peripherals.dma.IDMA
index URL

MSP430 DMA controller

XDCspec summary sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
metaonly interface IDMA { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
package ti.catalog.msp430.peripherals.dma;
metaonly interface IDMA inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
    metaonly struct regTriggerVect_t// Trigger vector description {
        Int channel;
        String triggerName;
        Int value;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
typedef IDMA.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IDMA.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
typedef String StringArray[];
struct IDMA.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IDMA.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
struct IDMA.regTriggerVect_t
index URL

Trigger vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
metaonly struct regTriggerVect_t {
    Int channel;
    String triggerName;
    Int value;
};
IDMA.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IDMA.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IDMA.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IDMA.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/dma/IDMA.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:16:49 GMT


interface ti.catalog.msp430.peripherals.dma.IDMA

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== IDMA ========
    15     *  MSP430 DMA controller
    16     */
    17    metaonly interface IDMA inherits xdc.platform.IPeripheral {
    18
    19        /*!
    20        *  ======== regIntVect_t ========
    21        *  Interrupt vector description
    22        *
    23        *  Type to describe a single interrupt vector pin and all its possible
    24        *  configurations.
    25        *
    26        *  @see #regIntVect_t
    27        */
    28        struct regIntVect_t {
    29            String                    registerName;
    30            String                    registerDescription;
    31            String                    isrToggleString;
    32            String                    priorityName;
    33            Bool                      interruptEnable;
    34            Bool                      interruptHandler;
    35            Int                       priority;
    36        }
    37
    38        /*!
    39        *  ======== regTriggerVect_t ========
    40        *  Trigger vector description
    41        *
    42        */
    43        struct regTriggerVect_t {
    44            Int    channel;
    45            String triggerName;
    46            Int    value;
    47        }
    48
    49        /*!
    50        *  ======== ForceSetDefaultRegister_t ========
    51        *  Force Set Default Register
    52        *
    53        *  Type to store if each register needs to be forced initialized
    54        *  even if the register is in default state.
    55        *
    56        *  @see #ForceSetDefaultRegister_t
    57        */
    58        struct ForceSetDefaultRegister_t {
    59            String     register;
    60            Bool       regForceSet;
    61        }
    62
    63
    64    instance:
    65    }
    66
    67


package ti.catalog.msp430.peripherals.frctl
index URL

MSP430 FRAM controller (FRCTL) peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/package.xdc
package ti.catalog.msp430.peripherals.frctl [1, 0, 0] {
    interface IFRCTL;
    // MSP430 FRAM controller (FRCTL)
    module FRCTL;
    // MSP430 FRAM controller (FRCTL)
}
generated on Thu, 08 Nov 2012 02:16:49 GMT


package ti.catalog.msp430.peripherals.frctl

     1
     2    /* requires ti.catalog.msp430.peripherals.special_function; ?? */
     3
     4    /*!
     5     *  ======== ti.catalog.msp430.peripherals.frctl ========
     6     *  MSP430 FRAM controller (FRCTL) peripheral
     7     */
     8    package ti.catalog.msp430.peripherals.frctl [1, 0, 0] {
     9        interface IFRCTL;
    10        module FRCTL;
    11    }


module ti.catalog.msp430.peripherals.frctl.FRCTL

metaonly module ti.catalog.msp430.peripherals.frctl.FRCTL
index URL

MSP430 FRAM controller (FRCTL)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/frctl/FRCTL.xdc
var FRCTL = xdc.useModule('ti.catalog.msp430.peripherals.frctl.FRCTL');
module-wide constants & types
    var obj = new FRCTL.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
module-wide functions
     FRCTL.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     FRCTL.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new FRCTL.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = FRCTL.ForceSetDefaultRegister_t[] [ ];
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = FRCTL.create// Create an instance-object(IClock.Instance clock, params);
struct FRCTL.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new FRCTL.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
FRCTL.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
FRCTL.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
FRCTL.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
FRCTL.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new FRCTL.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = FRCTL.ForceSetDefaultRegister_t[] [ ];
    // Determine if each Register needs to be forced set or not
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config FRCTL.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new FRCTL.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config FRCTL.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new FRCTL.Params;
...
const params.forceSetDefaultRegister = FRCTL.ForceSetDefaultRegister_t[] [ ];
config FRCTL.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new FRCTL.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config FRCTL.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new FRCTL.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new FRCTL.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = FRCTL.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:49 GMT


module ti.catalog.msp430.peripherals.frctl.FRCTL

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== FRCTL ========
    15     *  MSP430 FRAM controller (FRCTL)
    16     */
    17    metaonly module FRCTL inherits IFRCTL {
    18
    19    instance:
    20        /*!
    21         *  ======== baseAddr ========
    22         *  Address of the peripheral's control register.
    23         *
    24         *  A peripheral's registers are commonly accessed through a structure
    25         *  that defines the offsets of a particular register from the lowest
    26         *  address mapped to a peripheral. That lowest address is specified by
    27         *  this parameter.
    28         */
    29        config UInt baseAddr;
    30
    31        /*! Determine if each Register needs to be forced set or not */
    32        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    33        [
    34        ];
    35
    36    }


interface ti.catalog.msp430.peripherals.frctl.IFRCTL

metaonly interface ti.catalog.msp430.peripherals.frctl.IFRCTL
index URL

MSP430 FRAM controller (FRCTL)

XDCspec summary sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
metaonly interface IFRCTL { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
package ti.catalog.msp430.peripherals.frctl;
metaonly interface IFRCTL inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance creation
     create// Create an instance-object(IClock.Instance clock);
}
typedef IFRCTL.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IFRCTL.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
typedef String StringArray[];
struct IFRCTL.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
IFRCTL.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IFRCTL.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IFRCTL.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IFRCTL.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
config String owner;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/peripherals/frctl/IFRCTL.xdc
create(IClock.Instance clock);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:16:49 GMT


interface ti.catalog.msp430.peripherals.frctl.IFRCTL

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     *  ======== IFRCTL ========
    16     *  MSP430 FRAM controller (FRCTL)
    17     */
    18    metaonly interface IFRCTL inherits xdc.platform.IPeripheral {
    19
    20        /*!
    21        *  ======== ForceSetDefaultRegister_t ========
    22        *  Force Set Default Register
    23        *
    24        *  Type to store if each register needs to be forced initialized
    25        *  even if the register is in default state.
    26        *
    27        *  @see #ForceSetDefaultRegister_t
    28        */
    29        struct ForceSetDefaultRegister_t {
    30            String     register;
    31            Bool       regForceSet;
    32        }
    33
    34        create(IClock.Instance clock);
    35
    36    instance:
    37
    38        /*! @_nodoc */
    39        config IClock.Instance clock;
    40    }
    41
    42


package ti.catalog.msp430.peripherals.gpio
index URL

MSP430 GPIO peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/package.xdc
package ti.catalog.msp430.peripherals.gpio [1, 0, 0] {
    interface IGPIO;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F20x1;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F20x2;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F20x3;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F21x1;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F21x2;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F22x2;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F22x4;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F23x;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F23x0;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F241x;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F24x;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F24x1;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F261x;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430F543xA;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430FR5736_32_26_22;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430FR5737_33_27_23;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430FR5738_34_30_28_24_20;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430FR5739_35_31_29_25_21;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430FR59xx_FR58xx;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2210;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2230;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x01;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x02;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x03;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x11;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x12;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x13;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x21;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x31;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x32;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x33;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x52;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430G2x53;
    // MSP430 General Purpose Input Output Ports
}
generated on Thu, 08 Nov 2012 02:17:37 GMT


package ti.catalog.msp430.peripherals.gpio

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ti.catalog.msp430.peripherals.gpio ========
    14     *  MSP430 GPIO peripheral
    15     */
    16    package ti.catalog.msp430.peripherals.gpio [1, 0, 0] {
    17        module      GPIO_MSP430G2210;
    18        module      GPIO_MSP430G2230;
    19        module      GPIO_MSP430G2x01;
    20        module      GPIO_MSP430G2x11;
    21        module      GPIO_MSP430G2x21;
    22        module      GPIO_MSP430G2x31;
    23        module      GPIO_MSP430G2x02;
    24        module      GPIO_MSP430G2x12;
    25        module      GPIO_MSP430G2x32;
    26        module      GPIO_MSP430G2x52;
    27        module      GPIO_MSP430G2x03;
    28        module      GPIO_MSP430G2x13;
    29        module      GPIO_MSP430G2x33;
    30        module      GPIO_MSP430G2x53;
    31        module      GPIO_MSP430F20x1;
    32        module      GPIO_MSP430F20x2;
    33        module      GPIO_MSP430F20x3;
    34        module      GPIO_MSP430F21x1;
    35        module      GPIO_MSP430F21x2;
    36        module      GPIO_MSP430F22x2;
    37        module      GPIO_MSP430F22x4;
    38        module      GPIO_MSP430F261x;
    39        module      GPIO_MSP430F241x;
    40        module      GPIO_MSP430F23x0;
    41        module      GPIO_MSP430F23x;
    42        module      GPIO_MSP430F24x1;
    43        module      GPIO_MSP430F24x;
    44        module      GPIO_MSP430F543xA;
    45        module      GPIO_MSP430FR5739_35_31_29_25_21;
    46        module      GPIO_MSP430FR5737_33_27_23;
    47        module      GPIO_MSP430FR5738_34_30_28_24_20;
    48        module      GPIO_MSP430FR5736_32_26_22;
    49        module      GPIO_MSP430FR59xx_FR58xx;
    50        interface   IGPIO;
    51    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x1

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x1
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F20x1.xdc
var GPIO_MSP430F20x1 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x1');
module-wide constants & types
    values of type GPIO_MSP430F20x1.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F20x1.BIT0_OFF;
        const GPIO_MSP430F20x1.BIT0;
    values of type GPIO_MSP430F20x1.Bit1_t//
        const GPIO_MSP430F20x1.BIT1_OFF;
        const GPIO_MSP430F20x1.BIT1;
    values of type GPIO_MSP430F20x1.Bit2_t//
        const GPIO_MSP430F20x1.BIT2_OFF;
        const GPIO_MSP430F20x1.BIT2;
    values of type GPIO_MSP430F20x1.Bit3_t//
        const GPIO_MSP430F20x1.BIT3_OFF;
        const GPIO_MSP430F20x1.BIT3;
    values of type GPIO_MSP430F20x1.Bit4_t//
        const GPIO_MSP430F20x1.BIT4_OFF;
        const GPIO_MSP430F20x1.BIT4;
    values of type GPIO_MSP430F20x1.Bit5_t//
        const GPIO_MSP430F20x1.BIT5_OFF;
        const GPIO_MSP430F20x1.BIT5;
    values of type GPIO_MSP430F20x1.Bit6_t//
        const GPIO_MSP430F20x1.BIT6_OFF;
        const GPIO_MSP430F20x1.BIT6;
    values of type GPIO_MSP430F20x1.Bit7_t//
        const GPIO_MSP430F20x1.BIT7_OFF;
        const GPIO_MSP430F20x1.BIT7;
    values of type GPIO_MSP430F20x1.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F20x1.IE_OFF// Disabled;
        const GPIO_MSP430F20x1.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F20x1.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F20x1.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F20x1.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F20x1.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F20x1.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F20x1.PUDRE_OFF// Disabled;
        const GPIO_MSP430F20x1.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F20x1.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F20x1.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F20x1.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F20x1.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F20x1.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F20x1.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F20x1.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x1.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x1.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x1.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x1.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x1.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x1.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x1.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x1.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x1.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F20x1.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F20x1.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F20x1.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F20x1.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F20x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F20x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F20x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F20x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F20x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F20x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F20x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F20x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F20x1.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F20x1 device, there are 8 + 2 = 10 pins total = GPIO_MSP430F20x1.DevicePin_t[8][2] [
            [
                {
                    pinName: "P1.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.TACLK/INCLK",
                            "ACLK",
                            "CA0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.CCI0A",
                            "Timer_A2.TA0",
                            "CA1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.CCI1A",
                            "Timer_A2.TA1",
                            "CA2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "CAOUT",
                            "CA3"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "SMCLK",
                            "CA4"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.TA0",
                            "CA5"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.TA1",
                            "CA6"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "CAOUT",
                            "CA7"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "CAPD",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ],
            [
                {
                    pinName: "P2.0",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.1",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.2",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.3",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.4",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.5",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XIN",
                            "Timer_A2.TA1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XOUT"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ]
        ];
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F20x1.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F20x1.create// Create an instance-object(IComparator.Instance comparator, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F20x1.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.Bit0_t
    const GPIO_MSP430F20x1.BIT0_OFF;
    const GPIO_MSP430F20x1.BIT0;
enum GPIO_MSP430F20x1.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.Bit1_t
    const GPIO_MSP430F20x1.BIT1_OFF;
    const GPIO_MSP430F20x1.BIT1;
enum GPIO_MSP430F20x1.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.Bit2_t
    const GPIO_MSP430F20x1.BIT2_OFF;
    const GPIO_MSP430F20x1.BIT2;
enum GPIO_MSP430F20x1.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.Bit3_t
    const GPIO_MSP430F20x1.BIT3_OFF;
    const GPIO_MSP430F20x1.BIT3;
enum GPIO_MSP430F20x1.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.Bit4_t
    const GPIO_MSP430F20x1.BIT4_OFF;
    const GPIO_MSP430F20x1.BIT4;
enum GPIO_MSP430F20x1.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.Bit5_t
    const GPIO_MSP430F20x1.BIT5_OFF;
    const GPIO_MSP430F20x1.BIT5;
enum GPIO_MSP430F20x1.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.Bit6_t
    const GPIO_MSP430F20x1.BIT6_OFF;
    const GPIO_MSP430F20x1.BIT6;
enum GPIO_MSP430F20x1.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.Bit7_t
    const GPIO_MSP430F20x1.BIT7_OFF;
    const GPIO_MSP430F20x1.BIT7;
enum GPIO_MSP430F20x1.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.InterruptEnable_t
    const GPIO_MSP430F20x1.IE_OFF;
    // Disabled
    const GPIO_MSP430F20x1.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F20x1.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F20x1.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.OutputState_t
    const GPIO_MSP430F20x1.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F20x1.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F20x1.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F20x1.ResEnable_t
    const GPIO_MSP430F20x1.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F20x1.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F20x1.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F20x1.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F20x1.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F20x1.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F20x1.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F20x1.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F20x1.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F20x1.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F20x1.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F20x1.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F20x1.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F20x1.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F20x1.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F20x1.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F20x1.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F20x1.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F20x1.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x1.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F20x1.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F20x1.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F20x1.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F20x1.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F20x1.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F20x1.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F20x1.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F20x1.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F20x1.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F20x1.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F20x1.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F20x1.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F20x1.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F20x1.DevicePin_t[8][2] [
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F20x1 device, there are 8 + 2 = 10 pins total
        [
            {
                pinName: "P1.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.TACLK/INCLK",
                        "ACLK",
                        "CA0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "CAPD",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.CCI0A",
                        "Timer_A2.TA0",
                        "CA1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "CAPD",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.CCI1A",
                        "Timer_A2.TA1",
                        "CA2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "CAPD",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "CAOUT",
                        "CA3"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "CAPD",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "SMCLK",
                        "CA4"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "CAPD",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.TA0",
                        "CA5"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "CAPD",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.TA1",
                        "CA6"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "CAPD",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "CAOUT",
                        "CA7"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "CAPD",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "CAPD",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ],
        [
            {
                pinName: "P2.0",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.1",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.2",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.3",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.4",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.5",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XIN",
                        "Timer_A2.TA1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XOUT"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ]
    ];
    params.forceSetDefaultRegister = GPIO_MSP430F20x1.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F20x1.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P1DIR = GPIO_MSP430F20x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P1OUT = GPIO_MSP430F20x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P1REN = GPIO_MSP430F20x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P1SEL = GPIO_MSP430F20x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P2DIR = GPIO_MSP430F20x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P2OUT = GPIO_MSP430F20x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P2REN = GPIO_MSP430F20x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P2SEL = GPIO_MSP430F20x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430F20x1.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x1.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.devicePinSetting = GPIO_MSP430F20x1.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430F20x1.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F20x1 device, there are 8 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
const params.devicePins = GPIO_MSP430F20x1.DevicePin_t[8][2] [
    [
        {
            pinName: "P1.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.TACLK/INCLK",
                    "ACLK",
                    "CA0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "CAPD",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.CCI0A",
                    "Timer_A2.TA0",
                    "CA1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "CAPD",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.CCI1A",
                    "Timer_A2.TA1",
                    "CA2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "CAPD",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "CAOUT",
                    "CA3"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "CAPD",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "SMCLK",
                    "CA4"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "CAPD",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.TA0",
                    "CA5"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "CAPD",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.TA1",
                    "CA6"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "CAPD",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "CAOUT",
                    "CA7"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "CAPD",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "CAPD",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ],
    [
        {
            pinName: "P2.0",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.1",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.2",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.3",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.4",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.5",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XIN",
                    "Timer_A2.TA1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XOUT"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ]
];
config GPIO_MSP430F20x1.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F20x1.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430F20x1.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F20x1.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F20x1.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x1.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F20x1.create(IComparator.Instance comparator, params);
// Create an instance-object
GPIO_MSP430F20x1.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F20x1.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F20x1.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F20x1.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F20x1.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F20x1.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:13 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x1

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    13
    14    /*!
    15     *  ======== GPIO for MSP430F20x1 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430F20x1 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral.
    22         */
    23        create(Comparator.Instance comparator);
    24
    25    instance:
    26        /*! @_nodoc */
    27        config Comparator.Instance comparator;
    28
    29       /*! Define an array to describe all device pins. The 1st dimension
    30        *  denotes the port, the second the pin on that port. On an
    31        *  MSP430F20x1 device, there are 8 + 2 = 10 pins total.
    32        */
    33
    34        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    35         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    36        readonly config DevicePin_t devicePins[2][8] =
    37        [
    38            [
    39                {
    40                    pinName : "P1.0",
    41                    pinFunction : {
    42                        functionName : [
    43                            "GPIO Input",
    44                            "GPIO Output",
    45                            "Timer_A2.TACLK/INCLK",
    46                            "ACLK",
    47                            "CA0"
    48                        ],
    49                        functionConfig : [
    50                            [
    51                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    52                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
    53                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x01 }
    54                            ],
    55                            [
    56                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    57                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
    58                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x01 }
    59                            ],
    60                            [
    61                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    62                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
    63                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x01 }
    64                            ],
    65                            [
    66                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    67                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
    68                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x01 }
    69                            ],
    70                            [
    71                                { register : "CAPD", bitSetMask : 0x01, bitClearMask : 0x00 }
    72                            ]
    73                        ]
    74                    }
    75                },
    76                {
    77                    pinName : "P1.1",
    78                    pinFunction : {
    79                        functionName : [
    80                            "GPIO Input",
    81                            "GPIO Output",
    82                            "Timer_A2.CCI0A",
    83                            "Timer_A2.TA0",
    84                            "CA1"
    85                        ],
    86                        functionConfig : [
    87                            [
    88                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    89                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
    90                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x02 }
    91                            ],
    92                            [
    93                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
    94                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
    95                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x02 }
    96                            ],
    97                            [
    98                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    99                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   100                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x02 }
   101                            ],
   102                            [
   103                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   104                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   105                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x02 }
   106                            ],
   107                            [
   108                                { register : "CAPD", bitSetMask : 0x02, bitClearMask : 0x00 }
   109                            ]
   110                        ]
   111                    }
   112                },
   113                {
   114                    pinName : "P1.2",
   115                    pinFunction : {
   116                        functionName : [
   117                            "GPIO Input",
   118                            "GPIO Output",
   119                            "Timer_A2.CCI1A",
   120                            "Timer_A2.TA1",
   121                            "CA2"
   122                        ],
   123                        functionConfig : [
   124                            [
   125                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   126                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   127                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x04 }
   128                            ],
   129                            [
   130                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   131                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   132                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x04 }
   133                            ],
   134                            [
   135                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   136                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   137                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x04 }
   138                            ],
   139                            [
   140                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   141                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   142                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x04 }
   143                            ],
   144                            [
   145                                { register : "CAPD", bitSetMask : 0x04, bitClearMask : 0x00 }
   146                            ]
   147                        ]
   148                    }
   149                },
   150                {
   151                    pinName : "P1.3",
   152                    pinFunction : {
   153                        functionName : [
   154                            "GPIO Input",
   155                            "GPIO Output",
   156                            "CAOUT",
   157                            "CA3"
   158                        ],
   159                        functionConfig : [
   160                            [
   161                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   162                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   163                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x08 }
   164                            ],
   165                            [
   166                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   167                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   168                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x08 }
   169                            ],
   170                            [
   171                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   172                                { register : "P1SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   173                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x08 }
   174                            ],
   175                            [
   176                                { register : "CAPD", bitSetMask : 0x08, bitClearMask : 0x00 }
   177                            ]
   178                        ]
   179                    }
   180                },
   181                {
   182                    pinName : "P1.4",
   183                    pinFunction : {
   184                        functionName : [
   185                            "GPIO Input",
   186                            "GPIO Output",
   187                            "SMCLK",
   188                            "CA4"
   189                        ],
   190                        functionConfig : [
   191                            [
   192                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   193                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   194                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x10 }
   195                            ],
   196                            [
   197                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   198                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   199                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x10 }
   200                            ],
   201                            [
   202                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   203                                { register : "P1SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   204                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x10 }
   205                            ],
   206                            [
   207                                { register : "CAPD", bitSetMask : 0x10, bitClearMask : 0x00 }
   208                            ]
   209                        ]
   210                    }
   211                },
   212                {
   213                    pinName : "P1.5",
   214                    pinFunction : {
   215                        functionName : [
   216                            "GPIO Input",
   217                            "GPIO Output",
   218                            "Timer_A2.TA0",
   219                            "CA5"
   220                        ],
   221                        functionConfig : [
   222                            [
   223                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   224                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   225                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x20 }
   226                            ],
   227                            [
   228                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   229                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   230                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x20 }
   231                            ],
   232                            [
   233                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   234                                { register : "P1SEL", bitSetMask : 0x20, bitClearMask : 0x00 },
   235                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x20 }
   236                            ],
   237                            [
   238                                { register : "CAPD", bitSetMask : 0x20, bitClearMask : 0x00 }
   239                            ]
   240                        ]
   241                    }
   242                },
   243                {
   244                    pinName : "P1.6",
   245                    pinFunction : {
   246                        functionName : [
   247                            "GPIO Input",
   248                            "GPIO Output",
   249                            "Timer_A2.TA1",
   250                            "CA6"
   251                        ],
   252                        functionConfig : [
   253                            [
   254                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   255                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   256                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x40 }
   257                            ],
   258                            [
   259                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   260                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   261                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x40 }
   262                            ],
   263                            [
   264                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   265                                { register : "P1SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   266                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x40 }
   267                            ],
   268                            [
   269                                { register : "CAPD", bitSetMask : 0x40, bitClearMask : 0x00 }
   270                            ]
   271                        ]
   272                    }
   273                },
   274                {
   275                    pinName : "P1.7",
   276                    pinFunction : {
   277                        functionName : [
   278                            "GPIO Input",
   279                            "GPIO Output",
   280                            "CAOUT",
   281                            "CA7"
   282                        ],
   283                        functionConfig : [
   284                            [
   285                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   286                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   287                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x80 }
   288                            ],
   289                            [
   290                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   291                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   292                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x80 }
   293                            ],
   294                            [
   295                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   296                                { register : "P1SEL", bitSetMask : 0x80, bitClearMask : 0x00 },
   297                                { register : "CAPD", bitSetMask : 0x00, bitClearMask : 0x80 }
   298                            ],
   299                            [
   300                                { register : "CAPD", bitSetMask : 0x80, bitClearMask : 0x00 }
   301                            ]
   302                        ]
   303                    }
   304                }
   305            ],
   306            [
   307                {
   308                    pinName : "P2.0",
   309                    pinFunction : {
   310                        functionName : [
   311                            ""
   312                        ],
   313                        functionConfig : [
   314                            [
   315
   316                            ]
   317                        ]
   318                    }
   319                },
   320                {
   321                    pinName : "P2.1",
   322                    pinFunction : {
   323                        functionName : [
   324                            ""
   325                        ],
   326                        functionConfig : [
   327                            [
   328
   329                            ]
   330                        ]
   331                    }
   332                },
   333                {
   334                    pinName : "P2.2",
   335                    pinFunction : {
   336                        functionName : [
   337                            ""
   338                        ],
   339                        functionConfig : [
   340                            [
   341
   342                            ]
   343                        ]
   344                    }
   345                },
   346                {
   347                    pinName : "P2.3",
   348                    pinFunction : {
   349                        functionName : [
   350                            ""
   351                        ],
   352                        functionConfig : [
   353                            [
   354
   355                            ]
   356                        ]
   357                    }
   358                },
   359                {
   360                    pinName : "P2.4",
   361                    pinFunction : {
   362                        functionName : [
   363                            ""
   364                        ],
   365                        functionConfig : [
   366                            [
   367
   368                            ]
   369                        ]
   370                    }
   371                },
   372                {
   373                    pinName : "P2.5",
   374                    pinFunction : {
   375                        functionName : [
   376                            ""
   377                        ],
   378                        functionConfig : [
   379                            [
   380
   381                            ]
   382                        ]
   383                    }
   384                },
   385                {
   386                    pinName : "P2.6",
   387                    pinFunction : {
   388                        functionName : [
   389                            "GPIO Input",
   390                            "GPIO Output",
   391                            "XIN",
   392                            "Timer_A2.TA1"
   393                        ],
   394                        functionConfig : [
   395                            [
   396                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   397                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   398                            ],
   399                            [
   400                                { register : "P2DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   401                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   402                            ],
   403                            [
   404                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   405                                { register : "P2SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   406                            ],
   407                            [
   408                                { register : "P2DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   409                                { register : "P2SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   410                            ]
   411                        ]
   412                    }
   413                },
   414                {
   415                    pinName : "P2.7",
   416                    pinFunction : {
   417                        functionName : [
   418                            "GPIO Input",
   419                            "GPIO Output",
   420                            "XOUT"
   421                        ],
   422                        functionConfig : [
   423                            [
   424                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   425                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   426                            ],
   427                            [
   428                                { register : "P2DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   429                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   430                            ],
   431                            [
   432                                { register : "P2SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   433                            ]
   434                        ]
   435                    }
   436                }
   437            ]
   438        ];
   439
   440        /*! Implementation of Device Pin Functional Configuration */
   441        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
   442
   443        /*! Determine if each Register needs to be forced set or not */
   444        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   445        [
   446            { register : "P1OUT" , regForceSet : true  },
   447            { register : "P1SEL" , regForceSet : false },
   448            { register : "P1DIR" , regForceSet : true  },
   449            { register : "P1REN" , regForceSet : false },
   450            { register : "P1IES" , regForceSet : true },
   451            { register : "P1IFG" , regForceSet : true },
   452            { register : "P1IE"  , regForceSet : false },
   453            { register : "P2OUT" , regForceSet : true  },
   454            { register : "P2SEL" , regForceSet : false },
   455            { register : "P2DIR" , regForceSet : true  },
   456            { register : "P2REN" , regForceSet : false },
   457            { register : "P2IES" , regForceSet : true },
   458            { register : "P2IFG" , regForceSet : true },
   459            { register : "P2IE"  , regForceSet : false }
   460        ];
   461
   462        /*
   463         *  GPIO Digital I/O Registers
   464         *
   465         *  One GIPO instance defines the configuration of an entire,
   466         *  8-bit wide digital I/O port.
   467         */
   468
   469        /*! Port 1 Output Register */
   470        config GpioBits8PxOut_t P1OUT = {
   471            Bit0        : BIT0_OFF,
   472            Bit1        : BIT1_OFF,
   473            Bit2        : BIT2_OFF,
   474            Bit3        : BIT3_OFF,
   475            Bit4        : BIT4_OFF,
   476            Bit5        : BIT5_OFF,
   477            Bit6        : BIT6_OFF,
   478            Bit7        : BIT7_OFF
   479        };
   480
   481        /*! Port 1 Port Select Register */
   482        config GpioBits8PxSel_t P1SEL = {
   483            Bit0        : BIT0_OFF,
   484            Bit1        : BIT1_OFF,
   485            Bit2        : BIT2_OFF,
   486            Bit3        : BIT3_OFF,
   487            Bit4        : BIT4_OFF,
   488            Bit5        : BIT5_OFF,
   489            Bit6        : BIT6_OFF,
   490            Bit7        : BIT7_OFF
   491        };
   492
   493        /*! Port 1 Direction Register */
   494        config GpioBits8PxDir_t P1DIR = {
   495            Bit0        : BIT0_OFF,
   496            Bit1        : BIT1_OFF,
   497            Bit2        : BIT2_OFF,
   498            Bit3        : BIT3_OFF,
   499            Bit4        : BIT4_OFF,
   500            Bit5        : BIT5_OFF,
   501            Bit6        : BIT6_OFF,
   502            Bit7        : BIT7_OFF
   503        };
   504
   505        /*! Port 1 Resistor Enable Register */
   506        config GpioBits8PxRen_t P1REN = {
   507            Bit0        : BIT0_OFF,
   508            Bit1        : BIT1_OFF,
   509            Bit2        : BIT2_OFF,
   510            Bit3        : BIT3_OFF,
   511            Bit4        : BIT4_OFF,
   512            Bit5        : BIT5_OFF,
   513            Bit6        : BIT6_OFF,
   514            Bit7        : BIT7_OFF
   515        };
   516
   517        /*! Port 2 Output Register */
   518        config GpioBits8PxOut_t P2OUT = {
   519            Bit0        : BIT0_OFF,
   520            Bit1        : BIT1_OFF,
   521            Bit2        : BIT2_OFF,
   522            Bit3        : BIT3_OFF,
   523            Bit4        : BIT4_OFF,
   524            Bit5        : BIT5_OFF,
   525            Bit6        : BIT6_OFF,
   526            Bit7        : BIT7_OFF
   527        };
   528
   529        /*! Port 2 Port Select Register */
   530        config GpioBits8PxSel_t P2SEL = {
   531            Bit0        : BIT0_OFF,
   532            Bit1        : BIT1_OFF,
   533            Bit2        : BIT2_OFF,
   534            Bit3        : BIT3_OFF,
   535            Bit4        : BIT4_OFF,
   536            Bit5        : BIT5_OFF,
   537            Bit6        : BIT6,         /* POR default for all 2xx devices */
   538            Bit7        : BIT7          /* POR default for all 2xx devices */
   539        };
   540
   541        /*! Port 2 Direction Register */
   542        config GpioBits8PxDir_t P2DIR = {
   543            Bit0        : BIT0_OFF,
   544            Bit1        : BIT1_OFF,
   545            Bit2        : BIT2_OFF,
   546            Bit3        : BIT3_OFF,
   547            Bit4        : BIT4_OFF,
   548            Bit5        : BIT5_OFF,
   549            Bit6        : BIT6_OFF,
   550            Bit7        : BIT7_OFF
   551        };
   552
   553        /*! Port 2 Resistor Enable Register */
   554        config GpioBits8PxRen_t P2REN = {
   555            Bit0        : BIT0_OFF,
   556            Bit1        : BIT1_OFF,
   557            Bit2        : BIT2_OFF,
   558            Bit3        : BIT3_OFF,
   559            Bit4        : BIT4_OFF,
   560            Bit5        : BIT5_OFF,
   561            Bit6        : BIT6_OFF,
   562            Bit7        : BIT7_OFF
   563        };
   564
   565    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x2

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x2
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F20x2.xdc
var GPIO_MSP430F20x2 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x2');
module-wide constants & types
    values of type GPIO_MSP430F20x2.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F20x2.BIT0_OFF;
        const GPIO_MSP430F20x2.BIT0;
    values of type GPIO_MSP430F20x2.Bit1_t//
        const GPIO_MSP430F20x2.BIT1_OFF;
        const GPIO_MSP430F20x2.BIT1;
    values of type GPIO_MSP430F20x2.Bit2_t//
        const GPIO_MSP430F20x2.BIT2_OFF;
        const GPIO_MSP430F20x2.BIT2;
    values of type GPIO_MSP430F20x2.Bit3_t//
        const GPIO_MSP430F20x2.BIT3_OFF;
        const GPIO_MSP430F20x2.BIT3;
    values of type GPIO_MSP430F20x2.Bit4_t//
        const GPIO_MSP430F20x2.BIT4_OFF;
        const GPIO_MSP430F20x2.BIT4;
    values of type GPIO_MSP430F20x2.Bit5_t//
        const GPIO_MSP430F20x2.BIT5_OFF;
        const GPIO_MSP430F20x2.BIT5;
    values of type GPIO_MSP430F20x2.Bit6_t//
        const GPIO_MSP430F20x2.BIT6_OFF;
        const GPIO_MSP430F20x2.BIT6;
    values of type GPIO_MSP430F20x2.Bit7_t//
        const GPIO_MSP430F20x2.BIT7_OFF;
        const GPIO_MSP430F20x2.BIT7;
    values of type GPIO_MSP430F20x2.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F20x2.IE_OFF// Disabled;
        const GPIO_MSP430F20x2.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F20x2.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F20x2.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F20x2.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F20x2.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F20x2.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F20x2.PUDRE_OFF// Disabled;
        const GPIO_MSP430F20x2.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F20x2.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F20x2.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F20x2.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F20x2.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F20x2.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F20x2.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F20x2.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x2.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x2.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x2.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x2.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x2.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x2.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x2.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x2.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x2.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F20x2.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F20x2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F20x2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F20x2.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F20x2.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F20x2.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F20x2.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F20x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F20x2.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F20x2.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F20x2.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F20x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F20x2.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F20x2 device, there are 8 + 2 = 10 pins total = GPIO_MSP430F20x2.DevicePin_t[8][2] [
            [
                {
                    pinName: "P1.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.TACLK/INCLK",
                            "ACLK",
                            "A0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.CCI0A",
                            "Timer_A2.TA0",
                            "A1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.CCI1A",
                            "Timer_A2.TA1",
                            "A2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "ADC10CLK",
                            "A3/VREF-/VeREF-"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "SMCLK",
                            "A4/VREF+/VeREF+"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.TA0",
                            "SCLK",
                            "A5"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.CCI1B",
                            "Timer_A2.TA1",
                            "SDO/SCL",
                            "A6"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "DVss",
                            "SDI/SDA",
                            "A7"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ],
            [
                {
                    pinName: "P2.0",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.1",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.2",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.3",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.4",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.5",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XIN",
                            "Timer_A2.TA1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XOUT"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ]
        ];
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F20x2.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F20x2.create// Create an instance-object(USI.Instance usi, ADC10.Instance adc10, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F20x2.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.Bit0_t
    const GPIO_MSP430F20x2.BIT0_OFF;
    const GPIO_MSP430F20x2.BIT0;
enum GPIO_MSP430F20x2.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.Bit1_t
    const GPIO_MSP430F20x2.BIT1_OFF;
    const GPIO_MSP430F20x2.BIT1;
enum GPIO_MSP430F20x2.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.Bit2_t
    const GPIO_MSP430F20x2.BIT2_OFF;
    const GPIO_MSP430F20x2.BIT2;
enum GPIO_MSP430F20x2.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.Bit3_t
    const GPIO_MSP430F20x2.BIT3_OFF;
    const GPIO_MSP430F20x2.BIT3;
enum GPIO_MSP430F20x2.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.Bit4_t
    const GPIO_MSP430F20x2.BIT4_OFF;
    const GPIO_MSP430F20x2.BIT4;
enum GPIO_MSP430F20x2.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.Bit5_t
    const GPIO_MSP430F20x2.BIT5_OFF;
    const GPIO_MSP430F20x2.BIT5;
enum GPIO_MSP430F20x2.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.Bit6_t
    const GPIO_MSP430F20x2.BIT6_OFF;
    const GPIO_MSP430F20x2.BIT6;
enum GPIO_MSP430F20x2.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.Bit7_t
    const GPIO_MSP430F20x2.BIT7_OFF;
    const GPIO_MSP430F20x2.BIT7;
enum GPIO_MSP430F20x2.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.InterruptEnable_t
    const GPIO_MSP430F20x2.IE_OFF;
    // Disabled
    const GPIO_MSP430F20x2.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F20x2.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F20x2.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.OutputState_t
    const GPIO_MSP430F20x2.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F20x2.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F20x2.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F20x2.ResEnable_t
    const GPIO_MSP430F20x2.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F20x2.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F20x2.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F20x2.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F20x2.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F20x2.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F20x2.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F20x2.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F20x2.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F20x2.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F20x2.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F20x2.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F20x2.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F20x2.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F20x2.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F20x2.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F20x2.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F20x2.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F20x2.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x2.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F20x2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F20x2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F20x2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F20x2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F20x2.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F20x2.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F20x2.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F20x2.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F20x2.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F20x2.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F20x2.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F20x2.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F20x2.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F20x2.DevicePin_t[8][2] [
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F20x2 device, there are 8 + 2 = 10 pins total
        [
            {
                pinName: "P1.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.TACLK/INCLK",
                        "ACLK",
                        "A0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.CCI0A",
                        "Timer_A2.TA0",
                        "A1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.CCI1A",
                        "Timer_A2.TA1",
                        "A2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "ADC10CLK",
                        "A3/VREF-/VeREF-"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "SMCLK",
                        "A4/VREF+/VeREF+"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.TA0",
                        "SCLK",
                        "A5"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.CCI1B",
                        "Timer_A2.TA1",
                        "SDO/SCL",
                        "A6"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "DVss",
                        "SDI/SDA",
                        "A7"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ],
        [
            {
                pinName: "P2.0",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.1",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.2",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.3",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.4",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.5",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XIN",
                        "Timer_A2.TA1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XOUT"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ]
    ];
    params.forceSetDefaultRegister = GPIO_MSP430F20x2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F20x2.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P1DIR = GPIO_MSP430F20x2.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P1OUT = GPIO_MSP430F20x2.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P1REN = GPIO_MSP430F20x2.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P1SEL = GPIO_MSP430F20x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P2DIR = GPIO_MSP430F20x2.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P2OUT = GPIO_MSP430F20x2.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P2REN = GPIO_MSP430F20x2.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P2SEL = GPIO_MSP430F20x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430F20x2.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x2.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.devicePinSetting = GPIO_MSP430F20x2.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430F20x2.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F20x2 device, there are 8 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
const params.devicePins = GPIO_MSP430F20x2.DevicePin_t[8][2] [
    [
        {
            pinName: "P1.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.TACLK/INCLK",
                    "ACLK",
                    "A0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.CCI0A",
                    "Timer_A2.TA0",
                    "A1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.CCI1A",
                    "Timer_A2.TA1",
                    "A2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "ADC10CLK",
                    "A3/VREF-/VeREF-"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "SMCLK",
                    "A4/VREF+/VeREF+"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.TA0",
                    "SCLK",
                    "A5"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.CCI1B",
                    "Timer_A2.TA1",
                    "SDO/SCL",
                    "A6"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "DVss",
                    "SDI/SDA",
                    "A7"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ],
    [
        {
            pinName: "P2.0",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.1",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.2",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.3",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.4",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.5",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XIN",
                    "Timer_A2.TA1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XOUT"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ]
];
config GPIO_MSP430F20x2.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F20x2.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430F20x2.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F20x2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F20x2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x2.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F20x2.create(USI.Instance usi, ADC10.Instance adc10, params);
// Create an instance-object
GPIO_MSP430F20x2.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F20x2.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F20x2.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F20x2.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F20x2.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F20x2.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:15 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x2

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.communication.USI as USI;
    13    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    14
    15    /*!
    16     *  ======== GPIO for MSP430F20x2 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430F20x2 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral.
    23         */
    24        create(USI.Instance usi, ADC10.Instance adc10);
    25
    26    instance:
    27        /*! @_nodoc */
    28        config USI.Instance usi;
    29
    30        /*! @_nodoc */
    31        config ADC10.Instance adc10;
    32
    33       /*! Define an array to describe all device pins. The 1st dimension
    34        *  denotes the port, the second the pin on that port. On an
    35        *  MSP430F20x2 device, there are 8 + 2 = 10 pins total.
    36        */
    37
    38        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    39         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    40        readonly config DevicePin_t devicePins[2][8] =
    41        [
    42            [
    43                {
    44                    pinName : "P1.0",
    45                    pinFunction : {
    46                        functionName : [
    47                            "GPIO Input",
    48                            "GPIO Output",
    49                            "Timer_A2.TACLK/INCLK",
    50                            "ACLK",
    51                            "A0"
    52                        ],
    53                        functionConfig : [
    54                            [
    55                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    56                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
    57                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
    58                            ],
    59                            [
    60                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    61                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
    62                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
    63                            ],
    64                            [
    65                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    66                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
    67                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
    68                            ],
    69                            [
    70                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    71                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
    72                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
    73                            ],
    74                            [
    75                                { register : "ADC10AE0", bitSetMask : 0x01, bitClearMask : 0x00 }
    76                            ]
    77                        ]
    78                    }
    79                },
    80                {
    81                    pinName : "P1.1",
    82                    pinFunction : {
    83                        functionName : [
    84                            "GPIO Input",
    85                            "GPIO Output",
    86                            "Timer_A2.CCI0A",
    87                            "Timer_A2.TA0",
    88                            "A1"
    89                        ],
    90                        functionConfig : [
    91                            [
    92                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    93                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
    94                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
    95                            ],
    96                            [
    97                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
    98                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
    99                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   100                            ],
   101                            [
   102                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   103                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   104                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   105                            ],
   106                            [
   107                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   108                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   109                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   110                            ],
   111                            [
   112                                { register : "ADC10AE0", bitSetMask : 0x02, bitClearMask : 0x00 }
   113                            ]
   114                        ]
   115                    }
   116                },
   117                {
   118                    pinName : "P1.2",
   119                    pinFunction : {
   120                        functionName : [
   121                            "GPIO Input",
   122                            "GPIO Output",
   123                            "Timer_A2.CCI1A",
   124                            "Timer_A2.TA1",
   125                            "A2"
   126                        ],
   127                        functionConfig : [
   128                            [
   129                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   130                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   131                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   132                            ],
   133                            [
   134                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   135                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   136                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   137                            ],
   138                            [
   139                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   140                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   141                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   142                            ],
   143                            [
   144                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   145                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   146                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   147                            ],
   148                            [
   149                                { register : "ADC10AE0", bitSetMask : 0x04, bitClearMask : 0x00 }
   150                            ]
   151                        ]
   152                    }
   153                },
   154                {
   155                    pinName : "P1.3",
   156                    pinFunction : {
   157                        functionName : [
   158                            "GPIO Input",
   159                            "GPIO Output",
   160                            "ADC10CLK",
   161                            "A3/VREF-/VeREF-"
   162                        ],
   163                        functionConfig : [
   164                            [
   165                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   166                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   167                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   168                            ],
   169                            [
   170                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   171                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   172                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   173                            ],
   174                            [
   175                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   176                                { register : "P1SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   177                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   178                            ],
   179                            [
   180                                { register : "ADC10AE0", bitSetMask : 0x08, bitClearMask : 0x00 }
   181                            ]
   182                        ]
   183                    }
   184                },
   185                {
   186                    pinName : "P1.4",
   187                    pinFunction : {
   188                        functionName : [
   189                            "GPIO Input",
   190                            "GPIO Output",
   191                            "SMCLK",
   192                            "A4/VREF+/VeREF+"
   193                        ],
   194                        functionConfig : [
   195                            [
   196                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   197                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   198                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   199                            ],
   200                            [
   201                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   202                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   203                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   204                            ],
   205                            [
   206                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   207                                { register : "P1SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   208                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   209                            ],
   210                            [
   211                                { register : "ADC10AE0", bitSetMask : 0x10, bitClearMask : 0x00 }
   212                            ]
   213                        ]
   214                    }
   215                },
   216                {
   217                    pinName : "P1.5",
   218                    pinFunction : {
   219                        functionName : [
   220                            "GPIO Input",
   221                            "GPIO Output",
   222                            "Timer_A2.TA0",
   223                            "SCLK",
   224                            "A5"
   225                        ],
   226                        functionConfig : [
   227                            [
   228                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   229                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   230                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x20 },
   231                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   232                            ],
   233                            [
   234                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   235                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   236                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x20 },
   237                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   238                            ],
   239                            [
   240                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   241                                { register : "P1SEL", bitSetMask : 0x20, bitClearMask : 0x00 },
   242                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x20 },
   243                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   244                            ],
   245                            [
   246                                { register : "USICTL0", bitSetMask : 0x20, bitClearMask : 0x00 },
   247                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   248                            ],
   249                            [
   250                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x20 },
   251                                { register : "ADC10AE0", bitSetMask : 0x20, bitClearMask : 0x00 }
   252                            ]
   253                        ]
   254                    }
   255                },
   256                {
   257                    pinName : "P1.6",
   258                    pinFunction : {
   259                        functionName : [
   260                            "GPIO Input",
   261                            "GPIO Output",
   262                            "Timer_A2.CCI1B",
   263                            "Timer_A2.TA1",
   264                            "SDO/SCL",
   265                            "A6"
   266                        ],
   267                        functionConfig : [
   268                            [
   269                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   270                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   271                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   272                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   273                            ],
   274                            [
   275                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   276                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   277                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   278                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   279                            ],
   280                            [
   281                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   282                                { register : "P1SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   283                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   284                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   285                            ],
   286                            [
   287                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   288                                { register : "P1SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   289                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   290                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   291                            ],
   292                            [
   293                                { register : "USICTL0", bitSetMask : 0x40, bitClearMask : 0x00 },
   294                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   295                            ],
   296                            [
   297                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   298                                { register : "ADC10AE0", bitSetMask : 0x40, bitClearMask : 0x00 }
   299                            ]
   300                        ]
   301                    }
   302                },
   303                {
   304                    pinName : "P1.7",
   305                    pinFunction : {
   306                        functionName : [
   307                            "GPIO Input",
   308                            "GPIO Output",
   309                            "DVss",
   310                            "SDI/SDA",
   311                            "A7"
   312                        ],
   313                        functionConfig : [
   314                            [
   315                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   316                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   317                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x80 },
   318                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   319                            ],
   320                            [
   321                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   322                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   323                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x80 },
   324                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   325                            ],
   326                            [
   327                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   328                                { register : "P1SEL", bitSetMask : 0x80, bitClearMask : 0x00 },
   329                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x80 },
   330                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   331                            ],
   332                            [
   333                                { register : "USICTL0", bitSetMask : 0x80, bitClearMask : 0x00 },
   334                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   335                            ],
   336                            [
   337                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x80 },
   338                                { register : "ADC10AE0", bitSetMask : 0x80, bitClearMask : 0x00 }
   339                            ]
   340                        ]
   341                    }
   342                }
   343            ],
   344            [
   345                {
   346                    pinName : "P2.0",
   347                    pinFunction : {
   348                        functionName : [
   349                            ""
   350                        ],
   351                        functionConfig : [
   352                            [
   353
   354                            ]
   355                        ]
   356                    }
   357                },
   358                {
   359                    pinName : "P2.1",
   360                    pinFunction : {
   361                        functionName : [
   362                            ""
   363                        ],
   364                        functionConfig : [
   365                            [
   366
   367                            ]
   368                        ]
   369                    }
   370                },
   371                {
   372                    pinName : "P2.2",
   373                    pinFunction : {
   374                        functionName : [
   375                            ""
   376                        ],
   377                        functionConfig : [
   378                            [
   379
   380                            ]
   381                        ]
   382                    }
   383                },
   384                {
   385                    pinName : "P2.3",
   386                    pinFunction : {
   387                        functionName : [
   388                            ""
   389                        ],
   390                        functionConfig : [
   391                            [
   392
   393                            ]
   394                        ]
   395                    }
   396                },
   397                {
   398                    pinName : "P2.4",
   399                    pinFunction : {
   400                        functionName : [
   401                            ""
   402                        ],
   403                        functionConfig : [
   404                            [
   405
   406                            ]
   407                        ]
   408                    }
   409                },
   410                {
   411                    pinName : "P2.5",
   412                    pinFunction : {
   413                        functionName : [
   414                            ""
   415                        ],
   416                        functionConfig : [
   417                            [
   418
   419                            ]
   420                        ]
   421                    }
   422                },
   423                {
   424                    pinName : "P2.6",
   425                    pinFunction : {
   426                        functionName : [
   427                            "GPIO Input",
   428                            "GPIO Output",
   429                            "XIN",
   430                            "Timer_A2.TA1"
   431                        ],
   432                        functionConfig : [
   433                            [
   434                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   435                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   436                            ],
   437                            [
   438                                { register : "P2DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   439                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   440                            ],
   441                            [
   442                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   443                                { register : "P2SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   444                            ],
   445                            [
   446                                { register : "P2DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   447                                { register : "P2SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   448                            ]
   449                        ]
   450                    }
   451                },
   452                {
   453                    pinName : "P2.7",
   454                    pinFunction : {
   455                        functionName : [
   456                            "GPIO Input",
   457                            "GPIO Output",
   458                            "XOUT"
   459                        ],
   460                        functionConfig : [
   461                            [
   462                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   463                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   464                            ],
   465                            [
   466                                { register : "P2DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   467                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   468                            ],
   469                            [
   470                                { register : "P2SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   471                            ]
   472                        ]
   473                    }
   474                }
   475            ]
   476        ];
   477
   478        /*! Implementation of Device Pin Functional Configuration */
   479        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
   480
   481        /*! Determine if each Register needs to be forced set or not */
   482        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   483        [
   484            { register : "P1OUT" , regForceSet : true  },
   485            { register : "P1SEL" , regForceSet : false },
   486            { register : "P1DIR" , regForceSet : true  },
   487            { register : "P1REN" , regForceSet : false },
   488            { register : "P1IES" , regForceSet : true },
   489            { register : "P1IFG" , regForceSet : true },
   490            { register : "P1IE"  , regForceSet : false },
   491            { register : "P2OUT" , regForceSet : true  },
   492            { register : "P2SEL" , regForceSet : false },
   493            { register : "P2DIR" , regForceSet : true  },
   494            { register : "P2REN" , regForceSet : false },
   495            { register : "P2IES" , regForceSet : true },
   496            { register : "P2IFG" , regForceSet : true },
   497            { register : "P2IE"  , regForceSet : false }
   498        ];
   499
   500        /*
   501         *  GPIO Digital I/O Registers
   502         *
   503         *  One GIPO instance defines the configuration of an entire,
   504         *  8-bit wide digital I/O port.
   505         */
   506
   507        /*! Port 1 Output Register */
   508        config GpioBits8PxOut_t P1OUT = {
   509            Bit0        : BIT0_OFF,
   510            Bit1        : BIT1_OFF,
   511            Bit2        : BIT2_OFF,
   512            Bit3        : BIT3_OFF,
   513            Bit4        : BIT4_OFF,
   514            Bit5        : BIT5_OFF,
   515            Bit6        : BIT6_OFF,
   516            Bit7        : BIT7_OFF
   517        };
   518
   519        /*! Port 1 Port Select Register */
   520        config GpioBits8PxSel_t P1SEL = {
   521            Bit0        : BIT0_OFF,
   522            Bit1        : BIT1_OFF,
   523            Bit2        : BIT2_OFF,
   524            Bit3        : BIT3_OFF,
   525            Bit4        : BIT4_OFF,
   526            Bit5        : BIT5_OFF,
   527            Bit6        : BIT6_OFF,
   528            Bit7        : BIT7_OFF
   529        };
   530
   531        /*! Port 1 Direction Register */
   532        config GpioBits8PxDir_t P1DIR = {
   533            Bit0        : BIT0_OFF,
   534            Bit1        : BIT1_OFF,
   535            Bit2        : BIT2_OFF,
   536            Bit3        : BIT3_OFF,
   537            Bit4        : BIT4_OFF,
   538            Bit5        : BIT5_OFF,
   539            Bit6        : BIT6_OFF,
   540            Bit7        : BIT7_OFF
   541        };
   542
   543        /*! Port 1 Resistor Enable Register */
   544        config GpioBits8PxRen_t P1REN = {
   545            Bit0        : BIT0_OFF,
   546            Bit1        : BIT1_OFF,
   547            Bit2        : BIT2_OFF,
   548            Bit3        : BIT3_OFF,
   549            Bit4        : BIT4_OFF,
   550            Bit5        : BIT5_OFF,
   551            Bit6        : BIT6_OFF,
   552            Bit7        : BIT7_OFF
   553        };
   554
   555        /*! Port 2 Output Register */
   556        config GpioBits8PxOut_t P2OUT = {
   557            Bit0        : BIT0_OFF,
   558            Bit1        : BIT1_OFF,
   559            Bit2        : BIT2_OFF,
   560            Bit3        : BIT3_OFF,
   561            Bit4        : BIT4_OFF,
   562            Bit5        : BIT5_OFF,
   563            Bit6        : BIT6_OFF,
   564            Bit7        : BIT7_OFF
   565        };
   566
   567        /*! Port 2 Port Select Register */
   568        config GpioBits8PxSel_t P2SEL = {
   569            Bit0        : BIT0_OFF,
   570            Bit1        : BIT1_OFF,
   571            Bit2        : BIT2_OFF,
   572            Bit3        : BIT3_OFF,
   573            Bit4        : BIT4_OFF,
   574            Bit5        : BIT5_OFF,
   575            Bit6        : BIT6,         /* POR default for all 2xx devices */
   576            Bit7        : BIT7          /* POR default for all 2xx devices */
   577        };
   578
   579        /*! Port 2 Direction Register */
   580        config GpioBits8PxDir_t P2DIR = {
   581            Bit0        : BIT0_OFF,
   582            Bit1        : BIT1_OFF,
   583            Bit2        : BIT2_OFF,
   584            Bit3        : BIT3_OFF,
   585            Bit4        : BIT4_OFF,
   586            Bit5        : BIT5_OFF,
   587            Bit6        : BIT6_OFF,
   588            Bit7        : BIT7_OFF
   589        };
   590
   591        /*! Port 2 Resistor Enable Register */
   592        config GpioBits8PxRen_t P2REN = {
   593            Bit0        : BIT0_OFF,
   594            Bit1        : BIT1_OFF,
   595            Bit2        : BIT2_OFF,
   596            Bit3        : BIT3_OFF,
   597            Bit4        : BIT4_OFF,
   598            Bit5        : BIT5_OFF,
   599            Bit6        : BIT6_OFF,
   600            Bit7        : BIT7_OFF
   601        };
   602    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x3

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x3
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F20x3.xdc
var GPIO_MSP430F20x3 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x3');
module-wide constants & types
    values of type GPIO_MSP430F20x3.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F20x3.BIT0_OFF;
        const GPIO_MSP430F20x3.BIT0;
    values of type GPIO_MSP430F20x3.Bit1_t//
        const GPIO_MSP430F20x3.BIT1_OFF;
        const GPIO_MSP430F20x3.BIT1;
    values of type GPIO_MSP430F20x3.Bit2_t//
        const GPIO_MSP430F20x3.BIT2_OFF;
        const GPIO_MSP430F20x3.BIT2;
    values of type GPIO_MSP430F20x3.Bit3_t//
        const GPIO_MSP430F20x3.BIT3_OFF;
        const GPIO_MSP430F20x3.BIT3;
    values of type GPIO_MSP430F20x3.Bit4_t//
        const GPIO_MSP430F20x3.BIT4_OFF;
        const GPIO_MSP430F20x3.BIT4;
    values of type GPIO_MSP430F20x3.Bit5_t//
        const GPIO_MSP430F20x3.BIT5_OFF;
        const GPIO_MSP430F20x3.BIT5;
    values of type GPIO_MSP430F20x3.Bit6_t//
        const GPIO_MSP430F20x3.BIT6_OFF;
        const GPIO_MSP430F20x3.BIT6;
    values of type GPIO_MSP430F20x3.Bit7_t//
        const GPIO_MSP430F20x3.BIT7_OFF;
        const GPIO_MSP430F20x3.BIT7;
    values of type GPIO_MSP430F20x3.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F20x3.IE_OFF// Disabled;
        const GPIO_MSP430F20x3.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F20x3.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F20x3.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F20x3.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F20x3.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F20x3.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F20x3.PUDRE_OFF// Disabled;
        const GPIO_MSP430F20x3.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F20x3.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F20x3.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F20x3.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F20x3.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F20x3.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F20x3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F20x3.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x3.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x3.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x3.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x3.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x3.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x3.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x3.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x3.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F20x3.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F20x3.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F20x3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F20x3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F20x3.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F20x3.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F20x3.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F20x3.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F20x3.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F20x3.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F20x3.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F20x3.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F20x3.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F20x3.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F20x3 device, there are 8 + 2 = 10 pins total = GPIO_MSP430F20x3.DevicePin_t[8][2] [
            [
                {
                    pinName: "P1.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.TACLK/INCLK",
                            "ACLK",
                            "A0+"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.CCI0A",
                            "Timer_A2.TA0",
                            "A0-/A4+"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.CCI1A",
                            "Timer_A2.TA1",
                            "A1+/A4-"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "VREF",
                            "A1-"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "SMCLK",
                            "A2+"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.TA0",
                            "SCLK",
                            "A2-"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A2.CCI1B",
                            "Timer_A2.TA1",
                            "SDO/SCL",
                            "A3+"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "DVss",
                            "SDI/SDA",
                            "A3-"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "USICTL0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "SD16AE",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ],
            [
                {
                    pinName: "P2.0",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.1",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.2",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.3",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.4",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.5",
                    pinFunction: {
                        functionName: [
                            ""
                        ],
                        functionConfig: [
                            [ ]
                        ]
                    }
                },
                {
                    pinName: "P2.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XIN",
                            "Timer_A2.TA1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XOUT"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ]
        ];
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F20x3.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F20x3.create// Create an instance-object(USI.Instance usi, SD16_A.Instance sd16_A, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F20x3.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.Bit0_t
    const GPIO_MSP430F20x3.BIT0_OFF;
    const GPIO_MSP430F20x3.BIT0;
enum GPIO_MSP430F20x3.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.Bit1_t
    const GPIO_MSP430F20x3.BIT1_OFF;
    const GPIO_MSP430F20x3.BIT1;
enum GPIO_MSP430F20x3.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.Bit2_t
    const GPIO_MSP430F20x3.BIT2_OFF;
    const GPIO_MSP430F20x3.BIT2;
enum GPIO_MSP430F20x3.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.Bit3_t
    const GPIO_MSP430F20x3.BIT3_OFF;
    const GPIO_MSP430F20x3.BIT3;
enum GPIO_MSP430F20x3.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.Bit4_t
    const GPIO_MSP430F20x3.BIT4_OFF;
    const GPIO_MSP430F20x3.BIT4;
enum GPIO_MSP430F20x3.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.Bit5_t
    const GPIO_MSP430F20x3.BIT5_OFF;
    const GPIO_MSP430F20x3.BIT5;
enum GPIO_MSP430F20x3.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.Bit6_t
    const GPIO_MSP430F20x3.BIT6_OFF;
    const GPIO_MSP430F20x3.BIT6;
enum GPIO_MSP430F20x3.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.Bit7_t
    const GPIO_MSP430F20x3.BIT7_OFF;
    const GPIO_MSP430F20x3.BIT7;
enum GPIO_MSP430F20x3.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.InterruptEnable_t
    const GPIO_MSP430F20x3.IE_OFF;
    // Disabled
    const GPIO_MSP430F20x3.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F20x3.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F20x3.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.OutputState_t
    const GPIO_MSP430F20x3.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F20x3.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F20x3.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F20x3.ResEnable_t
    const GPIO_MSP430F20x3.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F20x3.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F20x3.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F20x3.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F20x3.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F20x3.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F20x3.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F20x3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F20x3.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F20x3.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F20x3.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F20x3.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F20x3.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F20x3.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F20x3.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F20x3.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F20x3.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F20x3.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F20x3.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F20x3.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F20x3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F20x3.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F20x3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F20x3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F20x3.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F20x3.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F20x3.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F20x3.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F20x3.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F20x3.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F20x3.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F20x3.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F20x3.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F20x3.DevicePin_t[8][2] [
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F20x3 device, there are 8 + 2 = 10 pins total
        [
            {
                pinName: "P1.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.TACLK/INCLK",
                        "ACLK",
                        "A0+"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "SD16AE",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.CCI0A",
                        "Timer_A2.TA0",
                        "A0-/A4+"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "SD16AE",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.CCI1A",
                        "Timer_A2.TA1",
                        "A1+/A4-"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "SD16AE",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "VREF",
                        "A1-"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "SD16AE",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "SMCLK",
                        "A2+"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "SD16AE",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.TA0",
                        "SCLK",
                        "A2-"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A2.CCI1B",
                        "Timer_A2.TA1",
                        "SDO/SCL",
                        "A3+"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "DVss",
                        "SDI/SDA",
                        "A3-"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "USICTL0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "SD16AE",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ],
        [
            {
                pinName: "P2.0",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.1",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.2",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.3",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.4",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.5",
                pinFunction: {
                    functionName: [
                        ""
                    ],
                    functionConfig: [
                        [ ]
                    ]
                }
            },
            {
                pinName: "P2.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XIN",
                        "Timer_A2.TA1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XOUT"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ]
    ];
    params.forceSetDefaultRegister = GPIO_MSP430F20x3.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F20x3.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P1DIR = GPIO_MSP430F20x3.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P1OUT = GPIO_MSP430F20x3.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P1REN = GPIO_MSP430F20x3.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P1SEL = GPIO_MSP430F20x3.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P2DIR = GPIO_MSP430F20x3.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P2OUT = GPIO_MSP430F20x3.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P2REN = GPIO_MSP430F20x3.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P2SEL = GPIO_MSP430F20x3.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430F20x3.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F20x3.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.devicePinSetting = GPIO_MSP430F20x3.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430F20x3.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F20x3 device, there are 8 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
const params.devicePins = GPIO_MSP430F20x3.DevicePin_t[8][2] [
    [
        {
            pinName: "P1.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.TACLK/INCLK",
                    "ACLK",
                    "A0+"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "SD16AE",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.CCI0A",
                    "Timer_A2.TA0",
                    "A0-/A4+"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "SD16AE",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.CCI1A",
                    "Timer_A2.TA1",
                    "A1+/A4-"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "SD16AE",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "VREF",
                    "A1-"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "SD16AE",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "SMCLK",
                    "A2+"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "SD16AE",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.TA0",
                    "SCLK",
                    "A2-"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A2.CCI1B",
                    "Timer_A2.TA1",
                    "SDO/SCL",
                    "A3+"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "DVss",
                    "SDI/SDA",
                    "A3-"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "USICTL0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "SD16AE",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ],
    [
        {
            pinName: "P2.0",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.1",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.2",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.3",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.4",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.5",
            pinFunction: {
                functionName: [
                    ""
                ],
                functionConfig: [
                    [ ]
                ]
            }
        },
        {
            pinName: "P2.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XIN",
                    "Timer_A2.TA1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XOUT"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ]
];
config GPIO_MSP430F20x3.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F20x3.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430F20x3.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F20x3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F20x3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F20x3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F20x3.create(USI.Instance usi, SD16_A.Instance sd16_A, params);
// Create an instance-object
GPIO_MSP430F20x3.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F20x3.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F20x3.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F20x3.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F20x3.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F20x3.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:16 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F20x3

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.communication.USI as USI;
    13    import ti.catalog.msp430.peripherals.adc.SD16_A as SD16_A;
    14
    15    /*!
    16     *  ======== GPIO for MSP430F20x3 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430F20x3 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral.
    23         */
    24        create(USI.Instance usi, SD16_A.Instance sd16_A);
    25
    26    instance:
    27        /*! @_nodoc */
    28        config USI.Instance usi;
    29
    30        /*! @_nodoc */
    31        config SD16_A.Instance sd16_A;
    32
    33       /*! Define an array to describe all device pins. The 1st dimension
    34        *  denotes the port, the second the pin on that port. On an
    35        *  MSP430F20x3 device, there are 8 + 2 = 10 pins total.
    36        */
    37
    38        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    39         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    40        readonly config DevicePin_t devicePins[2][8] =
    41        [
    42            [
    43                {
    44                    pinName : "P1.0",
    45                    pinFunction : {
    46                        functionName : [
    47                            "GPIO Input",
    48                            "GPIO Output",
    49                            "Timer_A2.TACLK/INCLK",
    50                            "ACLK",
    51                            "A0+"
    52                        ],
    53                        functionConfig : [
    54                            [
    55                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    56                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
    57                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x01 }
    58                            ],
    59                            [
    60                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    61                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
    62                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x01 }
    63                            ],
    64                            [
    65                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    66                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
    67                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x01 }
    68                            ],
    69                            [
    70                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    71                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
    72                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x01 }
    73                            ],
    74                            [
    75                                { register : "SD16AE", bitSetMask : 0x01, bitClearMask : 0x00 }
    76                            ]
    77                        ]
    78                    }
    79                },
    80                {
    81                    pinName : "P1.1",
    82                    pinFunction : {
    83                        functionName : [
    84                            "GPIO Input",
    85                            "GPIO Output",
    86                            "Timer_A2.CCI0A",
    87                            "Timer_A2.TA0",
    88                            "A0-/A4+"
    89                        ],
    90                        functionConfig : [
    91                            [
    92                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    93                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
    94                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x02 }
    95                            ],
    96                            [
    97                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
    98                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
    99                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x02 }
   100                            ],
   101                            [
   102                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   103                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   104                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x02 }
   105                            ],
   106                            [
   107                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   108                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   109                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x02 }
   110                            ],
   111                            [
   112                                { register : "SD16AE", bitSetMask : 0x02, bitClearMask : 0x00 }
   113                            ]
   114                        ]
   115                    }
   116                },
   117                {
   118                    pinName : "P1.2",
   119                    pinFunction : {
   120                        functionName : [
   121                            "GPIO Input",
   122                            "GPIO Output",
   123                            "Timer_A2.CCI1A",
   124                            "Timer_A2.TA1",
   125                            "A1+/A4-"
   126                        ],
   127                        functionConfig : [
   128                            [
   129                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   130                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   131                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x04 }
   132                            ],
   133                            [
   134                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   135                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   136                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x04 }
   137                            ],
   138                            [
   139                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   140                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   141                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x04 }
   142                            ],
   143                            [
   144                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   145                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   146                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x04 }
   147                            ],
   148                            [
   149                                { register : "SD16AE", bitSetMask : 0x04, bitClearMask : 0x00 }
   150                            ]
   151                        ]
   152                    }
   153                },
   154                {
   155                    pinName : "P1.3",
   156                    pinFunction : {
   157                        functionName : [
   158                            "GPIO Input",
   159                            "GPIO Output",
   160                            "VREF",
   161                            "A1-"
   162                        ],
   163                        functionConfig : [
   164                            [
   165                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   166                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   167                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x08 }
   168                            ],
   169                            [
   170                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   171                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   172                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x08 }
   173                            ],
   174                            [
   175                                { register : "P1SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   176                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x08 }
   177                            ],
   178                            [
   179                                { register : "SD16AE", bitSetMask : 0x08, bitClearMask : 0x00 }
   180                            ]
   181                        ]
   182                    }
   183                },
   184                {
   185                    pinName : "P1.4",
   186                    pinFunction : {
   187                        functionName : [
   188                            "GPIO Input",
   189                            "GPIO Output",
   190                            "SMCLK",
   191                            "A2+"
   192                        ],
   193                        functionConfig : [
   194                            [
   195                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   196                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   197                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x10 }
   198                            ],
   199                            [
   200                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   201                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   202                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x10 }
   203                            ],
   204                            [
   205                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   206                                { register : "P1SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   207                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x10 }
   208                            ],
   209                            [
   210                                { register : "SD16AE", bitSetMask : 0x10, bitClearMask : 0x00 }
   211                            ]
   212                        ]
   213                    }
   214                },
   215                {
   216                    pinName : "P1.5",
   217                    pinFunction : {
   218                        functionName : [
   219                            "GPIO Input",
   220                            "GPIO Output",
   221                            "Timer_A2.TA0",
   222                            "SCLK",
   223                            "A2-"
   224                        ],
   225                        functionConfig : [
   226                            [
   227                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   228                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   229                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x20 },
   230                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x20 }
   231                            ],
   232                            [
   233                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   234                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   235                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x20 },
   236                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x20 }
   237                            ],
   238                            [
   239                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   240                                { register : "P1SEL", bitSetMask : 0x20, bitClearMask : 0x00 },
   241                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x20 },
   242                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x20 }
   243                            ],
   244                            [
   245                                { register : "USICTL0", bitSetMask : 0x20, bitClearMask : 0x00 },
   246                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x20 }
   247                            ],
   248                            [
   249                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x20 },
   250                                { register : "SD16AE", bitSetMask : 0x20, bitClearMask : 0x00 }
   251                            ]
   252                        ]
   253                    }
   254                },
   255                {
   256                    pinName : "P1.6",
   257                    pinFunction : {
   258                        functionName : [
   259                            "GPIO Input",
   260                            "GPIO Output",
   261                            "Timer_A2.CCI1B",
   262                            "Timer_A2.TA1",
   263                            "SDO/SCL",
   264                            "A3+"
   265                        ],
   266                        functionConfig : [
   267                            [
   268                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   269                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   270                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   271                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x40 }
   272                            ],
   273                            [
   274                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   275                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   276                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   277                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x40 }
   278                            ],
   279                            [
   280                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   281                                { register : "P1SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   282                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   283                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x40 }
   284                            ],
   285                            [
   286                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   287                                { register : "P1SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   288                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   289                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x40 }
   290                            ],
   291                            [
   292                                { register : "USICTL0", bitSetMask : 0x40, bitClearMask : 0x00 },
   293                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x40 }
   294                            ],
   295                            [
   296                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x40 },
   297                                { register : "SD16AE", bitSetMask : 0x40, bitClearMask : 0x00 }
   298                            ]
   299                        ]
   300                    }
   301                },
   302                {
   303                    pinName : "P1.7",
   304                    pinFunction : {
   305                        functionName : [
   306                            "GPIO Input",
   307                            "GPIO Output",
   308                            "DVss",
   309                            "SDI/SDA",
   310                            "A3-"
   311                        ],
   312                        functionConfig : [
   313                            [
   314                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   315                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   316                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x80 },
   317                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x80 }
   318                            ],
   319                            [
   320                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   321                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   322                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x80 },
   323                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x80 }
   324                            ],
   325                            [
   326                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   327                                { register : "P1SEL", bitSetMask : 0x80, bitClearMask : 0x00 },
   328                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x80 },
   329                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x80 }
   330                            ],
   331                            [
   332                                { register : "USICTL0", bitSetMask : 0x80, bitClearMask : 0x00 },
   333                                { register : "SD16AE", bitSetMask : 0x00, bitClearMask : 0x80 }
   334                            ],
   335                            [
   336                                { register : "USICTL0", bitSetMask : 0x00, bitClearMask : 0x80 },
   337                                { register : "SD16AE", bitSetMask : 0x80, bitClearMask : 0x00 }
   338                            ]
   339                        ]
   340                    }
   341                }
   342            ],
   343            [
   344                {
   345                    pinName : "P2.0",
   346                    pinFunction : {
   347                        functionName : [
   348                            ""
   349                        ],
   350                        functionConfig : [
   351                            [
   352
   353                            ]
   354                        ]
   355                    }
   356                },
   357                {
   358                    pinName : "P2.1",
   359                    pinFunction : {
   360                        functionName : [
   361                            ""
   362                        ],
   363                        functionConfig : [
   364                            [
   365
   366                            ]
   367                        ]
   368                    }
   369                },
   370                {
   371                    pinName : "P2.2",
   372                    pinFunction : {
   373                        functionName : [
   374                            ""
   375                        ],
   376                        functionConfig : [
   377                            [
   378
   379                            ]
   380                        ]
   381                    }
   382                },
   383                {
   384                    pinName : "P2.3",
   385                    pinFunction : {
   386                        functionName : [
   387                            ""
   388                        ],
   389                        functionConfig : [
   390                            [
   391
   392                            ]
   393                        ]
   394                    }
   395                },
   396                {
   397                    pinName : "P2.4",
   398                    pinFunction : {
   399                        functionName : [
   400                            ""
   401                        ],
   402                        functionConfig : [
   403                            [
   404
   405                            ]
   406                        ]
   407                    }
   408                },
   409                {
   410                    pinName : "P2.5",
   411                    pinFunction : {
   412                        functionName : [
   413                            ""
   414                        ],
   415                        functionConfig : [
   416                            [
   417
   418                            ]
   419                        ]
   420                    }
   421                },
   422                {
   423                    pinName : "P2.6",
   424                    pinFunction : {
   425                        functionName : [
   426                            "GPIO Input",
   427                            "GPIO Output",
   428                            "XIN",
   429                            "Timer_A2.TA1"
   430                        ],
   431                        functionConfig : [
   432                            [
   433                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   434                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   435                            ],
   436                            [
   437                                { register : "P2DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   438                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   439                            ],
   440                            [
   441                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   442                                { register : "P2SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   443                            ],
   444                            [
   445                                { register : "P2DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   446                                { register : "P2SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   447                            ]
   448                        ]
   449                    }
   450                },
   451                {
   452                    pinName : "P2.7",
   453                    pinFunction : {
   454                        functionName : [
   455                            "GPIO Input",
   456                            "GPIO Output",
   457                            "XOUT"
   458                        ],
   459                        functionConfig : [
   460                            [
   461                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   462                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   463                            ],
   464                            [
   465                                { register : "P2DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   466                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   467                            ],
   468                            [
   469                                { register : "P2SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   470                            ]
   471                        ]
   472                    }
   473                }
   474            ]
   475        ];
   476
   477        /*! Implementation of Device Pin Functional Configuration */
   478        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
   479
   480        /*! Determine if each Register needs to be forced set or not */
   481        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   482        [
   483            { register : "P1OUT" , regForceSet : true  },
   484            { register : "P1SEL" , regForceSet : false },
   485            { register : "P1DIR" , regForceSet : true  },
   486            { register : "P1REN" , regForceSet : false },
   487            { register : "P1IES" , regForceSet : true },
   488            { register : "P1IFG" , regForceSet : true },
   489            { register : "P1IE"  , regForceSet : false },
   490            { register : "P2OUT" , regForceSet : true  },
   491            { register : "P2SEL" , regForceSet : false },
   492            { register : "P2DIR" , regForceSet : true  },
   493            { register : "P2REN" , regForceSet : false },
   494            { register : "P2IES" , regForceSet : true },
   495            { register : "P2IFG" , regForceSet : true },
   496            { register : "P2IE"  , regForceSet : false }
   497        ];
   498
   499        /*
   500         *  GPIO Digital I/O Registers
   501         *
   502         *  One GIPO instance defines the configuration of an entire,
   503         *  8-bit wide digital I/O port.
   504         */
   505
   506        /*! Port 1 Output Register */
   507        config GpioBits8PxOut_t P1OUT = {
   508            Bit0        : BIT0_OFF,
   509            Bit1        : BIT1_OFF,
   510            Bit2        : BIT2_OFF,
   511            Bit3        : BIT3_OFF,
   512            Bit4        : BIT4_OFF,
   513            Bit5        : BIT5_OFF,
   514            Bit6        : BIT6_OFF,
   515            Bit7        : BIT7_OFF
   516        };
   517
   518        /*! Port 1 Port Select Register */
   519        config GpioBits8PxSel_t P1SEL = {
   520            Bit0        : BIT0_OFF,
   521            Bit1        : BIT1_OFF,
   522            Bit2        : BIT2_OFF,
   523            Bit3        : BIT3_OFF,
   524            Bit4        : BIT4_OFF,
   525            Bit5        : BIT5_OFF,
   526            Bit6        : BIT6_OFF,
   527            Bit7        : BIT7_OFF
   528        };
   529
   530        /*! Port 1 Direction Register */
   531        config GpioBits8PxDir_t P1DIR = {
   532            Bit0        : BIT0_OFF,
   533            Bit1        : BIT1_OFF,
   534            Bit2        : BIT2_OFF,
   535            Bit3        : BIT3_OFF,
   536            Bit4        : BIT4_OFF,
   537            Bit5        : BIT5_OFF,
   538            Bit6        : BIT6_OFF,
   539            Bit7        : BIT7_OFF
   540        };
   541
   542        /*! Port 1 Resistor Enable Register */
   543        config GpioBits8PxRen_t P1REN = {
   544            Bit0        : BIT0_OFF,
   545            Bit1        : BIT1_OFF,
   546            Bit2        : BIT2_OFF,
   547            Bit3        : BIT3_OFF,
   548            Bit4        : BIT4_OFF,
   549            Bit5        : BIT5_OFF,
   550            Bit6        : BIT6_OFF,
   551            Bit7        : BIT7_OFF
   552        };
   553
   554        /*! Port 2 Output Register */
   555        config GpioBits8PxOut_t P2OUT = {
   556            Bit0        : BIT0_OFF,
   557            Bit1        : BIT1_OFF,
   558            Bit2        : BIT2_OFF,
   559            Bit3        : BIT3_OFF,
   560            Bit4        : BIT4_OFF,
   561            Bit5        : BIT5_OFF,
   562            Bit6        : BIT6_OFF,
   563            Bit7        : BIT7_OFF
   564        };
   565
   566        /*! Port 2 Port Select Register */
   567        config GpioBits8PxSel_t P2SEL = {
   568            Bit0        : BIT0_OFF,
   569            Bit1        : BIT1_OFF,
   570            Bit2        : BIT2_OFF,
   571            Bit3        : BIT3_OFF,
   572            Bit4        : BIT4_OFF,
   573            Bit5        : BIT5_OFF,
   574            Bit6        : BIT6,         /* POR default for all 2xx devices */
   575            Bit7        : BIT7          /* POR default for all 2xx devices */
   576        };
   577
   578        /*! Port 2 Direction Register */
   579        config GpioBits8PxDir_t P2DIR = {
   580            Bit0        : BIT0_OFF,
   581            Bit1        : BIT1_OFF,
   582            Bit2        : BIT2_OFF,
   583            Bit3        : BIT3_OFF,
   584            Bit4        : BIT4_OFF,
   585            Bit5        : BIT5_OFF,
   586            Bit6        : BIT6_OFF,
   587            Bit7        : BIT7_OFF
   588        };
   589
   590        /*! Port 2 Resistor Enable Register */
   591        config GpioBits8PxRen_t P2REN = {
   592            Bit0        : BIT0_OFF,
   593            Bit1        : BIT1_OFF,
   594            Bit2        : BIT2_OFF,
   595            Bit3        : BIT3_OFF,
   596            Bit4        : BIT4_OFF,
   597            Bit5        : BIT5_OFF,
   598            Bit6        : BIT6_OFF,
   599            Bit7        : BIT7_OFF
   600        };
   601    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F21x1

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F21x1
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F21x1.xdc
var GPIO_MSP430F21x1 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F21x1');
module-wide constants & types
    values of type GPIO_MSP430F21x1.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F21x1.BIT0_OFF;
        const GPIO_MSP430F21x1.BIT0;
    values of type GPIO_MSP430F21x1.Bit1_t//
        const GPIO_MSP430F21x1.BIT1_OFF;
        const GPIO_MSP430F21x1.BIT1;
    values of type GPIO_MSP430F21x1.Bit2_t//
        const GPIO_MSP430F21x1.BIT2_OFF;
        const GPIO_MSP430F21x1.BIT2;
    values of type GPIO_MSP430F21x1.Bit3_t//
        const GPIO_MSP430F21x1.BIT3_OFF;
        const GPIO_MSP430F21x1.BIT3;
    values of type GPIO_MSP430F21x1.Bit4_t//
        const GPIO_MSP430F21x1.BIT4_OFF;
        const GPIO_MSP430F21x1.BIT4;
    values of type GPIO_MSP430F21x1.Bit5_t//
        const GPIO_MSP430F21x1.BIT5_OFF;
        const GPIO_MSP430F21x1.BIT5;
    values of type GPIO_MSP430F21x1.Bit6_t//
        const GPIO_MSP430F21x1.BIT6_OFF;
        const GPIO_MSP430F21x1.BIT6;
    values of type GPIO_MSP430F21x1.Bit7_t//
        const GPIO_MSP430F21x1.BIT7_OFF;
        const GPIO_MSP430F21x1.BIT7;
    values of type GPIO_MSP430F21x1.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F21x1.IE_OFF// Disabled;
        const GPIO_MSP430F21x1.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F21x1.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F21x1.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F21x1.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F21x1.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F21x1.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F21x1.PUDRE_OFF// Disabled;
        const GPIO_MSP430F21x1.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F21x1.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F21x1.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F21x1.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F21x1.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F21x1.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F21x1.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F21x1.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x1.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x1.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x1.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x1.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x1.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x1.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x1.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x1.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x1.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F21x1.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F21x1.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F21x1.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F21x1.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F21x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F21x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F21x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F21x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F21x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F21x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F21x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F21x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F21x1.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F21x1 device, there are 2 x 8 = 16 pins total = GPIO_MSP430F21x1.DevicePin_t[8][2] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F21x1.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F21x1.create// Create an instance-object(IComparator.Instance comparator, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F21x1.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.Bit0_t
    const GPIO_MSP430F21x1.BIT0_OFF;
    const GPIO_MSP430F21x1.BIT0;
enum GPIO_MSP430F21x1.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.Bit1_t
    const GPIO_MSP430F21x1.BIT1_OFF;
    const GPIO_MSP430F21x1.BIT1;
enum GPIO_MSP430F21x1.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.Bit2_t
    const GPIO_MSP430F21x1.BIT2_OFF;
    const GPIO_MSP430F21x1.BIT2;
enum GPIO_MSP430F21x1.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.Bit3_t
    const GPIO_MSP430F21x1.BIT3_OFF;
    const GPIO_MSP430F21x1.BIT3;
enum GPIO_MSP430F21x1.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.Bit4_t
    const GPIO_MSP430F21x1.BIT4_OFF;
    const GPIO_MSP430F21x1.BIT4;
enum GPIO_MSP430F21x1.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.Bit5_t
    const GPIO_MSP430F21x1.BIT5_OFF;
    const GPIO_MSP430F21x1.BIT5;
enum GPIO_MSP430F21x1.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.Bit6_t
    const GPIO_MSP430F21x1.BIT6_OFF;
    const GPIO_MSP430F21x1.BIT6;
enum GPIO_MSP430F21x1.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.Bit7_t
    const GPIO_MSP430F21x1.BIT7_OFF;
    const GPIO_MSP430F21x1.BIT7;
enum GPIO_MSP430F21x1.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.InterruptEnable_t
    const GPIO_MSP430F21x1.IE_OFF;
    // Disabled
    const GPIO_MSP430F21x1.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F21x1.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F21x1.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.OutputState_t
    const GPIO_MSP430F21x1.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F21x1.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F21x1.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F21x1.ResEnable_t
    const GPIO_MSP430F21x1.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F21x1.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F21x1.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F21x1.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F21x1.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F21x1.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F21x1.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F21x1.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F21x1.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F21x1.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F21x1.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F21x1.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F21x1.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F21x1.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F21x1.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F21x1.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F21x1.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F21x1.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F21x1.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x1.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F21x1.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F21x1.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F21x1.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F21x1.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F21x1.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F21x1.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F21x1.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F21x1.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F21x1.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F21x1.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F21x1.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F21x1.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F21x1.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F21x1.DevicePin_t[8][2] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F21x1 device, there are 2 x 8 = 16 pins total
    params.forceSetDefaultRegister = GPIO_MSP430F21x1.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F21x1.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P1DIR = GPIO_MSP430F21x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P1OUT = GPIO_MSP430F21x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P1REN = GPIO_MSP430F21x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P1SEL = GPIO_MSP430F21x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P2DIR = GPIO_MSP430F21x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P2OUT = GPIO_MSP430F21x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P2REN = GPIO_MSP430F21x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P2SEL = GPIO_MSP430F21x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430F21x1.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x1.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.devicePinSetting = GPIO_MSP430F21x1.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430F21x1.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F21x1 device, there are 2 x 8 = 16 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.devicePins = GPIO_MSP430F21x1.DevicePin_t[8][2] undefined;
config GPIO_MSP430F21x1.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F21x1.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430F21x1.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F21x1.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F21x1.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x1.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F21x1.create(IComparator.Instance comparator, params);
// Create an instance-object
GPIO_MSP430F21x1.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F21x1.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F21x1.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F21x1.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F21x1.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F21x1.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:16 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F21x1

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    13
    14    /*!
    15     *  ======== GPIO for MSP430F21x1 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430F21x1 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral. Use a customized
    22         *  init function so that we can get access to the ADC10
    23         *  instance.
    24         */
    25        create(Comparator.Instance comparator);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config Comparator.Instance comparator;
    30
    31       /*! Define an array to describe all device pins. The 1st dimension
    32        *  denotes the port, the second the pin on that port. On an
    33        *  MSP430F21x1 device, there are 2 x 8 = 16 pins total.
    34        */
    35
    36        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    37         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    38        /* TODO: For this device the config variable definition has been moved into the
    39         * corresponding XS file due to its size. This needs a more consistent solution. */
    40        config DevicePin_t devicePins[2][8];
    41
    42        /*! Implementation of Device Pin Functional Configuration */
    43        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
    44
    45        /*! Determine if each Register needs to be forced set or not */
    46        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    47        [
    48            { register : "P1OUT" , regForceSet : true  },
    49            { register : "P1SEL" , regForceSet : false },
    50            { register : "P1DIR" , regForceSet : true  },
    51            { register : "P1REN" , regForceSet : false },
    52            { register : "P1IES" , regForceSet : true },
    53            { register : "P1IFG" , regForceSet : true },
    54            { register : "P1IE"  , regForceSet : false },
    55            { register : "P2OUT" , regForceSet : true  },
    56            { register : "P2SEL" , regForceSet : false },
    57            { register : "P2DIR" , regForceSet : true  },
    58            { register : "P2REN" , regForceSet : false },
    59            { register : "P2IES" , regForceSet : true },
    60            { register : "P2IFG" , regForceSet : true },
    61            { register : "P2IE"  , regForceSet : false },
    62        ];
    63
    64        /*
    65         *  GPIO Digital I/O Registers
    66         *
    67         *  One GIPO instance defines the configuration of an entire,
    68         *  8-bit wide digital I/O port.
    69         */
    70
    71        /*! Port 1 Output Register */
    72        config GpioBits8PxOut_t P1OUT = {
    73            Bit0        : BIT0_OFF,
    74            Bit1        : BIT1_OFF,
    75            Bit2        : BIT2_OFF,
    76            Bit3        : BIT3_OFF,
    77            Bit4        : BIT4_OFF,
    78            Bit5        : BIT5_OFF,
    79            Bit6        : BIT6_OFF,
    80            Bit7        : BIT7_OFF
    81        };
    82
    83        /*! Port 1 Port Select Register */
    84        config GpioBits8PxSel_t P1SEL = {
    85            Bit0        : BIT0_OFF,
    86            Bit1        : BIT1_OFF,
    87            Bit2        : BIT2_OFF,
    88            Bit3        : BIT3_OFF,
    89            Bit4        : BIT4_OFF,
    90            Bit5        : BIT5_OFF,
    91            Bit6        : BIT6_OFF,
    92            Bit7        : BIT7_OFF
    93        };
    94
    95        /*! Port 1 Direction Register */
    96        config GpioBits8PxDir_t P1DIR = {
    97            Bit0        : BIT0_OFF,
    98            Bit1        : BIT1_OFF,
    99            Bit2        : BIT2_OFF,
   100            Bit3        : BIT3_OFF,
   101            Bit4        : BIT4_OFF,
   102            Bit5        : BIT5_OFF,
   103            Bit6        : BIT6_OFF,
   104            Bit7        : BIT7_OFF
   105        };
   106
   107        /*! Port 1 Resistor Enable Register */
   108        config GpioBits8PxRen_t P1REN = {
   109            Bit0        : BIT0_OFF,
   110            Bit1        : BIT1_OFF,
   111            Bit2        : BIT2_OFF,
   112            Bit3        : BIT3_OFF,
   113            Bit4        : BIT4_OFF,
   114            Bit5        : BIT5_OFF,
   115            Bit6        : BIT6_OFF,
   116            Bit7        : BIT7_OFF
   117        };
   118
   119        /*! Port 2 Output Register */
   120        config GpioBits8PxOut_t P2OUT = {
   121            Bit0        : BIT0_OFF,
   122            Bit1        : BIT1_OFF,
   123            Bit2        : BIT2_OFF,
   124            Bit3        : BIT3_OFF,
   125            Bit4        : BIT4_OFF,
   126            Bit5        : BIT5_OFF,
   127            Bit6        : BIT6_OFF,
   128            Bit7        : BIT7_OFF
   129        };
   130
   131        /*! Port 2 Port Select Register */
   132        config GpioBits8PxSel_t P2SEL = {
   133            Bit0        : BIT0_OFF,
   134            Bit1        : BIT1_OFF,
   135            Bit2        : BIT2_OFF,
   136            Bit3        : BIT3_OFF,
   137            Bit4        : BIT4_OFF,
   138            Bit5        : BIT5_OFF,
   139            Bit6        : BIT6,         /* POR default for all 2xx devices */
   140            Bit7        : BIT7          /* POR default for all 2xx devices */
   141        };
   142
   143        /*! Port 2 Direction Register */
   144        config GpioBits8PxDir_t P2DIR = {
   145            Bit0        : BIT0_OFF,
   146            Bit1        : BIT1_OFF,
   147            Bit2        : BIT2_OFF,
   148            Bit3        : BIT3_OFF,
   149            Bit4        : BIT4_OFF,
   150            Bit5        : BIT5_OFF,
   151            Bit6        : BIT6_OFF,
   152            Bit7        : BIT7_OFF
   153        };
   154
   155        /*! Port 2 Resistor Enable Register */
   156        config GpioBits8PxRen_t P2REN = {
   157            Bit0        : BIT0_OFF,
   158            Bit1        : BIT1_OFF,
   159            Bit2        : BIT2_OFF,
   160            Bit3        : BIT3_OFF,
   161            Bit4        : BIT4_OFF,
   162            Bit5        : BIT5_OFF,
   163            Bit6        : BIT6_OFF,
   164            Bit7        : BIT7_OFF
   165        };
   166    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F21x2

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F21x2
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F21x2.xdc
var GPIO_MSP430F21x2 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F21x2');
module-wide constants & types
    values of type GPIO_MSP430F21x2.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F21x2.BIT0_OFF;
        const GPIO_MSP430F21x2.BIT0;
    values of type GPIO_MSP430F21x2.Bit1_t//
        const GPIO_MSP430F21x2.BIT1_OFF;
        const GPIO_MSP430F21x2.BIT1;
    values of type GPIO_MSP430F21x2.Bit2_t//
        const GPIO_MSP430F21x2.BIT2_OFF;
        const GPIO_MSP430F21x2.BIT2;
    values of type GPIO_MSP430F21x2.Bit3_t//
        const GPIO_MSP430F21x2.BIT3_OFF;
        const GPIO_MSP430F21x2.BIT3;
    values of type GPIO_MSP430F21x2.Bit4_t//
        const GPIO_MSP430F21x2.BIT4_OFF;
        const GPIO_MSP430F21x2.BIT4;
    values of type GPIO_MSP430F21x2.Bit5_t//
        const GPIO_MSP430F21x2.BIT5_OFF;
        const GPIO_MSP430F21x2.BIT5;
    values of type GPIO_MSP430F21x2.Bit6_t//
        const GPIO_MSP430F21x2.BIT6_OFF;
        const GPIO_MSP430F21x2.BIT6;
    values of type GPIO_MSP430F21x2.Bit7_t//
        const GPIO_MSP430F21x2.BIT7_OFF;
        const GPIO_MSP430F21x2.BIT7;
    values of type GPIO_MSP430F21x2.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F21x2.IE_OFF// Disabled;
        const GPIO_MSP430F21x2.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F21x2.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F21x2.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F21x2.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F21x2.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F21x2.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F21x2.PUDRE_OFF// Disabled;
        const GPIO_MSP430F21x2.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F21x2.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F21x2.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F21x2.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F21x2.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F21x2.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F21x2.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F21x2.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x2.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x2.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x2.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x2.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x2.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x2.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x2.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x2.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F21x2.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F21x2.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F21x2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F21x2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F21x2.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F21x2.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F21x2.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F21x2.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F21x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL2// Port 1 Port Select 2 Register = GPIO_MSP430F21x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F21x2.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F21x2.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F21x2.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F21x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P2SEL2// Port 2 Port Select 2 Register = GPIO_MSP430F21x2.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F21x2.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F21x2.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F21x2.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F21x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F21x2.DevicePinFunctionSetting_t[8][3] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F21x2 device, there are 3 x 8 = 24 pins total = GPIO_MSP430F21x2.DevicePin_t[8][3] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F21x2.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1SEL2",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2SEL2",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F21x2.create// Create an instance-object(ADC10.Instance adc10, IComparator.Instance comparator, BCSplus.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F21x2.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.Bit0_t
    const GPIO_MSP430F21x2.BIT0_OFF;
    const GPIO_MSP430F21x2.BIT0;
enum GPIO_MSP430F21x2.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.Bit1_t
    const GPIO_MSP430F21x2.BIT1_OFF;
    const GPIO_MSP430F21x2.BIT1;
enum GPIO_MSP430F21x2.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.Bit2_t
    const GPIO_MSP430F21x2.BIT2_OFF;
    const GPIO_MSP430F21x2.BIT2;
enum GPIO_MSP430F21x2.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.Bit3_t
    const GPIO_MSP430F21x2.BIT3_OFF;
    const GPIO_MSP430F21x2.BIT3;
enum GPIO_MSP430F21x2.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.Bit4_t
    const GPIO_MSP430F21x2.BIT4_OFF;
    const GPIO_MSP430F21x2.BIT4;
enum GPIO_MSP430F21x2.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.Bit5_t
    const GPIO_MSP430F21x2.BIT5_OFF;
    const GPIO_MSP430F21x2.BIT5;
enum GPIO_MSP430F21x2.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.Bit6_t
    const GPIO_MSP430F21x2.BIT6_OFF;
    const GPIO_MSP430F21x2.BIT6;
enum GPIO_MSP430F21x2.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.Bit7_t
    const GPIO_MSP430F21x2.BIT7_OFF;
    const GPIO_MSP430F21x2.BIT7;
enum GPIO_MSP430F21x2.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.InterruptEnable_t
    const GPIO_MSP430F21x2.IE_OFF;
    // Disabled
    const GPIO_MSP430F21x2.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F21x2.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F21x2.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.OutputState_t
    const GPIO_MSP430F21x2.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F21x2.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F21x2.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F21x2.ResEnable_t
    const GPIO_MSP430F21x2.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F21x2.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F21x2.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F21x2.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F21x2.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F21x2.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F21x2.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F21x2.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F21x2.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F21x2.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F21x2.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F21x2.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F21x2.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F21x2.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F21x2.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F21x2.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F21x2.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F21x2.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F21x2.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F21x2.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F21x2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F21x2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F21x2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F21x2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F21x2.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F21x2.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F21x2.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F21x2.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL2 = GPIO_MSP430F21x2.GpioBits8PxSel_t {
    // Port 1 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F21x2.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F21x2.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F21x2.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F21x2.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P2SEL2 = GPIO_MSP430F21x2.GpioBits8PxSel2_t {
    // Port 2 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430F21x2.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F21x2.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F21x2.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F21x2.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F21x2.DevicePinFunctionSetting_t[8][3] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F21x2.DevicePin_t[8][3] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F21x2 device, there are 3 x 8 = 24 pins total
    params.forceSetDefaultRegister = GPIO_MSP430F21x2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1SEL2",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2SEL2",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F21x2.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P1DIR = GPIO_MSP430F21x2.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P1OUT = GPIO_MSP430F21x2.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P1REN = GPIO_MSP430F21x2.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P1SEL = GPIO_MSP430F21x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P1SEL2 // instance
index URL

Port 1 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P1SEL2 = GPIO_MSP430F21x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P2DIR = GPIO_MSP430F21x2.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P2OUT = GPIO_MSP430F21x2.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P2REN = GPIO_MSP430F21x2.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P2SEL = GPIO_MSP430F21x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430F21x2.P2SEL2 // instance
index URL

Port 2 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P2SEL2 = GPIO_MSP430F21x2.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P3DIR = GPIO_MSP430F21x2.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P3OUT = GPIO_MSP430F21x2.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P3REN = GPIO_MSP430F21x2.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P3SEL = GPIO_MSP430F21x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F21x2.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.devicePinSetting = GPIO_MSP430F21x2.DevicePinFunctionSetting_t[8][3] undefined;
config GPIO_MSP430F21x2.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F21x2 device, there are 3 x 8 = 24 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.devicePins = GPIO_MSP430F21x2.DevicePin_t[8][3] undefined;
config GPIO_MSP430F21x2.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F21x2.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1SEL2",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2SEL2",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    }
];
config GPIO_MSP430F21x2.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F21x2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F21x2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F21x2.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F21x2.create(ADC10.Instance adc10, IComparator.Instance comparator, BCSplus.Instance clock, params);
// Create an instance-object
GPIO_MSP430F21x2.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F21x2.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F21x2.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F21x2.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F21x2.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F21x2.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:17 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F21x2

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    13    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    14    import ti.catalog.msp430.peripherals.clock.BCSplus as BCSplus;
    15
    16    /*!
    17     *  ======== GPIO for MSP430F21x2 ========
    18     *  MSP430 General Purpose Input Output Ports
    19     */
    20    metaonly module GPIO_MSP430F21x2 inherits IGPIO {
    21        /*!
    22         *  ======== create ========
    23         *  Create an instance of this peripheral. Use a customized
    24         *  init function so that we can get access to the ADC10,
    25         *  Comparator_A, and BCS+ instances.
    26         */
    27        create(ADC10.Instance adc10, Comparator.Instance comparator,
    28            BCSplus.Instance clock);
    29
    30    instance:
    31        /*! @_nodoc */
    32        config ADC10.Instance adc10;
    33
    34        /*! @_nodoc */
    35        config Comparator.Instance comparator;
    36
    37        /*! @_nodoc */
    38        config BCSplus.Instance clock;
    39
    40        /*! Define an array to describe all device pins. The 1st dimension
    41         *  denotes the port, the second the pin on that port. On an
    42         *  MSP430F21x2 device, there are 3 x 8 = 24 pins total.
    43         */
    44
    45        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    46         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    47        /* TODO: For this device the config variable definition has been moved into the
    48         * corresponding XS file due to its size. This needs a more consistent solution. */
    49        config DevicePin_t devicePins[3][8];
    50
    51        /*! Implementation of Device Pin Functional Configuration */
    52        override config DevicePinFunctionSetting_t devicePinSetting[3][8];
    53
    54        /*! Determine if each Register needs to be forced set or not */
    55        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    56        [
    57            { register : "P1OUT" , regForceSet : true  },
    58            { register : "P1SEL" , regForceSet : false },
    59            { register : "P1SEL2", regForceSet : false },
    60            { register : "P1DIR" , regForceSet : true  },
    61            { register : "P1REN" , regForceSet : false },
    62            { register : "P1IES" , regForceSet : true },
    63            { register : "P1IFG" , regForceSet : true },
    64            { register : "P1IE"  , regForceSet : false },
    65            { register : "P2OUT" , regForceSet : true  },
    66            { register : "P2SEL" , regForceSet : false },
    67            { register : "P2SEL2", regForceSet : false },
    68            { register : "P2DIR" , regForceSet : true  },
    69            { register : "P2REN" , regForceSet : false },
    70            { register : "P2IES" , regForceSet : true },
    71            { register : "P2IFG" , regForceSet : true },
    72            { register : "P2IE"  , regForceSet : false },
    73            { register : "P3OUT" , regForceSet : true  },
    74            { register : "P3SEL" , regForceSet : false },
    75            { register : "P3DIR" , regForceSet : true  },
    76            { register : "P3REN" , regForceSet : false },
    77        ];
    78
    79        /*
    80         *  GPIO Digital I/O Registers
    81         *
    82         *  One GIPO instance defines the configuration of an entire,
    83         *  8-bit wide digital I/O port.
    84         */
    85
    86        /*! Port 1 Output Register */
    87        config GpioBits8PxOut_t P1OUT = {
    88            Bit0        : BIT0_OFF,
    89            Bit1        : BIT1_OFF,
    90            Bit2        : BIT2_OFF,
    91            Bit3        : BIT3_OFF,
    92            Bit4        : BIT4_OFF,
    93            Bit5        : BIT5_OFF,
    94            Bit6        : BIT6_OFF,
    95            Bit7        : BIT7_OFF
    96        };
    97
    98        /*! Port 1 Port Select Register */
    99        config GpioBits8PxSel_t P1SEL = {
   100            Bit0        : BIT0_OFF,
   101            Bit1        : BIT1_OFF,
   102            Bit2        : BIT2_OFF,
   103            Bit3        : BIT3_OFF,
   104            Bit4        : BIT4_OFF,
   105            Bit5        : BIT5_OFF,
   106            Bit6        : BIT6_OFF,
   107            Bit7        : BIT7_OFF
   108        };
   109
   110        /*! Port 1 Port Select 2 Register */
   111        config GpioBits8PxSel_t P1SEL2 = {
   112            Bit0        : BIT0_OFF,
   113            Bit1        : BIT1_OFF,
   114            Bit2        : BIT2_OFF,
   115            Bit3        : BIT3_OFF,
   116            Bit4        : BIT4_OFF,
   117            Bit5        : BIT5_OFF,
   118            Bit6        : BIT6_OFF,
   119            Bit7        : BIT7_OFF
   120        };
   121
   122        /*! Port 1 Direction Register */
   123        config GpioBits8PxDir_t P1DIR = {
   124            Bit0        : BIT0_OFF,
   125            Bit1        : BIT1_OFF,
   126            Bit2        : BIT2_OFF,
   127            Bit3        : BIT3_OFF,
   128            Bit4        : BIT4_OFF,
   129            Bit5        : BIT5_OFF,
   130            Bit6        : BIT6_OFF,
   131            Bit7        : BIT7_OFF
   132        };
   133
   134        /*! Port 1 Resistor Enable Register */
   135        config GpioBits8PxRen_t P1REN = {
   136            Bit0        : BIT0_OFF,
   137            Bit1        : BIT1_OFF,
   138            Bit2        : BIT2_OFF,
   139            Bit3        : BIT3_OFF,
   140            Bit4        : BIT4_OFF,
   141            Bit5        : BIT5_OFF,
   142            Bit6        : BIT6_OFF,
   143            Bit7        : BIT7_OFF
   144        };
   145
   146        /*! Port 2 Output Register */
   147        config GpioBits8PxOut_t P2OUT = {
   148            Bit0        : BIT0_OFF,
   149            Bit1        : BIT1_OFF,
   150            Bit2        : BIT2_OFF,
   151            Bit3        : BIT3_OFF,
   152            Bit4        : BIT4_OFF,
   153            Bit5        : BIT5_OFF,
   154            Bit6        : BIT6_OFF,
   155            Bit7        : BIT7_OFF
   156        };
   157
   158        /*! Port 2 Port Select Register */
   159        config GpioBits8PxSel_t P2SEL = {
   160            Bit0        : BIT0_OFF,
   161            Bit1        : BIT1_OFF,
   162            Bit2        : BIT2_OFF,
   163            Bit3        : BIT3_OFF,
   164            Bit4        : BIT4_OFF,
   165            Bit5        : BIT5_OFF,
   166            Bit6        : BIT6,         /* POR default for all 2xx devices */
   167            Bit7        : BIT7          /* POR default for all 2xx devices */
   168        };
   169
   170        /*! Port 2 Port Select 2 Register */
   171        config GpioBits8PxSel2_t P2SEL2 = {
   172            Bit0        : BIT0_OFF,
   173            Bit1        : BIT1_OFF,
   174            Bit2        : BIT2_OFF,
   175            Bit3        : BIT3_OFF,
   176            Bit4        : BIT4_OFF,
   177            Bit5        : BIT5_OFF,
   178            Bit6        : BIT6_OFF,
   179            Bit7        : BIT7_OFF
   180        };
   181
   182        /*! Port 2 Direction Register */
   183        config GpioBits8PxDir_t P2DIR = {
   184            Bit0        : BIT0_OFF,
   185            Bit1        : BIT1_OFF,
   186            Bit2        : BIT2_OFF,
   187            Bit3        : BIT3_OFF,
   188            Bit4        : BIT4_OFF,
   189            Bit5        : BIT5_OFF,
   190            Bit6        : BIT6_OFF,
   191            Bit7        : BIT7_OFF
   192        };
   193
   194        /*! Port 2 Resistor Enable Register */
   195        config GpioBits8PxRen_t P2REN = {
   196            Bit0        : BIT0_OFF,
   197            Bit1        : BIT1_OFF,
   198            Bit2        : BIT2_OFF,
   199            Bit3        : BIT3_OFF,
   200            Bit4        : BIT4_OFF,
   201            Bit5        : BIT5_OFF,
   202            Bit6        : BIT6_OFF,
   203            Bit7        : BIT7_OFF
   204        };
   205
   206        /*! Port 3 Output Register */
   207        config GpioBits8PxOut_t P3OUT = {
   208            Bit0        : BIT0_OFF,
   209            Bit1        : BIT1_OFF,
   210            Bit2        : BIT2_OFF,
   211            Bit3        : BIT3_OFF,
   212            Bit4        : BIT4_OFF,
   213            Bit5        : BIT5_OFF,
   214            Bit6        : BIT6_OFF,
   215            Bit7        : BIT7_OFF
   216        };
   217
   218        /*! Port 3 Port Select Register */
   219        config GpioBits8PxSel_t P3SEL = {
   220            Bit0        : BIT0_OFF,
   221            Bit1        : BIT1_OFF,
   222            Bit2        : BIT2_OFF,
   223            Bit3        : BIT3_OFF,
   224            Bit4        : BIT4_OFF,
   225            Bit5        : BIT5_OFF,
   226            Bit6        : BIT6_OFF,
   227            Bit7        : BIT7_OFF
   228        };
   229
   230        /*! Port 3 Direction Register */
   231        config GpioBits8PxDir_t P3DIR = {
   232            Bit0        : BIT0_OFF,
   233            Bit1        : BIT1_OFF,
   234            Bit2        : BIT2_OFF,
   235            Bit3        : BIT3_OFF,
   236            Bit4        : BIT4_OFF,
   237            Bit5        : BIT5_OFF,
   238            Bit6        : BIT6_OFF,
   239            Bit7        : BIT7_OFF
   240        };
   241
   242        /*! Port 3 Resistor Enable Register */
   243        config GpioBits8PxRen_t P3REN = {
   244            Bit0        : BIT0_OFF,
   245            Bit1        : BIT1_OFF,
   246            Bit2        : BIT2_OFF,
   247            Bit3        : BIT3_OFF,
   248            Bit4        : BIT4_OFF,
   249            Bit5        : BIT5_OFF,
   250            Bit6        : BIT6_OFF,
   251            Bit7        : BIT7_OFF
   252        };
   253    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F22x2

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F22x2
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F22x2.xdc
var GPIO_MSP430F22x2 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F22x2');
module-wide constants & types
    values of type GPIO_MSP430F22x2.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F22x2.BIT0_OFF;
        const GPIO_MSP430F22x2.BIT0;
    values of type GPIO_MSP430F22x2.Bit1_t//
        const GPIO_MSP430F22x2.BIT1_OFF;
        const GPIO_MSP430F22x2.BIT1;
    values of type GPIO_MSP430F22x2.Bit2_t//
        const GPIO_MSP430F22x2.BIT2_OFF;
        const GPIO_MSP430F22x2.BIT2;
    values of type GPIO_MSP430F22x2.Bit3_t//
        const GPIO_MSP430F22x2.BIT3_OFF;
        const GPIO_MSP430F22x2.BIT3;
    values of type GPIO_MSP430F22x2.Bit4_t//
        const GPIO_MSP430F22x2.BIT4_OFF;
        const GPIO_MSP430F22x2.BIT4;
    values of type GPIO_MSP430F22x2.Bit5_t//
        const GPIO_MSP430F22x2.BIT5_OFF;
        const GPIO_MSP430F22x2.BIT5;
    values of type GPIO_MSP430F22x2.Bit6_t//
        const GPIO_MSP430F22x2.BIT6_OFF;
        const GPIO_MSP430F22x2.BIT6;
    values of type GPIO_MSP430F22x2.Bit7_t//
        const GPIO_MSP430F22x2.BIT7_OFF;
        const GPIO_MSP430F22x2.BIT7;
    values of type GPIO_MSP430F22x2.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F22x2.IE_OFF// Disabled;
        const GPIO_MSP430F22x2.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F22x2.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F22x2.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F22x2.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F22x2.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F22x2.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F22x2.PUDRE_OFF// Disabled;
        const GPIO_MSP430F22x2.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F22x2.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F22x2.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F22x2.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F22x2.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F22x2.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F22x2.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F22x2.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x2.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x2.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x2.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x2.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x2.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x2.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x2.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x2.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x2.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F22x2.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F22x2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F22x2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F22x2.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F22x2.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F22x2.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F22x2.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F22x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F22x2.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F22x2.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F22x2.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F22x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F22x2.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F22x2.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F22x2.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F22x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430F22x2.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430F22x2.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430F22x2.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL// Port 4 Port Select Register = GPIO_MSP430F22x2.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F22x2.DevicePinFunctionSetting_t[8][4] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F22xx device, there are 4 x 8 = 32 pins total = GPIO_MSP430F22x2.DevicePin_t[8][4] [
            [
                {
                    pinName: "P1.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TACLK",
                            "ADC10CLK"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI0A",
                            "Timer_A3.TA0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI1A",
                            "Timer_A3.TA1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI2A",
                            "Timer_A3.TA2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "SMCLK"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TA0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TA1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TA2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ],
            [
                {
                    pinName: "P2.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "ACLK",
                            "A0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.INCLK",
                            "SMCLK",
                            "A1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI0B",
                            "Timer_A3.TA0",
                            "A2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI1B",
                            "Timer_A3.TA1",
                            "A3/VREF--/VeREF--"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TA2",
                            "A4/VREF+/VeREF+"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "DVSS",
                            "Rosc"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "BCSCTL2",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "BCSCTL2",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "BCSCTL2",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "BCSCTL2",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XIN"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XOUT"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ],
            [
                {
                    pinName: "P3.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCB0STE/UCA0CLK",
                            "A5"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCB0SIMO/UCB0SDA"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCB0SOMI/UCB0SCL"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCB0CLK/UCA0STE"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCA0TXD/UCA0SIMO"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCA0RXD/UCA0SOMI"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "A6"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "A7"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ],
            [
                {
                    pinName: "P4.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI0A",
                            "Timer_B3.TB0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI1A",
                            "Timer_B3.TB1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI2A",
                            "Timer_B3.TB2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI0B",
                            "Timer_B3.TB0",
                            "A12"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI1B",
                            "Timer_B3.TB1",
                            "A13"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.TB2",
                            "A14"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "TBOUTH",
                            "DVSS",
                            "A15"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.TBCLK",
                            "DVSS"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ]
        ];
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F22x2.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F22x2.create// Create an instance-object(ADC10.Instance adc10, BCSplus.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F22x2.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.Bit0_t
    const GPIO_MSP430F22x2.BIT0_OFF;
    const GPIO_MSP430F22x2.BIT0;
enum GPIO_MSP430F22x2.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.Bit1_t
    const GPIO_MSP430F22x2.BIT1_OFF;
    const GPIO_MSP430F22x2.BIT1;
enum GPIO_MSP430F22x2.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.Bit2_t
    const GPIO_MSP430F22x2.BIT2_OFF;
    const GPIO_MSP430F22x2.BIT2;
enum GPIO_MSP430F22x2.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.Bit3_t
    const GPIO_MSP430F22x2.BIT3_OFF;
    const GPIO_MSP430F22x2.BIT3;
enum GPIO_MSP430F22x2.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.Bit4_t
    const GPIO_MSP430F22x2.BIT4_OFF;
    const GPIO_MSP430F22x2.BIT4;
enum GPIO_MSP430F22x2.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.Bit5_t
    const GPIO_MSP430F22x2.BIT5_OFF;
    const GPIO_MSP430F22x2.BIT5;
enum GPIO_MSP430F22x2.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.Bit6_t
    const GPIO_MSP430F22x2.BIT6_OFF;
    const GPIO_MSP430F22x2.BIT6;
enum GPIO_MSP430F22x2.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.Bit7_t
    const GPIO_MSP430F22x2.BIT7_OFF;
    const GPIO_MSP430F22x2.BIT7;
enum GPIO_MSP430F22x2.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.InterruptEnable_t
    const GPIO_MSP430F22x2.IE_OFF;
    // Disabled
    const GPIO_MSP430F22x2.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F22x2.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F22x2.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.OutputState_t
    const GPIO_MSP430F22x2.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F22x2.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F22x2.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F22x2.ResEnable_t
    const GPIO_MSP430F22x2.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F22x2.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F22x2.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F22x2.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F22x2.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F22x2.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F22x2.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F22x2.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F22x2.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F22x2.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F22x2.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F22x2.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F22x2.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F22x2.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F22x2.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F22x2.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F22x2.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F22x2.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F22x2.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x2.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F22x2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F22x2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F22x2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F22x2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F22x2.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F22x2.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F22x2.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F22x2.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F22x2.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F22x2.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F22x2.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F22x2.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3DIR = GPIO_MSP430F22x2.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F22x2.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F22x2.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F22x2.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430F22x2.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430F22x2.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430F22x2.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL = GPIO_MSP430F22x2.GpioBits8PxSel_t {
    // Port 4 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F22x2.DevicePinFunctionSetting_t[8][4] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F22x2.DevicePin_t[8][4] [
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F22xx device, there are 4 x 8 = 32 pins total
        [
            {
                pinName: "P1.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TACLK",
                        "ADC10CLK"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI0A",
                        "Timer_A3.TA0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI1A",
                        "Timer_A3.TA1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI2A",
                        "Timer_A3.TA2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "SMCLK"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TA0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TA1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TA2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ],
        [
            {
                pinName: "P2.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "ACLK",
                        "A0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.INCLK",
                        "SMCLK",
                        "A1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI0B",
                        "Timer_A3.TA0",
                        "A2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI1B",
                        "Timer_A3.TA1",
                        "A3/VREF--/VeREF--"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TA2",
                        "A4/VREF+/VeREF+"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "DVSS",
                        "Rosc"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "BCSCTL2",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "BCSCTL2",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "BCSCTL2",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "BCSCTL2",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XIN"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XOUT"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ],
        [
            {
                pinName: "P3.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCB0STE/UCA0CLK",
                        "A5"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCB0SIMO/UCB0SDA"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCB0SOMI/UCB0SCL"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCB0CLK/UCA0STE"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCA0TXD/UCA0SIMO"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCA0RXD/UCA0SOMI"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "A6"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "A7"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ],
        [
            {
                pinName: "P4.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI0A",
                        "Timer_B3.TB0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI1A",
                        "Timer_B3.TB1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI2A",
                        "Timer_B3.TB2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI0B",
                        "Timer_B3.TB0",
                        "A12"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI1B",
                        "Timer_B3.TB1",
                        "A13"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.TB2",
                        "A14"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "TBOUTH",
                        "DVSS",
                        "A15"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.TBCLK",
                        "DVSS"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ]
    ];
    params.forceSetDefaultRegister = GPIO_MSP430F22x2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F22x2.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P1DIR = GPIO_MSP430F22x2.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P1OUT = GPIO_MSP430F22x2.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P1REN = GPIO_MSP430F22x2.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P1SEL = GPIO_MSP430F22x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P2DIR = GPIO_MSP430F22x2.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P2OUT = GPIO_MSP430F22x2.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P2REN = GPIO_MSP430F22x2.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P2SEL = GPIO_MSP430F22x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430F22x2.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P3DIR = GPIO_MSP430F22x2.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P3OUT = GPIO_MSP430F22x2.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P3REN = GPIO_MSP430F22x2.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P3SEL = GPIO_MSP430F22x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P4DIR = GPIO_MSP430F22x2.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P4OUT = GPIO_MSP430F22x2.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P4REN = GPIO_MSP430F22x2.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.P4SEL = GPIO_MSP430F22x2.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x2.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.devicePinSetting = GPIO_MSP430F22x2.DevicePinFunctionSetting_t[8][4] undefined;
config GPIO_MSP430F22x2.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F22xx device, there are 4 x 8 = 32 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
const params.devicePins = GPIO_MSP430F22x2.DevicePin_t[8][4] [
    [
        {
            pinName: "P1.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TACLK",
                    "ADC10CLK"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI0A",
                    "Timer_A3.TA0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI1A",
                    "Timer_A3.TA1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI2A",
                    "Timer_A3.TA2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "SMCLK"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TA0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TA1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TA2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ],
    [
        {
            pinName: "P2.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "ACLK",
                    "A0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.INCLK",
                    "SMCLK",
                    "A1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI0B",
                    "Timer_A3.TA0",
                    "A2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI1B",
                    "Timer_A3.TA1",
                    "A3/VREF--/VeREF--"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TA2",
                    "A4/VREF+/VeREF+"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "DVSS",
                    "Rosc"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "BCSCTL2",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "BCSCTL2",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "BCSCTL2",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "BCSCTL2",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XIN"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XOUT"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ],
    [
        {
            pinName: "P3.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCB0STE/UCA0CLK",
                    "A5"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCB0SIMO/UCB0SDA"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCB0SOMI/UCB0SCL"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCB0CLK/UCA0STE"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCA0TXD/UCA0SIMO"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCA0RXD/UCA0SOMI"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "A6"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "A7"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ],
    [
        {
            pinName: "P4.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI0A",
                    "Timer_B3.TB0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI1A",
                    "Timer_B3.TB1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI2A",
                    "Timer_B3.TB2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI0B",
                    "Timer_B3.TB0",
                    "A12"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI1B",
                    "Timer_B3.TB1",
                    "A13"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.TB2",
                    "A14"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "TBOUTH",
                    "DVSS",
                    "A15"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.TBCLK",
                    "DVSS"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ]
];
config GPIO_MSP430F22x2.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F22x2.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    }
];
config GPIO_MSP430F22x2.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F22x2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F22x2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x2.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F22x2.create(ADC10.Instance adc10, BCSplus.Instance clock, params);
// Create an instance-object
GPIO_MSP430F22x2.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F22x2.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F22x2.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F22x2.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F22x2.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F22x2.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:19 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F22x2

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    13    import ti.catalog.msp430.peripherals.clock.BCSplus as BCSplus;
    14
    15    /*!
    16     *  ======== GPIO for MSP430F22x2 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430F22x2 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral. Use a customized
    23         *  init function so that we can get access to the ADC10
    24         *  and BCS+ instances.
    25         */
    26        create(ADC10.Instance adc10, BCSplus.Instance clock);
    27
    28    instance:
    29        /*! @_nodoc */
    30        config ADC10.Instance adc10;
    31
    32        /*! @_nodoc */
    33        config BCSplus.Instance clock;
    34
    35        /*! Define an array to describe all device pins. The 1st dimension
    36         *  denotes the port, the second the pin on that port. On an
    37         *  MSP430F22xx device, there are 4 x 8 = 32 pins total.
    38         */
    39
    40        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    41         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    42        readonly config DevicePin_t devicePins[4][8] =
    43        [
    44            [
    45                {
    46                    pinName : "P1.0",
    47                    pinFunction : {
    48                        functionName : [
    49                            "GPIO Input",
    50                            "GPIO Output",
    51                            "Timer_A3.TACLK",
    52                            "ADC10CLK"
    53                        ],
    54                        functionConfig : [
    55                            [
    56                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    57                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
    58                            ],
    59                            [
    60                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    61                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
    62                            ],
    63                            [
    64                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    65                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
    66                            ],
    67                            [
    68                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    69                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
    70                            ]
    71                        ]
    72                    }
    73                },
    74                {
    75                    pinName : "P1.1",
    76                    pinFunction : {
    77                        functionName : [
    78                            "GPIO Input",
    79                            "GPIO Output",
    80                            "Timer_A3.CCI0A",
    81                            "Timer_A3.TA0"
    82                        ],
    83                        functionConfig : [
    84                            [
    85                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    86                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
    87                            ],
    88                            [
    89                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
    90                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
    91                            ],
    92                            [
    93                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    94                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
    95                            ],
    96                            [
    97                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
    98                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
    99                            ]
   100                        ]
   101                    }
   102                },
   103                {
   104                    pinName : "P1.2",
   105                    pinFunction : {
   106                        functionName : [
   107                            "GPIO Input",
   108                            "GPIO Output",
   109                            "Timer_A3.CCI1A",
   110                            "Timer_A3.TA1"
   111                        ],
   112                        functionConfig : [
   113                            [
   114                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   115                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   116                            ],
   117                            [
   118                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   119                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   120                            ],
   121                            [
   122                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   123                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   124                            ],
   125                            [
   126                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   127                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   128                            ]
   129                        ]
   130                    }
   131                },
   132                {
   133                    pinName : "P1.3",
   134                    pinFunction : {
   135                        functionName : [
   136                            "GPIO Input",
   137                            "GPIO Output",
   138                            "Timer_A3.CCI2A",
   139                            "Timer_A3.TA2"
   140                        ],
   141                        functionConfig : [
   142                            [
   143                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   144                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   145                            ],
   146                            [
   147                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   148                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   149                            ],
   150                            [
   151                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   152                                { register : "P1SEL", bitSetMask : 0x08, bitClearMask : 0x00 }
   153                            ],
   154                            [
   155                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   156                                { register : "P1SEL", bitSetMask : 0x08, bitClearMask : 0x00 }
   157                            ]
   158                        ]
   159                    }
   160                },
   161                {
   162                    pinName : "P1.4",
   163                    pinFunction : {
   164                        functionName : [
   165                            "GPIO Input",
   166                            "GPIO Output",
   167                            "SMCLK"
   168                        ],
   169                        functionConfig : [
   170                            [
   171                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   172                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   173                            ],
   174                            [
   175                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   176                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   177                            ],
   178                            [
   179                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   180                                { register : "P1SEL", bitSetMask : 0x10, bitClearMask : 0x00 }
   181                            ]
   182                        ]
   183                    }
   184                },
   185                {
   186                    pinName : "P1.5",
   187                    pinFunction : {
   188                        functionName : [
   189                            "GPIO Input",
   190                            "GPIO Output",
   191                            "Timer_A3.TA0"
   192                        ],
   193                        functionConfig : [
   194                            [
   195                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   196                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   197                            ],
   198                            [
   199                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   200                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   201                            ],
   202                            [
   203                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   204                                { register : "P1SEL", bitSetMask : 0x20, bitClearMask : 0x00 }
   205                            ]
   206                        ]
   207                    }
   208                },
   209                {
   210                    pinName : "P1.6",
   211                    pinFunction : {
   212                        functionName : [
   213                            "GPIO Input",
   214                            "GPIO Output",
   215                            "Timer_A3.TA1"
   216                        ],
   217                        functionConfig : [
   218                            [
   219                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   220                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   221                            ],
   222                            [
   223                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   224                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   225                            ],
   226                            [
   227                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   228                                { register : "P1SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   229                            ]
   230                        ]
   231                    }
   232                },
   233                {
   234                    pinName : "P1.7",
   235                    pinFunction : {
   236                        functionName : [
   237                            "GPIO Input",
   238                            "GPIO Output",
   239                            "Timer_A3.TA2"
   240                        ],
   241                        functionConfig : [
   242                            [
   243                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   244                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   245                            ],
   246                            [
   247                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   248                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   249                            ],
   250                            [
   251                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   252                                { register : "P1SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   253                            ]
   254                        ]
   255                    }
   256                }
   257            ],
   258            [
   259                {
   260                    pinName : "P2.0",
   261                    pinFunction : {
   262                        functionName : [
   263                            "GPIO Input",
   264                            "GPIO Output",
   265                            "ACLK",
   266                            "A0"
   267                        ],
   268                        functionConfig : [
   269                            [
   270                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   271                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   272                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
   273                            ],
   274                            [
   275                                { register : "P2DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   276                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   277                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
   278                            ],
   279                            [
   280                                { register : "P2DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   281                                { register : "P2SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
   282                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
   283                            ],
   284                            [
   285                                { register : "ADC10AE0", bitSetMask : 0x01, bitClearMask : 0x00 }
   286                            ]
   287                        ]
   288                    }
   289                },
   290                {
   291                    pinName : "P2.1",
   292                    pinFunction : {
   293                        functionName : [
   294                            "GPIO Input",
   295                            "GPIO Output",
   296                            "Timer_A3.INCLK",
   297                            "SMCLK",
   298                            "A1"
   299                        ],
   300                        functionConfig : [
   301                            [
   302                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   303                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
   304                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   305                            ],
   306                            [
   307                                { register : "P2DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   308                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
   309                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   310                            ],
   311                            [
   312                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   313                                { register : "P2SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   314                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   315                            ],
   316                            [
   317                                { register : "P2DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   318                                { register : "P2SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   319                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   320                            ],
   321                            [
   322                                { register : "ADC10AE0", bitSetMask : 0x02, bitClearMask : 0x00 }
   323                            ]
   324                        ]
   325                    }
   326                },
   327                {
   328                    pinName : "P2.2",
   329                    pinFunction : {
   330                        functionName : [
   331                            "GPIO Input",
   332                            "GPIO Output",
   333                            "Timer_A3.CCI0B",
   334                            "Timer_A3.TA0",
   335                            "A2"
   336                        ],
   337                        functionConfig : [
   338                            [
   339                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   340                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   341                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   342                            ],
   343                            [
   344                                { register : "P2DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   345                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   346                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   347                            ],
   348                            [
   349                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   350                                { register : "P2SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   351                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   352                            ],
   353                            [
   354                                { register : "P2DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   355                                { register : "P2SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   356                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   357                            ],
   358                            [
   359                                { register : "ADC10AE0", bitSetMask : 0x04, bitClearMask : 0x00 }
   360                            ]
   361                        ]
   362                    }
   363                },
   364                {
   365                    pinName : "P2.3",
   366                    pinFunction : {
   367                        functionName : [
   368                            "GPIO Input",
   369                            "GPIO Output",
   370                            "Timer_A3.CCI1B",
   371                            "Timer_A3.TA1",
   372                            "A3/VREF--/VeREF--"
   373                        ],
   374                        functionConfig : [
   375                            [
   376                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   377                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   378                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   379                            ],
   380                            [
   381                                { register : "P2DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   382                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   383                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   384                            ],
   385                            [
   386                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   387                                { register : "P2SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   388                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   389                            ],
   390                            [
   391                                { register : "P2DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   392                                { register : "P2SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   393                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   394                            ],
   395                            [
   396                                { register : "ADC10AE0", bitSetMask : 0x08, bitClearMask : 0x00 }
   397                            ]
   398                        ]
   399                    }
   400                },
   401                {
   402                    pinName : "P2.4",
   403                    pinFunction : {
   404                        functionName : [
   405                            "GPIO Input",
   406                            "GPIO Output",
   407                            "Timer_A3.TA2",
   408                            "A4/VREF+/VeREF+"
   409                        ],
   410                        functionConfig : [
   411                            [
   412                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   413                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   414                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   415                            ],
   416                            [
   417                                { register : "P2DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   418                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   419                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   420                            ],
   421                            [
   422                                { register : "P2DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   423                                { register : "P2SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   424                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   425                            ],
   426                            [
   427                                { register : "ADC10AE0", bitSetMask : 0x10, bitClearMask : 0x00 }
   428                            ]
   429                        ]
   430                    }
   431                },
   432                {
   433                    pinName : "P2.5",
   434                    pinFunction : {
   435                        functionName : [
   436                            "GPIO Input",
   437                            "GPIO Output",
   438                            "DVSS",
   439                            "Rosc"
   440                        ],
   441                        functionConfig : [
   442                            [
   443                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   444                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   445                                { register : "BCSCTL2", bitSetMask : 0x00, bitClearMask : 0x01 }
   446                            ],
   447                            [
   448                                { register : "P2DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   449                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   450                                { register : "BCSCTL2", bitSetMask : 0x00, bitClearMask : 0x01 }
   451                            ],
   452                            [
   453                                { register : "P2DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   454                                { register : "P2SEL", bitSetMask : 0x20, bitClearMask : 0x00 },
   455                                { register : "BCSCTL2", bitSetMask : 0x00, bitClearMask : 0x01 }
   456                            ],
   457                            [
   458                                { register : "BCSCTL2", bitSetMask : 0x01, bitClearMask : 0x00 }
   459                            ]
   460                        ]
   461                    }
   462                },
   463                {
   464                    pinName : "P2.6",
   465                    pinFunction : {
   466                        functionName : [
   467                            "GPIO Input",
   468                            "GPIO Output",
   469                            "XIN"
   470                        ],
   471                        functionConfig : [
   472                            [
   473                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   474                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   475                            ],
   476                            [
   477                                { register : "P2DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   478                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   479                            ],
   480                            [
   481                                { register : "P2SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   482                            ]
   483                        ]
   484                    }
   485                },
   486                {
   487                    pinName : "P2.7",
   488                    pinFunction : {
   489                        functionName : [
   490                            "GPIO Input",
   491                            "GPIO Output",
   492                            "XOUT"
   493                        ],
   494                        functionConfig : [
   495                            [
   496                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   497                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   498                            ],
   499                            [
   500                                { register : "P2DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   501                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   502                            ],
   503                            [
   504                                { register : "P2SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   505                            ]
   506                        ]
   507                    }
   508                }
   509            ],
   510            [
   511                {
   512                    pinName : "P3.0",
   513                    pinFunction : {
   514                        functionName : [
   515                            "GPIO Input",
   516                            "GPIO Output",
   517                            "UCB0STE/UCA0CLK",
   518                            "A5"
   519                        ],
   520                        functionConfig : [
   521                            [
   522                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   523                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   524                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   525                            ],
   526                            [
   527                                { register : "P3DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   528                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   529                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   530                            ],
   531                            [
   532                                { register : "P3SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
   533                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   534                            ],
   535                            [
   536                                { register : "ADC10AE0", bitSetMask : 0x20, bitClearMask : 0x00 }
   537                            ]
   538                        ]
   539                    }
   540                },
   541                {
   542                    pinName : "P3.1",
   543                    pinFunction : {
   544                        functionName : [
   545                            "GPIO Input",
   546                            "GPIO Output",
   547                            "UCB0SIMO/UCB0SDA"
   548                        ],
   549                        functionConfig : [
   550                            [
   551                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   552                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   553                            ],
   554                            [
   555                                { register : "P3DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   556                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   557                            ],
   558                            [
   559                                { register : "P3SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
   560                            ]
   561                        ]
   562                    }
   563                },
   564                {
   565                    pinName : "P3.2",
   566                    pinFunction : {
   567                        functionName : [
   568                            "GPIO Input",
   569                            "GPIO Output",
   570                            "UCB0SOMI/UCB0SCL"
   571                        ],
   572                        functionConfig : [
   573                            [
   574                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   575                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   576                            ],
   577                            [
   578                                { register : "P3DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   579                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   580                            ],
   581                            [
   582                                { register : "P3SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   583                            ]
   584                        ]
   585                    }
   586                },
   587                {
   588                    pinName : "P3.3",
   589                    pinFunction : {
   590                        functionName : [
   591                            "GPIO Input",
   592                            "GPIO Output",
   593                            "UCB0CLK/UCA0STE"
   594                        ],
   595                        functionConfig : [
   596                            [
   597                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   598                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   599                            ],
   600                            [
   601                                { register : "P3DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   602                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   603                            ],
   604                            [
   605                                { register : "P3SEL", bitSetMask : 0x08, bitClearMask : 0x00 }
   606                            ]
   607                        ]
   608                    }
   609                },
   610                {
   611                    pinName : "P3.4",
   612                    pinFunction : {
   613                        functionName : [
   614                            "GPIO Input",
   615                            "GPIO Output",
   616                            "UCA0TXD/UCA0SIMO"
   617                        ],
   618                        functionConfig : [
   619                            [
   620                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   621                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   622                            ],
   623                            [
   624                                { register : "P3DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   625                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   626                            ],
   627                            [
   628                                { register : "P3SEL", bitSetMask : 0x10, bitClearMask : 0x00 }
   629                            ]
   630                        ]
   631                    }
   632                },
   633                {
   634                    pinName : "P3.5",
   635                    pinFunction : {
   636                        functionName : [
   637                            "GPIO Input",
   638                            "GPIO Output",
   639                            "UCA0RXD/UCA0SOMI"
   640                        ],
   641                        functionConfig : [
   642                            [
   643                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   644                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   645                            ],
   646                            [
   647                                { register : "P3DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   648                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   649                            ],
   650                            [
   651                                { register : "P3SEL", bitSetMask : 0x20, bitClearMask : 0x00 }
   652                            ]
   653                        ]
   654                    }
   655                },
   656                {
   657                    pinName : "P3.6",
   658                    pinFunction : {
   659                        functionName : [
   660                            "GPIO Input",
   661                            "GPIO Output",
   662                            "A6"
   663                        ],
   664                        functionConfig : [
   665                            [
   666                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   667                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   668                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   669                            ],
   670                            [
   671                                { register : "P3DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   672                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   673                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   674                            ],
   675                            [
   676                                { register : "ADC10AE0", bitSetMask : 0x40, bitClearMask : 0x00 }
   677                            ]
   678                        ]
   679                    }
   680                },
   681                {
   682                    pinName : "P3.7",
   683                    pinFunction : {
   684                        functionName : [
   685                            "GPIO Input",
   686                            "GPIO Output",
   687                            "A7"
   688                        ],
   689                        functionConfig : [
   690                            [
   691                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   692                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   693                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   694                            ],
   695                            [
   696                                { register : "P3DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   697                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   698                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   699                            ],
   700                            [
   701                                { register : "ADC10AE0", bitSetMask : 0x80, bitClearMask : 0x00 }
   702                            ]
   703                        ]
   704                    }
   705                }
   706            ],
   707            [
   708                {
   709                    pinName : "P4.0",
   710                    pinFunction : {
   711                        functionName : [
   712                            "GPIO Input",
   713                            "GPIO Output",
   714                            "Timer_B3.CCI0A",
   715                            "Timer_B3.TB0"
   716                        ],
   717                        functionConfig : [
   718                            [
   719                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   720                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
   721                            ],
   722                            [
   723                                { register : "P4DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   724                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
   725                            ],
   726                            [
   727                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   728                                { register : "P4SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
   729                            ],
   730                            [
   731                                { register : "P4DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   732                                { register : "P4SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
   733                            ]
   734                        ]
   735                    }
   736                },
   737                {
   738                    pinName : "P4.1",
   739                    pinFunction : {
   740                        functionName : [
   741                            "GPIO Input",
   742                            "GPIO Output",
   743                            "Timer_B3.CCI1A",
   744                            "Timer_B3.TB1"
   745                        ],
   746                        functionConfig : [
   747                            [
   748                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   749                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   750                            ],
   751                            [
   752                                { register : "P4DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   753                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   754                            ],
   755                            [
   756                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   757                                { register : "P4SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
   758                            ],
   759                            [
   760                                { register : "P4DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   761                                { register : "P4SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
   762                            ]
   763                        ]
   764                    }
   765                },
   766                {
   767                    pinName : "P4.2",
   768                    pinFunction : {
   769                        functionName : [
   770                            "GPIO Input",
   771                            "GPIO Output",
   772                            "Timer_B3.CCI2A",
   773                            "Timer_B3.TB2"
   774                        ],
   775                        functionConfig : [
   776                            [
   777                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   778                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   779                            ],
   780                            [
   781                                { register : "P4DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   782                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   783                            ],
   784                            [
   785                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   786                                { register : "P4SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   787                            ],
   788                            [
   789                                { register : "P4DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   790                                { register : "P4SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   791                            ]
   792                        ]
   793                    }
   794                },
   795                {
   796                    pinName : "P4.3",
   797                    pinFunction : {
   798                        functionName : [
   799                            "GPIO Input",
   800                            "GPIO Output",
   801                            "Timer_B3.CCI0B",
   802                            "Timer_B3.TB0",
   803                            "A12"
   804                        ],
   805                        functionConfig : [
   806                            [
   807                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   808                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   809                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   810                            ],
   811                            [
   812                                { register : "P4DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   813                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   814                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   815                            ],
   816                            [
   817                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   818                                { register : "P4SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   819                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   820                            ],
   821                            [
   822                                { register : "P4DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   823                                { register : "P4SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   824                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   825                            ],
   826                            [
   827                                { register : "ADC10AE1", bitSetMask : 0x10, bitClearMask : 0x00 }
   828                            ]
   829                        ]
   830                    }
   831                },
   832                {
   833                    pinName : "P4.4",
   834                    pinFunction : {
   835                        functionName : [
   836                            "GPIO Input",
   837                            "GPIO Output",
   838                            "Timer_B3.CCI1B",
   839                            "Timer_B3.TB1",
   840                            "A13"
   841                        ],
   842                        functionConfig : [
   843                            [
   844                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   845                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   846                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   847                            ],
   848                            [
   849                                { register : "P4DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   850                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   851                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   852                            ],
   853                            [
   854                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   855                                { register : "P4SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   856                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   857                            ],
   858                            [
   859                                { register : "P4DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   860                                { register : "P4SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   861                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   862                            ],
   863                            [
   864                                { register : "ADC10AE1", bitSetMask : 0x20, bitClearMask : 0x00 }
   865                            ]
   866                        ]
   867                    }
   868                },
   869                {
   870                    pinName : "P4.5",
   871                    pinFunction : {
   872                        functionName : [
   873                            "GPIO Input",
   874                            "GPIO Output",
   875                            "Timer_B3.TB2",
   876                            "A14"
   877                        ],
   878                        functionConfig : [
   879                            [
   880                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   881                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   882                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x40 }
   883                            ],
   884                            [
   885                                { register : "P4DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   886                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   887                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x40 }
   888                            ],
   889                            [
   890                                { register : "P4DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   891                                { register : "P4SEL", bitSetMask : 0x20, bitClearMask : 0x00 },
   892                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x40 }
   893                            ],
   894                            [
   895                                { register : "ADC10AE1", bitSetMask : 0x40, bitClearMask : 0x00 }
   896                            ]
   897                        ]
   898                    }
   899                },
   900                {
   901                    pinName : "P4.6",
   902                    pinFunction : {
   903                        functionName : [
   904                            "GPIO Input",
   905                            "GPIO Output",
   906                            "TBOUTH",
   907                            "DVSS",
   908                            "A15"
   909                        ],
   910                        functionConfig : [
   911                            [
   912                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   913                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   914                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   915                            ],
   916                            [
   917                                { register : "P4DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   918                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   919                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   920                            ],
   921                            [
   922                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   923                                { register : "P4SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   924                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   925                            ],
   926                            [
   927                                { register : "P4DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   928                                { register : "P4SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   929                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   930                            ],
   931                            [
   932                                { register : "ADC10AE1", bitSetMask : 0x80, bitClearMask : 0x00 }
   933                            ]
   934                        ]
   935                    }
   936                },
   937                {
   938                    pinName : "P4.7",
   939                    pinFunction : {
   940                        functionName : [
   941                            "GPIO Input",
   942                            "GPIO Output",
   943                            "Timer_B3.TBCLK",
   944                            "DVSS"
   945                        ],
   946                        functionConfig : [
   947                            [
   948                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   949                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   950                            ],
   951                            [
   952                                { register : "P4DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   953                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   954                            ],
   955                            [
   956                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   957                                { register : "P4SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   958                            ],
   959                            [
   960                                { register : "P4DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   961                                { register : "P4SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   962                            ]
   963                        ]
   964                    }
   965                }
   966            ]
   967        ];
   968
   969        /*! Implementation of Device Pin Functional Configuration */
   970        override config DevicePinFunctionSetting_t devicePinSetting[4][8];
   971
   972        /*! Determine if each Register needs to be forced set or not */
   973        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   974        [
   975            { register : "P1OUT" , regForceSet : true  },
   976            { register : "P1SEL" , regForceSet : false },
   977            { register : "P1DIR" , regForceSet : true  },
   978            { register : "P1REN" , regForceSet : false },
   979            { register : "P1IES" , regForceSet : true },
   980            { register : "P1IFG" , regForceSet : true },
   981            { register : "P1IE"  , regForceSet : false },
   982            { register : "P2OUT" , regForceSet : true  },
   983            { register : "P2SEL" , regForceSet : false },
   984            { register : "P2DIR" , regForceSet : true  },
   985            { register : "P2REN" , regForceSet : false },
   986            { register : "P2IES" , regForceSet : true },
   987            { register : "P2IFG" , regForceSet : true },
   988            { register : "P2IE"  , regForceSet : false },
   989            { register : "P3OUT" , regForceSet : true  },
   990            { register : "P3SEL" , regForceSet : false },
   991            { register : "P3DIR" , regForceSet : true  },
   992            { register : "P3REN" , regForceSet : false },
   993            { register : "P4OUT" , regForceSet : true  },
   994            { register : "P4SEL" , regForceSet : false },
   995            { register : "P4DIR" , regForceSet : true  },
   996            { register : "P4REN" , regForceSet : false }
   997        ];
   998
   999        /*
  1000         *  GPIO Digital I/O Registers
  1001         *
  1002         *  One GIPO instance defines the configuration of an entire,
  1003         *  8-bit wide digital I/O port.
  1004         */
  1005
  1006        /*! Port 1 Output Register */
  1007        config GpioBits8PxOut_t P1OUT = {
  1008            Bit0        : BIT0_OFF,
  1009            Bit1        : BIT1_OFF,
  1010            Bit2        : BIT2_OFF,
  1011            Bit3        : BIT3_OFF,
  1012            Bit4        : BIT4_OFF,
  1013            Bit5        : BIT5_OFF,
  1014            Bit6        : BIT6_OFF,
  1015            Bit7        : BIT7_OFF
  1016        };
  1017
  1018        /*! Port 1 Port Select Register */
  1019        config GpioBits8PxSel_t P1SEL = {
  1020            Bit0        : BIT0_OFF,
  1021            Bit1        : BIT1_OFF,
  1022            Bit2        : BIT2_OFF,
  1023            Bit3        : BIT3_OFF,
  1024            Bit4        : BIT4_OFF,
  1025            Bit5        : BIT5_OFF,
  1026            Bit6        : BIT6_OFF,
  1027            Bit7        : BIT7_OFF
  1028        };
  1029
  1030        /*! Port 1 Direction Register */
  1031        config GpioBits8PxDir_t P1DIR = {
  1032            Bit0        : BIT0_OFF,
  1033            Bit1        : BIT1_OFF,
  1034            Bit2        : BIT2_OFF,
  1035            Bit3        : BIT3_OFF,
  1036            Bit4        : BIT4_OFF,
  1037            Bit5        : BIT5_OFF,
  1038            Bit6        : BIT6_OFF,
  1039            Bit7        : BIT7_OFF
  1040        };
  1041
  1042        /*! Port 1 Resistor Enable Register */
  1043        config GpioBits8PxRen_t P1REN = {
  1044            Bit0        : BIT0_OFF,
  1045            Bit1        : BIT1_OFF,
  1046            Bit2        : BIT2_OFF,
  1047            Bit3        : BIT3_OFF,
  1048            Bit4        : BIT4_OFF,
  1049            Bit5        : BIT5_OFF,
  1050            Bit6        : BIT6_OFF,
  1051            Bit7        : BIT7_OFF
  1052        };
  1053
  1054        /*! Port 2 Output Register */
  1055        config GpioBits8PxOut_t P2OUT = {
  1056            Bit0        : BIT0_OFF,
  1057            Bit1        : BIT1_OFF,
  1058            Bit2        : BIT2_OFF,
  1059            Bit3        : BIT3_OFF,
  1060            Bit4        : BIT4_OFF,
  1061            Bit5        : BIT5_OFF,
  1062            Bit6        : BIT6_OFF,
  1063            Bit7        : BIT7_OFF
  1064        };
  1065
  1066        /*! Port 2 Port Select Register */
  1067        config GpioBits8PxSel_t P2SEL = {
  1068            Bit0        : BIT0_OFF,
  1069            Bit1        : BIT1_OFF,
  1070            Bit2        : BIT2_OFF,
  1071            Bit3        : BIT3_OFF,
  1072            Bit4        : BIT4_OFF,
  1073            Bit5        : BIT5_OFF,
  1074            Bit6        : BIT6,         /* POR default for all 2xx devices */
  1075            Bit7        : BIT7          /* POR default for all 2xx devices */
  1076        };
  1077
  1078        /*! Port 2 Direction Register */
  1079        config GpioBits8PxDir_t P2DIR = {
  1080            Bit0        : BIT0_OFF,
  1081            Bit1        : BIT1_OFF,
  1082            Bit2        : BIT2_OFF,
  1083            Bit3        : BIT3_OFF,
  1084            Bit4        : BIT4_OFF,
  1085            Bit5        : BIT5_OFF,
  1086            Bit6        : BIT6_OFF,
  1087            Bit7        : BIT7_OFF
  1088        };
  1089
  1090        /*! Port 2 Resistor Enable Register */
  1091        config GpioBits8PxRen_t P2REN = {
  1092            Bit0        : BIT0_OFF,
  1093            Bit1        : BIT1_OFF,
  1094            Bit2        : BIT2_OFF,
  1095            Bit3        : BIT3_OFF,
  1096            Bit4        : BIT4_OFF,
  1097            Bit5        : BIT5_OFF,
  1098            Bit6        : BIT6_OFF,
  1099            Bit7        : BIT7_OFF
  1100        };
  1101
  1102        /*! Port 3 Output Register */
  1103        config GpioBits8PxOut_t P3OUT = {
  1104            Bit0        : BIT0_OFF,
  1105            Bit1        : BIT1_OFF,
  1106            Bit2        : BIT2_OFF,
  1107            Bit3        : BIT3_OFF,
  1108            Bit4        : BIT4_OFF,
  1109            Bit5        : BIT5_OFF,
  1110            Bit6        : BIT6_OFF,
  1111            Bit7        : BIT7_OFF
  1112        };
  1113
  1114        /*! Port 3 Port Select Register */
  1115        config GpioBits8PxSel_t P3SEL = {
  1116            Bit0        : BIT0_OFF,
  1117            Bit1        : BIT1_OFF,
  1118            Bit2        : BIT2_OFF,
  1119            Bit3        : BIT3_OFF,
  1120            Bit4        : BIT4_OFF,
  1121            Bit5        : BIT5_OFF,
  1122            Bit6        : BIT6_OFF,
  1123            Bit7        : BIT7_OFF
  1124        };
  1125
  1126        /*! Port 3 Direction Register */
  1127        config GpioBits8PxDir_t P3DIR = {
  1128            Bit0        : BIT0_OFF,
  1129            Bit1        : BIT1_OFF,
  1130            Bit2        : BIT2_OFF,
  1131            Bit3        : BIT3_OFF,
  1132            Bit4        : BIT4_OFF,
  1133            Bit5        : BIT5_OFF,
  1134            Bit6        : BIT6_OFF,
  1135            Bit7        : BIT7_OFF
  1136        };
  1137
  1138        /*! Port 3 Resistor Enable Register */
  1139        config GpioBits8PxRen_t P3REN = {
  1140            Bit0        : BIT0_OFF,
  1141            Bit1        : BIT1_OFF,
  1142            Bit2        : BIT2_OFF,
  1143            Bit3        : BIT3_OFF,
  1144            Bit4        : BIT4_OFF,
  1145            Bit5        : BIT5_OFF,
  1146            Bit6        : BIT6_OFF,
  1147            Bit7        : BIT7_OFF
  1148        };
  1149
  1150        /*! Port 4 Output Register */
  1151        config GpioBits8PxOut_t P4OUT = {
  1152            Bit0        : BIT0_OFF,
  1153            Bit1        : BIT1_OFF,
  1154            Bit2        : BIT2_OFF,
  1155            Bit3        : BIT3_OFF,
  1156            Bit4        : BIT4_OFF,
  1157            Bit5        : BIT5_OFF,
  1158            Bit6        : BIT6_OFF,
  1159            Bit7        : BIT7_OFF
  1160        };
  1161
  1162        /*! Port 4 Port Select Register */
  1163        config GpioBits8PxSel_t P4SEL = {
  1164            Bit0        : BIT0_OFF,
  1165            Bit1        : BIT1_OFF,
  1166            Bit2        : BIT2_OFF,
  1167            Bit3        : BIT3_OFF,
  1168            Bit4        : BIT4_OFF,
  1169            Bit5        : BIT5_OFF,
  1170            Bit6        : BIT6_OFF,
  1171            Bit7        : BIT7_OFF
  1172        };
  1173
  1174        /*! Port 4 Direction Register */
  1175        config GpioBits8PxDir_t P4DIR = {
  1176            Bit0        : BIT0_OFF,
  1177            Bit1        : BIT1_OFF,
  1178            Bit2        : BIT2_OFF,
  1179            Bit3        : BIT3_OFF,
  1180            Bit4        : BIT4_OFF,
  1181            Bit5        : BIT5_OFF,
  1182            Bit6        : BIT6_OFF,
  1183            Bit7        : BIT7_OFF
  1184        };
  1185
  1186        /*! Port 4 Resistor Enable Register */
  1187        config GpioBits8PxRen_t P4REN = {
  1188            Bit0        : BIT0_OFF,
  1189            Bit1        : BIT1_OFF,
  1190            Bit2        : BIT2_OFF,
  1191            Bit3        : BIT3_OFF,
  1192            Bit4        : BIT4_OFF,
  1193            Bit5        : BIT5_OFF,
  1194            Bit6        : BIT6_OFF,
  1195            Bit7        : BIT7_OFF
  1196        };
  1197    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F22x4

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F22x4
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F22x4.xdc
var GPIO_MSP430F22x4 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F22x4');
module-wide constants & types
    values of type GPIO_MSP430F22x4.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F22x4.BIT0_OFF;
        const GPIO_MSP430F22x4.BIT0;
    values of type GPIO_MSP430F22x4.Bit1_t//
        const GPIO_MSP430F22x4.BIT1_OFF;
        const GPIO_MSP430F22x4.BIT1;
    values of type GPIO_MSP430F22x4.Bit2_t//
        const GPIO_MSP430F22x4.BIT2_OFF;
        const GPIO_MSP430F22x4.BIT2;
    values of type GPIO_MSP430F22x4.Bit3_t//
        const GPIO_MSP430F22x4.BIT3_OFF;
        const GPIO_MSP430F22x4.BIT3;
    values of type GPIO_MSP430F22x4.Bit4_t//
        const GPIO_MSP430F22x4.BIT4_OFF;
        const GPIO_MSP430F22x4.BIT4;
    values of type GPIO_MSP430F22x4.Bit5_t//
        const GPIO_MSP430F22x4.BIT5_OFF;
        const GPIO_MSP430F22x4.BIT5;
    values of type GPIO_MSP430F22x4.Bit6_t//
        const GPIO_MSP430F22x4.BIT6_OFF;
        const GPIO_MSP430F22x4.BIT6;
    values of type GPIO_MSP430F22x4.Bit7_t//
        const GPIO_MSP430F22x4.BIT7_OFF;
        const GPIO_MSP430F22x4.BIT7;
    values of type GPIO_MSP430F22x4.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F22x4.IE_OFF// Disabled;
        const GPIO_MSP430F22x4.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F22x4.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F22x4.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F22x4.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F22x4.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F22x4.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F22x4.PUDRE_OFF// Disabled;
        const GPIO_MSP430F22x4.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F22x4.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F22x4.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F22x4.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F22x4.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F22x4.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F22x4.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F22x4.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x4.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x4.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x4.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x4.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x4.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x4.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x4.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x4.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F22x4.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F22x4.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F22x4.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F22x4.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F22x4.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F22x4.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F22x4.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F22x4.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F22x4.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F22x4.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F22x4.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F22x4.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F22x4.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F22x4.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F22x4.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F22x4.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F22x4.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430F22x4.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430F22x4.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430F22x4.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL// Port 4 Port Select Register = GPIO_MSP430F22x4.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F22x4.DevicePinFunctionSetting_t[8][4] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F22xx device, there are 4 x 8 = 32 pins total = GPIO_MSP430F22x4.DevicePin_t[8][4] [
            [
                {
                    pinName: "P1.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TACLK",
                            "ADC10CLK"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI0A",
                            "Timer_A3.TA0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI1A",
                            "Timer_A3.TA1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI2A",
                            "Timer_A3.TA2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "SMCLK"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TA0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TA1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P1.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TA2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P1DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P1SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ],
            [
                {
                    pinName: "P2.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "ACLK",
                            "A0/OA0I0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.INCLK",
                            "SMCLK",
                            "A1/OA0O"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI0B",
                            "Timer_A3.TA0",
                            "A2/OA0I1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.CCI1B",
                            "Timer_A3.TA1",
                            "A3/VREF--/VeREF--/OA1I1/OA1O"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_A3.TA2",
                            "A4/VREF+/VeREF+/OA1I0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "DVSS",
                            "Rosc"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "BCSCTL2",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "BCSCTL2",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "BCSCTL2",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "BCSCTL2",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XIN"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P2.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "XOUT"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P2SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ],
            [
                {
                    pinName: "P3.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCB0STE/UCA0CLK",
                            "A5"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCB0SIMO/UCB0SDA"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCB0SOMI/UCB0SCL"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCB0CLK/UCA0STE"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCA0TXD/UCA0SIMO"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "UCA0RXD/UCA0SOMI"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "A6/OA0I2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P3.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "A7/OA1I2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P3DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P3SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE0",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ],
            [
                {
                    pinName: "P4.0",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI0A",
                            "Timer_B3.TB0"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x01
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x01,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.1",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI1A",
                            "Timer_B3.TB1"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x02
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x02,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.2",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI2A",
                            "Timer_B3.TB2"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x04
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x04,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.3",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI0B",
                            "Timer_B3.TB0",
                            "A12/OA0O"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x08
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x08,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.4",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.CCI1B",
                            "Timer_B3.TB1",
                            "A13/OA1O"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x10
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x10,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.5",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.TB2",
                            "A14/OA0I3"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x20
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x20,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.6",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "TBOUTH",
                            "DVSS",
                            "A15/OA1I3"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x40
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x40,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "ADC10AE1",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                },
                {
                    pinName: "P4.7",
                    pinFunction: {
                        functionName: [
                            "GPIO Input",
                            "GPIO Output",
                            "Timer_B3.TBCLK",
                            "DVSS"
                        ],
                        functionConfig: [
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x00,
                                    bitClearMask: 0x80
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ],
                            [
                                {
                                    register: "P4DIR",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                },
                                {
                                    register: "P4SEL",
                                    bitSetMask: 0x80,
                                    bitClearMask: 0x00
                                }
                            ]
                        ]
                    }
                }
            ]
        ];
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F22x4.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F22x4.create// Create an instance-object(ADC10.Instance adc10, BCSplus.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F22x4.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.Bit0_t
    const GPIO_MSP430F22x4.BIT0_OFF;
    const GPIO_MSP430F22x4.BIT0;
enum GPIO_MSP430F22x4.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.Bit1_t
    const GPIO_MSP430F22x4.BIT1_OFF;
    const GPIO_MSP430F22x4.BIT1;
enum GPIO_MSP430F22x4.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.Bit2_t
    const GPIO_MSP430F22x4.BIT2_OFF;
    const GPIO_MSP430F22x4.BIT2;
enum GPIO_MSP430F22x4.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.Bit3_t
    const GPIO_MSP430F22x4.BIT3_OFF;
    const GPIO_MSP430F22x4.BIT3;
enum GPIO_MSP430F22x4.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.Bit4_t
    const GPIO_MSP430F22x4.BIT4_OFF;
    const GPIO_MSP430F22x4.BIT4;
enum GPIO_MSP430F22x4.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.Bit5_t
    const GPIO_MSP430F22x4.BIT5_OFF;
    const GPIO_MSP430F22x4.BIT5;
enum GPIO_MSP430F22x4.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.Bit6_t
    const GPIO_MSP430F22x4.BIT6_OFF;
    const GPIO_MSP430F22x4.BIT6;
enum GPIO_MSP430F22x4.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.Bit7_t
    const GPIO_MSP430F22x4.BIT7_OFF;
    const GPIO_MSP430F22x4.BIT7;
enum GPIO_MSP430F22x4.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.InterruptEnable_t
    const GPIO_MSP430F22x4.IE_OFF;
    // Disabled
    const GPIO_MSP430F22x4.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F22x4.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F22x4.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.OutputState_t
    const GPIO_MSP430F22x4.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F22x4.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F22x4.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F22x4.ResEnable_t
    const GPIO_MSP430F22x4.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F22x4.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F22x4.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F22x4.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F22x4.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F22x4.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F22x4.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F22x4.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F22x4.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F22x4.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F22x4.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F22x4.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F22x4.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F22x4.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F22x4.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F22x4.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F22x4.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F22x4.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F22x4.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F22x4.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F22x4.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F22x4.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F22x4.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F22x4.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F22x4.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F22x4.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F22x4.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F22x4.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F22x4.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F22x4.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F22x4.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F22x4.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3DIR = GPIO_MSP430F22x4.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F22x4.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F22x4.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F22x4.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430F22x4.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430F22x4.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430F22x4.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL = GPIO_MSP430F22x4.GpioBits8PxSel_t {
    // Port 4 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F22x4.DevicePinFunctionSetting_t[8][4] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F22x4.DevicePin_t[8][4] [
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F22xx device, there are 4 x 8 = 32 pins total
        [
            {
                pinName: "P1.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TACLK",
                        "ADC10CLK"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI0A",
                        "Timer_A3.TA0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI1A",
                        "Timer_A3.TA1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI2A",
                        "Timer_A3.TA2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "SMCLK"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TA0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TA1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P1.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TA2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P1DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P1SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ],
        [
            {
                pinName: "P2.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "ACLK",
                        "A0/OA0I0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.INCLK",
                        "SMCLK",
                        "A1/OA0O"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI0B",
                        "Timer_A3.TA0",
                        "A2/OA0I1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.CCI1B",
                        "Timer_A3.TA1",
                        "A3/VREF--/VeREF--/OA1I1/OA1O"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_A3.TA2",
                        "A4/VREF+/VeREF+/OA1I0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "DVSS",
                        "Rosc"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "BCSCTL2",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "BCSCTL2",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "BCSCTL2",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "BCSCTL2",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XIN"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P2SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P2.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "XOUT"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P2SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ],
        [
            {
                pinName: "P3.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCB0STE/UCA0CLK",
                        "A5"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCB0SIMO/UCB0SDA"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCB0SOMI/UCB0SCL"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCB0CLK/UCA0STE"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCA0TXD/UCA0SIMO"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "UCA0RXD/UCA0SOMI"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P3SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "A6/OA0I2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P3.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "A7/OA1I2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P3DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P3SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "ADC10AE0",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ],
        [
            {
                pinName: "P4.0",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI0A",
                        "Timer_B3.TB0"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x01
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x01,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.1",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI1A",
                        "Timer_B3.TB1"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x02
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x02,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.2",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI2A",
                        "Timer_B3.TB2"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x04
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x04,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.3",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI0B",
                        "Timer_B3.TB0",
                        "A12/OA0O"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x08
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x08,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            }
                        ],
                        [
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.4",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.CCI1B",
                        "Timer_B3.TB1",
                        "A13/OA1O"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x10
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x10,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.5",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.TB2",
                        "A14/OA0I3"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            }
                        ],
                        [
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.6",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "TBOUTH",
                        "DVSS",
                        "A15/OA1I3"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x40
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x40,
                                bitClearMask: 0x00
                            },
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "ADC10AE1",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            },
            {
                pinName: "P4.7",
                pinFunction: {
                    functionName: [
                        "GPIO Input",
                        "GPIO Output",
                        "Timer_B3.TBCLK",
                        "DVSS"
                    ],
                    functionConfig: [
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x00,
                                bitClearMask: 0x80
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ],
                        [
                            {
                                register: "P4DIR",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P4SEL",
                                bitSetMask: 0x80,
                                bitClearMask: 0x00
                            }
                        ]
                    ]
                }
            }
        ]
    ];
    params.forceSetDefaultRegister = GPIO_MSP430F22x4.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F22x4.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P1DIR = GPIO_MSP430F22x4.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P1OUT = GPIO_MSP430F22x4.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P1REN = GPIO_MSP430F22x4.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P1SEL = GPIO_MSP430F22x4.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P2DIR = GPIO_MSP430F22x4.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P2OUT = GPIO_MSP430F22x4.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P2REN = GPIO_MSP430F22x4.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P2SEL = GPIO_MSP430F22x4.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430F22x4.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P3DIR = GPIO_MSP430F22x4.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P3OUT = GPIO_MSP430F22x4.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P3REN = GPIO_MSP430F22x4.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P3SEL = GPIO_MSP430F22x4.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P4DIR = GPIO_MSP430F22x4.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P4OUT = GPIO_MSP430F22x4.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P4REN = GPIO_MSP430F22x4.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.P4SEL = GPIO_MSP430F22x4.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F22x4.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.devicePinSetting = GPIO_MSP430F22x4.DevicePinFunctionSetting_t[8][4] undefined;
config GPIO_MSP430F22x4.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F22xx device, there are 4 x 8 = 32 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
const params.devicePins = GPIO_MSP430F22x4.DevicePin_t[8][4] [
    [
        {
            pinName: "P1.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TACLK",
                    "ADC10CLK"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI0A",
                    "Timer_A3.TA0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI1A",
                    "Timer_A3.TA1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI2A",
                    "Timer_A3.TA2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "SMCLK"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TA0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TA1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P1.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TA2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P1DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P1SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ],
    [
        {
            pinName: "P2.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "ACLK",
                    "A0/OA0I0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.INCLK",
                    "SMCLK",
                    "A1/OA0O"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI0B",
                    "Timer_A3.TA0",
                    "A2/OA0I1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.CCI1B",
                    "Timer_A3.TA1",
                    "A3/VREF--/VeREF--/OA1I1/OA1O"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_A3.TA2",
                    "A4/VREF+/VeREF+/OA1I0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "DVSS",
                    "Rosc"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "BCSCTL2",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "BCSCTL2",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "BCSCTL2",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "BCSCTL2",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XIN"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P2SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P2.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "XOUT"
                ],
                functionConfig: [
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P2SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ],
    [
        {
            pinName: "P3.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCB0STE/UCA0CLK",
                    "A5"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCB0SIMO/UCB0SDA"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCB0SOMI/UCB0SCL"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCB0CLK/UCA0STE"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCA0TXD/UCA0SIMO"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "UCA0RXD/UCA0SOMI"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P3SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "A6/OA0I2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P3.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "A7/OA1I2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P3DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P3SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "ADC10AE0",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ],
    [
        {
            pinName: "P4.0",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI0A",
                    "Timer_B3.TB0"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x01
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x01,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.1",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI1A",
                    "Timer_B3.TB1"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x02
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x02,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.2",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI2A",
                    "Timer_B3.TB2"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x04
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x04,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.3",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI0B",
                    "Timer_B3.TB0",
                    "A12/OA0O"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x08
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x08,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        }
                    ],
                    [
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.4",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.CCI1B",
                    "Timer_B3.TB1",
                    "A13/OA1O"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x10
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x10,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.5",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.TB2",
                    "A14/OA0I3"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        }
                    ],
                    [
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.6",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "TBOUTH",
                    "DVSS",
                    "A15/OA1I3"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x40
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x40,
                            bitClearMask: 0x00
                        },
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "ADC10AE1",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        },
        {
            pinName: "P4.7",
            pinFunction: {
                functionName: [
                    "GPIO Input",
                    "GPIO Output",
                    "Timer_B3.TBCLK",
                    "DVSS"
                ],
                functionConfig: [
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x00,
                            bitClearMask: 0x80
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ],
                    [
                        {
                            register: "P4DIR",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P4SEL",
                            bitSetMask: 0x80,
                            bitClearMask: 0x00
                        }
                    ]
                ]
            }
        }
    ]
];
config GPIO_MSP430F22x4.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F22x4.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    }
];
config GPIO_MSP430F22x4.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F22x4.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F22x4.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F22x4.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F22x4.create(ADC10.Instance adc10, BCSplus.Instance clock, params);
// Create an instance-object
GPIO_MSP430F22x4.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F22x4.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F22x4.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F22x4.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F22x4.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F22x4.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:21 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F22x4

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    13    import ti.catalog.msp430.peripherals.clock.BCSplus as BCSplus;
    14
    15    /*!
    16     *  ======== GPIO for MSP430F22x4 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430F22x4 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral. Use a customized
    23         *  init function so that we can get access to the ADC10
    24         *  and BCS+ instances.
    25         */
    26        create(ADC10.Instance adc10, BCSplus.Instance clock);
    27
    28    instance:
    29        /*! @_nodoc */
    30        config ADC10.Instance adc10;
    31
    32        /*! @_nodoc */
    33        config BCSplus.Instance clock;
    34
    35        /*! Define an array to describe all device pins. The 1st dimension
    36         *  denotes the port, the second the pin on that port. On an
    37         *  MSP430F22xx device, there are 4 x 8 = 32 pins total.
    38         */
    39
    40        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    41         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    42        readonly config DevicePin_t devicePins[4][8] =
    43        [
    44            [
    45                {
    46                    pinName : "P1.0",
    47                    pinFunction : {
    48                        functionName : [
    49                            "GPIO Input",
    50                            "GPIO Output",
    51                            "Timer_A3.TACLK",
    52                            "ADC10CLK"
    53                        ],
    54                        functionConfig : [
    55                            [
    56                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    57                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
    58                            ],
    59                            [
    60                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    61                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
    62                            ],
    63                            [
    64                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    65                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
    66                            ],
    67                            [
    68                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    69                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
    70                            ]
    71                        ]
    72                    }
    73                },
    74                {
    75                    pinName : "P1.1",
    76                    pinFunction : {
    77                        functionName : [
    78                            "GPIO Input",
    79                            "GPIO Output",
    80                            "Timer_A3.CCI0A",
    81                            "Timer_A3.TA0"
    82                        ],
    83                        functionConfig : [
    84                            [
    85                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    86                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
    87                            ],
    88                            [
    89                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
    90                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
    91                            ],
    92                            [
    93                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    94                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
    95                            ],
    96                            [
    97                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
    98                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
    99                            ]
   100                        ]
   101                    }
   102                },
   103                {
   104                    pinName : "P1.2",
   105                    pinFunction : {
   106                        functionName : [
   107                            "GPIO Input",
   108                            "GPIO Output",
   109                            "Timer_A3.CCI1A",
   110                            "Timer_A3.TA1"
   111                        ],
   112                        functionConfig : [
   113                            [
   114                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   115                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   116                            ],
   117                            [
   118                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   119                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   120                            ],
   121                            [
   122                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   123                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   124                            ],
   125                            [
   126                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   127                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   128                            ]
   129                        ]
   130                    }
   131                },
   132                {
   133                    pinName : "P1.3",
   134                    pinFunction : {
   135                        functionName : [
   136                            "GPIO Input",
   137                            "GPIO Output",
   138                            "Timer_A3.CCI2A",
   139                            "Timer_A3.TA2"
   140                        ],
   141                        functionConfig : [
   142                            [
   143                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   144                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   145                            ],
   146                            [
   147                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   148                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   149                            ],
   150                            [
   151                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   152                                { register : "P1SEL", bitSetMask : 0x08, bitClearMask : 0x00 }
   153                            ],
   154                            [
   155                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   156                                { register : "P1SEL", bitSetMask : 0x08, bitClearMask : 0x00 }
   157                            ]
   158                        ]
   159                    }
   160                },
   161                {
   162                    pinName : "P1.4",
   163                    pinFunction : {
   164                        functionName : [
   165                            "GPIO Input",
   166                            "GPIO Output",
   167                            "SMCLK"
   168                        ],
   169                        functionConfig : [
   170                            [
   171                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   172                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   173                            ],
   174                            [
   175                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   176                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   177                            ],
   178                            [
   179                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   180                                { register : "P1SEL", bitSetMask : 0x10, bitClearMask : 0x00 }
   181                            ]
   182                        ]
   183                    }
   184                },
   185                {
   186                    pinName : "P1.5",
   187                    pinFunction : {
   188                        functionName : [
   189                            "GPIO Input",
   190                            "GPIO Output",
   191                            "Timer_A3.TA0"
   192                        ],
   193                        functionConfig : [
   194                            [
   195                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   196                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   197                            ],
   198                            [
   199                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   200                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   201                            ],
   202                            [
   203                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   204                                { register : "P1SEL", bitSetMask : 0x20, bitClearMask : 0x00 }
   205                            ]
   206                        ]
   207                    }
   208                },
   209                {
   210                    pinName : "P1.6",
   211                    pinFunction : {
   212                        functionName : [
   213                            "GPIO Input",
   214                            "GPIO Output",
   215                            "Timer_A3.TA1"
   216                        ],
   217                        functionConfig : [
   218                            [
   219                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   220                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   221                            ],
   222                            [
   223                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   224                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   225                            ],
   226                            [
   227                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   228                                { register : "P1SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   229                            ]
   230                        ]
   231                    }
   232                },
   233                {
   234                    pinName : "P1.7",
   235                    pinFunction : {
   236                        functionName : [
   237                            "GPIO Input",
   238                            "GPIO Output",
   239                            "Timer_A3.TA2"
   240                        ],
   241                        functionConfig : [
   242                            [
   243                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   244                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   245                            ],
   246                            [
   247                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   248                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   249                            ],
   250                            [
   251                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   252                                { register : "P1SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   253                            ]
   254                        ]
   255                    }
   256                }
   257            ],
   258            [
   259                {
   260                    pinName : "P2.0",
   261                    pinFunction : {
   262                        functionName : [
   263                            "GPIO Input",
   264                            "GPIO Output",
   265                            "ACLK",
   266                            "A0/OA0I0"
   267                        ],
   268                        functionConfig : [
   269                            [
   270                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   271                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   272                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
   273                            ],
   274                            [
   275                                { register : "P2DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   276                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   277                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
   278                            ],
   279                            [
   280                                { register : "P2DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   281                                { register : "P2SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
   282                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
   283                            ],
   284                            [
   285                                { register : "ADC10AE0", bitSetMask : 0x01, bitClearMask : 0x00 }
   286                            ]
   287                        ]
   288                    }
   289                },
   290                {
   291                    pinName : "P2.1",
   292                    pinFunction : {
   293                        functionName : [
   294                            "GPIO Input",
   295                            "GPIO Output",
   296                            "Timer_A3.INCLK",
   297                            "SMCLK",
   298                            "A1/OA0O"
   299                        ],
   300                        functionConfig : [
   301                            [
   302                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   303                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
   304                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   305                            ],
   306                            [
   307                                { register : "P2DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   308                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
   309                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   310                            ],
   311                            [
   312                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   313                                { register : "P2SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   314                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   315                            ],
   316                            [
   317                                { register : "P2DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   318                                { register : "P2SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   319                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   320                            ],
   321                            [
   322                                { register : "ADC10AE0", bitSetMask : 0x02, bitClearMask : 0x00 }
   323                            ]
   324                        ]
   325                    }
   326                },
   327                {
   328                    pinName : "P2.2",
   329                    pinFunction : {
   330                        functionName : [
   331                            "GPIO Input",
   332                            "GPIO Output",
   333                            "Timer_A3.CCI0B",
   334                            "Timer_A3.TA0",
   335                            "A2/OA0I1"
   336                        ],
   337                        functionConfig : [
   338                            [
   339                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   340                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   341                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   342                            ],
   343                            [
   344                                { register : "P2DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   345                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   346                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   347                            ],
   348                            [
   349                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   350                                { register : "P2SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   351                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   352                            ],
   353                            [
   354                                { register : "P2DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   355                                { register : "P2SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   356                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   357                            ],
   358                            [
   359                                { register : "ADC10AE0", bitSetMask : 0x04, bitClearMask : 0x00 }
   360                            ]
   361                        ]
   362                    }
   363                },
   364                {
   365                    pinName : "P2.3",
   366                    pinFunction : {
   367                        functionName : [
   368                            "GPIO Input",
   369                            "GPIO Output",
   370                            "Timer_A3.CCI1B",
   371                            "Timer_A3.TA1",
   372                            "A3/VREF--/VeREF--/OA1I1/OA1O"
   373                        ],
   374                        functionConfig : [
   375                            [
   376                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   377                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   378                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   379                            ],
   380                            [
   381                                { register : "P2DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   382                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   383                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   384                            ],
   385                            [
   386                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   387                                { register : "P2SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   388                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   389                            ],
   390                            [
   391                                { register : "P2DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   392                                { register : "P2SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   393                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   394                            ],
   395                            [
   396                                { register : "ADC10AE0", bitSetMask : 0x08, bitClearMask : 0x00 }
   397                            ]
   398                        ]
   399                    }
   400                },
   401                {
   402                    pinName : "P2.4",
   403                    pinFunction : {
   404                        functionName : [
   405                            "GPIO Input",
   406                            "GPIO Output",
   407                            "Timer_A3.TA2",
   408                            "A4/VREF+/VeREF+/OA1I0"
   409                        ],
   410                        functionConfig : [
   411                            [
   412                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   413                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   414                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   415                            ],
   416                            [
   417                                { register : "P2DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   418                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   419                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   420                            ],
   421                            [
   422                                { register : "P2DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   423                                { register : "P2SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   424                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   425                            ],
   426                            [
   427                                { register : "ADC10AE0", bitSetMask : 0x10, bitClearMask : 0x00 }
   428                            ]
   429                        ]
   430                    }
   431                },
   432                {
   433                    pinName : "P2.5",
   434                    pinFunction : {
   435                        functionName : [
   436                            "GPIO Input",
   437                            "GPIO Output",
   438                            "DVSS",
   439                            "Rosc"
   440                        ],
   441                        functionConfig : [
   442                            [
   443                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   444                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   445                                { register : "BCSCTL2", bitSetMask : 0x00, bitClearMask : 0x01 }
   446                            ],
   447                            [
   448                                { register : "P2DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   449                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   450                                { register : "BCSCTL2", bitSetMask : 0x00, bitClearMask : 0x01 }
   451                            ],
   452                            [
   453                                { register : "P2DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   454                                { register : "P2SEL", bitSetMask : 0x20, bitClearMask : 0x00 },
   455                                { register : "BCSCTL2", bitSetMask : 0x00, bitClearMask : 0x01 }
   456                            ],
   457                            [
   458                                { register : "BCSCTL2", bitSetMask : 0x01, bitClearMask : 0x00 }
   459                            ]
   460                        ]
   461                    }
   462                },
   463                {
   464                    pinName : "P2.6",
   465                    pinFunction : {
   466                        functionName : [
   467                            "GPIO Input",
   468                            "GPIO Output",
   469                            "XIN"
   470                        ],
   471                        functionConfig : [
   472                            [
   473                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   474                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   475                            ],
   476                            [
   477                                { register : "P2DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   478                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   479                            ],
   480                            [
   481                                { register : "P2SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   482                            ]
   483                        ]
   484                    }
   485                },
   486                {
   487                    pinName : "P2.7",
   488                    pinFunction : {
   489                        functionName : [
   490                            "GPIO Input",
   491                            "GPIO Output",
   492                            "XOUT"
   493                        ],
   494                        functionConfig : [
   495                            [
   496                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   497                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   498                            ],
   499                            [
   500                                { register : "P2DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   501                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   502                            ],
   503                            [
   504                                { register : "P2SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   505                            ]
   506                        ]
   507                    }
   508                }
   509            ],
   510            [
   511                {
   512                    pinName : "P3.0",
   513                    pinFunction : {
   514                        functionName : [
   515                            "GPIO Input",
   516                            "GPIO Output",
   517                            "UCB0STE/UCA0CLK",
   518                            "A5"
   519                        ],
   520                        functionConfig : [
   521                            [
   522                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   523                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   524                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   525                            ],
   526                            [
   527                                { register : "P3DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   528                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   529                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   530                            ],
   531                            [
   532                                { register : "P3SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
   533                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   534                            ],
   535                            [
   536                                { register : "ADC10AE0", bitSetMask : 0x20, bitClearMask : 0x00 }
   537                            ]
   538                        ]
   539                    }
   540                },
   541                {
   542                    pinName : "P3.1",
   543                    pinFunction : {
   544                        functionName : [
   545                            "GPIO Input",
   546                            "GPIO Output",
   547                            "UCB0SIMO/UCB0SDA"
   548                        ],
   549                        functionConfig : [
   550                            [
   551                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   552                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   553                            ],
   554                            [
   555                                { register : "P3DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   556                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   557                            ],
   558                            [
   559                                { register : "P3SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
   560                            ]
   561                        ]
   562                    }
   563                },
   564                {
   565                    pinName : "P3.2",
   566                    pinFunction : {
   567                        functionName : [
   568                            "GPIO Input",
   569                            "GPIO Output",
   570                            "UCB0SOMI/UCB0SCL"
   571                        ],
   572                        functionConfig : [
   573                            [
   574                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   575                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   576                            ],
   577                            [
   578                                { register : "P3DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   579                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   580                            ],
   581                            [
   582                                { register : "P3SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   583                            ]
   584                        ]
   585                    }
   586                },
   587                {
   588                    pinName : "P3.3",
   589                    pinFunction : {
   590                        functionName : [
   591                            "GPIO Input",
   592                            "GPIO Output",
   593                            "UCB0CLK/UCA0STE"
   594                        ],
   595                        functionConfig : [
   596                            [
   597                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   598                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   599                            ],
   600                            [
   601                                { register : "P3DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   602                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   603                            ],
   604                            [
   605                                { register : "P3SEL", bitSetMask : 0x08, bitClearMask : 0x00 }
   606                            ]
   607                        ]
   608                    }
   609                },
   610                {
   611                    pinName : "P3.4",
   612                    pinFunction : {
   613                        functionName : [
   614                            "GPIO Input",
   615                            "GPIO Output",
   616                            "UCA0TXD/UCA0SIMO"
   617                        ],
   618                        functionConfig : [
   619                            [
   620                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   621                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   622                            ],
   623                            [
   624                                { register : "P3DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   625                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   626                            ],
   627                            [
   628                                { register : "P3SEL", bitSetMask : 0x10, bitClearMask : 0x00 }
   629                            ]
   630                        ]
   631                    }
   632                },
   633                {
   634                    pinName : "P3.5",
   635                    pinFunction : {
   636                        functionName : [
   637                            "GPIO Input",
   638                            "GPIO Output",
   639                            "UCA0RXD/UCA0SOMI"
   640                        ],
   641                        functionConfig : [
   642                            [
   643                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   644                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   645                            ],
   646                            [
   647                                { register : "P3DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   648                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   649                            ],
   650                            [
   651                                { register : "P3SEL", bitSetMask : 0x20, bitClearMask : 0x00 }
   652                            ]
   653                        ]
   654                    }
   655                },
   656                {
   657                    pinName : "P3.6",
   658                    pinFunction : {
   659                        functionName : [
   660                            "GPIO Input",
   661                            "GPIO Output",
   662                            "A6/OA0I2"
   663                        ],
   664                        functionConfig : [
   665                            [
   666                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   667                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   668                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   669                            ],
   670                            [
   671                                { register : "P3DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   672                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   673                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   674                            ],
   675                            [
   676                                { register : "ADC10AE0", bitSetMask : 0x40, bitClearMask : 0x00 }
   677                            ]
   678                        ]
   679                    }
   680                },
   681                {
   682                    pinName : "P3.7",
   683                    pinFunction : {
   684                        functionName : [
   685                            "GPIO Input",
   686                            "GPIO Output",
   687                            "A7/OA1I2"
   688                        ],
   689                        functionConfig : [
   690                            [
   691                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   692                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   693                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   694                            ],
   695                            [
   696                                { register : "P3DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   697                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   698                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   699                            ],
   700                            [
   701                                { register : "ADC10AE0", bitSetMask : 0x80, bitClearMask : 0x00 }
   702                            ]
   703                        ]
   704                    }
   705                }
   706            ],
   707            [
   708                {
   709                    pinName : "P4.0",
   710                    pinFunction : {
   711                        functionName : [
   712                            "GPIO Input",
   713                            "GPIO Output",
   714                            "Timer_B3.CCI0A",
   715                            "Timer_B3.TB0"
   716                        ],
   717                        functionConfig : [
   718                            [
   719                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   720                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
   721                            ],
   722                            [
   723                                { register : "P4DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   724                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
   725                            ],
   726                            [
   727                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   728                                { register : "P4SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
   729                            ],
   730                            [
   731                                { register : "P4DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   732                                { register : "P4SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
   733                            ]
   734                        ]
   735                    }
   736                },
   737                {
   738                    pinName : "P4.1",
   739                    pinFunction : {
   740                        functionName : [
   741                            "GPIO Input",
   742                            "GPIO Output",
   743                            "Timer_B3.CCI1A",
   744                            "Timer_B3.TB1"
   745                        ],
   746                        functionConfig : [
   747                            [
   748                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   749                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   750                            ],
   751                            [
   752                                { register : "P4DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   753                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   754                            ],
   755                            [
   756                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   757                                { register : "P4SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
   758                            ],
   759                            [
   760                                { register : "P4DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   761                                { register : "P4SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
   762                            ]
   763                        ]
   764                    }
   765                },
   766                {
   767                    pinName : "P4.2",
   768                    pinFunction : {
   769                        functionName : [
   770                            "GPIO Input",
   771                            "GPIO Output",
   772                            "Timer_B3.CCI2A",
   773                            "Timer_B3.TB2"
   774                        ],
   775                        functionConfig : [
   776                            [
   777                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   778                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   779                            ],
   780                            [
   781                                { register : "P4DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   782                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   783                            ],
   784                            [
   785                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   786                                { register : "P4SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   787                            ],
   788                            [
   789                                { register : "P4DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   790                                { register : "P4SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   791                            ]
   792                        ]
   793                    }
   794                },
   795                {
   796                    pinName : "P4.3",
   797                    pinFunction : {
   798                        functionName : [
   799                            "GPIO Input",
   800                            "GPIO Output",
   801                            "Timer_B3.CCI0B",
   802                            "Timer_B3.TB0",
   803                            "A12/OA0O"
   804                        ],
   805                        functionConfig : [
   806                            [
   807                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   808                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   809                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   810                            ],
   811                            [
   812                                { register : "P4DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   813                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   814                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   815                            ],
   816                            [
   817                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   818                                { register : "P4SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   819                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   820                            ],
   821                            [
   822                                { register : "P4DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   823                                { register : "P4SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   824                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   825                            ],
   826                            [
   827                                { register : "ADC10AE1", bitSetMask : 0x10, bitClearMask : 0x00 }
   828                            ]
   829                        ]
   830                    }
   831                },
   832                {
   833                    pinName : "P4.4",
   834                    pinFunction : {
   835                        functionName : [
   836                            "GPIO Input",
   837                            "GPIO Output",
   838                            "Timer_B3.CCI1B",
   839                            "Timer_B3.TB1",
   840                            "A13/OA1O"
   841                        ],
   842                        functionConfig : [
   843                            [
   844                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   845                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   846                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   847                            ],
   848                            [
   849                                { register : "P4DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   850                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   851                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   852                            ],
   853                            [
   854                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   855                                { register : "P4SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   856                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   857                            ],
   858                            [
   859                                { register : "P4DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   860                                { register : "P4SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   861                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   862                            ],
   863                            [
   864                                { register : "ADC10AE1", bitSetMask : 0x20, bitClearMask : 0x00 }
   865                            ]
   866                        ]
   867                    }
   868                },
   869                {
   870                    pinName : "P4.5",
   871                    pinFunction : {
   872                        functionName : [
   873                            "GPIO Input",
   874                            "GPIO Output",
   875                            "Timer_B3.TB2",
   876                            "A14/OA0I3"
   877                        ],
   878                        functionConfig : [
   879                            [
   880                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   881                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   882                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x40 }
   883                            ],
   884                            [
   885                                { register : "P4DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   886                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   887                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x40 }
   888                            ],
   889                            [
   890                                { register : "P4DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   891                                { register : "P4SEL", bitSetMask : 0x20, bitClearMask : 0x00 },
   892                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x40 }
   893                            ],
   894                            [
   895                                { register : "ADC10AE1", bitSetMask : 0x40, bitClearMask : 0x00 }
   896                            ]
   897                        ]
   898                    }
   899                },
   900                {
   901                    pinName : "P4.6",
   902                    pinFunction : {
   903                        functionName : [
   904                            "GPIO Input",
   905                            "GPIO Output",
   906                            "TBOUTH",
   907                            "DVSS",
   908                            "A15/OA1I3"
   909                        ],
   910                        functionConfig : [
   911                            [
   912                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   913                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   914                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   915                            ],
   916                            [
   917                                { register : "P4DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   918                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   919                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   920                            ],
   921                            [
   922                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   923                                { register : "P4SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   924                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   925                            ],
   926                            [
   927                                { register : "P4DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   928                                { register : "P4SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   929                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   930                            ],
   931                            [
   932                                { register : "ADC10AE1", bitSetMask : 0x80, bitClearMask : 0x00 }
   933                            ]
   934                        ]
   935                    }
   936                },
   937                {
   938                    pinName : "P4.7",
   939                    pinFunction : {
   940                        functionName : [
   941                            "GPIO Input",
   942                            "GPIO Output",
   943                            "Timer_B3.TBCLK",
   944                            "DVSS"
   945                        ],
   946                        functionConfig : [
   947                            [
   948                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   949                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   950                            ],
   951                            [
   952                                { register : "P4DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   953                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   954                            ],
   955                            [
   956                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   957                                { register : "P4SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   958                            ],
   959                            [
   960                                { register : "P4DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   961                                { register : "P4SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   962                            ]
   963                        ]
   964                    }
   965                }
   966            ]
   967        ];
   968
   969        /*! Implementation of Device Pin Functional Configuration */
   970        override config DevicePinFunctionSetting_t devicePinSetting[4][8];
   971
   972        /*! Determine if each Register needs to be forced set or not */
   973        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   974        [
   975            { register : "P1OUT" , regForceSet : true  },
   976            { register : "P1SEL" , regForceSet : false },
   977            { register : "P1DIR" , regForceSet : true  },
   978            { register : "P1REN" , regForceSet : false },
   979            { register : "P1IES" , regForceSet : true },
   980            { register : "P1IFG" , regForceSet : true },
   981            { register : "P1IE"  , regForceSet : false },
   982            { register : "P2OUT" , regForceSet : true  },
   983            { register : "P2SEL" , regForceSet : false },
   984            { register : "P2DIR" , regForceSet : true  },
   985            { register : "P2REN" , regForceSet : false },
   986            { register : "P2IES" , regForceSet : true },
   987            { register : "P2IFG" , regForceSet : true },
   988            { register : "P2IE"  , regForceSet : false },
   989            { register : "P3OUT" , regForceSet : true  },
   990            { register : "P3SEL" , regForceSet : false },
   991            { register : "P3DIR" , regForceSet : true  },
   992            { register : "P3REN" , regForceSet : false },
   993            { register : "P4OUT" , regForceSet : true  },
   994            { register : "P4SEL" , regForceSet : false },
   995            { register : "P4DIR" , regForceSet : true  },
   996            { register : "P4REN" , regForceSet : false }
   997        ];
   998
   999        /*
  1000         *  GPIO Digital I/O Registers
  1001         *
  1002         *  One GIPO instance defines the configuration of an entire,
  1003         *  8-bit wide digital I/O port.
  1004         */
  1005
  1006        /*! Port 1 Output Register */
  1007        config GpioBits8PxOut_t P1OUT = {
  1008            Bit0        : BIT0_OFF,
  1009            Bit1        : BIT1_OFF,
  1010            Bit2        : BIT2_OFF,
  1011            Bit3        : BIT3_OFF,
  1012            Bit4        : BIT4_OFF,
  1013            Bit5        : BIT5_OFF,
  1014            Bit6        : BIT6_OFF,
  1015            Bit7        : BIT7_OFF
  1016        };
  1017
  1018        /*! Port 1 Port Select Register */
  1019        config GpioBits8PxSel_t P1SEL = {
  1020            Bit0        : BIT0_OFF,
  1021            Bit1        : BIT1_OFF,
  1022            Bit2        : BIT2_OFF,
  1023            Bit3        : BIT3_OFF,
  1024            Bit4        : BIT4_OFF,
  1025            Bit5        : BIT5_OFF,
  1026            Bit6        : BIT6_OFF,
  1027            Bit7        : BIT7_OFF
  1028        };
  1029
  1030        /*! Port 1 Direction Register */
  1031        config GpioBits8PxDir_t P1DIR = {
  1032            Bit0        : BIT0_OFF,
  1033            Bit1        : BIT1_OFF,
  1034            Bit2        : BIT2_OFF,
  1035            Bit3        : BIT3_OFF,
  1036            Bit4        : BIT4_OFF,
  1037            Bit5        : BIT5_OFF,
  1038            Bit6        : BIT6_OFF,
  1039            Bit7        : BIT7_OFF
  1040        };
  1041
  1042        /*! Port 1 Resistor Enable Register */
  1043        config GpioBits8PxRen_t P1REN = {
  1044            Bit0        : BIT0_OFF,
  1045            Bit1        : BIT1_OFF,
  1046            Bit2        : BIT2_OFF,
  1047            Bit3        : BIT3_OFF,
  1048            Bit4        : BIT4_OFF,
  1049            Bit5        : BIT5_OFF,
  1050            Bit6        : BIT6_OFF,
  1051            Bit7        : BIT7_OFF
  1052        };
  1053
  1054        /*! Port 2 Output Register */
  1055        config GpioBits8PxOut_t P2OUT = {
  1056            Bit0        : BIT0_OFF,
  1057            Bit1        : BIT1_OFF,
  1058            Bit2        : BIT2_OFF,
  1059            Bit3        : BIT3_OFF,
  1060            Bit4        : BIT4_OFF,
  1061            Bit5        : BIT5_OFF,
  1062            Bit6        : BIT6_OFF,
  1063            Bit7        : BIT7_OFF
  1064        };
  1065
  1066        /*! Port 2 Port Select Register */
  1067        config GpioBits8PxSel_t P2SEL = {
  1068            Bit0        : BIT0_OFF,
  1069            Bit1        : BIT1_OFF,
  1070            Bit2        : BIT2_OFF,
  1071            Bit3        : BIT3_OFF,
  1072            Bit4        : BIT4_OFF,
  1073            Bit5        : BIT5_OFF,
  1074            Bit6        : BIT6,         /* POR default for all 2xx devices */
  1075            Bit7        : BIT7          /* POR default for all 2xx devices */
  1076        };
  1077
  1078        /*! Port 2 Direction Register */
  1079        config GpioBits8PxDir_t P2DIR = {
  1080            Bit0        : BIT0_OFF,
  1081            Bit1        : BIT1_OFF,
  1082            Bit2        : BIT2_OFF,
  1083            Bit3        : BIT3_OFF,
  1084            Bit4        : BIT4_OFF,
  1085            Bit5        : BIT5_OFF,
  1086            Bit6        : BIT6_OFF,
  1087            Bit7        : BIT7_OFF
  1088        };
  1089
  1090        /*! Port 2 Resistor Enable Register */
  1091        config GpioBits8PxRen_t P2REN = {
  1092            Bit0        : BIT0_OFF,
  1093            Bit1        : BIT1_OFF,
  1094            Bit2        : BIT2_OFF,
  1095            Bit3        : BIT3_OFF,
  1096            Bit4        : BIT4_OFF,
  1097            Bit5        : BIT5_OFF,
  1098            Bit6        : BIT6_OFF,
  1099            Bit7        : BIT7_OFF
  1100        };
  1101
  1102        /*! Port 3 Output Register */
  1103        config GpioBits8PxOut_t P3OUT = {
  1104            Bit0        : BIT0_OFF,
  1105            Bit1        : BIT1_OFF,
  1106            Bit2        : BIT2_OFF,
  1107            Bit3        : BIT3_OFF,
  1108            Bit4        : BIT4_OFF,
  1109            Bit5        : BIT5_OFF,
  1110            Bit6        : BIT6_OFF,
  1111            Bit7        : BIT7_OFF
  1112        };
  1113
  1114        /*! Port 3 Port Select Register */
  1115        config GpioBits8PxSel_t P3SEL = {
  1116            Bit0        : BIT0_OFF,
  1117            Bit1        : BIT1_OFF,
  1118            Bit2        : BIT2_OFF,
  1119            Bit3        : BIT3_OFF,
  1120            Bit4        : BIT4_OFF,
  1121            Bit5        : BIT5_OFF,
  1122            Bit6        : BIT6_OFF,
  1123            Bit7        : BIT7_OFF
  1124        };
  1125
  1126        /*! Port 3 Direction Register */
  1127        config GpioBits8PxDir_t P3DIR = {
  1128            Bit0        : BIT0_OFF,
  1129            Bit1        : BIT1_OFF,
  1130            Bit2        : BIT2_OFF,
  1131            Bit3        : BIT3_OFF,
  1132            Bit4        : BIT4_OFF,
  1133            Bit5        : BIT5_OFF,
  1134            Bit6        : BIT6_OFF,
  1135            Bit7        : BIT7_OFF
  1136        };
  1137
  1138        /*! Port 3 Resistor Enable Register */
  1139        config GpioBits8PxRen_t P3REN = {
  1140            Bit0        : BIT0_OFF,
  1141            Bit1        : BIT1_OFF,
  1142            Bit2        : BIT2_OFF,
  1143            Bit3        : BIT3_OFF,
  1144            Bit4        : BIT4_OFF,
  1145            Bit5        : BIT5_OFF,
  1146            Bit6        : BIT6_OFF,
  1147            Bit7        : BIT7_OFF
  1148        };
  1149
  1150        /*! Port 4 Output Register */
  1151        config GpioBits8PxOut_t P4OUT = {
  1152            Bit0        : BIT0_OFF,
  1153            Bit1        : BIT1_OFF,
  1154            Bit2        : BIT2_OFF,
  1155            Bit3        : BIT3_OFF,
  1156            Bit4        : BIT4_OFF,
  1157            Bit5        : BIT5_OFF,
  1158            Bit6        : BIT6_OFF,
  1159            Bit7        : BIT7_OFF
  1160        };
  1161
  1162        /*! Port 4 Port Select Register */
  1163        config GpioBits8PxSel_t P4SEL = {
  1164            Bit0        : BIT0_OFF,
  1165            Bit1        : BIT1_OFF,
  1166            Bit2        : BIT2_OFF,
  1167            Bit3        : BIT3_OFF,
  1168            Bit4        : BIT4_OFF,
  1169            Bit5        : BIT5_OFF,
  1170            Bit6        : BIT6_OFF,
  1171            Bit7        : BIT7_OFF
  1172        };
  1173
  1174        /*! Port 4 Direction Register */
  1175        config GpioBits8PxDir_t P4DIR = {
  1176            Bit0        : BIT0_OFF,
  1177            Bit1        : BIT1_OFF,
  1178            Bit2        : BIT2_OFF,
  1179            Bit3        : BIT3_OFF,
  1180            Bit4        : BIT4_OFF,
  1181            Bit5        : BIT5_OFF,
  1182            Bit6        : BIT6_OFF,
  1183            Bit7        : BIT7_OFF
  1184        };
  1185
  1186        /*! Port 4 Resistor Enable Register */
  1187        config GpioBits8PxRen_t P4REN = {
  1188            Bit0        : BIT0_OFF,
  1189            Bit1        : BIT1_OFF,
  1190            Bit2        : BIT2_OFF,
  1191            Bit3        : BIT3_OFF,
  1192            Bit4        : BIT4_OFF,
  1193            Bit5        : BIT5_OFF,
  1194            Bit6        : BIT6_OFF,
  1195            Bit7        : BIT7_OFF
  1196        };
  1197    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F23x

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F23x
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F23x.xdc
var GPIO_MSP430F23x = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F23x');
module-wide constants & types
    values of type GPIO_MSP430F23x.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F23x.BIT0_OFF;
        const GPIO_MSP430F23x.BIT0;
    values of type GPIO_MSP430F23x.Bit1_t//
        const GPIO_MSP430F23x.BIT1_OFF;
        const GPIO_MSP430F23x.BIT1;
    values of type GPIO_MSP430F23x.Bit2_t//
        const GPIO_MSP430F23x.BIT2_OFF;
        const GPIO_MSP430F23x.BIT2;
    values of type GPIO_MSP430F23x.Bit3_t//
        const GPIO_MSP430F23x.BIT3_OFF;
        const GPIO_MSP430F23x.BIT3;
    values of type GPIO_MSP430F23x.Bit4_t//
        const GPIO_MSP430F23x.BIT4_OFF;
        const GPIO_MSP430F23x.BIT4;
    values of type GPIO_MSP430F23x.Bit5_t//
        const GPIO_MSP430F23x.BIT5_OFF;
        const GPIO_MSP430F23x.BIT5;
    values of type GPIO_MSP430F23x.Bit6_t//
        const GPIO_MSP430F23x.BIT6_OFF;
        const GPIO_MSP430F23x.BIT6;
    values of type GPIO_MSP430F23x.Bit7_t//
        const GPIO_MSP430F23x.BIT7_OFF;
        const GPIO_MSP430F23x.BIT7;
    values of type GPIO_MSP430F23x.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F23x.IE_OFF// Disabled;
        const GPIO_MSP430F23x.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F23x.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F23x.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F23x.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F23x.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F23x.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F23x.PUDRE_OFF// Disabled;
        const GPIO_MSP430F23x.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F23x.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F23x.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F23x.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F23x.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F23x.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F23x.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F23x.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F23x.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F23x.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F23x.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F23x.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F23x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F23x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F23x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F23x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F23x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F23x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F23x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F23x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F23x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F23x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F23x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F23x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430F23x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430F23x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430F23x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL// Port 4 Port Select Register = GPIO_MSP430F23x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5DIR// Port 5 Direction Register = GPIO_MSP430F23x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5OUT// Port 5 Output Register = GPIO_MSP430F23x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5REN// Port 5 Resistor Enable Register = GPIO_MSP430F23x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5SEL// Port 5 Port Select Register = GPIO_MSP430F23x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6DIR// Port 6 Direction Register = GPIO_MSP430F23x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6OUT// Port 6 Output Register = GPIO_MSP430F23x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6REN// Port 6 Resistor Enable Register = GPIO_MSP430F23x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6SEL// Port 6 Port Select Register = GPIO_MSP430F23x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F23x.DevicePinFunctionSetting_t[8][6] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F23x device, there are 6 x 8 = 48 pins total = GPIO_MSP430F23x.DevicePin_t[8][6] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F23x.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            },
            {
                register: "P5OUT",
                regForceSet: true
            },
            {
                register: "P5SEL",
                regForceSet: false
            },
            {
                register: "P5DIR",
                regForceSet: true
            },
            {
                register: "P5REN",
                regForceSet: false
            },
            {
                register: "P6OUT",
                regForceSet: true
            },
            {
                register: "P6SEL",
                regForceSet: false
            },
            {
                register: "P6DIR",
                regForceSet: true
            },
            {
                register: "P6REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F23x.create// Create an instance-object(ADC12.Instance adc12, IComparator.Instance comparator, ISVS.Instance svs, BCSplus.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F23x.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F23x.Bit0_t
    const GPIO_MSP430F23x.BIT0_OFF;
    const GPIO_MSP430F23x.BIT0;
enum GPIO_MSP430F23x.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x.Bit1_t
    const GPIO_MSP430F23x.BIT1_OFF;
    const GPIO_MSP430F23x.BIT1;
enum GPIO_MSP430F23x.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x.Bit2_t
    const GPIO_MSP430F23x.BIT2_OFF;
    const GPIO_MSP430F23x.BIT2;
enum GPIO_MSP430F23x.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x.Bit3_t
    const GPIO_MSP430F23x.BIT3_OFF;
    const GPIO_MSP430F23x.BIT3;
enum GPIO_MSP430F23x.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x.Bit4_t
    const GPIO_MSP430F23x.BIT4_OFF;
    const GPIO_MSP430F23x.BIT4;
enum GPIO_MSP430F23x.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x.Bit5_t
    const GPIO_MSP430F23x.BIT5_OFF;
    const GPIO_MSP430F23x.BIT5;
enum GPIO_MSP430F23x.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x.Bit6_t
    const GPIO_MSP430F23x.BIT6_OFF;
    const GPIO_MSP430F23x.BIT6;
enum GPIO_MSP430F23x.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x.Bit7_t
    const GPIO_MSP430F23x.BIT7_OFF;
    const GPIO_MSP430F23x.BIT7;
enum GPIO_MSP430F23x.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F23x.InterruptEnable_t
    const GPIO_MSP430F23x.IE_OFF;
    // Disabled
    const GPIO_MSP430F23x.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F23x.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F23x.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F23x.OutputState_t
    const GPIO_MSP430F23x.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F23x.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F23x.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F23x.ResEnable_t
    const GPIO_MSP430F23x.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F23x.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F23x.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F23x.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F23x.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F23x.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F23x.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F23x.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F23x.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F23x.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F23x.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F23x.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F23x.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F23x.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F23x.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F23x.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F23x.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F23x.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F23x.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F23x.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F23x.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F23x.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F23x.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    // Port 4 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    // Port 5 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    // Port 5 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    // Port 5 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    // Port 5 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    // Port 6 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    // Port 6 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    // Port 6 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    // Port 6 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F23x.DevicePinFunctionSetting_t[8][6] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F23x.DevicePin_t[8][6] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F23x device, there are 6 x 8 = 48 pins total
    params.forceSetDefaultRegister = GPIO_MSP430F23x.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        },
        {
            register: "P5OUT",
            regForceSet: true
        },
        {
            register: "P5SEL",
            regForceSet: false
        },
        {
            register: "P5DIR",
            regForceSet: true
        },
        {
            register: "P5REN",
            regForceSet: false
        },
        {
            register: "P6OUT",
            regForceSet: true
        },
        {
            register: "P6SEL",
            regForceSet: false
        },
        {
            register: "P6DIR",
            regForceSet: true
        },
        {
            register: "P6REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F23x.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P1DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P1OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P1REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P1SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P2DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P2OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P2REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P2SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P3DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P3OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P3REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P3SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P4DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P4OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P4REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P4SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P5DIR // instance
index URL

Port 5 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P5DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P5OUT // instance
index URL

Port 5 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P5OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P5REN // instance
index URL

Port 5 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P5REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P5SEL // instance
index URL

Port 5 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P5SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P6DIR // instance
index URL

Port 6 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P6DIR = GPIO_MSP430F23x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P6OUT // instance
index URL

Port 6 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P6OUT = GPIO_MSP430F23x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P6REN // instance
index URL

Port 6 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P6REN = GPIO_MSP430F23x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.P6SEL // instance
index URL

Port 6 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.P6SEL = GPIO_MSP430F23x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.devicePinSetting = GPIO_MSP430F23x.DevicePinFunctionSetting_t[8][6] undefined;
config GPIO_MSP430F23x.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F23x device, there are 6 x 8 = 48 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.devicePins = GPIO_MSP430F23x.DevicePin_t[8][6] undefined;
config GPIO_MSP430F23x.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F23x.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    },
    {
        register: "P5OUT",
        regForceSet: true
    },
    {
        register: "P5SEL",
        regForceSet: false
    },
    {
        register: "P5DIR",
        regForceSet: true
    },
    {
        register: "P5REN",
        regForceSet: false
    },
    {
        register: "P6OUT",
        regForceSet: true
    },
    {
        register: "P6SEL",
        regForceSet: false
    },
    {
        register: "P6DIR",
        regForceSet: true
    },
    {
        register: "P6REN",
        regForceSet: false
    }
];
config GPIO_MSP430F23x.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F23x.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F23x.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F23x.create(ADC12.Instance adc12, IComparator.Instance comparator, ISVS.Instance svs, BCSplus.Instance clock, params);
// Create an instance-object
GPIO_MSP430F23x.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F23x.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F23x.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F23x.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F23x.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F23x.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:22 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F23x0

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F23x0
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F23x0.xdc
var GPIO_MSP430F23x0 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F23x0');
module-wide constants & types
    values of type GPIO_MSP430F23x0.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F23x0.BIT0_OFF;
        const GPIO_MSP430F23x0.BIT0;
    values of type GPIO_MSP430F23x0.Bit1_t//
        const GPIO_MSP430F23x0.BIT1_OFF;
        const GPIO_MSP430F23x0.BIT1;
    values of type GPIO_MSP430F23x0.Bit2_t//
        const GPIO_MSP430F23x0.BIT2_OFF;
        const GPIO_MSP430F23x0.BIT2;
    values of type GPIO_MSP430F23x0.Bit3_t//
        const GPIO_MSP430F23x0.BIT3_OFF;
        const GPIO_MSP430F23x0.BIT3;
    values of type GPIO_MSP430F23x0.Bit4_t//
        const GPIO_MSP430F23x0.BIT4_OFF;
        const GPIO_MSP430F23x0.BIT4;
    values of type GPIO_MSP430F23x0.Bit5_t//
        const GPIO_MSP430F23x0.BIT5_OFF;
        const GPIO_MSP430F23x0.BIT5;
    values of type GPIO_MSP430F23x0.Bit6_t//
        const GPIO_MSP430F23x0.BIT6_OFF;
        const GPIO_MSP430F23x0.BIT6;
    values of type GPIO_MSP430F23x0.Bit7_t//
        const GPIO_MSP430F23x0.BIT7_OFF;
        const GPIO_MSP430F23x0.BIT7;
    values of type GPIO_MSP430F23x0.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F23x0.IE_OFF// Disabled;
        const GPIO_MSP430F23x0.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F23x0.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F23x0.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F23x0.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F23x0.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F23x0.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F23x0.PUDRE_OFF// Disabled;
        const GPIO_MSP430F23x0.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F23x0.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F23x0.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F23x0.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F23x0.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F23x0.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F23x0.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F23x0.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x0.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x0.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x0.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x0.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x0.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x0.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x0.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x0.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F23x0.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F23x0.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F23x0.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F23x0.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F23x0.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F23x0.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F23x0.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F23x0.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F23x0.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F23x0.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F23x0.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F23x0.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F23x0.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F23x0.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F23x0.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F23x0.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F23x0.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430F23x0.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430F23x0.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430F23x0.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL// Port 4 Port Select Register = GPIO_MSP430F23x0.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F23x0.DevicePinFunctionSetting_t[8][4] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F23x0 device, there are 4 x 8 = 32 pins total = GPIO_MSP430F23x0.DevicePin_t[8][4] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F23x0.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F23x0.create// Create an instance-object(IComparator.Instance comparator, BCSplus.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F23x0.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.Bit0_t
    const GPIO_MSP430F23x0.BIT0_OFF;
    const GPIO_MSP430F23x0.BIT0;
enum GPIO_MSP430F23x0.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.Bit1_t
    const GPIO_MSP430F23x0.BIT1_OFF;
    const GPIO_MSP430F23x0.BIT1;
enum GPIO_MSP430F23x0.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.Bit2_t
    const GPIO_MSP430F23x0.BIT2_OFF;
    const GPIO_MSP430F23x0.BIT2;
enum GPIO_MSP430F23x0.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.Bit3_t
    const GPIO_MSP430F23x0.BIT3_OFF;
    const GPIO_MSP430F23x0.BIT3;
enum GPIO_MSP430F23x0.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.Bit4_t
    const GPIO_MSP430F23x0.BIT4_OFF;
    const GPIO_MSP430F23x0.BIT4;
enum GPIO_MSP430F23x0.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.Bit5_t
    const GPIO_MSP430F23x0.BIT5_OFF;
    const GPIO_MSP430F23x0.BIT5;
enum GPIO_MSP430F23x0.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.Bit6_t
    const GPIO_MSP430F23x0.BIT6_OFF;
    const GPIO_MSP430F23x0.BIT6;
enum GPIO_MSP430F23x0.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.Bit7_t
    const GPIO_MSP430F23x0.BIT7_OFF;
    const GPIO_MSP430F23x0.BIT7;
enum GPIO_MSP430F23x0.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.InterruptEnable_t
    const GPIO_MSP430F23x0.IE_OFF;
    // Disabled
    const GPIO_MSP430F23x0.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F23x0.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F23x0.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.OutputState_t
    const GPIO_MSP430F23x0.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F23x0.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F23x0.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F23x0.ResEnable_t
    const GPIO_MSP430F23x0.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F23x0.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F23x0.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F23x0.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F23x0.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F23x0.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F23x0.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F23x0.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F23x0.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F23x0.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F23x0.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F23x0.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F23x0.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F23x0.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F23x0.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F23x0.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F23x0.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F23x0.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F23x0.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F23x0.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F23x0.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F23x0.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F23x0.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F23x0.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F23x0.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F23x0.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F23x0.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F23x0.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F23x0.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F23x0.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F23x0.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F23x0.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3DIR = GPIO_MSP430F23x0.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F23x0.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F23x0.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F23x0.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430F23x0.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430F23x0.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430F23x0.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL = GPIO_MSP430F23x0.GpioBits8PxSel_t {
    // Port 4 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F23x0.DevicePinFunctionSetting_t[8][4] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F23x0.DevicePin_t[8][4] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F23x0 device, there are 4 x 8 = 32 pins total
    params.forceSetDefaultRegister = GPIO_MSP430F23x0.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F23x0.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P1DIR = GPIO_MSP430F23x0.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P1OUT = GPIO_MSP430F23x0.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P1REN = GPIO_MSP430F23x0.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P1SEL = GPIO_MSP430F23x0.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P2DIR = GPIO_MSP430F23x0.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P2OUT = GPIO_MSP430F23x0.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P2REN = GPIO_MSP430F23x0.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P2SEL = GPIO_MSP430F23x0.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430F23x0.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P3DIR = GPIO_MSP430F23x0.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P3OUT = GPIO_MSP430F23x0.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P3REN = GPIO_MSP430F23x0.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P3SEL = GPIO_MSP430F23x0.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P4DIR = GPIO_MSP430F23x0.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P4OUT = GPIO_MSP430F23x0.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P4REN = GPIO_MSP430F23x0.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.P4SEL = GPIO_MSP430F23x0.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F23x0.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.devicePinSetting = GPIO_MSP430F23x0.DevicePinFunctionSetting_t[8][4] undefined;
config GPIO_MSP430F23x0.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F23x0 device, there are 4 x 8 = 32 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.devicePins = GPIO_MSP430F23x0.DevicePin_t[8][4] undefined;
config GPIO_MSP430F23x0.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F23x0.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    }
];
config GPIO_MSP430F23x0.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F23x0.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F23x0.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F23x0.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F23x0.create(IComparator.Instance comparator, BCSplus.Instance clock, params);
// Create an instance-object
GPIO_MSP430F23x0.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F23x0.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F23x0.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F23x0.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F23x0.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F23x0.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:23 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F23x0

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    13    import ti.catalog.msp430.peripherals.clock.BCSplus as BCSplus;
    14
    15    /*!
    16     *  ======== GPIO for MSP430F23x0 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430F23x0 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral. Use a customized
    23         *  init function so that we can get access to the Comparator_A
    24         *  and BCS+ instances.
    25         */
    26        create(Comparator.Instance comparator, BCSplus.Instance clock);
    27
    28    instance:
    29        /*! @_nodoc */
    30        config Comparator.Instance comparator;
    31
    32        /*! @_nodoc */
    33        config BCSplus.Instance clock;
    34
    35        /*! Define an array to describe all device pins. The 1st dimension
    36         *  denotes the port, the second the pin on that port. On an
    37         *  MSP430F23x0 device, there are 4 x 8 = 32 pins total.
    38         */
    39
    40        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    41         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    42        /* TODO: For this device the config variable definition has been moved into the
    43         * corresponding XS file due to its size. This needs a more consistent solution. */
    44        config DevicePin_t devicePins[4][8];
    45
    46        /*! Implementation of Device Pin Functional Configuration */
    47        override config DevicePinFunctionSetting_t devicePinSetting[4][8];
    48
    49        /*! Determine if each Register needs to be forced set or not */
    50        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    51        [
    52            { register : "P1OUT" , regForceSet : true  },
    53            { register : "P1SEL" , regForceSet : false },
    54            { register : "P1DIR" , regForceSet : true  },
    55            { register : "P1REN" , regForceSet : false },
    56            { register : "P1IES" , regForceSet : true },
    57            { register : "P1IFG" , regForceSet : true },
    58            { register : "P1IE"  , regForceSet : false },
    59            { register : "P2OUT" , regForceSet : true  },
    60            { register : "P2SEL" , regForceSet : false },
    61            { register : "P2DIR" , regForceSet : true  },
    62            { register : "P2REN" , regForceSet : false },
    63            { register : "P2IES" , regForceSet : true },
    64            { register : "P2IFG" , regForceSet : true },
    65            { register : "P2IE"  , regForceSet : false },
    66            { register : "P3OUT" , regForceSet : true  },
    67            { register : "P3SEL" , regForceSet : false },
    68            { register : "P3DIR" , regForceSet : true  },
    69            { register : "P3REN" , regForceSet : false },
    70            { register : "P4OUT" , regForceSet : true  },
    71            { register : "P4SEL" , regForceSet : false },
    72            { register : "P4DIR" , regForceSet : true  },
    73            { register : "P4REN" , regForceSet : false },
    74        ];
    75
    76        /*
    77         *  GPIO Digital I/O Registers
    78         *
    79         *  One GIPO instance defines the configuration of an entire,
    80         *  8-bit wide digital I/O port.
    81         */
    82
    83        /*! Port 1 Output Register */
    84        config GpioBits8PxOut_t P1OUT = {
    85            Bit0        : BIT0_OFF,
    86            Bit1        : BIT1_OFF,
    87            Bit2        : BIT2_OFF,
    88            Bit3        : BIT3_OFF,
    89            Bit4        : BIT4_OFF,
    90            Bit5        : BIT5_OFF,
    91            Bit6        : BIT6_OFF,
    92            Bit7        : BIT7_OFF
    93        };
    94
    95        /*! Port 1 Port Select Register */
    96        config GpioBits8PxSel_t P1SEL = {
    97            Bit0        : BIT0_OFF,
    98            Bit1        : BIT1_OFF,
    99            Bit2        : BIT2_OFF,
   100            Bit3        : BIT3_OFF,
   101            Bit4        : BIT4_OFF,
   102            Bit5        : BIT5_OFF,
   103            Bit6        : BIT6_OFF,
   104            Bit7        : BIT7_OFF
   105        };
   106
   107        /*! Port 1 Direction Register */
   108        config GpioBits8PxDir_t P1DIR = {
   109            Bit0        : BIT0_OFF,
   110            Bit1        : BIT1_OFF,
   111            Bit2        : BIT2_OFF,
   112            Bit3        : BIT3_OFF,
   113            Bit4        : BIT4_OFF,
   114            Bit5        : BIT5_OFF,
   115            Bit6        : BIT6_OFF,
   116            Bit7        : BIT7_OFF
   117        };
   118
   119        /*! Port 1 Resistor Enable Register */
   120        config GpioBits8PxRen_t P1REN = {
   121            Bit0        : BIT0_OFF,
   122            Bit1        : BIT1_OFF,
   123            Bit2        : BIT2_OFF,
   124            Bit3        : BIT3_OFF,
   125            Bit4        : BIT4_OFF,
   126            Bit5        : BIT5_OFF,
   127            Bit6        : BIT6_OFF,
   128            Bit7        : BIT7_OFF
   129        };
   130
   131        /*! Port 2 Output Register */
   132        config GpioBits8PxOut_t P2OUT = {
   133            Bit0        : BIT0_OFF,
   134            Bit1        : BIT1_OFF,
   135            Bit2        : BIT2_OFF,
   136            Bit3        : BIT3_OFF,
   137            Bit4        : BIT4_OFF,
   138            Bit5        : BIT5_OFF,
   139            Bit6        : BIT6_OFF,
   140            Bit7        : BIT7_OFF
   141        };
   142
   143        /*! Port 2 Port Select Register */
   144        config GpioBits8PxSel_t P2SEL = {
   145            Bit0        : BIT0_OFF,
   146            Bit1        : BIT1_OFF,
   147            Bit2        : BIT2_OFF,
   148            Bit3        : BIT3_OFF,
   149            Bit4        : BIT4_OFF,
   150            Bit5        : BIT5_OFF,
   151            Bit6        : BIT6,         /* POR default for all 2xx devices */
   152            Bit7        : BIT7          /* POR default for all 2xx devices */
   153        };
   154
   155        /*! Port 2 Direction Register */
   156        config GpioBits8PxDir_t P2DIR = {
   157            Bit0        : BIT0_OFF,
   158            Bit1        : BIT1_OFF,
   159            Bit2        : BIT2_OFF,
   160            Bit3        : BIT3_OFF,
   161            Bit4        : BIT4_OFF,
   162            Bit5        : BIT5_OFF,
   163            Bit6        : BIT6_OFF,
   164            Bit7        : BIT7_OFF
   165        };
   166
   167        /*! Port 2 Resistor Enable Register */
   168        config GpioBits8PxRen_t P2REN = {
   169            Bit0        : BIT0_OFF,
   170            Bit1        : BIT1_OFF,
   171            Bit2        : BIT2_OFF,
   172            Bit3        : BIT3_OFF,
   173            Bit4        : BIT4_OFF,
   174            Bit5        : BIT5_OFF,
   175            Bit6        : BIT6_OFF,
   176            Bit7        : BIT7_OFF
   177        };
   178
   179        /*! Port 3 Output Register */
   180        config GpioBits8PxOut_t P3OUT = {
   181            Bit0        : BIT0_OFF,
   182            Bit1        : BIT1_OFF,
   183            Bit2        : BIT2_OFF,
   184            Bit3        : BIT3_OFF,
   185            Bit4        : BIT4_OFF,
   186            Bit5        : BIT5_OFF,
   187            Bit6        : BIT6_OFF,
   188            Bit7        : BIT7_OFF
   189        };
   190
   191        /*! Port 3 Port Select Register */
   192        config GpioBits8PxSel_t P3SEL = {
   193            Bit0        : BIT0_OFF,
   194            Bit1        : BIT1_OFF,
   195            Bit2        : BIT2_OFF,
   196            Bit3        : BIT3_OFF,
   197            Bit4        : BIT4_OFF,
   198            Bit5        : BIT5_OFF,
   199            Bit6        : BIT6_OFF,
   200            Bit7        : BIT7_OFF
   201        };
   202
   203        /*! Port 3 Direction Register */
   204        config GpioBits8PxDir_t P3DIR = {
   205            Bit0        : BIT0_OFF,
   206            Bit1        : BIT1_OFF,
   207            Bit2        : BIT2_OFF,
   208            Bit3        : BIT3_OFF,
   209            Bit4        : BIT4_OFF,
   210            Bit5        : BIT5_OFF,
   211            Bit6        : BIT6_OFF,
   212            Bit7        : BIT7_OFF
   213        };
   214
   215        /*! Port 3 Resistor Enable Register */
   216        config GpioBits8PxRen_t P3REN = {
   217            Bit0        : BIT0_OFF,
   218            Bit1        : BIT1_OFF,
   219            Bit2        : BIT2_OFF,
   220            Bit3        : BIT3_OFF,
   221            Bit4        : BIT4_OFF,
   222            Bit5        : BIT5_OFF,
   223            Bit6        : BIT6_OFF,
   224            Bit7        : BIT7_OFF
   225        };
   226
   227        /*! Port 4 Output Register */
   228        config GpioBits8PxOut_t P4OUT = {
   229            Bit0        : BIT0_OFF,
   230            Bit1        : BIT1_OFF,
   231            Bit2        : BIT2_OFF,
   232            Bit3        : BIT3_OFF,
   233            Bit4        : BIT4_OFF,
   234            Bit5        : BIT5_OFF,
   235            Bit6        : BIT6_OFF,
   236            Bit7        : BIT7_OFF
   237        };
   238
   239        /*! Port 4 Port Select Register */
   240        config GpioBits8PxSel_t P4SEL = {
   241            Bit0        : BIT0_OFF,
   242            Bit1        : BIT1_OFF,
   243            Bit2        : BIT2_OFF,
   244            Bit3        : BIT3_OFF,
   245            Bit4        : BIT4_OFF,
   246            Bit5        : BIT5_OFF,
   247            Bit6        : BIT6_OFF,
   248            Bit7        : BIT7_OFF
   249        };
   250
   251        /*! Port 4 Direction Register */
   252        config GpioBits8PxDir_t P4DIR = {
   253            Bit0        : BIT0_OFF,
   254            Bit1        : BIT1_OFF,
   255            Bit2        : BIT2_OFF,
   256            Bit3        : BIT3_OFF,
   257            Bit4        : BIT4_OFF,
   258            Bit5        : BIT5_OFF,
   259            Bit6        : BIT6_OFF,
   260            Bit7        : BIT7_OFF
   261        };
   262
   263        /*! Port 4 Resistor Enable Register */
   264        config GpioBits8PxRen_t P4REN = {
   265            Bit0        : BIT0_OFF,
   266            Bit1        : BIT1_OFF,
   267            Bit2        : BIT2_OFF,
   268            Bit3        : BIT3_OFF,
   269            Bit4        : BIT4_OFF,
   270            Bit5        : BIT5_OFF,
   271            Bit6        : BIT6_OFF,
   272            Bit7        : BIT7_OFF
   273        };
   274    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F241x

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F241x
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F241x.xdc
var GPIO_MSP430F241x = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F241x');
module-wide constants & types
    values of type GPIO_MSP430F241x.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F241x.BIT0_OFF;
        const GPIO_MSP430F241x.BIT0;
    values of type GPIO_MSP430F241x.Bit1_t//
        const GPIO_MSP430F241x.BIT1_OFF;
        const GPIO_MSP430F241x.BIT1;
    values of type GPIO_MSP430F241x.Bit2_t//
        const GPIO_MSP430F241x.BIT2_OFF;
        const GPIO_MSP430F241x.BIT2;
    values of type GPIO_MSP430F241x.Bit3_t//
        const GPIO_MSP430F241x.BIT3_OFF;
        const GPIO_MSP430F241x.BIT3;
    values of type GPIO_MSP430F241x.Bit4_t//
        const GPIO_MSP430F241x.BIT4_OFF;
        const GPIO_MSP430F241x.BIT4;
    values of type GPIO_MSP430F241x.Bit5_t//
        const GPIO_MSP430F241x.BIT5_OFF;
        const GPIO_MSP430F241x.BIT5;
    values of type GPIO_MSP430F241x.Bit6_t//
        const GPIO_MSP430F241x.BIT6_OFF;
        const GPIO_MSP430F241x.BIT6;
    values of type GPIO_MSP430F241x.Bit7_t//
        const GPIO_MSP430F241x.BIT7_OFF;
        const GPIO_MSP430F241x.BIT7;
    values of type GPIO_MSP430F241x.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F241x.IE_OFF// Disabled;
        const GPIO_MSP430F241x.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F241x.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F241x.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F241x.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F241x.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F241x.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F241x.PUDRE_OFF// Disabled;
        const GPIO_MSP430F241x.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F241x.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F241x.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F241x.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F241x.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F241x.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F241x.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F241x.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F241x.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F241x.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F241x.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F241x.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F241x.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F241x.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F241x.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F241x.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F241x.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F241x.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F241x.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F241x.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F241x.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F241x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F241x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F241x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F241x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F241x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F241x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F241x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F241x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F241x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F241x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F241x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F241x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430F241x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430F241x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430F241x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL// Port 4 Port Select Register = GPIO_MSP430F241x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5DIR// Port 5 Direction Register = GPIO_MSP430F241x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5OUT// Port 5 Output Register = GPIO_MSP430F241x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5REN// Port 5 Resistor Enable Register = GPIO_MSP430F241x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5SEL// Port 5 Port Select Register = GPIO_MSP430F241x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6DIR// Port 6 Direction Register = GPIO_MSP430F241x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6OUT// Port 6 Output Register = GPIO_MSP430F241x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6REN// Port 6 Resistor Enable Register = GPIO_MSP430F241x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6SEL// Port 6 Port Select Register = GPIO_MSP430F241x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7DIR// Port 7 Direction Register = GPIO_MSP430F241x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7OUT// Port 7 Output Register = GPIO_MSP430F241x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7REN// Port 7 Resistor Enable Register = GPIO_MSP430F241x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7SEL// Port 7 Port Select Register = GPIO_MSP430F241x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8DIR// Port 8 Direction Register = GPIO_MSP430F241x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8OUT// Port 8 Output Register = GPIO_MSP430F241x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8REN// Port 8 Resistor Enable Register = GPIO_MSP430F241x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8SEL// Port 8 Port Select Register = GPIO_MSP430F241x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F241x.DevicePinFunctionSetting_t[8][8] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F241x device, there are 8 x 8 = 64 pins total = GPIO_MSP430F241x.DevicePin_t[8][8] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F241x.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            },
            {
                register: "P5OUT",
                regForceSet: true
            },
            {
                register: "P5SEL",
                regForceSet: false
            },
            {
                register: "P5DIR",
                regForceSet: true
            },
            {
                register: "P5REN",
                regForceSet: false
            },
            {
                register: "P6OUT",
                regForceSet: true
            },
            {
                register: "P6SEL",
                regForceSet: false
            },
            {
                register: "P6DIR",
                regForceSet: true
            },
            {
                register: "P6REN",
                regForceSet: false
            },
            {
                register: "P7OUT",
                regForceSet: true
            },
            {
                register: "P7SEL",
                regForceSet: false
            },
            {
                register: "P7DIR",
                regForceSet: true
            },
            {
                register: "P7REN",
                regForceSet: false
            },
            {
                register: "P8OUT",
                regForceSet: true
            },
            {
                register: "P8SEL",
                regForceSet: false
            },
            {
                register: "P8DIR",
                regForceSet: true
            },
            {
                register: "P8REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F241x.create// Create an instance-object(ADC12.Instance adc12, IComparator.Instance comparator, ISVS.Instance svs, BCSplus.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F241x.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F241x.Bit0_t
    const GPIO_MSP430F241x.BIT0_OFF;
    const GPIO_MSP430F241x.BIT0;
enum GPIO_MSP430F241x.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F241x.Bit1_t
    const GPIO_MSP430F241x.BIT1_OFF;
    const GPIO_MSP430F241x.BIT1;
enum GPIO_MSP430F241x.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F241x.Bit2_t
    const GPIO_MSP430F241x.BIT2_OFF;
    const GPIO_MSP430F241x.BIT2;
enum GPIO_MSP430F241x.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F241x.Bit3_t
    const GPIO_MSP430F241x.BIT3_OFF;
    const GPIO_MSP430F241x.BIT3;
enum GPIO_MSP430F241x.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F241x.Bit4_t
    const GPIO_MSP430F241x.BIT4_OFF;
    const GPIO_MSP430F241x.BIT4;
enum GPIO_MSP430F241x.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F241x.Bit5_t
    const GPIO_MSP430F241x.BIT5_OFF;
    const GPIO_MSP430F241x.BIT5;
enum GPIO_MSP430F241x.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F241x.Bit6_t
    const GPIO_MSP430F241x.BIT6_OFF;
    const GPIO_MSP430F241x.BIT6;
enum GPIO_MSP430F241x.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F241x.Bit7_t
    const GPIO_MSP430F241x.BIT7_OFF;
    const GPIO_MSP430F241x.BIT7;
enum GPIO_MSP430F241x.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F241x.InterruptEnable_t
    const GPIO_MSP430F241x.IE_OFF;
    // Disabled
    const GPIO_MSP430F241x.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F241x.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F241x.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F241x.OutputState_t
    const GPIO_MSP430F241x.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F241x.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F241x.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F241x.ResEnable_t
    const GPIO_MSP430F241x.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F241x.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F241x.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F241x.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F241x.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F241x.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F241x.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F241x.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F241x.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F241x.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F241x.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F241x.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F241x.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F241x.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F241x.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F241x.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F241x.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F241x.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F241x.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F241x.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F241x.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F241x.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F241x.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F241x.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    // Port 4 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    // Port 5 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    // Port 5 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    // Port 5 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    // Port 5 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    // Port 6 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    // Port 6 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    // Port 6 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    // Port 6 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    // Port 7 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    // Port 7 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    // Port 7 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    // Port 7 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    // Port 8 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    // Port 8 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    // Port 8 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    // Port 8 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F241x.DevicePinFunctionSetting_t[8][8] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F241x.DevicePin_t[8][8] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F241x device, there are 8 x 8 = 64 pins total
    params.forceSetDefaultRegister = GPIO_MSP430F241x.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        },
        {
            register: "P5OUT",
            regForceSet: true
        },
        {
            register: "P5SEL",
            regForceSet: false
        },
        {
            register: "P5DIR",
            regForceSet: true
        },
        {
            register: "P5REN",
            regForceSet: false
        },
        {
            register: "P6OUT",
            regForceSet: true
        },
        {
            register: "P6SEL",
            regForceSet: false
        },
        {
            register: "P6DIR",
            regForceSet: true
        },
        {
            register: "P6REN",
            regForceSet: false
        },
        {
            register: "P7OUT",
            regForceSet: true
        },
        {
            register: "P7SEL",
            regForceSet: false
        },
        {
            register: "P7DIR",
            regForceSet: true
        },
        {
            register: "P7REN",
            regForceSet: false
        },
        {
            register: "P8OUT",
            regForceSet: true
        },
        {
            register: "P8SEL",
            regForceSet: false
        },
        {
            register: "P8DIR",
            regForceSet: true
        },
        {
            register: "P8REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F241x.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P1DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P1OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P1REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P1SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P2DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P2OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P2REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P2SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P3DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P3OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P3REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P3SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P4DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P4OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P4REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P4SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P5DIR // instance
index URL

Port 5 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P5DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P5OUT // instance
index URL

Port 5 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P5OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P5REN // instance
index URL

Port 5 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P5REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P5SEL // instance
index URL

Port 5 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P5SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P6DIR // instance
index URL

Port 6 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P6DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P6OUT // instance
index URL

Port 6 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P6OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P6REN // instance
index URL

Port 6 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P6REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P6SEL // instance
index URL

Port 6 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P6SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P7DIR // instance
index URL

Port 7 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P7DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P7OUT // instance
index URL

Port 7 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P7OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P7REN // instance
index URL

Port 7 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P7REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P7SEL // instance
index URL

Port 7 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P7SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P8DIR // instance
index URL

Port 8 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P8DIR = GPIO_MSP430F241x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P8OUT // instance
index URL

Port 8 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P8OUT = GPIO_MSP430F241x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P8REN // instance
index URL

Port 8 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P8REN = GPIO_MSP430F241x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.P8SEL // instance
index URL

Port 8 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.P8SEL = GPIO_MSP430F241x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F241x.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.devicePinSetting = GPIO_MSP430F241x.DevicePinFunctionSetting_t[8][8] undefined;
config GPIO_MSP430F241x.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F241x device, there are 8 x 8 = 64 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.devicePins = GPIO_MSP430F241x.DevicePin_t[8][8] undefined;
config GPIO_MSP430F241x.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F241x.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    },
    {
        register: "P5OUT",
        regForceSet: true
    },
    {
        register: "P5SEL",
        regForceSet: false
    },
    {
        register: "P5DIR",
        regForceSet: true
    },
    {
        register: "P5REN",
        regForceSet: false
    },
    {
        register: "P6OUT",
        regForceSet: true
    },
    {
        register: "P6SEL",
        regForceSet: false
    },
    {
        register: "P6DIR",
        regForceSet: true
    },
    {
        register: "P6REN",
        regForceSet: false
    },
    {
        register: "P7OUT",
        regForceSet: true
    },
    {
        register: "P7SEL",
        regForceSet: false
    },
    {
        register: "P7DIR",
        regForceSet: true
    },
    {
        register: "P7REN",
        regForceSet: false
    },
    {
        register: "P8OUT",
        regForceSet: true
    },
    {
        register: "P8SEL",
        regForceSet: false
    },
    {
        register: "P8DIR",
        regForceSet: true
    },
    {
        register: "P8REN",
        regForceSet: false
    }
];
config GPIO_MSP430F241x.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F241x.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F241x.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F241x.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F241x.create(ADC12.Instance adc12, IComparator.Instance comparator, ISVS.Instance svs, BCSplus.Instance clock, params);
// Create an instance-object
GPIO_MSP430F241x.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F241x.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F241x.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F241x.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F241x.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F241x.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:23 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F241x

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.adc.ADC12 as ADC12;
    13    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    14    import ti.catalog.msp430.peripherals.svs.ISVS as SVS;
    15    import ti.catalog.msp430.peripherals.clock.BCSplus as BCSplus;
    16
    17    /*!
    18     *  ======== GPIO for MSP430F241x ========
    19     *  MSP430 General Purpose Input Output Ports
    20     */
    21    metaonly module GPIO_MSP430F241x inherits IGPIO {
    22        /*!
    23         *  ======== create ========
    24         *  Create an instance of this peripheral. Use a customized
    25         *  init function so that we can get access to the ADC12,
    26         *  Comparator_A, SVS, and BCS+ instances.
    27         */
    28        create(ADC12.Instance adc12, Comparator.Instance comparator, SVS.Instance svs,
    29            BCSplus.Instance clock);
    30
    31    instance:
    32        /*! @_nodoc */
    33        config ADC12.Instance adc12;
    34
    35        /*! @_nodoc */
    36        config Comparator.Instance comparator;
    37
    38        /*! @_nodoc */
    39        config SVS.Instance svs;
    40
    41        /*! @_nodoc */
    42        config BCSplus.Instance clock;
    43
    44        /*! Define an array to describe all device pins. The 1st dimension
    45         *  denotes the port, the second the pin on that port. On an
    46         *  MSP430F241x device, there are 8 x 8 = 64 pins total.
    47         */
    48
    49        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    50         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    51        /* TODO: For this device the config variable definition has been moved into the
    52         * corresponding XS file due to its size. This needs a more consistent solution. */
    53        config DevicePin_t devicePins[8][8];
    54
    55        /*! Implementation of Device Pin Functional Configuration */
    56        override config DevicePinFunctionSetting_t devicePinSetting[8][8];
    57
    58        /*! Determine if each Register needs to be forced set or not */
    59        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    60        [
    61            { register : "P1OUT" , regForceSet : true  },
    62            { register : "P1SEL" , regForceSet : false },
    63            { register : "P1DIR" , regForceSet : true  },
    64            { register : "P1REN" , regForceSet : false },
    65            { register : "P1IES" , regForceSet : true },
    66            { register : "P1IFG" , regForceSet : true },
    67            { register : "P1IE"  , regForceSet : false },
    68            { register : "P2OUT" , regForceSet : true  },
    69            { register : "P2SEL" , regForceSet : false },
    70            { register : "P2DIR" , regForceSet : true  },
    71            { register : "P2REN" , regForceSet : false },
    72            { register : "P2IES" , regForceSet : true },
    73            { register : "P2IFG" , regForceSet : true },
    74            { register : "P2IE"  , regForceSet : false },
    75            { register : "P3OUT" , regForceSet : true  },
    76            { register : "P3SEL" , regForceSet : false },
    77            { register : "P3DIR" , regForceSet : true  },
    78            { register : "P3REN" , regForceSet : false },
    79            { register : "P4OUT" , regForceSet : true  },
    80            { register : "P4SEL" , regForceSet : false },
    81            { register : "P4DIR" , regForceSet : true  },
    82            { register : "P4REN" , regForceSet : false },
    83            { register : "P5OUT" , regForceSet : true  },
    84            { register : "P5SEL" , regForceSet : false },
    85            { register : "P5DIR" , regForceSet : true  },
    86            { register : "P5REN" , regForceSet : false },
    87            { register : "P6OUT" , regForceSet : true  },
    88            { register : "P6SEL" , regForceSet : false },
    89            { register : "P6DIR" , regForceSet : true  },
    90            { register : "P6REN" , regForceSet : false },
    91            { register : "P7OUT" , regForceSet : true  },
    92            { register : "P7SEL" , regForceSet : false },
    93            { register : "P7DIR" , regForceSet : true  },
    94            { register : "P7REN" , regForceSet : false },
    95            { register : "P8OUT" , regForceSet : true  },
    96            { register : "P8SEL" , regForceSet : false },
    97            { register : "P8DIR" , regForceSet : true  },
    98            { register : "P8REN" , regForceSet : false }
    99        ];
   100
   101        /*
   102         *  GPIO Digital I/O Registers
   103         *
   104         *  One GIPO instance defines the configuration of an entire,
   105         *  8-bit wide digital I/O port.
   106         */
   107
   108        /*! Port 1 Output Register */
   109        config GpioBits8PxOut_t P1OUT = {
   110            Bit0        : BIT0_OFF,
   111            Bit1        : BIT1_OFF,
   112            Bit2        : BIT2_OFF,
   113            Bit3        : BIT3_OFF,
   114            Bit4        : BIT4_OFF,
   115            Bit5        : BIT5_OFF,
   116            Bit6        : BIT6_OFF,
   117            Bit7        : BIT7_OFF
   118        };
   119
   120        /*! Port 1 Port Select Register */
   121        config GpioBits8PxSel_t P1SEL = {
   122            Bit0        : BIT0_OFF,
   123            Bit1        : BIT1_OFF,
   124            Bit2        : BIT2_OFF,
   125            Bit3        : BIT3_OFF,
   126            Bit4        : BIT4_OFF,
   127            Bit5        : BIT5_OFF,
   128            Bit6        : BIT6_OFF,
   129            Bit7        : BIT7_OFF
   130        };
   131
   132        /*! Port 1 Direction Register */
   133        config GpioBits8PxDir_t P1DIR = {
   134            Bit0        : BIT0_OFF,
   135            Bit1        : BIT1_OFF,
   136            Bit2        : BIT2_OFF,
   137            Bit3        : BIT3_OFF,
   138            Bit4        : BIT4_OFF,
   139            Bit5        : BIT5_OFF,
   140            Bit6        : BIT6_OFF,
   141            Bit7        : BIT7_OFF
   142        };
   143
   144        /*! Port 1 Resistor Enable Register */
   145        config GpioBits8PxRen_t P1REN = {
   146            Bit0        : BIT0_OFF,
   147            Bit1        : BIT1_OFF,
   148            Bit2        : BIT2_OFF,
   149            Bit3        : BIT3_OFF,
   150            Bit4        : BIT4_OFF,
   151            Bit5        : BIT5_OFF,
   152            Bit6        : BIT6_OFF,
   153            Bit7        : BIT7_OFF
   154        };
   155
   156        /*! Port 2 Output Register */
   157        config GpioBits8PxOut_t P2OUT = {
   158            Bit0        : BIT0_OFF,
   159            Bit1        : BIT1_OFF,
   160            Bit2        : BIT2_OFF,
   161            Bit3        : BIT3_OFF,
   162            Bit4        : BIT4_OFF,
   163            Bit5        : BIT5_OFF,
   164            Bit6        : BIT6_OFF,
   165            Bit7        : BIT7_OFF
   166        };
   167
   168        /*! Port 2 Port Select Register */
   169        config GpioBits8PxSel_t P2SEL = {
   170            Bit0        : BIT0_OFF,
   171            Bit1        : BIT1_OFF,
   172            Bit2        : BIT2_OFF,
   173            Bit3        : BIT3_OFF,
   174            Bit4        : BIT4_OFF,
   175            Bit5        : BIT5_OFF,
   176            Bit6        : BIT6_OFF,
   177            Bit7        : BIT7_OFF
   178        };
   179
   180        /*! Port 2 Direction Register */
   181        config GpioBits8PxDir_t P2DIR = {
   182            Bit0        : BIT0_OFF,
   183            Bit1        : BIT1_OFF,
   184            Bit2        : BIT2_OFF,
   185            Bit3        : BIT3_OFF,
   186            Bit4        : BIT4_OFF,
   187            Bit5        : BIT5_OFF,
   188            Bit6        : BIT6_OFF,
   189            Bit7        : BIT7_OFF
   190        };
   191
   192        /*! Port 2 Resistor Enable Register */
   193        config GpioBits8PxRen_t P2REN = {
   194            Bit0        : BIT0_OFF,
   195            Bit1        : BIT1_OFF,
   196            Bit2        : BIT2_OFF,
   197            Bit3        : BIT3_OFF,
   198            Bit4        : BIT4_OFF,
   199            Bit5        : BIT5_OFF,
   200            Bit6        : BIT6_OFF,
   201            Bit7        : BIT7_OFF
   202        };
   203
   204        /*! Port 3 Output Register */
   205        config GpioBits8PxOut_t P3OUT = {
   206            Bit0        : BIT0_OFF,
   207            Bit1        : BIT1_OFF,
   208            Bit2        : BIT2_OFF,
   209            Bit3        : BIT3_OFF,
   210            Bit4        : BIT4_OFF,
   211            Bit5        : BIT5_OFF,
   212            Bit6        : BIT6_OFF,
   213            Bit7        : BIT7_OFF
   214        };
   215
   216        /*! Port 3 Port Select Register */
   217        config GpioBits8PxSel_t P3SEL = {
   218            Bit0        : BIT0_OFF,
   219            Bit1        : BIT1_OFF,
   220            Bit2        : BIT2_OFF,
   221            Bit3        : BIT3_OFF,
   222            Bit4        : BIT4_OFF,
   223            Bit5        : BIT5_OFF,
   224            Bit6        : BIT6_OFF,
   225            Bit7        : BIT7_OFF
   226        };
   227
   228        /*! Port 3 Direction Register */
   229        config GpioBits8PxDir_t P3DIR = {
   230            Bit0        : BIT0_OFF,
   231            Bit1        : BIT1_OFF,
   232            Bit2        : BIT2_OFF,
   233            Bit3        : BIT3_OFF,
   234            Bit4        : BIT4_OFF,
   235            Bit5        : BIT5_OFF,
   236            Bit6        : BIT6_OFF,
   237            Bit7        : BIT7_OFF
   238        };
   239
   240        /*! Port 3 Resistor Enable Register */
   241        config GpioBits8PxRen_t P3REN = {
   242            Bit0        : BIT0_OFF,
   243            Bit1        : BIT1_OFF,
   244            Bit2        : BIT2_OFF,
   245            Bit3        : BIT3_OFF,
   246            Bit4        : BIT4_OFF,
   247            Bit5        : BIT5_OFF,
   248            Bit6        : BIT6_OFF,
   249            Bit7        : BIT7_OFF
   250        };
   251
   252        /*! Port 4 Output Register */
   253        config GpioBits8PxOut_t P4OUT = {
   254            Bit0        : BIT0_OFF,
   255            Bit1        : BIT1_OFF,
   256            Bit2        : BIT2_OFF,
   257            Bit3        : BIT3_OFF,
   258            Bit4        : BIT4_OFF,
   259            Bit5        : BIT5_OFF,
   260            Bit6        : BIT6_OFF,
   261            Bit7        : BIT7_OFF
   262        };
   263
   264        /*! Port 4 Port Select Register */
   265        config GpioBits8PxSel_t P4SEL = {
   266            Bit0        : BIT0_OFF,
   267            Bit1        : BIT1_OFF,
   268            Bit2        : BIT2_OFF,
   269            Bit3        : BIT3_OFF,
   270            Bit4        : BIT4_OFF,
   271            Bit5        : BIT5_OFF,
   272            Bit6        : BIT6_OFF,
   273            Bit7        : BIT7_OFF
   274        };
   275
   276        /*! Port 4 Direction Register */
   277        config GpioBits8PxDir_t P4DIR = {
   278            Bit0        : BIT0_OFF,
   279            Bit1        : BIT1_OFF,
   280            Bit2        : BIT2_OFF,
   281            Bit3        : BIT3_OFF,
   282            Bit4        : BIT4_OFF,
   283            Bit5        : BIT5_OFF,
   284            Bit6        : BIT6_OFF,
   285            Bit7        : BIT7_OFF
   286        };
   287
   288        /*! Port 4 Resistor Enable Register */
   289        config GpioBits8PxRen_t P4REN = {
   290            Bit0        : BIT0_OFF,
   291            Bit1        : BIT1_OFF,
   292            Bit2        : BIT2_OFF,
   293            Bit3        : BIT3_OFF,
   294            Bit4        : BIT4_OFF,
   295            Bit5        : BIT5_OFF,
   296            Bit6        : BIT6_OFF,
   297            Bit7        : BIT7_OFF
   298        };
   299
   300            /*! Port 5 Output Register */
   301        config GpioBits8PxOut_t P5OUT = {
   302            Bit0        : BIT0_OFF,
   303            Bit1        : BIT1_OFF,
   304            Bit2        : BIT2_OFF,
   305            Bit3        : BIT3_OFF,
   306            Bit4        : BIT4_OFF,
   307            Bit5        : BIT5_OFF,
   308            Bit6        : BIT6_OFF,
   309            Bit7        : BIT7_OFF
   310        };
   311
   312        /*! Port 5 Port Select Register */
   313        config GpioBits8PxSel_t P5SEL = {
   314            Bit0        : BIT0_OFF,
   315            Bit1        : BIT1_OFF,
   316            Bit2        : BIT2_OFF,
   317            Bit3        : BIT3_OFF,
   318            Bit4        : BIT4_OFF,
   319            Bit5        : BIT5_OFF,
   320            Bit6        : BIT6_OFF,
   321            Bit7        : BIT7_OFF
   322        };
   323
   324        /*! Port 5 Direction Register */
   325        config GpioBits8PxDir_t P5DIR = {
   326            Bit0        : BIT0_OFF,
   327            Bit1        : BIT1_OFF,
   328            Bit2        : BIT2_OFF,
   329            Bit3        : BIT3_OFF,
   330            Bit4        : BIT4_OFF,
   331            Bit5        : BIT5_OFF,
   332            Bit6        : BIT6_OFF,
   333            Bit7        : BIT7_OFF
   334        };
   335
   336        /*! Port 5 Resistor Enable Register */
   337        config GpioBits8PxRen_t P5REN = {
   338            Bit0        : BIT0_OFF,
   339            Bit1        : BIT1_OFF,
   340            Bit2        : BIT2_OFF,
   341            Bit3        : BIT3_OFF,
   342            Bit4        : BIT4_OFF,
   343            Bit5        : BIT5_OFF,
   344            Bit6        : BIT6_OFF,
   345            Bit7        : BIT7_OFF
   346        };
   347
   348        /*! Port 6 Output Register */
   349        config GpioBits8PxOut_t P6OUT = {
   350            Bit0        : BIT0_OFF,
   351            Bit1        : BIT1_OFF,
   352            Bit2        : BIT2_OFF,
   353            Bit3        : BIT3_OFF,
   354            Bit4        : BIT4_OFF,
   355            Bit5        : BIT5_OFF,
   356            Bit6        : BIT6_OFF,
   357            Bit7        : BIT7_OFF
   358        };
   359
   360        /*! Port 6 Port Select Register */
   361        config GpioBits8PxSel_t P6SEL = {
   362            Bit0        : BIT0_OFF,
   363            Bit1        : BIT1_OFF,
   364            Bit2        : BIT2_OFF,
   365            Bit3        : BIT3_OFF,
   366            Bit4        : BIT4_OFF,
   367            Bit5        : BIT5_OFF,
   368            Bit6        : BIT6_OFF,
   369            Bit7        : BIT7_OFF
   370        };
   371
   372        /*! Port 6 Direction Register */
   373        config GpioBits8PxDir_t P6DIR = {
   374            Bit0        : BIT0_OFF,
   375            Bit1        : BIT1_OFF,
   376            Bit2        : BIT2_OFF,
   377            Bit3        : BIT3_OFF,
   378            Bit4        : BIT4_OFF,
   379            Bit5        : BIT5_OFF,
   380            Bit6        : BIT6_OFF,
   381            Bit7        : BIT7_OFF
   382        };
   383
   384        /*! Port 6 Resistor Enable Register */
   385        config GpioBits8PxRen_t P6REN = {
   386            Bit0        : BIT0_OFF,
   387            Bit1        : BIT1_OFF,
   388            Bit2        : BIT2_OFF,
   389            Bit3        : BIT3_OFF,
   390            Bit4        : BIT4_OFF,
   391            Bit5        : BIT5_OFF,
   392            Bit6        : BIT6_OFF,
   393            Bit7        : BIT7_OFF
   394        };
   395
   396        /*! Port 7 Output Register */
   397        config GpioBits8PxOut_t P7OUT = {
   398            Bit0        : BIT0_OFF,
   399            Bit1        : BIT1_OFF,
   400            Bit2        : BIT2_OFF,
   401            Bit3        : BIT3_OFF,
   402            Bit4        : BIT4_OFF,
   403            Bit5        : BIT5_OFF,
   404            Bit6        : BIT6_OFF,
   405            Bit7        : BIT7_OFF
   406        };
   407
   408        /*! Port 7 Port Select Register */
   409        config GpioBits8PxSel_t P7SEL = {
   410            Bit0        : BIT0_OFF,
   411            Bit1        : BIT1_OFF,
   412            Bit2        : BIT2_OFF,
   413            Bit3        : BIT3_OFF,
   414            Bit4        : BIT4_OFF,
   415            Bit5        : BIT5_OFF,
   416            Bit6        : BIT6_OFF,
   417            Bit7        : BIT7_OFF
   418        };
   419
   420        /*! Port 7 Direction Register */
   421        config GpioBits8PxDir_t P7DIR = {
   422            Bit0        : BIT0_OFF,
   423            Bit1        : BIT1_OFF,
   424            Bit2        : BIT2_OFF,
   425            Bit3        : BIT3_OFF,
   426            Bit4        : BIT4_OFF,
   427            Bit5        : BIT5_OFF,
   428            Bit6        : BIT6_OFF,
   429            Bit7        : BIT7_OFF
   430        };
   431
   432        /*! Port 7 Resistor Enable Register */
   433        config GpioBits8PxRen_t P7REN = {
   434            Bit0        : BIT0_OFF,
   435            Bit1        : BIT1_OFF,
   436            Bit2        : BIT2_OFF,
   437            Bit3        : BIT3_OFF,
   438            Bit4        : BIT4_OFF,
   439            Bit5        : BIT5_OFF,
   440            Bit6        : BIT6_OFF,
   441            Bit7        : BIT7_OFF
   442        };
   443
   444        /*! Port 8 Output Register */
   445        config GpioBits8PxOut_t P8OUT = {
   446            Bit0        : BIT0_OFF,
   447            Bit1        : BIT1_OFF,
   448            Bit2        : BIT2_OFF,
   449            Bit3        : BIT3_OFF,
   450            Bit4        : BIT4_OFF,
   451            Bit5        : BIT5_OFF,
   452            Bit6        : BIT6_OFF,
   453            Bit7        : BIT7_OFF
   454        };
   455
   456        /*! Port 8 Port Select Register */
   457        config GpioBits8PxSel_t P8SEL = {
   458            Bit0        : BIT0_OFF,
   459            Bit1        : BIT1_OFF,
   460            Bit2        : BIT2_OFF,
   461            Bit3        : BIT3_OFF,
   462            Bit4        : BIT4_OFF,
   463            Bit5        : BIT5_OFF,
   464            Bit6        : BIT6_OFF,
   465            Bit7        : BIT7_OFF
   466        };
   467
   468        /*! Port 8 Direction Register */
   469        config GpioBits8PxDir_t P8DIR = {
   470            Bit0        : BIT0_OFF,
   471            Bit1        : BIT1_OFF,
   472            Bit2        : BIT2_OFF,
   473            Bit3        : BIT3_OFF,
   474            Bit4        : BIT4_OFF,
   475            Bit5        : BIT5_OFF,
   476            Bit6        : BIT6_OFF,
   477            Bit7        : BIT7_OFF
   478        };
   479
   480        /*! Port 8 Resistor Enable Register */
   481        config GpioBits8PxRen_t P8REN = {
   482            Bit0        : BIT0_OFF,
   483            Bit1        : BIT1_OFF,
   484            Bit2        : BIT2_OFF,
   485            Bit3        : BIT3_OFF,
   486            Bit4        : BIT4_OFF,
   487            Bit5        : BIT5_OFF,
   488            Bit6        : BIT6_OFF,
   489            Bit7        : BIT7_OFF
   490        };
   491    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F24x

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F24x
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F24x.xdc
var GPIO_MSP430F24x = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F24x');
module-wide constants & types
    values of type GPIO_MSP430F24x.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F24x.BIT0_OFF;
        const GPIO_MSP430F24x.BIT0;
    values of type GPIO_MSP430F24x.Bit1_t//
        const GPIO_MSP430F24x.BIT1_OFF;
        const GPIO_MSP430F24x.BIT1;
    values of type GPIO_MSP430F24x.Bit2_t//
        const GPIO_MSP430F24x.BIT2_OFF;
        const GPIO_MSP430F24x.BIT2;
    values of type GPIO_MSP430F24x.Bit3_t//
        const GPIO_MSP430F24x.BIT3_OFF;
        const GPIO_MSP430F24x.BIT3;
    values of type GPIO_MSP430F24x.Bit4_t//
        const GPIO_MSP430F24x.BIT4_OFF;
        const GPIO_MSP430F24x.BIT4;
    values of type GPIO_MSP430F24x.Bit5_t//
        const GPIO_MSP430F24x.BIT5_OFF;
        const GPIO_MSP430F24x.BIT5;
    values of type GPIO_MSP430F24x.Bit6_t//
        const GPIO_MSP430F24x.BIT6_OFF;
        const GPIO_MSP430F24x.BIT6;
    values of type GPIO_MSP430F24x.Bit7_t//
        const GPIO_MSP430F24x.BIT7_OFF;
        const GPIO_MSP430F24x.BIT7;
    values of type GPIO_MSP430F24x.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F24x.IE_OFF// Disabled;
        const GPIO_MSP430F24x.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F24x.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F24x.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F24x.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F24x.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F24x.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F24x.PUDRE_OFF// Disabled;
        const GPIO_MSP430F24x.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F24x.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F24x.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F24x.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F24x.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F24x.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F24x.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F24x.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F24x.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F24x.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F24x.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F24x.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F24x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F24x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F24x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F24x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F24x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F24x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F24x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F24x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F24x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F24x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F24x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F24x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430F24x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430F24x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430F24x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL// Port 4 Port Select Register = GPIO_MSP430F24x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5DIR// Port 5 Direction Register = GPIO_MSP430F24x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5OUT// Port 5 Output Register = GPIO_MSP430F24x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5REN// Port 5 Resistor Enable Register = GPIO_MSP430F24x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5SEL// Port 5 Port Select Register = GPIO_MSP430F24x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6DIR// Port 6 Direction Register = GPIO_MSP430F24x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6OUT// Port 6 Output Register = GPIO_MSP430F24x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6REN// Port 6 Resistor Enable Register = GPIO_MSP430F24x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6SEL// Port 6 Port Select Register = GPIO_MSP430F24x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F24x.DevicePinFunctionSetting_t[8][6] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F24x device, there are 6 x 8 = 48 pins total = GPIO_MSP430F24x.DevicePin_t[8][6] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F24x.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            },
            {
                register: "P5OUT",
                regForceSet: true
            },
            {
                register: "P5SEL",
                regForceSet: false
            },
            {
                register: "P5DIR",
                regForceSet: true
            },
            {
                register: "P5REN",
                regForceSet: false
            },
            {
                register: "P6OUT",
                regForceSet: true
            },
            {
                register: "P6SEL",
                regForceSet: false
            },
            {
                register: "P6DIR",
                regForceSet: true
            },
            {
                register: "P6REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F24x.create// Create an instance-object(ADC12.Instance adc12, IComparator.Instance comparator, ISVS.Instance svs, BCSplus.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F24x.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F24x.Bit0_t
    const GPIO_MSP430F24x.BIT0_OFF;
    const GPIO_MSP430F24x.BIT0;
enum GPIO_MSP430F24x.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x.Bit1_t
    const GPIO_MSP430F24x.BIT1_OFF;
    const GPIO_MSP430F24x.BIT1;
enum GPIO_MSP430F24x.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x.Bit2_t
    const GPIO_MSP430F24x.BIT2_OFF;
    const GPIO_MSP430F24x.BIT2;
enum GPIO_MSP430F24x.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x.Bit3_t
    const GPIO_MSP430F24x.BIT3_OFF;
    const GPIO_MSP430F24x.BIT3;
enum GPIO_MSP430F24x.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x.Bit4_t
    const GPIO_MSP430F24x.BIT4_OFF;
    const GPIO_MSP430F24x.BIT4;
enum GPIO_MSP430F24x.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x.Bit5_t
    const GPIO_MSP430F24x.BIT5_OFF;
    const GPIO_MSP430F24x.BIT5;
enum GPIO_MSP430F24x.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x.Bit6_t
    const GPIO_MSP430F24x.BIT6_OFF;
    const GPIO_MSP430F24x.BIT6;
enum GPIO_MSP430F24x.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x.Bit7_t
    const GPIO_MSP430F24x.BIT7_OFF;
    const GPIO_MSP430F24x.BIT7;
enum GPIO_MSP430F24x.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F24x.InterruptEnable_t
    const GPIO_MSP430F24x.IE_OFF;
    // Disabled
    const GPIO_MSP430F24x.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F24x.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F24x.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F24x.OutputState_t
    const GPIO_MSP430F24x.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F24x.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F24x.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F24x.ResEnable_t
    const GPIO_MSP430F24x.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F24x.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F24x.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F24x.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F24x.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F24x.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F24x.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F24x.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F24x.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F24x.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F24x.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F24x.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F24x.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F24x.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F24x.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F24x.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F24x.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F24x.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F24x.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F24x.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F24x.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F24x.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F24x.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    // Port 4 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    // Port 5 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    // Port 5 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    // Port 5 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    // Port 5 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    // Port 6 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    // Port 6 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    // Port 6 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    // Port 6 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F24x.DevicePinFunctionSetting_t[8][6] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F24x.DevicePin_t[8][6] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F24x device, there are 6 x 8 = 48 pins total
    params.forceSetDefaultRegister = GPIO_MSP430F24x.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        },
        {
            register: "P5OUT",
            regForceSet: true
        },
        {
            register: "P5SEL",
            regForceSet: false
        },
        {
            register: "P5DIR",
            regForceSet: true
        },
        {
            register: "P5REN",
            regForceSet: false
        },
        {
            register: "P6OUT",
            regForceSet: true
        },
        {
            register: "P6SEL",
            regForceSet: false
        },
        {
            register: "P6DIR",
            regForceSet: true
        },
        {
            register: "P6REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F24x.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P1DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P1OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P1REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P1SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P2DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P2OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P2REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P2SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P3DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P3OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P3REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P3SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P4DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P4OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P4REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P4SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P5DIR // instance
index URL

Port 5 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P5DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P5OUT // instance
index URL

Port 5 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P5OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P5REN // instance
index URL

Port 5 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P5REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P5SEL // instance
index URL

Port 5 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P5SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P6DIR // instance
index URL

Port 6 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P6DIR = GPIO_MSP430F24x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P6OUT // instance
index URL

Port 6 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P6OUT = GPIO_MSP430F24x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P6REN // instance
index URL

Port 6 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P6REN = GPIO_MSP430F24x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.P6SEL // instance
index URL

Port 6 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.P6SEL = GPIO_MSP430F24x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.devicePinSetting = GPIO_MSP430F24x.DevicePinFunctionSetting_t[8][6] undefined;
config GPIO_MSP430F24x.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F24x device, there are 6 x 8 = 48 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.devicePins = GPIO_MSP430F24x.DevicePin_t[8][6] undefined;
config GPIO_MSP430F24x.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F24x.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    },
    {
        register: "P5OUT",
        regForceSet: true
    },
    {
        register: "P5SEL",
        regForceSet: false
    },
    {
        register: "P5DIR",
        regForceSet: true
    },
    {
        register: "P5REN",
        regForceSet: false
    },
    {
        register: "P6OUT",
        regForceSet: true
    },
    {
        register: "P6SEL",
        regForceSet: false
    },
    {
        register: "P6DIR",
        regForceSet: true
    },
    {
        register: "P6REN",
        regForceSet: false
    }
];
config GPIO_MSP430F24x.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F24x.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F24x.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F24x.create(ADC12.Instance adc12, IComparator.Instance comparator, ISVS.Instance svs, BCSplus.Instance clock, params);
// Create an instance-object
GPIO_MSP430F24x.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F24x.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F24x.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F24x.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F24x.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F24x.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:24 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F24x1

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F24x1
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F24x1.xdc
var GPIO_MSP430F24x1 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F24x1');
module-wide constants & types
    values of type GPIO_MSP430F24x1.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F24x1.BIT0_OFF;
        const GPIO_MSP430F24x1.BIT0;
    values of type GPIO_MSP430F24x1.Bit1_t//
        const GPIO_MSP430F24x1.BIT1_OFF;
        const GPIO_MSP430F24x1.BIT1;
    values of type GPIO_MSP430F24x1.Bit2_t//
        const GPIO_MSP430F24x1.BIT2_OFF;
        const GPIO_MSP430F24x1.BIT2;
    values of type GPIO_MSP430F24x1.Bit3_t//
        const GPIO_MSP430F24x1.BIT3_OFF;
        const GPIO_MSP430F24x1.BIT3;
    values of type GPIO_MSP430F24x1.Bit4_t//
        const GPIO_MSP430F24x1.BIT4_OFF;
        const GPIO_MSP430F24x1.BIT4;
    values of type GPIO_MSP430F24x1.Bit5_t//
        const GPIO_MSP430F24x1.BIT5_OFF;
        const GPIO_MSP430F24x1.BIT5;
    values of type GPIO_MSP430F24x1.Bit6_t//
        const GPIO_MSP430F24x1.BIT6_OFF;
        const GPIO_MSP430F24x1.BIT6;
    values of type GPIO_MSP430F24x1.Bit7_t//
        const GPIO_MSP430F24x1.BIT7_OFF;
        const GPIO_MSP430F24x1.BIT7;
    values of type GPIO_MSP430F24x1.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F24x1.IE_OFF// Disabled;
        const GPIO_MSP430F24x1.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F24x1.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F24x1.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F24x1.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F24x1.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F24x1.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F24x1.PUDRE_OFF// Disabled;
        const GPIO_MSP430F24x1.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F24x1.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F24x1.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F24x1.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F24x1.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F24x1.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F24x1.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F24x1.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x1.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x1.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x1.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x1.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x1.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x1.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x1.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x1.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F24x1.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F24x1.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F24x1.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F24x1.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F24x1.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F24x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F24x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F24x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F24x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F24x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F24x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F24x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F24x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F24x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F24x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F24x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F24x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430F24x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430F24x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430F24x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL// Port 4 Port Select Register = GPIO_MSP430F24x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5DIR// Port 5 Direction Register = GPIO_MSP430F24x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5OUT// Port 5 Output Register = GPIO_MSP430F24x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5REN// Port 5 Resistor Enable Register = GPIO_MSP430F24x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5SEL// Port 5 Port Select Register = GPIO_MSP430F24x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6DIR// Port 6 Direction Register = GPIO_MSP430F24x1.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6OUT// Port 6 Output Register = GPIO_MSP430F24x1.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6REN// Port 6 Resistor Enable Register = GPIO_MSP430F24x1.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6SEL// Port 6 Port Select Register = GPIO_MSP430F24x1.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F24x1.DevicePinFunctionSetting_t[8][6] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F24x1 device, there are 6 x 8 = 48 pins total = GPIO_MSP430F24x1.DevicePin_t[8][6] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F24x1.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            },
            {
                register: "P5OUT",
                regForceSet: true
            },
            {
                register: "P5SEL",
                regForceSet: false
            },
            {
                register: "P5DIR",
                regForceSet: true
            },
            {
                register: "P5REN",
                regForceSet: false
            },
            {
                register: "P6OUT",
                regForceSet: true
            },
            {
                register: "P6SEL",
                regForceSet: false
            },
            {
                register: "P6DIR",
                regForceSet: true
            },
            {
                register: "P6REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F24x1.create// Create an instance-object(IComparator.Instance comparator, ISVS.Instance svs, BCSplus.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F24x1.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.Bit0_t
    const GPIO_MSP430F24x1.BIT0_OFF;
    const GPIO_MSP430F24x1.BIT0;
enum GPIO_MSP430F24x1.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.Bit1_t
    const GPIO_MSP430F24x1.BIT1_OFF;
    const GPIO_MSP430F24x1.BIT1;
enum GPIO_MSP430F24x1.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.Bit2_t
    const GPIO_MSP430F24x1.BIT2_OFF;
    const GPIO_MSP430F24x1.BIT2;
enum GPIO_MSP430F24x1.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.Bit3_t
    const GPIO_MSP430F24x1.BIT3_OFF;
    const GPIO_MSP430F24x1.BIT3;
enum GPIO_MSP430F24x1.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.Bit4_t
    const GPIO_MSP430F24x1.BIT4_OFF;
    const GPIO_MSP430F24x1.BIT4;
enum GPIO_MSP430F24x1.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.Bit5_t
    const GPIO_MSP430F24x1.BIT5_OFF;
    const GPIO_MSP430F24x1.BIT5;
enum GPIO_MSP430F24x1.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.Bit6_t
    const GPIO_MSP430F24x1.BIT6_OFF;
    const GPIO_MSP430F24x1.BIT6;
enum GPIO_MSP430F24x1.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.Bit7_t
    const GPIO_MSP430F24x1.BIT7_OFF;
    const GPIO_MSP430F24x1.BIT7;
enum GPIO_MSP430F24x1.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.InterruptEnable_t
    const GPIO_MSP430F24x1.IE_OFF;
    // Disabled
    const GPIO_MSP430F24x1.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F24x1.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F24x1.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.OutputState_t
    const GPIO_MSP430F24x1.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F24x1.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F24x1.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F24x1.ResEnable_t
    const GPIO_MSP430F24x1.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F24x1.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F24x1.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F24x1.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F24x1.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F24x1.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F24x1.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F24x1.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F24x1.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F24x1.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F24x1.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F24x1.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F24x1.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F24x1.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F24x1.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F24x1.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F24x1.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F24x1.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F24x1.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F24x1.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F24x1.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F24x1.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F24x1.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F24x1.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    // Port 4 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    // Port 5 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    // Port 5 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    // Port 5 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    // Port 5 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    // Port 6 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    // Port 6 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    // Port 6 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    // Port 6 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F24x1.DevicePinFunctionSetting_t[8][6] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F24x1.DevicePin_t[8][6] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F24x1 device, there are 6 x 8 = 48 pins total
    params.forceSetDefaultRegister = GPIO_MSP430F24x1.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        },
        {
            register: "P5OUT",
            regForceSet: true
        },
        {
            register: "P5SEL",
            regForceSet: false
        },
        {
            register: "P5DIR",
            regForceSet: true
        },
        {
            register: "P5REN",
            regForceSet: false
        },
        {
            register: "P6OUT",
            regForceSet: true
        },
        {
            register: "P6SEL",
            regForceSet: false
        },
        {
            register: "P6DIR",
            regForceSet: true
        },
        {
            register: "P6REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F24x1.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P1DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P1OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P1REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P1SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P2DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P2OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P2REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P2SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P3DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P3OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P3REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P3SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P4DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P4OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P4REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P4SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P5DIR // instance
index URL

Port 5 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P5DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P5OUT // instance
index URL

Port 5 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P5OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P5REN // instance
index URL

Port 5 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P5REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P5SEL // instance
index URL

Port 5 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P5SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P6DIR // instance
index URL

Port 6 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P6DIR = GPIO_MSP430F24x1.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P6OUT // instance
index URL

Port 6 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P6OUT = GPIO_MSP430F24x1.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P6REN // instance
index URL

Port 6 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P6REN = GPIO_MSP430F24x1.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.P6SEL // instance
index URL

Port 6 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.P6SEL = GPIO_MSP430F24x1.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F24x1.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.devicePinSetting = GPIO_MSP430F24x1.DevicePinFunctionSetting_t[8][6] undefined;
config GPIO_MSP430F24x1.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F24x1 device, there are 6 x 8 = 48 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.devicePins = GPIO_MSP430F24x1.DevicePin_t[8][6] undefined;
config GPIO_MSP430F24x1.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F24x1.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    },
    {
        register: "P5OUT",
        regForceSet: true
    },
    {
        register: "P5SEL",
        regForceSet: false
    },
    {
        register: "P5DIR",
        regForceSet: true
    },
    {
        register: "P5REN",
        regForceSet: false
    },
    {
        register: "P6OUT",
        regForceSet: true
    },
    {
        register: "P6SEL",
        regForceSet: false
    },
    {
        register: "P6DIR",
        regForceSet: true
    },
    {
        register: "P6REN",
        regForceSet: false
    }
];
config GPIO_MSP430F24x1.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F24x1.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F24x1.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F24x1.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F24x1.create(IComparator.Instance comparator, ISVS.Instance svs, BCSplus.Instance clock, params);
// Create an instance-object
GPIO_MSP430F24x1.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F24x1.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F24x1.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F24x1.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F24x1.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F24x1.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:25 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F24x1

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    13    import ti.catalog.msp430.peripherals.svs.ISVS as SVS;
    14    import ti.catalog.msp430.peripherals.clock.BCSplus as BCSplus;
    15
    16    /*!
    17     *  ======== GPIO for MSP430F24x1 ========
    18     *  MSP430 General Purpose Input Output Ports
    19     */
    20    metaonly module GPIO_MSP430F24x1 inherits IGPIO {
    21        /*!
    22         *  ======== create ========
    23         *  Create an instance of this peripheral. Use a customized
    24         *  init function so that we can get access to the
    25         *  Comparator_A, SVS, and BCS+ instances.
    26         */
    27        create(Comparator.Instance comparator, SVS.Instance svs, BCSplus.Instance clock);
    28
    29    instance:
    30        /*! @_nodoc */
    31        config Comparator.Instance comparator;
    32
    33        /*! @_nodoc */
    34        config SVS.Instance svs;
    35
    36        /*! @_nodoc */
    37        config BCSplus.Instance clock;
    38
    39        /*! Define an array to describe all device pins. The 1st dimension
    40         *  denotes the port, the second the pin on that port. On an
    41         *  MSP430F24x1 device, there are 6 x 8 = 48 pins total.
    42         */
    43
    44        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    45         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    46        /* TODO: For this device the config variable definition has been moved into the
    47         * corresponding XS file due to its size. This needs a more consistent solution. */
    48        config DevicePin_t devicePins[6][8];
    49
    50        /*! Implementation of Device Pin Functional Configuration */
    51        override config DevicePinFunctionSetting_t devicePinSetting[6][8];
    52
    53        /*! Determine if each Register needs to be forced set or not */
    54        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    55        [
    56            { register : "P1OUT" , regForceSet : true  },
    57            { register : "P1SEL" , regForceSet : false },
    58            { register : "P1DIR" , regForceSet : true  },
    59            { register : "P1REN" , regForceSet : false },
    60            { register : "P1IES" , regForceSet : true },
    61            { register : "P1IFG" , regForceSet : true },
    62            { register : "P1IE"  , regForceSet : false },
    63            { register : "P2OUT" , regForceSet : true  },
    64            { register : "P2SEL" , regForceSet : false },
    65            { register : "P2DIR" , regForceSet : true  },
    66            { register : "P2REN" , regForceSet : false },
    67            { register : "P2IES" , regForceSet : true },
    68            { register : "P2IFG" , regForceSet : true },
    69            { register : "P2IE"  , regForceSet : false },
    70            { register : "P3OUT" , regForceSet : true  },
    71            { register : "P3SEL" , regForceSet : false },
    72            { register : "P3DIR" , regForceSet : true  },
    73            { register : "P3REN" , regForceSet : false },
    74            { register : "P4OUT" , regForceSet : true  },
    75            { register : "P4SEL" , regForceSet : false },
    76            { register : "P4DIR" , regForceSet : true  },
    77            { register : "P4REN" , regForceSet : false },
    78            { register : "P5OUT" , regForceSet : true  },
    79            { register : "P5SEL" , regForceSet : false },
    80            { register : "P5DIR" , regForceSet : true  },
    81            { register : "P5REN" , regForceSet : false },
    82            { register : "P6OUT" , regForceSet : true  },
    83            { register : "P6SEL" , regForceSet : false },
    84            { register : "P6DIR" , regForceSet : true  },
    85            { register : "P6REN" , regForceSet : false }
    86        ];
    87
    88        /*
    89         *  GPIO Digital I/O Registers
    90         *
    91         *  One GIPO instance defines the configuration of an entire,
    92         *  8-bit wide digital I/O port.
    93         */
    94
    95        /*! Port 1 Output Register */
    96        config GpioBits8PxOut_t P1OUT = {
    97            Bit0        : BIT0_OFF,
    98            Bit1        : BIT1_OFF,
    99            Bit2        : BIT2_OFF,
   100            Bit3        : BIT3_OFF,
   101            Bit4        : BIT4_OFF,
   102            Bit5        : BIT5_OFF,
   103            Bit6        : BIT6_OFF,
   104            Bit7        : BIT7_OFF
   105        };
   106
   107        /*! Port 1 Port Select Register */
   108        config GpioBits8PxSel_t P1SEL = {
   109            Bit0        : BIT0_OFF,
   110            Bit1        : BIT1_OFF,
   111            Bit2        : BIT2_OFF,
   112            Bit3        : BIT3_OFF,
   113            Bit4        : BIT4_OFF,
   114            Bit5        : BIT5_OFF,
   115            Bit6        : BIT6_OFF,
   116            Bit7        : BIT7_OFF
   117        };
   118
   119        /*! Port 1 Direction Register */
   120        config GpioBits8PxDir_t P1DIR = {
   121            Bit0        : BIT0_OFF,
   122            Bit1        : BIT1_OFF,
   123            Bit2        : BIT2_OFF,
   124            Bit3        : BIT3_OFF,
   125            Bit4        : BIT4_OFF,
   126            Bit5        : BIT5_OFF,
   127            Bit6        : BIT6_OFF,
   128            Bit7        : BIT7_OFF
   129        };
   130
   131        /*! Port 1 Resistor Enable Register */
   132        config GpioBits8PxRen_t P1REN = {
   133            Bit0        : BIT0_OFF,
   134            Bit1        : BIT1_OFF,
   135            Bit2        : BIT2_OFF,
   136            Bit3        : BIT3_OFF,
   137            Bit4        : BIT4_OFF,
   138            Bit5        : BIT5_OFF,
   139            Bit6        : BIT6_OFF,
   140            Bit7        : BIT7_OFF
   141        };
   142
   143        /*! Port 2 Output Register */
   144        config GpioBits8PxOut_t P2OUT = {
   145            Bit0        : BIT0_OFF,
   146            Bit1        : BIT1_OFF,
   147            Bit2        : BIT2_OFF,
   148            Bit3        : BIT3_OFF,
   149            Bit4        : BIT4_OFF,
   150            Bit5        : BIT5_OFF,
   151            Bit6        : BIT6_OFF,
   152            Bit7        : BIT7_OFF
   153        };
   154
   155        /*! Port 2 Port Select Register */
   156        config GpioBits8PxSel_t P2SEL = {
   157            Bit0        : BIT0_OFF,
   158            Bit1        : BIT1_OFF,
   159            Bit2        : BIT2_OFF,
   160            Bit3        : BIT3_OFF,
   161            Bit4        : BIT4_OFF,
   162            Bit5        : BIT5_OFF,
   163            Bit6        : BIT6_OFF,
   164            Bit7        : BIT7_OFF
   165        };
   166
   167        /*! Port 2 Direction Register */
   168        config GpioBits8PxDir_t P2DIR = {
   169            Bit0        : BIT0_OFF,
   170            Bit1        : BIT1_OFF,
   171            Bit2        : BIT2_OFF,
   172            Bit3        : BIT3_OFF,
   173            Bit4        : BIT4_OFF,
   174            Bit5        : BIT5_OFF,
   175            Bit6        : BIT6_OFF,
   176            Bit7        : BIT7_OFF
   177        };
   178
   179        /*! Port 2 Resistor Enable Register */
   180        config GpioBits8PxRen_t P2REN = {
   181            Bit0        : BIT0_OFF,
   182            Bit1        : BIT1_OFF,
   183            Bit2        : BIT2_OFF,
   184            Bit3        : BIT3_OFF,
   185            Bit4        : BIT4_OFF,
   186            Bit5        : BIT5_OFF,
   187            Bit6        : BIT6_OFF,
   188            Bit7        : BIT7_OFF
   189        };
   190
   191        /*! Port 3 Output Register */
   192        config GpioBits8PxOut_t P3OUT = {
   193            Bit0        : BIT0_OFF,
   194            Bit1        : BIT1_OFF,
   195            Bit2        : BIT2_OFF,
   196            Bit3        : BIT3_OFF,
   197            Bit4        : BIT4_OFF,
   198            Bit5        : BIT5_OFF,
   199            Bit6        : BIT6_OFF,
   200            Bit7        : BIT7_OFF
   201        };
   202
   203        /*! Port 3 Port Select Register */
   204        config GpioBits8PxSel_t P3SEL = {
   205            Bit0        : BIT0_OFF,
   206            Bit1        : BIT1_OFF,
   207            Bit2        : BIT2_OFF,
   208            Bit3        : BIT3_OFF,
   209            Bit4        : BIT4_OFF,
   210            Bit5        : BIT5_OFF,
   211            Bit6        : BIT6_OFF,
   212            Bit7        : BIT7_OFF
   213        };
   214
   215        /*! Port 3 Direction Register */
   216        config GpioBits8PxDir_t P3DIR = {
   217            Bit0        : BIT0_OFF,
   218            Bit1        : BIT1_OFF,
   219            Bit2        : BIT2_OFF,
   220            Bit3        : BIT3_OFF,
   221            Bit4        : BIT4_OFF,
   222            Bit5        : BIT5_OFF,
   223            Bit6        : BIT6_OFF,
   224            Bit7        : BIT7_OFF
   225        };
   226
   227        /*! Port 3 Resistor Enable Register */
   228        config GpioBits8PxRen_t P3REN = {
   229            Bit0        : BIT0_OFF,
   230            Bit1        : BIT1_OFF,
   231            Bit2        : BIT2_OFF,
   232            Bit3        : BIT3_OFF,
   233            Bit4        : BIT4_OFF,
   234            Bit5        : BIT5_OFF,
   235            Bit6        : BIT6_OFF,
   236            Bit7        : BIT7_OFF
   237        };
   238
   239        /*! Port 4 Output Register */
   240        config GpioBits8PxOut_t P4OUT = {
   241            Bit0        : BIT0_OFF,
   242            Bit1        : BIT1_OFF,
   243            Bit2        : BIT2_OFF,
   244            Bit3        : BIT3_OFF,
   245            Bit4        : BIT4_OFF,
   246            Bit5        : BIT5_OFF,
   247            Bit6        : BIT6_OFF,
   248            Bit7        : BIT7_OFF
   249        };
   250
   251        /*! Port 4 Port Select Register */
   252        config GpioBits8PxSel_t P4SEL = {
   253            Bit0        : BIT0_OFF,
   254            Bit1        : BIT1_OFF,
   255            Bit2        : BIT2_OFF,
   256            Bit3        : BIT3_OFF,
   257            Bit4        : BIT4_OFF,
   258            Bit5        : BIT5_OFF,
   259            Bit6        : BIT6_OFF,
   260            Bit7        : BIT7_OFF
   261        };
   262
   263        /*! Port 4 Direction Register */
   264        config GpioBits8PxDir_t P4DIR = {
   265            Bit0        : BIT0_OFF,
   266            Bit1        : BIT1_OFF,
   267            Bit2        : BIT2_OFF,
   268            Bit3        : BIT3_OFF,
   269            Bit4        : BIT4_OFF,
   270            Bit5        : BIT5_OFF,
   271            Bit6        : BIT6_OFF,
   272            Bit7        : BIT7_OFF
   273        };
   274
   275        /*! Port 4 Resistor Enable Register */
   276        config GpioBits8PxRen_t P4REN = {
   277            Bit0        : BIT0_OFF,
   278            Bit1        : BIT1_OFF,
   279            Bit2        : BIT2_OFF,
   280            Bit3        : BIT3_OFF,
   281            Bit4        : BIT4_OFF,
   282            Bit5        : BIT5_OFF,
   283            Bit6        : BIT6_OFF,
   284            Bit7        : BIT7_OFF
   285        };
   286
   287            /*! Port 5 Output Register */
   288        config GpioBits8PxOut_t P5OUT = {
   289            Bit0        : BIT0_OFF,
   290            Bit1        : BIT1_OFF,
   291            Bit2        : BIT2_OFF,
   292            Bit3        : BIT3_OFF,
   293            Bit4        : BIT4_OFF,
   294            Bit5        : BIT5_OFF,
   295            Bit6        : BIT6_OFF,
   296            Bit7        : BIT7_OFF
   297        };
   298
   299        /*! Port 5 Port Select Register */
   300        config GpioBits8PxSel_t P5SEL = {
   301            Bit0        : BIT0_OFF,
   302            Bit1        : BIT1_OFF,
   303            Bit2        : BIT2_OFF,
   304            Bit3        : BIT3_OFF,
   305            Bit4        : BIT4_OFF,
   306            Bit5        : BIT5_OFF,
   307            Bit6        : BIT6_OFF,
   308            Bit7        : BIT7_OFF
   309        };
   310
   311        /*! Port 5 Direction Register */
   312        config GpioBits8PxDir_t P5DIR = {
   313            Bit0        : BIT0_OFF,
   314            Bit1        : BIT1_OFF,
   315            Bit2        : BIT2_OFF,
   316            Bit3        : BIT3_OFF,
   317            Bit4        : BIT4_OFF,
   318            Bit5        : BIT5_OFF,
   319            Bit6        : BIT6_OFF,
   320            Bit7        : BIT7_OFF
   321        };
   322
   323        /*! Port 5 Resistor Enable Register */
   324        config GpioBits8PxRen_t P5REN = {
   325            Bit0        : BIT0_OFF,
   326            Bit1        : BIT1_OFF,
   327            Bit2        : BIT2_OFF,
   328            Bit3        : BIT3_OFF,
   329            Bit4        : BIT4_OFF,
   330            Bit5        : BIT5_OFF,
   331            Bit6        : BIT6_OFF,
   332            Bit7        : BIT7_OFF
   333        };
   334
   335        /*! Port 6 Output Register */
   336        config GpioBits8PxOut_t P6OUT = {
   337            Bit0        : BIT0_OFF,
   338            Bit1        : BIT1_OFF,
   339            Bit2        : BIT2_OFF,
   340            Bit3        : BIT3_OFF,
   341            Bit4        : BIT4_OFF,
   342            Bit5        : BIT5_OFF,
   343            Bit6        : BIT6_OFF,
   344            Bit7        : BIT7_OFF
   345        };
   346
   347        /*! Port 6 Port Select Register */
   348        config GpioBits8PxSel_t P6SEL = {
   349            Bit0        : BIT0_OFF,
   350            Bit1        : BIT1_OFF,
   351            Bit2        : BIT2_OFF,
   352            Bit3        : BIT3_OFF,
   353            Bit4        : BIT4_OFF,
   354            Bit5        : BIT5_OFF,
   355            Bit6        : BIT6_OFF,
   356            Bit7        : BIT7_OFF
   357        };
   358
   359        /*! Port 6 Direction Register */
   360        config GpioBits8PxDir_t P6DIR = {
   361            Bit0        : BIT0_OFF,
   362            Bit1        : BIT1_OFF,
   363            Bit2        : BIT2_OFF,
   364            Bit3        : BIT3_OFF,
   365            Bit4        : BIT4_OFF,
   366            Bit5        : BIT5_OFF,
   367            Bit6        : BIT6_OFF,
   368            Bit7        : BIT7_OFF
   369        };
   370
   371        /*! Port 6 Resistor Enable Register */
   372        config GpioBits8PxRen_t P6REN = {
   373            Bit0        : BIT0_OFF,
   374            Bit1        : BIT1_OFF,
   375            Bit2        : BIT2_OFF,
   376            Bit3        : BIT3_OFF,
   377            Bit4        : BIT4_OFF,
   378            Bit5        : BIT5_OFF,
   379            Bit6        : BIT6_OFF,
   380            Bit7        : BIT7_OFF
   381        };
   382    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F261x

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F261x
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F261x.xdc
var GPIO_MSP430F261x = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F261x');
module-wide constants & types
    values of type GPIO_MSP430F261x.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F261x.BIT0_OFF;
        const GPIO_MSP430F261x.BIT0;
    values of type GPIO_MSP430F261x.Bit1_t//
        const GPIO_MSP430F261x.BIT1_OFF;
        const GPIO_MSP430F261x.BIT1;
    values of type GPIO_MSP430F261x.Bit2_t//
        const GPIO_MSP430F261x.BIT2_OFF;
        const GPIO_MSP430F261x.BIT2;
    values of type GPIO_MSP430F261x.Bit3_t//
        const GPIO_MSP430F261x.BIT3_OFF;
        const GPIO_MSP430F261x.BIT3;
    values of type GPIO_MSP430F261x.Bit4_t//
        const GPIO_MSP430F261x.BIT4_OFF;
        const GPIO_MSP430F261x.BIT4;
    values of type GPIO_MSP430F261x.Bit5_t//
        const GPIO_MSP430F261x.BIT5_OFF;
        const GPIO_MSP430F261x.BIT5;
    values of type GPIO_MSP430F261x.Bit6_t//
        const GPIO_MSP430F261x.BIT6_OFF;
        const GPIO_MSP430F261x.BIT6;
    values of type GPIO_MSP430F261x.Bit7_t//
        const GPIO_MSP430F261x.BIT7_OFF;
        const GPIO_MSP430F261x.BIT7;
    values of type GPIO_MSP430F261x.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F261x.IE_OFF// Disabled;
        const GPIO_MSP430F261x.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F261x.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F261x.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F261x.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F261x.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F261x.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F261x.PUDRE_OFF// Disabled;
        const GPIO_MSP430F261x.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F261x.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F261x.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F261x.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F261x.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F261x.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F261x.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F261x.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F261x.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F261x.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F261x.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F261x.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F261x.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F261x.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F261x.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F261x.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F261x.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F261x.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F261x.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F261x.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F261x.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F261x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F261x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F261x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F261x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F261x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F261x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F261x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F261x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F261x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F261x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F261x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F261x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430F261x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430F261x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430F261x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL// Port 4 Port Select Register = GPIO_MSP430F261x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5DIR// Port 5 Direction Register = GPIO_MSP430F261x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5OUT// Port 5 Output Register = GPIO_MSP430F261x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5REN// Port 5 Resistor Enable Register = GPIO_MSP430F261x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5SEL// Port 5 Port Select Register = GPIO_MSP430F261x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6DIR// Port 6 Direction Register = GPIO_MSP430F261x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6OUT// Port 6 Output Register = GPIO_MSP430F261x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6REN// Port 6 Resistor Enable Register = GPIO_MSP430F261x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6SEL// Port 6 Port Select Register = GPIO_MSP430F261x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7DIR// Port 7 Direction Register = GPIO_MSP430F261x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7OUT// Port 7 Output Register = GPIO_MSP430F261x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7REN// Port 7 Resistor Enable Register = GPIO_MSP430F261x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7SEL// Port 7 Port Select Register = GPIO_MSP430F261x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8DIR// Port 8 Direction Register = GPIO_MSP430F261x.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8OUT// Port 8 Output Register = GPIO_MSP430F261x.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8REN// Port 8 Resistor Enable Register = GPIO_MSP430F261x.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8SEL// Port 8 Port Select Register = GPIO_MSP430F261x.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F261x.DevicePinFunctionSetting_t[8][8] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F261x device, there are 8 x 8 = 64 pins total = GPIO_MSP430F261x.DevicePin_t[8][8] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F261x.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            },
            {
                register: "P5OUT",
                regForceSet: true
            },
            {
                register: "P5SEL",
                regForceSet: false
            },
            {
                register: "P5DIR",
                regForceSet: true
            },
            {
                register: "P5REN",
                regForceSet: false
            },
            {
                register: "P6OUT",
                regForceSet: true
            },
            {
                register: "P6SEL",
                regForceSet: false
            },
            {
                register: "P6DIR",
                regForceSet: true
            },
            {
                register: "P6REN",
                regForceSet: false
            },
            {
                register: "P7OUT",
                regForceSet: true
            },
            {
                register: "P7SEL",
                regForceSet: false
            },
            {
                register: "P7DIR",
                regForceSet: true
            },
            {
                register: "P7REN",
                regForceSet: false
            },
            {
                register: "P8OUT",
                regForceSet: true
            },
            {
                register: "P8SEL",
                regForceSet: false
            },
            {
                register: "P8DIR",
                regForceSet: true
            },
            {
                register: "P8REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F261x.create// Create an instance-object(ADC12.Instance adc12, IComparator.Instance comparator, ISVS.Instance svs, DAC12.Instance dac12, BCSplus.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F261x.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F261x.Bit0_t
    const GPIO_MSP430F261x.BIT0_OFF;
    const GPIO_MSP430F261x.BIT0;
enum GPIO_MSP430F261x.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F261x.Bit1_t
    const GPIO_MSP430F261x.BIT1_OFF;
    const GPIO_MSP430F261x.BIT1;
enum GPIO_MSP430F261x.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F261x.Bit2_t
    const GPIO_MSP430F261x.BIT2_OFF;
    const GPIO_MSP430F261x.BIT2;
enum GPIO_MSP430F261x.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F261x.Bit3_t
    const GPIO_MSP430F261x.BIT3_OFF;
    const GPIO_MSP430F261x.BIT3;
enum GPIO_MSP430F261x.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F261x.Bit4_t
    const GPIO_MSP430F261x.BIT4_OFF;
    const GPIO_MSP430F261x.BIT4;
enum GPIO_MSP430F261x.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F261x.Bit5_t
    const GPIO_MSP430F261x.BIT5_OFF;
    const GPIO_MSP430F261x.BIT5;
enum GPIO_MSP430F261x.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F261x.Bit6_t
    const GPIO_MSP430F261x.BIT6_OFF;
    const GPIO_MSP430F261x.BIT6;
enum GPIO_MSP430F261x.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F261x.Bit7_t
    const GPIO_MSP430F261x.BIT7_OFF;
    const GPIO_MSP430F261x.BIT7;
enum GPIO_MSP430F261x.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F261x.InterruptEnable_t
    const GPIO_MSP430F261x.IE_OFF;
    // Disabled
    const GPIO_MSP430F261x.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F261x.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F261x.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F261x.OutputState_t
    const GPIO_MSP430F261x.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F261x.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F261x.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F261x.ResEnable_t
    const GPIO_MSP430F261x.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F261x.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F261x.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F261x.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F261x.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F261x.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F261x.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F261x.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F261x.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F261x.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F261x.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F261x.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F261x.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F261x.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F261x.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F261x.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F261x.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F261x.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F261x.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F261x.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F261x.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F261x.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F261x.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F261x.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    // Port 4 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    // Port 5 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    // Port 5 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    // Port 5 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    // Port 5 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    // Port 6 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    // Port 6 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    // Port 6 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    // Port 6 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    // Port 7 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    // Port 7 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    // Port 7 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    // Port 7 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    // Port 8 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    // Port 8 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    // Port 8 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    // Port 8 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F261x.DevicePinFunctionSetting_t[8][8] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F261x.DevicePin_t[8][8] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F261x device, there are 8 x 8 = 64 pins total
    params.forceSetDefaultRegister = GPIO_MSP430F261x.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        },
        {
            register: "P5OUT",
            regForceSet: true
        },
        {
            register: "P5SEL",
            regForceSet: false
        },
        {
            register: "P5DIR",
            regForceSet: true
        },
        {
            register: "P5REN",
            regForceSet: false
        },
        {
            register: "P6OUT",
            regForceSet: true
        },
        {
            register: "P6SEL",
            regForceSet: false
        },
        {
            register: "P6DIR",
            regForceSet: true
        },
        {
            register: "P6REN",
            regForceSet: false
        },
        {
            register: "P7OUT",
            regForceSet: true
        },
        {
            register: "P7SEL",
            regForceSet: false
        },
        {
            register: "P7DIR",
            regForceSet: true
        },
        {
            register: "P7REN",
            regForceSet: false
        },
        {
            register: "P8OUT",
            regForceSet: true
        },
        {
            register: "P8SEL",
            regForceSet: false
        },
        {
            register: "P8DIR",
            regForceSet: true
        },
        {
            register: "P8REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F261x.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P1DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P1OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P1REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P1SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P2DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P2OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P2REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P2SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P3DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P3OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P3REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P3SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P4DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P4OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P4REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P4SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P5DIR // instance
index URL

Port 5 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P5DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P5OUT // instance
index URL

Port 5 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P5OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P5REN // instance
index URL

Port 5 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P5REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P5SEL // instance
index URL

Port 5 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P5SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P6DIR // instance
index URL

Port 6 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P6DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P6OUT // instance
index URL

Port 6 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P6OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P6REN // instance
index URL

Port 6 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P6REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P6SEL // instance
index URL

Port 6 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P6SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P7DIR // instance
index URL

Port 7 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P7DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P7OUT // instance
index URL

Port 7 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P7OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P7REN // instance
index URL

Port 7 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P7REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P7SEL // instance
index URL

Port 7 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P7SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P8DIR // instance
index URL

Port 8 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P8DIR = GPIO_MSP430F261x.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P8OUT // instance
index URL

Port 8 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P8OUT = GPIO_MSP430F261x.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P8REN // instance
index URL

Port 8 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P8REN = GPIO_MSP430F261x.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.P8SEL // instance
index URL

Port 8 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.P8SEL = GPIO_MSP430F261x.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F261x.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.devicePinSetting = GPIO_MSP430F261x.DevicePinFunctionSetting_t[8][8] undefined;
config GPIO_MSP430F261x.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F261x device, there are 8 x 8 = 64 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.devicePins = GPIO_MSP430F261x.DevicePin_t[8][8] undefined;
config GPIO_MSP430F261x.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F261x.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    },
    {
        register: "P5OUT",
        regForceSet: true
    },
    {
        register: "P5SEL",
        regForceSet: false
    },
    {
        register: "P5DIR",
        regForceSet: true
    },
    {
        register: "P5REN",
        regForceSet: false
    },
    {
        register: "P6OUT",
        regForceSet: true
    },
    {
        register: "P6SEL",
        regForceSet: false
    },
    {
        register: "P6DIR",
        regForceSet: true
    },
    {
        register: "P6REN",
        regForceSet: false
    },
    {
        register: "P7OUT",
        regForceSet: true
    },
    {
        register: "P7SEL",
        regForceSet: false
    },
    {
        register: "P7DIR",
        regForceSet: true
    },
    {
        register: "P7REN",
        regForceSet: false
    },
    {
        register: "P8OUT",
        regForceSet: true
    },
    {
        register: "P8SEL",
        regForceSet: false
    },
    {
        register: "P8DIR",
        regForceSet: true
    },
    {
        register: "P8REN",
        regForceSet: false
    }
];
config GPIO_MSP430F261x.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F261x.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F261x.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F261x.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F261x.create(ADC12.Instance adc12, IComparator.Instance comparator, ISVS.Instance svs, DAC12.Instance dac12, BCSplus.Instance clock, params);
// Create an instance-object
GPIO_MSP430F261x.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F261x.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F261x.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F261x.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F261x.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F261x.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:25 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F261x

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.adc.ADC12 as ADC12;
    13    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    14    import ti.catalog.msp430.peripherals.svs.ISVS as SVS;
    15    import ti.catalog.msp430.peripherals.dac.DAC12 as DAC12;
    16    import ti.catalog.msp430.peripherals.clock.BCSplus as BCSplus;
    17
    18    /*!
    19     *  ======== GPIO for MSP430F261x ========
    20     *  MSP430 General Purpose Input Output Ports
    21     */
    22    metaonly module GPIO_MSP430F261x inherits IGPIO {
    23        /*!
    24         *  ======== create ========
    25         *  Create an instance of this peripheral. Use a customized
    26         *  init function so that we can get access to the ADC12,
    27         *  Comparator_A, SVS, DAC12 and BCS+ instances.
    28         */
    29        create(ADC12.Instance adc12, Comparator.Instance comparator, SVS.Instance svs, DAC12.Instance dac12,
    30            BCSplus.Instance clock);
    31
    32    instance:
    33        /*! @_nodoc */
    34        config ADC12.Instance adc12;
    35
    36        /*! @_nodoc */
    37        config Comparator.Instance comparator;
    38
    39        /*! @_nodoc */
    40        config SVS.Instance svs;
    41
    42        /*! @_nodoc */
    43        config DAC12.Instance dac12;
    44
    45        /*! @_nodoc */
    46        config BCSplus.Instance clock;
    47
    48       /*! Define an array to describe all device pins. The 1st dimension
    49        *  denotes the port, the second the pin on that port. On an
    50        *  MSP430F261x device, there are 8 x 8 = 64 pins total.
    51        */
    52
    53        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    54         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    55        /* TODO: For this device the config variable definition has been moved into the
    56         * corresponding XS file due to its size. This needs a more consistent solution. */
    57        config DevicePin_t devicePins[8][8];
    58
    59        /*! Implementation of Device Pin Functional Configuration */
    60        override config DevicePinFunctionSetting_t devicePinSetting[8][8];
    61
    62        /*! Determine if each Register needs to be forced set or not */
    63        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    64        [
    65            { register : "P1OUT" , regForceSet : true  },
    66            { register : "P1SEL" , regForceSet : false },
    67            { register : "P1DIR" , regForceSet : true  },
    68            { register : "P1REN" , regForceSet : false },
    69            { register : "P1IES" , regForceSet : true },
    70            { register : "P1IFG" , regForceSet : true },
    71            { register : "P1IE"  , regForceSet : false },
    72            { register : "P2OUT" , regForceSet : true  },
    73            { register : "P2SEL" , regForceSet : false },
    74            { register : "P2DIR" , regForceSet : true  },
    75            { register : "P2REN" , regForceSet : false },
    76            { register : "P2IES" , regForceSet : true },
    77            { register : "P2IFG" , regForceSet : true },
    78            { register : "P2IE"  , regForceSet : false },
    79            { register : "P3OUT" , regForceSet : true  },
    80            { register : "P3SEL" , regForceSet : false },
    81            { register : "P3DIR" , regForceSet : true  },
    82            { register : "P3REN" , regForceSet : false },
    83            { register : "P4OUT" , regForceSet : true  },
    84            { register : "P4SEL" , regForceSet : false },
    85            { register : "P4DIR" , regForceSet : true  },
    86            { register : "P4REN" , regForceSet : false },
    87            { register : "P5OUT" , regForceSet : true  },
    88            { register : "P5SEL" , regForceSet : false },
    89            { register : "P5DIR" , regForceSet : true  },
    90            { register : "P5REN" , regForceSet : false },
    91            { register : "P6OUT" , regForceSet : true  },
    92            { register : "P6SEL" , regForceSet : false },
    93            { register : "P6DIR" , regForceSet : true  },
    94            { register : "P6REN" , regForceSet : false },
    95            { register : "P7OUT" , regForceSet : true  },
    96            { register : "P7SEL" , regForceSet : false },
    97            { register : "P7DIR" , regForceSet : true  },
    98            { register : "P7REN" , regForceSet : false },
    99            { register : "P8OUT" , regForceSet : true  },
   100            { register : "P8SEL" , regForceSet : false },
   101            { register : "P8DIR" , regForceSet : true  },
   102            { register : "P8REN" , regForceSet : false }
   103        ];
   104
   105        /*
   106         *  GPIO Digital I/O Registers
   107         *
   108         *  One GIPO instance defines the configuration of an entire,
   109         *  8-bit wide digital I/O port.
   110         */
   111
   112        /*! Port 1 Output Register */
   113        config GpioBits8PxOut_t P1OUT = {
   114            Bit0        : BIT0_OFF,
   115            Bit1        : BIT1_OFF,
   116            Bit2        : BIT2_OFF,
   117            Bit3        : BIT3_OFF,
   118            Bit4        : BIT4_OFF,
   119            Bit5        : BIT5_OFF,
   120            Bit6        : BIT6_OFF,
   121            Bit7        : BIT7_OFF
   122        };
   123
   124        /*! Port 1 Port Select Register */
   125        config GpioBits8PxSel_t P1SEL = {
   126            Bit0        : BIT0_OFF,
   127            Bit1        : BIT1_OFF,
   128            Bit2        : BIT2_OFF,
   129            Bit3        : BIT3_OFF,
   130            Bit4        : BIT4_OFF,
   131            Bit5        : BIT5_OFF,
   132            Bit6        : BIT6_OFF,
   133            Bit7        : BIT7_OFF
   134        };
   135
   136        /*! Port 1 Direction Register */
   137        config GpioBits8PxDir_t P1DIR = {
   138            Bit0        : BIT0_OFF,
   139            Bit1        : BIT1_OFF,
   140            Bit2        : BIT2_OFF,
   141            Bit3        : BIT3_OFF,
   142            Bit4        : BIT4_OFF,
   143            Bit5        : BIT5_OFF,
   144            Bit6        : BIT6_OFF,
   145            Bit7        : BIT7_OFF
   146        };
   147
   148        /*! Port 1 Resistor Enable Register */
   149        config GpioBits8PxRen_t P1REN = {
   150            Bit0        : BIT0_OFF,
   151            Bit1        : BIT1_OFF,
   152            Bit2        : BIT2_OFF,
   153            Bit3        : BIT3_OFF,
   154            Bit4        : BIT4_OFF,
   155            Bit5        : BIT5_OFF,
   156            Bit6        : BIT6_OFF,
   157            Bit7        : BIT7_OFF
   158        };
   159
   160        /*! Port 2 Output Register */
   161        config GpioBits8PxOut_t P2OUT = {
   162            Bit0        : BIT0_OFF,
   163            Bit1        : BIT1_OFF,
   164            Bit2        : BIT2_OFF,
   165            Bit3        : BIT3_OFF,
   166            Bit4        : BIT4_OFF,
   167            Bit5        : BIT5_OFF,
   168            Bit6        : BIT6_OFF,
   169            Bit7        : BIT7_OFF
   170        };
   171
   172        /*! Port 2 Port Select Register */
   173        config GpioBits8PxSel_t P2SEL = {
   174            Bit0        : BIT0_OFF,
   175            Bit1        : BIT1_OFF,
   176            Bit2        : BIT2_OFF,
   177            Bit3        : BIT3_OFF,
   178            Bit4        : BIT4_OFF,
   179            Bit5        : BIT5_OFF,
   180            Bit6        : BIT6_OFF,
   181            Bit7        : BIT7_OFF
   182        };
   183
   184        /*! Port 2 Direction Register */
   185        config GpioBits8PxDir_t P2DIR = {
   186            Bit0        : BIT0_OFF,
   187            Bit1        : BIT1_OFF,
   188            Bit2        : BIT2_OFF,
   189            Bit3        : BIT3_OFF,
   190            Bit4        : BIT4_OFF,
   191            Bit5        : BIT5_OFF,
   192            Bit6        : BIT6_OFF,
   193            Bit7        : BIT7_OFF
   194        };
   195
   196        /*! Port 2 Resistor Enable Register */
   197        config GpioBits8PxRen_t P2REN = {
   198            Bit0        : BIT0_OFF,
   199            Bit1        : BIT1_OFF,
   200            Bit2        : BIT2_OFF,
   201            Bit3        : BIT3_OFF,
   202            Bit4        : BIT4_OFF,
   203            Bit5        : BIT5_OFF,
   204            Bit6        : BIT6_OFF,
   205            Bit7        : BIT7_OFF
   206        };
   207
   208        /*! Port 3 Output Register */
   209        config GpioBits8PxOut_t P3OUT = {
   210            Bit0        : BIT0_OFF,
   211            Bit1        : BIT1_OFF,
   212            Bit2        : BIT2_OFF,
   213            Bit3        : BIT3_OFF,
   214            Bit4        : BIT4_OFF,
   215            Bit5        : BIT5_OFF,
   216            Bit6        : BIT6_OFF,
   217            Bit7        : BIT7_OFF
   218        };
   219
   220        /*! Port 3 Port Select Register */
   221        config GpioBits8PxSel_t P3SEL = {
   222            Bit0        : BIT0_OFF,
   223            Bit1        : BIT1_OFF,
   224            Bit2        : BIT2_OFF,
   225            Bit3        : BIT3_OFF,
   226            Bit4        : BIT4_OFF,
   227            Bit5        : BIT5_OFF,
   228            Bit6        : BIT6_OFF,
   229            Bit7        : BIT7_OFF
   230        };
   231
   232        /*! Port 3 Direction Register */
   233        config GpioBits8PxDir_t P3DIR = {
   234            Bit0        : BIT0_OFF,
   235            Bit1        : BIT1_OFF,
   236            Bit2        : BIT2_OFF,
   237            Bit3        : BIT3_OFF,
   238            Bit4        : BIT4_OFF,
   239            Bit5        : BIT5_OFF,
   240            Bit6        : BIT6_OFF,
   241            Bit7        : BIT7_OFF
   242        };
   243
   244        /*! Port 3 Resistor Enable Register */
   245        config GpioBits8PxRen_t P3REN = {
   246            Bit0        : BIT0_OFF,
   247            Bit1        : BIT1_OFF,
   248            Bit2        : BIT2_OFF,
   249            Bit3        : BIT3_OFF,
   250            Bit4        : BIT4_OFF,
   251            Bit5        : BIT5_OFF,
   252            Bit6        : BIT6_OFF,
   253            Bit7        : BIT7_OFF
   254        };
   255
   256        /*! Port 4 Output Register */
   257        config GpioBits8PxOut_t P4OUT = {
   258            Bit0        : BIT0_OFF,
   259            Bit1        : BIT1_OFF,
   260            Bit2        : BIT2_OFF,
   261            Bit3        : BIT3_OFF,
   262            Bit4        : BIT4_OFF,
   263            Bit5        : BIT5_OFF,
   264            Bit6        : BIT6_OFF,
   265            Bit7        : BIT7_OFF
   266        };
   267
   268        /*! Port 4 Port Select Register */
   269        config GpioBits8PxSel_t P4SEL = {
   270            Bit0        : BIT0_OFF,
   271            Bit1        : BIT1_OFF,
   272            Bit2        : BIT2_OFF,
   273            Bit3        : BIT3_OFF,
   274            Bit4        : BIT4_OFF,
   275            Bit5        : BIT5_OFF,
   276            Bit6        : BIT6_OFF,
   277            Bit7        : BIT7_OFF
   278        };
   279
   280        /*! Port 4 Direction Register */
   281        config GpioBits8PxDir_t P4DIR = {
   282            Bit0        : BIT0_OFF,
   283            Bit1        : BIT1_OFF,
   284            Bit2        : BIT2_OFF,
   285            Bit3        : BIT3_OFF,
   286            Bit4        : BIT4_OFF,
   287            Bit5        : BIT5_OFF,
   288            Bit6        : BIT6_OFF,
   289            Bit7        : BIT7_OFF
   290        };
   291
   292        /*! Port 4 Resistor Enable Register */
   293        config GpioBits8PxRen_t P4REN = {
   294            Bit0        : BIT0_OFF,
   295            Bit1        : BIT1_OFF,
   296            Bit2        : BIT2_OFF,
   297            Bit3        : BIT3_OFF,
   298            Bit4        : BIT4_OFF,
   299            Bit5        : BIT5_OFF,
   300            Bit6        : BIT6_OFF,
   301            Bit7        : BIT7_OFF
   302        };
   303
   304            /*! Port 5 Output Register */
   305        config GpioBits8PxOut_t P5OUT = {
   306            Bit0        : BIT0_OFF,
   307            Bit1        : BIT1_OFF,
   308            Bit2        : BIT2_OFF,
   309            Bit3        : BIT3_OFF,
   310            Bit4        : BIT4_OFF,
   311            Bit5        : BIT5_OFF,
   312            Bit6        : BIT6_OFF,
   313            Bit7        : BIT7_OFF
   314        };
   315
   316        /*! Port 5 Port Select Register */
   317        config GpioBits8PxSel_t P5SEL = {
   318            Bit0        : BIT0_OFF,
   319            Bit1        : BIT1_OFF,
   320            Bit2        : BIT2_OFF,
   321            Bit3        : BIT3_OFF,
   322            Bit4        : BIT4_OFF,
   323            Bit5        : BIT5_OFF,
   324            Bit6        : BIT6_OFF,
   325            Bit7        : BIT7_OFF
   326        };
   327
   328        /*! Port 5 Direction Register */
   329        config GpioBits8PxDir_t P5DIR = {
   330            Bit0        : BIT0_OFF,
   331            Bit1        : BIT1_OFF,
   332            Bit2        : BIT2_OFF,
   333            Bit3        : BIT3_OFF,
   334            Bit4        : BIT4_OFF,
   335            Bit5        : BIT5_OFF,
   336            Bit6        : BIT6_OFF,
   337            Bit7        : BIT7_OFF
   338        };
   339
   340        /*! Port 5 Resistor Enable Register */
   341        config GpioBits8PxRen_t P5REN = {
   342            Bit0        : BIT0_OFF,
   343            Bit1        : BIT1_OFF,
   344            Bit2        : BIT2_OFF,
   345            Bit3        : BIT3_OFF,
   346            Bit4        : BIT4_OFF,
   347            Bit5        : BIT5_OFF,
   348            Bit6        : BIT6_OFF,
   349            Bit7        : BIT7_OFF
   350        };
   351
   352        /*! Port 6 Output Register */
   353        config GpioBits8PxOut_t P6OUT = {
   354            Bit0        : BIT0_OFF,
   355            Bit1        : BIT1_OFF,
   356            Bit2        : BIT2_OFF,
   357            Bit3        : BIT3_OFF,
   358            Bit4        : BIT4_OFF,
   359            Bit5        : BIT5_OFF,
   360            Bit6        : BIT6_OFF,
   361            Bit7        : BIT7_OFF
   362        };
   363
   364        /*! Port 6 Port Select Register */
   365        config GpioBits8PxSel_t P6SEL = {
   366            Bit0        : BIT0_OFF,
   367            Bit1        : BIT1_OFF,
   368            Bit2        : BIT2_OFF,
   369            Bit3        : BIT3_OFF,
   370            Bit4        : BIT4_OFF,
   371            Bit5        : BIT5_OFF,
   372            Bit6        : BIT6_OFF,
   373            Bit7        : BIT7_OFF
   374        };
   375
   376        /*! Port 6 Direction Register */
   377        config GpioBits8PxDir_t P6DIR = {
   378            Bit0        : BIT0_OFF,
   379            Bit1        : BIT1_OFF,
   380            Bit2        : BIT2_OFF,
   381            Bit3        : BIT3_OFF,
   382            Bit4        : BIT4_OFF,
   383            Bit5        : BIT5_OFF,
   384            Bit6        : BIT6_OFF,
   385            Bit7        : BIT7_OFF
   386        };
   387
   388        /*! Port 6 Resistor Enable Register */
   389        config GpioBits8PxRen_t P6REN = {
   390            Bit0        : BIT0_OFF,
   391            Bit1        : BIT1_OFF,
   392            Bit2        : BIT2_OFF,
   393            Bit3        : BIT3_OFF,
   394            Bit4        : BIT4_OFF,
   395            Bit5        : BIT5_OFF,
   396            Bit6        : BIT6_OFF,
   397            Bit7        : BIT7_OFF
   398        };
   399
   400        /*! Port 7 Output Register */
   401        config GpioBits8PxOut_t P7OUT = {
   402            Bit0        : BIT0_OFF,
   403            Bit1        : BIT1_OFF,
   404            Bit2        : BIT2_OFF,
   405            Bit3        : BIT3_OFF,
   406            Bit4        : BIT4_OFF,
   407            Bit5        : BIT5_OFF,
   408            Bit6        : BIT6_OFF,
   409            Bit7        : BIT7_OFF
   410        };
   411
   412        /*! Port 7 Port Select Register */
   413        config GpioBits8PxSel_t P7SEL = {
   414            Bit0        : BIT0_OFF,
   415            Bit1        : BIT1_OFF,
   416            Bit2        : BIT2_OFF,
   417            Bit3        : BIT3_OFF,
   418            Bit4        : BIT4_OFF,
   419            Bit5        : BIT5_OFF,
   420            Bit6        : BIT6_OFF,
   421            Bit7        : BIT7_OFF
   422        };
   423
   424        /*! Port 7 Direction Register */
   425        config GpioBits8PxDir_t P7DIR = {
   426            Bit0        : BIT0_OFF,
   427            Bit1        : BIT1_OFF,
   428            Bit2        : BIT2_OFF,
   429            Bit3        : BIT3_OFF,
   430            Bit4        : BIT4_OFF,
   431            Bit5        : BIT5_OFF,
   432            Bit6        : BIT6_OFF,
   433            Bit7        : BIT7_OFF
   434        };
   435
   436        /*! Port 7 Resistor Enable Register */
   437        config GpioBits8PxRen_t P7REN = {
   438            Bit0        : BIT0_OFF,
   439            Bit1        : BIT1_OFF,
   440            Bit2        : BIT2_OFF,
   441            Bit3        : BIT3_OFF,
   442            Bit4        : BIT4_OFF,
   443            Bit5        : BIT5_OFF,
   444            Bit6        : BIT6_OFF,
   445            Bit7        : BIT7_OFF
   446        };
   447
   448        /*! Port 8 Output Register */
   449        config GpioBits8PxOut_t P8OUT = {
   450            Bit0        : BIT0_OFF,
   451            Bit1        : BIT1_OFF,
   452            Bit2        : BIT2_OFF,
   453            Bit3        : BIT3_OFF,
   454            Bit4        : BIT4_OFF,
   455            Bit5        : BIT5_OFF,
   456            Bit6        : BIT6_OFF,
   457            Bit7        : BIT7_OFF
   458        };
   459
   460        /*! Port 8 Port Select Register */
   461        config GpioBits8PxSel_t P8SEL = {
   462            Bit0        : BIT0_OFF,
   463            Bit1        : BIT1_OFF,
   464            Bit2        : BIT2_OFF,
   465            Bit3        : BIT3_OFF,
   466            Bit4        : BIT4_OFF,
   467            Bit5        : BIT5_OFF,
   468            Bit6        : BIT6_OFF,
   469            Bit7        : BIT7_OFF
   470        };
   471
   472        /*! Port 8 Direction Register */
   473        config GpioBits8PxDir_t P8DIR = {
   474            Bit0        : BIT0_OFF,
   475            Bit1        : BIT1_OFF,
   476            Bit2        : BIT2_OFF,
   477            Bit3        : BIT3_OFF,
   478            Bit4        : BIT4_OFF,
   479            Bit5        : BIT5_OFF,
   480            Bit6        : BIT6_OFF,
   481            Bit7        : BIT7_OFF
   482        };
   483
   484        /*! Port 8 Resistor Enable Register */
   485        config GpioBits8PxRen_t P8REN = {
   486            Bit0        : BIT0_OFF,
   487            Bit1        : BIT1_OFF,
   488            Bit2        : BIT2_OFF,
   489            Bit3        : BIT3_OFF,
   490            Bit4        : BIT4_OFF,
   491            Bit5        : BIT5_OFF,
   492            Bit6        : BIT6_OFF,
   493            Bit7        : BIT7_OFF
   494        };
   495    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F543xA

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F543xA
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430F543xA.xdc
var GPIO_MSP430F543xA = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F543xA');
module-wide constants & types
    values of type GPIO_MSP430F543xA.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430F543xA.BIT0_OFF;
        const GPIO_MSP430F543xA.BIT0;
    values of type GPIO_MSP430F543xA.Bit1_t//
        const GPIO_MSP430F543xA.BIT1_OFF;
        const GPIO_MSP430F543xA.BIT1;
    values of type GPIO_MSP430F543xA.Bit2_t//
        const GPIO_MSP430F543xA.BIT2_OFF;
        const GPIO_MSP430F543xA.BIT2;
    values of type GPIO_MSP430F543xA.Bit3_t//
        const GPIO_MSP430F543xA.BIT3_OFF;
        const GPIO_MSP430F543xA.BIT3;
    values of type GPIO_MSP430F543xA.Bit4_t//
        const GPIO_MSP430F543xA.BIT4_OFF;
        const GPIO_MSP430F543xA.BIT4;
    values of type GPIO_MSP430F543xA.Bit5_t//
        const GPIO_MSP430F543xA.BIT5_OFF;
        const GPIO_MSP430F543xA.BIT5;
    values of type GPIO_MSP430F543xA.Bit6_t//
        const GPIO_MSP430F543xA.BIT6_OFF;
        const GPIO_MSP430F543xA.BIT6;
    values of type GPIO_MSP430F543xA.Bit7_t//
        const GPIO_MSP430F543xA.BIT7_OFF;
        const GPIO_MSP430F543xA.BIT7;
    values of type GPIO_MSP430F543xA.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430F543xA.IE_OFF// Disabled;
        const GPIO_MSP430F543xA.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430F543xA.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430F543xA.OutputState_t// Output high or low drop down list
        const GPIO_MSP430F543xA.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430F543xA.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430F543xA.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430F543xA.PUDRE_OFF// Disabled;
        const GPIO_MSP430F543xA.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430F543xA.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430F543xA.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430F543xA.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430F543xA.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430F543xA.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430F543xA.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430F543xA.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F543xA.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F543xA.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F543xA.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F543xA.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F543xA.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F543xA.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F543xA.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F543xA.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430F543xA.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430F543xA.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430F543xA.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430F543xA.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430F543xA.Params// Instance config-params object;
        params.P10DIR// Port 10 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P10OUT// Port 10 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P10REN// Port 10 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P10SEL// Port 10 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P11DIR// Port 11 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P11OUT// Port 11 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P11REN// Port 11 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P11SEL// Port 11 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL// Port 4 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5DIR// Port 5 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5OUT// Port 5 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5REN// Port 5 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P5SEL// Port 5 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6DIR// Port 6 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6OUT// Port 6 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6REN// Port 6 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P6SEL// Port 6 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7DIR// Port 7 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7OUT// Port 7 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7REN// Port 7 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P7SEL// Port 7 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8DIR// Port 8 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8OUT// Port 8 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8REN// Port 8 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P8SEL// Port 8 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P9DIR// Port 9 Direction Register = GPIO_MSP430F543xA.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P9OUT// Port 9 Output Register = GPIO_MSP430F543xA.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P9REN// Port 9 Resistor Enable Register = GPIO_MSP430F543xA.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P9SEL// Port 9 Port Select Register = GPIO_MSP430F543xA.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430F543xA.DevicePinFunctionSetting_t[8][12] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F543x(A) device, there are 8 + 2 = 10 pins total = GPIO_MSP430F543xA.DevicePin_t[8][12] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430F543xA.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            },
            {
                register: "P5OUT",
                regForceSet: true
            },
            {
                register: "P5SEL",
                regForceSet: false
            },
            {
                register: "P5DIR",
                regForceSet: true
            },
            {
                register: "P5REN",
                regForceSet: false
            },
            {
                register: "P6OUT",
                regForceSet: true
            },
            {
                register: "P6SEL",
                regForceSet: false
            },
            {
                register: "P6DIR",
                regForceSet: true
            },
            {
                register: "P6REN",
                regForceSet: false
            },
            {
                register: "P7OUT",
                regForceSet: true
            },
            {
                register: "P7SEL",
                regForceSet: false
            },
            {
                register: "P7DIR",
                regForceSet: true
            },
            {
                register: "P7REN",
                regForceSet: false
            },
            {
                register: "P8OUT",
                regForceSet: true
            },
            {
                register: "P8SEL",
                regForceSet: false
            },
            {
                register: "P8DIR",
                regForceSet: true
            },
            {
                register: "P8REN",
                regForceSet: false
            },
            {
                register: "P9OUT",
                regForceSet: true
            },
            {
                register: "P9SEL",
                regForceSet: false
            },
            {
                register: "P9DIR",
                regForceSet: true
            },
            {
                register: "P9REN",
                regForceSet: false
            },
            {
                register: "P10OUT",
                regForceSet: true
            },
            {
                register: "P10SEL",
                regForceSet: false
            },
            {
                register: "P10DIR",
                regForceSet: true
            },
            {
                register: "P10REN",
                regForceSet: false
            },
            {
                register: "P11OUT",
                regForceSet: true
            },
            {
                register: "P11SEL",
                regForceSet: false
            },
            {
                register: "P11DIR",
                regForceSet: true
            },
            {
                register: "P11REN",
                regForceSet: false
            },
            {
                register: "PJOUT",
                regForceSet: true
            },
            {
                register: "PJSEL",
                regForceSet: false
            },
            {
                register: "PJDIR",
                regForceSet: true
            },
            {
                register: "PJREN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430F543xA.create// Create an instance-object(UCS.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430F543xA.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.Bit0_t
    const GPIO_MSP430F543xA.BIT0_OFF;
    const GPIO_MSP430F543xA.BIT0;
enum GPIO_MSP430F543xA.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.Bit1_t
    const GPIO_MSP430F543xA.BIT1_OFF;
    const GPIO_MSP430F543xA.BIT1;
enum GPIO_MSP430F543xA.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.Bit2_t
    const GPIO_MSP430F543xA.BIT2_OFF;
    const GPIO_MSP430F543xA.BIT2;
enum GPIO_MSP430F543xA.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.Bit3_t
    const GPIO_MSP430F543xA.BIT3_OFF;
    const GPIO_MSP430F543xA.BIT3;
enum GPIO_MSP430F543xA.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.Bit4_t
    const GPIO_MSP430F543xA.BIT4_OFF;
    const GPIO_MSP430F543xA.BIT4;
enum GPIO_MSP430F543xA.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.Bit5_t
    const GPIO_MSP430F543xA.BIT5_OFF;
    const GPIO_MSP430F543xA.BIT5;
enum GPIO_MSP430F543xA.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.Bit6_t
    const GPIO_MSP430F543xA.BIT6_OFF;
    const GPIO_MSP430F543xA.BIT6;
enum GPIO_MSP430F543xA.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.Bit7_t
    const GPIO_MSP430F543xA.BIT7_OFF;
    const GPIO_MSP430F543xA.BIT7;
enum GPIO_MSP430F543xA.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.InterruptEnable_t
    const GPIO_MSP430F543xA.IE_OFF;
    // Disabled
    const GPIO_MSP430F543xA.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430F543xA.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430F543xA.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.OutputState_t
    const GPIO_MSP430F543xA.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430F543xA.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430F543xA.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430F543xA.ResEnable_t
    const GPIO_MSP430F543xA.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430F543xA.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430F543xA.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430F543xA.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430F543xA.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430F543xA.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430F543xA.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430F543xA.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430F543xA.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430F543xA.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430F543xA.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430F543xA.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430F543xA.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430F543xA.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430F543xA.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430F543xA.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430F543xA.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430F543xA.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430F543xA.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430F543xA.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430F543xA.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430F543xA.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430F543xA.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430F543xA.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
// Instance config-params object
    params.P10DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 10 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P10OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 10 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P10REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 10 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P10SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 10 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P11DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 11 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P11OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 11 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P11REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 11 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P11SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 11 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 4 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 5 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 5 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 5 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P5SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 5 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 6 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 6 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 6 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P6SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 6 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 7 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 7 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 7 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P7SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 7 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 8 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 8 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 8 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P8SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 8 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P9DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    // Port 9 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P9OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    // Port 9 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P9REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    // Port 9 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P9SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    // Port 9 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430F543xA.DevicePinFunctionSetting_t[8][12] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430F543xA.DevicePin_t[8][12] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F543x(A) device, there are 8 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430F543xA.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        },
        {
            register: "P5OUT",
            regForceSet: true
        },
        {
            register: "P5SEL",
            regForceSet: false
        },
        {
            register: "P5DIR",
            regForceSet: true
        },
        {
            register: "P5REN",
            regForceSet: false
        },
        {
            register: "P6OUT",
            regForceSet: true
        },
        {
            register: "P6SEL",
            regForceSet: false
        },
        {
            register: "P6DIR",
            regForceSet: true
        },
        {
            register: "P6REN",
            regForceSet: false
        },
        {
            register: "P7OUT",
            regForceSet: true
        },
        {
            register: "P7SEL",
            regForceSet: false
        },
        {
            register: "P7DIR",
            regForceSet: true
        },
        {
            register: "P7REN",
            regForceSet: false
        },
        {
            register: "P8OUT",
            regForceSet: true
        },
        {
            register: "P8SEL",
            regForceSet: false
        },
        {
            register: "P8DIR",
            regForceSet: true
        },
        {
            register: "P8REN",
            regForceSet: false
        },
        {
            register: "P9OUT",
            regForceSet: true
        },
        {
            register: "P9SEL",
            regForceSet: false
        },
        {
            register: "P9DIR",
            regForceSet: true
        },
        {
            register: "P9REN",
            regForceSet: false
        },
        {
            register: "P10OUT",
            regForceSet: true
        },
        {
            register: "P10SEL",
            regForceSet: false
        },
        {
            register: "P10DIR",
            regForceSet: true
        },
        {
            register: "P10REN",
            regForceSet: false
        },
        {
            register: "P11OUT",
            regForceSet: true
        },
        {
            register: "P11SEL",
            regForceSet: false
        },
        {
            register: "P11DIR",
            regForceSet: true
        },
        {
            register: "P11REN",
            regForceSet: false
        },
        {
            register: "PJOUT",
            regForceSet: true
        },
        {
            register: "PJSEL",
            regForceSet: false
        },
        {
            register: "PJDIR",
            regForceSet: true
        },
        {
            register: "PJREN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430F543xA.P10DIR // instance
index URL

Port 10 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P10DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P10OUT // instance
index URL

Port 10 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P10OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P10REN // instance
index URL

Port 10 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P10REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P10SEL // instance
index URL

Port 10 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P10SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P11DIR // instance
index URL

Port 11 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P11DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P11OUT // instance
index URL

Port 11 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P11OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P11REN // instance
index URL

Port 11 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P11REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P11SEL // instance
index URL

Port 11 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P11SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P1DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P1OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P1REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P1SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P2DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P2OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P2REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P2SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P3DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P3OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P3REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P3SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P4DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P4OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P4REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P4SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P5DIR // instance
index URL

Port 5 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P5DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P5OUT // instance
index URL

Port 5 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P5OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P5REN // instance
index URL

Port 5 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P5REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P5SEL // instance
index URL

Port 5 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P5SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P6DIR // instance
index URL

Port 6 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P6DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P6OUT // instance
index URL

Port 6 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P6OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P6REN // instance
index URL

Port 6 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P6REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P6SEL // instance
index URL

Port 6 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P6SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P7DIR // instance
index URL

Port 7 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P7DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P7OUT // instance
index URL

Port 7 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P7OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P7REN // instance
index URL

Port 7 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P7REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P7SEL // instance
index URL

Port 7 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P7SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P8DIR // instance
index URL

Port 8 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P8DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P8OUT // instance
index URL

Port 8 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P8OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P8REN // instance
index URL

Port 8 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P8REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P8SEL // instance
index URL

Port 8 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P8SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P9DIR // instance
index URL

Port 9 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P9DIR = GPIO_MSP430F543xA.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P9OUT // instance
index URL

Port 9 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P9OUT = GPIO_MSP430F543xA.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P9REN // instance
index URL

Port 9 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P9REN = GPIO_MSP430F543xA.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.P9SEL // instance
index URL

Port 9 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.P9SEL = GPIO_MSP430F543xA.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430F543xA.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.devicePinSetting = GPIO_MSP430F543xA.DevicePinFunctionSetting_t[8][12] undefined;
config GPIO_MSP430F543xA.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430F543x(A) device, there are 8 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.devicePins = GPIO_MSP430F543xA.DevicePin_t[8][12] undefined;
config GPIO_MSP430F543xA.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430F543xA.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    },
    {
        register: "P5OUT",
        regForceSet: true
    },
    {
        register: "P5SEL",
        regForceSet: false
    },
    {
        register: "P5DIR",
        regForceSet: true
    },
    {
        register: "P5REN",
        regForceSet: false
    },
    {
        register: "P6OUT",
        regForceSet: true
    },
    {
        register: "P6SEL",
        regForceSet: false
    },
    {
        register: "P6DIR",
        regForceSet: true
    },
    {
        register: "P6REN",
        regForceSet: false
    },
    {
        register: "P7OUT",
        regForceSet: true
    },
    {
        register: "P7SEL",
        regForceSet: false
    },
    {
        register: "P7DIR",
        regForceSet: true
    },
    {
        register: "P7REN",
        regForceSet: false
    },
    {
        register: "P8OUT",
        regForceSet: true
    },
    {
        register: "P8SEL",
        regForceSet: false
    },
    {
        register: "P8DIR",
        regForceSet: true
    },
    {
        register: "P8REN",
        regForceSet: false
    },
    {
        register: "P9OUT",
        regForceSet: true
    },
    {
        register: "P9SEL",
        regForceSet: false
    },
    {
        register: "P9DIR",
        regForceSet: true
    },
    {
        register: "P9REN",
        regForceSet: false
    },
    {
        register: "P10OUT",
        regForceSet: true
    },
    {
        register: "P10SEL",
        regForceSet: false
    },
    {
        register: "P10DIR",
        regForceSet: true
    },
    {
        register: "P10REN",
        regForceSet: false
    },
    {
        register: "P11OUT",
        regForceSet: true
    },
    {
        register: "P11SEL",
        regForceSet: false
    },
    {
        register: "P11DIR",
        regForceSet: true
    },
    {
        register: "P11REN",
        regForceSet: false
    },
    {
        register: "PJOUT",
        regForceSet: true
    },
    {
        register: "PJSEL",
        regForceSet: false
    },
    {
        register: "PJDIR",
        regForceSet: true
    },
    {
        register: "PJREN",
        regForceSet: false
    }
];
config GPIO_MSP430F543xA.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430F543xA.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430F543xA.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430F543xA.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430F543xA.create(UCS.Instance clock, params);
// Create an instance-object
GPIO_MSP430F543xA.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430F543xA.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430F543xA.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430F543xA.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430F543xA.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430F543xA.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:26 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F543xA

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.UCS as UCS;
    13
    14    /*!
    15     *  ======== GPIO for MSP430F543xA ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430F543xA inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral. Use a customized
    22         *  init function so that we can get access to the UCS
    23         *  instances.
    24         */
    25        create(UCS.Instance clock);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config UCS.Instance clock;
    30
    31       /*! Define an array to describe all device pins. The 1st dimension
    32        *  denotes the port, the second the pin on that port. On an
    33        *  MSP430F543x(A) device, there are 8 + 2 = 10 pins total.
    34        */
    35
    36        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    37         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    38        config DevicePin_t devicePins[12][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[12][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT" , regForceSet : true  },
    47            { register : "P1SEL" , regForceSet : false },
    48            { register : "P1DIR" , regForceSet : true  },
    49            { register : "P1REN" , regForceSet : false },
    50            { register : "P1IES" , regForceSet : true },
    51            { register : "P1IFG" , regForceSet : true },
    52            { register : "P1IE"  , regForceSet : false },
    53            { register : "P2OUT" , regForceSet : true  },
    54            { register : "P2SEL" , regForceSet : false },
    55            { register : "P2DIR" , regForceSet : true  },
    56            { register : "P2REN" , regForceSet : false },
    57            { register : "P2IES" , regForceSet : true },
    58            { register : "P2IFG" , regForceSet : true },
    59            { register : "P2IE"  , regForceSet : false },
    60            { register : "P3OUT" , regForceSet : true  },
    61            { register : "P3SEL" , regForceSet : false },
    62            { register : "P3DIR" , regForceSet : true  },
    63            { register : "P3REN" , regForceSet : false },
    64            { register : "P4OUT" , regForceSet : true  },
    65            { register : "P4SEL" , regForceSet : false },
    66            { register : "P4DIR" , regForceSet : true  },
    67            { register : "P4REN" , regForceSet : false },
    68            { register : "P5OUT" , regForceSet : true  },
    69            { register : "P5SEL" , regForceSet : false },
    70            { register : "P5DIR" , regForceSet : true  },
    71            { register : "P5REN" , regForceSet : false },
    72            { register : "P6OUT" , regForceSet : true  },
    73            { register : "P6SEL" , regForceSet : false },
    74            { register : "P6DIR" , regForceSet : true  },
    75            { register : "P6REN" , regForceSet : false },
    76            { register : "P7OUT" , regForceSet : true  },
    77            { register : "P7SEL" , regForceSet : false },
    78            { register : "P7DIR" , regForceSet : true  },
    79            { register : "P7REN" , regForceSet : false },
    80            { register : "P8OUT" , regForceSet : true  },
    81            { register : "P8SEL" , regForceSet : false },
    82            { register : "P8DIR" , regForceSet : true  },
    83            { register : "P8REN" , regForceSet : false },
    84            { register : "P9OUT" , regForceSet : true  },
    85            { register : "P9SEL" , regForceSet : false },
    86            { register : "P9DIR" , regForceSet : true  },
    87            { register : "P9REN" , regForceSet : false },
    88            { register : "P10OUT" , regForceSet : true  },
    89            { register : "P10SEL" , regForceSet : false },
    90            { register : "P10DIR" , regForceSet : true  },
    91            { register : "P10REN" , regForceSet : false },
    92            { register : "P11OUT" , regForceSet : true  },
    93            { register : "P11SEL" , regForceSet : false },
    94            { register : "P11DIR" , regForceSet : true  },
    95            { register : "P11REN" , regForceSet : false },
    96            { register : "PJOUT" , regForceSet : true  },
    97            { register : "PJSEL" , regForceSet : false },
    98            { register : "PJDIR" , regForceSet : true  },
    99            { register : "PJREN" , regForceSet : false }
   100        ];
   101
   102        /*
   103         *  GPIO Digital I/O Registers
   104         *
   105         *  One GIPO instance defines the configuration of an entire,
   106         *  8-bit wide digital I/O port.
   107         */
   108
   109        /*! Port 1 Output Register */
   110        config GpioBits8PxOut_t P1OUT = {
   111            Bit0        : BIT0_OFF,
   112            Bit1        : BIT1_OFF,
   113            Bit2        : BIT2_OFF,
   114            Bit3        : BIT3_OFF,
   115            Bit4        : BIT4_OFF,
   116            Bit5        : BIT5_OFF,
   117            Bit6        : BIT6_OFF,
   118            Bit7        : BIT7_OFF
   119        };
   120
   121        /*! Port 1 Port Select Register */
   122        config GpioBits8PxSel_t P1SEL = {
   123            Bit0        : BIT0_OFF,
   124            Bit1        : BIT1_OFF,
   125            Bit2        : BIT2_OFF,
   126            Bit3        : BIT3_OFF,
   127            Bit4        : BIT4_OFF,
   128            Bit5        : BIT5_OFF,
   129            Bit6        : BIT6_OFF,
   130            Bit7        : BIT7_OFF
   131        };
   132
   133        /*! Port 1 Direction Register */
   134        config GpioBits8PxDir_t P1DIR = {
   135            Bit0        : BIT0_OFF,
   136            Bit1        : BIT1_OFF,
   137            Bit2        : BIT2_OFF,
   138            Bit3        : BIT3_OFF,
   139            Bit4        : BIT4_OFF,
   140            Bit5        : BIT5_OFF,
   141            Bit6        : BIT6_OFF,
   142            Bit7        : BIT7_OFF
   143        };
   144
   145        /*! Port 1 Resistor Enable Register */
   146        config GpioBits8PxRen_t P1REN = {
   147            Bit0        : BIT0_OFF,
   148            Bit1        : BIT1_OFF,
   149            Bit2        : BIT2_OFF,
   150            Bit3        : BIT3_OFF,
   151            Bit4        : BIT4_OFF,
   152            Bit5        : BIT5_OFF,
   153            Bit6        : BIT6_OFF,
   154            Bit7        : BIT7_OFF
   155        };
   156
   157        /*! Port 2 Output Register */
   158        config GpioBits8PxOut_t P2OUT = {
   159            Bit0        : BIT0_OFF,
   160            Bit1        : BIT1_OFF,
   161            Bit2        : BIT2_OFF,
   162            Bit3        : BIT3_OFF,
   163            Bit4        : BIT4_OFF,
   164            Bit5        : BIT5_OFF,
   165            Bit6        : BIT6_OFF,
   166            Bit7        : BIT7_OFF
   167        };
   168
   169        /*! Port 2 Port Select Register */
   170        config GpioBits8PxSel_t P2SEL = {
   171            Bit0        : BIT0_OFF,
   172            Bit1        : BIT1_OFF,
   173            Bit2        : BIT2_OFF,
   174            Bit3        : BIT3_OFF,
   175            Bit4        : BIT4_OFF,
   176            Bit5        : BIT5_OFF,
   177            Bit6        : BIT6_OFF,
   178            Bit7        : BIT7_OFF
   179        };
   180
   181        /*! Port 2 Direction Register */
   182        config GpioBits8PxDir_t P2DIR = {
   183            Bit0        : BIT0_OFF,
   184            Bit1        : BIT1_OFF,
   185            Bit2        : BIT2_OFF,
   186            Bit3        : BIT3_OFF,
   187            Bit4        : BIT4_OFF,
   188            Bit5        : BIT5_OFF,
   189            Bit6        : BIT6_OFF,
   190            Bit7        : BIT7_OFF
   191        };
   192
   193        /*! Port 2 Resistor Enable Register */
   194        config GpioBits8PxRen_t P2REN = {
   195            Bit0        : BIT0_OFF,
   196            Bit1        : BIT1_OFF,
   197            Bit2        : BIT2_OFF,
   198            Bit3        : BIT3_OFF,
   199            Bit4        : BIT4_OFF,
   200            Bit5        : BIT5_OFF,
   201            Bit6        : BIT6_OFF,
   202            Bit7        : BIT7_OFF
   203        };
   204
   205        /*! Port 3 Output Register */
   206        config GpioBits8PxOut_t P3OUT = {
   207            Bit0        : BIT0_OFF,
   208            Bit1        : BIT1_OFF,
   209            Bit2        : BIT2_OFF,
   210            Bit3        : BIT3_OFF,
   211            Bit4        : BIT4_OFF,
   212            Bit5        : BIT5_OFF,
   213            Bit6        : BIT6_OFF,
   214            Bit7        : BIT7_OFF
   215        };
   216
   217        /*! Port 3 Port Select Register */
   218        config GpioBits8PxSel_t P3SEL = {
   219            Bit0        : BIT0_OFF,
   220            Bit1        : BIT1_OFF,
   221            Bit2        : BIT2_OFF,
   222            Bit3        : BIT3_OFF,
   223            Bit4        : BIT4_OFF,
   224            Bit5        : BIT5_OFF,
   225            Bit6        : BIT6_OFF,
   226            Bit7        : BIT7_OFF
   227        };
   228
   229        /*! Port 3 Direction Register */
   230        config GpioBits8PxDir_t P3DIR = {
   231            Bit0        : BIT0_OFF,
   232            Bit1        : BIT1_OFF,
   233            Bit2        : BIT2_OFF,
   234            Bit3        : BIT3_OFF,
   235            Bit4        : BIT4_OFF,
   236            Bit5        : BIT5_OFF,
   237            Bit6        : BIT6_OFF,
   238            Bit7        : BIT7_OFF
   239        };
   240
   241        /*! Port 3 Resistor Enable Register */
   242        config GpioBits8PxRen_t P3REN = {
   243            Bit0        : BIT0_OFF,
   244            Bit1        : BIT1_OFF,
   245            Bit2        : BIT2_OFF,
   246            Bit3        : BIT3_OFF,
   247            Bit4        : BIT4_OFF,
   248            Bit5        : BIT5_OFF,
   249            Bit6        : BIT6_OFF,
   250            Bit7        : BIT7_OFF
   251        };
   252
   253        /*! Port 4 Output Register */
   254        config GpioBits8PxOut_t P4OUT = {
   255            Bit0        : BIT0_OFF,
   256            Bit1        : BIT1_OFF,
   257            Bit2        : BIT2_OFF,
   258            Bit3        : BIT3_OFF,
   259            Bit4        : BIT4_OFF,
   260            Bit5        : BIT5_OFF,
   261            Bit6        : BIT6_OFF,
   262            Bit7        : BIT7_OFF
   263        };
   264
   265        /*! Port 4 Port Select Register */
   266        config GpioBits8PxSel_t P4SEL = {
   267            Bit0        : BIT0_OFF,
   268            Bit1        : BIT1_OFF,
   269            Bit2        : BIT2_OFF,
   270            Bit3        : BIT3_OFF,
   271            Bit4        : BIT4_OFF,
   272            Bit5        : BIT5_OFF,
   273            Bit6        : BIT6_OFF,
   274            Bit7        : BIT7_OFF
   275        };
   276
   277        /*! Port 4 Direction Register */
   278        config GpioBits8PxDir_t P4DIR = {
   279            Bit0        : BIT0_OFF,
   280            Bit1        : BIT1_OFF,
   281            Bit2        : BIT2_OFF,
   282            Bit3        : BIT3_OFF,
   283            Bit4        : BIT4_OFF,
   284            Bit5        : BIT5_OFF,
   285            Bit6        : BIT6_OFF,
   286            Bit7        : BIT7_OFF
   287        };
   288
   289        /*! Port 4 Resistor Enable Register */
   290        config GpioBits8PxRen_t P4REN = {
   291            Bit0        : BIT0_OFF,
   292            Bit1        : BIT1_OFF,
   293            Bit2        : BIT2_OFF,
   294            Bit3        : BIT3_OFF,
   295            Bit4        : BIT4_OFF,
   296            Bit5        : BIT5_OFF,
   297            Bit6        : BIT6_OFF,
   298            Bit7        : BIT7_OFF
   299        };
   300
   301            /*! Port 5 Output Register */
   302        config GpioBits8PxOut_t P5OUT = {
   303            Bit0        : BIT0_OFF,
   304            Bit1        : BIT1_OFF,
   305            Bit2        : BIT2_OFF,
   306            Bit3        : BIT3_OFF,
   307            Bit4        : BIT4_OFF,
   308            Bit5        : BIT5_OFF,
   309            Bit6        : BIT6_OFF,
   310            Bit7        : BIT7_OFF
   311        };
   312
   313        /*! Port 5 Port Select Register */
   314        config GpioBits8PxSel_t P5SEL = {
   315            Bit0        : BIT0_OFF,
   316            Bit1        : BIT1_OFF,
   317            Bit2        : BIT2_OFF,
   318            Bit3        : BIT3_OFF,
   319            Bit4        : BIT4_OFF,
   320            Bit5        : BIT5_OFF,
   321            Bit6        : BIT6_OFF,
   322            Bit7        : BIT7_OFF
   323        };
   324
   325        /*! Port 5 Direction Register */
   326        config GpioBits8PxDir_t P5DIR = {
   327            Bit0        : BIT0_OFF,
   328            Bit1        : BIT1_OFF,
   329            Bit2        : BIT2_OFF,
   330            Bit3        : BIT3_OFF,
   331            Bit4        : BIT4_OFF,
   332            Bit5        : BIT5_OFF,
   333            Bit6        : BIT6_OFF,
   334            Bit7        : BIT7_OFF
   335        };
   336
   337        /*! Port 5 Resistor Enable Register */
   338        config GpioBits8PxRen_t P5REN = {
   339            Bit0        : BIT0_OFF,
   340            Bit1        : BIT1_OFF,
   341            Bit2        : BIT2_OFF,
   342            Bit3        : BIT3_OFF,
   343            Bit4        : BIT4_OFF,
   344            Bit5        : BIT5_OFF,
   345            Bit6        : BIT6_OFF,
   346            Bit7        : BIT7_OFF
   347        };
   348
   349        /*! Port 6 Output Register */
   350        config GpioBits8PxOut_t P6OUT = {
   351            Bit0        : BIT0_OFF,
   352            Bit1        : BIT1_OFF,
   353            Bit2        : BIT2_OFF,
   354            Bit3        : BIT3_OFF,
   355            Bit4        : BIT4_OFF,
   356            Bit5        : BIT5_OFF,
   357            Bit6        : BIT6_OFF,
   358            Bit7        : BIT7_OFF
   359        };
   360
   361        /*! Port 6 Port Select Register */
   362        config GpioBits8PxSel_t P6SEL = {
   363            Bit0        : BIT0_OFF,
   364            Bit1        : BIT1_OFF,
   365            Bit2        : BIT2_OFF,
   366            Bit3        : BIT3_OFF,
   367            Bit4        : BIT4_OFF,
   368            Bit5        : BIT5_OFF,
   369            Bit6        : BIT6_OFF,
   370            Bit7        : BIT7_OFF
   371        };
   372
   373        /*! Port 6 Direction Register */
   374        config GpioBits8PxDir_t P6DIR = {
   375            Bit0        : BIT0_OFF,
   376            Bit1        : BIT1_OFF,
   377            Bit2        : BIT2_OFF,
   378            Bit3        : BIT3_OFF,
   379            Bit4        : BIT4_OFF,
   380            Bit5        : BIT5_OFF,
   381            Bit6        : BIT6_OFF,
   382            Bit7        : BIT7_OFF
   383        };
   384
   385        /*! Port 6 Resistor Enable Register */
   386        config GpioBits8PxRen_t P6REN = {
   387            Bit0        : BIT0_OFF,
   388            Bit1        : BIT1_OFF,
   389            Bit2        : BIT2_OFF,
   390            Bit3        : BIT3_OFF,
   391            Bit4        : BIT4_OFF,
   392            Bit5        : BIT5_OFF,
   393            Bit6        : BIT6_OFF,
   394            Bit7        : BIT7_OFF
   395        };
   396
   397        /*! Port 7 Output Register */
   398        config GpioBits8PxOut_t P7OUT = {
   399            Bit0        : BIT0_OFF,
   400            Bit1        : BIT1_OFF,
   401            Bit2        : BIT2_OFF,
   402            Bit3        : BIT3_OFF,
   403            Bit4        : BIT4_OFF,
   404            Bit5        : BIT5_OFF,
   405            Bit6        : BIT6_OFF,
   406            Bit7        : BIT7_OFF
   407        };
   408
   409        /*! Port 7 Port Select Register */
   410        config GpioBits8PxSel_t P7SEL = {
   411            Bit0        : BIT0_OFF,
   412            Bit1        : BIT1_OFF,
   413            Bit2        : BIT2_OFF,
   414            Bit3        : BIT3_OFF,
   415            Bit4        : BIT4_OFF,
   416            Bit5        : BIT5_OFF,
   417            Bit6        : BIT6_OFF,
   418            Bit7        : BIT7_OFF
   419        };
   420
   421        /*! Port 7 Direction Register */
   422        config GpioBits8PxDir_t P7DIR = {
   423            Bit0        : BIT0_OFF,
   424            Bit1        : BIT1_OFF,
   425            Bit2        : BIT2_OFF,
   426            Bit3        : BIT3_OFF,
   427            Bit4        : BIT4_OFF,
   428            Bit5        : BIT5_OFF,
   429            Bit6        : BIT6_OFF,
   430            Bit7        : BIT7_OFF
   431        };
   432
   433        /*! Port 7 Resistor Enable Register */
   434        config GpioBits8PxRen_t P7REN = {
   435            Bit0        : BIT0_OFF,
   436            Bit1        : BIT1_OFF,
   437            Bit2        : BIT2_OFF,
   438            Bit3        : BIT3_OFF,
   439            Bit4        : BIT4_OFF,
   440            Bit5        : BIT5_OFF,
   441            Bit6        : BIT6_OFF,
   442            Bit7        : BIT7_OFF
   443        };
   444
   445        /*! Port 8 Output Register */
   446        config GpioBits8PxOut_t P8OUT = {
   447            Bit0        : BIT0_OFF,
   448            Bit1        : BIT1_OFF,
   449            Bit2        : BIT2_OFF,
   450            Bit3        : BIT3_OFF,
   451            Bit4        : BIT4_OFF,
   452            Bit5        : BIT5_OFF,
   453            Bit6        : BIT6_OFF,
   454            Bit7        : BIT7_OFF
   455        };
   456
   457        /*! Port 8 Port Select Register */
   458        config GpioBits8PxSel_t P8SEL = {
   459            Bit0        : BIT0_OFF,
   460            Bit1        : BIT1_OFF,
   461            Bit2        : BIT2_OFF,
   462            Bit3        : BIT3_OFF,
   463            Bit4        : BIT4_OFF,
   464            Bit5        : BIT5_OFF,
   465            Bit6        : BIT6_OFF,
   466            Bit7        : BIT7_OFF
   467        };
   468
   469        /*! Port 8 Direction Register */
   470        config GpioBits8PxDir_t P8DIR = {
   471            Bit0        : BIT0_OFF,
   472            Bit1        : BIT1_OFF,
   473            Bit2        : BIT2_OFF,
   474            Bit3        : BIT3_OFF,
   475            Bit4        : BIT4_OFF,
   476            Bit5        : BIT5_OFF,
   477            Bit6        : BIT6_OFF,
   478            Bit7        : BIT7_OFF
   479        };
   480
   481        /*! Port 8 Resistor Enable Register */
   482        config GpioBits8PxRen_t P8REN = {
   483            Bit0        : BIT0_OFF,
   484            Bit1        : BIT1_OFF,
   485            Bit2        : BIT2_OFF,
   486            Bit3        : BIT3_OFF,
   487            Bit4        : BIT4_OFF,
   488            Bit5        : BIT5_OFF,
   489            Bit6        : BIT6_OFF,
   490            Bit7        : BIT7_OFF
   491        };
   492
   493        /*! Port 9 Output Register */
   494        config GpioBits8PxOut_t P9OUT = {
   495            Bit0        : BIT0_OFF,
   496            Bit1        : BIT1_OFF,
   497            Bit2        : BIT2_OFF,
   498            Bit3        : BIT3_OFF,
   499            Bit4        : BIT4_OFF,
   500            Bit5        : BIT5_OFF,
   501            Bit6        : BIT6_OFF,
   502            Bit7        : BIT7_OFF
   503        };
   504
   505        /*! Port 9 Port Select Register */
   506        config GpioBits8PxSel_t P9SEL = {
   507            Bit0        : BIT0_OFF,
   508            Bit1        : BIT1_OFF,
   509            Bit2        : BIT2_OFF,
   510            Bit3        : BIT3_OFF,
   511            Bit4        : BIT4_OFF,
   512            Bit5        : BIT5_OFF,
   513            Bit6        : BIT6_OFF,
   514            Bit7        : BIT7_OFF
   515        };
   516
   517        /*! Port 9 Direction Register */
   518        config GpioBits8PxDir_t P9DIR = {
   519            Bit0        : BIT0_OFF,
   520            Bit1        : BIT1_OFF,
   521            Bit2        : BIT2_OFF,
   522            Bit3        : BIT3_OFF,
   523            Bit4        : BIT4_OFF,
   524            Bit5        : BIT5_OFF,
   525            Bit6        : BIT6_OFF,
   526            Bit7        : BIT7_OFF
   527        };
   528
   529        /*! Port 9 Resistor Enable Register */
   530        config GpioBits8PxRen_t P9REN = {
   531            Bit0        : BIT0_OFF,
   532            Bit1        : BIT1_OFF,
   533            Bit2        : BIT2_OFF,
   534            Bit3        : BIT3_OFF,
   535            Bit4        : BIT4_OFF,
   536            Bit5        : BIT5_OFF,
   537            Bit6        : BIT6_OFF,
   538            Bit7        : BIT7_OFF
   539        };
   540
   541        /*! Port 10 Output Register */
   542        config GpioBits8PxOut_t P10OUT = {
   543            Bit0        : BIT0_OFF,
   544            Bit1        : BIT1_OFF,
   545            Bit2        : BIT2_OFF,
   546            Bit3        : BIT3_OFF,
   547            Bit4        : BIT4_OFF,
   548            Bit5        : BIT5_OFF,
   549            Bit6        : BIT6_OFF,
   550            Bit7        : BIT7_OFF
   551        };
   552
   553        /*! Port 10 Port Select Register */
   554        config GpioBits8PxSel_t P10SEL = {
   555            Bit0        : BIT0_OFF,
   556            Bit1        : BIT1_OFF,
   557            Bit2        : BIT2_OFF,
   558            Bit3        : BIT3_OFF,
   559            Bit4        : BIT4_OFF,
   560            Bit5        : BIT5_OFF,
   561            Bit6        : BIT6_OFF,
   562            Bit7        : BIT7_OFF
   563        };
   564
   565        /*! Port 10 Direction Register */
   566        config GpioBits8PxDir_t P10DIR = {
   567            Bit0        : BIT0_OFF,
   568            Bit1        : BIT1_OFF,
   569            Bit2        : BIT2_OFF,
   570            Bit3        : BIT3_OFF,
   571            Bit4        : BIT4_OFF,
   572            Bit5        : BIT5_OFF,
   573            Bit6        : BIT6_OFF,
   574            Bit7        : BIT7_OFF
   575        };
   576
   577        /*! Port 10 Resistor Enable Register */
   578        config GpioBits8PxRen_t P10REN = {
   579            Bit0        : BIT0_OFF,
   580            Bit1        : BIT1_OFF,
   581            Bit2        : BIT2_OFF,
   582            Bit3        : BIT3_OFF,
   583            Bit4        : BIT4_OFF,
   584            Bit5        : BIT5_OFF,
   585            Bit6        : BIT6_OFF,
   586            Bit7        : BIT7_OFF
   587        };
   588
   589        /*! Port 11 Output Register */
   590        config GpioBits8PxOut_t P11OUT = {
   591            Bit0        : BIT0_OFF,
   592            Bit1        : BIT1_OFF,
   593            Bit2        : BIT2_OFF,
   594            Bit3        : BIT3_OFF,
   595            Bit4        : BIT4_OFF,
   596            Bit5        : BIT5_OFF,
   597            Bit6        : BIT6_OFF,
   598            Bit7        : BIT7_OFF
   599        };
   600
   601        /*! Port 11 Port Select Register */
   602        config GpioBits8PxSel_t P11SEL = {
   603            Bit0        : BIT0_OFF,
   604            Bit1        : BIT1_OFF,
   605            Bit2        : BIT2_OFF,
   606            Bit3        : BIT3_OFF,
   607            Bit4        : BIT4_OFF,
   608            Bit5        : BIT5_OFF,
   609            Bit6        : BIT6_OFF,
   610            Bit7        : BIT7_OFF
   611        };
   612
   613        /*! Port 11 Direction Register */
   614        config GpioBits8PxDir_t P11DIR = {
   615            Bit0        : BIT0_OFF,
   616            Bit1        : BIT1_OFF,
   617            Bit2        : BIT2_OFF,
   618            Bit3        : BIT3_OFF,
   619            Bit4        : BIT4_OFF,
   620            Bit5        : BIT5_OFF,
   621            Bit6        : BIT6_OFF,
   622            Bit7        : BIT7_OFF
   623        };
   624
   625        /*! Port 11 Resistor Enable Register */
   626        config GpioBits8PxRen_t P11REN = {
   627            Bit0        : BIT0_OFF,
   628            Bit1        : BIT1_OFF,
   629            Bit2        : BIT2_OFF,
   630            Bit3        : BIT3_OFF,
   631            Bit4        : BIT4_OFF,
   632            Bit5        : BIT5_OFF,
   633            Bit6        : BIT6_OFF,
   634            Bit7        : BIT7_OFF
   635        };
   636    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5736_32_26_22

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5736_32_26_22
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430FR5736_32_26_22.xdc
var GPIO_MSP430FR5736_32_26_22 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5736_32_26_22');
module-wide constants & types
    values of type GPIO_MSP430FR5736_32_26_22.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430FR5736_32_26_22.BIT0_OFF;
        const GPIO_MSP430FR5736_32_26_22.BIT0;
    values of type GPIO_MSP430FR5736_32_26_22.Bit1_t//
        const GPIO_MSP430FR5736_32_26_22.BIT1_OFF;
        const GPIO_MSP430FR5736_32_26_22.BIT1;
    values of type GPIO_MSP430FR5736_32_26_22.Bit2_t//
        const GPIO_MSP430FR5736_32_26_22.BIT2_OFF;
        const GPIO_MSP430FR5736_32_26_22.BIT2;
    values of type GPIO_MSP430FR5736_32_26_22.Bit3_t//
        const GPIO_MSP430FR5736_32_26_22.BIT3_OFF;
        const GPIO_MSP430FR5736_32_26_22.BIT3;
    values of type GPIO_MSP430FR5736_32_26_22.Bit4_t//
        const GPIO_MSP430FR5736_32_26_22.BIT4_OFF;
        const GPIO_MSP430FR5736_32_26_22.BIT4;
    values of type GPIO_MSP430FR5736_32_26_22.Bit5_t//
        const GPIO_MSP430FR5736_32_26_22.BIT5_OFF;
        const GPIO_MSP430FR5736_32_26_22.BIT5;
    values of type GPIO_MSP430FR5736_32_26_22.Bit6_t//
        const GPIO_MSP430FR5736_32_26_22.BIT6_OFF;
        const GPIO_MSP430FR5736_32_26_22.BIT6;
    values of type GPIO_MSP430FR5736_32_26_22.Bit7_t//
        const GPIO_MSP430FR5736_32_26_22.BIT7_OFF;
        const GPIO_MSP430FR5736_32_26_22.BIT7;
    values of type GPIO_MSP430FR5736_32_26_22.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430FR5736_32_26_22.IE_OFF// Disabled;
        const GPIO_MSP430FR5736_32_26_22.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430FR5736_32_26_22.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430FR5736_32_26_22.OutputState_t// Output high or low drop down list
        const GPIO_MSP430FR5736_32_26_22.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430FR5736_32_26_22.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430FR5736_32_26_22.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430FR5736_32_26_22.PUDRE_OFF// Disabled;
        const GPIO_MSP430FR5736_32_26_22.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430FR5736_32_26_22.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430FR5736_32_26_22.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430FR5736_32_26_22.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430FR5736_32_26_22.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430FR5736_32_26_22.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5736_32_26_22.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430FR5736_32_26_22.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430FR5736_32_26_22.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430FR5736_32_26_22.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430FR5736_32_26_22.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL0// Port 1 Port Select Register 0 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL1// Port 1 Port Select Register 1 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL0// Port 2 Port Select Register 0 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL1// Port 2 Port Select Register 1 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJDIR// Port J Direction Register = GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJOUT// Port J Output Register = GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJREN// Port J Resistor Enable Register = GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL0// Port J Port Select Register 0 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL1// Port J Port Select Register 1 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430FR5736_32_26_22.DevicePinFunctionSetting_t[8][3] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 3 + 2 = 10 pins total = GPIO_MSP430FR5736_32_26_22.DevicePin_t[8][3] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430FR5736_32_26_22.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL0",
                regForceSet: false
            },
            {
                register: "P1SEL1",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL0",
                regForceSet: false
            },
            {
                register: "P2SEL1",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "PJOUT",
                regForceSet: true
            },
            {
                register: "PJSEL0",
                regForceSet: false
            },
            {
                register: "PJSEL1",
                regForceSet: false
            },
            {
                register: "PJDIR",
                regForceSet: true
            },
            {
                register: "PJREN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430FR5736_32_26_22.create// Create an instance-object(CS.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430FR5736_32_26_22.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.Bit0_t
    const GPIO_MSP430FR5736_32_26_22.BIT0_OFF;
    const GPIO_MSP430FR5736_32_26_22.BIT0;
enum GPIO_MSP430FR5736_32_26_22.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.Bit1_t
    const GPIO_MSP430FR5736_32_26_22.BIT1_OFF;
    const GPIO_MSP430FR5736_32_26_22.BIT1;
enum GPIO_MSP430FR5736_32_26_22.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.Bit2_t
    const GPIO_MSP430FR5736_32_26_22.BIT2_OFF;
    const GPIO_MSP430FR5736_32_26_22.BIT2;
enum GPIO_MSP430FR5736_32_26_22.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.Bit3_t
    const GPIO_MSP430FR5736_32_26_22.BIT3_OFF;
    const GPIO_MSP430FR5736_32_26_22.BIT3;
enum GPIO_MSP430FR5736_32_26_22.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.Bit4_t
    const GPIO_MSP430FR5736_32_26_22.BIT4_OFF;
    const GPIO_MSP430FR5736_32_26_22.BIT4;
enum GPIO_MSP430FR5736_32_26_22.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.Bit5_t
    const GPIO_MSP430FR5736_32_26_22.BIT5_OFF;
    const GPIO_MSP430FR5736_32_26_22.BIT5;
enum GPIO_MSP430FR5736_32_26_22.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.Bit6_t
    const GPIO_MSP430FR5736_32_26_22.BIT6_OFF;
    const GPIO_MSP430FR5736_32_26_22.BIT6;
enum GPIO_MSP430FR5736_32_26_22.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.Bit7_t
    const GPIO_MSP430FR5736_32_26_22.BIT7_OFF;
    const GPIO_MSP430FR5736_32_26_22.BIT7;
enum GPIO_MSP430FR5736_32_26_22.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.InterruptEnable_t
    const GPIO_MSP430FR5736_32_26_22.IE_OFF;
    // Disabled
    const GPIO_MSP430FR5736_32_26_22.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430FR5736_32_26_22.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430FR5736_32_26_22.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.OutputState_t
    const GPIO_MSP430FR5736_32_26_22.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430FR5736_32_26_22.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430FR5736_32_26_22.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5736_32_26_22.ResEnable_t
    const GPIO_MSP430FR5736_32_26_22.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430FR5736_32_26_22.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430FR5736_32_26_22.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430FR5736_32_26_22.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430FR5736_32_26_22.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430FR5736_32_26_22.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430FR5736_32_26_22.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430FR5736_32_26_22.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430FR5736_32_26_22.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430FR5736_32_26_22.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430FR5736_32_26_22.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430FR5736_32_26_22.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430FR5736_32_26_22.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430FR5736_32_26_22.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5736_32_26_22.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430FR5736_32_26_22.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430FR5736_32_26_22.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430FR5736_32_26_22.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430FR5736_32_26_22.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL0 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    // Port 1 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL1 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    // Port 1 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL0 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    // Port 2 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL1 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    // Port 2 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJDIR = GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t {
    // Port J Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJOUT = GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t {
    // Port J Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJREN = GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t {
    // Port J Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL0 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    // Port J Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL1 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    // Port J Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430FR5736_32_26_22.DevicePinFunctionSetting_t[8][3] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430FR5736_32_26_22.DevicePin_t[8][3] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 3 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430FR5736_32_26_22.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL0",
            regForceSet: false
        },
        {
            register: "P1SEL1",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL0",
            regForceSet: false
        },
        {
            register: "P2SEL1",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "PJOUT",
            regForceSet: true
        },
        {
            register: "PJSEL0",
            regForceSet: false
        },
        {
            register: "PJSEL1",
            regForceSet: false
        },
        {
            register: "PJDIR",
            regForceSet: true
        },
        {
            register: "PJREN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430FR5736_32_26_22.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P1DIR = GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P1OUT = GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P1REN = GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P1SEL0 // instance
index URL

Port 1 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P1SEL0 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P1SEL1 // instance
index URL

Port 1 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P1SEL1 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P2DIR = GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P2OUT = GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P2REN = GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P2SEL0 // instance
index URL

Port 2 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P2SEL0 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P2SEL1 // instance
index URL

Port 2 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P2SEL1 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.PJDIR // instance
index URL

Port J Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.PJDIR = GPIO_MSP430FR5736_32_26_22.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.PJOUT // instance
index URL

Port J Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.PJOUT = GPIO_MSP430FR5736_32_26_22.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.PJREN // instance
index URL

Port J Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.PJREN = GPIO_MSP430FR5736_32_26_22.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.PJSEL0 // instance
index URL

Port J Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.PJSEL0 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.PJSEL1 // instance
index URL

Port J Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.PJSEL1 = GPIO_MSP430FR5736_32_26_22.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5736_32_26_22.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.devicePinSetting = GPIO_MSP430FR5736_32_26_22.DevicePinFunctionSetting_t[8][3] undefined;
config GPIO_MSP430FR5736_32_26_22.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 3 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.devicePins = GPIO_MSP430FR5736_32_26_22.DevicePin_t[8][3] undefined;
config GPIO_MSP430FR5736_32_26_22.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430FR5736_32_26_22.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL0",
        regForceSet: false
    },
    {
        register: "P1SEL1",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL0",
        regForceSet: false
    },
    {
        register: "P2SEL1",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "PJOUT",
        regForceSet: true
    },
    {
        register: "PJSEL0",
        regForceSet: false
    },
    {
        register: "PJSEL1",
        regForceSet: false
    },
    {
        register: "PJDIR",
        regForceSet: true
    },
    {
        register: "PJREN",
        regForceSet: false
    }
];
config GPIO_MSP430FR5736_32_26_22.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430FR5736_32_26_22.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430FR5736_32_26_22.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5736_32_26_22.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430FR5736_32_26_22.create(CS.Instance clock, params);
// Create an instance-object
GPIO_MSP430FR5736_32_26_22.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430FR5736_32_26_22.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430FR5736_32_26_22.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430FR5736_32_26_22.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430FR5736_32_26_22.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430FR5736_32_26_22.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:27 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5736_32_26_22

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.CS as CS;
    13
    14    /*!
    15     *  ======== GPIO for P430FR5736_32_26_22 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430FR5736_32_26_22 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral. Use a customized
    22         *  init function so that we can get access to the CS
    23         *  instances.
    24         */
    25        create(CS.Instance clock);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config CS.Instance clock;
    30
    31       /*! Define an array to describe all device pins. The 1st dimension
    32        *  denotes the port, the second the pin on that port. On an
    33        *  MSP430FR57xx device, there are 3 + 2 = 10 pins total.
    34        */
    35
    36        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    37         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    38        config DevicePin_t devicePins[3][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[3][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT"  , regForceSet : true  },
    47            { register : "P1SEL0" , regForceSet : false },
    48            { register : "P1SEL1" , regForceSet : false },
    49            { register : "P1DIR"  , regForceSet : true  },
    50            { register : "P1REN"  , regForceSet : false },
    51            { register : "P1IES"  , regForceSet : true  },
    52            { register : "P1IFG"  , regForceSet : true  },
    53            { register : "P1IE"   , regForceSet : false },
    54            { register : "P2OUT"  , regForceSet : true  },
    55            { register : "P2SEL0" , regForceSet : false },
    56            { register : "P2SEL1" , regForceSet : false },
    57            { register : "P2DIR"  , regForceSet : true  },
    58            { register : "P2REN"  , regForceSet : false },
    59            { register : "P2IES"  , regForceSet : true  },
    60            { register : "P2IFG"  , regForceSet : true  },
    61            { register : "P2IE"   , regForceSet : false },
    62            { register : "PJOUT"  , regForceSet : true  },
    63            { register : "PJSEL0" , regForceSet : false },
    64            { register : "PJSEL1" , regForceSet : false },
    65            { register : "PJDIR"  , regForceSet : true  },
    66            { register : "PJREN"  , regForceSet : false }
    67        ];
    68
    69        /*
    70         *  GPIO Digital I/O Registers
    71         *
    72         *  One GIPO instance defines the configuration of an entire,
    73         *  8-bit wide digital I/O port.
    74         */
    75
    76        /*! Port 1 Output Register */
    77        config GpioBits8PxOut_t P1OUT = {
    78            Bit0        : BIT0_OFF,
    79            Bit1        : BIT1_OFF,
    80            Bit2        : BIT2_OFF,
    81            Bit3        : BIT3_OFF,
    82            Bit4        : BIT4_OFF,
    83            Bit5        : BIT5_OFF,
    84            Bit6        : BIT6_OFF,
    85            Bit7        : BIT7_OFF
    86        };
    87
    88        /*! Port 1 Port Select Register 0 */
    89        config GpioBits8PxSel_t P1SEL0 = {
    90            Bit0        : BIT0_OFF,
    91            Bit1        : BIT1_OFF,
    92            Bit2        : BIT2_OFF,
    93            Bit3        : BIT3_OFF,
    94            Bit4        : BIT4_OFF,
    95            Bit5        : BIT5_OFF,
    96            Bit6        : BIT6_OFF,
    97            Bit7        : BIT7_OFF
    98        };
    99
   100        /*! Port 1 Port Select Register 1 */
   101        config GpioBits8PxSel_t P1SEL1 = {
   102            Bit0        : BIT0_OFF,
   103            Bit1        : BIT1_OFF,
   104            Bit2        : BIT2_OFF,
   105            Bit3        : BIT3_OFF,
   106            Bit4        : BIT4_OFF,
   107            Bit5        : BIT5_OFF,
   108            Bit6        : BIT6_OFF,
   109            Bit7        : BIT7_OFF
   110        };
   111
   112        /*! Port 1 Direction Register */
   113        config GpioBits8PxDir_t P1DIR = {
   114            Bit0        : BIT0_OFF,
   115            Bit1        : BIT1_OFF,
   116            Bit2        : BIT2_OFF,
   117            Bit3        : BIT3_OFF,
   118            Bit4        : BIT4_OFF,
   119            Bit5        : BIT5_OFF,
   120            Bit6        : BIT6_OFF,
   121            Bit7        : BIT7_OFF
   122        };
   123
   124        /*! Port 1 Resistor Enable Register */
   125        config GpioBits8PxRen_t P1REN = {
   126            Bit0        : BIT0_OFF,
   127            Bit1        : BIT1_OFF,
   128            Bit2        : BIT2_OFF,
   129            Bit3        : BIT3_OFF,
   130            Bit4        : BIT4_OFF,
   131            Bit5        : BIT5_OFF,
   132            Bit6        : BIT6_OFF,
   133            Bit7        : BIT7_OFF
   134        };
   135
   136        /*! Port 2 Output Register */
   137        config GpioBits8PxOut_t P2OUT = {
   138            Bit0        : BIT0_OFF,
   139            Bit1        : BIT1_OFF,
   140            Bit2        : BIT2_OFF,
   141            Bit3        : BIT3_OFF,
   142            Bit4        : BIT4_OFF,
   143            Bit5        : BIT5_OFF,
   144            Bit6        : BIT6_OFF,
   145            Bit7        : BIT7_OFF
   146        };
   147
   148        /*! Port 2 Port Select Register 0 */
   149        config GpioBits8PxSel_t P2SEL0 = {
   150            Bit0        : BIT0_OFF,
   151            Bit1        : BIT1_OFF,
   152            Bit2        : BIT2_OFF,
   153            Bit3        : BIT3_OFF,
   154            Bit4        : BIT4_OFF,
   155            Bit5        : BIT5_OFF,
   156            Bit6        : BIT6_OFF,
   157            Bit7        : BIT7_OFF
   158        };
   159
   160        /*! Port 2 Port Select Register 1 */
   161        config GpioBits8PxSel_t P2SEL1 = {
   162            Bit0        : BIT0_OFF,
   163            Bit1        : BIT1_OFF,
   164            Bit2        : BIT2_OFF,
   165            Bit3        : BIT3_OFF,
   166            Bit4        : BIT4_OFF,
   167            Bit5        : BIT5_OFF,
   168            Bit6        : BIT6_OFF,
   169            Bit7        : BIT7_OFF
   170        };
   171
   172        /*! Port 2 Direction Register */
   173        config GpioBits8PxDir_t P2DIR = {
   174            Bit0        : BIT0_OFF,
   175            Bit1        : BIT1_OFF,
   176            Bit2        : BIT2_OFF,
   177            Bit3        : BIT3_OFF,
   178            Bit4        : BIT4_OFF,
   179            Bit5        : BIT5_OFF,
   180            Bit6        : BIT6_OFF,
   181            Bit7        : BIT7_OFF
   182        };
   183
   184        /*! Port 2 Resistor Enable Register */
   185        config GpioBits8PxRen_t P2REN = {
   186            Bit0        : BIT0_OFF,
   187            Bit1        : BIT1_OFF,
   188            Bit2        : BIT2_OFF,
   189            Bit3        : BIT3_OFF,
   190            Bit4        : BIT4_OFF,
   191            Bit5        : BIT5_OFF,
   192            Bit6        : BIT6_OFF,
   193            Bit7        : BIT7_OFF
   194        };
   195
   196        /*! Port J Output Register */
   197        config GpioBits8PxOut_t PJOUT = {
   198            Bit0        : BIT0_OFF,
   199            Bit1        : BIT1_OFF,
   200            Bit2        : BIT2_OFF,
   201            Bit3        : BIT3_OFF,
   202            Bit4        : BIT4_OFF,
   203            Bit5        : BIT5_OFF,
   204            Bit6        : BIT6_OFF,
   205            Bit7        : BIT7_OFF
   206        };
   207
   208        /*! Port J Port Select Register 0 */
   209        config GpioBits8PxSel_t PJSEL0 = {
   210            Bit0        : BIT0_OFF,
   211            Bit1        : BIT1_OFF,
   212            Bit2        : BIT2_OFF,
   213            Bit3        : BIT3_OFF,
   214            Bit4        : BIT4_OFF,
   215            Bit5        : BIT5_OFF,
   216            Bit6        : BIT6_OFF,
   217            Bit7        : BIT7_OFF
   218        };
   219
   220        /*! Port J Port Select Register 1 */
   221        config GpioBits8PxSel_t PJSEL1 = {
   222            Bit0        : BIT0_OFF,
   223            Bit1        : BIT1_OFF,
   224            Bit2        : BIT2_OFF,
   225            Bit3        : BIT3_OFF,
   226            Bit4        : BIT4_OFF,
   227            Bit5        : BIT5_OFF,
   228            Bit6        : BIT6_OFF,
   229            Bit7        : BIT7_OFF
   230        };
   231
   232        /*! Port J Direction Register */
   233        config GpioBits8PxDir_t PJDIR = {
   234            Bit0        : BIT0_OFF,
   235            Bit1        : BIT1_OFF,
   236            Bit2        : BIT2_OFF,
   237            Bit3        : BIT3_OFF,
   238            Bit4        : BIT4_OFF,
   239            Bit5        : BIT5_OFF,
   240            Bit6        : BIT6_OFF,
   241            Bit7        : BIT7_OFF
   242        };
   243
   244        /*! Port J Resistor Enable Register */
   245        config GpioBits8PxRen_t PJREN = {
   246            Bit0        : BIT0_OFF,
   247            Bit1        : BIT1_OFF,
   248            Bit2        : BIT2_OFF,
   249            Bit3        : BIT3_OFF,
   250            Bit4        : BIT4_OFF,
   251            Bit5        : BIT5_OFF,
   252            Bit6        : BIT6_OFF,
   253            Bit7        : BIT7_OFF
   254        };
   255    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5737_33_27_23

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5737_33_27_23
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430FR5737_33_27_23.xdc
var GPIO_MSP430FR5737_33_27_23 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5737_33_27_23');
module-wide constants & types
    values of type GPIO_MSP430FR5737_33_27_23.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430FR5737_33_27_23.BIT0_OFF;
        const GPIO_MSP430FR5737_33_27_23.BIT0;
    values of type GPIO_MSP430FR5737_33_27_23.Bit1_t//
        const GPIO_MSP430FR5737_33_27_23.BIT1_OFF;
        const GPIO_MSP430FR5737_33_27_23.BIT1;
    values of type GPIO_MSP430FR5737_33_27_23.Bit2_t//
        const GPIO_MSP430FR5737_33_27_23.BIT2_OFF;
        const GPIO_MSP430FR5737_33_27_23.BIT2;
    values of type GPIO_MSP430FR5737_33_27_23.Bit3_t//
        const GPIO_MSP430FR5737_33_27_23.BIT3_OFF;
        const GPIO_MSP430FR5737_33_27_23.BIT3;
    values of type GPIO_MSP430FR5737_33_27_23.Bit4_t//
        const GPIO_MSP430FR5737_33_27_23.BIT4_OFF;
        const GPIO_MSP430FR5737_33_27_23.BIT4;
    values of type GPIO_MSP430FR5737_33_27_23.Bit5_t//
        const GPIO_MSP430FR5737_33_27_23.BIT5_OFF;
        const GPIO_MSP430FR5737_33_27_23.BIT5;
    values of type GPIO_MSP430FR5737_33_27_23.Bit6_t//
        const GPIO_MSP430FR5737_33_27_23.BIT6_OFF;
        const GPIO_MSP430FR5737_33_27_23.BIT6;
    values of type GPIO_MSP430FR5737_33_27_23.Bit7_t//
        const GPIO_MSP430FR5737_33_27_23.BIT7_OFF;
        const GPIO_MSP430FR5737_33_27_23.BIT7;
    values of type GPIO_MSP430FR5737_33_27_23.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430FR5737_33_27_23.IE_OFF// Disabled;
        const GPIO_MSP430FR5737_33_27_23.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430FR5737_33_27_23.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430FR5737_33_27_23.OutputState_t// Output high or low drop down list
        const GPIO_MSP430FR5737_33_27_23.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430FR5737_33_27_23.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430FR5737_33_27_23.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430FR5737_33_27_23.PUDRE_OFF// Disabled;
        const GPIO_MSP430FR5737_33_27_23.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430FR5737_33_27_23.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430FR5737_33_27_23.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430FR5737_33_27_23.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430FR5737_33_27_23.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430FR5737_33_27_23.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5737_33_27_23.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430FR5737_33_27_23.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430FR5737_33_27_23.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430FR5737_33_27_23.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430FR5737_33_27_23.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL0// Port 1 Port Select Register 0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL1// Port 1 Port Select Register 1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL0// Port 2 Port Select Register 0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL1// Port 2 Port Select Register 1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL0// Port 3 Port Select Register 0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL1// Port 3 Port Select Register 1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL0// Port 4 Port Select Register 0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL1// Port 4 Port Select Register 1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJDIR// Port J Direction Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJOUT// Port J Output Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJREN// Port J Resistor Enable Register = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL0// Port J Port Select Register 0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL1// Port J Port Select Register 1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430FR5737_33_27_23.DevicePinFunctionSetting_t[8][5] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 5 + 2 = 10 pins total = GPIO_MSP430FR5737_33_27_23.DevicePin_t[8][5] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430FR5737_33_27_23.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL0",
                regForceSet: false
            },
            {
                register: "P1SEL1",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL0",
                regForceSet: false
            },
            {
                register: "P2SEL1",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL0",
                regForceSet: false
            },
            {
                register: "P3SEL1",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P3IES",
                regForceSet: true
            },
            {
                register: "P3IFG",
                regForceSet: true
            },
            {
                register: "P3IE",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL0",
                regForceSet: false
            },
            {
                register: "P4SEL1",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            },
            {
                register: "P4IES",
                regForceSet: true
            },
            {
                register: "P4IFG",
                regForceSet: true
            },
            {
                register: "P4IE",
                regForceSet: false
            },
            {
                register: "PJOUT",
                regForceSet: true
            },
            {
                register: "PJSEL0",
                regForceSet: false
            },
            {
                register: "PJSEL1",
                regForceSet: false
            },
            {
                register: "PJDIR",
                regForceSet: true
            },
            {
                register: "PJREN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430FR5737_33_27_23.create// Create an instance-object(CS.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430FR5737_33_27_23.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.Bit0_t
    const GPIO_MSP430FR5737_33_27_23.BIT0_OFF;
    const GPIO_MSP430FR5737_33_27_23.BIT0;
enum GPIO_MSP430FR5737_33_27_23.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.Bit1_t
    const GPIO_MSP430FR5737_33_27_23.BIT1_OFF;
    const GPIO_MSP430FR5737_33_27_23.BIT1;
enum GPIO_MSP430FR5737_33_27_23.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.Bit2_t
    const GPIO_MSP430FR5737_33_27_23.BIT2_OFF;
    const GPIO_MSP430FR5737_33_27_23.BIT2;
enum GPIO_MSP430FR5737_33_27_23.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.Bit3_t
    const GPIO_MSP430FR5737_33_27_23.BIT3_OFF;
    const GPIO_MSP430FR5737_33_27_23.BIT3;
enum GPIO_MSP430FR5737_33_27_23.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.Bit4_t
    const GPIO_MSP430FR5737_33_27_23.BIT4_OFF;
    const GPIO_MSP430FR5737_33_27_23.BIT4;
enum GPIO_MSP430FR5737_33_27_23.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.Bit5_t
    const GPIO_MSP430FR5737_33_27_23.BIT5_OFF;
    const GPIO_MSP430FR5737_33_27_23.BIT5;
enum GPIO_MSP430FR5737_33_27_23.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.Bit6_t
    const GPIO_MSP430FR5737_33_27_23.BIT6_OFF;
    const GPIO_MSP430FR5737_33_27_23.BIT6;
enum GPIO_MSP430FR5737_33_27_23.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.Bit7_t
    const GPIO_MSP430FR5737_33_27_23.BIT7_OFF;
    const GPIO_MSP430FR5737_33_27_23.BIT7;
enum GPIO_MSP430FR5737_33_27_23.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.InterruptEnable_t
    const GPIO_MSP430FR5737_33_27_23.IE_OFF;
    // Disabled
    const GPIO_MSP430FR5737_33_27_23.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430FR5737_33_27_23.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430FR5737_33_27_23.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.OutputState_t
    const GPIO_MSP430FR5737_33_27_23.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430FR5737_33_27_23.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430FR5737_33_27_23.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5737_33_27_23.ResEnable_t
    const GPIO_MSP430FR5737_33_27_23.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430FR5737_33_27_23.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430FR5737_33_27_23.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430FR5737_33_27_23.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430FR5737_33_27_23.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430FR5737_33_27_23.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430FR5737_33_27_23.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430FR5737_33_27_23.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430FR5737_33_27_23.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430FR5737_33_27_23.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430FR5737_33_27_23.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430FR5737_33_27_23.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430FR5737_33_27_23.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430FR5737_33_27_23.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5737_33_27_23.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430FR5737_33_27_23.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430FR5737_33_27_23.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430FR5737_33_27_23.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430FR5737_33_27_23.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port 1 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port 1 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port 2 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port 2 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port 3 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port 3 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port 4 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port 4 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJDIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    // Port J Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJOUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    // Port J Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJREN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    // Port J Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port J Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    // Port J Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430FR5737_33_27_23.DevicePinFunctionSetting_t[8][5] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430FR5737_33_27_23.DevicePin_t[8][5] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 5 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430FR5737_33_27_23.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL0",
            regForceSet: false
        },
        {
            register: "P1SEL1",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL0",
            regForceSet: false
        },
        {
            register: "P2SEL1",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL0",
            regForceSet: false
        },
        {
            register: "P3SEL1",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P3IES",
            regForceSet: true
        },
        {
            register: "P3IFG",
            regForceSet: true
        },
        {
            register: "P3IE",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL0",
            regForceSet: false
        },
        {
            register: "P4SEL1",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        },
        {
            register: "P4IES",
            regForceSet: true
        },
        {
            register: "P4IFG",
            regForceSet: true
        },
        {
            register: "P4IE",
            regForceSet: false
        },
        {
            register: "PJOUT",
            regForceSet: true
        },
        {
            register: "PJSEL0",
            regForceSet: false
        },
        {
            register: "PJSEL1",
            regForceSet: false
        },
        {
            register: "PJDIR",
            regForceSet: true
        },
        {
            register: "PJREN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430FR5737_33_27_23.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P1DIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P1OUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P1REN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P1SEL0 // instance
index URL

Port 1 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P1SEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P1SEL1 // instance
index URL

Port 1 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P1SEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P2DIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P2OUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P2REN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P2SEL0 // instance
index URL

Port 2 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P2SEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P2SEL1 // instance
index URL

Port 2 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P2SEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P3DIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P3OUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P3REN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P3SEL0 // instance
index URL

Port 3 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P3SEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P3SEL1 // instance
index URL

Port 3 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P3SEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P4DIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P4OUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P4REN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P4SEL0 // instance
index URL

Port 4 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P4SEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.P4SEL1 // instance
index URL

Port 4 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.P4SEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.PJDIR // instance
index URL

Port J Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.PJDIR = GPIO_MSP430FR5737_33_27_23.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.PJOUT // instance
index URL

Port J Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.PJOUT = GPIO_MSP430FR5737_33_27_23.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.PJREN // instance
index URL

Port J Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.PJREN = GPIO_MSP430FR5737_33_27_23.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.PJSEL0 // instance
index URL

Port J Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.PJSEL0 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.PJSEL1 // instance
index URL

Port J Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.PJSEL1 = GPIO_MSP430FR5737_33_27_23.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5737_33_27_23.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.devicePinSetting = GPIO_MSP430FR5737_33_27_23.DevicePinFunctionSetting_t[8][5] undefined;
config GPIO_MSP430FR5737_33_27_23.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 5 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.devicePins = GPIO_MSP430FR5737_33_27_23.DevicePin_t[8][5] undefined;
config GPIO_MSP430FR5737_33_27_23.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430FR5737_33_27_23.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL0",
        regForceSet: false
    },
    {
        register: "P1SEL1",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL0",
        regForceSet: false
    },
    {
        register: "P2SEL1",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL0",
        regForceSet: false
    },
    {
        register: "P3SEL1",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P3IES",
        regForceSet: true
    },
    {
        register: "P3IFG",
        regForceSet: true
    },
    {
        register: "P3IE",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL0",
        regForceSet: false
    },
    {
        register: "P4SEL1",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    },
    {
        register: "P4IES",
        regForceSet: true
    },
    {
        register: "P4IFG",
        regForceSet: true
    },
    {
        register: "P4IE",
        regForceSet: false
    },
    {
        register: "PJOUT",
        regForceSet: true
    },
    {
        register: "PJSEL0",
        regForceSet: false
    },
    {
        register: "PJSEL1",
        regForceSet: false
    },
    {
        register: "PJDIR",
        regForceSet: true
    },
    {
        register: "PJREN",
        regForceSet: false
    }
];
config GPIO_MSP430FR5737_33_27_23.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430FR5737_33_27_23.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430FR5737_33_27_23.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5737_33_27_23.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430FR5737_33_27_23.create(CS.Instance clock, params);
// Create an instance-object
GPIO_MSP430FR5737_33_27_23.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430FR5737_33_27_23.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430FR5737_33_27_23.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430FR5737_33_27_23.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430FR5737_33_27_23.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430FR5737_33_27_23.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:27 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5737_33_27_23

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.CS as CS;
    13
    14    /*!
    15     *  ======== GPIO for MSP430FR5737_33_27_23 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430FR5737_33_27_23 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral. Use a customized
    22         *  init function so that we can get access to the CS
    23         *  instances.
    24         */
    25        create(CS.Instance clock);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config CS.Instance clock;
    30
    31       /*! Define an array to describe all device pins. The 1st dimension
    32        *  denotes the port, the second the pin on that port. On an
    33        *  MSP430FR57xx device, there are 5 + 2 = 10 pins total.
    34        */
    35
    36        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    37         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    38        config DevicePin_t devicePins[5][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[5][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT"  , regForceSet : true  },
    47            { register : "P1SEL0" , regForceSet : false },
    48            { register : "P1SEL1" , regForceSet : false },
    49            { register : "P1DIR"  , regForceSet : true  },
    50            { register : "P1REN"  , regForceSet : false },
    51            { register : "P1IES"  , regForceSet : true  },
    52            { register : "P1IFG"  , regForceSet : true  },
    53            { register : "P1IE"   , regForceSet : false },
    54            { register : "P2OUT"  , regForceSet : true  },
    55            { register : "P2SEL0" , regForceSet : false },
    56            { register : "P2SEL1" , regForceSet : false },
    57            { register : "P2DIR"  , regForceSet : true  },
    58            { register : "P2REN"  , regForceSet : false },
    59            { register : "P2IES"  , regForceSet : true  },
    60            { register : "P2IFG"  , regForceSet : true  },
    61            { register : "P2IE"   , regForceSet : false },
    62            { register : "P3OUT"  , regForceSet : true  },
    63            { register : "P3SEL0" , regForceSet : false },
    64            { register : "P3SEL1" , regForceSet : false },
    65            { register : "P3DIR"  , regForceSet : true  },
    66            { register : "P3REN"  , regForceSet : false },
    67            { register : "P3IES"  , regForceSet : true  },
    68            { register : "P3IFG"  , regForceSet : true  },
    69            { register : "P3IE"   , regForceSet : false },
    70            { register : "P4OUT"  , regForceSet : true  },
    71            { register : "P4SEL0" , regForceSet : false },
    72            { register : "P4SEL1" , regForceSet : false },
    73            { register : "P4DIR"  , regForceSet : true  },
    74            { register : "P4REN"  , regForceSet : false },
    75            { register : "P4IES"  , regForceSet : true  },
    76            { register : "P4IFG"  , regForceSet : true  },
    77            { register : "P4IE"   , regForceSet : false },
    78            { register : "PJOUT"  , regForceSet : true  },
    79            { register : "PJSEL0" , regForceSet : false },
    80            { register : "PJSEL1" , regForceSet : false },
    81            { register : "PJDIR"  , regForceSet : true  },
    82            { register : "PJREN"  , regForceSet : false }
    83        ];
    84
    85        /*
    86         *  GPIO Digital I/O Registers
    87         *
    88         *  One GIPO instance defines the configuration of an entire,
    89         *  8-bit wide digital I/O port.
    90         */
    91
    92        /*! Port 1 Output Register */
    93        config GpioBits8PxOut_t P1OUT = {
    94            Bit0        : BIT0_OFF,
    95            Bit1        : BIT1_OFF,
    96            Bit2        : BIT2_OFF,
    97            Bit3        : BIT3_OFF,
    98            Bit4        : BIT4_OFF,
    99            Bit5        : BIT5_OFF,
   100            Bit6        : BIT6_OFF,
   101            Bit7        : BIT7_OFF
   102        };
   103
   104        /*! Port 1 Port Select Register 0 */
   105        config GpioBits8PxSel_t P1SEL0 = {
   106            Bit0        : BIT0_OFF,
   107            Bit1        : BIT1_OFF,
   108            Bit2        : BIT2_OFF,
   109            Bit3        : BIT3_OFF,
   110            Bit4        : BIT4_OFF,
   111            Bit5        : BIT5_OFF,
   112            Bit6        : BIT6_OFF,
   113            Bit7        : BIT7_OFF
   114        };
   115
   116        /*! Port 1 Port Select Register 1 */
   117        config GpioBits8PxSel_t P1SEL1 = {
   118            Bit0        : BIT0_OFF,
   119            Bit1        : BIT1_OFF,
   120            Bit2        : BIT2_OFF,
   121            Bit3        : BIT3_OFF,
   122            Bit4        : BIT4_OFF,
   123            Bit5        : BIT5_OFF,
   124            Bit6        : BIT6_OFF,
   125            Bit7        : BIT7_OFF
   126        };
   127
   128        /*! Port 1 Direction Register */
   129        config GpioBits8PxDir_t P1DIR = {
   130            Bit0        : BIT0_OFF,
   131            Bit1        : BIT1_OFF,
   132            Bit2        : BIT2_OFF,
   133            Bit3        : BIT3_OFF,
   134            Bit4        : BIT4_OFF,
   135            Bit5        : BIT5_OFF,
   136            Bit6        : BIT6_OFF,
   137            Bit7        : BIT7_OFF
   138        };
   139
   140        /*! Port 1 Resistor Enable Register */
   141        config GpioBits8PxRen_t P1REN = {
   142            Bit0        : BIT0_OFF,
   143            Bit1        : BIT1_OFF,
   144            Bit2        : BIT2_OFF,
   145            Bit3        : BIT3_OFF,
   146            Bit4        : BIT4_OFF,
   147            Bit5        : BIT5_OFF,
   148            Bit6        : BIT6_OFF,
   149            Bit7        : BIT7_OFF
   150        };
   151
   152        /*! Port 2 Output Register */
   153        config GpioBits8PxOut_t P2OUT = {
   154            Bit0        : BIT0_OFF,
   155            Bit1        : BIT1_OFF,
   156            Bit2        : BIT2_OFF,
   157            Bit3        : BIT3_OFF,
   158            Bit4        : BIT4_OFF,
   159            Bit5        : BIT5_OFF,
   160            Bit6        : BIT6_OFF,
   161            Bit7        : BIT7_OFF
   162        };
   163
   164        /*! Port 2 Port Select Register 0 */
   165        config GpioBits8PxSel_t P2SEL0 = {
   166            Bit0        : BIT0_OFF,
   167            Bit1        : BIT1_OFF,
   168            Bit2        : BIT2_OFF,
   169            Bit3        : BIT3_OFF,
   170            Bit4        : BIT4_OFF,
   171            Bit5        : BIT5_OFF,
   172            Bit6        : BIT6_OFF,
   173            Bit7        : BIT7_OFF
   174        };
   175
   176        /*! Port 2 Port Select Register 1 */
   177        config GpioBits8PxSel_t P2SEL1 = {
   178            Bit0        : BIT0_OFF,
   179            Bit1        : BIT1_OFF,
   180            Bit2        : BIT2_OFF,
   181            Bit3        : BIT3_OFF,
   182            Bit4        : BIT4_OFF,
   183            Bit5        : BIT5_OFF,
   184            Bit6        : BIT6_OFF,
   185            Bit7        : BIT7_OFF
   186        };
   187
   188        /*! Port 2 Direction Register */
   189        config GpioBits8PxDir_t P2DIR = {
   190            Bit0        : BIT0_OFF,
   191            Bit1        : BIT1_OFF,
   192            Bit2        : BIT2_OFF,
   193            Bit3        : BIT3_OFF,
   194            Bit4        : BIT4_OFF,
   195            Bit5        : BIT5_OFF,
   196            Bit6        : BIT6_OFF,
   197            Bit7        : BIT7_OFF
   198        };
   199
   200        /*! Port 2 Resistor Enable Register */
   201        config GpioBits8PxRen_t P2REN = {
   202            Bit0        : BIT0_OFF,
   203            Bit1        : BIT1_OFF,
   204            Bit2        : BIT2_OFF,
   205            Bit3        : BIT3_OFF,
   206            Bit4        : BIT4_OFF,
   207            Bit5        : BIT5_OFF,
   208            Bit6        : BIT6_OFF,
   209            Bit7        : BIT7_OFF
   210        };
   211
   212        /*! Port 3 Output Register */
   213        config GpioBits8PxOut_t P3OUT = {
   214            Bit0        : BIT0_OFF,
   215            Bit1        : BIT1_OFF,
   216            Bit2        : BIT2_OFF,
   217            Bit3        : BIT3_OFF,
   218            Bit4        : BIT4_OFF,
   219            Bit5        : BIT5_OFF,
   220            Bit6        : BIT6_OFF,
   221            Bit7        : BIT7_OFF
   222        };
   223
   224        /*! Port 3 Port Select Register 0 */
   225        config GpioBits8PxSel_t P3SEL0 = {
   226            Bit0        : BIT0_OFF,
   227            Bit1        : BIT1_OFF,
   228            Bit2        : BIT2_OFF,
   229            Bit3        : BIT3_OFF,
   230            Bit4        : BIT4_OFF,
   231            Bit5        : BIT5_OFF,
   232            Bit6        : BIT6_OFF,
   233            Bit7        : BIT7_OFF
   234        };
   235
   236        /*! Port 3 Port Select Register 1 */
   237        config GpioBits8PxSel_t P3SEL1 = {
   238            Bit0        : BIT0_OFF,
   239            Bit1        : BIT1_OFF,
   240            Bit2        : BIT2_OFF,
   241            Bit3        : BIT3_OFF,
   242            Bit4        : BIT4_OFF,
   243            Bit5        : BIT5_OFF,
   244            Bit6        : BIT6_OFF,
   245            Bit7        : BIT7_OFF
   246        };
   247
   248        /*! Port 3 Direction Register */
   249        config GpioBits8PxDir_t P3DIR = {
   250            Bit0        : BIT0_OFF,
   251            Bit1        : BIT1_OFF,
   252            Bit2        : BIT2_OFF,
   253            Bit3        : BIT3_OFF,
   254            Bit4        : BIT4_OFF,
   255            Bit5        : BIT5_OFF,
   256            Bit6        : BIT6_OFF,
   257            Bit7        : BIT7_OFF
   258        };
   259
   260        /*! Port 3 Resistor Enable Register */
   261        config GpioBits8PxRen_t P3REN = {
   262            Bit0        : BIT0_OFF,
   263            Bit1        : BIT1_OFF,
   264            Bit2        : BIT2_OFF,
   265            Bit3        : BIT3_OFF,
   266            Bit4        : BIT4_OFF,
   267            Bit5        : BIT5_OFF,
   268            Bit6        : BIT6_OFF,
   269            Bit7        : BIT7_OFF
   270        };
   271
   272        /*! Port 4 Output Register */
   273        config GpioBits8PxOut_t P4OUT = {
   274            Bit0        : BIT0_OFF,
   275            Bit1        : BIT1_OFF,
   276            Bit2        : BIT2_OFF,
   277            Bit3        : BIT3_OFF,
   278            Bit4        : BIT4_OFF,
   279            Bit5        : BIT5_OFF,
   280            Bit6        : BIT6_OFF,
   281            Bit7        : BIT7_OFF
   282        };
   283
   284        /*! Port 4 Port Select Register 0 */
   285        config GpioBits8PxSel_t P4SEL0 = {
   286            Bit0        : BIT0_OFF,
   287            Bit1        : BIT1_OFF,
   288            Bit2        : BIT2_OFF,
   289            Bit3        : BIT3_OFF,
   290            Bit4        : BIT4_OFF,
   291            Bit5        : BIT5_OFF,
   292            Bit6        : BIT6_OFF,
   293            Bit7        : BIT7_OFF
   294        };
   295
   296        /*! Port 4 Port Select Register 1 */
   297        config GpioBits8PxSel_t P4SEL1 = {
   298            Bit0        : BIT0_OFF,
   299            Bit1        : BIT1_OFF,
   300            Bit2        : BIT2_OFF,
   301            Bit3        : BIT3_OFF,
   302            Bit4        : BIT4_OFF,
   303            Bit5        : BIT5_OFF,
   304            Bit6        : BIT6_OFF,
   305            Bit7        : BIT7_OFF
   306        };
   307
   308        /*! Port 4 Direction Register */
   309        config GpioBits8PxDir_t P4DIR = {
   310            Bit0        : BIT0_OFF,
   311            Bit1        : BIT1_OFF,
   312            Bit2        : BIT2_OFF,
   313            Bit3        : BIT3_OFF,
   314            Bit4        : BIT4_OFF,
   315            Bit5        : BIT5_OFF,
   316            Bit6        : BIT6_OFF,
   317            Bit7        : BIT7_OFF
   318        };
   319
   320        /*! Port 4 Resistor Enable Register */
   321        config GpioBits8PxRen_t P4REN = {
   322            Bit0        : BIT0_OFF,
   323            Bit1        : BIT1_OFF,
   324            Bit2        : BIT2_OFF,
   325            Bit3        : BIT3_OFF,
   326            Bit4        : BIT4_OFF,
   327            Bit5        : BIT5_OFF,
   328            Bit6        : BIT6_OFF,
   329            Bit7        : BIT7_OFF
   330        };
   331
   332        /*! Port J Output Register */
   333        config GpioBits8PxOut_t PJOUT = {
   334            Bit0        : BIT0_OFF,
   335            Bit1        : BIT1_OFF,
   336            Bit2        : BIT2_OFF,
   337            Bit3        : BIT3_OFF,
   338            Bit4        : BIT4_OFF,
   339            Bit5        : BIT5_OFF,
   340            Bit6        : BIT6_OFF,
   341            Bit7        : BIT7_OFF
   342        };
   343
   344        /*! Port J Port Select Register 0 */
   345        config GpioBits8PxSel_t PJSEL0 = {
   346            Bit0        : BIT0_OFF,
   347            Bit1        : BIT1_OFF,
   348            Bit2        : BIT2_OFF,
   349            Bit3        : BIT3_OFF,
   350            Bit4        : BIT4_OFF,
   351            Bit5        : BIT5_OFF,
   352            Bit6        : BIT6_OFF,
   353            Bit7        : BIT7_OFF
   354        };
   355
   356        /*! Port J Port Select Register 1 */
   357        config GpioBits8PxSel_t PJSEL1 = {
   358            Bit0        : BIT0_OFF,
   359            Bit1        : BIT1_OFF,
   360            Bit2        : BIT2_OFF,
   361            Bit3        : BIT3_OFF,
   362            Bit4        : BIT4_OFF,
   363            Bit5        : BIT5_OFF,
   364            Bit6        : BIT6_OFF,
   365            Bit7        : BIT7_OFF
   366        };
   367
   368        /*! Port J Direction Register */
   369        config GpioBits8PxDir_t PJDIR = {
   370            Bit0        : BIT0_OFF,
   371            Bit1        : BIT1_OFF,
   372            Bit2        : BIT2_OFF,
   373            Bit3        : BIT3_OFF,
   374            Bit4        : BIT4_OFF,
   375            Bit5        : BIT5_OFF,
   376            Bit6        : BIT6_OFF,
   377            Bit7        : BIT7_OFF
   378        };
   379
   380        /*! Port J Resistor Enable Register */
   381        config GpioBits8PxRen_t PJREN = {
   382            Bit0        : BIT0_OFF,
   383            Bit1        : BIT1_OFF,
   384            Bit2        : BIT2_OFF,
   385            Bit3        : BIT3_OFF,
   386            Bit4        : BIT4_OFF,
   387            Bit5        : BIT5_OFF,
   388            Bit6        : BIT6_OFF,
   389            Bit7        : BIT7_OFF
   390        };
   391    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5738_34_30_28_24_20

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5738_34_30_28_24_20
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430FR5738_34_30_28_24_20.xdc
var GPIO_MSP430FR5738_34_30_28_24_20 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5738_34_30_28_24_20');
module-wide constants & types
    values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT0_OFF;
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT0;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit1_t//
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT1_OFF;
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT1;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit2_t//
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT2_OFF;
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT2;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit3_t//
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT3_OFF;
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT3;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit4_t//
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT4_OFF;
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT4;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit5_t//
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT5_OFF;
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT5;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit6_t//
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT6_OFF;
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT6;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit7_t//
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT7_OFF;
        const GPIO_MSP430FR5738_34_30_28_24_20.BIT7;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430FR5738_34_30_28_24_20.IE_OFF// Disabled;
        const GPIO_MSP430FR5738_34_30_28_24_20.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430FR5738_34_30_28_24_20.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.OutputState_t// Output high or low drop down list
        const GPIO_MSP430FR5738_34_30_28_24_20.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430FR5738_34_30_28_24_20.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430FR5738_34_30_28_24_20.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430FR5738_34_30_28_24_20.PUDRE_OFF// Disabled;
        const GPIO_MSP430FR5738_34_30_28_24_20.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430FR5738_34_30_28_24_20.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430FR5738_34_30_28_24_20.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430FR5738_34_30_28_24_20.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430FR5738_34_30_28_24_20.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL0// Port 1 Port Select Register 0 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL1// Port 1 Port Select Register 1 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL0// Port 2 Port Select Register 0 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL1// Port 2 Port Select Register 1 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJDIR// Port J Direction Register = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJOUT// Port J Output Register = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJREN// Port J Resistor Enable Register = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL0// Port J Port Select Register 0 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL1// Port J Port Select Register 1 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430FR5738_34_30_28_24_20.DevicePinFunctionSetting_t[8][3] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 3 + 2 = 10 pins total = GPIO_MSP430FR5738_34_30_28_24_20.DevicePin_t[8][3] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430FR5738_34_30_28_24_20.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL0",
                regForceSet: false
            },
            {
                register: "P1SEL1",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL0",
                regForceSet: false
            },
            {
                register: "P2SEL1",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "PJOUT",
                regForceSet: true
            },
            {
                register: "PJSEL0",
                regForceSet: false
            },
            {
                register: "PJSEL1",
                regForceSet: false
            },
            {
                register: "PJDIR",
                regForceSet: true
            },
            {
                register: "PJREN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430FR5738_34_30_28_24_20.create// Create an instance-object(CS.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430FR5738_34_30_28_24_20.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit0_t
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT0_OFF;
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT0;
enum GPIO_MSP430FR5738_34_30_28_24_20.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit1_t
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT1_OFF;
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT1;
enum GPIO_MSP430FR5738_34_30_28_24_20.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit2_t
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT2_OFF;
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT2;
enum GPIO_MSP430FR5738_34_30_28_24_20.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit3_t
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT3_OFF;
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT3;
enum GPIO_MSP430FR5738_34_30_28_24_20.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit4_t
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT4_OFF;
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT4;
enum GPIO_MSP430FR5738_34_30_28_24_20.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit5_t
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT5_OFF;
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT5;
enum GPIO_MSP430FR5738_34_30_28_24_20.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit6_t
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT6_OFF;
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT6;
enum GPIO_MSP430FR5738_34_30_28_24_20.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.Bit7_t
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT7_OFF;
    const GPIO_MSP430FR5738_34_30_28_24_20.BIT7;
enum GPIO_MSP430FR5738_34_30_28_24_20.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.InterruptEnable_t
    const GPIO_MSP430FR5738_34_30_28_24_20.IE_OFF;
    // Disabled
    const GPIO_MSP430FR5738_34_30_28_24_20.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430FR5738_34_30_28_24_20.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430FR5738_34_30_28_24_20.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.OutputState_t
    const GPIO_MSP430FR5738_34_30_28_24_20.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430FR5738_34_30_28_24_20.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430FR5738_34_30_28_24_20.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5738_34_30_28_24_20.ResEnable_t
    const GPIO_MSP430FR5738_34_30_28_24_20.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430FR5738_34_30_28_24_20.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430FR5738_34_30_28_24_20.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430FR5738_34_30_28_24_20.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430FR5738_34_30_28_24_20.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430FR5738_34_30_28_24_20.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430FR5738_34_30_28_24_20.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430FR5738_34_30_28_24_20.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430FR5738_34_30_28_24_20.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430FR5738_34_30_28_24_20.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5738_34_30_28_24_20.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430FR5738_34_30_28_24_20.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430FR5738_34_30_28_24_20.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430FR5738_34_30_28_24_20.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430FR5738_34_30_28_24_20.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL0 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    // Port 1 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL1 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    // Port 1 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL0 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    // Port 2 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL1 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    // Port 2 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJDIR = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t {
    // Port J Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJOUT = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t {
    // Port J Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJREN = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t {
    // Port J Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL0 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    // Port J Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL1 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    // Port J Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430FR5738_34_30_28_24_20.DevicePinFunctionSetting_t[8][3] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430FR5738_34_30_28_24_20.DevicePin_t[8][3] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 3 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430FR5738_34_30_28_24_20.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL0",
            regForceSet: false
        },
        {
            register: "P1SEL1",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL0",
            regForceSet: false
        },
        {
            register: "P2SEL1",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "PJOUT",
            regForceSet: true
        },
        {
            register: "PJSEL0",
            regForceSet: false
        },
        {
            register: "PJSEL1",
            regForceSet: false
        },
        {
            register: "PJDIR",
            regForceSet: true
        },
        {
            register: "PJREN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430FR5738_34_30_28_24_20.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P1DIR = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P1OUT = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P1REN = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P1SEL0 // instance
index URL

Port 1 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P1SEL0 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P1SEL1 // instance
index URL

Port 1 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P1SEL1 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P2DIR = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P2OUT = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P2REN = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P2SEL0 // instance
index URL

Port 2 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P2SEL0 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P2SEL1 // instance
index URL

Port 2 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P2SEL1 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.PJDIR // instance
index URL

Port J Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.PJDIR = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.PJOUT // instance
index URL

Port J Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.PJOUT = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.PJREN // instance
index URL

Port J Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.PJREN = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.PJSEL0 // instance
index URL

Port J Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.PJSEL0 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.PJSEL1 // instance
index URL

Port J Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.PJSEL1 = GPIO_MSP430FR5738_34_30_28_24_20.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5738_34_30_28_24_20.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.devicePinSetting = GPIO_MSP430FR5738_34_30_28_24_20.DevicePinFunctionSetting_t[8][3] undefined;
config GPIO_MSP430FR5738_34_30_28_24_20.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 3 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.devicePins = GPIO_MSP430FR5738_34_30_28_24_20.DevicePin_t[8][3] undefined;
config GPIO_MSP430FR5738_34_30_28_24_20.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430FR5738_34_30_28_24_20.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL0",
        regForceSet: false
    },
    {
        register: "P1SEL1",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL0",
        regForceSet: false
    },
    {
        register: "P2SEL1",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "PJOUT",
        regForceSet: true
    },
    {
        register: "PJSEL0",
        regForceSet: false
    },
    {
        register: "PJSEL1",
        regForceSet: false
    },
    {
        register: "PJDIR",
        regForceSet: true
    },
    {
        register: "PJREN",
        regForceSet: false
    }
];
config GPIO_MSP430FR5738_34_30_28_24_20.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430FR5738_34_30_28_24_20.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430FR5738_34_30_28_24_20.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5738_34_30_28_24_20.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430FR5738_34_30_28_24_20.create(CS.Instance clock, params);
// Create an instance-object
GPIO_MSP430FR5738_34_30_28_24_20.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430FR5738_34_30_28_24_20.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430FR5738_34_30_28_24_20.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430FR5738_34_30_28_24_20.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430FR5738_34_30_28_24_20.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430FR5738_34_30_28_24_20.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:28 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5738_34_30_28_24_20

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.CS as CS;
    13
    14    /*!
    15     *  ======== GPIO for MSP430FR5738_34_30_28_24_20 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430FR5738_34_30_28_24_20 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral. Use a customized
    22         *  init function so that we can get access to the CS
    23         *  instances.
    24         */
    25        create(CS.Instance clock);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config CS.Instance clock;
    30
    31       /*! Define an array to describe all device pins. The 1st dimension
    32        *  denotes the port, the second the pin on that port. On an
    33        *  MSP430FR57xx device, there are 3 + 2 = 10 pins total.
    34        */
    35
    36        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    37         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    38        config DevicePin_t devicePins[3][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[3][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT"  , regForceSet : true  },
    47            { register : "P1SEL0" , regForceSet : false },
    48            { register : "P1SEL1" , regForceSet : false },
    49            { register : "P1DIR"  , regForceSet : true  },
    50            { register : "P1REN"  , regForceSet : false },
    51            { register : "P1IES"  , regForceSet : true  },
    52            { register : "P1IFG"  , regForceSet : true  },
    53            { register : "P1IE"   , regForceSet : false },
    54            { register : "P2OUT"  , regForceSet : true  },
    55            { register : "P2SEL0" , regForceSet : false },
    56            { register : "P2SEL1" , regForceSet : false },
    57            { register : "P2DIR"  , regForceSet : true  },
    58            { register : "P2REN"  , regForceSet : false },
    59            { register : "P2IES"  , regForceSet : true  },
    60            { register : "P2IFG"  , regForceSet : true  },
    61            { register : "P2IE"   , regForceSet : false },
    62            { register : "PJOUT"  , regForceSet : true  },
    63            { register : "PJSEL0" , regForceSet : false },
    64            { register : "PJSEL1" , regForceSet : false },
    65            { register : "PJDIR"  , regForceSet : true  },
    66            { register : "PJREN"  , regForceSet : false }
    67        ];
    68
    69        /*
    70         *  GPIO Digital I/O Registers
    71         *
    72         *  One GIPO instance defines the configuration of an entire,
    73         *  8-bit wide digital I/O port.
    74         */
    75
    76        /*! Port 1 Output Register */
    77        config GpioBits8PxOut_t P1OUT = {
    78            Bit0        : BIT0_OFF,
    79            Bit1        : BIT1_OFF,
    80            Bit2        : BIT2_OFF,
    81            Bit3        : BIT3_OFF,
    82            Bit4        : BIT4_OFF,
    83            Bit5        : BIT5_OFF,
    84            Bit6        : BIT6_OFF,
    85            Bit7        : BIT7_OFF
    86        };
    87
    88        /*! Port 1 Port Select Register 0 */
    89        config GpioBits8PxSel_t P1SEL0 = {
    90            Bit0        : BIT0_OFF,
    91            Bit1        : BIT1_OFF,
    92            Bit2        : BIT2_OFF,
    93            Bit3        : BIT3_OFF,
    94            Bit4        : BIT4_OFF,
    95            Bit5        : BIT5_OFF,
    96            Bit6        : BIT6_OFF,
    97            Bit7        : BIT7_OFF
    98        };
    99
   100        /*! Port 1 Port Select Register 1 */
   101        config GpioBits8PxSel_t P1SEL1 = {
   102            Bit0        : BIT0_OFF,
   103            Bit1        : BIT1_OFF,
   104            Bit2        : BIT2_OFF,
   105            Bit3        : BIT3_OFF,
   106            Bit4        : BIT4_OFF,
   107            Bit5        : BIT5_OFF,
   108            Bit6        : BIT6_OFF,
   109            Bit7        : BIT7_OFF
   110        };
   111
   112        /*! Port 1 Direction Register */
   113        config GpioBits8PxDir_t P1DIR = {
   114            Bit0        : BIT0_OFF,
   115            Bit1        : BIT1_OFF,
   116            Bit2        : BIT2_OFF,
   117            Bit3        : BIT3_OFF,
   118            Bit4        : BIT4_OFF,
   119            Bit5        : BIT5_OFF,
   120            Bit6        : BIT6_OFF,
   121            Bit7        : BIT7_OFF
   122        };
   123
   124        /*! Port 1 Resistor Enable Register */
   125        config GpioBits8PxRen_t P1REN = {
   126            Bit0        : BIT0_OFF,
   127            Bit1        : BIT1_OFF,
   128            Bit2        : BIT2_OFF,
   129            Bit3        : BIT3_OFF,
   130            Bit4        : BIT4_OFF,
   131            Bit5        : BIT5_OFF,
   132            Bit6        : BIT6_OFF,
   133            Bit7        : BIT7_OFF
   134        };
   135
   136        /*! Port 2 Output Register */
   137        config GpioBits8PxOut_t P2OUT = {
   138            Bit0        : BIT0_OFF,
   139            Bit1        : BIT1_OFF,
   140            Bit2        : BIT2_OFF,
   141            Bit3        : BIT3_OFF,
   142            Bit4        : BIT4_OFF,
   143            Bit5        : BIT5_OFF,
   144            Bit6        : BIT6_OFF,
   145            Bit7        : BIT7_OFF
   146        };
   147
   148        /*! Port 2 Port Select Register 0 */
   149        config GpioBits8PxSel_t P2SEL0 = {
   150            Bit0        : BIT0_OFF,
   151            Bit1        : BIT1_OFF,
   152            Bit2        : BIT2_OFF,
   153            Bit3        : BIT3_OFF,
   154            Bit4        : BIT4_OFF,
   155            Bit5        : BIT5_OFF,
   156            Bit6        : BIT6_OFF,
   157            Bit7        : BIT7_OFF
   158        };
   159
   160        /*! Port 2 Port Select Register 1 */
   161        config GpioBits8PxSel_t P2SEL1 = {
   162            Bit0        : BIT0_OFF,
   163            Bit1        : BIT1_OFF,
   164            Bit2        : BIT2_OFF,
   165            Bit3        : BIT3_OFF,
   166            Bit4        : BIT4_OFF,
   167            Bit5        : BIT5_OFF,
   168            Bit6        : BIT6_OFF,
   169            Bit7        : BIT7_OFF
   170        };
   171
   172        /*! Port 2 Direction Register */
   173        config GpioBits8PxDir_t P2DIR = {
   174            Bit0        : BIT0_OFF,
   175            Bit1        : BIT1_OFF,
   176            Bit2        : BIT2_OFF,
   177            Bit3        : BIT3_OFF,
   178            Bit4        : BIT4_OFF,
   179            Bit5        : BIT5_OFF,
   180            Bit6        : BIT6_OFF,
   181            Bit7        : BIT7_OFF
   182        };
   183
   184        /*! Port 2 Resistor Enable Register */
   185        config GpioBits8PxRen_t P2REN = {
   186            Bit0        : BIT0_OFF,
   187            Bit1        : BIT1_OFF,
   188            Bit2        : BIT2_OFF,
   189            Bit3        : BIT3_OFF,
   190            Bit4        : BIT4_OFF,
   191            Bit5        : BIT5_OFF,
   192            Bit6        : BIT6_OFF,
   193            Bit7        : BIT7_OFF
   194        };
   195
   196        /*! Port J Output Register */
   197        config GpioBits8PxOut_t PJOUT = {
   198            Bit0        : BIT0_OFF,
   199            Bit1        : BIT1_OFF,
   200            Bit2        : BIT2_OFF,
   201            Bit3        : BIT3_OFF,
   202            Bit4        : BIT4_OFF,
   203            Bit5        : BIT5_OFF,
   204            Bit6        : BIT6_OFF,
   205            Bit7        : BIT7_OFF
   206        };
   207
   208        /*! Port J Port Select Register 0 */
   209        config GpioBits8PxSel_t PJSEL0 = {
   210            Bit0        : BIT0_OFF,
   211            Bit1        : BIT1_OFF,
   212            Bit2        : BIT2_OFF,
   213            Bit3        : BIT3_OFF,
   214            Bit4        : BIT4_OFF,
   215            Bit5        : BIT5_OFF,
   216            Bit6        : BIT6_OFF,
   217            Bit7        : BIT7_OFF
   218        };
   219
   220        /*! Port J Port Select Register 1 */
   221        config GpioBits8PxSel_t PJSEL1 = {
   222            Bit0        : BIT0_OFF,
   223            Bit1        : BIT1_OFF,
   224            Bit2        : BIT2_OFF,
   225            Bit3        : BIT3_OFF,
   226            Bit4        : BIT4_OFF,
   227            Bit5        : BIT5_OFF,
   228            Bit6        : BIT6_OFF,
   229            Bit7        : BIT7_OFF
   230        };
   231
   232        /*! Port J Direction Register */
   233        config GpioBits8PxDir_t PJDIR = {
   234            Bit0        : BIT0_OFF,
   235            Bit1        : BIT1_OFF,
   236            Bit2        : BIT2_OFF,
   237            Bit3        : BIT3_OFF,
   238            Bit4        : BIT4_OFF,
   239            Bit5        : BIT5_OFF,
   240            Bit6        : BIT6_OFF,
   241            Bit7        : BIT7_OFF
   242        };
   243
   244        /*! Port J Resistor Enable Register */
   245        config GpioBits8PxRen_t PJREN = {
   246            Bit0        : BIT0_OFF,
   247            Bit1        : BIT1_OFF,
   248            Bit2        : BIT2_OFF,
   249            Bit3        : BIT3_OFF,
   250            Bit4        : BIT4_OFF,
   251            Bit5        : BIT5_OFF,
   252            Bit6        : BIT6_OFF,
   253            Bit7        : BIT7_OFF
   254        };
   255    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5739_35_31_29_25_21

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5739_35_31_29_25_21
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430FR5739_35_31_29_25_21.xdc
var GPIO_MSP430FR5739_35_31_29_25_21 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5739_35_31_29_25_21');
module-wide constants & types
    values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT0_OFF;
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT0;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit1_t//
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT1_OFF;
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT1;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit2_t//
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT2_OFF;
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT2;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit3_t//
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT3_OFF;
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT3;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit4_t//
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT4_OFF;
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT4;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit5_t//
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT5_OFF;
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT5;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit6_t//
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT6_OFF;
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT6;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit7_t//
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT7_OFF;
        const GPIO_MSP430FR5739_35_31_29_25_21.BIT7;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430FR5739_35_31_29_25_21.IE_OFF// Disabled;
        const GPIO_MSP430FR5739_35_31_29_25_21.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430FR5739_35_31_29_25_21.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.OutputState_t// Output high or low drop down list
        const GPIO_MSP430FR5739_35_31_29_25_21.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430FR5739_35_31_29_25_21.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430FR5739_35_31_29_25_21.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430FR5739_35_31_29_25_21.PUDRE_OFF// Disabled;
        const GPIO_MSP430FR5739_35_31_29_25_21.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430FR5739_35_31_29_25_21.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430FR5739_35_31_29_25_21.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430FR5739_35_31_29_25_21.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430FR5739_35_31_29_25_21.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL0// Port 1 Port Select Register 0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL1// Port 1 Port Select Register 1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL0// Port 2 Port Select Register 0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL1// Port 2 Port Select Register 1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL0// Port 3 Port Select Register 0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL1// Port 3 Port Select Register 1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL0// Port 4 Port Select Register 0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL1// Port 4 Port Select Register 1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJDIR// Port J Direction Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJOUT// Port J Output Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJREN// Port J Resistor Enable Register = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL0// Port J Port Select Register 0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL1// Port J Port Select Register 1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430FR5739_35_31_29_25_21.DevicePinFunctionSetting_t[8][5] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 5 + 2 = 10 pins total = GPIO_MSP430FR5739_35_31_29_25_21.DevicePin_t[8][5] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430FR5739_35_31_29_25_21.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL0",
                regForceSet: false
            },
            {
                register: "P1SEL1",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL0",
                regForceSet: false
            },
            {
                register: "P2SEL1",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL0",
                regForceSet: false
            },
            {
                register: "P3SEL1",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P3IES",
                regForceSet: true
            },
            {
                register: "P3IFG",
                regForceSet: true
            },
            {
                register: "P3IE",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL0",
                regForceSet: false
            },
            {
                register: "P4SEL1",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            },
            {
                register: "P4IES",
                regForceSet: true
            },
            {
                register: "P4IFG",
                regForceSet: true
            },
            {
                register: "P4IE",
                regForceSet: false
            },
            {
                register: "PJOUT",
                regForceSet: true
            },
            {
                register: "PJSEL0",
                regForceSet: false
            },
            {
                register: "PJSEL1",
                regForceSet: false
            },
            {
                register: "PJDIR",
                regForceSet: true
            },
            {
                register: "PJREN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430FR5739_35_31_29_25_21.create// Create an instance-object(CS.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430FR5739_35_31_29_25_21.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit0_t
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT0_OFF;
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT0;
enum GPIO_MSP430FR5739_35_31_29_25_21.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit1_t
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT1_OFF;
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT1;
enum GPIO_MSP430FR5739_35_31_29_25_21.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit2_t
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT2_OFF;
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT2;
enum GPIO_MSP430FR5739_35_31_29_25_21.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit3_t
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT3_OFF;
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT3;
enum GPIO_MSP430FR5739_35_31_29_25_21.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit4_t
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT4_OFF;
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT4;
enum GPIO_MSP430FR5739_35_31_29_25_21.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit5_t
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT5_OFF;
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT5;
enum GPIO_MSP430FR5739_35_31_29_25_21.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit6_t
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT6_OFF;
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT6;
enum GPIO_MSP430FR5739_35_31_29_25_21.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.Bit7_t
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT7_OFF;
    const GPIO_MSP430FR5739_35_31_29_25_21.BIT7;
enum GPIO_MSP430FR5739_35_31_29_25_21.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.InterruptEnable_t
    const GPIO_MSP430FR5739_35_31_29_25_21.IE_OFF;
    // Disabled
    const GPIO_MSP430FR5739_35_31_29_25_21.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430FR5739_35_31_29_25_21.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430FR5739_35_31_29_25_21.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.OutputState_t
    const GPIO_MSP430FR5739_35_31_29_25_21.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430FR5739_35_31_29_25_21.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430FR5739_35_31_29_25_21.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR5739_35_31_29_25_21.ResEnable_t
    const GPIO_MSP430FR5739_35_31_29_25_21.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430FR5739_35_31_29_25_21.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430FR5739_35_31_29_25_21.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430FR5739_35_31_29_25_21.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430FR5739_35_31_29_25_21.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430FR5739_35_31_29_25_21.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430FR5739_35_31_29_25_21.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430FR5739_35_31_29_25_21.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430FR5739_35_31_29_25_21.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430FR5739_35_31_29_25_21.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR5739_35_31_29_25_21.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430FR5739_35_31_29_25_21.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430FR5739_35_31_29_25_21.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430FR5739_35_31_29_25_21.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430FR5739_35_31_29_25_21.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port 1 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port 1 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port 2 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port 2 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port 3 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port 3 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port 4 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port 4 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJDIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    // Port J Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJOUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    // Port J Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJREN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    // Port J Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port J Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    // Port J Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430FR5739_35_31_29_25_21.DevicePinFunctionSetting_t[8][5] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430FR5739_35_31_29_25_21.DevicePin_t[8][5] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 5 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430FR5739_35_31_29_25_21.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL0",
            regForceSet: false
        },
        {
            register: "P1SEL1",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL0",
            regForceSet: false
        },
        {
            register: "P2SEL1",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL0",
            regForceSet: false
        },
        {
            register: "P3SEL1",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P3IES",
            regForceSet: true
        },
        {
            register: "P3IFG",
            regForceSet: true
        },
        {
            register: "P3IE",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL0",
            regForceSet: false
        },
        {
            register: "P4SEL1",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        },
        {
            register: "P4IES",
            regForceSet: true
        },
        {
            register: "P4IFG",
            regForceSet: true
        },
        {
            register: "P4IE",
            regForceSet: false
        },
        {
            register: "PJOUT",
            regForceSet: true
        },
        {
            register: "PJSEL0",
            regForceSet: false
        },
        {
            register: "PJSEL1",
            regForceSet: false
        },
        {
            register: "PJDIR",
            regForceSet: true
        },
        {
            register: "PJREN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430FR5739_35_31_29_25_21.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P1DIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P1OUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P1REN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P1SEL0 // instance
index URL

Port 1 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P1SEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P1SEL1 // instance
index URL

Port 1 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P1SEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P2DIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P2OUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P2REN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P2SEL0 // instance
index URL

Port 2 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P2SEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P2SEL1 // instance
index URL

Port 2 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P2SEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P3DIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P3OUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P3REN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P3SEL0 // instance
index URL

Port 3 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P3SEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P3SEL1 // instance
index URL

Port 3 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P3SEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P4DIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P4OUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P4REN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P4SEL0 // instance
index URL

Port 4 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P4SEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.P4SEL1 // instance
index URL

Port 4 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.P4SEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.PJDIR // instance
index URL

Port J Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.PJDIR = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.PJOUT // instance
index URL

Port J Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.PJOUT = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.PJREN // instance
index URL

Port J Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.PJREN = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.PJSEL0 // instance
index URL

Port J Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.PJSEL0 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.PJSEL1 // instance
index URL

Port J Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.PJSEL1 = GPIO_MSP430FR5739_35_31_29_25_21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR5739_35_31_29_25_21.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.devicePinSetting = GPIO_MSP430FR5739_35_31_29_25_21.DevicePinFunctionSetting_t[8][5] undefined;
config GPIO_MSP430FR5739_35_31_29_25_21.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 5 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.devicePins = GPIO_MSP430FR5739_35_31_29_25_21.DevicePin_t[8][5] undefined;
config GPIO_MSP430FR5739_35_31_29_25_21.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430FR5739_35_31_29_25_21.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL0",
        regForceSet: false
    },
    {
        register: "P1SEL1",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL0",
        regForceSet: false
    },
    {
        register: "P2SEL1",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL0",
        regForceSet: false
    },
    {
        register: "P3SEL1",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P3IES",
        regForceSet: true
    },
    {
        register: "P3IFG",
        regForceSet: true
    },
    {
        register: "P3IE",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL0",
        regForceSet: false
    },
    {
        register: "P4SEL1",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    },
    {
        register: "P4IES",
        regForceSet: true
    },
    {
        register: "P4IFG",
        regForceSet: true
    },
    {
        register: "P4IE",
        regForceSet: false
    },
    {
        register: "PJOUT",
        regForceSet: true
    },
    {
        register: "PJSEL0",
        regForceSet: false
    },
    {
        register: "PJSEL1",
        regForceSet: false
    },
    {
        register: "PJDIR",
        regForceSet: true
    },
    {
        register: "PJREN",
        regForceSet: false
    }
];
config GPIO_MSP430FR5739_35_31_29_25_21.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430FR5739_35_31_29_25_21.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430FR5739_35_31_29_25_21.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR5739_35_31_29_25_21.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430FR5739_35_31_29_25_21.create(CS.Instance clock, params);
// Create an instance-object
GPIO_MSP430FR5739_35_31_29_25_21.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430FR5739_35_31_29_25_21.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430FR5739_35_31_29_25_21.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430FR5739_35_31_29_25_21.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430FR5739_35_31_29_25_21.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430FR5739_35_31_29_25_21.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:29 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR5739_35_31_29_25_21

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.CS as CS;
    13
    14    /*!
    15     *  ======== GPIO for MSP430FR5739_35_31_29_25_21 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430FR5739_35_31_29_25_21 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral. Use a customized
    22         *  init function so that we can get access to the CS
    23         *  instances.
    24         */
    25        create(CS.Instance clock);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config CS.Instance clock;
    30
    31       /*! Define an array to describe all device pins. The 1st dimension
    32        *  denotes the port, the second the pin on that port. On an
    33        *  MSP430FR57xx device, there are 5 + 2 = 10 pins total.
    34        */
    35
    36        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    37         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    38        config DevicePin_t devicePins[5][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[5][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT"  , regForceSet : true  },
    47            { register : "P1SEL0" , regForceSet : false },
    48            { register : "P1SEL1" , regForceSet : false },
    49            { register : "P1DIR"  , regForceSet : true  },
    50            { register : "P1REN"  , regForceSet : false },
    51            { register : "P1IES"  , regForceSet : true  },
    52            { register : "P1IFG"  , regForceSet : true  },
    53            { register : "P1IE"   , regForceSet : false },
    54            { register : "P2OUT"  , regForceSet : true  },
    55            { register : "P2SEL0" , regForceSet : false },
    56            { register : "P2SEL1" , regForceSet : false },
    57            { register : "P2DIR"  , regForceSet : true  },
    58            { register : "P2REN"  , regForceSet : false },
    59            { register : "P2IES"  , regForceSet : true  },
    60            { register : "P2IFG"  , regForceSet : true  },
    61            { register : "P2IE"   , regForceSet : false },
    62            { register : "P3OUT"  , regForceSet : true  },
    63            { register : "P3SEL0" , regForceSet : false },
    64            { register : "P3SEL1" , regForceSet : false },
    65            { register : "P3DIR"  , regForceSet : true  },
    66            { register : "P3REN"  , regForceSet : false },
    67            { register : "P3IES"  , regForceSet : true  },
    68            { register : "P3IFG"  , regForceSet : true  },
    69            { register : "P3IE"   , regForceSet : false },
    70            { register : "P4OUT"  , regForceSet : true  },
    71            { register : "P4SEL0" , regForceSet : false },
    72            { register : "P4SEL1" , regForceSet : false },
    73            { register : "P4DIR"  , regForceSet : true  },
    74            { register : "P4REN"  , regForceSet : false },
    75            { register : "P4IES"  , regForceSet : true  },
    76            { register : "P4IFG"  , regForceSet : true  },
    77            { register : "P4IE"   , regForceSet : false },
    78            { register : "PJOUT"  , regForceSet : true  },
    79            { register : "PJSEL0" , regForceSet : false },
    80            { register : "PJSEL1" , regForceSet : false },
    81            { register : "PJDIR"  , regForceSet : true  },
    82            { register : "PJREN"  , regForceSet : false }
    83        ];
    84
    85        /*
    86         *  GPIO Digital I/O Registers
    87         *
    88         *  One GIPO instance defines the configuration of an entire,
    89         *  8-bit wide digital I/O port.
    90         */
    91
    92        /*! Port 1 Output Register */
    93        config GpioBits8PxOut_t P1OUT = {
    94            Bit0        : BIT0_OFF,
    95            Bit1        : BIT1_OFF,
    96            Bit2        : BIT2_OFF,
    97            Bit3        : BIT3_OFF,
    98            Bit4        : BIT4_OFF,
    99            Bit5        : BIT5_OFF,
   100            Bit6        : BIT6_OFF,
   101            Bit7        : BIT7_OFF
   102        };
   103
   104        /*! Port 1 Port Select Register 0 */
   105        config GpioBits8PxSel_t P1SEL0 = {
   106            Bit0        : BIT0_OFF,
   107            Bit1        : BIT1_OFF,
   108            Bit2        : BIT2_OFF,
   109            Bit3        : BIT3_OFF,
   110            Bit4        : BIT4_OFF,
   111            Bit5        : BIT5_OFF,
   112            Bit6        : BIT6_OFF,
   113            Bit7        : BIT7_OFF
   114        };
   115
   116        /*! Port 1 Port Select Register 1 */
   117        config GpioBits8PxSel_t P1SEL1 = {
   118            Bit0        : BIT0_OFF,
   119            Bit1        : BIT1_OFF,
   120            Bit2        : BIT2_OFF,
   121            Bit3        : BIT3_OFF,
   122            Bit4        : BIT4_OFF,
   123            Bit5        : BIT5_OFF,
   124            Bit6        : BIT6_OFF,
   125            Bit7        : BIT7_OFF
   126        };
   127
   128        /*! Port 1 Direction Register */
   129        config GpioBits8PxDir_t P1DIR = {
   130            Bit0        : BIT0_OFF,
   131            Bit1        : BIT1_OFF,
   132            Bit2        : BIT2_OFF,
   133            Bit3        : BIT3_OFF,
   134            Bit4        : BIT4_OFF,
   135            Bit5        : BIT5_OFF,
   136            Bit6        : BIT6_OFF,
   137            Bit7        : BIT7_OFF
   138        };
   139
   140        /*! Port 1 Resistor Enable Register */
   141        config GpioBits8PxRen_t P1REN = {
   142            Bit0        : BIT0_OFF,
   143            Bit1        : BIT1_OFF,
   144            Bit2        : BIT2_OFF,
   145            Bit3        : BIT3_OFF,
   146            Bit4        : BIT4_OFF,
   147            Bit5        : BIT5_OFF,
   148            Bit6        : BIT6_OFF,
   149            Bit7        : BIT7_OFF
   150        };
   151
   152        /*! Port 2 Output Register */
   153        config GpioBits8PxOut_t P2OUT = {
   154            Bit0        : BIT0_OFF,
   155            Bit1        : BIT1_OFF,
   156            Bit2        : BIT2_OFF,
   157            Bit3        : BIT3_OFF,
   158            Bit4        : BIT4_OFF,
   159            Bit5        : BIT5_OFF,
   160            Bit6        : BIT6_OFF,
   161            Bit7        : BIT7_OFF
   162        };
   163
   164        /*! Port 2 Port Select Register 0 */
   165        config GpioBits8PxSel_t P2SEL0 = {
   166            Bit0        : BIT0_OFF,
   167            Bit1        : BIT1_OFF,
   168            Bit2        : BIT2_OFF,
   169            Bit3        : BIT3_OFF,
   170            Bit4        : BIT4_OFF,
   171            Bit5        : BIT5_OFF,
   172            Bit6        : BIT6_OFF,
   173            Bit7        : BIT7_OFF
   174        };
   175
   176        /*! Port 2 Port Select Register 1 */
   177        config GpioBits8PxSel_t P2SEL1 = {
   178            Bit0        : BIT0_OFF,
   179            Bit1        : BIT1_OFF,
   180            Bit2        : BIT2_OFF,
   181            Bit3        : BIT3_OFF,
   182            Bit4        : BIT4_OFF,
   183            Bit5        : BIT5_OFF,
   184            Bit6        : BIT6_OFF,
   185            Bit7        : BIT7_OFF
   186        };
   187
   188        /*! Port 2 Direction Register */
   189        config GpioBits8PxDir_t P2DIR = {
   190            Bit0        : BIT0_OFF,
   191            Bit1        : BIT1_OFF,
   192            Bit2        : BIT2_OFF,
   193            Bit3        : BIT3_OFF,
   194            Bit4        : BIT4_OFF,
   195            Bit5        : BIT5_OFF,
   196            Bit6        : BIT6_OFF,
   197            Bit7        : BIT7_OFF
   198        };
   199
   200        /*! Port 2 Resistor Enable Register */
   201        config GpioBits8PxRen_t P2REN = {
   202            Bit0        : BIT0_OFF,
   203            Bit1        : BIT1_OFF,
   204            Bit2        : BIT2_OFF,
   205            Bit3        : BIT3_OFF,
   206            Bit4        : BIT4_OFF,
   207            Bit5        : BIT5_OFF,
   208            Bit6        : BIT6_OFF,
   209            Bit7        : BIT7_OFF
   210        };
   211
   212        /*! Port 3 Output Register */
   213        config GpioBits8PxOut_t P3OUT = {
   214            Bit0        : BIT0_OFF,
   215            Bit1        : BIT1_OFF,
   216            Bit2        : BIT2_OFF,
   217            Bit3        : BIT3_OFF,
   218            Bit4        : BIT4_OFF,
   219            Bit5        : BIT5_OFF,
   220            Bit6        : BIT6_OFF,
   221            Bit7        : BIT7_OFF
   222        };
   223
   224        /*! Port 3 Port Select Register 0 */
   225        config GpioBits8PxSel_t P3SEL0 = {
   226            Bit0        : BIT0_OFF,
   227            Bit1        : BIT1_OFF,
   228            Bit2        : BIT2_OFF,
   229            Bit3        : BIT3_OFF,
   230            Bit4        : BIT4_OFF,
   231            Bit5        : BIT5_OFF,
   232            Bit6        : BIT6_OFF,
   233            Bit7        : BIT7_OFF
   234        };
   235
   236        /*! Port 3 Port Select Register 1 */
   237        config GpioBits8PxSel_t P3SEL1 = {
   238            Bit0        : BIT0_OFF,
   239            Bit1        : BIT1_OFF,
   240            Bit2        : BIT2_OFF,
   241            Bit3        : BIT3_OFF,
   242            Bit4        : BIT4_OFF,
   243            Bit5        : BIT5_OFF,
   244            Bit6        : BIT6_OFF,
   245            Bit7        : BIT7_OFF
   246        };
   247
   248        /*! Port 3 Direction Register */
   249        config GpioBits8PxDir_t P3DIR = {
   250            Bit0        : BIT0_OFF,
   251            Bit1        : BIT1_OFF,
   252            Bit2        : BIT2_OFF,
   253            Bit3        : BIT3_OFF,
   254            Bit4        : BIT4_OFF,
   255            Bit5        : BIT5_OFF,
   256            Bit6        : BIT6_OFF,
   257            Bit7        : BIT7_OFF
   258        };
   259
   260        /*! Port 3 Resistor Enable Register */
   261        config GpioBits8PxRen_t P3REN = {
   262            Bit0        : BIT0_OFF,
   263            Bit1        : BIT1_OFF,
   264            Bit2        : BIT2_OFF,
   265            Bit3        : BIT3_OFF,
   266            Bit4        : BIT4_OFF,
   267            Bit5        : BIT5_OFF,
   268            Bit6        : BIT6_OFF,
   269            Bit7        : BIT7_OFF
   270        };
   271
   272        /*! Port 4 Output Register */
   273        config GpioBits8PxOut_t P4OUT = {
   274            Bit0        : BIT0_OFF,
   275            Bit1        : BIT1_OFF,
   276            Bit2        : BIT2_OFF,
   277            Bit3        : BIT3_OFF,
   278            Bit4        : BIT4_OFF,
   279            Bit5        : BIT5_OFF,
   280            Bit6        : BIT6_OFF,
   281            Bit7        : BIT7_OFF
   282        };
   283
   284        /*! Port 4 Port Select Register 0 */
   285        config GpioBits8PxSel_t P4SEL0 = {
   286            Bit0        : BIT0_OFF,
   287            Bit1        : BIT1_OFF,
   288            Bit2        : BIT2_OFF,
   289            Bit3        : BIT3_OFF,
   290            Bit4        : BIT4_OFF,
   291            Bit5        : BIT5_OFF,
   292            Bit6        : BIT6_OFF,
   293            Bit7        : BIT7_OFF
   294        };
   295
   296        /*! Port 4 Port Select Register 1 */
   297        config GpioBits8PxSel_t P4SEL1 = {
   298            Bit0        : BIT0_OFF,
   299            Bit1        : BIT1_OFF,
   300            Bit2        : BIT2_OFF,
   301            Bit3        : BIT3_OFF,
   302            Bit4        : BIT4_OFF,
   303            Bit5        : BIT5_OFF,
   304            Bit6        : BIT6_OFF,
   305            Bit7        : BIT7_OFF
   306        };
   307
   308        /*! Port 4 Direction Register */
   309        config GpioBits8PxDir_t P4DIR = {
   310            Bit0        : BIT0_OFF,
   311            Bit1        : BIT1_OFF,
   312            Bit2        : BIT2_OFF,
   313            Bit3        : BIT3_OFF,
   314            Bit4        : BIT4_OFF,
   315            Bit5        : BIT5_OFF,
   316            Bit6        : BIT6_OFF,
   317            Bit7        : BIT7_OFF
   318        };
   319
   320        /*! Port 4 Resistor Enable Register */
   321        config GpioBits8PxRen_t P4REN = {
   322            Bit0        : BIT0_OFF,
   323            Bit1        : BIT1_OFF,
   324            Bit2        : BIT2_OFF,
   325            Bit3        : BIT3_OFF,
   326            Bit4        : BIT4_OFF,
   327            Bit5        : BIT5_OFF,
   328            Bit6        : BIT6_OFF,
   329            Bit7        : BIT7_OFF
   330        };
   331
   332        /*! Port J Output Register */
   333        config GpioBits8PxOut_t PJOUT = {
   334            Bit0        : BIT0_OFF,
   335            Bit1        : BIT1_OFF,
   336            Bit2        : BIT2_OFF,
   337            Bit3        : BIT3_OFF,
   338            Bit4        : BIT4_OFF,
   339            Bit5        : BIT5_OFF,
   340            Bit6        : BIT6_OFF,
   341            Bit7        : BIT7_OFF
   342        };
   343
   344        /*! Port J Port Select Register 0 */
   345        config GpioBits8PxSel_t PJSEL0 = {
   346            Bit0        : BIT0_OFF,
   347            Bit1        : BIT1_OFF,
   348            Bit2        : BIT2_OFF,
   349            Bit3        : BIT3_OFF,
   350            Bit4        : BIT4_OFF,
   351            Bit5        : BIT5_OFF,
   352            Bit6        : BIT6_OFF,
   353            Bit7        : BIT7_OFF
   354        };
   355
   356        /*! Port J Port Select Register 1 */
   357        config GpioBits8PxSel_t PJSEL1 = {
   358            Bit0        : BIT0_OFF,
   359            Bit1        : BIT1_OFF,
   360            Bit2        : BIT2_OFF,
   361            Bit3        : BIT3_OFF,
   362            Bit4        : BIT4_OFF,
   363            Bit5        : BIT5_OFF,
   364            Bit6        : BIT6_OFF,
   365            Bit7        : BIT7_OFF
   366        };
   367
   368        /*! Port J Direction Register */
   369        config GpioBits8PxDir_t PJDIR = {
   370            Bit0        : BIT0_OFF,
   371            Bit1        : BIT1_OFF,
   372            Bit2        : BIT2_OFF,
   373            Bit3        : BIT3_OFF,
   374            Bit4        : BIT4_OFF,
   375            Bit5        : BIT5_OFF,
   376            Bit6        : BIT6_OFF,
   377            Bit7        : BIT7_OFF
   378        };
   379
   380        /*! Port J Resistor Enable Register */
   381        config GpioBits8PxRen_t PJREN = {
   382            Bit0        : BIT0_OFF,
   383            Bit1        : BIT1_OFF,
   384            Bit2        : BIT2_OFF,
   385            Bit3        : BIT3_OFF,
   386            Bit4        : BIT4_OFF,
   387            Bit5        : BIT5_OFF,
   388            Bit6        : BIT6_OFF,
   389            Bit7        : BIT7_OFF
   390        };
   391    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR59xx_FR58xx

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR59xx_FR58xx
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430FR59xx_FR58xx.xdc
var GPIO_MSP430FR59xx_FR58xx = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR59xx_FR58xx');
module-wide constants & types
    values of type GPIO_MSP430FR59xx_FR58xx.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430FR59xx_FR58xx.BIT0_OFF;
        const GPIO_MSP430FR59xx_FR58xx.BIT0;
    values of type GPIO_MSP430FR59xx_FR58xx.Bit1_t//
        const GPIO_MSP430FR59xx_FR58xx.BIT1_OFF;
        const GPIO_MSP430FR59xx_FR58xx.BIT1;
    values of type GPIO_MSP430FR59xx_FR58xx.Bit2_t//
        const GPIO_MSP430FR59xx_FR58xx.BIT2_OFF;
        const GPIO_MSP430FR59xx_FR58xx.BIT2;
    values of type GPIO_MSP430FR59xx_FR58xx.Bit3_t//
        const GPIO_MSP430FR59xx_FR58xx.BIT3_OFF;
        const GPIO_MSP430FR59xx_FR58xx.BIT3;
    values of type GPIO_MSP430FR59xx_FR58xx.Bit4_t//
        const GPIO_MSP430FR59xx_FR58xx.BIT4_OFF;
        const GPIO_MSP430FR59xx_FR58xx.BIT4;
    values of type GPIO_MSP430FR59xx_FR58xx.Bit5_t//
        const GPIO_MSP430FR59xx_FR58xx.BIT5_OFF;
        const GPIO_MSP430FR59xx_FR58xx.BIT5;
    values of type GPIO_MSP430FR59xx_FR58xx.Bit6_t//
        const GPIO_MSP430FR59xx_FR58xx.BIT6_OFF;
        const GPIO_MSP430FR59xx_FR58xx.BIT6;
    values of type GPIO_MSP430FR59xx_FR58xx.Bit7_t//
        const GPIO_MSP430FR59xx_FR58xx.BIT7_OFF;
        const GPIO_MSP430FR59xx_FR58xx.BIT7;
    values of type GPIO_MSP430FR59xx_FR58xx.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430FR59xx_FR58xx.IE_OFF// Disabled;
        const GPIO_MSP430FR59xx_FR58xx.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430FR59xx_FR58xx.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430FR59xx_FR58xx.OutputState_t// Output high or low drop down list
        const GPIO_MSP430FR59xx_FR58xx.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430FR59xx_FR58xx.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430FR59xx_FR58xx.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430FR59xx_FR58xx.PUDRE_OFF// Disabled;
        const GPIO_MSP430FR59xx_FR58xx.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430FR59xx_FR58xx.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430FR59xx_FR58xx.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430FR59xx_FR58xx.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430FR59xx_FR58xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430FR59xx_FR58xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430FR59xx_FR58xx.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL0// Port 1 Port Select Register 0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL1// Port 1 Port Select Register 1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL0// Port 2 Port Select Register 0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL1// Port 2 Port Select Register 1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL0// Port 3 Port Select Register 0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL1// Port 3 Port Select Register 1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4DIR// Port 4 Direction Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4OUT// Port 4 Output Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4REN// Port 4 Resistor Enable Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL0// Port 4 Port Select Register 0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4SEL1// Port 4 Port Select Register 1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJDIR// Port J Direction Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJOUT// Port J Output Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJREN// Port J Resistor Enable Register = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL0// Port J Port Select Register 0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.PJSEL1// Port J Port Select Register 1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430FR59xx_FR58xx.DevicePinFunctionSetting_t[8][5] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 5 + 2 = 10 pins total = GPIO_MSP430FR59xx_FR58xx.DevicePin_t[8][5] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430FR59xx_FR58xx.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL0",
                regForceSet: false
            },
            {
                register: "P1SEL1",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL0",
                regForceSet: false
            },
            {
                register: "P2SEL1",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL0",
                regForceSet: false
            },
            {
                register: "P3SEL1",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            },
            {
                register: "P3IES",
                regForceSet: true
            },
            {
                register: "P3IFG",
                regForceSet: true
            },
            {
                register: "P3IE",
                regForceSet: false
            },
            {
                register: "P4OUT",
                regForceSet: true
            },
            {
                register: "P4SEL0",
                regForceSet: false
            },
            {
                register: "P4SEL1",
                regForceSet: false
            },
            {
                register: "P4DIR",
                regForceSet: true
            },
            {
                register: "P4REN",
                regForceSet: false
            },
            {
                register: "P4IES",
                regForceSet: true
            },
            {
                register: "P4IFG",
                regForceSet: true
            },
            {
                register: "P4IE",
                regForceSet: false
            },
            {
                register: "PJOUT",
                regForceSet: true
            },
            {
                register: "PJSEL0",
                regForceSet: false
            },
            {
                register: "PJSEL1",
                regForceSet: false
            },
            {
                register: "PJDIR",
                regForceSet: true
            },
            {
                register: "PJREN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430FR59xx_FR58xx.create// Create an instance-object(CS_A.Instance clock, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430FR59xx_FR58xx.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.Bit0_t
    const GPIO_MSP430FR59xx_FR58xx.BIT0_OFF;
    const GPIO_MSP430FR59xx_FR58xx.BIT0;
enum GPIO_MSP430FR59xx_FR58xx.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.Bit1_t
    const GPIO_MSP430FR59xx_FR58xx.BIT1_OFF;
    const GPIO_MSP430FR59xx_FR58xx.BIT1;
enum GPIO_MSP430FR59xx_FR58xx.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.Bit2_t
    const GPIO_MSP430FR59xx_FR58xx.BIT2_OFF;
    const GPIO_MSP430FR59xx_FR58xx.BIT2;
enum GPIO_MSP430FR59xx_FR58xx.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.Bit3_t
    const GPIO_MSP430FR59xx_FR58xx.BIT3_OFF;
    const GPIO_MSP430FR59xx_FR58xx.BIT3;
enum GPIO_MSP430FR59xx_FR58xx.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.Bit4_t
    const GPIO_MSP430FR59xx_FR58xx.BIT4_OFF;
    const GPIO_MSP430FR59xx_FR58xx.BIT4;
enum GPIO_MSP430FR59xx_FR58xx.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.Bit5_t
    const GPIO_MSP430FR59xx_FR58xx.BIT5_OFF;
    const GPIO_MSP430FR59xx_FR58xx.BIT5;
enum GPIO_MSP430FR59xx_FR58xx.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.Bit6_t
    const GPIO_MSP430FR59xx_FR58xx.BIT6_OFF;
    const GPIO_MSP430FR59xx_FR58xx.BIT6;
enum GPIO_MSP430FR59xx_FR58xx.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.Bit7_t
    const GPIO_MSP430FR59xx_FR58xx.BIT7_OFF;
    const GPIO_MSP430FR59xx_FR58xx.BIT7;
enum GPIO_MSP430FR59xx_FR58xx.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.InterruptEnable_t
    const GPIO_MSP430FR59xx_FR58xx.IE_OFF;
    // Disabled
    const GPIO_MSP430FR59xx_FR58xx.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430FR59xx_FR58xx.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430FR59xx_FR58xx.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.OutputState_t
    const GPIO_MSP430FR59xx_FR58xx.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430FR59xx_FR58xx.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430FR59xx_FR58xx.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430FR59xx_FR58xx.ResEnable_t
    const GPIO_MSP430FR59xx_FR58xx.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430FR59xx_FR58xx.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430FR59xx_FR58xx.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430FR59xx_FR58xx.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430FR59xx_FR58xx.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430FR59xx_FR58xx.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430FR59xx_FR58xx.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430FR59xx_FR58xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430FR59xx_FR58xx.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430FR59xx_FR58xx.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430FR59xx_FR58xx.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430FR59xx_FR58xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430FR59xx_FR58xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430FR59xx_FR58xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430FR59xx_FR58xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port 1 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port 1 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port 2 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port 2 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port 3 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port 3 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4DIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    // Port 4 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4OUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    // Port 4 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4REN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    // Port 4 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port 4 Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4SEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port 4 Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJDIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    // Port J Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJOUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    // Port J Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJREN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    // Port J Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port J Port Select Register 0
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.PJSEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    // Port J Port Select Register 1
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430FR59xx_FR58xx.DevicePinFunctionSetting_t[8][5] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430FR59xx_FR58xx.DevicePin_t[8][5] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 5 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430FR59xx_FR58xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL0",
            regForceSet: false
        },
        {
            register: "P1SEL1",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL0",
            regForceSet: false
        },
        {
            register: "P2SEL1",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL0",
            regForceSet: false
        },
        {
            register: "P3SEL1",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P3IES",
            regForceSet: true
        },
        {
            register: "P3IFG",
            regForceSet: true
        },
        {
            register: "P3IE",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL0",
            regForceSet: false
        },
        {
            register: "P4SEL1",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: true
        },
        {
            register: "P4REN",
            regForceSet: false
        },
        {
            register: "P4IES",
            regForceSet: true
        },
        {
            register: "P4IFG",
            regForceSet: true
        },
        {
            register: "P4IE",
            regForceSet: false
        },
        {
            register: "PJOUT",
            regForceSet: true
        },
        {
            register: "PJSEL0",
            regForceSet: false
        },
        {
            register: "PJSEL1",
            regForceSet: false
        },
        {
            register: "PJDIR",
            regForceSet: true
        },
        {
            register: "PJREN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430FR59xx_FR58xx.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P1DIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P1OUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P1REN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P1SEL0 // instance
index URL

Port 1 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P1SEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P1SEL1 // instance
index URL

Port 1 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P1SEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P2DIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P2OUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P2REN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P2SEL0 // instance
index URL

Port 2 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P2SEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P2SEL1 // instance
index URL

Port 2 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P2SEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P3DIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P3OUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P3REN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P3SEL0 // instance
index URL

Port 3 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P3SEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P3SEL1 // instance
index URL

Port 3 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P3SEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P4DIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P4OUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P4REN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P4SEL0 // instance
index URL

Port 4 Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P4SEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.P4SEL1 // instance
index URL

Port 4 Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.P4SEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.PJDIR // instance
index URL

Port J Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.PJDIR = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.PJOUT // instance
index URL

Port J Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.PJOUT = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.PJREN // instance
index URL

Port J Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.PJREN = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.PJSEL0 // instance
index URL

Port J Port Select Register 0

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.PJSEL0 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.PJSEL1 // instance
index URL

Port J Port Select Register 1

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.PJSEL1 = GPIO_MSP430FR59xx_FR58xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430FR59xx_FR58xx.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.devicePinSetting = GPIO_MSP430FR59xx_FR58xx.DevicePinFunctionSetting_t[8][5] undefined;
config GPIO_MSP430FR59xx_FR58xx.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430FR57xx device, there are 5 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.devicePins = GPIO_MSP430FR59xx_FR58xx.DevicePin_t[8][5] undefined;
config GPIO_MSP430FR59xx_FR58xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430FR59xx_FR58xx.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL0",
        regForceSet: false
    },
    {
        register: "P1SEL1",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL0",
        regForceSet: false
    },
    {
        register: "P2SEL1",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL0",
        regForceSet: false
    },
    {
        register: "P3SEL1",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P3IES",
        regForceSet: true
    },
    {
        register: "P3IFG",
        regForceSet: true
    },
    {
        register: "P3IE",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL0",
        regForceSet: false
    },
    {
        register: "P4SEL1",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: true
    },
    {
        register: "P4REN",
        regForceSet: false
    },
    {
        register: "P4IES",
        regForceSet: true
    },
    {
        register: "P4IFG",
        regForceSet: true
    },
    {
        register: "P4IE",
        regForceSet: false
    },
    {
        register: "PJOUT",
        regForceSet: true
    },
    {
        register: "PJSEL0",
        regForceSet: false
    },
    {
        register: "PJSEL1",
        regForceSet: false
    },
    {
        register: "PJDIR",
        regForceSet: true
    },
    {
        register: "PJREN",
        regForceSet: false
    }
];
config GPIO_MSP430FR59xx_FR58xx.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430FR59xx_FR58xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430FR59xx_FR58xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430FR59xx_FR58xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430FR59xx_FR58xx.create(CS_A.Instance clock, params);
// Create an instance-object
GPIO_MSP430FR59xx_FR58xx.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430FR59xx_FR58xx.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430FR59xx_FR58xx.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430FR59xx_FR58xx.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430FR59xx_FR58xx.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430FR59xx_FR58xx.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:29 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430FR59xx_FR58xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.CS_A as CS_A;
    13
    14    /*!
    15     *  ======== GPIO for MSP430FR59xx_FR58xx ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430FR59xx_FR58xx inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral. Use a customized
    22         *  init function so that we can get access to the CS_A
    23         *  instances.
    24         */
    25        create(CS_A.Instance clock);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config CS_A.Instance clock;
    30
    31       /*! Define an array to describe all device pins. The 1st dimension
    32        *  denotes the port, the second the pin on that port. On an
    33        *  MSP430FR57xx device, there are 5 + 2 = 10 pins total.
    34        */
    35
    36        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    37         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    38        config DevicePin_t devicePins[5][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[5][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT"  , regForceSet : true  },
    47            { register : "P1SEL0" , regForceSet : false },
    48            { register : "P1SEL1" , regForceSet : false },
    49            { register : "P1DIR"  , regForceSet : true  },
    50            { register : "P1REN"  , regForceSet : false },
    51            { register : "P1IES"  , regForceSet : true  },
    52            { register : "P1IFG"  , regForceSet : true  },
    53            { register : "P1IE"   , regForceSet : false },
    54            { register : "P2OUT"  , regForceSet : true  },
    55            { register : "P2SEL0" , regForceSet : false },
    56            { register : "P2SEL1" , regForceSet : false },
    57            { register : "P2DIR"  , regForceSet : true  },
    58            { register : "P2REN"  , regForceSet : false },
    59            { register : "P2IES"  , regForceSet : true  },
    60            { register : "P2IFG"  , regForceSet : true  },
    61            { register : "P2IE"   , regForceSet : false },
    62            { register : "P3OUT"  , regForceSet : true  },
    63            { register : "P3SEL0" , regForceSet : false },
    64            { register : "P3SEL1" , regForceSet : false },
    65            { register : "P3DIR"  , regForceSet : true  },
    66            { register : "P3REN"  , regForceSet : false },
    67            { register : "P3IES"  , regForceSet : true  },
    68            { register : "P3IFG"  , regForceSet : true  },
    69            { register : "P3IE"   , regForceSet : false },
    70            { register : "P4OUT"  , regForceSet : true  },
    71            { register : "P4SEL0" , regForceSet : false },
    72            { register : "P4SEL1" , regForceSet : false },
    73            { register : "P4DIR"  , regForceSet : true  },
    74            { register : "P4REN"  , regForceSet : false },
    75            { register : "P4IES"  , regForceSet : true  },
    76            { register : "P4IFG"  , regForceSet : true  },
    77            { register : "P4IE"   , regForceSet : false },
    78            { register : "PJOUT"  , regForceSet : true  },
    79            { register : "PJSEL0" , regForceSet : false },
    80            { register : "PJSEL1" , regForceSet : false },
    81            { register : "PJDIR"  , regForceSet : true  },
    82            { register : "PJREN"  , regForceSet : false }
    83        ];
    84
    85        /*
    86         *  GPIO Digital I/O Registers
    87         *
    88         *  One GIPO instance defines the configuration of an entire,
    89         *  8-bit wide digital I/O port.
    90         */
    91
    92        /*! Port 1 Output Register */
    93        config GpioBits8PxOut_t P1OUT = {
    94            Bit0        : BIT0_OFF,
    95            Bit1        : BIT1_OFF,
    96            Bit2        : BIT2_OFF,
    97            Bit3        : BIT3_OFF,
    98            Bit4        : BIT4_OFF,
    99            Bit5        : BIT5_OFF,
   100            Bit6        : BIT6_OFF,
   101            Bit7        : BIT7_OFF
   102        };
   103
   104        /*! Port 1 Port Select Register 0 */
   105        config GpioBits8PxSel_t P1SEL0 = {
   106            Bit0        : BIT0_OFF,
   107            Bit1        : BIT1_OFF,
   108            Bit2        : BIT2_OFF,
   109            Bit3        : BIT3_OFF,
   110            Bit4        : BIT4_OFF,
   111            Bit5        : BIT5_OFF,
   112            Bit6        : BIT6_OFF,
   113            Bit7        : BIT7_OFF
   114        };
   115
   116        /*! Port 1 Port Select Register 1 */
   117        config GpioBits8PxSel_t P1SEL1 = {
   118            Bit0        : BIT0_OFF,
   119            Bit1        : BIT1_OFF,
   120            Bit2        : BIT2_OFF,
   121            Bit3        : BIT3_OFF,
   122            Bit4        : BIT4_OFF,
   123            Bit5        : BIT5_OFF,
   124            Bit6        : BIT6_OFF,
   125            Bit7        : BIT7_OFF
   126        };
   127
   128        /*! Port 1 Direction Register */
   129        config GpioBits8PxDir_t P1DIR = {
   130            Bit0        : BIT0_OFF,
   131            Bit1        : BIT1_OFF,
   132            Bit2        : BIT2_OFF,
   133            Bit3        : BIT3_OFF,
   134            Bit4        : BIT4_OFF,
   135            Bit5        : BIT5_OFF,
   136            Bit6        : BIT6_OFF,
   137            Bit7        : BIT7_OFF
   138        };
   139
   140        /*! Port 1 Resistor Enable Register */
   141        config GpioBits8PxRen_t P1REN = {
   142            Bit0        : BIT0_OFF,
   143            Bit1        : BIT1_OFF,
   144            Bit2        : BIT2_OFF,
   145            Bit3        : BIT3_OFF,
   146            Bit4        : BIT4_OFF,
   147            Bit5        : BIT5_OFF,
   148            Bit6        : BIT6_OFF,
   149            Bit7        : BIT7_OFF
   150        };
   151
   152        /*! Port 2 Output Register */
   153        config GpioBits8PxOut_t P2OUT = {
   154            Bit0        : BIT0_OFF,
   155            Bit1        : BIT1_OFF,
   156            Bit2        : BIT2_OFF,
   157            Bit3        : BIT3_OFF,
   158            Bit4        : BIT4_OFF,
   159            Bit5        : BIT5_OFF,
   160            Bit6        : BIT6_OFF,
   161            Bit7        : BIT7_OFF
   162        };
   163
   164        /*! Port 2 Port Select Register 0 */
   165        config GpioBits8PxSel_t P2SEL0 = {
   166            Bit0        : BIT0_OFF,
   167            Bit1        : BIT1_OFF,
   168            Bit2        : BIT2_OFF,
   169            Bit3        : BIT3_OFF,
   170            Bit4        : BIT4_OFF,
   171            Bit5        : BIT5_OFF,
   172            Bit6        : BIT6_OFF,
   173            Bit7        : BIT7_OFF
   174        };
   175
   176        /*! Port 2 Port Select Register 1 */
   177        config GpioBits8PxSel_t P2SEL1 = {
   178            Bit0        : BIT0_OFF,
   179            Bit1        : BIT1_OFF,
   180            Bit2        : BIT2_OFF,
   181            Bit3        : BIT3_OFF,
   182            Bit4        : BIT4_OFF,
   183            Bit5        : BIT5_OFF,
   184            Bit6        : BIT6_OFF,
   185            Bit7        : BIT7_OFF
   186        };
   187
   188        /*! Port 2 Direction Register */
   189        config GpioBits8PxDir_t P2DIR = {
   190            Bit0        : BIT0_OFF,
   191            Bit1        : BIT1_OFF,
   192            Bit2        : BIT2_OFF,
   193            Bit3        : BIT3_OFF,
   194            Bit4        : BIT4_OFF,
   195            Bit5        : BIT5_OFF,
   196            Bit6        : BIT6_OFF,
   197            Bit7        : BIT7_OFF
   198        };
   199
   200        /*! Port 2 Resistor Enable Register */
   201        config GpioBits8PxRen_t P2REN = {
   202            Bit0        : BIT0_OFF,
   203            Bit1        : BIT1_OFF,
   204            Bit2        : BIT2_OFF,
   205            Bit3        : BIT3_OFF,
   206            Bit4        : BIT4_OFF,
   207            Bit5        : BIT5_OFF,
   208            Bit6        : BIT6_OFF,
   209            Bit7        : BIT7_OFF
   210        };
   211
   212        /*! Port 3 Output Register */
   213        config GpioBits8PxOut_t P3OUT = {
   214            Bit0        : BIT0_OFF,
   215            Bit1        : BIT1_OFF,
   216            Bit2        : BIT2_OFF,
   217            Bit3        : BIT3_OFF,
   218            Bit4        : BIT4_OFF,
   219            Bit5        : BIT5_OFF,
   220            Bit6        : BIT6_OFF,
   221            Bit7        : BIT7_OFF
   222        };
   223
   224        /*! Port 3 Port Select Register 0 */
   225        config GpioBits8PxSel_t P3SEL0 = {
   226            Bit0        : BIT0_OFF,
   227            Bit1        : BIT1_OFF,
   228            Bit2        : BIT2_OFF,
   229            Bit3        : BIT3_OFF,
   230            Bit4        : BIT4_OFF,
   231            Bit5        : BIT5_OFF,
   232            Bit6        : BIT6_OFF,
   233            Bit7        : BIT7_OFF
   234        };
   235
   236        /*! Port 3 Port Select Register 1 */
   237        config GpioBits8PxSel_t P3SEL1 = {
   238            Bit0        : BIT0_OFF,
   239            Bit1        : BIT1_OFF,
   240            Bit2        : BIT2_OFF,
   241            Bit3        : BIT3_OFF,
   242            Bit4        : BIT4_OFF,
   243            Bit5        : BIT5_OFF,
   244            Bit6        : BIT6_OFF,
   245            Bit7        : BIT7_OFF
   246        };
   247
   248        /*! Port 3 Direction Register */
   249        config GpioBits8PxDir_t P3DIR = {
   250            Bit0        : BIT0_OFF,
   251            Bit1        : BIT1_OFF,
   252            Bit2        : BIT2_OFF,
   253            Bit3        : BIT3_OFF,
   254            Bit4        : BIT4_OFF,
   255            Bit5        : BIT5_OFF,
   256            Bit6        : BIT6_OFF,
   257            Bit7        : BIT7_OFF
   258        };
   259
   260        /*! Port 3 Resistor Enable Register */
   261        config GpioBits8PxRen_t P3REN = {
   262            Bit0        : BIT0_OFF,
   263            Bit1        : BIT1_OFF,
   264            Bit2        : BIT2_OFF,
   265            Bit3        : BIT3_OFF,
   266            Bit4        : BIT4_OFF,
   267            Bit5        : BIT5_OFF,
   268            Bit6        : BIT6_OFF,
   269            Bit7        : BIT7_OFF
   270        };
   271
   272        /*! Port 4 Output Register */
   273        config GpioBits8PxOut_t P4OUT = {
   274            Bit0        : BIT0_OFF,
   275            Bit1        : BIT1_OFF,
   276            Bit2        : BIT2_OFF,
   277            Bit3        : BIT3_OFF,
   278            Bit4        : BIT4_OFF,
   279            Bit5        : BIT5_OFF,
   280            Bit6        : BIT6_OFF,
   281            Bit7        : BIT7_OFF
   282        };
   283
   284        /*! Port 4 Port Select Register 0 */
   285        config GpioBits8PxSel_t P4SEL0 = {
   286            Bit0        : BIT0_OFF,
   287            Bit1        : BIT1_OFF,
   288            Bit2        : BIT2_OFF,
   289            Bit3        : BIT3_OFF,
   290            Bit4        : BIT4_OFF,
   291            Bit5        : BIT5_OFF,
   292            Bit6        : BIT6_OFF,
   293            Bit7        : BIT7_OFF
   294        };
   295
   296        /*! Port 4 Port Select Register 1 */
   297        config GpioBits8PxSel_t P4SEL1 = {
   298            Bit0        : BIT0_OFF,
   299            Bit1        : BIT1_OFF,
   300            Bit2        : BIT2_OFF,
   301            Bit3        : BIT3_OFF,
   302            Bit4        : BIT4_OFF,
   303            Bit5        : BIT5_OFF,
   304            Bit6        : BIT6_OFF,
   305            Bit7        : BIT7_OFF
   306        };
   307
   308        /*! Port 4 Direction Register */
   309        config GpioBits8PxDir_t P4DIR = {
   310            Bit0        : BIT0_OFF,
   311            Bit1        : BIT1_OFF,
   312            Bit2        : BIT2_OFF,
   313            Bit3        : BIT3_OFF,
   314            Bit4        : BIT4_OFF,
   315            Bit5        : BIT5_OFF,
   316            Bit6        : BIT6_OFF,
   317            Bit7        : BIT7_OFF
   318        };
   319
   320        /*! Port 4 Resistor Enable Register */
   321        config GpioBits8PxRen_t P4REN = {
   322            Bit0        : BIT0_OFF,
   323            Bit1        : BIT1_OFF,
   324            Bit2        : BIT2_OFF,
   325            Bit3        : BIT3_OFF,
   326            Bit4        : BIT4_OFF,
   327            Bit5        : BIT5_OFF,
   328            Bit6        : BIT6_OFF,
   329            Bit7        : BIT7_OFF
   330        };
   331
   332        /*! Port J Output Register */
   333        config GpioBits8PxOut_t PJOUT = {
   334            Bit0        : BIT0_OFF,
   335            Bit1        : BIT1_OFF,
   336            Bit2        : BIT2_OFF,
   337            Bit3        : BIT3_OFF,
   338            Bit4        : BIT4_OFF,
   339            Bit5        : BIT5_OFF,
   340            Bit6        : BIT6_OFF,
   341            Bit7        : BIT7_OFF
   342        };
   343
   344        /*! Port J Port Select Register 0 */
   345        config GpioBits8PxSel_t PJSEL0 = {
   346            Bit0        : BIT0_OFF,
   347            Bit1        : BIT1_OFF,
   348            Bit2        : BIT2_OFF,
   349            Bit3        : BIT3_OFF,
   350            Bit4        : BIT4_OFF,
   351            Bit5        : BIT5_OFF,
   352            Bit6        : BIT6_OFF,
   353            Bit7        : BIT7_OFF
   354        };
   355
   356        /*! Port J Port Select Register 1 */
   357        config GpioBits8PxSel_t PJSEL1 = {
   358            Bit0        : BIT0_OFF,
   359            Bit1        : BIT1_OFF,
   360            Bit2        : BIT2_OFF,
   361            Bit3        : BIT3_OFF,
   362            Bit4        : BIT4_OFF,
   363            Bit5        : BIT5_OFF,
   364            Bit6        : BIT6_OFF,
   365            Bit7        : BIT7_OFF
   366        };
   367
   368        /*! Port J Direction Register */
   369        config GpioBits8PxDir_t PJDIR = {
   370            Bit0        : BIT0_OFF,
   371            Bit1        : BIT1_OFF,
   372            Bit2        : BIT2_OFF,
   373            Bit3        : BIT3_OFF,
   374            Bit4        : BIT4_OFF,
   375            Bit5        : BIT5_OFF,
   376            Bit6        : BIT6_OFF,
   377            Bit7        : BIT7_OFF
   378        };
   379
   380        /*! Port J Resistor Enable Register */
   381        config GpioBits8PxRen_t PJREN = {
   382            Bit0        : BIT0_OFF,
   383            Bit1        : BIT1_OFF,
   384            Bit2        : BIT2_OFF,
   385            Bit3        : BIT3_OFF,
   386            Bit4        : BIT4_OFF,
   387            Bit5        : BIT5_OFF,
   388            Bit6        : BIT6_OFF,
   389            Bit7        : BIT7_OFF
   390        };
   391    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2210

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2210
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2210.xdc
var GPIO_MSP430G2210 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2210');
module-wide constants & types
    values of type GPIO_MSP430G2210.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2210.BIT0_OFF;
        const GPIO_MSP430G2210.BIT0;
    values of type GPIO_MSP430G2210.Bit1_t//
        const GPIO_MSP430G2210.BIT1_OFF;
        const GPIO_MSP430G2210.BIT1;
    values of type GPIO_MSP430G2210.Bit2_t//
        const GPIO_MSP430G2210.BIT2_OFF;
        const GPIO_MSP430G2210.BIT2;
    values of type GPIO_MSP430G2210.Bit3_t//
        const GPIO_MSP430G2210.BIT3_OFF;
        const GPIO_MSP430G2210.BIT3;
    values of type GPIO_MSP430G2210.Bit4_t//
        const GPIO_MSP430G2210.BIT4_OFF;
        const GPIO_MSP430G2210.BIT4;
    values of type GPIO_MSP430G2210.Bit5_t//
        const GPIO_MSP430G2210.BIT5_OFF;
        const GPIO_MSP430G2210.BIT5;
    values of type GPIO_MSP430G2210.Bit6_t//
        const GPIO_MSP430G2210.BIT6_OFF;
        const GPIO_MSP430G2210.BIT6;
    values of type GPIO_MSP430G2210.Bit7_t//
        const GPIO_MSP430G2210.BIT7_OFF;
        const GPIO_MSP430G2210.BIT7;
    values of type GPIO_MSP430G2210.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2210.IE_OFF// Disabled;
        const GPIO_MSP430G2210.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2210.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2210.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2210.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2210.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2210.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2210.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2210.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2210.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2210.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2210.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2210.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2210.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2210.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2210.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2210.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2210.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2210.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2210.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2210.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2210.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2210.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2210.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2210.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2210.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2210.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2210.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2210.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2210.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2210.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2210.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2210.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2210.DevicePinFunctionSetting_t[8][1] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2210 device, there are 8 + 1 = 8 pins total = GPIO_MSP430G2210.DevicePin_t[8][1] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2210.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2210.create// Create an instance-object(IComparator.Instance comparator, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2210.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2210.Bit0_t
    const GPIO_MSP430G2210.BIT0_OFF;
    const GPIO_MSP430G2210.BIT0;
enum GPIO_MSP430G2210.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2210.Bit1_t
    const GPIO_MSP430G2210.BIT1_OFF;
    const GPIO_MSP430G2210.BIT1;
enum GPIO_MSP430G2210.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2210.Bit2_t
    const GPIO_MSP430G2210.BIT2_OFF;
    const GPIO_MSP430G2210.BIT2;
enum GPIO_MSP430G2210.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2210.Bit3_t
    const GPIO_MSP430G2210.BIT3_OFF;
    const GPIO_MSP430G2210.BIT3;
enum GPIO_MSP430G2210.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2210.Bit4_t
    const GPIO_MSP430G2210.BIT4_OFF;
    const GPIO_MSP430G2210.BIT4;
enum GPIO_MSP430G2210.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2210.Bit5_t
    const GPIO_MSP430G2210.BIT5_OFF;
    const GPIO_MSP430G2210.BIT5;
enum GPIO_MSP430G2210.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2210.Bit6_t
    const GPIO_MSP430G2210.BIT6_OFF;
    const GPIO_MSP430G2210.BIT6;
enum GPIO_MSP430G2210.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2210.Bit7_t
    const GPIO_MSP430G2210.BIT7_OFF;
    const GPIO_MSP430G2210.BIT7;
enum GPIO_MSP430G2210.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2210.InterruptEnable_t
    const GPIO_MSP430G2210.IE_OFF;
    // Disabled
    const GPIO_MSP430G2210.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2210.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2210.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2210.OutputState_t
    const GPIO_MSP430G2210.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2210.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2210.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2210.ResEnable_t
    const GPIO_MSP430G2210.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2210.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2210.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2210.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2210.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2210.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2210.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2210.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2210.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2210.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2210.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2210.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2210.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2210.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2210.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2210.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2210.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2210.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2210.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2210.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2210.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2210.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2210.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2210.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2210.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2210.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2210.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2210.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2210.DevicePinFunctionSetting_t[8][1] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2210.DevicePin_t[8][1] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2210 device, there are 8 + 1 = 8 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2210.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2210.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P1DIR = GPIO_MSP430G2210.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P1OUT = GPIO_MSP430G2210.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P1REN = GPIO_MSP430G2210.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P1SEL = GPIO_MSP430G2210.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2210.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.devicePinSetting = GPIO_MSP430G2210.DevicePinFunctionSetting_t[8][1] undefined;
config GPIO_MSP430G2210.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2210 device, there are 8 + 1 = 8 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.devicePins = GPIO_MSP430G2210.DevicePin_t[8][1] undefined;
config GPIO_MSP430G2210.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2210.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2210.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2210.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2210.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2210.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2210.create(IComparator.Instance comparator, params);
// Create an instance-object
GPIO_MSP430G2210.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2210.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2210.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2210.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2210.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2210.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:30 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2210

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    13
    14    /*!
    15     *  ======== GPIO for MSP430G2210 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430G2210 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral.
    22         */
    23        create(Comparator.Instance comparator);
    24
    25    instance:
    26        /*! @_nodoc */
    27        config Comparator.Instance comparator;
    28
    29       /*! Define an array to describe all device pins. The 1st dimension
    30        *  denotes the port, the second the pin on that port. On an
    31        *  MSP430G2210 device, there are 8 + 1 = 8 pins total.
    32        */
    33
    34        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    35         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    36        /* TODO: For this device the config variable definition has been moved into the
    37         * corresponding XS file due to its size. This needs a more consistent solution. */
    38        config DevicePin_t devicePins[1][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[1][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT" , regForceSet : true  },
    47            { register : "P1SEL" , regForceSet : false },
    48            { register : "P1DIR" , regForceSet : true  },
    49            { register : "P1REN" , regForceSet : false },
    50            { register : "P1IES" , regForceSet : true },
    51            { register : "P1IFG" , regForceSet : true },
    52            { register : "P1IE"  , regForceSet : false }
    53        ];
    54
    55        /*
    56         *  GPIO Digital I/O Registers
    57         *
    58         *  One GIPO instance defines the configuration of an entire,
    59         *  8-bit wide digital I/O port.
    60         */
    61
    62        /*! Port 1 Output Register */
    63        config GpioBits8PxOut_t P1OUT = {
    64            Bit0        : BIT0_OFF,
    65            Bit1        : BIT1_OFF,
    66            Bit2        : BIT2_OFF,
    67            Bit3        : BIT3_OFF,
    68            Bit4        : BIT4_OFF,
    69            Bit5        : BIT5_OFF,
    70            Bit6        : BIT6_OFF,
    71            Bit7        : BIT7_OFF
    72        };
    73
    74        /*! Port 1 Port Select Register */
    75        config GpioBits8PxSel_t P1SEL = {
    76            Bit0        : BIT0_OFF,
    77            Bit1        : BIT1_OFF,
    78            Bit2        : BIT2_OFF,
    79            Bit3        : BIT3_OFF,
    80            Bit4        : BIT4_OFF,
    81            Bit5        : BIT5_OFF,
    82            Bit6        : BIT6_OFF,
    83            Bit7        : BIT7_OFF
    84        };
    85
    86        /*! Port 1 Direction Register */
    87        config GpioBits8PxDir_t P1DIR = {
    88            Bit0        : BIT0_OFF,
    89            Bit1        : BIT1_OFF,
    90            Bit2        : BIT2_OFF,
    91            Bit3        : BIT3_OFF,
    92            Bit4        : BIT4_OFF,
    93            Bit5        : BIT5_OFF,
    94            Bit6        : BIT6_OFF,
    95            Bit7        : BIT7_OFF
    96        };
    97
    98        /*! Port 1 Resistor Enable Register */
    99        config GpioBits8PxRen_t P1REN = {
   100            Bit0        : BIT0_OFF,
   101            Bit1        : BIT1_OFF,
   102            Bit2        : BIT2_OFF,
   103            Bit3        : BIT3_OFF,
   104            Bit4        : BIT4_OFF,
   105            Bit5        : BIT5_OFF,
   106            Bit6        : BIT6_OFF,
   107            Bit7        : BIT7_OFF
   108        };
   109    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2230

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2230
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2230.xdc
var GPIO_MSP430G2230 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2230');
module-wide constants & types
    values of type GPIO_MSP430G2230.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2230.BIT0_OFF;
        const GPIO_MSP430G2230.BIT0;
    values of type GPIO_MSP430G2230.Bit1_t//
        const GPIO_MSP430G2230.BIT1_OFF;
        const GPIO_MSP430G2230.BIT1;
    values of type GPIO_MSP430G2230.Bit2_t//
        const GPIO_MSP430G2230.BIT2_OFF;
        const GPIO_MSP430G2230.BIT2;
    values of type GPIO_MSP430G2230.Bit3_t//
        const GPIO_MSP430G2230.BIT3_OFF;
        const GPIO_MSP430G2230.BIT3;
    values of type GPIO_MSP430G2230.Bit4_t//
        const GPIO_MSP430G2230.BIT4_OFF;
        const GPIO_MSP430G2230.BIT4;
    values of type GPIO_MSP430G2230.Bit5_t//
        const GPIO_MSP430G2230.BIT5_OFF;
        const GPIO_MSP430G2230.BIT5;
    values of type GPIO_MSP430G2230.Bit6_t//
        const GPIO_MSP430G2230.BIT6_OFF;
        const GPIO_MSP430G2230.BIT6;
    values of type GPIO_MSP430G2230.Bit7_t//
        const GPIO_MSP430G2230.BIT7_OFF;
        const GPIO_MSP430G2230.BIT7;
    values of type GPIO_MSP430G2230.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2230.IE_OFF// Disabled;
        const GPIO_MSP430G2230.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2230.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2230.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2230.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2230.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2230.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2230.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2230.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2230.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2230.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2230.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2230.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2230.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2230.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2230.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2230.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2230.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2230.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2230.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2230.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2230.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2230.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2230.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2230.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2230.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2230.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2230.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2230.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2230.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2230.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2230.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2230.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2230.DevicePinFunctionSetting_t[8][1] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2230 device, there are 8 + 1 = 8 pins total = GPIO_MSP430G2230.DevicePin_t[8][1] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2230.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2230.create// Create an instance-object(USI.Instance usi, ADC10.Instance adc10, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2230.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2230.Bit0_t
    const GPIO_MSP430G2230.BIT0_OFF;
    const GPIO_MSP430G2230.BIT0;
enum GPIO_MSP430G2230.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2230.Bit1_t
    const GPIO_MSP430G2230.BIT1_OFF;
    const GPIO_MSP430G2230.BIT1;
enum GPIO_MSP430G2230.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2230.Bit2_t
    const GPIO_MSP430G2230.BIT2_OFF;
    const GPIO_MSP430G2230.BIT2;
enum GPIO_MSP430G2230.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2230.Bit3_t
    const GPIO_MSP430G2230.BIT3_OFF;
    const GPIO_MSP430G2230.BIT3;
enum GPIO_MSP430G2230.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2230.Bit4_t
    const GPIO_MSP430G2230.BIT4_OFF;
    const GPIO_MSP430G2230.BIT4;
enum GPIO_MSP430G2230.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2230.Bit5_t
    const GPIO_MSP430G2230.BIT5_OFF;
    const GPIO_MSP430G2230.BIT5;
enum GPIO_MSP430G2230.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2230.Bit6_t
    const GPIO_MSP430G2230.BIT6_OFF;
    const GPIO_MSP430G2230.BIT6;
enum GPIO_MSP430G2230.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2230.Bit7_t
    const GPIO_MSP430G2230.BIT7_OFF;
    const GPIO_MSP430G2230.BIT7;
enum GPIO_MSP430G2230.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2230.InterruptEnable_t
    const GPIO_MSP430G2230.IE_OFF;
    // Disabled
    const GPIO_MSP430G2230.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2230.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2230.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2230.OutputState_t
    const GPIO_MSP430G2230.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2230.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2230.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2230.ResEnable_t
    const GPIO_MSP430G2230.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2230.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2230.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2230.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2230.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2230.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2230.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2230.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2230.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2230.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2230.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2230.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2230.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2230.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2230.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2230.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2230.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2230.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2230.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2230.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2230.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2230.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2230.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2230.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2230.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2230.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2230.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2230.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2230.DevicePinFunctionSetting_t[8][1] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2230.DevicePin_t[8][1] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2230 device, there are 8 + 1 = 8 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2230.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2230.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P1DIR = GPIO_MSP430G2230.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P1OUT = GPIO_MSP430G2230.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P1REN = GPIO_MSP430G2230.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P1SEL = GPIO_MSP430G2230.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2230.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.devicePinSetting = GPIO_MSP430G2230.DevicePinFunctionSetting_t[8][1] undefined;
config GPIO_MSP430G2230.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2230 device, there are 8 + 1 = 8 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.devicePins = GPIO_MSP430G2230.DevicePin_t[8][1] undefined;
config GPIO_MSP430G2230.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2230.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2230.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2230.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2230.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2230.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2230.create(USI.Instance usi, ADC10.Instance adc10, params);
// Create an instance-object
GPIO_MSP430G2230.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2230.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2230.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2230.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2230.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2230.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:30 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2230

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.communication.USI as USI;
    13    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    14
    15    /*!
    16     *  ======== GPIO for MSP430G2230 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430G2230 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral.
    23         */
    24        create(USI.Instance usi, ADC10.Instance adc10);
    25
    26    instance:
    27        /*! @_nodoc */
    28        config USI.Instance usi;
    29
    30        /*! @_nodoc */
    31        config ADC10.Instance adc10;
    32
    33       /*! Define an array to describe all device pins. The 1st dimension
    34        *  denotes the port, the second the pin on that port. On an
    35        *  MSP430G2230 device, there are 8 + 1 = 8 pins total.
    36        */
    37
    38        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    39         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    40        /* TODO: For this device the config variable definition has been moved into the
    41         * corresponding XS file due to its size. This needs a more consistent solution. */
    42        config DevicePin_t devicePins[1][8];
    43
    44        /*! Implementation of Device Pin Functional Configuration */
    45        override config DevicePinFunctionSetting_t devicePinSetting[1][8];
    46
    47        /*! Determine if each Register needs to be forced set or not */
    48        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    49        [
    50            { register : "P1OUT" , regForceSet : true  },
    51            { register : "P1SEL" , regForceSet : false },
    52            { register : "P1DIR" , regForceSet : true  },
    53            { register : "P1REN" , regForceSet : false },
    54            { register : "P1IES" , regForceSet : true },
    55            { register : "P1IFG" , regForceSet : true },
    56            { register : "P1IE"  , regForceSet : false }
    57        ];
    58
    59        /*
    60         *  GPIO Digital I/O Registers
    61         *
    62         *  One GIPO instance defines the configuration of an entire,
    63         *  8-bit wide digital I/O port.
    64         */
    65
    66        /*! Port 1 Output Register */
    67        config GpioBits8PxOut_t P1OUT = {
    68            Bit0        : BIT0_OFF,
    69            Bit1        : BIT1_OFF,
    70            Bit2        : BIT2_OFF,
    71            Bit3        : BIT3_OFF,
    72            Bit4        : BIT4_OFF,
    73            Bit5        : BIT5_OFF,
    74            Bit6        : BIT6_OFF,
    75            Bit7        : BIT7_OFF
    76        };
    77
    78        /*! Port 1 Port Select Register */
    79        config GpioBits8PxSel_t P1SEL = {
    80            Bit0        : BIT0_OFF,
    81            Bit1        : BIT1_OFF,
    82            Bit2        : BIT2_OFF,
    83            Bit3        : BIT3_OFF,
    84            Bit4        : BIT4_OFF,
    85            Bit5        : BIT5_OFF,
    86            Bit6        : BIT6_OFF,
    87            Bit7        : BIT7_OFF
    88        };
    89
    90        /*! Port 1 Direction Register */
    91        config GpioBits8PxDir_t P1DIR = {
    92            Bit0        : BIT0_OFF,
    93            Bit1        : BIT1_OFF,
    94            Bit2        : BIT2_OFF,
    95            Bit3        : BIT3_OFF,
    96            Bit4        : BIT4_OFF,
    97            Bit5        : BIT5_OFF,
    98            Bit6        : BIT6_OFF,
    99            Bit7        : BIT7_OFF
   100        };
   101
   102        /*! Port 1 Resistor Enable Register */
   103        config GpioBits8PxRen_t P1REN = {
   104            Bit0        : BIT0_OFF,
   105            Bit1        : BIT1_OFF,
   106            Bit2        : BIT2_OFF,
   107            Bit3        : BIT3_OFF,
   108            Bit4        : BIT4_OFF,
   109            Bit5        : BIT5_OFF,
   110            Bit6        : BIT6_OFF,
   111            Bit7        : BIT7_OFF
   112        };
   113    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x01

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x01
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x01.xdc
var GPIO_MSP430G2x01 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x01');
module-wide constants & types
    values of type GPIO_MSP430G2x01.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x01.BIT0_OFF;
        const GPIO_MSP430G2x01.BIT0;
    values of type GPIO_MSP430G2x01.Bit1_t//
        const GPIO_MSP430G2x01.BIT1_OFF;
        const GPIO_MSP430G2x01.BIT1;
    values of type GPIO_MSP430G2x01.Bit2_t//
        const GPIO_MSP430G2x01.BIT2_OFF;
        const GPIO_MSP430G2x01.BIT2;
    values of type GPIO_MSP430G2x01.Bit3_t//
        const GPIO_MSP430G2x01.BIT3_OFF;
        const GPIO_MSP430G2x01.BIT3;
    values of type GPIO_MSP430G2x01.Bit4_t//
        const GPIO_MSP430G2x01.BIT4_OFF;
        const GPIO_MSP430G2x01.BIT4;
    values of type GPIO_MSP430G2x01.Bit5_t//
        const GPIO_MSP430G2x01.BIT5_OFF;
        const GPIO_MSP430G2x01.BIT5;
    values of type GPIO_MSP430G2x01.Bit6_t//
        const GPIO_MSP430G2x01.BIT6_OFF;
        const GPIO_MSP430G2x01.BIT6;
    values of type GPIO_MSP430G2x01.Bit7_t//
        const GPIO_MSP430G2x01.BIT7_OFF;
        const GPIO_MSP430G2x01.BIT7;
    values of type GPIO_MSP430G2x01.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x01.IE_OFF// Disabled;
        const GPIO_MSP430G2x01.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x01.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x01.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x01.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x01.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x01.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x01.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x01.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x01.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x01.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x01.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x01.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x01.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x01.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x01.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x01.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x01.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x01.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x01.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x01.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x01.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x01.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x01.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x01.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x01.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x01.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x01.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x01.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x01.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x01.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x01.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x01.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x01.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x01.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x01.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x01.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x01.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x01 device, there are 8 + 2 = 10 pins total = GPIO_MSP430G2x01.DevicePin_t[8][2] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x01.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x01.create// Create an instance-object(params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x01.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.Bit0_t
    const GPIO_MSP430G2x01.BIT0_OFF;
    const GPIO_MSP430G2x01.BIT0;
enum GPIO_MSP430G2x01.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.Bit1_t
    const GPIO_MSP430G2x01.BIT1_OFF;
    const GPIO_MSP430G2x01.BIT1;
enum GPIO_MSP430G2x01.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.Bit2_t
    const GPIO_MSP430G2x01.BIT2_OFF;
    const GPIO_MSP430G2x01.BIT2;
enum GPIO_MSP430G2x01.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.Bit3_t
    const GPIO_MSP430G2x01.BIT3_OFF;
    const GPIO_MSP430G2x01.BIT3;
enum GPIO_MSP430G2x01.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.Bit4_t
    const GPIO_MSP430G2x01.BIT4_OFF;
    const GPIO_MSP430G2x01.BIT4;
enum GPIO_MSP430G2x01.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.Bit5_t
    const GPIO_MSP430G2x01.BIT5_OFF;
    const GPIO_MSP430G2x01.BIT5;
enum GPIO_MSP430G2x01.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.Bit6_t
    const GPIO_MSP430G2x01.BIT6_OFF;
    const GPIO_MSP430G2x01.BIT6;
enum GPIO_MSP430G2x01.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.Bit7_t
    const GPIO_MSP430G2x01.BIT7_OFF;
    const GPIO_MSP430G2x01.BIT7;
enum GPIO_MSP430G2x01.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.InterruptEnable_t
    const GPIO_MSP430G2x01.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x01.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x01.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x01.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.OutputState_t
    const GPIO_MSP430G2x01.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x01.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x01.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x01.ResEnable_t
    const GPIO_MSP430G2x01.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x01.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x01.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x01.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x01.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x01.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x01.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x01.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x01.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x01.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x01.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x01.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x01.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x01.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x01.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x01.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x01.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x01.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x01.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x01.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x01.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x01.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x01.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x01.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x01.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x01.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x01.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x01.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x01.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x01.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x01.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x01.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x01.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x01.DevicePin_t[8][2] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x01 device, there are 8 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x01.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x01.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P1DIR = GPIO_MSP430G2x01.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P1OUT = GPIO_MSP430G2x01.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P1REN = GPIO_MSP430G2x01.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P1SEL = GPIO_MSP430G2x01.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P2DIR = GPIO_MSP430G2x01.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P2OUT = GPIO_MSP430G2x01.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P2REN = GPIO_MSP430G2x01.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P2SEL = GPIO_MSP430G2x01.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x01.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x01.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.devicePinSetting = GPIO_MSP430G2x01.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430G2x01.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x01 device, there are 8 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.devicePins = GPIO_MSP430G2x01.DevicePin_t[8][2] undefined;
config GPIO_MSP430G2x01.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x01.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2x01.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x01.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x01.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x01.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x01.create(params);
// Create an instance-object
GPIO_MSP430G2x01.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x01.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x01.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x01.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x01.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x01.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:31 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x01

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== GPIO for MSP430G2x01 ========
    14     *  MSP430 General Purpose Input Output Ports
    15     */
    16    metaonly module GPIO_MSP430G2x01 inherits IGPIO {
    17        /*!
    18         *  ======== create ========
    19         *  Create an instance of this peripheral.
    20         */
    21        create();
    22
    23    instance:
    24       /*! Define an array to describe all device pins. The 1st dimension
    25        *  denotes the port, the second the pin on that port. On an
    26        *  MSP430G2x01 device, there are 8 + 2 = 10 pins total.
    27        */
    28
    29        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    30         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    31        /* TODO: For this device the config variable definition has been moved into the
    32         * corresponding XS file due to its size. This needs a more consistent solution. */
    33        config DevicePin_t devicePins[2][8];
    34
    35        /*! Implementation of Device Pin Functional Configuration */
    36        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
    37
    38        /*! Determine if each Register needs to be forced set or not */
    39        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    40        [
    41            { register : "P1OUT" , regForceSet : true  },
    42            { register : "P1SEL" , regForceSet : false },
    43            { register : "P1DIR" , regForceSet : true  },
    44            { register : "P1REN" , regForceSet : false },
    45            { register : "P1IES" , regForceSet : true },
    46            { register : "P1IFG" , regForceSet : true },
    47            { register : "P1IE"  , regForceSet : false },
    48            { register : "P2OUT" , regForceSet : true  },
    49            { register : "P2SEL" , regForceSet : false },
    50            { register : "P2DIR" , regForceSet : true  },
    51            { register : "P2REN" , regForceSet : false },
    52            { register : "P2IES" , regForceSet : true },
    53            { register : "P2IFG" , regForceSet : true },
    54            { register : "P2IE"  , regForceSet : false }
    55        ];
    56
    57        /*
    58         *  GPIO Digital I/O Registers
    59         *
    60         *  One GIPO instance defines the configuration of an entire,
    61         *  8-bit wide digital I/O port.
    62         */
    63
    64        /*! Port 1 Output Register */
    65        config GpioBits8PxOut_t P1OUT = {
    66            Bit0        : BIT0_OFF,
    67            Bit1        : BIT1_OFF,
    68            Bit2        : BIT2_OFF,
    69            Bit3        : BIT3_OFF,
    70            Bit4        : BIT4_OFF,
    71            Bit5        : BIT5_OFF,
    72            Bit6        : BIT6_OFF,
    73            Bit7        : BIT7_OFF
    74        };
    75
    76        /*! Port 1 Port Select Register */
    77        config GpioBits8PxSel_t P1SEL = {
    78            Bit0        : BIT0_OFF,
    79            Bit1        : BIT1_OFF,
    80            Bit2        : BIT2_OFF,
    81            Bit3        : BIT3_OFF,
    82            Bit4        : BIT4_OFF,
    83            Bit5        : BIT5_OFF,
    84            Bit6        : BIT6_OFF,
    85            Bit7        : BIT7_OFF
    86        };
    87
    88        /*! Port 1 Direction Register */
    89        config GpioBits8PxDir_t P1DIR = {
    90            Bit0        : BIT0_OFF,
    91            Bit1        : BIT1_OFF,
    92            Bit2        : BIT2_OFF,
    93            Bit3        : BIT3_OFF,
    94            Bit4        : BIT4_OFF,
    95            Bit5        : BIT5_OFF,
    96            Bit6        : BIT6_OFF,
    97            Bit7        : BIT7_OFF
    98        };
    99
   100        /*! Port 1 Resistor Enable Register */
   101        config GpioBits8PxRen_t P1REN = {
   102            Bit0        : BIT0_OFF,
   103            Bit1        : BIT1_OFF,
   104            Bit2        : BIT2_OFF,
   105            Bit3        : BIT3_OFF,
   106            Bit4        : BIT4_OFF,
   107            Bit5        : BIT5_OFF,
   108            Bit6        : BIT6_OFF,
   109            Bit7        : BIT7_OFF
   110        };
   111
   112        /*! Port 2 Output Register */
   113        config GpioBits8PxOut_t P2OUT = {
   114            Bit0        : BIT0_OFF,
   115            Bit1        : BIT1_OFF,
   116            Bit2        : BIT2_OFF,
   117            Bit3        : BIT3_OFF,
   118            Bit4        : BIT4_OFF,
   119            Bit5        : BIT5_OFF,
   120            Bit6        : BIT6_OFF,
   121            Bit7        : BIT7_OFF
   122        };
   123
   124        /*! Port 2 Port Select Register */
   125        config GpioBits8PxSel_t P2SEL = {
   126            Bit0        : BIT0_OFF,
   127            Bit1        : BIT1_OFF,
   128            Bit2        : BIT2_OFF,
   129            Bit3        : BIT3_OFF,
   130            Bit4        : BIT4_OFF,
   131            Bit5        : BIT5_OFF,
   132            Bit6        : BIT6,         /* POR default for all 2xx devices */
   133            Bit7        : BIT7          /* POR default for all 2xx devices */
   134        };
   135
   136        /*! Port 2 Direction Register */
   137        config GpioBits8PxDir_t P2DIR = {
   138            Bit0        : BIT0_OFF,
   139            Bit1        : BIT1_OFF,
   140            Bit2        : BIT2_OFF,
   141            Bit3        : BIT3_OFF,
   142            Bit4        : BIT4_OFF,
   143            Bit5        : BIT5_OFF,
   144            Bit6        : BIT6_OFF,
   145            Bit7        : BIT7_OFF
   146        };
   147
   148        /*! Port 2 Resistor Enable Register */
   149        config GpioBits8PxRen_t P2REN = {
   150            Bit0        : BIT0_OFF,
   151            Bit1        : BIT1_OFF,
   152            Bit2        : BIT2_OFF,
   153            Bit3        : BIT3_OFF,
   154            Bit4        : BIT4_OFF,
   155            Bit5        : BIT5_OFF,
   156            Bit6        : BIT6_OFF,
   157            Bit7        : BIT7_OFF
   158        };
   159    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x02

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x02
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x02.xdc
var GPIO_MSP430G2x02 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x02');
module-wide constants & types
    values of type GPIO_MSP430G2x02.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x02.BIT0_OFF;
        const GPIO_MSP430G2x02.BIT0;
    values of type GPIO_MSP430G2x02.Bit1_t//
        const GPIO_MSP430G2x02.BIT1_OFF;
        const GPIO_MSP430G2x02.BIT1;
    values of type GPIO_MSP430G2x02.Bit2_t//
        const GPIO_MSP430G2x02.BIT2_OFF;
        const GPIO_MSP430G2x02.BIT2;
    values of type GPIO_MSP430G2x02.Bit3_t//
        const GPIO_MSP430G2x02.BIT3_OFF;
        const GPIO_MSP430G2x02.BIT3;
    values of type GPIO_MSP430G2x02.Bit4_t//
        const GPIO_MSP430G2x02.BIT4_OFF;
        const GPIO_MSP430G2x02.BIT4;
    values of type GPIO_MSP430G2x02.Bit5_t//
        const GPIO_MSP430G2x02.BIT5_OFF;
        const GPIO_MSP430G2x02.BIT5;
    values of type GPIO_MSP430G2x02.Bit6_t//
        const GPIO_MSP430G2x02.BIT6_OFF;
        const GPIO_MSP430G2x02.BIT6;
    values of type GPIO_MSP430G2x02.Bit7_t//
        const GPIO_MSP430G2x02.BIT7_OFF;
        const GPIO_MSP430G2x02.BIT7;
    values of type GPIO_MSP430G2x02.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x02.IE_OFF// Disabled;
        const GPIO_MSP430G2x02.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x02.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x02.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x02.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x02.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x02.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x02.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x02.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x02.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x02.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x02.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x02.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x02.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x02.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x02.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x02.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x02.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x02.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x02.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x02.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x02.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x02.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x02.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x02.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x02.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x02.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x02.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x02.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x02.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x02.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x02.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x02.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL2// Port 1 Port Select 2 Register = GPIO_MSP430G2x02.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x02.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x02.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x02.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x02.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P2SEL2// Port 2 Port Select 2 Register = GPIO_MSP430G2x02.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x02.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x02 device, there are 8 + 8 = 16 pins total = GPIO_MSP430G2x02.DevicePin_t[8][2] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x02.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1SEL2",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2SEL2",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x02.create// Create an instance-object(USI.Instance usi, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x02.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.Bit0_t
    const GPIO_MSP430G2x02.BIT0_OFF;
    const GPIO_MSP430G2x02.BIT0;
enum GPIO_MSP430G2x02.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.Bit1_t
    const GPIO_MSP430G2x02.BIT1_OFF;
    const GPIO_MSP430G2x02.BIT1;
enum GPIO_MSP430G2x02.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.Bit2_t
    const GPIO_MSP430G2x02.BIT2_OFF;
    const GPIO_MSP430G2x02.BIT2;
enum GPIO_MSP430G2x02.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.Bit3_t
    const GPIO_MSP430G2x02.BIT3_OFF;
    const GPIO_MSP430G2x02.BIT3;
enum GPIO_MSP430G2x02.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.Bit4_t
    const GPIO_MSP430G2x02.BIT4_OFF;
    const GPIO_MSP430G2x02.BIT4;
enum GPIO_MSP430G2x02.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.Bit5_t
    const GPIO_MSP430G2x02.BIT5_OFF;
    const GPIO_MSP430G2x02.BIT5;
enum GPIO_MSP430G2x02.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.Bit6_t
    const GPIO_MSP430G2x02.BIT6_OFF;
    const GPIO_MSP430G2x02.BIT6;
enum GPIO_MSP430G2x02.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.Bit7_t
    const GPIO_MSP430G2x02.BIT7_OFF;
    const GPIO_MSP430G2x02.BIT7;
enum GPIO_MSP430G2x02.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.InterruptEnable_t
    const GPIO_MSP430G2x02.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x02.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x02.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x02.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.OutputState_t
    const GPIO_MSP430G2x02.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x02.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x02.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x02.ResEnable_t
    const GPIO_MSP430G2x02.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x02.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x02.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x02.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x02.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x02.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x02.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x02.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x02.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x02.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x02.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x02.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x02.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x02.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x02.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x02.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x02.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x02.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x02.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x02.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x02.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x02.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x02.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x02.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x02.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x02.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x02.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x02.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL2 = GPIO_MSP430G2x02.GpioBits8PxSel2_t {
    // Port 1 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x02.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x02.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x02.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x02.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P2SEL2 = GPIO_MSP430G2x02.GpioBits8PxSel2_t {
    // Port 2 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x02.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x02.DevicePin_t[8][2] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x02 device, there are 8 + 8 = 16 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x02.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1SEL2",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2SEL2",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x02.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P1DIR = GPIO_MSP430G2x02.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P1OUT = GPIO_MSP430G2x02.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P1REN = GPIO_MSP430G2x02.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P1SEL = GPIO_MSP430G2x02.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P1SEL2 // instance
index URL

Port 1 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P1SEL2 = GPIO_MSP430G2x02.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P2DIR = GPIO_MSP430G2x02.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P2OUT = GPIO_MSP430G2x02.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P2REN = GPIO_MSP430G2x02.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P2SEL = GPIO_MSP430G2x02.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x02.P2SEL2 // instance
index URL

Port 2 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P2SEL2 = GPIO_MSP430G2x02.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x02.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.devicePinSetting = GPIO_MSP430G2x02.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430G2x02.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x02 device, there are 8 + 8 = 16 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.devicePins = GPIO_MSP430G2x02.DevicePin_t[8][2] undefined;
config GPIO_MSP430G2x02.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x02.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1SEL2",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2SEL2",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2x02.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x02.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x02.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x02.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x02.create(USI.Instance usi, params);
// Create an instance-object
GPIO_MSP430G2x02.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x02.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x02.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x02.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x02.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x02.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:31 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x02

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.communication.USI as USI;
    13
    14    /*!
    15     *  ======== GPIO for MSP430G2x02 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430G2x02 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral.
    22         */
    23        create(USI.Instance usi);
    24
    25    instance:
    26        /*! @_nodoc */
    27        config USI.Instance usi;
    28
    29       /*! Define an array to describe all device pins. The 1st dimension
    30        *  denotes the port, the second the pin on that port. On an
    31        *  MSP430G2x02 device, there are 8 + 8 = 16 pins total.
    32        */
    33
    34        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    35         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    36        /* TODO: For this device the config variable definition has been moved into the
    37         * corresponding XS file due to its size. This needs a more consistent solution. */
    38        config DevicePin_t devicePins[2][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT" , regForceSet : true  },
    47            { register : "P1SEL" , regForceSet : false },
    48            { register : "P1SEL2", regForceSet : false },
    49            { register : "P1DIR" , regForceSet : true  },
    50            { register : "P1REN" , regForceSet : false },
    51            { register : "P1IES" , regForceSet : true },
    52            { register : "P1IFG" , regForceSet : true },
    53            { register : "P1IE"  , regForceSet : false },
    54            { register : "P2OUT" , regForceSet : true  },
    55            { register : "P2SEL" , regForceSet : false },
    56            { register : "P2SEL2", regForceSet : false },
    57            { register : "P2DIR" , regForceSet : true  },
    58            { register : "P2REN" , regForceSet : false },
    59            { register : "P2IES" , regForceSet : true },
    60            { register : "P2IFG" , regForceSet : true },
    61            { register : "P2IE"  , regForceSet : false }
    62        ];
    63
    64        /*
    65         *  GPIO Digital I/O Registers
    66         *
    67         *  One GIPO instance defines the configuration of an entire,
    68         *  8-bit wide digital I/O port.
    69         */
    70
    71        /*! Port 1 Output Register */
    72        config GpioBits8PxOut_t P1OUT = {
    73            Bit0        : BIT0_OFF,
    74            Bit1        : BIT1_OFF,
    75            Bit2        : BIT2_OFF,
    76            Bit3        : BIT3_OFF,
    77            Bit4        : BIT4_OFF,
    78            Bit5        : BIT5_OFF,
    79            Bit6        : BIT6_OFF,
    80            Bit7        : BIT7_OFF
    81        };
    82
    83        /*! Port 1 Port Select Register */
    84        config GpioBits8PxSel_t P1SEL = {
    85            Bit0        : BIT0_OFF,
    86            Bit1        : BIT1_OFF,
    87            Bit2        : BIT2_OFF,
    88            Bit3        : BIT3_OFF,
    89            Bit4        : BIT4_OFF,
    90            Bit5        : BIT5_OFF,
    91            Bit6        : BIT6_OFF,
    92            Bit7        : BIT7_OFF
    93        };
    94
    95        /*! Port 1 Port Select 2 Register */
    96        config GpioBits8PxSel2_t P1SEL2 = {
    97            Bit0        : BIT0_OFF,
    98            Bit1        : BIT1_OFF,
    99            Bit2        : BIT2_OFF,
   100            Bit3        : BIT3_OFF,
   101            Bit4        : BIT4_OFF,
   102            Bit5        : BIT5_OFF,
   103            Bit6        : BIT6_OFF,
   104            Bit7        : BIT7_OFF
   105        };
   106
   107        /*! Port 1 Direction Register */
   108        config GpioBits8PxDir_t P1DIR = {
   109            Bit0        : BIT0_OFF,
   110            Bit1        : BIT1_OFF,
   111            Bit2        : BIT2_OFF,
   112            Bit3        : BIT3_OFF,
   113            Bit4        : BIT4_OFF,
   114            Bit5        : BIT5_OFF,
   115            Bit6        : BIT6_OFF,
   116            Bit7        : BIT7_OFF
   117        };
   118
   119        /*! Port 1 Resistor Enable Register */
   120        config GpioBits8PxRen_t P1REN = {
   121            Bit0        : BIT0_OFF,
   122            Bit1        : BIT1_OFF,
   123            Bit2        : BIT2_OFF,
   124            Bit3        : BIT3_OFF,
   125            Bit4        : BIT4_OFF,
   126            Bit5        : BIT5_OFF,
   127            Bit6        : BIT6_OFF,
   128            Bit7        : BIT7_OFF
   129        };
   130
   131        /*! Port 2 Output Register */
   132        config GpioBits8PxOut_t P2OUT = {
   133            Bit0        : BIT0_OFF,
   134            Bit1        : BIT1_OFF,
   135            Bit2        : BIT2_OFF,
   136            Bit3        : BIT3_OFF,
   137            Bit4        : BIT4_OFF,
   138            Bit5        : BIT5_OFF,
   139            Bit6        : BIT6_OFF,
   140            Bit7        : BIT7_OFF
   141        };
   142
   143        /*! Port 2 Port Select Register */
   144        config GpioBits8PxSel_t P2SEL = {
   145            Bit0        : BIT0_OFF,
   146            Bit1        : BIT1_OFF,
   147            Bit2        : BIT2_OFF,
   148            Bit3        : BIT3_OFF,
   149            Bit4        : BIT4_OFF,
   150            Bit5        : BIT5_OFF,
   151            Bit6        : BIT6,         /* POR default for all 2xx devices */
   152            Bit7        : BIT7          /* POR default for all 2xx devices */
   153        };
   154
   155        /*! Port 2 Port Select 2 Register */
   156        config GpioBits8PxSel2_t P2SEL2 = {
   157            Bit0        : BIT0_OFF,
   158            Bit1        : BIT1_OFF,
   159            Bit2        : BIT2_OFF,
   160            Bit3        : BIT3_OFF,
   161            Bit4        : BIT4_OFF,
   162            Bit5        : BIT5_OFF,
   163            Bit6        : BIT6_OFF,
   164            Bit7        : BIT7_OFF
   165        };
   166
   167        /*! Port 2 Direction Register */
   168        config GpioBits8PxDir_t P2DIR = {
   169            Bit0        : BIT0_OFF,
   170            Bit1        : BIT1_OFF,
   171            Bit2        : BIT2_OFF,
   172            Bit3        : BIT3_OFF,
   173            Bit4        : BIT4_OFF,
   174            Bit5        : BIT5_OFF,
   175            Bit6        : BIT6_OFF,
   176            Bit7        : BIT7_OFF
   177        };
   178
   179        /*! Port 2 Resistor Enable Register */
   180        config GpioBits8PxRen_t P2REN = {
   181            Bit0        : BIT0_OFF,
   182            Bit1        : BIT1_OFF,
   183            Bit2        : BIT2_OFF,
   184            Bit3        : BIT3_OFF,
   185            Bit4        : BIT4_OFF,
   186            Bit5        : BIT5_OFF,
   187            Bit6        : BIT6_OFF,
   188            Bit7        : BIT7_OFF
   189        };
   190    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x03

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x03
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x03.xdc
var GPIO_MSP430G2x03 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x03');
module-wide constants & types
    values of type GPIO_MSP430G2x03.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x03.BIT0_OFF;
        const GPIO_MSP430G2x03.BIT0;
    values of type GPIO_MSP430G2x03.Bit1_t//
        const GPIO_MSP430G2x03.BIT1_OFF;
        const GPIO_MSP430G2x03.BIT1;
    values of type GPIO_MSP430G2x03.Bit2_t//
        const GPIO_MSP430G2x03.BIT2_OFF;
        const GPIO_MSP430G2x03.BIT2;
    values of type GPIO_MSP430G2x03.Bit3_t//
        const GPIO_MSP430G2x03.BIT3_OFF;
        const GPIO_MSP430G2x03.BIT3;
    values of type GPIO_MSP430G2x03.Bit4_t//
        const GPIO_MSP430G2x03.BIT4_OFF;
        const GPIO_MSP430G2x03.BIT4;
    values of type GPIO_MSP430G2x03.Bit5_t//
        const GPIO_MSP430G2x03.BIT5_OFF;
        const GPIO_MSP430G2x03.BIT5;
    values of type GPIO_MSP430G2x03.Bit6_t//
        const GPIO_MSP430G2x03.BIT6_OFF;
        const GPIO_MSP430G2x03.BIT6;
    values of type GPIO_MSP430G2x03.Bit7_t//
        const GPIO_MSP430G2x03.BIT7_OFF;
        const GPIO_MSP430G2x03.BIT7;
    values of type GPIO_MSP430G2x03.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x03.IE_OFF// Disabled;
        const GPIO_MSP430G2x03.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x03.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x03.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x03.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x03.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x03.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x03.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x03.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x03.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x03.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x03.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x03.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x03.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x03.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x03.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x03.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x03.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x03.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x03.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x03.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x03.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x03.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x03.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x03.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x03.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x03.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x03.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x03.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x03.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x03.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x03.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x03.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL2// Port 1 Port Select 2 Register = GPIO_MSP430G2x03.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x03.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x03.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x03.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x03.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P2SEL2// Port 2 Port Select 2 Register = GPIO_MSP430G2x03.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430G2x03.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430G2x03.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430G2x03.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430G2x03.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL2// Port 3 Port Select 2 Register = GPIO_MSP430G2x03.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x03.DevicePinFunctionSetting_t[8][3] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x03 device, there are 3 x 8 = 24 pins total = GPIO_MSP430G2x03.DevicePin_t[8][3] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x03.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1SEL2",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2SEL2",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3SEL2",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x03.create// Create an instance-object(params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x03.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.Bit0_t
    const GPIO_MSP430G2x03.BIT0_OFF;
    const GPIO_MSP430G2x03.BIT0;
enum GPIO_MSP430G2x03.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.Bit1_t
    const GPIO_MSP430G2x03.BIT1_OFF;
    const GPIO_MSP430G2x03.BIT1;
enum GPIO_MSP430G2x03.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.Bit2_t
    const GPIO_MSP430G2x03.BIT2_OFF;
    const GPIO_MSP430G2x03.BIT2;
enum GPIO_MSP430G2x03.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.Bit3_t
    const GPIO_MSP430G2x03.BIT3_OFF;
    const GPIO_MSP430G2x03.BIT3;
enum GPIO_MSP430G2x03.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.Bit4_t
    const GPIO_MSP430G2x03.BIT4_OFF;
    const GPIO_MSP430G2x03.BIT4;
enum GPIO_MSP430G2x03.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.Bit5_t
    const GPIO_MSP430G2x03.BIT5_OFF;
    const GPIO_MSP430G2x03.BIT5;
enum GPIO_MSP430G2x03.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.Bit6_t
    const GPIO_MSP430G2x03.BIT6_OFF;
    const GPIO_MSP430G2x03.BIT6;
enum GPIO_MSP430G2x03.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.Bit7_t
    const GPIO_MSP430G2x03.BIT7_OFF;
    const GPIO_MSP430G2x03.BIT7;
enum GPIO_MSP430G2x03.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.InterruptEnable_t
    const GPIO_MSP430G2x03.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x03.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x03.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x03.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.OutputState_t
    const GPIO_MSP430G2x03.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x03.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x03.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x03.ResEnable_t
    const GPIO_MSP430G2x03.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x03.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x03.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x03.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x03.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x03.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x03.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x03.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x03.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x03.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x03.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x03.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x03.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x03.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x03.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x03.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x03.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x03.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x03.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x03.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x03.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x03.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x03.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x03.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x03.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x03.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x03.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x03.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL2 = GPIO_MSP430G2x03.GpioBits8PxSel_t {
    // Port 1 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x03.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x03.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x03.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x03.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P2SEL2 = GPIO_MSP430G2x03.GpioBits8PxSel2_t {
    // Port 2 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430G2x03.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430G2x03.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430G2x03.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430G2x03.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL2 = GPIO_MSP430G2x03.GpioBits8PxSel2_t {
    // Port 3 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x03.DevicePinFunctionSetting_t[8][3] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x03.DevicePin_t[8][3] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x03 device, there are 3 x 8 = 24 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x03.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1SEL2",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2SEL2",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3SEL2",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x03.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P1DIR = GPIO_MSP430G2x03.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P1OUT = GPIO_MSP430G2x03.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P1REN = GPIO_MSP430G2x03.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P1SEL = GPIO_MSP430G2x03.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P1SEL2 // instance
index URL

Port 1 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P1SEL2 = GPIO_MSP430G2x03.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P2DIR = GPIO_MSP430G2x03.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P2OUT = GPIO_MSP430G2x03.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P2REN = GPIO_MSP430G2x03.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P2SEL = GPIO_MSP430G2x03.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x03.P2SEL2 // instance
index URL

Port 2 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P2SEL2 = GPIO_MSP430G2x03.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P3DIR = GPIO_MSP430G2x03.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P3OUT = GPIO_MSP430G2x03.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P3REN = GPIO_MSP430G2x03.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P3SEL = GPIO_MSP430G2x03.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P3SEL2 // instance
index URL

Port 3 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P3SEL2 = GPIO_MSP430G2x03.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x03.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.devicePinSetting = GPIO_MSP430G2x03.DevicePinFunctionSetting_t[8][3] undefined;
config GPIO_MSP430G2x03.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x03 device, there are 3 x 8 = 24 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.devicePins = GPIO_MSP430G2x03.DevicePin_t[8][3] undefined;
config GPIO_MSP430G2x03.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x03.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1SEL2",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2SEL2",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3SEL2",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    }
];
config GPIO_MSP430G2x03.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x03.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x03.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x03.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x03.create(params);
// Create an instance-object
GPIO_MSP430G2x03.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x03.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x03.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x03.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x03.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x03.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:32 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x03

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== GPIO for MSP430G2x03 ========
    15     *  MSP430 General Purpose Input Output Ports
    16     */
    17    metaonly module GPIO_MSP430G2x03 inherits IGPIO {
    18        /*!
    19         *  ======== create ========
    20         *  Create an instance of this peripheral. Use a customized
    21         *  init function so that we can get access to the
    22         *  instance.
    23         */
    24        create();
    25
    26    instance:
    27
    28       /*! Define an array to describe all device pins. The 1st dimension
    29        *  denotes the port, the second the pin on that port. On an
    30        *  MSP430G2x03 device, there are 3 x 8 = 24 pins total.
    31        */
    32
    33        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    34         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    35        /* TODO: For this device the config variable definition has been moved into the
    36         * corresponding XS file due to its size. This needs a more consistent solution. */
    37        config DevicePin_t devicePins[3][8];
    38
    39        /*! Implementation of Device Pin Functional Configuration */
    40        override config DevicePinFunctionSetting_t devicePinSetting[3][8];
    41
    42        /*! Determine if each Register needs to be forced set or not */
    43        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    44        [
    45            { register : "P1OUT" , regForceSet : true  },
    46            { register : "P1SEL" , regForceSet : false },
    47            { register : "P1SEL2" , regForceSet: false },
    48            { register : "P1DIR" , regForceSet : true  },
    49            { register : "P1REN" , regForceSet : false },
    50            { register : "P1IES" , regForceSet : true  },
    51            { register : "P1IFG" , regForceSet : true  },
    52            { register : "P1IE"  , regForceSet : false },
    53            { register : "P2OUT" , regForceSet : true  },
    54            { register : "P2SEL" , regForceSet : false },
    55            { register : "P2SEL2", regForceSet : false },
    56            { register : "P2DIR" , regForceSet : true  },
    57            { register : "P2REN" , regForceSet : false },
    58            { register : "P2IES" , regForceSet : true  },
    59            { register : "P2IFG" , regForceSet : true  },
    60            { register : "P2IE"  , regForceSet : false },
    61            { register : "P3OUT" , regForceSet : true  },
    62            { register : "P3SEL" , regForceSet : false },
    63            { register : "P3SEL2" , regForceSet: false },
    64            { register : "P3DIR" , regForceSet : true  },
    65            { register : "P3REN" , regForceSet : false },
    66        ];
    67
    68        /*
    69         *  GPIO Digital I/O Registers
    70         *
    71         *  One GIPO instance defines the configuration of an entire,
    72         *  8-bit wide digital I/O port.
    73         */
    74
    75        /*! Port 1 Output Register */
    76        config GpioBits8PxOut_t P1OUT = {
    77            Bit0        : BIT0_OFF,
    78            Bit1        : BIT1_OFF,
    79            Bit2        : BIT2_OFF,
    80            Bit3        : BIT3_OFF,
    81            Bit4        : BIT4_OFF,
    82            Bit5        : BIT5_OFF,
    83            Bit6        : BIT6_OFF,
    84            Bit7        : BIT7_OFF
    85        };
    86
    87        /*! Port 1 Port Select Register */
    88        config GpioBits8PxSel_t P1SEL = {
    89            Bit0        : BIT0_OFF,
    90            Bit1        : BIT1_OFF,
    91            Bit2        : BIT2_OFF,
    92            Bit3        : BIT3_OFF,
    93            Bit4        : BIT4_OFF,
    94            Bit5        : BIT5_OFF,
    95            Bit6        : BIT6_OFF,
    96            Bit7        : BIT7_OFF
    97        };
    98
    99        /*! Port 1 Port Select 2 Register */
   100        config GpioBits8PxSel_t P1SEL2 = {
   101            Bit0        : BIT0_OFF,
   102            Bit1        : BIT1_OFF,
   103            Bit2        : BIT2_OFF,
   104            Bit3        : BIT3_OFF,
   105            Bit4        : BIT4_OFF,
   106            Bit5        : BIT5_OFF,
   107            Bit6        : BIT6_OFF,
   108            Bit7        : BIT7_OFF
   109        };
   110
   111        /*! Port 1 Direction Register */
   112        config GpioBits8PxDir_t P1DIR = {
   113            Bit0        : BIT0_OFF,
   114            Bit1        : BIT1_OFF,
   115            Bit2        : BIT2_OFF,
   116            Bit3        : BIT3_OFF,
   117            Bit4        : BIT4_OFF,
   118            Bit5        : BIT5_OFF,
   119            Bit6        : BIT6_OFF,
   120            Bit7        : BIT7_OFF
   121        };
   122
   123        /*! Port 1 Resistor Enable Register */
   124        config GpioBits8PxRen_t P1REN = {
   125            Bit0        : BIT0_OFF,
   126            Bit1        : BIT1_OFF,
   127            Bit2        : BIT2_OFF,
   128            Bit3        : BIT3_OFF,
   129            Bit4        : BIT4_OFF,
   130            Bit5        : BIT5_OFF,
   131            Bit6        : BIT6_OFF,
   132            Bit7        : BIT7_OFF
   133        };
   134
   135        /*! Port 2 Output Register */
   136        config GpioBits8PxOut_t P2OUT = {
   137            Bit0        : BIT0_OFF,
   138            Bit1        : BIT1_OFF,
   139            Bit2        : BIT2_OFF,
   140            Bit3        : BIT3_OFF,
   141            Bit4        : BIT4_OFF,
   142            Bit5        : BIT5_OFF,
   143            Bit6        : BIT6_OFF,
   144            Bit7        : BIT7_OFF
   145        };
   146
   147        /*! Port 2 Port Select Register */
   148        config GpioBits8PxSel_t P2SEL = {
   149            Bit0        : BIT0_OFF,
   150            Bit1        : BIT1_OFF,
   151            Bit2        : BIT2_OFF,
   152            Bit3        : BIT3_OFF,
   153            Bit4        : BIT4_OFF,
   154            Bit5        : BIT5_OFF,
   155            Bit6        : BIT6,         /* POR default for all 2xx devices */
   156            Bit7        : BIT7          /* POR default for all 2xx devices */
   157        };
   158
   159        /*! Port 2 Port Select 2 Register */
   160        config GpioBits8PxSel2_t P2SEL2 = {
   161            Bit0        : BIT0_OFF,
   162            Bit1        : BIT1_OFF,
   163            Bit2        : BIT2_OFF,
   164            Bit3        : BIT3_OFF,
   165            Bit4        : BIT4_OFF,
   166            Bit5        : BIT5_OFF,
   167            Bit6        : BIT6_OFF,
   168            Bit7        : BIT7_OFF
   169        };
   170
   171        /*! Port 2 Direction Register */
   172        config GpioBits8PxDir_t P2DIR = {
   173            Bit0        : BIT0_OFF,
   174            Bit1        : BIT1_OFF,
   175            Bit2        : BIT2_OFF,
   176            Bit3        : BIT3_OFF,
   177            Bit4        : BIT4_OFF,
   178            Bit5        : BIT5_OFF,
   179            Bit6        : BIT6_OFF,
   180            Bit7        : BIT7_OFF
   181        };
   182
   183        /*! Port 2 Resistor Enable Register */
   184        config GpioBits8PxRen_t P2REN = {
   185            Bit0        : BIT0_OFF,
   186            Bit1        : BIT1_OFF,
   187            Bit2        : BIT2_OFF,
   188            Bit3        : BIT3_OFF,
   189            Bit4        : BIT4_OFF,
   190            Bit5        : BIT5_OFF,
   191            Bit6        : BIT6_OFF,
   192            Bit7        : BIT7_OFF
   193        };
   194
   195        /*! Port 3 Output Register */
   196        config GpioBits8PxOut_t P3OUT = {
   197            Bit0        : BIT0_OFF,
   198            Bit1        : BIT1_OFF,
   199            Bit2        : BIT2_OFF,
   200            Bit3        : BIT3_OFF,
   201            Bit4        : BIT4_OFF,
   202            Bit5        : BIT5_OFF,
   203            Bit6        : BIT6_OFF,
   204            Bit7        : BIT7_OFF
   205        };
   206
   207        /*! Port 3 Port Select Register */
   208        config GpioBits8PxSel_t P3SEL = {
   209            Bit0        : BIT0_OFF,
   210            Bit1        : BIT1_OFF,
   211            Bit2        : BIT2_OFF,
   212            Bit3        : BIT3_OFF,
   213            Bit4        : BIT4_OFF,
   214            Bit5        : BIT5_OFF,
   215            Bit6        : BIT6_OFF,
   216            Bit7        : BIT7_OFF
   217        };
   218
   219        /*! Port 3 Port Select 2 Register */
   220        config GpioBits8PxSel2_t P3SEL2 = {
   221            Bit0        : BIT0_OFF,
   222            Bit1        : BIT1_OFF,
   223            Bit2        : BIT2_OFF,
   224            Bit3        : BIT3_OFF,
   225            Bit4        : BIT4_OFF,
   226            Bit5        : BIT5_OFF,
   227            Bit6        : BIT6_OFF,
   228            Bit7        : BIT7_OFF
   229        };
   230
   231        /*! Port 3 Direction Register */
   232        config GpioBits8PxDir_t P3DIR = {
   233            Bit0        : BIT0_OFF,
   234            Bit1        : BIT1_OFF,
   235            Bit2        : BIT2_OFF,
   236            Bit3        : BIT3_OFF,
   237            Bit4        : BIT4_OFF,
   238            Bit5        : BIT5_OFF,
   239            Bit6        : BIT6_OFF,
   240            Bit7        : BIT7_OFF
   241        };
   242
   243        /*! Port 3 Resistor Enable Register */
   244        config GpioBits8PxRen_t P3REN = {
   245            Bit0        : BIT0_OFF,
   246            Bit1        : BIT1_OFF,
   247            Bit2        : BIT2_OFF,
   248            Bit3        : BIT3_OFF,
   249            Bit4        : BIT4_OFF,
   250            Bit5        : BIT5_OFF,
   251            Bit6        : BIT6_OFF,
   252            Bit7        : BIT7_OFF
   253        };
   254    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x11

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x11
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x11.xdc
var GPIO_MSP430G2x11 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x11');
module-wide constants & types
    values of type GPIO_MSP430G2x11.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x11.BIT0_OFF;
        const GPIO_MSP430G2x11.BIT0;
    values of type GPIO_MSP430G2x11.Bit1_t//
        const GPIO_MSP430G2x11.BIT1_OFF;
        const GPIO_MSP430G2x11.BIT1;
    values of type GPIO_MSP430G2x11.Bit2_t//
        const GPIO_MSP430G2x11.BIT2_OFF;
        const GPIO_MSP430G2x11.BIT2;
    values of type GPIO_MSP430G2x11.Bit3_t//
        const GPIO_MSP430G2x11.BIT3_OFF;
        const GPIO_MSP430G2x11.BIT3;
    values of type GPIO_MSP430G2x11.Bit4_t//
        const GPIO_MSP430G2x11.BIT4_OFF;
        const GPIO_MSP430G2x11.BIT4;
    values of type GPIO_MSP430G2x11.Bit5_t//
        const GPIO_MSP430G2x11.BIT5_OFF;
        const GPIO_MSP430G2x11.BIT5;
    values of type GPIO_MSP430G2x11.Bit6_t//
        const GPIO_MSP430G2x11.BIT6_OFF;
        const GPIO_MSP430G2x11.BIT6;
    values of type GPIO_MSP430G2x11.Bit7_t//
        const GPIO_MSP430G2x11.BIT7_OFF;
        const GPIO_MSP430G2x11.BIT7;
    values of type GPIO_MSP430G2x11.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x11.IE_OFF// Disabled;
        const GPIO_MSP430G2x11.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x11.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x11.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x11.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x11.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x11.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x11.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x11.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x11.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x11.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x11.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x11.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x11.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x11.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x11.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x11.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x11.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x11.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x11.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x11.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x11.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x11.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x11.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x11.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x11.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x11.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x11.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x11.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x11.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x11.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x11.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x11.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x11.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x11.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x11.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x11.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x11.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x11 device, there are 8 + 2 = 10 pins total = GPIO_MSP430G2x11.DevicePin_t[8][2] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x11.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x11.create// Create an instance-object(IComparator.Instance comparator, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x11.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.Bit0_t
    const GPIO_MSP430G2x11.BIT0_OFF;
    const GPIO_MSP430G2x11.BIT0;
enum GPIO_MSP430G2x11.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.Bit1_t
    const GPIO_MSP430G2x11.BIT1_OFF;
    const GPIO_MSP430G2x11.BIT1;
enum GPIO_MSP430G2x11.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.Bit2_t
    const GPIO_MSP430G2x11.BIT2_OFF;
    const GPIO_MSP430G2x11.BIT2;
enum GPIO_MSP430G2x11.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.Bit3_t
    const GPIO_MSP430G2x11.BIT3_OFF;
    const GPIO_MSP430G2x11.BIT3;
enum GPIO_MSP430G2x11.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.Bit4_t
    const GPIO_MSP430G2x11.BIT4_OFF;
    const GPIO_MSP430G2x11.BIT4;
enum GPIO_MSP430G2x11.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.Bit5_t
    const GPIO_MSP430G2x11.BIT5_OFF;
    const GPIO_MSP430G2x11.BIT5;
enum GPIO_MSP430G2x11.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.Bit6_t
    const GPIO_MSP430G2x11.BIT6_OFF;
    const GPIO_MSP430G2x11.BIT6;
enum GPIO_MSP430G2x11.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.Bit7_t
    const GPIO_MSP430G2x11.BIT7_OFF;
    const GPIO_MSP430G2x11.BIT7;
enum GPIO_MSP430G2x11.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.InterruptEnable_t
    const GPIO_MSP430G2x11.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x11.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x11.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x11.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.OutputState_t
    const GPIO_MSP430G2x11.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x11.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x11.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x11.ResEnable_t
    const GPIO_MSP430G2x11.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x11.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x11.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x11.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x11.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x11.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x11.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x11.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x11.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x11.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x11.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x11.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x11.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x11.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x11.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x11.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x11.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x11.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x11.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x11.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x11.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x11.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x11.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x11.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x11.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x11.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x11.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x11.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x11.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x11.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x11.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x11.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x11.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x11.DevicePin_t[8][2] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x11 device, there are 8 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x11.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x11.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P1DIR = GPIO_MSP430G2x11.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P1OUT = GPIO_MSP430G2x11.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P1REN = GPIO_MSP430G2x11.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P1SEL = GPIO_MSP430G2x11.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P2DIR = GPIO_MSP430G2x11.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P2OUT = GPIO_MSP430G2x11.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P2REN = GPIO_MSP430G2x11.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P2SEL = GPIO_MSP430G2x11.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x11.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x11.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.devicePinSetting = GPIO_MSP430G2x11.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430G2x11.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x11 device, there are 8 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.devicePins = GPIO_MSP430G2x11.DevicePin_t[8][2] undefined;
config GPIO_MSP430G2x11.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x11.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2x11.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x11.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x11.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x11.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x11.create(IComparator.Instance comparator, params);
// Create an instance-object
GPIO_MSP430G2x11.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x11.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x11.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x11.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x11.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x11.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:32 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x11

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    13
    14    /*!
    15     *  ======== GPIO for MSP430G2x11 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430G2x11 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral.
    22         */
    23        create(Comparator.Instance comparator);
    24
    25    instance:
    26        /*! @_nodoc */
    27        config Comparator.Instance comparator;
    28
    29       /*! Define an array to describe all device pins. The 1st dimension
    30        *  denotes the port, the second the pin on that port. On an
    31        *  MSP430G2x11 device, there are 8 + 2 = 10 pins total.
    32        */
    33
    34        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    35         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    36        /* TODO: For this device the config variable definition has been moved into the
    37         * corresponding XS file due to its size. This needs a more consistent solution. */
    38        config DevicePin_t devicePins[2][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT" , regForceSet : true  },
    47            { register : "P1SEL" , regForceSet : false },
    48            { register : "P1DIR" , regForceSet : true  },
    49            { register : "P1REN" , regForceSet : false },
    50            { register : "P1IES" , regForceSet : true },
    51            { register : "P1IFG" , regForceSet : true },
    52            { register : "P1IE"  , regForceSet : false },
    53            { register : "P2OUT" , regForceSet : true  },
    54            { register : "P2SEL" , regForceSet : false },
    55            { register : "P2DIR" , regForceSet : true  },
    56            { register : "P2REN" , regForceSet : false },
    57            { register : "P2IES" , regForceSet : true },
    58            { register : "P2IFG" , regForceSet : true },
    59            { register : "P2IE"  , regForceSet : false }
    60        ];
    61
    62        /*
    63         *  GPIO Digital I/O Registers
    64         *
    65         *  One GIPO instance defines the configuration of an entire,
    66         *  8-bit wide digital I/O port.
    67         */
    68
    69        /*! Port 1 Output Register */
    70        config GpioBits8PxOut_t P1OUT = {
    71            Bit0        : BIT0_OFF,
    72            Bit1        : BIT1_OFF,
    73            Bit2        : BIT2_OFF,
    74            Bit3        : BIT3_OFF,
    75            Bit4        : BIT4_OFF,
    76            Bit5        : BIT5_OFF,
    77            Bit6        : BIT6_OFF,
    78            Bit7        : BIT7_OFF
    79        };
    80
    81        /*! Port 1 Port Select Register */
    82        config GpioBits8PxSel_t P1SEL = {
    83            Bit0        : BIT0_OFF,
    84            Bit1        : BIT1_OFF,
    85            Bit2        : BIT2_OFF,
    86            Bit3        : BIT3_OFF,
    87            Bit4        : BIT4_OFF,
    88            Bit5        : BIT5_OFF,
    89            Bit6        : BIT6_OFF,
    90            Bit7        : BIT7_OFF
    91        };
    92
    93        /*! Port 1 Direction Register */
    94        config GpioBits8PxDir_t P1DIR = {
    95            Bit0        : BIT0_OFF,
    96            Bit1        : BIT1_OFF,
    97            Bit2        : BIT2_OFF,
    98            Bit3        : BIT3_OFF,
    99            Bit4        : BIT4_OFF,
   100            Bit5        : BIT5_OFF,
   101            Bit6        : BIT6_OFF,
   102            Bit7        : BIT7_OFF
   103        };
   104
   105        /*! Port 1 Resistor Enable Register */
   106        config GpioBits8PxRen_t P1REN = {
   107            Bit0        : BIT0_OFF,
   108            Bit1        : BIT1_OFF,
   109            Bit2        : BIT2_OFF,
   110            Bit3        : BIT3_OFF,
   111            Bit4        : BIT4_OFF,
   112            Bit5        : BIT5_OFF,
   113            Bit6        : BIT6_OFF,
   114            Bit7        : BIT7_OFF
   115        };
   116
   117        /*! Port 2 Output Register */
   118        config GpioBits8PxOut_t P2OUT = {
   119            Bit0        : BIT0_OFF,
   120            Bit1        : BIT1_OFF,
   121            Bit2        : BIT2_OFF,
   122            Bit3        : BIT3_OFF,
   123            Bit4        : BIT4_OFF,
   124            Bit5        : BIT5_OFF,
   125            Bit6        : BIT6_OFF,
   126            Bit7        : BIT7_OFF
   127        };
   128
   129        /*! Port 2 Port Select Register */
   130        config GpioBits8PxSel_t P2SEL = {
   131            Bit0        : BIT0_OFF,
   132            Bit1        : BIT1_OFF,
   133            Bit2        : BIT2_OFF,
   134            Bit3        : BIT3_OFF,
   135            Bit4        : BIT4_OFF,
   136            Bit5        : BIT5_OFF,
   137            Bit6        : BIT6,         /* POR default for all 2xx devices */
   138            Bit7        : BIT7          /* POR default for all 2xx devices */
   139        };
   140
   141        /*! Port 2 Direction Register */
   142        config GpioBits8PxDir_t P2DIR = {
   143            Bit0        : BIT0_OFF,
   144            Bit1        : BIT1_OFF,
   145            Bit2        : BIT2_OFF,
   146            Bit3        : BIT3_OFF,
   147            Bit4        : BIT4_OFF,
   148            Bit5        : BIT5_OFF,
   149            Bit6        : BIT6_OFF,
   150            Bit7        : BIT7_OFF
   151        };
   152
   153        /*! Port 2 Resistor Enable Register */
   154        config GpioBits8PxRen_t P2REN = {
   155            Bit0        : BIT0_OFF,
   156            Bit1        : BIT1_OFF,
   157            Bit2        : BIT2_OFF,
   158            Bit3        : BIT3_OFF,
   159            Bit4        : BIT4_OFF,
   160            Bit5        : BIT5_OFF,
   161            Bit6        : BIT6_OFF,
   162            Bit7        : BIT7_OFF
   163        };
   164    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x12

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x12
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x12.xdc
var GPIO_MSP430G2x12 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x12');
module-wide constants & types
    values of type GPIO_MSP430G2x12.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x12.BIT0_OFF;
        const GPIO_MSP430G2x12.BIT0;
    values of type GPIO_MSP430G2x12.Bit1_t//
        const GPIO_MSP430G2x12.BIT1_OFF;
        const GPIO_MSP430G2x12.BIT1;
    values of type GPIO_MSP430G2x12.Bit2_t//
        const GPIO_MSP430G2x12.BIT2_OFF;
        const GPIO_MSP430G2x12.BIT2;
    values of type GPIO_MSP430G2x12.Bit3_t//
        const GPIO_MSP430G2x12.BIT3_OFF;
        const GPIO_MSP430G2x12.BIT3;
    values of type GPIO_MSP430G2x12.Bit4_t//
        const GPIO_MSP430G2x12.BIT4_OFF;
        const GPIO_MSP430G2x12.BIT4;
    values of type GPIO_MSP430G2x12.Bit5_t//
        const GPIO_MSP430G2x12.BIT5_OFF;
        const GPIO_MSP430G2x12.BIT5;
    values of type GPIO_MSP430G2x12.Bit6_t//
        const GPIO_MSP430G2x12.BIT6_OFF;
        const GPIO_MSP430G2x12.BIT6;
    values of type GPIO_MSP430G2x12.Bit7_t//
        const GPIO_MSP430G2x12.BIT7_OFF;
        const GPIO_MSP430G2x12.BIT7;
    values of type GPIO_MSP430G2x12.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x12.IE_OFF// Disabled;
        const GPIO_MSP430G2x12.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x12.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x12.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x12.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x12.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x12.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x12.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x12.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x12.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x12.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x12.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x12.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x12.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x12.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x12.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x12.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x12.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x12.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x12.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x12.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x12.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x12.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x12.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x12.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x12.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x12.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x12.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x12.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x12.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x12.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x12.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x12.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL2// Port 1 Port Select 2 Register = GPIO_MSP430G2x12.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x12.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x12.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x12.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x12.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P2SEL2// Port 2 Port Select 2 Register = GPIO_MSP430G2x12.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x12.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x12 device, there are 8 + 8 = 16 pins total = GPIO_MSP430G2x12.DevicePin_t[8][2] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x12.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1SEL2",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2SEL2",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x12.create// Create an instance-object(USI.Instance usi, IComparator.Instance comparator, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x12.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.Bit0_t
    const GPIO_MSP430G2x12.BIT0_OFF;
    const GPIO_MSP430G2x12.BIT0;
enum GPIO_MSP430G2x12.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.Bit1_t
    const GPIO_MSP430G2x12.BIT1_OFF;
    const GPIO_MSP430G2x12.BIT1;
enum GPIO_MSP430G2x12.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.Bit2_t
    const GPIO_MSP430G2x12.BIT2_OFF;
    const GPIO_MSP430G2x12.BIT2;
enum GPIO_MSP430G2x12.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.Bit3_t
    const GPIO_MSP430G2x12.BIT3_OFF;
    const GPIO_MSP430G2x12.BIT3;
enum GPIO_MSP430G2x12.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.Bit4_t
    const GPIO_MSP430G2x12.BIT4_OFF;
    const GPIO_MSP430G2x12.BIT4;
enum GPIO_MSP430G2x12.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.Bit5_t
    const GPIO_MSP430G2x12.BIT5_OFF;
    const GPIO_MSP430G2x12.BIT5;
enum GPIO_MSP430G2x12.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.Bit6_t
    const GPIO_MSP430G2x12.BIT6_OFF;
    const GPIO_MSP430G2x12.BIT6;
enum GPIO_MSP430G2x12.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.Bit7_t
    const GPIO_MSP430G2x12.BIT7_OFF;
    const GPIO_MSP430G2x12.BIT7;
enum GPIO_MSP430G2x12.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.InterruptEnable_t
    const GPIO_MSP430G2x12.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x12.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x12.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x12.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.OutputState_t
    const GPIO_MSP430G2x12.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x12.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x12.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x12.ResEnable_t
    const GPIO_MSP430G2x12.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x12.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x12.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x12.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x12.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x12.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x12.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x12.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x12.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x12.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x12.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x12.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x12.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x12.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x12.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x12.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x12.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x12.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x12.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x12.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x12.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x12.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x12.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x12.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x12.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x12.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x12.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x12.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL2 = GPIO_MSP430G2x12.GpioBits8PxSel2_t {
    // Port 1 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x12.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x12.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x12.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x12.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P2SEL2 = GPIO_MSP430G2x12.GpioBits8PxSel2_t {
    // Port 2 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x12.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x12.DevicePin_t[8][2] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x12 device, there are 8 + 8 = 16 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x12.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1SEL2",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2SEL2",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x12.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P1DIR = GPIO_MSP430G2x12.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P1OUT = GPIO_MSP430G2x12.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P1REN = GPIO_MSP430G2x12.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P1SEL = GPIO_MSP430G2x12.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P1SEL2 // instance
index URL

Port 1 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P1SEL2 = GPIO_MSP430G2x12.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P2DIR = GPIO_MSP430G2x12.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P2OUT = GPIO_MSP430G2x12.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P2REN = GPIO_MSP430G2x12.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P2SEL = GPIO_MSP430G2x12.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x12.P2SEL2 // instance
index URL

Port 2 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P2SEL2 = GPIO_MSP430G2x12.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x12.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.devicePinSetting = GPIO_MSP430G2x12.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430G2x12.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x12 device, there are 8 + 8 = 16 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.devicePins = GPIO_MSP430G2x12.DevicePin_t[8][2] undefined;
config GPIO_MSP430G2x12.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x12.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1SEL2",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2SEL2",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2x12.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x12.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x12.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x12.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x12.create(USI.Instance usi, IComparator.Instance comparator, params);
// Create an instance-object
GPIO_MSP430G2x12.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x12.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x12.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x12.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x12.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x12.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:32 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x12

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.communication.USI as USI;
    13    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    14
    15    /*!
    16     *  ======== GPIO for MSP430G2x12 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430G2x12 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of these peripherals.
    23         */
    24        create(USI.Instance usi, Comparator.Instance comparator);
    25
    26    instance:
    27        /*! @_nodoc */
    28        config USI.Instance usi;
    29
    30        /*! @_nodoc */
    31        config Comparator.Instance comparator;
    32
    33       /*! Define an array to describe all device pins. The 1st dimension
    34        *  denotes the port, the second the pin on that port. On an
    35        *  MSP430G2x12 device, there are 8 + 8 = 16 pins total.
    36        */
    37
    38        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    39         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    40        /* TODO: For this device the config variable definition has been moved into the
    41         * corresponding XS file due to its size. This needs a more consistent solution. */
    42        config DevicePin_t devicePins[2][8];
    43
    44        /*! Implementation of Device Pin Functional Configuration */
    45        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
    46
    47        /*! Determine if each Register needs to be forced set or not */
    48        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    49        [
    50            { register : "P1OUT" , regForceSet : true  },
    51            { register : "P1SEL" , regForceSet : false },
    52            { register : "P1SEL2", regForceSet : false },
    53            { register : "P1DIR" , regForceSet : true  },
    54            { register : "P1REN" , regForceSet : false },
    55            { register : "P1IES" , regForceSet : true },
    56            { register : "P1IFG" , regForceSet : true },
    57            { register : "P1IE"  , regForceSet : false },
    58            { register : "P2OUT" , regForceSet : true  },
    59            { register : "P2SEL" , regForceSet : false },
    60            { register : "P2SEL2", regForceSet : false },
    61            { register : "P2DIR" , regForceSet : true  },
    62            { register : "P2REN" , regForceSet : false },
    63            { register : "P2IES" , regForceSet : true },
    64            { register : "P2IFG" , regForceSet : true },
    65            { register : "P2IE"  , regForceSet : false }
    66        ];
    67
    68        /*
    69         *  GPIO Digital I/O Registers
    70         *
    71         *  One GIPO instance defines the configuration of an entire,
    72         *  8-bit wide digital I/O port.
    73         */
    74
    75        /*! Port 1 Output Register */
    76        config GpioBits8PxOut_t P1OUT = {
    77            Bit0        : BIT0_OFF,
    78            Bit1        : BIT1_OFF,
    79            Bit2        : BIT2_OFF,
    80            Bit3        : BIT3_OFF,
    81            Bit4        : BIT4_OFF,
    82            Bit5        : BIT5_OFF,
    83            Bit6        : BIT6_OFF,
    84            Bit7        : BIT7_OFF
    85        };
    86
    87        /*! Port 1 Port Select Register */
    88        config GpioBits8PxSel_t P1SEL = {
    89            Bit0        : BIT0_OFF,
    90            Bit1        : BIT1_OFF,
    91            Bit2        : BIT2_OFF,
    92            Bit3        : BIT3_OFF,
    93            Bit4        : BIT4_OFF,
    94            Bit5        : BIT5_OFF,
    95            Bit6        : BIT6_OFF,
    96            Bit7        : BIT7_OFF
    97        };
    98
    99        /*! Port 1 Port Select 2 Register */
   100        config GpioBits8PxSel2_t P1SEL2 = {
   101            Bit0        : BIT0_OFF,
   102            Bit1        : BIT1_OFF,
   103            Bit2        : BIT2_OFF,
   104            Bit3        : BIT3_OFF,
   105            Bit4        : BIT4_OFF,
   106            Bit5        : BIT5_OFF,
   107            Bit6        : BIT6_OFF,
   108            Bit7        : BIT7_OFF
   109        };
   110
   111        /*! Port 1 Direction Register */
   112        config GpioBits8PxDir_t P1DIR = {
   113            Bit0        : BIT0_OFF,
   114            Bit1        : BIT1_OFF,
   115            Bit2        : BIT2_OFF,
   116            Bit3        : BIT3_OFF,
   117            Bit4        : BIT4_OFF,
   118            Bit5        : BIT5_OFF,
   119            Bit6        : BIT6_OFF,
   120            Bit7        : BIT7_OFF
   121        };
   122
   123        /*! Port 1 Resistor Enable Register */
   124        config GpioBits8PxRen_t P1REN = {
   125            Bit0        : BIT0_OFF,
   126            Bit1        : BIT1_OFF,
   127            Bit2        : BIT2_OFF,
   128            Bit3        : BIT3_OFF,
   129            Bit4        : BIT4_OFF,
   130            Bit5        : BIT5_OFF,
   131            Bit6        : BIT6_OFF,
   132            Bit7        : BIT7_OFF
   133        };
   134
   135        /*! Port 2 Output Register */
   136        config GpioBits8PxOut_t P2OUT = {
   137            Bit0        : BIT0_OFF,
   138            Bit1        : BIT1_OFF,
   139            Bit2        : BIT2_OFF,
   140            Bit3        : BIT3_OFF,
   141            Bit4        : BIT4_OFF,
   142            Bit5        : BIT5_OFF,
   143            Bit6        : BIT6_OFF,
   144            Bit7        : BIT7_OFF
   145        };
   146
   147        /*! Port 2 Port Select Register */
   148        config GpioBits8PxSel_t P2SEL = {
   149            Bit0        : BIT0_OFF,
   150            Bit1        : BIT1_OFF,
   151            Bit2        : BIT2_OFF,
   152            Bit3        : BIT3_OFF,
   153            Bit4        : BIT4_OFF,
   154            Bit5        : BIT5_OFF,
   155            Bit6        : BIT6,         /* POR default for all 2xx devices */
   156            Bit7        : BIT7          /* POR default for all 2xx devices */
   157        };
   158
   159        /*! Port 2 Port Select 2 Register */
   160        config GpioBits8PxSel2_t P2SEL2 = {
   161            Bit0        : BIT0_OFF,
   162            Bit1        : BIT1_OFF,
   163            Bit2        : BIT2_OFF,
   164            Bit3        : BIT3_OFF,
   165            Bit4        : BIT4_OFF,
   166            Bit5        : BIT5_OFF,
   167            Bit6        : BIT6_OFF,
   168            Bit7        : BIT7_OFF
   169        };
   170
   171        /*! Port 2 Direction Register */
   172        config GpioBits8PxDir_t P2DIR = {
   173            Bit0        : BIT0_OFF,
   174            Bit1        : BIT1_OFF,
   175            Bit2        : BIT2_OFF,
   176            Bit3        : BIT3_OFF,
   177            Bit4        : BIT4_OFF,
   178            Bit5        : BIT5_OFF,
   179            Bit6        : BIT6_OFF,
   180            Bit7        : BIT7_OFF
   181        };
   182
   183        /*! Port 2 Resistor Enable Register */
   184        config GpioBits8PxRen_t P2REN = {
   185            Bit0        : BIT0_OFF,
   186            Bit1        : BIT1_OFF,
   187            Bit2        : BIT2_OFF,
   188            Bit3        : BIT3_OFF,
   189            Bit4        : BIT4_OFF,
   190            Bit5        : BIT5_OFF,
   191            Bit6        : BIT6_OFF,
   192            Bit7        : BIT7_OFF
   193        };
   194    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x13

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x13
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x13.xdc
var GPIO_MSP430G2x13 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x13');
module-wide constants & types
    values of type GPIO_MSP430G2x13.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x13.BIT0_OFF;
        const GPIO_MSP430G2x13.BIT0;
    values of type GPIO_MSP430G2x13.Bit1_t//
        const GPIO_MSP430G2x13.BIT1_OFF;
        const GPIO_MSP430G2x13.BIT1;
    values of type GPIO_MSP430G2x13.Bit2_t//
        const GPIO_MSP430G2x13.BIT2_OFF;
        const GPIO_MSP430G2x13.BIT2;
    values of type GPIO_MSP430G2x13.Bit3_t//
        const GPIO_MSP430G2x13.BIT3_OFF;
        const GPIO_MSP430G2x13.BIT3;
    values of type GPIO_MSP430G2x13.Bit4_t//
        const GPIO_MSP430G2x13.BIT4_OFF;
        const GPIO_MSP430G2x13.BIT4;
    values of type GPIO_MSP430G2x13.Bit5_t//
        const GPIO_MSP430G2x13.BIT5_OFF;
        const GPIO_MSP430G2x13.BIT5;
    values of type GPIO_MSP430G2x13.Bit6_t//
        const GPIO_MSP430G2x13.BIT6_OFF;
        const GPIO_MSP430G2x13.BIT6;
    values of type GPIO_MSP430G2x13.Bit7_t//
        const GPIO_MSP430G2x13.BIT7_OFF;
        const GPIO_MSP430G2x13.BIT7;
    values of type GPIO_MSP430G2x13.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x13.IE_OFF// Disabled;
        const GPIO_MSP430G2x13.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x13.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x13.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x13.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x13.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x13.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x13.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x13.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x13.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x13.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x13.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x13.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x13.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x13.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x13.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x13.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x13.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x13.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x13.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x13.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x13.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x13.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x13.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x13.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x13.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x13.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x13.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x13.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x13.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x13.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x13.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x13.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL2// Port 1 Port Select 2 Register = GPIO_MSP430G2x13.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x13.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x13.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x13.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x13.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P2SEL2// Port 2 Port Select 2 Register = GPIO_MSP430G2x13.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430G2x13.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430G2x13.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430G2x13.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430G2x13.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL2// Port 3 Port Select 2 Register = GPIO_MSP430G2x13.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x13.DevicePinFunctionSetting_t[8][3] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x13 device, there are 3 x 8 = 24 pins total = GPIO_MSP430G2x13.DevicePin_t[8][3] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x13.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1SEL2",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2SEL2",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3SEL2",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x13.create// Create an instance-object(IComparator.Instance comparator, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x13.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.Bit0_t
    const GPIO_MSP430G2x13.BIT0_OFF;
    const GPIO_MSP430G2x13.BIT0;
enum GPIO_MSP430G2x13.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.Bit1_t
    const GPIO_MSP430G2x13.BIT1_OFF;
    const GPIO_MSP430G2x13.BIT1;
enum GPIO_MSP430G2x13.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.Bit2_t
    const GPIO_MSP430G2x13.BIT2_OFF;
    const GPIO_MSP430G2x13.BIT2;
enum GPIO_MSP430G2x13.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.Bit3_t
    const GPIO_MSP430G2x13.BIT3_OFF;
    const GPIO_MSP430G2x13.BIT3;
enum GPIO_MSP430G2x13.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.Bit4_t
    const GPIO_MSP430G2x13.BIT4_OFF;
    const GPIO_MSP430G2x13.BIT4;
enum GPIO_MSP430G2x13.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.Bit5_t
    const GPIO_MSP430G2x13.BIT5_OFF;
    const GPIO_MSP430G2x13.BIT5;
enum GPIO_MSP430G2x13.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.Bit6_t
    const GPIO_MSP430G2x13.BIT6_OFF;
    const GPIO_MSP430G2x13.BIT6;
enum GPIO_MSP430G2x13.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.Bit7_t
    const GPIO_MSP430G2x13.BIT7_OFF;
    const GPIO_MSP430G2x13.BIT7;
enum GPIO_MSP430G2x13.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.InterruptEnable_t
    const GPIO_MSP430G2x13.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x13.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x13.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x13.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.OutputState_t
    const GPIO_MSP430G2x13.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x13.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x13.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x13.ResEnable_t
    const GPIO_MSP430G2x13.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x13.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x13.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x13.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x13.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x13.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x13.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x13.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x13.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x13.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x13.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x13.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x13.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x13.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x13.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x13.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x13.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x13.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x13.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x13.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x13.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x13.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x13.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x13.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x13.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x13.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x13.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x13.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL2 = GPIO_MSP430G2x13.GpioBits8PxSel_t {
    // Port 1 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x13.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x13.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x13.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x13.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P2SEL2 = GPIO_MSP430G2x13.GpioBits8PxSel2_t {
    // Port 2 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430G2x13.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430G2x13.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430G2x13.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430G2x13.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL2 = GPIO_MSP430G2x13.GpioBits8PxSel2_t {
    // Port 3 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x13.DevicePinFunctionSetting_t[8][3] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x13.DevicePin_t[8][3] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x13 device, there are 3 x 8 = 24 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x13.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1SEL2",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2SEL2",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3SEL2",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x13.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P1DIR = GPIO_MSP430G2x13.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P1OUT = GPIO_MSP430G2x13.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P1REN = GPIO_MSP430G2x13.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P1SEL = GPIO_MSP430G2x13.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P1SEL2 // instance
index URL

Port 1 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P1SEL2 = GPIO_MSP430G2x13.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P2DIR = GPIO_MSP430G2x13.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P2OUT = GPIO_MSP430G2x13.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P2REN = GPIO_MSP430G2x13.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P2SEL = GPIO_MSP430G2x13.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x13.P2SEL2 // instance
index URL

Port 2 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P2SEL2 = GPIO_MSP430G2x13.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P3DIR = GPIO_MSP430G2x13.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P3OUT = GPIO_MSP430G2x13.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P3REN = GPIO_MSP430G2x13.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P3SEL = GPIO_MSP430G2x13.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P3SEL2 // instance
index URL

Port 3 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P3SEL2 = GPIO_MSP430G2x13.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x13.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.devicePinSetting = GPIO_MSP430G2x13.DevicePinFunctionSetting_t[8][3] undefined;
config GPIO_MSP430G2x13.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x13 device, there are 3 x 8 = 24 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.devicePins = GPIO_MSP430G2x13.DevicePin_t[8][3] undefined;
config GPIO_MSP430G2x13.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x13.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1SEL2",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2SEL2",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3SEL2",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    }
];
config GPIO_MSP430G2x13.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x13.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x13.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x13.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x13.create(IComparator.Instance comparator, params);
// Create an instance-object
GPIO_MSP430G2x13.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x13.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x13.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x13.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x13.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x13.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:33 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x13

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    13
    14    /*!
    15     *  ======== GPIO for MSP430G2x13 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430G2x13 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral. Use a customized
    22         *  init function so that we can get access to the Comparator
    23         *  instance.
    24         */
    25        create(Comparator.Instance comparator);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config Comparator.Instance comparator;
    30
    31       /*! Define an array to describe all device pins. The 1st dimension
    32        *  denotes the port, the second the pin on that port. On an
    33        *  MSP430G2x13 device, there are 3 x 8 = 24 pins total.
    34        */
    35
    36        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    37         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    38        /* TODO: For this device the config variable definition has been moved into the
    39         * corresponding XS file due to its size. This needs a more consistent solution. */
    40        config DevicePin_t devicePins[3][8];
    41
    42        /*! Implementation of Device Pin Functional Configuration */
    43        override config DevicePinFunctionSetting_t devicePinSetting[3][8];
    44
    45        /*! Determine if each Register needs to be forced set or not */
    46        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    47        [
    48            { register : "P1OUT" , regForceSet : true  },
    49            { register : "P1SEL" , regForceSet : false },
    50            { register : "P1SEL2", regForceSet : false },
    51            { register : "P1DIR" , regForceSet : true  },
    52            { register : "P1REN" , regForceSet : false },
    53            { register : "P1IES" , regForceSet : true  },
    54            { register : "P1IFG" , regForceSet : true  },
    55            { register : "P1IE"  , regForceSet : false },
    56            { register : "P2OUT" , regForceSet : true  },
    57            { register : "P2SEL" , regForceSet : false },
    58            { register : "P2SEL2", regForceSet : false },
    59            { register : "P2DIR" , regForceSet : true  },
    60            { register : "P2REN" , regForceSet : false },
    61            { register : "P2IES" , regForceSet : true  },
    62            { register : "P2IFG" , regForceSet : true  },
    63            { register : "P2IE"  , regForceSet : false },
    64            { register : "P3OUT" , regForceSet : true  },
    65            { register : "P3SEL" , regForceSet : false },
    66            { register : "P3SEL2", regForceSet : false },
    67            { register : "P3DIR" , regForceSet : true  },
    68            { register : "P3REN" , regForceSet : false },
    69        ];
    70
    71        /*
    72         *  GPIO Digital I/O Registers
    73         *
    74         *  One GIPO instance defines the configuration of an entire,
    75         *  8-bit wide digital I/O port.
    76         */
    77
    78        /*! Port 1 Output Register */
    79        config GpioBits8PxOut_t P1OUT = {
    80            Bit0        : BIT0_OFF,
    81            Bit1        : BIT1_OFF,
    82            Bit2        : BIT2_OFF,
    83            Bit3        : BIT3_OFF,
    84            Bit4        : BIT4_OFF,
    85            Bit5        : BIT5_OFF,
    86            Bit6        : BIT6_OFF,
    87            Bit7        : BIT7_OFF
    88        };
    89
    90        /*! Port 1 Port Select Register */
    91        config GpioBits8PxSel_t P1SEL = {
    92            Bit0        : BIT0_OFF,
    93            Bit1        : BIT1_OFF,
    94            Bit2        : BIT2_OFF,
    95            Bit3        : BIT3_OFF,
    96            Bit4        : BIT4_OFF,
    97            Bit5        : BIT5_OFF,
    98            Bit6        : BIT6_OFF,
    99            Bit7        : BIT7_OFF
   100        };
   101
   102        /*! Port 1 Port Select 2 Register */
   103        config GpioBits8PxSel_t P1SEL2 = {
   104            Bit0        : BIT0_OFF,
   105            Bit1        : BIT1_OFF,
   106            Bit2        : BIT2_OFF,
   107            Bit3        : BIT3_OFF,
   108            Bit4        : BIT4_OFF,
   109            Bit5        : BIT5_OFF,
   110            Bit6        : BIT6_OFF,
   111            Bit7        : BIT7_OFF
   112        };
   113
   114        /*! Port 1 Direction Register */
   115        config GpioBits8PxDir_t P1DIR = {
   116            Bit0        : BIT0_OFF,
   117            Bit1        : BIT1_OFF,
   118            Bit2        : BIT2_OFF,
   119            Bit3        : BIT3_OFF,
   120            Bit4        : BIT4_OFF,
   121            Bit5        : BIT5_OFF,
   122            Bit6        : BIT6_OFF,
   123            Bit7        : BIT7_OFF
   124        };
   125
   126        /*! Port 1 Resistor Enable Register */
   127        config GpioBits8PxRen_t P1REN = {
   128            Bit0        : BIT0_OFF,
   129            Bit1        : BIT1_OFF,
   130            Bit2        : BIT2_OFF,
   131            Bit3        : BIT3_OFF,
   132            Bit4        : BIT4_OFF,
   133            Bit5        : BIT5_OFF,
   134            Bit6        : BIT6_OFF,
   135            Bit7        : BIT7_OFF
   136        };
   137
   138        /*! Port 2 Output Register */
   139        config GpioBits8PxOut_t P2OUT = {
   140            Bit0        : BIT0_OFF,
   141            Bit1        : BIT1_OFF,
   142            Bit2        : BIT2_OFF,
   143            Bit3        : BIT3_OFF,
   144            Bit4        : BIT4_OFF,
   145            Bit5        : BIT5_OFF,
   146            Bit6        : BIT6_OFF,
   147            Bit7        : BIT7_OFF
   148        };
   149
   150        /*! Port 2 Port Select Register */
   151        config GpioBits8PxSel_t P2SEL = {
   152            Bit0        : BIT0_OFF,
   153            Bit1        : BIT1_OFF,
   154            Bit2        : BIT2_OFF,
   155            Bit3        : BIT3_OFF,
   156            Bit4        : BIT4_OFF,
   157            Bit5        : BIT5_OFF,
   158            Bit6        : BIT6,         /* POR default for all 2xx devices */
   159            Bit7        : BIT7          /* POR default for all 2xx devices */
   160        };
   161
   162        /*! Port 2 Port Select 2 Register */
   163        config GpioBits8PxSel2_t P2SEL2 = {
   164            Bit0        : BIT0_OFF,
   165            Bit1        : BIT1_OFF,
   166            Bit2        : BIT2_OFF,
   167            Bit3        : BIT3_OFF,
   168            Bit4        : BIT4_OFF,
   169            Bit5        : BIT5_OFF,
   170            Bit6        : BIT6_OFF,
   171            Bit7        : BIT7_OFF
   172        };
   173
   174        /*! Port 2 Direction Register */
   175        config GpioBits8PxDir_t P2DIR = {
   176            Bit0        : BIT0_OFF,
   177            Bit1        : BIT1_OFF,
   178            Bit2        : BIT2_OFF,
   179            Bit3        : BIT3_OFF,
   180            Bit4        : BIT4_OFF,
   181            Bit5        : BIT5_OFF,
   182            Bit6        : BIT6_OFF,
   183            Bit7        : BIT7_OFF
   184        };
   185
   186        /*! Port 2 Resistor Enable Register */
   187        config GpioBits8PxRen_t P2REN = {
   188            Bit0        : BIT0_OFF,
   189            Bit1        : BIT1_OFF,
   190            Bit2        : BIT2_OFF,
   191            Bit3        : BIT3_OFF,
   192            Bit4        : BIT4_OFF,
   193            Bit5        : BIT5_OFF,
   194            Bit6        : BIT6_OFF,
   195            Bit7        : BIT7_OFF
   196        };
   197
   198        /*! Port 3 Output Register */
   199        config GpioBits8PxOut_t P3OUT = {
   200            Bit0        : BIT0_OFF,
   201            Bit1        : BIT1_OFF,
   202            Bit2        : BIT2_OFF,
   203            Bit3        : BIT3_OFF,
   204            Bit4        : BIT4_OFF,
   205            Bit5        : BIT5_OFF,
   206            Bit6        : BIT6_OFF,
   207            Bit7        : BIT7_OFF
   208        };
   209
   210        /*! Port 3 Port Select Register */
   211        config GpioBits8PxSel_t P3SEL = {
   212            Bit0        : BIT0_OFF,
   213            Bit1        : BIT1_OFF,
   214            Bit2        : BIT2_OFF,
   215            Bit3        : BIT3_OFF,
   216            Bit4        : BIT4_OFF,
   217            Bit5        : BIT5_OFF,
   218            Bit6        : BIT6_OFF,
   219            Bit7        : BIT7_OFF
   220        };
   221
   222        /*! Port 3 Port Select 2 Register */
   223        config GpioBits8PxSel2_t P3SEL2 = {
   224            Bit0        : BIT0_OFF,
   225            Bit1        : BIT1_OFF,
   226            Bit2        : BIT2_OFF,
   227            Bit3        : BIT3_OFF,
   228            Bit4        : BIT4_OFF,
   229            Bit5        : BIT5_OFF,
   230            Bit6        : BIT6_OFF,
   231            Bit7        : BIT7_OFF
   232        };
   233
   234        /*! Port 3 Direction Register */
   235        config GpioBits8PxDir_t P3DIR = {
   236            Bit0        : BIT0_OFF,
   237            Bit1        : BIT1_OFF,
   238            Bit2        : BIT2_OFF,
   239            Bit3        : BIT3_OFF,
   240            Bit4        : BIT4_OFF,
   241            Bit5        : BIT5_OFF,
   242            Bit6        : BIT6_OFF,
   243            Bit7        : BIT7_OFF
   244        };
   245
   246        /*! Port 3 Resistor Enable Register */
   247        config GpioBits8PxRen_t P3REN = {
   248            Bit0        : BIT0_OFF,
   249            Bit1        : BIT1_OFF,
   250            Bit2        : BIT2_OFF,
   251            Bit3        : BIT3_OFF,
   252            Bit4        : BIT4_OFF,
   253            Bit5        : BIT5_OFF,
   254            Bit6        : BIT6_OFF,
   255            Bit7        : BIT7_OFF
   256        };
   257    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x21

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x21
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x21.xdc
var GPIO_MSP430G2x21 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x21');
module-wide constants & types
    values of type GPIO_MSP430G2x21.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x21.BIT0_OFF;
        const GPIO_MSP430G2x21.BIT0;
    values of type GPIO_MSP430G2x21.Bit1_t//
        const GPIO_MSP430G2x21.BIT1_OFF;
        const GPIO_MSP430G2x21.BIT1;
    values of type GPIO_MSP430G2x21.Bit2_t//
        const GPIO_MSP430G2x21.BIT2_OFF;
        const GPIO_MSP430G2x21.BIT2;
    values of type GPIO_MSP430G2x21.Bit3_t//
        const GPIO_MSP430G2x21.BIT3_OFF;
        const GPIO_MSP430G2x21.BIT3;
    values of type GPIO_MSP430G2x21.Bit4_t//
        const GPIO_MSP430G2x21.BIT4_OFF;
        const GPIO_MSP430G2x21.BIT4;
    values of type GPIO_MSP430G2x21.Bit5_t//
        const GPIO_MSP430G2x21.BIT5_OFF;
        const GPIO_MSP430G2x21.BIT5;
    values of type GPIO_MSP430G2x21.Bit6_t//
        const GPIO_MSP430G2x21.BIT6_OFF;
        const GPIO_MSP430G2x21.BIT6;
    values of type GPIO_MSP430G2x21.Bit7_t//
        const GPIO_MSP430G2x21.BIT7_OFF;
        const GPIO_MSP430G2x21.BIT7;
    values of type GPIO_MSP430G2x21.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x21.IE_OFF// Disabled;
        const GPIO_MSP430G2x21.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x21.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x21.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x21.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x21.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x21.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x21.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x21.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x21.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x21.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x21.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x21.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x21.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x21.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x21.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x21.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x21.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x21.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x21.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x21.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x21.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x21.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x21.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x21.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x21.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x21.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x21.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x21.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x21.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x21.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x21.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x21.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x21.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x21.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x21.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x21.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x21 device, there are 8 + 2 = 10 pins total = GPIO_MSP430G2x21.DevicePin_t[8][2] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x21.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x21.create// Create an instance-object(USI.Instance usi, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x21.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.Bit0_t
    const GPIO_MSP430G2x21.BIT0_OFF;
    const GPIO_MSP430G2x21.BIT0;
enum GPIO_MSP430G2x21.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.Bit1_t
    const GPIO_MSP430G2x21.BIT1_OFF;
    const GPIO_MSP430G2x21.BIT1;
enum GPIO_MSP430G2x21.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.Bit2_t
    const GPIO_MSP430G2x21.BIT2_OFF;
    const GPIO_MSP430G2x21.BIT2;
enum GPIO_MSP430G2x21.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.Bit3_t
    const GPIO_MSP430G2x21.BIT3_OFF;
    const GPIO_MSP430G2x21.BIT3;
enum GPIO_MSP430G2x21.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.Bit4_t
    const GPIO_MSP430G2x21.BIT4_OFF;
    const GPIO_MSP430G2x21.BIT4;
enum GPIO_MSP430G2x21.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.Bit5_t
    const GPIO_MSP430G2x21.BIT5_OFF;
    const GPIO_MSP430G2x21.BIT5;
enum GPIO_MSP430G2x21.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.Bit6_t
    const GPIO_MSP430G2x21.BIT6_OFF;
    const GPIO_MSP430G2x21.BIT6;
enum GPIO_MSP430G2x21.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.Bit7_t
    const GPIO_MSP430G2x21.BIT7_OFF;
    const GPIO_MSP430G2x21.BIT7;
enum GPIO_MSP430G2x21.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.InterruptEnable_t
    const GPIO_MSP430G2x21.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x21.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x21.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x21.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.OutputState_t
    const GPIO_MSP430G2x21.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x21.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x21.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x21.ResEnable_t
    const GPIO_MSP430G2x21.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x21.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x21.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x21.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x21.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x21.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x21.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x21.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x21.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x21.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x21.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x21.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x21.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x21.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x21.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x21.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x21.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x21.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x21.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x21.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x21.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x21.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x21.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x21.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x21.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x21.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x21.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x21.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x21.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x21.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x21.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x21.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x21.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x21.DevicePin_t[8][2] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x21 device, there are 8 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x21.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x21.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P1DIR = GPIO_MSP430G2x21.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P1OUT = GPIO_MSP430G2x21.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P1REN = GPIO_MSP430G2x21.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P1SEL = GPIO_MSP430G2x21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P2DIR = GPIO_MSP430G2x21.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P2OUT = GPIO_MSP430G2x21.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P2REN = GPIO_MSP430G2x21.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P2SEL = GPIO_MSP430G2x21.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x21.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x21.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.devicePinSetting = GPIO_MSP430G2x21.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430G2x21.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x21 device, there are 8 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.devicePins = GPIO_MSP430G2x21.DevicePin_t[8][2] undefined;
config GPIO_MSP430G2x21.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x21.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2x21.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x21.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x21.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x21.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x21.create(USI.Instance usi, params);
// Create an instance-object
GPIO_MSP430G2x21.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x21.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x21.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x21.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x21.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x21.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:33 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x21

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.communication.USI as USI;
    13
    14    /*!
    15     *  ======== GPIO for MSP430G2x21 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430G2x21 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral.
    22         */
    23        create(USI.Instance usi);
    24
    25    instance:
    26        /*! @_nodoc */
    27        config USI.Instance usi;
    28
    29       /*! Define an array to describe all device pins. The 1st dimension
    30        *  denotes the port, the second the pin on that port. On an
    31        *  MSP430G2x21 device, there are 8 + 2 = 10 pins total.
    32        */
    33
    34        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    35         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    36        /* TODO: For this device the config variable definition has been moved into the
    37         * corresponding XS file due to its size. This needs a more consistent solution. */
    38        config DevicePin_t devicePins[2][8];
    39
    40        /*! Implementation of Device Pin Functional Configuration */
    41        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
    42
    43        /*! Determine if each Register needs to be forced set or not */
    44        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    45        [
    46            { register : "P1OUT" , regForceSet : true  },
    47            { register : "P1SEL" , regForceSet : false },
    48            { register : "P1DIR" , regForceSet : true  },
    49            { register : "P1REN" , regForceSet : false },
    50            { register : "P1IES" , regForceSet : true },
    51            { register : "P1IFG" , regForceSet : true },
    52            { register : "P1IE"  , regForceSet : false },
    53            { register : "P2OUT" , regForceSet : true  },
    54            { register : "P2SEL" , regForceSet : false },
    55            { register : "P2DIR" , regForceSet : true  },
    56            { register : "P2REN" , regForceSet : false },
    57            { register : "P2IES" , regForceSet : true },
    58            { register : "P2IFG" , regForceSet : true },
    59            { register : "P2IE"  , regForceSet : false }
    60        ];
    61
    62        /*
    63         *  GPIO Digital I/O Registers
    64         *
    65         *  One GIPO instance defines the configuration of an entire,
    66         *  8-bit wide digital I/O port.
    67         */
    68
    69        /*! Port 1 Output Register */
    70        config GpioBits8PxOut_t P1OUT = {
    71            Bit0        : BIT0_OFF,
    72            Bit1        : BIT1_OFF,
    73            Bit2        : BIT2_OFF,
    74            Bit3        : BIT3_OFF,
    75            Bit4        : BIT4_OFF,
    76            Bit5        : BIT5_OFF,
    77            Bit6        : BIT6_OFF,
    78            Bit7        : BIT7_OFF
    79        };
    80
    81        /*! Port 1 Port Select Register */
    82        config GpioBits8PxSel_t P1SEL = {
    83            Bit0        : BIT0_OFF,
    84            Bit1        : BIT1_OFF,
    85            Bit2        : BIT2_OFF,
    86            Bit3        : BIT3_OFF,
    87            Bit4        : BIT4_OFF,
    88            Bit5        : BIT5_OFF,
    89            Bit6        : BIT6_OFF,
    90            Bit7        : BIT7_OFF
    91        };
    92
    93        /*! Port 1 Direction Register */
    94        config GpioBits8PxDir_t P1DIR = {
    95            Bit0        : BIT0_OFF,
    96            Bit1        : BIT1_OFF,
    97            Bit2        : BIT2_OFF,
    98            Bit3        : BIT3_OFF,
    99            Bit4        : BIT4_OFF,
   100            Bit5        : BIT5_OFF,
   101            Bit6        : BIT6_OFF,
   102            Bit7        : BIT7_OFF
   103        };
   104
   105        /*! Port 1 Resistor Enable Register */
   106        config GpioBits8PxRen_t P1REN = {
   107            Bit0        : BIT0_OFF,
   108            Bit1        : BIT1_OFF,
   109            Bit2        : BIT2_OFF,
   110            Bit3        : BIT3_OFF,
   111            Bit4        : BIT4_OFF,
   112            Bit5        : BIT5_OFF,
   113            Bit6        : BIT6_OFF,
   114            Bit7        : BIT7_OFF
   115        };
   116
   117        /*! Port 2 Output Register */
   118        config GpioBits8PxOut_t P2OUT = {
   119            Bit0        : BIT0_OFF,
   120            Bit1        : BIT1_OFF,
   121            Bit2        : BIT2_OFF,
   122            Bit3        : BIT3_OFF,
   123            Bit4        : BIT4_OFF,
   124            Bit5        : BIT5_OFF,
   125            Bit6        : BIT6_OFF,
   126            Bit7        : BIT7_OFF
   127        };
   128
   129        /*! Port 2 Port Select Register */
   130        config GpioBits8PxSel_t P2SEL = {
   131            Bit0        : BIT0_OFF,
   132            Bit1        : BIT1_OFF,
   133            Bit2        : BIT2_OFF,
   134            Bit3        : BIT3_OFF,
   135            Bit4        : BIT4_OFF,
   136            Bit5        : BIT5_OFF,
   137            Bit6        : BIT6,         /* POR default for all 2xx devices */
   138            Bit7        : BIT7          /* POR default for all 2xx devices */
   139        };
   140
   141        /*! Port 2 Direction Register */
   142        config GpioBits8PxDir_t P2DIR = {
   143            Bit0        : BIT0_OFF,
   144            Bit1        : BIT1_OFF,
   145            Bit2        : BIT2_OFF,
   146            Bit3        : BIT3_OFF,
   147            Bit4        : BIT4_OFF,
   148            Bit5        : BIT5_OFF,
   149            Bit6        : BIT6_OFF,
   150            Bit7        : BIT7_OFF
   151        };
   152
   153        /*! Port 2 Resistor Enable Register */
   154        config GpioBits8PxRen_t P2REN = {
   155            Bit0        : BIT0_OFF,
   156            Bit1        : BIT1_OFF,
   157            Bit2        : BIT2_OFF,
   158            Bit3        : BIT3_OFF,
   159            Bit4        : BIT4_OFF,
   160            Bit5        : BIT5_OFF,
   161            Bit6        : BIT6_OFF,
   162            Bit7        : BIT7_OFF
   163        };
   164    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x31

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x31
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x31.xdc
var GPIO_MSP430G2x31 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x31');
module-wide constants & types
    values of type GPIO_MSP430G2x31.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x31.BIT0_OFF;
        const GPIO_MSP430G2x31.BIT0;
    values of type GPIO_MSP430G2x31.Bit1_t//
        const GPIO_MSP430G2x31.BIT1_OFF;
        const GPIO_MSP430G2x31.BIT1;
    values of type GPIO_MSP430G2x31.Bit2_t//
        const GPIO_MSP430G2x31.BIT2_OFF;
        const GPIO_MSP430G2x31.BIT2;
    values of type GPIO_MSP430G2x31.Bit3_t//
        const GPIO_MSP430G2x31.BIT3_OFF;
        const GPIO_MSP430G2x31.BIT3;
    values of type GPIO_MSP430G2x31.Bit4_t//
        const GPIO_MSP430G2x31.BIT4_OFF;
        const GPIO_MSP430G2x31.BIT4;
    values of type GPIO_MSP430G2x31.Bit5_t//
        const GPIO_MSP430G2x31.BIT5_OFF;
        const GPIO_MSP430G2x31.BIT5;
    values of type GPIO_MSP430G2x31.Bit6_t//
        const GPIO_MSP430G2x31.BIT6_OFF;
        const GPIO_MSP430G2x31.BIT6;
    values of type GPIO_MSP430G2x31.Bit7_t//
        const GPIO_MSP430G2x31.BIT7_OFF;
        const GPIO_MSP430G2x31.BIT7;
    values of type GPIO_MSP430G2x31.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x31.IE_OFF// Disabled;
        const GPIO_MSP430G2x31.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x31.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x31.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x31.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x31.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x31.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x31.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x31.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x31.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x31.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x31.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x31.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x31.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x31.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x31.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x31.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x31.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x31.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x31.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x31.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x31.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x31.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x31.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x31.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x31.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x31.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x31.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x31.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x31.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x31.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x31.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x31.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x31.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x31.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x31.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x31.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x31.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x31 device, there are 8 + 2 = 10 pins total = GPIO_MSP430G2x31.DevicePin_t[8][2] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x31.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x31.create// Create an instance-object(USI.Instance usi, ADC10.Instance adc10, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x31.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.Bit0_t
    const GPIO_MSP430G2x31.BIT0_OFF;
    const GPIO_MSP430G2x31.BIT0;
enum GPIO_MSP430G2x31.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.Bit1_t
    const GPIO_MSP430G2x31.BIT1_OFF;
    const GPIO_MSP430G2x31.BIT1;
enum GPIO_MSP430G2x31.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.Bit2_t
    const GPIO_MSP430G2x31.BIT2_OFF;
    const GPIO_MSP430G2x31.BIT2;
enum GPIO_MSP430G2x31.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.Bit3_t
    const GPIO_MSP430G2x31.BIT3_OFF;
    const GPIO_MSP430G2x31.BIT3;
enum GPIO_MSP430G2x31.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.Bit4_t
    const GPIO_MSP430G2x31.BIT4_OFF;
    const GPIO_MSP430G2x31.BIT4;
enum GPIO_MSP430G2x31.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.Bit5_t
    const GPIO_MSP430G2x31.BIT5_OFF;
    const GPIO_MSP430G2x31.BIT5;
enum GPIO_MSP430G2x31.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.Bit6_t
    const GPIO_MSP430G2x31.BIT6_OFF;
    const GPIO_MSP430G2x31.BIT6;
enum GPIO_MSP430G2x31.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.Bit7_t
    const GPIO_MSP430G2x31.BIT7_OFF;
    const GPIO_MSP430G2x31.BIT7;
enum GPIO_MSP430G2x31.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.InterruptEnable_t
    const GPIO_MSP430G2x31.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x31.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x31.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x31.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.OutputState_t
    const GPIO_MSP430G2x31.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x31.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x31.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x31.ResEnable_t
    const GPIO_MSP430G2x31.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x31.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x31.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x31.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x31.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x31.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x31.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x31.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x31.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x31.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x31.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x31.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x31.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x31.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x31.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x31.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x31.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x31.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x31.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x31.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x31.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x31.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x31.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x31.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x31.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x31.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x31.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x31.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x31.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x31.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x31.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x31.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x31.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x31.DevicePin_t[8][2] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x31 device, there are 8 + 2 = 10 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x31.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x31.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P1DIR = GPIO_MSP430G2x31.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P1OUT = GPIO_MSP430G2x31.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P1REN = GPIO_MSP430G2x31.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P1SEL = GPIO_MSP430G2x31.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P2DIR = GPIO_MSP430G2x31.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P2OUT = GPIO_MSP430G2x31.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P2REN = GPIO_MSP430G2x31.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P2SEL = GPIO_MSP430G2x31.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x31.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x31.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.devicePinSetting = GPIO_MSP430G2x31.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430G2x31.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x31 device, there are 8 + 2 = 10 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.devicePins = GPIO_MSP430G2x31.DevicePin_t[8][2] undefined;
config GPIO_MSP430G2x31.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x31.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2x31.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x31.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x31.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x31.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x31.create(USI.Instance usi, ADC10.Instance adc10, params);
// Create an instance-object
GPIO_MSP430G2x31.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x31.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x31.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x31.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x31.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x31.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:34 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x31

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.communication.USI as USI;
    13    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    14
    15    /*!
    16     *  ======== GPIO for MSP430G2x31 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430G2x31 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral.
    23         */
    24        create(USI.Instance usi, ADC10.Instance adc10);
    25
    26    instance:
    27        /*! @_nodoc */
    28        config USI.Instance usi;
    29
    30        /*! @_nodoc */
    31        config ADC10.Instance adc10;
    32
    33       /*! Define an array to describe all device pins. The 1st dimension
    34        *  denotes the port, the second the pin on that port. On an
    35        *  MSP430G2x31 device, there are 8 + 2 = 10 pins total.
    36        */
    37
    38        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    39         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    40        /* TODO: For this device the config variable definition has been moved into the
    41         * corresponding XS file due to its size. This needs a more consistent solution. */
    42        config DevicePin_t devicePins[2][8];
    43
    44        /*! Implementation of Device Pin Functional Configuration */
    45        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
    46
    47        /*! Determine if each Register needs to be forced set or not */
    48        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    49        [
    50            { register : "P1OUT" , regForceSet : true  },
    51            { register : "P1SEL" , regForceSet : false },
    52            { register : "P1DIR" , regForceSet : true  },
    53            { register : "P1REN" , regForceSet : false },
    54            { register : "P1IES" , regForceSet : true },
    55            { register : "P1IFG" , regForceSet : true },
    56            { register : "P1IE"  , regForceSet : false },
    57            { register : "P2OUT" , regForceSet : true  },
    58            { register : "P2SEL" , regForceSet : false },
    59            { register : "P2DIR" , regForceSet : true  },
    60            { register : "P2REN" , regForceSet : false },
    61            { register : "P2IES" , regForceSet : true },
    62            { register : "P2IFG" , regForceSet : true },
    63            { register : "P2IE"  , regForceSet : false }
    64        ];
    65
    66        /*
    67         *  GPIO Digital I/O Registers
    68         *
    69         *  One GIPO instance defines the configuration of an entire,
    70         *  8-bit wide digital I/O port.
    71         */
    72
    73        /*! Port 1 Output Register */
    74        config GpioBits8PxOut_t P1OUT = {
    75            Bit0        : BIT0_OFF,
    76            Bit1        : BIT1_OFF,
    77            Bit2        : BIT2_OFF,
    78            Bit3        : BIT3_OFF,
    79            Bit4        : BIT4_OFF,
    80            Bit5        : BIT5_OFF,
    81            Bit6        : BIT6_OFF,
    82            Bit7        : BIT7_OFF
    83        };
    84
    85        /*! Port 1 Port Select Register */
    86        config GpioBits8PxSel_t P1SEL = {
    87            Bit0        : BIT0_OFF,
    88            Bit1        : BIT1_OFF,
    89            Bit2        : BIT2_OFF,
    90            Bit3        : BIT3_OFF,
    91            Bit4        : BIT4_OFF,
    92            Bit5        : BIT5_OFF,
    93            Bit6        : BIT6_OFF,
    94            Bit7        : BIT7_OFF
    95        };
    96
    97        /*! Port 1 Direction Register */
    98        config GpioBits8PxDir_t P1DIR = {
    99            Bit0        : BIT0_OFF,
   100            Bit1        : BIT1_OFF,
   101            Bit2        : BIT2_OFF,
   102            Bit3        : BIT3_OFF,
   103            Bit4        : BIT4_OFF,
   104            Bit5        : BIT5_OFF,
   105            Bit6        : BIT6_OFF,
   106            Bit7        : BIT7_OFF
   107        };
   108
   109        /*! Port 1 Resistor Enable Register */
   110        config GpioBits8PxRen_t P1REN = {
   111            Bit0        : BIT0_OFF,
   112            Bit1        : BIT1_OFF,
   113            Bit2        : BIT2_OFF,
   114            Bit3        : BIT3_OFF,
   115            Bit4        : BIT4_OFF,
   116            Bit5        : BIT5_OFF,
   117            Bit6        : BIT6_OFF,
   118            Bit7        : BIT7_OFF
   119        };
   120
   121        /*! Port 2 Output Register */
   122        config GpioBits8PxOut_t P2OUT = {
   123            Bit0        : BIT0_OFF,
   124            Bit1        : BIT1_OFF,
   125            Bit2        : BIT2_OFF,
   126            Bit3        : BIT3_OFF,
   127            Bit4        : BIT4_OFF,
   128            Bit5        : BIT5_OFF,
   129            Bit6        : BIT6_OFF,
   130            Bit7        : BIT7_OFF
   131        };
   132
   133        /*! Port 2 Port Select Register */
   134        config GpioBits8PxSel_t P2SEL = {
   135            Bit0        : BIT0_OFF,
   136            Bit1        : BIT1_OFF,
   137            Bit2        : BIT2_OFF,
   138            Bit3        : BIT3_OFF,
   139            Bit4        : BIT4_OFF,
   140            Bit5        : BIT5_OFF,
   141            Bit6        : BIT6,         /* POR default for all 2xx devices */
   142            Bit7        : BIT7          /* POR default for all 2xx devices */
   143        };
   144
   145        /*! Port 2 Direction Register */
   146        config GpioBits8PxDir_t P2DIR = {
   147            Bit0        : BIT0_OFF,
   148            Bit1        : BIT1_OFF,
   149            Bit2        : BIT2_OFF,
   150            Bit3        : BIT3_OFF,
   151            Bit4        : BIT4_OFF,
   152            Bit5        : BIT5_OFF,
   153            Bit6        : BIT6_OFF,
   154            Bit7        : BIT7_OFF
   155        };
   156
   157        /*! Port 2 Resistor Enable Register */
   158        config GpioBits8PxRen_t P2REN = {
   159            Bit0        : BIT0_OFF,
   160            Bit1        : BIT1_OFF,
   161            Bit2        : BIT2_OFF,
   162            Bit3        : BIT3_OFF,
   163            Bit4        : BIT4_OFF,
   164            Bit5        : BIT5_OFF,
   165            Bit6        : BIT6_OFF,
   166            Bit7        : BIT7_OFF
   167        };
   168    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x32

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x32
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x32.xdc
var GPIO_MSP430G2x32 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x32');
module-wide constants & types
    values of type GPIO_MSP430G2x32.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x32.BIT0_OFF;
        const GPIO_MSP430G2x32.BIT0;
    values of type GPIO_MSP430G2x32.Bit1_t//
        const GPIO_MSP430G2x32.BIT1_OFF;
        const GPIO_MSP430G2x32.BIT1;
    values of type GPIO_MSP430G2x32.Bit2_t//
        const GPIO_MSP430G2x32.BIT2_OFF;
        const GPIO_MSP430G2x32.BIT2;
    values of type GPIO_MSP430G2x32.Bit3_t//
        const GPIO_MSP430G2x32.BIT3_OFF;
        const GPIO_MSP430G2x32.BIT3;
    values of type GPIO_MSP430G2x32.Bit4_t//
        const GPIO_MSP430G2x32.BIT4_OFF;
        const GPIO_MSP430G2x32.BIT4;
    values of type GPIO_MSP430G2x32.Bit5_t//
        const GPIO_MSP430G2x32.BIT5_OFF;
        const GPIO_MSP430G2x32.BIT5;
    values of type GPIO_MSP430G2x32.Bit6_t//
        const GPIO_MSP430G2x32.BIT6_OFF;
        const GPIO_MSP430G2x32.BIT6;
    values of type GPIO_MSP430G2x32.Bit7_t//
        const GPIO_MSP430G2x32.BIT7_OFF;
        const GPIO_MSP430G2x32.BIT7;
    values of type GPIO_MSP430G2x32.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x32.IE_OFF// Disabled;
        const GPIO_MSP430G2x32.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x32.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x32.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x32.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x32.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x32.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x32.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x32.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x32.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x32.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x32.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x32.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x32.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x32.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x32.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x32.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x32.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x32.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x32.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x32.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x32.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x32.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x32.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x32.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x32.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x32.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x32.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x32.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x32.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x32.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x32.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x32.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL2// Port 1 Port Select 2 Register = GPIO_MSP430G2x32.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x32.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x32.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x32.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x32.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P2SEL2// Port 2 Port Select 2 Register = GPIO_MSP430G2x32.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x32.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x32 device, there are 8 + 8 = 16 pins total = GPIO_MSP430G2x32.DevicePin_t[8][2] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x32.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1SEL2",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2SEL2",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x32.create// Create an instance-object(USI.Instance usi, ADC10.Instance adc10, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x32.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.Bit0_t
    const GPIO_MSP430G2x32.BIT0_OFF;
    const GPIO_MSP430G2x32.BIT0;
enum GPIO_MSP430G2x32.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.Bit1_t
    const GPIO_MSP430G2x32.BIT1_OFF;
    const GPIO_MSP430G2x32.BIT1;
enum GPIO_MSP430G2x32.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.Bit2_t
    const GPIO_MSP430G2x32.BIT2_OFF;
    const GPIO_MSP430G2x32.BIT2;
enum GPIO_MSP430G2x32.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.Bit3_t
    const GPIO_MSP430G2x32.BIT3_OFF;
    const GPIO_MSP430G2x32.BIT3;
enum GPIO_MSP430G2x32.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.Bit4_t
    const GPIO_MSP430G2x32.BIT4_OFF;
    const GPIO_MSP430G2x32.BIT4;
enum GPIO_MSP430G2x32.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.Bit5_t
    const GPIO_MSP430G2x32.BIT5_OFF;
    const GPIO_MSP430G2x32.BIT5;
enum GPIO_MSP430G2x32.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.Bit6_t
    const GPIO_MSP430G2x32.BIT6_OFF;
    const GPIO_MSP430G2x32.BIT6;
enum GPIO_MSP430G2x32.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.Bit7_t
    const GPIO_MSP430G2x32.BIT7_OFF;
    const GPIO_MSP430G2x32.BIT7;
enum GPIO_MSP430G2x32.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.InterruptEnable_t
    const GPIO_MSP430G2x32.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x32.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x32.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x32.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.OutputState_t
    const GPIO_MSP430G2x32.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x32.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x32.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x32.ResEnable_t
    const GPIO_MSP430G2x32.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x32.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x32.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x32.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x32.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x32.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x32.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x32.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x32.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x32.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x32.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x32.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x32.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x32.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x32.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x32.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x32.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x32.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x32.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x32.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x32.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x32.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x32.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x32.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x32.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x32.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x32.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x32.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL2 = GPIO_MSP430G2x32.GpioBits8PxSel2_t {
    // Port 1 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x32.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x32.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x32.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x32.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P2SEL2 = GPIO_MSP430G2x32.GpioBits8PxSel2_t {
    // Port 2 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x32.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x32.DevicePin_t[8][2] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x32 device, there are 8 + 8 = 16 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x32.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1SEL2",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2SEL2",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x32.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P1DIR = GPIO_MSP430G2x32.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P1OUT = GPIO_MSP430G2x32.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P1REN = GPIO_MSP430G2x32.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P1SEL = GPIO_MSP430G2x32.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P1SEL2 // instance
index URL

Port 1 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P1SEL2 = GPIO_MSP430G2x32.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P2DIR = GPIO_MSP430G2x32.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P2OUT = GPIO_MSP430G2x32.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P2REN = GPIO_MSP430G2x32.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P2SEL = GPIO_MSP430G2x32.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x32.P2SEL2 // instance
index URL

Port 2 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P2SEL2 = GPIO_MSP430G2x32.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x32.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.devicePinSetting = GPIO_MSP430G2x32.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430G2x32.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x32 device, there are 8 + 8 = 16 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.devicePins = GPIO_MSP430G2x32.DevicePin_t[8][2] undefined;
config GPIO_MSP430G2x32.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x32.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1SEL2",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2SEL2",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2x32.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x32.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x32.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x32.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x32.create(USI.Instance usi, ADC10.Instance adc10, params);
// Create an instance-object
GPIO_MSP430G2x32.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x32.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x32.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x32.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x32.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x32.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:34 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x32

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.communication.USI as USI;
    13    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    14
    15    /*!
    16     *  ======== GPIO for MSP430G2x32 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430G2x32 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral.
    23         */
    24        create(USI.Instance usi, ADC10.Instance adc10);
    25
    26    instance:
    27        /*! @_nodoc */
    28        config USI.Instance usi;
    29
    30        /*! @_nodoc */
    31        config ADC10.Instance adc10;
    32
    33       /*! Define an array to describe all device pins. The 1st dimension
    34        *  denotes the port, the second the pin on that port. On an
    35        *  MSP430G2x32 device, there are 8 + 8 = 16 pins total.
    36        */
    37
    38        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    39         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    40        /* TODO: For this device the config variable definition has been moved into the
    41         * corresponding XS file due to its size. This needs a more consistent solution. */
    42        config DevicePin_t devicePins[2][8];
    43
    44        /*! Implementation of Device Pin Functional Configuration */
    45        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
    46
    47        /*! Determine if each Register needs to be forced set or not */
    48        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    49        [
    50            { register : "P1OUT" , regForceSet : true  },
    51            { register : "P1SEL" , regForceSet : false },
    52            { register : "P1SEL2", regForceSet : false },
    53            { register : "P1DIR" , regForceSet : true  },
    54            { register : "P1REN" , regForceSet : false },
    55            { register : "P1IES" , regForceSet : true },
    56            { register : "P1IFG" , regForceSet : true },
    57            { register : "P1IE"  , regForceSet : false },
    58            { register : "P2OUT" , regForceSet : true  },
    59            { register : "P2SEL" , regForceSet : false },
    60            { register : "P2SEL2", regForceSet : false },
    61            { register : "P2DIR" , regForceSet : true  },
    62            { register : "P2REN" , regForceSet : false },
    63            { register : "P2IES" , regForceSet : true },
    64            { register : "P2IFG" , regForceSet : true },
    65            { register : "P2IE"  , regForceSet : false }
    66        ];
    67
    68        /*
    69         *  GPIO Digital I/O Registers
    70         *
    71         *  One GIPO instance defines the configuration of an entire,
    72         *  8-bit wide digital I/O port.
    73         */
    74
    75        /*! Port 1 Output Register */
    76        config GpioBits8PxOut_t P1OUT = {
    77            Bit0        : BIT0_OFF,
    78            Bit1        : BIT1_OFF,
    79            Bit2        : BIT2_OFF,
    80            Bit3        : BIT3_OFF,
    81            Bit4        : BIT4_OFF,
    82            Bit5        : BIT5_OFF,
    83            Bit6        : BIT6_OFF,
    84            Bit7        : BIT7_OFF
    85        };
    86
    87        /*! Port 1 Port Select Register */
    88        config GpioBits8PxSel_t P1SEL = {
    89            Bit0        : BIT0_OFF,
    90            Bit1        : BIT1_OFF,
    91            Bit2        : BIT2_OFF,
    92            Bit3        : BIT3_OFF,
    93            Bit4        : BIT4_OFF,
    94            Bit5        : BIT5_OFF,
    95            Bit6        : BIT6_OFF,
    96            Bit7        : BIT7_OFF
    97        };
    98
    99        /*! Port 1 Port Select 2 Register */
   100        config GpioBits8PxSel2_t P1SEL2 = {
   101            Bit0        : BIT0_OFF,
   102            Bit1        : BIT1_OFF,
   103            Bit2        : BIT2_OFF,
   104            Bit3        : BIT3_OFF,
   105            Bit4        : BIT4_OFF,
   106            Bit5        : BIT5_OFF,
   107            Bit6        : BIT6_OFF,
   108            Bit7        : BIT7_OFF
   109        };
   110
   111        /*! Port 1 Direction Register */
   112        config GpioBits8PxDir_t P1DIR = {
   113            Bit0        : BIT0_OFF,
   114            Bit1        : BIT1_OFF,
   115            Bit2        : BIT2_OFF,
   116            Bit3        : BIT3_OFF,
   117            Bit4        : BIT4_OFF,
   118            Bit5        : BIT5_OFF,
   119            Bit6        : BIT6_OFF,
   120            Bit7        : BIT7_OFF
   121        };
   122
   123        /*! Port 1 Resistor Enable Register */
   124        config GpioBits8PxRen_t P1REN = {
   125            Bit0        : BIT0_OFF,
   126            Bit1        : BIT1_OFF,
   127            Bit2        : BIT2_OFF,
   128            Bit3        : BIT3_OFF,
   129            Bit4        : BIT4_OFF,
   130            Bit5        : BIT5_OFF,
   131            Bit6        : BIT6_OFF,
   132            Bit7        : BIT7_OFF
   133        };
   134
   135        /*! Port 2 Output Register */
   136        config GpioBits8PxOut_t P2OUT = {
   137            Bit0        : BIT0_OFF,
   138            Bit1        : BIT1_OFF,
   139            Bit2        : BIT2_OFF,
   140            Bit3        : BIT3_OFF,
   141            Bit4        : BIT4_OFF,
   142            Bit5        : BIT5_OFF,
   143            Bit6        : BIT6_OFF,
   144            Bit7        : BIT7_OFF
   145        };
   146
   147        /*! Port 2 Port Select Register */
   148        config GpioBits8PxSel_t P2SEL = {
   149            Bit0        : BIT0_OFF,
   150            Bit1        : BIT1_OFF,
   151            Bit2        : BIT2_OFF,
   152            Bit3        : BIT3_OFF,
   153            Bit4        : BIT4_OFF,
   154            Bit5        : BIT5_OFF,
   155            Bit6        : BIT6,         /* POR default for all 2xx devices */
   156            Bit7        : BIT7          /* POR default for all 2xx devices */
   157        };
   158
   159        /*! Port 2 Port Select 2 Register */
   160        config GpioBits8PxSel2_t P2SEL2 = {
   161            Bit0        : BIT0_OFF,
   162            Bit1        : BIT1_OFF,
   163            Bit2        : BIT2_OFF,
   164            Bit3        : BIT3_OFF,
   165            Bit4        : BIT4_OFF,
   166            Bit5        : BIT5_OFF,
   167            Bit6        : BIT6_OFF,
   168            Bit7        : BIT7_OFF
   169        };
   170
   171        /*! Port 2 Direction Register */
   172        config GpioBits8PxDir_t P2DIR = {
   173            Bit0        : BIT0_OFF,
   174            Bit1        : BIT1_OFF,
   175            Bit2        : BIT2_OFF,
   176            Bit3        : BIT3_OFF,
   177            Bit4        : BIT4_OFF,
   178            Bit5        : BIT5_OFF,
   179            Bit6        : BIT6_OFF,
   180            Bit7        : BIT7_OFF
   181        };
   182
   183        /*! Port 2 Resistor Enable Register */
   184        config GpioBits8PxRen_t P2REN = {
   185            Bit0        : BIT0_OFF,
   186            Bit1        : BIT1_OFF,
   187            Bit2        : BIT2_OFF,
   188            Bit3        : BIT3_OFF,
   189            Bit4        : BIT4_OFF,
   190            Bit5        : BIT5_OFF,
   191            Bit6        : BIT6_OFF,
   192            Bit7        : BIT7_OFF
   193        };
   194    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x33

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x33
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x33.xdc
var GPIO_MSP430G2x33 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x33');
module-wide constants & types
    values of type GPIO_MSP430G2x33.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x33.BIT0_OFF;
        const GPIO_MSP430G2x33.BIT0;
    values of type GPIO_MSP430G2x33.Bit1_t//
        const GPIO_MSP430G2x33.BIT1_OFF;
        const GPIO_MSP430G2x33.BIT1;
    values of type GPIO_MSP430G2x33.Bit2_t//
        const GPIO_MSP430G2x33.BIT2_OFF;
        const GPIO_MSP430G2x33.BIT2;
    values of type GPIO_MSP430G2x33.Bit3_t//
        const GPIO_MSP430G2x33.BIT3_OFF;
        const GPIO_MSP430G2x33.BIT3;
    values of type GPIO_MSP430G2x33.Bit4_t//
        const GPIO_MSP430G2x33.BIT4_OFF;
        const GPIO_MSP430G2x33.BIT4;
    values of type GPIO_MSP430G2x33.Bit5_t//
        const GPIO_MSP430G2x33.BIT5_OFF;
        const GPIO_MSP430G2x33.BIT5;
    values of type GPIO_MSP430G2x33.Bit6_t//
        const GPIO_MSP430G2x33.BIT6_OFF;
        const GPIO_MSP430G2x33.BIT6;
    values of type GPIO_MSP430G2x33.Bit7_t//
        const GPIO_MSP430G2x33.BIT7_OFF;
        const GPIO_MSP430G2x33.BIT7;
    values of type GPIO_MSP430G2x33.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x33.IE_OFF// Disabled;
        const GPIO_MSP430G2x33.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x33.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x33.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x33.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x33.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x33.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x33.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x33.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x33.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x33.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x33.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x33.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x33.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x33.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x33.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x33.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x33.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x33.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x33.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x33.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x33.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x33.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x33.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x33.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x33.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x33.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x33.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x33.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x33.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x33.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x33.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x33.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL2// Port 1 Port Select 2 Register = GPIO_MSP430G2x33.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x33.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x33.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x33.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x33.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P2SEL2// Port 2 Port Select 2 Register = GPIO_MSP430G2x33.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430G2x33.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430G2x33.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430G2x33.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430G2x33.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL2// Port 3 Port Select 2 Register = GPIO_MSP430G2x33.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x33.DevicePinFunctionSetting_t[8][3] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x33 device, there are 3 x 8 = 24 pins total = GPIO_MSP430G2x33.DevicePin_t[8][3] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x33.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1SEL2",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2SEL2",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3SEL2",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x33.create// Create an instance-object(ADC10.Instance adc10, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x33.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.Bit0_t
    const GPIO_MSP430G2x33.BIT0_OFF;
    const GPIO_MSP430G2x33.BIT0;
enum GPIO_MSP430G2x33.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.Bit1_t
    const GPIO_MSP430G2x33.BIT1_OFF;
    const GPIO_MSP430G2x33.BIT1;
enum GPIO_MSP430G2x33.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.Bit2_t
    const GPIO_MSP430G2x33.BIT2_OFF;
    const GPIO_MSP430G2x33.BIT2;
enum GPIO_MSP430G2x33.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.Bit3_t
    const GPIO_MSP430G2x33.BIT3_OFF;
    const GPIO_MSP430G2x33.BIT3;
enum GPIO_MSP430G2x33.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.Bit4_t
    const GPIO_MSP430G2x33.BIT4_OFF;
    const GPIO_MSP430G2x33.BIT4;
enum GPIO_MSP430G2x33.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.Bit5_t
    const GPIO_MSP430G2x33.BIT5_OFF;
    const GPIO_MSP430G2x33.BIT5;
enum GPIO_MSP430G2x33.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.Bit6_t
    const GPIO_MSP430G2x33.BIT6_OFF;
    const GPIO_MSP430G2x33.BIT6;
enum GPIO_MSP430G2x33.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.Bit7_t
    const GPIO_MSP430G2x33.BIT7_OFF;
    const GPIO_MSP430G2x33.BIT7;
enum GPIO_MSP430G2x33.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.InterruptEnable_t
    const GPIO_MSP430G2x33.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x33.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x33.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x33.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.OutputState_t
    const GPIO_MSP430G2x33.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x33.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x33.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x33.ResEnable_t
    const GPIO_MSP430G2x33.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x33.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x33.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x33.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x33.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x33.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x33.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x33.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x33.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x33.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x33.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x33.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x33.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x33.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x33.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x33.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x33.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x33.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x33.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x33.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x33.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x33.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x33.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x33.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x33.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x33.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x33.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x33.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL2 = GPIO_MSP430G2x33.GpioBits8PxSel_t {
    // Port 1 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x33.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x33.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x33.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x33.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P2SEL2 = GPIO_MSP430G2x33.GpioBits8PxSel2_t {
    // Port 2 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430G2x33.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430G2x33.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430G2x33.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430G2x33.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL2 = GPIO_MSP430G2x33.GpioBits8PxSel2_t {
    // Port 3 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x33.DevicePinFunctionSetting_t[8][3] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x33.DevicePin_t[8][3] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x33 device, there are 3 x 8 = 24 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x33.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1SEL2",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2SEL2",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3SEL2",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x33.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P1DIR = GPIO_MSP430G2x33.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P1OUT = GPIO_MSP430G2x33.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P1REN = GPIO_MSP430G2x33.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P1SEL = GPIO_MSP430G2x33.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P1SEL2 // instance
index URL

Port 1 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P1SEL2 = GPIO_MSP430G2x33.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P2DIR = GPIO_MSP430G2x33.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P2OUT = GPIO_MSP430G2x33.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P2REN = GPIO_MSP430G2x33.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P2SEL = GPIO_MSP430G2x33.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x33.P2SEL2 // instance
index URL

Port 2 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P2SEL2 = GPIO_MSP430G2x33.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P3DIR = GPIO_MSP430G2x33.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P3OUT = GPIO_MSP430G2x33.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P3REN = GPIO_MSP430G2x33.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P3SEL = GPIO_MSP430G2x33.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P3SEL2 // instance
index URL

Port 3 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P3SEL2 = GPIO_MSP430G2x33.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x33.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.devicePinSetting = GPIO_MSP430G2x33.DevicePinFunctionSetting_t[8][3] undefined;
config GPIO_MSP430G2x33.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x33 device, there are 3 x 8 = 24 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.devicePins = GPIO_MSP430G2x33.DevicePin_t[8][3] undefined;
config GPIO_MSP430G2x33.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x33.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1SEL2",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2SEL2",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3SEL2",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    }
];
config GPIO_MSP430G2x33.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x33.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x33.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x33.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x33.create(ADC10.Instance adc10, params);
// Create an instance-object
GPIO_MSP430G2x33.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x33.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x33.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x33.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x33.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x33.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:36 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x33

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    13
    14    /*!
    15     *  ======== GPIO for MSP430G2x33 ========
    16     *  MSP430 General Purpose Input Output Ports
    17     */
    18    metaonly module GPIO_MSP430G2x33 inherits IGPIO {
    19        /*!
    20         *  ======== create ========
    21         *  Create an instance of this peripheral. Use a customized
    22         *  init function so that we can get access to the ADC10
    23         *  instance.
    24         */
    25        create(ADC10.Instance adc10);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config ADC10.Instance adc10;
    30
    31       /*! Define an array to describe all device pins. The 1st dimension
    32        *  denotes the port, the second the pin on that port. On an
    33        *  MSP430G2x33 device, there are 3 x 8 = 24 pins total.
    34        */
    35
    36        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    37         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    38        /* TODO: For this device the config variable definition has been moved into the
    39         * corresponding XS file due to its size. This needs a more consistent solution. */
    40        config DevicePin_t devicePins[3][8];
    41
    42        /*! Implementation of Device Pin Functional Configuration */
    43        override config DevicePinFunctionSetting_t devicePinSetting[3][8];
    44
    45        /*! Determine if each Register needs to be forced set or not */
    46        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    47        [
    48            { register : "P1OUT" , regForceSet : true  },
    49            { register : "P1SEL" , regForceSet : false },
    50            { register : "P1SEL2", regForceSet : false },
    51            { register : "P1DIR" , regForceSet : true  },
    52            { register : "P1REN" , regForceSet : false },
    53            { register : "P1IES" , regForceSet : true  },
    54            { register : "P1IFG" , regForceSet : true  },
    55            { register : "P1IE"  , regForceSet : false },
    56            { register : "P2OUT" , regForceSet : true  },
    57            { register : "P2SEL" , regForceSet : false },
    58            { register : "P2SEL2", regForceSet : false },
    59            { register : "P2DIR" , regForceSet : true  },
    60            { register : "P2REN" , regForceSet : false },
    61            { register : "P2IES" , regForceSet : true  },
    62            { register : "P2IFG" , regForceSet : true  },
    63            { register : "P2IE"  , regForceSet : false },
    64            { register : "P3OUT" , regForceSet : true  },
    65            { register : "P3SEL" , regForceSet : false },
    66            { register : "P3SEL2", regForceSet : false },
    67            { register : "P3DIR" , regForceSet : true  },
    68            { register : "P3REN" , regForceSet : false },
    69        ];
    70
    71        /*
    72         *  GPIO Digital I/O Registers
    73         *
    74         *  One GIPO instance defines the configuration of an entire,
    75         *  8-bit wide digital I/O port.
    76         */
    77
    78        /*! Port 1 Output Register */
    79        config GpioBits8PxOut_t P1OUT = {
    80            Bit0        : BIT0_OFF,
    81            Bit1        : BIT1_OFF,
    82            Bit2        : BIT2_OFF,
    83            Bit3        : BIT3_OFF,
    84            Bit4        : BIT4_OFF,
    85            Bit5        : BIT5_OFF,
    86            Bit6        : BIT6_OFF,
    87            Bit7        : BIT7_OFF
    88        };
    89
    90        /*! Port 1 Port Select Register */
    91        config GpioBits8PxSel_t P1SEL = {
    92            Bit0        : BIT0_OFF,
    93            Bit1        : BIT1_OFF,
    94            Bit2        : BIT2_OFF,
    95            Bit3        : BIT3_OFF,
    96            Bit4        : BIT4_OFF,
    97            Bit5        : BIT5_OFF,
    98            Bit6        : BIT6_OFF,
    99            Bit7        : BIT7_OFF
   100        };
   101
   102        /*! Port 1 Port Select 2 Register */
   103        config GpioBits8PxSel_t P1SEL2 = {
   104            Bit0        : BIT0_OFF,
   105            Bit1        : BIT1_OFF,
   106            Bit2        : BIT2_OFF,
   107            Bit3        : BIT3_OFF,
   108            Bit4        : BIT4_OFF,
   109            Bit5        : BIT5_OFF,
   110            Bit6        : BIT6_OFF,
   111            Bit7        : BIT7_OFF
   112        };
   113
   114        /*! Port 1 Direction Register */
   115        config GpioBits8PxDir_t P1DIR = {
   116            Bit0        : BIT0_OFF,
   117            Bit1        : BIT1_OFF,
   118            Bit2        : BIT2_OFF,
   119            Bit3        : BIT3_OFF,
   120            Bit4        : BIT4_OFF,
   121            Bit5        : BIT5_OFF,
   122            Bit6        : BIT6_OFF,
   123            Bit7        : BIT7_OFF
   124        };
   125
   126        /*! Port 1 Resistor Enable Register */
   127        config GpioBits8PxRen_t P1REN = {
   128            Bit0        : BIT0_OFF,
   129            Bit1        : BIT1_OFF,
   130            Bit2        : BIT2_OFF,
   131            Bit3        : BIT3_OFF,
   132            Bit4        : BIT4_OFF,
   133            Bit5        : BIT5_OFF,
   134            Bit6        : BIT6_OFF,
   135            Bit7        : BIT7_OFF
   136        };
   137
   138        /*! Port 2 Output Register */
   139        config GpioBits8PxOut_t P2OUT = {
   140            Bit0        : BIT0_OFF,
   141            Bit1        : BIT1_OFF,
   142            Bit2        : BIT2_OFF,
   143            Bit3        : BIT3_OFF,
   144            Bit4        : BIT4_OFF,
   145            Bit5        : BIT5_OFF,
   146            Bit6        : BIT6_OFF,
   147            Bit7        : BIT7_OFF
   148        };
   149
   150        /*! Port 2 Port Select Register */
   151        config GpioBits8PxSel_t P2SEL = {
   152            Bit0        : BIT0_OFF,
   153            Bit1        : BIT1_OFF,
   154            Bit2        : BIT2_OFF,
   155            Bit3        : BIT3_OFF,
   156            Bit4        : BIT4_OFF,
   157            Bit5        : BIT5_OFF,
   158            Bit6        : BIT6,         /* POR default for all 2xx devices */
   159            Bit7        : BIT7          /* POR default for all 2xx devices */
   160        };
   161
   162        /*! Port 2 Port Select 2 Register */
   163        config GpioBits8PxSel2_t P2SEL2 = {
   164            Bit0        : BIT0_OFF,
   165            Bit1        : BIT1_OFF,
   166            Bit2        : BIT2_OFF,
   167            Bit3        : BIT3_OFF,
   168            Bit4        : BIT4_OFF,
   169            Bit5        : BIT5_OFF,
   170            Bit6        : BIT6_OFF,
   171            Bit7        : BIT7_OFF
   172        };
   173
   174        /*! Port 2 Direction Register */
   175        config GpioBits8PxDir_t P2DIR = {
   176            Bit0        : BIT0_OFF,
   177            Bit1        : BIT1_OFF,
   178            Bit2        : BIT2_OFF,
   179            Bit3        : BIT3_OFF,
   180            Bit4        : BIT4_OFF,
   181            Bit5        : BIT5_OFF,
   182            Bit6        : BIT6_OFF,
   183            Bit7        : BIT7_OFF
   184        };
   185
   186        /*! Port 2 Resistor Enable Register */
   187        config GpioBits8PxRen_t P2REN = {
   188            Bit0        : BIT0_OFF,
   189            Bit1        : BIT1_OFF,
   190            Bit2        : BIT2_OFF,
   191            Bit3        : BIT3_OFF,
   192            Bit4        : BIT4_OFF,
   193            Bit5        : BIT5_OFF,
   194            Bit6        : BIT6_OFF,
   195            Bit7        : BIT7_OFF
   196        };
   197
   198        /*! Port 3 Output Register */
   199        config GpioBits8PxOut_t P3OUT = {
   200            Bit0        : BIT0_OFF,
   201            Bit1        : BIT1_OFF,
   202            Bit2        : BIT2_OFF,
   203            Bit3        : BIT3_OFF,
   204            Bit4        : BIT4_OFF,
   205            Bit5        : BIT5_OFF,
   206            Bit6        : BIT6_OFF,
   207            Bit7        : BIT7_OFF
   208        };
   209
   210        /*! Port 3 Port Select Register */
   211        config GpioBits8PxSel_t P3SEL = {
   212            Bit0        : BIT0_OFF,
   213            Bit1        : BIT1_OFF,
   214            Bit2        : BIT2_OFF,
   215            Bit3        : BIT3_OFF,
   216            Bit4        : BIT4_OFF,
   217            Bit5        : BIT5_OFF,
   218            Bit6        : BIT6_OFF,
   219            Bit7        : BIT7_OFF
   220        };
   221
   222        /*! Port 3 Port Select 2 Register */
   223        config GpioBits8PxSel2_t P3SEL2 = {
   224            Bit0        : BIT0_OFF,
   225            Bit1        : BIT1_OFF,
   226            Bit2        : BIT2_OFF,
   227            Bit3        : BIT3_OFF,
   228            Bit4        : BIT4_OFF,
   229            Bit5        : BIT5_OFF,
   230            Bit6        : BIT6_OFF,
   231            Bit7        : BIT7_OFF
   232        };
   233
   234        /*! Port 3 Direction Register */
   235        config GpioBits8PxDir_t P3DIR = {
   236            Bit0        : BIT0_OFF,
   237            Bit1        : BIT1_OFF,
   238            Bit2        : BIT2_OFF,
   239            Bit3        : BIT3_OFF,
   240            Bit4        : BIT4_OFF,
   241            Bit5        : BIT5_OFF,
   242            Bit6        : BIT6_OFF,
   243            Bit7        : BIT7_OFF
   244        };
   245
   246        /*! Port 3 Resistor Enable Register */
   247        config GpioBits8PxRen_t P3REN = {
   248            Bit0        : BIT0_OFF,
   249            Bit1        : BIT1_OFF,
   250            Bit2        : BIT2_OFF,
   251            Bit3        : BIT3_OFF,
   252            Bit4        : BIT4_OFF,
   253            Bit5        : BIT5_OFF,
   254            Bit6        : BIT6_OFF,
   255            Bit7        : BIT7_OFF
   256        };
   257    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x52

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x52
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x52.xdc
var GPIO_MSP430G2x52 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x52');
module-wide constants & types
    values of type GPIO_MSP430G2x52.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x52.BIT0_OFF;
        const GPIO_MSP430G2x52.BIT0;
    values of type GPIO_MSP430G2x52.Bit1_t//
        const GPIO_MSP430G2x52.BIT1_OFF;
        const GPIO_MSP430G2x52.BIT1;
    values of type GPIO_MSP430G2x52.Bit2_t//
        const GPIO_MSP430G2x52.BIT2_OFF;
        const GPIO_MSP430G2x52.BIT2;
    values of type GPIO_MSP430G2x52.Bit3_t//
        const GPIO_MSP430G2x52.BIT3_OFF;
        const GPIO_MSP430G2x52.BIT3;
    values of type GPIO_MSP430G2x52.Bit4_t//
        const GPIO_MSP430G2x52.BIT4_OFF;
        const GPIO_MSP430G2x52.BIT4;
    values of type GPIO_MSP430G2x52.Bit5_t//
        const GPIO_MSP430G2x52.BIT5_OFF;
        const GPIO_MSP430G2x52.BIT5;
    values of type GPIO_MSP430G2x52.Bit6_t//
        const GPIO_MSP430G2x52.BIT6_OFF;
        const GPIO_MSP430G2x52.BIT6;
    values of type GPIO_MSP430G2x52.Bit7_t//
        const GPIO_MSP430G2x52.BIT7_OFF;
        const GPIO_MSP430G2x52.BIT7;
    values of type GPIO_MSP430G2x52.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x52.IE_OFF// Disabled;
        const GPIO_MSP430G2x52.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x52.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x52.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x52.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x52.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x52.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x52.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x52.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x52.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x52.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x52.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x52.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x52.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x52.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x52.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x52.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x52.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x52.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x52.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x52.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x52.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x52.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x52.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x52.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x52.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x52.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x52.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x52.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x52.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x52.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x52.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x52.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL2// Port 1 Port Select 2 Register = GPIO_MSP430G2x52.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x52.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x52.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x52.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x52.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P2SEL2// Port 2 Port Select 2 Register = GPIO_MSP430G2x52.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x52.DevicePinFunctionSetting_t[8][2] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x52 device, there are 8 + 8 = 16 pins total = GPIO_MSP430G2x52.DevicePin_t[8][2] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x52.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1SEL2",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2SEL2",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x52.create// Create an instance-object(USI.Instance usi, IComparator.Instance comparator, ADC10.Instance adc10, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x52.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.Bit0_t
    const GPIO_MSP430G2x52.BIT0_OFF;
    const GPIO_MSP430G2x52.BIT0;
enum GPIO_MSP430G2x52.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.Bit1_t
    const GPIO_MSP430G2x52.BIT1_OFF;
    const GPIO_MSP430G2x52.BIT1;
enum GPIO_MSP430G2x52.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.Bit2_t
    const GPIO_MSP430G2x52.BIT2_OFF;
    const GPIO_MSP430G2x52.BIT2;
enum GPIO_MSP430G2x52.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.Bit3_t
    const GPIO_MSP430G2x52.BIT3_OFF;
    const GPIO_MSP430G2x52.BIT3;
enum GPIO_MSP430G2x52.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.Bit4_t
    const GPIO_MSP430G2x52.BIT4_OFF;
    const GPIO_MSP430G2x52.BIT4;
enum GPIO_MSP430G2x52.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.Bit5_t
    const GPIO_MSP430G2x52.BIT5_OFF;
    const GPIO_MSP430G2x52.BIT5;
enum GPIO_MSP430G2x52.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.Bit6_t
    const GPIO_MSP430G2x52.BIT6_OFF;
    const GPIO_MSP430G2x52.BIT6;
enum GPIO_MSP430G2x52.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.Bit7_t
    const GPIO_MSP430G2x52.BIT7_OFF;
    const GPIO_MSP430G2x52.BIT7;
enum GPIO_MSP430G2x52.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.InterruptEnable_t
    const GPIO_MSP430G2x52.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x52.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x52.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x52.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.OutputState_t
    const GPIO_MSP430G2x52.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x52.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x52.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x52.ResEnable_t
    const GPIO_MSP430G2x52.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x52.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x52.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x52.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x52.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x52.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x52.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x52.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x52.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x52.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x52.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x52.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x52.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x52.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x52.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x52.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x52.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x52.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x52.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x52.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x52.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x52.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x52.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x52.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x52.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x52.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x52.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x52.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL2 = GPIO_MSP430G2x52.GpioBits8PxSel2_t {
    // Port 1 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x52.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x52.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x52.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x52.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P2SEL2 = GPIO_MSP430G2x52.GpioBits8PxSel2_t {
    // Port 2 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x52.DevicePinFunctionSetting_t[8][2] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x52.DevicePin_t[8][2] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x52 device, there are 8 + 8 = 16 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x52.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1SEL2",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2SEL2",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x52.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P1DIR = GPIO_MSP430G2x52.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P1OUT = GPIO_MSP430G2x52.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P1REN = GPIO_MSP430G2x52.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P1SEL = GPIO_MSP430G2x52.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P1SEL2 // instance
index URL

Port 1 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P1SEL2 = GPIO_MSP430G2x52.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P2DIR = GPIO_MSP430G2x52.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P2OUT = GPIO_MSP430G2x52.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P2REN = GPIO_MSP430G2x52.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P2SEL = GPIO_MSP430G2x52.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x52.P2SEL2 // instance
index URL

Port 2 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P2SEL2 = GPIO_MSP430G2x52.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x52.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.devicePinSetting = GPIO_MSP430G2x52.DevicePinFunctionSetting_t[8][2] undefined;
config GPIO_MSP430G2x52.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x52 device, there are 8 + 8 = 16 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.devicePins = GPIO_MSP430G2x52.DevicePin_t[8][2] undefined;
config GPIO_MSP430G2x52.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x52.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1SEL2",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2SEL2",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    }
];
config GPIO_MSP430G2x52.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x52.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x52.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x52.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x52.create(USI.Instance usi, IComparator.Instance comparator, ADC10.Instance adc10, params);
// Create an instance-object
GPIO_MSP430G2x52.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x52.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x52.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x52.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x52.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x52.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:36 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x52

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.communication.USI as USI;
    13    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    14    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    15
    16    /*!
    17     *  ======== GPIO for MSP430G2x52 ========
    18     *  MSP430 General Purpose Input Output Ports
    19     */
    20    metaonly module GPIO_MSP430G2x52 inherits IGPIO {
    21        /*!
    22         *  ======== create ========
    23         *  Create an instance of these peripherals.
    24         */
    25        create(USI.Instance usi, Comparator.Instance comparator, ADC10.Instance adc10);
    26
    27    instance:
    28        /*! @_nodoc */
    29        config USI.Instance usi;
    30
    31        /*! @_nodoc */
    32        config Comparator.Instance comparator;
    33
    34        /*! @_nodoc */
    35        config ADC10.Instance adc10;
    36
    37       /*! Define an array to describe all device pins. The 1st dimension
    38        *  denotes the port, the second the pin on that port. On an
    39        *  MSP430G2x52 device, there are 8 + 8 = 16 pins total.
    40        */
    41
    42        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    43         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    44        /* TODO: For this device the config variable definition has been moved into the
    45         * corresponding XS file due to its size. This needs a more consistent solution. */
    46        config DevicePin_t devicePins[2][8];
    47
    48        /*! Implementation of Device Pin Functional Configuration */
    49        override config DevicePinFunctionSetting_t devicePinSetting[2][8];
    50
    51        /*! Determine if each Register needs to be forced set or not */
    52        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    53        [
    54            { register : "P1OUT" , regForceSet : true  },
    55            { register : "P1SEL" , regForceSet : false },
    56            { register : "P1SEL2", regForceSet : false },
    57            { register : "P1DIR" , regForceSet : true  },
    58            { register : "P1REN" , regForceSet : false },
    59            { register : "P1IES" , regForceSet : true  },
    60            { register : "P1IFG" , regForceSet : true  },
    61            { register : "P1IE"  , regForceSet : false },
    62            { register : "P2OUT" , regForceSet : true  },
    63            { register : "P2SEL" , regForceSet : false },
    64            { register : "P2SEL2", regForceSet : false },
    65            { register : "P2DIR" , regForceSet : true  },
    66            { register : "P2REN" , regForceSet : false },
    67            { register : "P2IES" , regForceSet : true  },
    68            { register : "P2IFG" , regForceSet : true  },
    69            { register : "P2IE"  , regForceSet : false }
    70        ];
    71
    72        /*
    73         *  GPIO Digital I/O Registers
    74         *
    75         *  One GIPO instance defines the configuration of an entire,
    76         *  8-bit wide digital I/O port.
    77         */
    78
    79        /*! Port 1 Output Register */
    80        config GpioBits8PxOut_t P1OUT = {
    81            Bit0        : BIT0_OFF,
    82            Bit1        : BIT1_OFF,
    83            Bit2        : BIT2_OFF,
    84            Bit3        : BIT3_OFF,
    85            Bit4        : BIT4_OFF,
    86            Bit5        : BIT5_OFF,
    87            Bit6        : BIT6_OFF,
    88            Bit7        : BIT7_OFF
    89        };
    90
    91        /*! Port 1 Port Select Register */
    92        config GpioBits8PxSel_t P1SEL = {
    93            Bit0        : BIT0_OFF,
    94            Bit1        : BIT1_OFF,
    95            Bit2        : BIT2_OFF,
    96            Bit3        : BIT3_OFF,
    97            Bit4        : BIT4_OFF,
    98            Bit5        : BIT5_OFF,
    99            Bit6        : BIT6_OFF,
   100            Bit7        : BIT7_OFF
   101        };
   102
   103        /*! Port 1 Port Select 2 Register */
   104        config GpioBits8PxSel2_t P1SEL2 = {
   105            Bit0        : BIT0_OFF,
   106            Bit1        : BIT1_OFF,
   107            Bit2        : BIT2_OFF,
   108            Bit3        : BIT3_OFF,
   109            Bit4        : BIT4_OFF,
   110            Bit5        : BIT5_OFF,
   111            Bit6        : BIT6_OFF,
   112            Bit7        : BIT7_OFF
   113        };
   114
   115        /*! Port 1 Direction Register */
   116        config GpioBits8PxDir_t P1DIR = {
   117            Bit0        : BIT0_OFF,
   118            Bit1        : BIT1_OFF,
   119            Bit2        : BIT2_OFF,
   120            Bit3        : BIT3_OFF,
   121            Bit4        : BIT4_OFF,
   122            Bit5        : BIT5_OFF,
   123            Bit6        : BIT6_OFF,
   124            Bit7        : BIT7_OFF
   125        };
   126
   127        /*! Port 1 Resistor Enable Register */
   128        config GpioBits8PxRen_t P1REN = {
   129            Bit0        : BIT0_OFF,
   130            Bit1        : BIT1_OFF,
   131            Bit2        : BIT2_OFF,
   132            Bit3        : BIT3_OFF,
   133            Bit4        : BIT4_OFF,
   134            Bit5        : BIT5_OFF,
   135            Bit6        : BIT6_OFF,
   136            Bit7        : BIT7_OFF
   137        };
   138
   139        /*! Port 2 Output Register */
   140        config GpioBits8PxOut_t P2OUT = {
   141            Bit0        : BIT0_OFF,
   142            Bit1        : BIT1_OFF,
   143            Bit2        : BIT2_OFF,
   144            Bit3        : BIT3_OFF,
   145            Bit4        : BIT4_OFF,
   146            Bit5        : BIT5_OFF,
   147            Bit6        : BIT6_OFF,
   148            Bit7        : BIT7_OFF
   149        };
   150
   151        /*! Port 2 Port Select Register */
   152        config GpioBits8PxSel_t P2SEL = {
   153            Bit0        : BIT0_OFF,
   154            Bit1        : BIT1_OFF,
   155            Bit2        : BIT2_OFF,
   156            Bit3        : BIT3_OFF,
   157            Bit4        : BIT4_OFF,
   158            Bit5        : BIT5_OFF,
   159            Bit6        : BIT6,         /* POR default for all 2xx devices */
   160            Bit7        : BIT7          /* POR default for all 2xx devices */
   161        };
   162
   163        /*! Port 2 Port Select 2 Register */
   164        config GpioBits8PxSel2_t P2SEL2 = {
   165            Bit0        : BIT0_OFF,
   166            Bit1        : BIT1_OFF,
   167            Bit2        : BIT2_OFF,
   168            Bit3        : BIT3_OFF,
   169            Bit4        : BIT4_OFF,
   170            Bit5        : BIT5_OFF,
   171            Bit6        : BIT6_OFF,
   172            Bit7        : BIT7_OFF
   173        };
   174
   175        /*! Port 2 Direction Register */
   176        config GpioBits8PxDir_t P2DIR = {
   177            Bit0        : BIT0_OFF,
   178            Bit1        : BIT1_OFF,
   179            Bit2        : BIT2_OFF,
   180            Bit3        : BIT3_OFF,
   181            Bit4        : BIT4_OFF,
   182            Bit5        : BIT5_OFF,
   183            Bit6        : BIT6_OFF,
   184            Bit7        : BIT7_OFF
   185        };
   186
   187        /*! Port 2 Resistor Enable Register */
   188        config GpioBits8PxRen_t P2REN = {
   189            Bit0        : BIT0_OFF,
   190            Bit1        : BIT1_OFF,
   191            Bit2        : BIT2_OFF,
   192            Bit3        : BIT3_OFF,
   193            Bit4        : BIT4_OFF,
   194            Bit5        : BIT5_OFF,
   195            Bit6        : BIT6_OFF,
   196            Bit7        : BIT7_OFF
   197        };
   198    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x53

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x53
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430G2x53.xdc
var GPIO_MSP430G2x53 = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x53');
module-wide constants & types
    values of type GPIO_MSP430G2x53.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430G2x53.BIT0_OFF;
        const GPIO_MSP430G2x53.BIT0;
    values of type GPIO_MSP430G2x53.Bit1_t//
        const GPIO_MSP430G2x53.BIT1_OFF;
        const GPIO_MSP430G2x53.BIT1;
    values of type GPIO_MSP430G2x53.Bit2_t//
        const GPIO_MSP430G2x53.BIT2_OFF;
        const GPIO_MSP430G2x53.BIT2;
    values of type GPIO_MSP430G2x53.Bit3_t//
        const GPIO_MSP430G2x53.BIT3_OFF;
        const GPIO_MSP430G2x53.BIT3;
    values of type GPIO_MSP430G2x53.Bit4_t//
        const GPIO_MSP430G2x53.BIT4_OFF;
        const GPIO_MSP430G2x53.BIT4;
    values of type GPIO_MSP430G2x53.Bit5_t//
        const GPIO_MSP430G2x53.BIT5_OFF;
        const GPIO_MSP430G2x53.BIT5;
    values of type GPIO_MSP430G2x53.Bit6_t//
        const GPIO_MSP430G2x53.BIT6_OFF;
        const GPIO_MSP430G2x53.BIT6;
    values of type GPIO_MSP430G2x53.Bit7_t//
        const GPIO_MSP430G2x53.BIT7_OFF;
        const GPIO_MSP430G2x53.BIT7;
    values of type GPIO_MSP430G2x53.InterruptEnable_t// Interrupt enables drop down list
        const GPIO_MSP430G2x53.IE_OFF// Disabled;
        const GPIO_MSP430G2x53.IE_FALLING// Interrupt Enabled Falling Edge;
        const GPIO_MSP430G2x53.IE_RISING// Interrupt Enabled Rising Edge;
    values of type GPIO_MSP430G2x53.OutputState_t// Output high or low drop down list
        const GPIO_MSP430G2x53.OUTSTATE_LOW// Output Set Low (Default);
        const GPIO_MSP430G2x53.OUTSTATE_HIGH// Output Set High;
    values of type GPIO_MSP430G2x53.ResEnable_t// Pull-up/down resistor enables drop down list
        const GPIO_MSP430G2x53.PUDRE_OFF// Disabled;
        const GPIO_MSP430G2x53.PUDRE_UP// Pull-Up Resistor;
        const GPIO_MSP430G2x53.PUDRE_DOWN// Pull-Down Resistor;
    var obj = new GPIO_MSP430G2x53.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex// Device Pin Functional Selection = UInt ...
        obj.owner// Current Device Pin Owner = Any ...
        obj.resistorEnable// Pull-up/down Resistor Enable Selection = IGPIO.ResEnable_t ...
        obj.outputDirState// Output Direction State Selection = IGPIO.OutputState_t ...
        obj.interruptEnable// Interrupt Enable State Selection = IGPIO.InterruptEnable_t ...
        obj.outputDirStateEnabled// Enable state for output direction state selection = Bool ...
        obj.inputDirStateEnabled// Enable state for input direction state selection = Bool ...
    var obj = new GPIO_MSP430G2x53.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430G2x53.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430G2x53.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430G2x53.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430G2x53.GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register;
        obj.Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x53.GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register;
        obj.Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x53.GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register;
        obj.Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x53.GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register;
        obj.Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x53.GpioBits8PxIn_t// Generic GPIO 8-bit Register;
        obj.Bit0// GPIO Input Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Input Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Input Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Input Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Input Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Input Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Input Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Input Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x53.GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register;
        obj.Bit0// GPIO Output Signal Bit 0 = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Output Signal Bit 1 = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Output Signal Bit 2 = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Output Signal Bit 3 = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Output Signal Bit 4 = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Output Signal Bit 5 = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Output Signal Bit 6 = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Output Signal Bit 7 = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x53.GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register;
        obj.Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7 Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled Set Pullup/down via PxOUT 0 = Down; 1 = Up = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x53.GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x53.GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register;
        obj.Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions = IGPIO.Bit0_t ...
        obj.Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions = IGPIO.Bit1_t ...
        obj.Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions = IGPIO.Bit2_t ...
        obj.Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions = IGPIO.Bit3_t ...
        obj.Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions = IGPIO.Bit4_t ...
        obj.Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions = IGPIO.Bit5_t ...
        obj.Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions = IGPIO.Bit6_t ...
        obj.Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions = IGPIO.Bit7_t ...
    var obj = new GPIO_MSP430G2x53.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
    var obj = new GPIO_MSP430G2x53.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     GPIO_MSP430G2x53.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430G2x53.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430G2x53.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430G2x53.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IE// Port 1 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IES// Port 1 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1IFG// Port 1 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1OUT// Port 1 Output Register = GPIO_MSP430G2x53.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1REN// Port 1 Resistor Enable Register = GPIO_MSP430G2x53.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL// Port 1 Port Select Register = GPIO_MSP430G2x53.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P1SEL2// Port 1 Port Select 2 Register = GPIO_MSP430G2x53.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2DIR// Port 2 Direction Register = GPIO_MSP430G2x53.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IE// Port 2 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IES// Port 2 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2IFG// Port 2 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2OUT// Port 2 Output Register = GPIO_MSP430G2x53.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2REN// Port 2 Resistor Enable Register = GPIO_MSP430G2x53.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P2SEL// Port 2 Port Select Register = GPIO_MSP430G2x53.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6,
            Bit7: IGPIO.BIT7
        };
        params.P2SEL2// Port 2 Port Select 2 Register = GPIO_MSP430G2x53.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3DIR// Port 3 Direction Register = GPIO_MSP430G2x53.GpioBits8PxDir_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IE// Port 3 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IES// Port 3 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3IFG// Port 3 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3OUT// Port 3 Output Register = GPIO_MSP430G2x53.GpioBits8PxOut_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3REN// Port 3 Resistor Enable Register = GPIO_MSP430G2x53.GpioBits8PxRen_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL// Port 3 Port Select Register = GPIO_MSP430G2x53.GpioBits8PxSel_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P3SEL2// Port 3 Port Select 2 Register = GPIO_MSP430G2x53.GpioBits8PxSel2_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IE// Port 4 Interrupt Enable Register = IGPIO.GpioBits8PxIe_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IES// Port 4 Interrupt Edge Select Register = IGPIO.GpioBits8PxIes_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.P4IFG// Port 4 Interrupt Flag Register = IGPIO.GpioBits8PxIfg_t {
            Bit0: IGPIO.BIT0_OFF,
            Bit1: IGPIO.BIT1_OFF,
            Bit2: IGPIO.BIT2_OFF,
            Bit3: IGPIO.BIT3_OFF,
            Bit4: IGPIO.BIT4_OFF,
            Bit5: IGPIO.BIT5_OFF,
            Bit6: IGPIO.BIT6_OFF,
            Bit7: IGPIO.BIT7_OFF
        };
        params.devicePinSetting// Implementation of Device Pin Functional Configuration = GPIO_MSP430G2x53.DevicePinFunctionSetting_t[8][3] undefined;
        params.devicePins// Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x53 device, there are 3 x 8 = 24 pins total = GPIO_MSP430G2x53.DevicePin_t[8][3] undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = GPIO_MSP430G2x53.ForceSetDefaultRegister_t[] [
            {
                register: "P1OUT",
                regForceSet: true
            },
            {
                register: "P1SEL",
                regForceSet: false
            },
            {
                register: "P1SEL2",
                regForceSet: false
            },
            {
                register: "P1DIR",
                regForceSet: true
            },
            {
                register: "P1REN",
                regForceSet: false
            },
            {
                register: "P1IES",
                regForceSet: true
            },
            {
                register: "P1IFG",
                regForceSet: true
            },
            {
                register: "P1IE",
                regForceSet: false
            },
            {
                register: "P2OUT",
                regForceSet: true
            },
            {
                register: "P2SEL",
                regForceSet: false
            },
            {
                register: "P2SEL2",
                regForceSet: false
            },
            {
                register: "P2DIR",
                regForceSet: true
            },
            {
                register: "P2REN",
                regForceSet: false
            },
            {
                register: "P2IES",
                regForceSet: true
            },
            {
                register: "P2IFG",
                regForceSet: true
            },
            {
                register: "P2IE",
                regForceSet: false
            },
            {
                register: "P3OUT",
                regForceSet: true
            },
            {
                register: "P3SEL",
                regForceSet: false
            },
            {
                register: "P3SEL2",
                regForceSet: false
            },
            {
                register: "P3DIR",
                regForceSet: true
            },
            {
                register: "P3REN",
                regForceSet: false
            }
        ];
        params.interruptSource// GPIO interrupt source = IGPIO.regIntVect_t[32] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = GPIO_MSP430G2x53.create// Create an instance-object(ADC10.Instance adc10, IComparator.Instance comparator, params);
per-instance functions
     inst.findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp) returns IGPIO.MatchedPortFunction_t
     inst.getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin) returns UInt
     inst.getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin) returns Any
     inst.pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp) returns Bool
     inst.setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner) returns Void
     inst.setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner) returns Void
enum GPIO_MSP430G2x53.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.Bit0_t
    const GPIO_MSP430G2x53.BIT0_OFF;
    const GPIO_MSP430G2x53.BIT0;
enum GPIO_MSP430G2x53.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.Bit1_t
    const GPIO_MSP430G2x53.BIT1_OFF;
    const GPIO_MSP430G2x53.BIT1;
enum GPIO_MSP430G2x53.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.Bit2_t
    const GPIO_MSP430G2x53.BIT2_OFF;
    const GPIO_MSP430G2x53.BIT2;
enum GPIO_MSP430G2x53.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.Bit3_t
    const GPIO_MSP430G2x53.BIT3_OFF;
    const GPIO_MSP430G2x53.BIT3;
enum GPIO_MSP430G2x53.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.Bit4_t
    const GPIO_MSP430G2x53.BIT4_OFF;
    const GPIO_MSP430G2x53.BIT4;
enum GPIO_MSP430G2x53.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.Bit5_t
    const GPIO_MSP430G2x53.BIT5_OFF;
    const GPIO_MSP430G2x53.BIT5;
enum GPIO_MSP430G2x53.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.Bit6_t
    const GPIO_MSP430G2x53.BIT6_OFF;
    const GPIO_MSP430G2x53.BIT6;
enum GPIO_MSP430G2x53.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.Bit7_t
    const GPIO_MSP430G2x53.BIT7_OFF;
    const GPIO_MSP430G2x53.BIT7;
enum GPIO_MSP430G2x53.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.InterruptEnable_t
    const GPIO_MSP430G2x53.IE_OFF;
    // Disabled
    const GPIO_MSP430G2x53.IE_FALLING;
    // Interrupt Enabled Falling Edge
    const GPIO_MSP430G2x53.IE_RISING;
    // Interrupt Enabled Rising Edge
enum GPIO_MSP430G2x53.OutputState_t
index URL

Output high or low drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.OutputState_t
    const GPIO_MSP430G2x53.OUTSTATE_LOW;
    // Output Set Low (Default)
    const GPIO_MSP430G2x53.OUTSTATE_HIGH;
    // Output Set High
enum GPIO_MSP430G2x53.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCscript usage meta-domain
values of type GPIO_MSP430G2x53.ResEnable_t
    const GPIO_MSP430G2x53.PUDRE_OFF;
    // Disabled
    const GPIO_MSP430G2x53.PUDRE_UP;
    // Pull-Up Resistor
    const GPIO_MSP430G2x53.PUDRE_DOWN;
    // Pull-Down Resistor
struct GPIO_MSP430G2x53.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    // Device Pin Functional Selection
    obj.owner = Any ...
    // Current Device Pin Owner
    obj.resistorEnable = IGPIO.ResEnable_t ...
    // Pull-up/down Resistor Enable Selection
    obj.outputDirState = IGPIO.OutputState_t ...
    // Output Direction State Selection
    obj.interruptEnable = IGPIO.InterruptEnable_t ...
    // Interrupt Enable State Selection
    obj.outputDirStateEnabled = Bool ...
    // Enable state for output direction state selection
    obj.inputDirStateEnabled = Bool ...
    // Enable state for input direction state selection
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430G2x53.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.DevicePinFunction_t;
    obj.functionName = String[] ...
    obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct GPIO_MSP430G2x53.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.DevicePin_t;
    obj.pinName = String ...
    obj.pinFunction = IGPIO.DevicePinFunction_t ...
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct GPIO_MSP430G2x53.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.DeviceRegisterConfig_t;
    obj.register = String ...
    obj.bitSetMask = UInt ...
    obj.bitClearMask = UInt ...
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct GPIO_MSP430G2x53.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct GPIO_MSP430G2x53.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.GpioBits8PxDir_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
SEE
GpioBits8PxDir_t
struct GPIO_MSP430G2x53.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.GpioBits8PxIe_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
SEE
GpioBits8PxIe_t
struct GPIO_MSP430G2x53.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.GpioBits8PxIes_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
SEE
GpioBits8PxIes_t
struct GPIO_MSP430G2x53.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.GpioBits8PxIfg_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
SEE
GpioBits8PxIfg_t
struct GPIO_MSP430G2x53.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.GpioBits8PxIn_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Input Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Input Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Input Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Input Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Input Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Input Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Input Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Input Signal Bit 7
SEE
GpioBits8_t
struct GPIO_MSP430G2x53.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.GpioBits8PxOut_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Output Signal Bit 0
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Output Signal Bit 1
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Output Signal Bit 2
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Output Signal Bit 3
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Output Signal Bit 4
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Output Signal Bit 5
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Output Signal Bit 6
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Output Signal Bit 7
SEE
GpioBits8PxOut_t
struct GPIO_MSP430G2x53.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.GpioBits8PxRen_t;
    obj.Bit0 = IGPIO.Bit0_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit1 = IGPIO.Bit1_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit2 = IGPIO.Bit2_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit3 = IGPIO.Bit3_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit4 = IGPIO.Bit4_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit5 = IGPIO.Bit5_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit6 = IGPIO.Bit6_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
    obj.Bit7 = IGPIO.Bit7_t ...
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
SEE
GpioBits8PxRen_t
struct GPIO_MSP430G2x53.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.GpioBits8PxSel2_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel2_t
struct GPIO_MSP430G2x53.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.GpioBits8PxSel_t;
    obj.Bit0 = IGPIO.Bit0_t ...
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
    obj.Bit1 = IGPIO.Bit1_t ...
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
    obj.Bit2 = IGPIO.Bit2_t ...
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
    obj.Bit3 = IGPIO.Bit3_t ...
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
    obj.Bit4 = IGPIO.Bit4_t ...
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
    obj.Bit5 = IGPIO.Bit5_t ...
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
    obj.Bit6 = IGPIO.Bit6_t ...
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
    obj.Bit7 = IGPIO.Bit7_t ...
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
SEE
GpioBits8PxSel_t
struct GPIO_MSP430G2x53.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.MatchedPortFunction_t;
    obj.port = UInt[] ...
    obj.pin = UInt[] ...
    obj.pinName = String[] ...
    obj.functionIndex = UInt[] ...
    obj.functionName = String[] ...
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct GPIO_MSP430G2x53.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new GPIO_MSP430G2x53.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
GPIO_MSP430G2x53.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430G2x53.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
GPIO_MSP430G2x53.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430G2x53.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430G2x53.GpioBits8PxDir_t {
    // Port 1 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IE = IGPIO.GpioBits8PxIe_t {
    // Port 1 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IES = IGPIO.GpioBits8PxIes_t {
    // Port 1 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 1 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1OUT = GPIO_MSP430G2x53.GpioBits8PxOut_t {
    // Port 1 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1REN = GPIO_MSP430G2x53.GpioBits8PxRen_t {
    // Port 1 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL = GPIO_MSP430G2x53.GpioBits8PxSel_t {
    // Port 1 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P1SEL2 = GPIO_MSP430G2x53.GpioBits8PxSel_t {
    // Port 1 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2DIR = GPIO_MSP430G2x53.GpioBits8PxDir_t {
    // Port 2 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IE = IGPIO.GpioBits8PxIe_t {
    // Port 2 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IES = IGPIO.GpioBits8PxIes_t {
    // Port 2 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 2 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2OUT = GPIO_MSP430G2x53.GpioBits8PxOut_t {
    // Port 2 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2REN = GPIO_MSP430G2x53.GpioBits8PxRen_t {
    // Port 2 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P2SEL = GPIO_MSP430G2x53.GpioBits8PxSel_t {
    // Port 2 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6,
        Bit7: IGPIO.BIT7
    };
    params.P2SEL2 = GPIO_MSP430G2x53.GpioBits8PxSel2_t {
    // Port 2 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3DIR = GPIO_MSP430G2x53.GpioBits8PxDir_t {
    // Port 3 Direction Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IE = IGPIO.GpioBits8PxIe_t {
    // Port 3 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IES = IGPIO.GpioBits8PxIes_t {
    // Port 3 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 3 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3OUT = GPIO_MSP430G2x53.GpioBits8PxOut_t {
    // Port 3 Output Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3REN = GPIO_MSP430G2x53.GpioBits8PxRen_t {
    // Port 3 Resistor Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL = GPIO_MSP430G2x53.GpioBits8PxSel_t {
    // Port 3 Port Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P3SEL2 = GPIO_MSP430G2x53.GpioBits8PxSel2_t {
    // Port 3 Port Select 2 Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IE = IGPIO.GpioBits8PxIe_t {
    // Port 4 Interrupt Enable Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IES = IGPIO.GpioBits8PxIes_t {
    // Port 4 Interrupt Edge Select Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    // Port 4 Interrupt Flag Register
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    params.devicePinSetting = GPIO_MSP430G2x53.DevicePinFunctionSetting_t[8][3] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430G2x53.DevicePin_t[8][3] undefined;
    // Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x53 device, there are 3 x 8 = 24 pins total
    params.forceSetDefaultRegister = GPIO_MSP430G2x53.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1SEL2",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: true
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: true
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2SEL2",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: true
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: true
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3SEL2",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: true
        },
        {
            register: "P3REN",
            regForceSet: false
        }
    ];
    params.interruptSource = IGPIO.regIntVect_t[32] undefined;
    // GPIO interrupt source
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config GPIO_MSP430G2x53.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P1DIR = GPIO_MSP430G2x53.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P1IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P1IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P1IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P1OUT = GPIO_MSP430G2x53.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P1REN = GPIO_MSP430G2x53.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P1SEL = GPIO_MSP430G2x53.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P1SEL2 // instance
index URL

Port 1 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P1SEL2 = GPIO_MSP430G2x53.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P2DIR = GPIO_MSP430G2x53.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P2IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P2IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P2IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P2OUT = GPIO_MSP430G2x53.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P2REN = GPIO_MSP430G2x53.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P2SEL = GPIO_MSP430G2x53.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6,
    Bit7: IGPIO.BIT7
};
config GPIO_MSP430G2x53.P2SEL2 // instance
index URL

Port 2 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P2SEL2 = GPIO_MSP430G2x53.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P3DIR = GPIO_MSP430G2x53.GpioBits8PxDir_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P3IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P3IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P3IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P3OUT = GPIO_MSP430G2x53.GpioBits8PxOut_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P3REN = GPIO_MSP430G2x53.GpioBits8PxRen_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P3SEL = GPIO_MSP430G2x53.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P3SEL2 // instance
index URL

Port 3 Port Select 2 Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P3SEL2 = GPIO_MSP430G2x53.GpioBits8PxSel2_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P4IE = IGPIO.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P4IES = IGPIO.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.P4IFG = IGPIO.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430G2x53.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.devicePinSetting = GPIO_MSP430G2x53.DevicePinFunctionSetting_t[8][3] undefined;
config GPIO_MSP430G2x53.devicePins // instance
index URL

Define an array to describe all device pins. The 1st dimension denotes the port, the second the pin on that port. On an MSP430G2x53 device, there are 3 x 8 = 24 pins total

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.devicePins = GPIO_MSP430G2x53.DevicePin_t[8][3] undefined;
config GPIO_MSP430G2x53.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430G2x53.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1SEL2",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: true
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: true
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2SEL2",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: true
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: true
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3SEL2",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: true
    },
    {
        register: "P3REN",
        regForceSet: false
    }
];
config GPIO_MSP430G2x53.interruptSource // instance
index URL

GPIO interrupt source

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.interruptSource = IGPIO.regIntVect_t[32] undefined;
config GPIO_MSP430G2x53.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config GPIO_MSP430G2x53.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430G2x53.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430G2x53.create(ADC10.Instance adc10, IComparator.Instance comparator, params);
// Create an instance-object
GPIO_MSP430G2x53.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCscript usage meta-domain
inst.findPinsForFunction(String regExp) returns IGPIO.MatchedPortFunction_t
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
GPIO_MSP430G2x53.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCscript usage meta-domain
inst.getPinFunctionIndex(UInt port, UInt pin) returns UInt
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
GPIO_MSP430G2x53.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCscript usage meta-domain
inst.getPinOwner(UInt port, UInt pin) returns Any
GPIO_MSP430G2x53.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCscript usage meta-domain
inst.pinFunctionIsActive(UInt port, UInt pin, String regExp) returns Bool
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
GPIO_MSP430G2x53.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCscript usage meta-domain
inst.setDefaultPinFunction(UInt port, UInt pin, Any owner) returns Void
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
GPIO_MSP430G2x53.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCscript usage meta-domain
inst.setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner) returns Void
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:37 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430G2x53

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
    13    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    14
    15    /*!
    16     *  ======== GPIO for MSP430G2x53 ========
    17     *  MSP430 General Purpose Input Output Ports
    18     */
    19    metaonly module GPIO_MSP430G2x53 inherits IGPIO {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral. Use a customized
    23         *  init function so that we can get access to the ADC10 and comparator
    24         *  instances.
    25         */
    26        create(ADC10.Instance adc10, Comparator.Instance comparator);
    27
    28    instance:
    29        /*! @_nodoc */
    30        config ADC10.Instance adc10;
    31
    32        /*! @_nodoc */
    33        config Comparator.Instance comparator;
    34
    35       /*! Define an array to describe all device pins. The 1st dimension
    36        *  denotes the port, the second the pin on that port. On an
    37        *  MSP430G2x53 device, there are 3 x 8 = 24 pins total.
    38        */
    39
    40        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    41         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    42        /* TODO: For this device the config variable definition has been moved into the
    43         * corresponding XS file due to its size. This needs a more consistent solution. */
    44        config DevicePin_t devicePins[3][8];
    45
    46        /*! Implementation of Device Pin Functional Configuration */
    47        override config DevicePinFunctionSetting_t devicePinSetting[3][8];
    48
    49        /*! Determine if each Register needs to be forced set or not */
    50        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    51        [
    52            { register : "P1OUT" , regForceSet : true  },
    53            { register : "P1SEL" , regForceSet : false },
    54            { register : "P1SEL2", regForceSet : false },
    55            { register : "P1DIR" , regForceSet : true  },
    56            { register : "P1REN" , regForceSet : false },
    57            { register : "P1IES" , regForceSet : true  },
    58            { register : "P1IFG" , regForceSet : true  },
    59            { register : "P1IE"  , regForceSet : false },
    60            { register : "P2OUT" , regForceSet : true  },
    61            { register : "P2SEL" , regForceSet : false },
    62            { register : "P2SEL2", regForceSet : false },
    63            { register : "P2DIR" , regForceSet : true  },
    64            { register : "P2REN" , regForceSet : false },
    65            { register : "P2IES" , regForceSet : true  },
    66            { register : "P2IFG" , regForceSet : true  },
    67            { register : "P2IE"  , regForceSet : false },
    68            { register : "P3OUT" , regForceSet : true  },
    69            { register : "P3SEL" , regForceSet : false },
    70            { register : "P3SEL2", regForceSet : false },
    71            { register : "P3DIR" , regForceSet : true  },
    72            { register : "P3REN" , regForceSet : false },
    73        ];
    74
    75        /*
    76         *  GPIO Digital I/O Registers
    77         *
    78         *  One GIPO instance defines the configuration of an entire,
    79         *  8-bit wide digital I/O port.
    80         */
    81
    82        /*! Port 1 Output Register */
    83        config GpioBits8PxOut_t P1OUT = {
    84            Bit0        : BIT0_OFF,
    85            Bit1        : BIT1_OFF,
    86            Bit2        : BIT2_OFF,
    87            Bit3        : BIT3_OFF,
    88            Bit4        : BIT4_OFF,
    89            Bit5        : BIT5_OFF,
    90            Bit6        : BIT6_OFF,
    91            Bit7        : BIT7_OFF
    92        };
    93
    94        /*! Port 1 Port Select Register */
    95        config GpioBits8PxSel_t P1SEL = {
    96            Bit0        : BIT0_OFF,
    97            Bit1        : BIT1_OFF,
    98            Bit2        : BIT2_OFF,
    99            Bit3        : BIT3_OFF,
   100            Bit4        : BIT4_OFF,
   101            Bit5        : BIT5_OFF,
   102            Bit6        : BIT6_OFF,
   103            Bit7        : BIT7_OFF
   104        };
   105
   106        /*! Port 1 Port Select 2 Register */
   107        config GpioBits8PxSel_t P1SEL2 = {
   108            Bit0        : BIT0_OFF,
   109            Bit1        : BIT1_OFF,
   110            Bit2        : BIT2_OFF,
   111            Bit3        : BIT3_OFF,
   112            Bit4        : BIT4_OFF,
   113            Bit5        : BIT5_OFF,
   114            Bit6        : BIT6_OFF,
   115            Bit7        : BIT7_OFF
   116        };
   117
   118        /*! Port 1 Direction Register */
   119        config GpioBits8PxDir_t P1DIR = {
   120            Bit0        : BIT0_OFF,
   121            Bit1        : BIT1_OFF,
   122            Bit2        : BIT2_OFF,
   123            Bit3        : BIT3_OFF,
   124            Bit4        : BIT4_OFF,
   125            Bit5        : BIT5_OFF,
   126            Bit6        : BIT6_OFF,
   127            Bit7        : BIT7_OFF
   128        };
   129
   130        /*! Port 1 Resistor Enable Register */
   131        config GpioBits8PxRen_t P1REN = {
   132            Bit0        : BIT0_OFF,
   133            Bit1        : BIT1_OFF,
   134            Bit2        : BIT2_OFF,
   135            Bit3        : BIT3_OFF,
   136            Bit4        : BIT4_OFF,
   137            Bit5        : BIT5_OFF,
   138            Bit6        : BIT6_OFF,
   139            Bit7        : BIT7_OFF
   140        };
   141
   142        /*! Port 2 Output Register */
   143        config GpioBits8PxOut_t P2OUT = {
   144            Bit0        : BIT0_OFF,
   145            Bit1        : BIT1_OFF,
   146            Bit2        : BIT2_OFF,
   147            Bit3        : BIT3_OFF,
   148            Bit4        : BIT4_OFF,
   149            Bit5        : BIT5_OFF,
   150            Bit6        : BIT6_OFF,
   151            Bit7        : BIT7_OFF
   152        };
   153
   154        /*! Port 2 Port Select Register */
   155        config GpioBits8PxSel_t P2SEL = {
   156            Bit0        : BIT0_OFF,
   157            Bit1        : BIT1_OFF,
   158            Bit2        : BIT2_OFF,
   159            Bit3        : BIT3_OFF,
   160            Bit4        : BIT4_OFF,
   161            Bit5        : BIT5_OFF,
   162            Bit6        : BIT6,         /* POR default for all 2xx devices */
   163            Bit7        : BIT7          /* POR default for all 2xx devices */
   164        };
   165
   166        /*! Port 2 Port Select 2 Register */
   167        config GpioBits8PxSel2_t P2SEL2 = {
   168            Bit0        : BIT0_OFF,
   169            Bit1        : BIT1_OFF,
   170            Bit2        : BIT2_OFF,
   171            Bit3        : BIT3_OFF,
   172            Bit4        : BIT4_OFF,
   173            Bit5        : BIT5_OFF,
   174            Bit6        : BIT6_OFF,
   175            Bit7        : BIT7_OFF
   176        };
   177
   178        /*! Port 2 Direction Register */
   179        config GpioBits8PxDir_t P2DIR = {
   180            Bit0        : BIT0_OFF,
   181            Bit1        : BIT1_OFF,
   182            Bit2        : BIT2_OFF,
   183            Bit3        : BIT3_OFF,
   184            Bit4        : BIT4_OFF,
   185            Bit5        : BIT5_OFF,
   186            Bit6        : BIT6_OFF,
   187            Bit7        : BIT7_OFF
   188        };
   189
   190        /*! Port 2 Resistor Enable Register */
   191        config GpioBits8PxRen_t P2REN = {
   192            Bit0        : BIT0_OFF,
   193            Bit1        : BIT1_OFF,
   194            Bit2        : BIT2_OFF,
   195            Bit3        : BIT3_OFF,
   196            Bit4        : BIT4_OFF,
   197            Bit5        : BIT5_OFF,
   198            Bit6        : BIT6_OFF,
   199            Bit7        : BIT7_OFF
   200        };
   201
   202        /*! Port 3 Output Register */
   203        config GpioBits8PxOut_t P3OUT = {
   204            Bit0        : BIT0_OFF,
   205            Bit1        : BIT1_OFF,
   206            Bit2        : BIT2_OFF,
   207            Bit3        : BIT3_OFF,
   208            Bit4        : BIT4_OFF,
   209            Bit5        : BIT5_OFF,
   210            Bit6        : BIT6_OFF,
   211            Bit7        : BIT7_OFF
   212        };
   213
   214        /*! Port 3 Port Select Register */
   215        config GpioBits8PxSel_t P3SEL = {
   216            Bit0        : BIT0_OFF,
   217            Bit1        : BIT1_OFF,
   218            Bit2        : BIT2_OFF,
   219            Bit3        : BIT3_OFF,
   220            Bit4        : BIT4_OFF,
   221            Bit5        : BIT5_OFF,
   222            Bit6        : BIT6_OFF,
   223            Bit7        : BIT7_OFF
   224        };
   225
   226        /*! Port 3 Port Select 2 Register */
   227        config GpioBits8PxSel2_t P3SEL2 = {
   228            Bit0        : BIT0_OFF,
   229            Bit1        : BIT1_OFF,
   230            Bit2        : BIT2_OFF,
   231            Bit3        : BIT3_OFF,
   232            Bit4        : BIT4_OFF,
   233            Bit5        : BIT5_OFF,
   234            Bit6        : BIT6_OFF,
   235            Bit7        : BIT7_OFF
   236        };
   237
   238        /*! Port 3 Direction Register */
   239        config GpioBits8PxDir_t P3DIR = {
   240            Bit0        : BIT0_OFF,
   241            Bit1        : BIT1_OFF,
   242            Bit2        : BIT2_OFF,
   243            Bit3        : BIT3_OFF,
   244            Bit4        : BIT4_OFF,
   245            Bit5        : BIT5_OFF,
   246            Bit6        : BIT6_OFF,
   247            Bit7        : BIT7_OFF
   248        };
   249
   250        /*! Port 3 Resistor Enable Register */
   251        config GpioBits8PxRen_t P3REN = {
   252            Bit0        : BIT0_OFF,
   253            Bit1        : BIT1_OFF,
   254            Bit2        : BIT2_OFF,
   255            Bit3        : BIT3_OFF,
   256            Bit4        : BIT4_OFF,
   257            Bit5        : BIT5_OFF,
   258            Bit6        : BIT6_OFF,
   259            Bit7        : BIT7_OFF
   260        };
   261    }


interface ti.catalog.msp430.peripherals.gpio.IGPIO

metaonly interface ti.catalog.msp430.peripherals.gpio.IGPIO
index URL

MSP430 General Purpose Input Output Ports

XDCspec summary sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly interface IGPIO { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
package ti.catalog.msp430.peripherals.gpio;
metaonly interface IGPIO inherits IPeripheral {
module-wide constants & types
    enum Bit0_t// GPIO Bit 0 Definitions {
         BIT0_OFF,
         BIT0
    };
    enum Bit1_t// {
         BIT1_OFF,
         BIT1
    };
    enum Bit2_t// {
         BIT2_OFF,
         BIT2
    };
    enum Bit3_t// {
         BIT3_OFF,
         BIT3
    };
    enum Bit4_t// {
         BIT4_OFF,
         BIT4
    };
    enum Bit5_t// {
         BIT5_OFF,
         BIT5
    };
    enum Bit6_t// {
         BIT6_OFF,
         BIT6
    };
    enum Bit7_t// {
         BIT7_OFF,
         BIT7
    };
    enum InterruptEnable_t// Interrupt enables drop down list {
         IE_OFF// Disabled,
         IE_FALLING// Interrupt Enabled Falling Edge,
         IE_RISING// Interrupt Enabled Rising Edge
    };
    enum OutputState_t// Output high or low drop down list {
         OUTSTATE_LOW// Output Set Low (Default),
         OUTSTATE_HIGH// Output Set High
    };
    enum ResEnable_t// Pull-up/down resistor enables drop down list {
         PUDRE_OFF// Disabled,
         PUDRE_UP// Pull-Up Resistor,
         PUDRE_DOWN// Pull-Down Resistor
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor {
        UInt functionIndex// Device Pin Functional Selection;
        Any owner// Current Device Pin Owner;
         IGPIO.ResEnable_t resistorEnable// Pull-up/down Resistor Enable Selection;
         IGPIO.OutputState_t outputDirState// Output Direction State Selection;
         IGPIO.InterruptEnable_t interruptEnable// Interrupt Enable State Selection;
        Bool outputDirStateEnabled// Enable state for output direction state selection;
        Bool inputDirStateEnabled// Enable state for input direction state selection;
    };
    metaonly struct DevicePinFunction_t// Device Pin Functional Descriptor {
        String functionName[];
         IGPIO.DeviceRegisterConfig_t functionConfig[][];
    };
    metaonly struct DevicePin_t// Device Pin Descriptor {
        String pinName;
         IGPIO.DevicePinFunction_t pinFunction;
    };
    metaonly struct DeviceRegisterConfig_t// Device Register Configuration Descriptor {
        String register;
        UInt bitSetMask;
        UInt bitClearMask;
    };
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct GpioBits8PxDir_t// Generic GPIO 8-bit PxDIR Register {
         IGPIO.Bit0_t Bit0// GPIO Select Direction Bit 0 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction;
         IGPIO.Bit1_t Bit1// GPIO Select Direction Bit 1 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction;
         IGPIO.Bit2_t Bit2// GPIO Select Direction Bit 2 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction;
         IGPIO.Bit3_t Bit3// GPIO Select Direction Bit 3 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction;
         IGPIO.Bit4_t Bit4// GPIO Select Direction Bit 4 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction;
         IGPIO.Bit5_t Bit5// GPIO Select Direction Bit 5 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction;
         IGPIO.Bit6_t Bit6// GPIO Select Direction Bit 6 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction;
         IGPIO.Bit7_t Bit7// GPIO Select Direction Bit 7 Bit = 0: The port pin is switched to input direction Bit = 1: The port pin is switched to output direction;
    };
    metaonly struct GpioBits8PxIe_t// Generic GPIO 8-bit PxIE Register {
         IGPIO.Bit0_t Bit0// GPIO Interrupt Enable Bit 0 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled;
         IGPIO.Bit1_t Bit1// GPIO Interrupt Enable Bit 1 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled;
         IGPIO.Bit2_t Bit2// GPIO Interrupt Enable Bit 2 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled;
         IGPIO.Bit3_t Bit3// GPIO Interrupt Enable Bit 3 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled;
         IGPIO.Bit4_t Bit4// GPIO Interrupt Enable Bit 4 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled;
         IGPIO.Bit5_t Bit5// GPIO Interrupt Enable Bit 5 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled;
         IGPIO.Bit6_t Bit6// GPIO Interrupt Enable Bit 6 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled;
         IGPIO.Bit7_t Bit7// GPIO Interrupt Enable Bit 7 Bit = 0: The interrupt is disabled. Bit = 1: The interrupt is enabled;
    };
    metaonly struct GpioBits8PxIes_t// Generic GPIO 8-bit PxIES Register {
         IGPIO.Bit0_t Bit0// GPIO Select Interrupt Edge Bit 0 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition;
         IGPIO.Bit1_t Bit1// GPIO Select Interrupt Edge Bit 1 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition;
         IGPIO.Bit2_t Bit2// GPIO Select Interrupt Edge Bit 2 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition;
         IGPIO.Bit3_t Bit3// GPIO Select Interrupt Edge Bit 3 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition;
         IGPIO.Bit4_t Bit4// GPIO Select Interrupt Edge Bit 4 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition;
         IGPIO.Bit5_t Bit5// GPIO Select Interrupt Edge Bit 5 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition;
         IGPIO.Bit6_t Bit6// GPIO Select Interrupt Edge Bit 6 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition;
         IGPIO.Bit7_t Bit7// GPIO Select Interrupt Edge Bit 7 Bit = 0: The PxIFGx flag is set with a low-to-high transition Bit = 1: The PxIFGx flag is set with a high-to-low transition;
    };
    metaonly struct GpioBits8PxIfg_t// Generic GPIO 8-bit PxIFG Register {
         IGPIO.Bit0_t Bit0// GPIO Interrupt Flag Bit 0 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending;
         IGPIO.Bit1_t Bit1// GPIO Interrupt Flag Bit 1 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending;
         IGPIO.Bit2_t Bit2// GPIO Interrupt Flag Bit 2 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending;
         IGPIO.Bit3_t Bit3// GPIO Interrupt Flag Bit 3 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending;
         IGPIO.Bit4_t Bit4// GPIO Interrupt Flag Bit 4 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending;
         IGPIO.Bit5_t Bit5// GPIO Interrupt Flag Bit 5 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending;
         IGPIO.Bit6_t Bit6// GPIO Interrupt Flag Bit 6 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending;
         IGPIO.Bit7_t Bit7// GPIO Interrupt Flag Bit 7 Bit = 0: No interrupt is pending Bit = 1: An interrupt is pending;
    };
    metaonly struct GpioBits8PxIn_t// Generic GPIO 8-bit Register {
         IGPIO.Bit0_t Bit0// GPIO Input Signal Bit 0;
         IGPIO.Bit1_t Bit1// GPIO Input Signal Bit 1;
         IGPIO.Bit2_t Bit2// GPIO Input Signal Bit 2;
         IGPIO.Bit3_t Bit3// GPIO Input Signal Bit 3;
         IGPIO.Bit4_t Bit4// GPIO Input Signal Bit 4;
         IGPIO.Bit5_t Bit5// GPIO Input Signal Bit 5;
         IGPIO.Bit6_t Bit6// GPIO Input Signal Bit 6;
         IGPIO.Bit7_t Bit7// GPIO Input Signal Bit 7;
    };
    metaonly struct GpioBits8PxOut_t// Generic GPIO 8-bit PxOUT Register {
         IGPIO.Bit0_t Bit0// GPIO Output Signal Bit 0;
         IGPIO.Bit1_t Bit1// GPIO Output Signal Bit 1;
         IGPIO.Bit2_t Bit2// GPIO Output Signal Bit 2;
         IGPIO.Bit3_t Bit3// GPIO Output Signal Bit 3;
         IGPIO.Bit4_t Bit4// GPIO Output Signal Bit 4;
         IGPIO.Bit5_t Bit5// GPIO Output Signal Bit 5;
         IGPIO.Bit6_t Bit6// GPIO Output Signal Bit 6;
         IGPIO.Bit7_t Bit7// GPIO Output Signal Bit 7;
    };
    metaonly struct GpioBits8PxRen_t// Generic GPIO 8-bit PxREN Register {
       IGPIO.Bit0_t Bit0// GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up;
       IGPIO.Bit1_t Bit1// GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up;
       IGPIO.Bit2_t Bit2// GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up;
       IGPIO.Bit3_t Bit3// GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up;
       IGPIO.Bit4_t Bit4// GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up;
       IGPIO.Bit5_t Bit5// GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up;
       IGPIO.Bit6_t Bit6// GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up;
       IGPIO.Bit7_t Bit7// GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up;
    };
    metaonly struct GpioBits8PxSel2_t// Generic GPIO 8-bit PxSEL2 Register {
         IGPIO.Bit0_t Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit1_t Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit2_t Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit3_t Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit4_t Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit5_t Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit6_t Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit7_t Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions;
    };
    metaonly struct GpioBits8PxSel_t// Generic GPIO 8-bit PxSEL Register {
         IGPIO.Bit0_t Bit0// GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit1_t Bit1// GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit2_t Bit2// GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit3_t Bit3// GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit4_t Bit4// GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit5_t Bit5// GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit6_t Bit6// GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions;
         IGPIO.Bit7_t Bit7// GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions;
    };
    metaonly struct MatchedPortFunction_t// Port Function Enumeration Type {
        UInt port[];
        UInt pin[];
        String pinName[];
        UInt functionIndex[];
        String functionName[];
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config IGPIO.GpioBits8PxIe_t P1IE// Port 1 Interrupt Enable Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIes_t P1IES// Port 1 Interrupt Edge Select Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIfg_t P1IFG// Port 1 Interrupt Flag Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIe_t P2IE// Port 2 Interrupt Enable Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIes_t P2IES// Port 2 Interrupt Edge Select Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIfg_t P2IFG// Port 2 Interrupt Flag Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIe_t P3IE// Port 3 Interrupt Enable Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIes_t P3IES// Port 3 Interrupt Edge Select Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIfg_t P3IFG// Port 3 Interrupt Flag Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIe_t P4IE// Port 4 Interrupt Enable Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIes_t P4IES// Port 4 Interrupt Edge Select Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.GpioBits8PxIfg_t P4IFG// Port 4 Interrupt Flag Register = {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: IGPIO.BIT2_OFF,
        Bit3: IGPIO.BIT3_OFF,
        Bit4: IGPIO.BIT4_OFF,
        Bit5: IGPIO.BIT5_OFF,
        Bit6: IGPIO.BIT6_OFF,
        Bit7: IGPIO.BIT7_OFF
    };
    config IGPIO.DevicePinFunctionSetting_t devicePinSetting// Forward Declaration of Device Pin Functional Configuration[][];
    config IGPIO.regIntVect_t interruptSource// GPIO interrupt source[32];
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
     IGPIO.MatchedPortFunction_t findPinsForFunction// Identify all device pins that can be used to serve a certain purpose(String regExp);
    UInt getPinFunctionIndex// Get a pin's current functional configuration(UInt port, UInt pin);
    Any getPinOwner// This function returns the current owner of the specified device pin(UInt port, UInt pin);
    Bool pinFunctionIsActive// Check if a pin is enabled for a certain function(UInt port, UInt pin, String regExp);
    Void setDefaultPinFunction// Configure a device pin to its default state(UInt port, UInt pin, Any owner);
    Void setPinFunctionUsingIndex// Configure a device pin to a specific peripheral function(UInt port, UInt pin, UInt index, Any owner);
}
enum IGPIO.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum Bit0_t {
    BIT0_OFF,
    BIT0
};
enum IGPIO.Bit1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum Bit1_t {
    BIT1_OFF,
    BIT1
};
enum IGPIO.Bit2_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum Bit2_t {
    BIT2_OFF,
    BIT2
};
enum IGPIO.Bit3_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum Bit3_t {
    BIT3_OFF,
    BIT3
};
enum IGPIO.Bit4_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum Bit4_t {
    BIT4_OFF,
    BIT4
};
enum IGPIO.Bit5_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum Bit5_t {
    BIT5_OFF,
    BIT5
};
enum IGPIO.Bit6_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum Bit6_t {
    BIT6_OFF,
    BIT6
};
enum IGPIO.Bit7_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum Bit7_t {
    BIT7_OFF,
    BIT7
};
enum IGPIO.InterruptEnable_t
index URL

Interrupt enables drop down list

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum InterruptEnable_t {
    IE_OFF,
    // Disabled
    IE_FALLING,
    // Interrupt Enabled Falling Edge
    IE_RISING
    // Interrupt Enabled Rising Edge
};
enum IGPIO.OutputState_t
index URL

Output high or low drop down list

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum OutputState_t {
    OUTSTATE_LOW,
    // Output Set Low (Default)
    OUTSTATE_HIGH
    // Output Set High
};
enum IGPIO.ResEnable_t
index URL

Pull-up/down resistor enables drop down list

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
enum ResEnable_t {
    PUDRE_OFF,
    // Disabled
    PUDRE_UP,
    // Pull-Up Resistor
    PUDRE_DOWN
    // Pull-Down Resistor
};
typedef IGPIO.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IGPIO.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
typedef String StringArray[];
struct IGPIO.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct DevicePinFunctionSetting_t {
    UInt functionIndex;
    // Device Pin Functional Selection
    Any owner;
    // Current Device Pin Owner
     IGPIO.ResEnable_t resistorEnable;
    // Pull-up/down Resistor Enable Selection
     IGPIO.OutputState_t outputDirState;
    // Output Direction State Selection
     IGPIO.InterruptEnable_t interruptEnable;
    // Interrupt Enable State Selection
    Bool outputDirStateEnabled;
    // Enable state for output direction state selection
    Bool inputDirStateEnabled;
    // Enable state for input direction state selection
};
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct IGPIO.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct DevicePinFunction_t {
    String functionName[];
     IGPIO.DeviceRegisterConfig_t functionConfig[][];
};
DETAILS
Type to describe how a device pin is configured for all its different uses that are possible. The function names are consolidated in one String array rather than located together with the function- specific data to allow easier access by Grace widgets. The functionConfig member contains an arbitrary-length array describing all register settings that need to be performed to configure a certain function.
SEE
DevicePinFunction_t
struct IGPIO.DevicePin_t
index URL

Device Pin Descriptor

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct DevicePin_t {
    String pinName;
     IGPIO.DevicePinFunction_t pinFunction;
};
DETAILS
Type to describe a single device pin and all its possible configurations.
SEE
DevicePin_t
struct IGPIO.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct DeviceRegisterConfig_t {
    String register;
    UInt bitSetMask;
    UInt bitClearMask;
};
DETAILS
Type to describe how a register is configured for a particular use. The type allows setting and clearing of an arbitrary bit pattern inside the specified register.
SEE
DeviceRegisterConfig_t
struct IGPIO.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IGPIO.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct GpioBits8PxDir_t {
     IGPIO.Bit0_t Bit0;
  // GPIO Select Direction Bit 0
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
     IGPIO.Bit1_t Bit1;
  // GPIO Select Direction Bit 1
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
     IGPIO.Bit2_t Bit2;
  // GPIO Select Direction Bit 2
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
     IGPIO.Bit3_t Bit3;
  // GPIO Select Direction Bit 3
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
     IGPIO.Bit4_t Bit4;
  // GPIO Select Direction Bit 4
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
     IGPIO.Bit5_t Bit5;
  // GPIO Select Direction Bit 5
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
     IGPIO.Bit6_t Bit6;
  // GPIO Select Direction Bit 6
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
     IGPIO.Bit7_t Bit7;
  // GPIO Select Direction Bit 7
Bit = 0: The port pin is switched to input direction
Bit = 1: The port pin is switched to output direction
};
SEE
GpioBits8PxDir_t
struct IGPIO.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct GpioBits8PxIe_t {
     IGPIO.Bit0_t Bit0;
  // GPIO Interrupt Enable Bit 0
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
     IGPIO.Bit1_t Bit1;
  // GPIO Interrupt Enable Bit 1
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
     IGPIO.Bit2_t Bit2;
  // GPIO Interrupt Enable Bit 2
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
     IGPIO.Bit3_t Bit3;
  // GPIO Interrupt Enable Bit 3
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
     IGPIO.Bit4_t Bit4;
  // GPIO Interrupt Enable Bit 4
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
     IGPIO.Bit5_t Bit5;
  // GPIO Interrupt Enable Bit 5
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
     IGPIO.Bit6_t Bit6;
  // GPIO Interrupt Enable Bit 6
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
     IGPIO.Bit7_t Bit7;
  // GPIO Interrupt Enable Bit 7
Bit = 0: The interrupt is disabled.
Bit = 1: The interrupt is enabled
};
SEE
GpioBits8PxIe_t
struct IGPIO.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct GpioBits8PxIes_t {
     IGPIO.Bit0_t Bit0;
  // GPIO Select Interrupt Edge Bit 0
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
     IGPIO.Bit1_t Bit1;
  // GPIO Select Interrupt Edge Bit 1
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
     IGPIO.Bit2_t Bit2;
  // GPIO Select Interrupt Edge Bit 2
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
     IGPIO.Bit3_t Bit3;
  // GPIO Select Interrupt Edge Bit 3
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
     IGPIO.Bit4_t Bit4;
  // GPIO Select Interrupt Edge Bit 4
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
     IGPIO.Bit5_t Bit5;
  // GPIO Select Interrupt Edge Bit 5
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
     IGPIO.Bit6_t Bit6;
  // GPIO Select Interrupt Edge Bit 6
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
     IGPIO.Bit7_t Bit7;
  // GPIO Select Interrupt Edge Bit 7
Bit = 0: The PxIFGx flag is set with a low-to-high transition
Bit = 1: The PxIFGx flag is set with a high-to-low transition
};
SEE
GpioBits8PxIes_t
struct IGPIO.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct GpioBits8PxIfg_t {
     IGPIO.Bit0_t Bit0;
  // GPIO Interrupt Flag Bit 0
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
     IGPIO.Bit1_t Bit1;
  // GPIO Interrupt Flag Bit 1
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
     IGPIO.Bit2_t Bit2;
  // GPIO Interrupt Flag Bit 2
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
     IGPIO.Bit3_t Bit3;
  // GPIO Interrupt Flag Bit 3
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
     IGPIO.Bit4_t Bit4;
  // GPIO Interrupt Flag Bit 4
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
     IGPIO.Bit5_t Bit5;
  // GPIO Interrupt Flag Bit 5
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
     IGPIO.Bit6_t Bit6;
  // GPIO Interrupt Flag Bit 6
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
     IGPIO.Bit7_t Bit7;
  // GPIO Interrupt Flag Bit 7
Bit = 0: No interrupt is pending
Bit = 1: An interrupt is pending
};
SEE
GpioBits8PxIfg_t
struct IGPIO.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct GpioBits8PxIn_t {
     IGPIO.Bit0_t Bit0;
    // GPIO Input Signal Bit 0
     IGPIO.Bit1_t Bit1;
    // GPIO Input Signal Bit 1
     IGPIO.Bit2_t Bit2;
    // GPIO Input Signal Bit 2
     IGPIO.Bit3_t Bit3;
    // GPIO Input Signal Bit 3
     IGPIO.Bit4_t Bit4;
    // GPIO Input Signal Bit 4
     IGPIO.Bit5_t Bit5;
    // GPIO Input Signal Bit 5
     IGPIO.Bit6_t Bit6;
    // GPIO Input Signal Bit 6
     IGPIO.Bit7_t Bit7;
    // GPIO Input Signal Bit 7
};
SEE
GpioBits8_t
struct IGPIO.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct GpioBits8PxOut_t {
     IGPIO.Bit0_t Bit0;
    // GPIO Output Signal Bit 0
     IGPIO.Bit1_t Bit1;
    // GPIO Output Signal Bit 1
     IGPIO.Bit2_t Bit2;
    // GPIO Output Signal Bit 2
     IGPIO.Bit3_t Bit3;
    // GPIO Output Signal Bit 3
     IGPIO.Bit4_t Bit4;
    // GPIO Output Signal Bit 4
     IGPIO.Bit5_t Bit5;
    // GPIO Output Signal Bit 5
     IGPIO.Bit6_t Bit6;
    // GPIO Output Signal Bit 6
     IGPIO.Bit7_t Bit7;
    // GPIO Output Signal Bit 7
};
SEE
GpioBits8PxOut_t
struct IGPIO.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct GpioBits8PxRen_t {
     IGPIO.Bit0_t Bit0;
  // GPIO Enables or Disables Pullup/Pulldown Bit 0
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
     IGPIO.Bit1_t Bit1;
  // GPIO Enables or Disables Pullup/Pulldown Bit 1
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
     IGPIO.Bit2_t Bit2;
  // GPIO Enables or Disables Pullup/Pulldown Bit 2
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
     IGPIO.Bit3_t Bit3;
  // GPIO Enables or Disables Pullup/Pulldown Bit 3
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
     IGPIO.Bit4_t Bit4;
  // GPIO Enables or Disables Pullup/Pulldown Bit 4
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
     IGPIO.Bit5_t Bit5;
  // GPIO Enables or Disables Pullup/Pulldown Bit 5
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
     IGPIO.Bit6_t Bit6;
  // GPIO Enables or Disables Pullup/Pulldown Bit 6
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
     IGPIO.Bit7_t Bit7;
  // GPIO Enables or Disables Pullup/Pulldown Bit 7
Bit = 0: Pullup/pulldown resistor disabled
Bit = 1: Pullup/pulldown resistor enabled
         Set Pullup/down via PxOUT 0 = Down; 1 = Up
};
SEE
GpioBits8PxRen_t
struct IGPIO.GpioBits8PxSel2_t
index URL

Generic GPIO 8-bit PxSEL2 Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct GpioBits8PxSel2_t {
     IGPIO.Bit0_t Bit0;
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
     IGPIO.Bit1_t Bit1;
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
     IGPIO.Bit2_t Bit2;
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
     IGPIO.Bit3_t Bit3;
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
     IGPIO.Bit4_t Bit4;
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
     IGPIO.Bit5_t Bit5;
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
     IGPIO.Bit6_t Bit6;
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
     IGPIO.Bit7_t Bit7;
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
};
SEE
GpioBits8PxSel2_t
struct IGPIO.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct GpioBits8PxSel_t {
     IGPIO.Bit0_t Bit0;
    // GPIO Select Pin Function Bit 0 See the device-specific data sheet to determine pin functions
     IGPIO.Bit1_t Bit1;
    // GPIO Select Pin Function Bit 1 See the device-specific data sheet to determine pin functions
     IGPIO.Bit2_t Bit2;
    // GPIO Select Pin Function Bit 2 See the device-specific data sheet to determine pin functions
     IGPIO.Bit3_t Bit3;
    // GPIO Select Pin Function Bit 3 See the device-specific data sheet to determine pin functions
     IGPIO.Bit4_t Bit4;
    // GPIO Select Pin Function Bit 4 See the device-specific data sheet to determine pin functions
     IGPIO.Bit5_t Bit5;
    // GPIO Select Pin Function Bit 5 See the device-specific data sheet to determine pin functions
     IGPIO.Bit6_t Bit6;
    // GPIO Select Pin Function Bit 6 See the device-specific data sheet to determine pin functions
     IGPIO.Bit7_t Bit7;
    // GPIO Select Pin Function Bit 7 See the device-specific data sheet to determine pin functions
};
SEE
GpioBits8PxSel_t
struct IGPIO.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct MatchedPortFunction_t {
    UInt port[];
    UInt pin[];
    String pinName[];
    UInt functionIndex[];
    String functionName[];
};
DETAILS
This type is used to store a list of applicable pins based on the search criteria when using the function findPinsForFunction().
SEE
MatchedPortFunction_t
struct IGPIO.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IGPIO.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IGPIO.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IGPIO.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIe_t P1IE = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIes_t P1IES = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIfg_t P1IFG = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIe_t P2IE = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIes_t P2IES = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIfg_t P2IFG = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P3IE // instance
index URL

Port 3 Interrupt Enable Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIe_t P3IE = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P3IES // instance
index URL

Port 3 Interrupt Edge Select Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIes_t P3IES = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P3IFG // instance
index URL

Port 3 Interrupt Flag Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIfg_t P3IFG = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P4IE // instance
index URL

Port 4 Interrupt Enable Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIe_t P4IE = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P4IES // instance
index URL

Port 4 Interrupt Edge Select Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIes_t P4IES = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.P4IFG // instance
index URL

Port 4 Interrupt Flag Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.GpioBits8PxIfg_t P4IFG = {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config IGPIO.devicePinSetting // instance
index URL

Forward Declaration of Device Pin Functional Configuration

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.DevicePinFunctionSetting_t devicePinSetting[][];
config IGPIO.interruptSource // instance
index URL

GPIO interrupt source

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.regIntVect_t interruptSource[32];
config IGPIO.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IGPIO.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config String owner;
IGPIO.findPinsForFunction() // instance
index URL

Identify all device pins that can be used to serve a certain purpose

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
IGPIO.MatchedPortFunction_t findPinsForFunction(String regExp);
DETAILS
Function to scan through the pin configuration database to identify a list of device pins matching a regular expression.
IGPIO.getPinFunctionIndex() // instance
index URL

Get a pin's current functional configuration

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
UInt getPinFunctionIndex(UInt port, UInt pin);
DETAILS
This function is used to obtain the current configuration of a given device pin. The returned value can be used as an index to obtain further information from the pin configuration database.
IGPIO.getPinOwner() // instance
index URL

This function returns the current owner of the specified device pin

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
Any getPinOwner(UInt port, UInt pin);
IGPIO.pinFunctionIsActive() // instance
index URL

Check if a pin is enabled for a certain function

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
Bool pinFunctionIsActive(UInt port, UInt pin, String regExp);
DETAILS
This function is used to check if a certain functionality is enabled on a given device pins (returns 'true' in that case).
IGPIO.setDefaultPinFunction() // instance
index URL

Configure a device pin to its default state

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
Void setDefaultPinFunction(UInt port, UInt pin, Any owner);
DETAILS
This function is used to configure a device pin to its default state and is typically used when a peripheral module relinquishes ownership of a pin so that it can be used by other peripheral modules.
IGPIO.setPinFunctionUsingIndex() // instance
index URL

Configure a device pin to a specific peripheral function

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
Void setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner);
DETAILS
This function is used to configure a device pin to a specific peripheral function that is identified by an index. The index corresponds to an associated set of configuration parameters stored in the pin configuration database. The owner parameter can be used to protect a pin from being used by somebody else. A pin configuration can only be changed if the current owner is undefined, or of the current owner matches the owner specified as function parameter.
generated on Thu, 08 Nov 2012 02:17:12 GMT


interface ti.catalog.msp430.peripherals.gpio.IGPIO

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IGPIO ========
    14     *  MSP430 General Purpose Input Output Ports
    15     */
    16    metaonly interface IGPIO inherits xdc.platform.IPeripheral {
    17
    18        /*! Pull-up/down resistor enables drop down list */
    19        enum ResEnable_t {
    20            PUDRE_OFF  = 0x00u,                  /*! Disabled */
    21            PUDRE_UP   = 0x01u,                  /*! Pull-Up Resistor */
    22            PUDRE_DOWN = 0x02u                   /*! Pull-Down Resistor */
    23        }
    24
    25        /*! Interrupt enables drop down list */
    26        enum InterruptEnable_t {
    27            IE_OFF     = 0x00u,                 /*! Disabled */
    28            IE_FALLING = 0x01u,                 /*! Interrupt Enabled Falling Edge */
    29            IE_RISING  = 0x02u                  /*! Interrupt Enabled Rising Edge  */
    30        }
    31
    32        /*! Output high or low drop down list */
    33        enum OutputState_t {
    34            OUTSTATE_LOW   = 0x00u,             /*! Output Set Low (Default) */
    35            OUTSTATE_HIGH  = 0x01u              /*! Output Set High */
    36        }
    37
    38        /*! GPIO Bit 0 Definitions */
    39        enum Bit0_t {
    40            BIT0_OFF = 0x00u,
    41            BIT0 = 0x01u
    42        };
    43
    44        enum Bit1_t {
    45            BIT1_OFF = 0x00u,
    46            BIT1 = 0x02u
    47        };
    48
    49        enum Bit2_t {
    50            BIT2_OFF = 0x00u,
    51            BIT2 = 0x04u
    52        };
    53
    54        enum Bit3_t {
    55            BIT3_OFF = 0x00u,
    56            BIT3 = 0x08u
    57        };
    58
    59        enum Bit4_t {
    60            BIT4_OFF = 0x00u,
    61            BIT4 = 0x10u
    62        };
    63
    64        enum Bit5_t {
    65            BIT5_OFF = 0x00u,
    66            BIT5 = 0x20u
    67        };
    68
    69        enum Bit6_t {
    70            BIT6_OFF = 0x00u,
    71            BIT6 = 0x20u
    72        };
    73
    74        enum Bit7_t {
    75            BIT7_OFF = 0x00u,
    76            BIT7 = 0x80u
    77        };
    78
    79        /*!
    80        *  ======== GpioBits8_t ========
    81        *  Generic GPIO 8-bit Register
    82        *
    83        *  @see #GpioBits8_t
    84        */
    85        struct GpioBits8PxIn_t {
    86            Bit0_t    Bit0;     /*! GPIO Input Signal Bit 0 */
    87            Bit1_t    Bit1;     /*! GPIO Input Signal Bit 1 */
    88            Bit2_t    Bit2;     /*! GPIO Input Signal Bit 2 */
    89            Bit3_t    Bit3;     /*! GPIO Input Signal Bit 3 */
    90            Bit4_t    Bit4;     /*! GPIO Input Signal Bit 4 */
    91            Bit5_t    Bit5;     /*! GPIO Input Signal Bit 5 */
    92            Bit6_t    Bit6;     /*! GPIO Input Signal Bit 6 */
    93            Bit7_t    Bit7;     /*! GPIO Input Signal Bit 7 */
    94        }
    95
    96        /*!
    97        *  ======== GpioBits8PxOut_t ========
    98        *  Generic GPIO 8-bit PxOUT Register
    99        *
   100        *  @see #GpioBits8PxOut_t
   101        */
   102        struct GpioBits8PxOut_t {
   103            Bit0_t    Bit0;     /*! GPIO Output Signal Bit 0 */
   104            Bit1_t    Bit1;     /*! GPIO Output Signal Bit 1 */
   105            Bit2_t    Bit2;     /*! GPIO Output Signal Bit 2 */
   106            Bit3_t    Bit3;     /*! GPIO Output Signal Bit 3 */
   107            Bit4_t    Bit4;     /*! GPIO Output Signal Bit 4 */
   108            Bit5_t    Bit5;     /*! GPIO Output Signal Bit 5 */
   109            Bit6_t    Bit6;     /*! GPIO Output Signal Bit 6 */
   110            Bit7_t    Bit7;     /*! GPIO Output Signal Bit 7 */
   111        }
   112
   113        /*!
   114        *  ======== GpioBits8PxDir_t ========
   115        *  Generic GPIO 8-bit PxDIR Register
   116        *
   117        *  @see #GpioBits8PxDir_t
   118        */
   119        struct GpioBits8PxDir_t {
   120            Bit0_t    Bit0;     /*! GPIO Select Direction Bit 0
   121                                   *  Bit = 0: The port pin is switched to input direction
   122                                   *  Bit = 1: The port pin is switched to output direction */
   123            Bit1_t    Bit1;     /*! GPIO Select Direction Bit 1
   124                                   *  Bit = 0: The port pin is switched to input direction
   125                                   *  Bit = 1: The port pin is switched to output direction */
   126            Bit2_t    Bit2;     /*! GPIO Select Direction Bit 2
   127                                   *  Bit = 0: The port pin is switched to input direction
   128                                   *  Bit = 1: The port pin is switched to output direction */
   129            Bit3_t    Bit3;     /*! GPIO Select Direction Bit 3
   130                                   *  Bit = 0: The port pin is switched to input direction
   131                                   *  Bit = 1: The port pin is switched to output direction */
   132            Bit4_t    Bit4;     /*! GPIO Select Direction Bit 4
   133                                   *  Bit = 0: The port pin is switched to input direction
   134                                   *  Bit = 1: The port pin is switched to output direction */
   135            Bit5_t    Bit5;     /*! GPIO Select Direction Bit 5
   136                                   *  Bit = 0: The port pin is switched to input direction
   137                                   *  Bit = 1: The port pin is switched to output direction */
   138            Bit6_t    Bit6;     /*! GPIO Select Direction Bit 6
   139                                   *  Bit = 0: The port pin is switched to input direction
   140                                   *  Bit = 1: The port pin is switched to output direction */
   141            Bit7_t    Bit7;     /*! GPIO Select Direction Bit 7
   142                                   *  Bit = 0: The port pin is switched to input direction
   143                                   *  Bit = 1: The port pin is switched to output direction */
   144        }
   145
   146        /*!
   147        *  ======== GpioBits8PxRen_t ========
   148        *  Generic GPIO 8-bit PxREN Register
   149        *
   150        *  @see #GpioBits8PxRen_t
   151        */
   152        struct GpioBits8PxRen_t {
   153            Bit0_t    Bit0;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 0
   154                                   *  Bit = 0: Pullup/pulldown resistor disabled
   155                                   *  Bit = 1: Pullup/pulldown resistor enabled
   156                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   157            Bit1_t    Bit1;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 1
   158                                   *  Bit = 0: Pullup/pulldown resistor disabled
   159                                   *  Bit = 1: Pullup/pulldown resistor enabled
   160                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   161            Bit2_t    Bit2;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 2
   162                                   *  Bit = 0: Pullup/pulldown resistor disabled
   163                                   *  Bit = 1: Pullup/pulldown resistor enabled
   164                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   165            Bit3_t    Bit3;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 3
   166                                   *  Bit = 0: Pullup/pulldown resistor disabled
   167                                   *  Bit = 1: Pullup/pulldown resistor enabled
   168                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   169            Bit4_t    Bit4;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 4
   170                                   *  Bit = 0: Pullup/pulldown resistor disabled
   171                                   *  Bit = 1: Pullup/pulldown resistor enabled
   172                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   173            Bit5_t    Bit5;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 5
   174                                   *  Bit = 0: Pullup/pulldown resistor disabled
   175                                   *  Bit = 1: Pullup/pulldown resistor enabled
   176                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   177            Bit6_t    Bit6;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 6
   178                                   *  Bit = 0: Pullup/pulldown resistor disabled
   179                                   *  Bit = 1: Pullup/pulldown resistor enabled
   180                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   181            Bit7_t    Bit7;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 7
   182                                   *  Bit = 0: Pullup/pulldown resistor disabled
   183                                   *  Bit = 1: Pullup/pulldown resistor enabled
   184                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   185        }
   186
   187        /*!
   188        *  ======== GpioBits8PxSel_t ========
   189        *  Generic GPIO 8-bit PxSEL Register
   190        *
   191        *  @see #GpioBits8PxSel_t
   192        */
   193        struct GpioBits8PxSel_t {
   194            Bit0_t    Bit0;     /*! GPIO Select Pin Function Bit 0
   195                                   *See the device-specific data sheet to determine pin functions. */
   196            Bit1_t    Bit1;     /*! GPIO Select Pin Function Bit 1
   197                                   *See the device-specific data sheet to determine pin functions. */
   198            Bit2_t    Bit2;     /*! GPIO Select Pin Function Bit 2
   199                                   *See the device-specific data sheet to determine pin functions. */
   200            Bit3_t    Bit3;     /*! GPIO Select Pin Function Bit 3
   201                                   *See the device-specific data sheet to determine pin functions. */
   202            Bit4_t    Bit4;     /*! GPIO Select Pin Function Bit 4
   203                                   *See the device-specific data sheet to determine pin functions. */
   204            Bit5_t    Bit5;     /*! GPIO Select Pin Function Bit 5
   205                                   *See the device-specific data sheet to determine pin functions. */
   206            Bit6_t    Bit6;     /*! GPIO Select Pin Function Bit 6
   207                                   *See the device-specific data sheet to determine pin functions. */
   208            Bit7_t    Bit7;     /*! GPIO Select Pin Function Bit 7
   209                                   *See the device-specific data sheet to determine pin functions. */
   210        }
   211
   212        /*!
   213        *  ======== GpioBits8PxSel2_t ========
   214        *  Generic GPIO 8-bit PxSEL2 Register
   215        *
   216        *  @see #GpioBits8PxSel2_t
   217        */
   218        struct GpioBits8PxSel2_t {
   219            Bit0_t    Bit0;     /*! GPIO Select Pin Function Bit 0
   220                                   *See the device-specific data sheet to determine pin functions. */
   221            Bit1_t    Bit1;     /*! GPIO Select Pin Function Bit 1
   222                                   *See the device-specific data sheet to determine pin functions. */
   223            Bit2_t    Bit2;     /*! GPIO Select Pin Function Bit 2
   224                                   *See the device-specific data sheet to determine pin functions. */
   225            Bit3_t    Bit3;     /*! GPIO Select Pin Function Bit 3
   226                                   *See the device-specific data sheet to determine pin functions. */
   227            Bit4_t    Bit4;     /*! GPIO Select Pin Function Bit 4
   228                                   *See the device-specific data sheet to determine pin functions. */
   229            Bit5_t    Bit5;     /*! GPIO Select Pin Function Bit 5
   230                                   *See the device-specific data sheet to determine pin functions. */
   231            Bit6_t    Bit6;     /*! GPIO Select Pin Function Bit 6
   232                                   *See the device-specific data sheet to determine pin functions. */
   233            Bit7_t    Bit7;     /*! GPIO Select Pin Function Bit 7
   234                                   *See the device-specific data sheet to determine pin functions. */
   235        }
   236
   237        /*!
   238        *  ======== GpioBits8PxIe_t ========
   239        *  Generic GPIO 8-bit PxIE Register
   240        *
   241        *  @see #GpioBits8PxIe_t
   242        */
   243        struct GpioBits8PxIe_t {
   244            Bit0_t    Bit0;     /*! GPIO Interrupt Enable Bit 0
   245                                   *  Bit = 0: The interrupt is disabled.
   246                                   *  Bit = 1: The interrupt is enabled. */
   247            Bit1_t    Bit1;     /*! GPIO Interrupt Enable Bit 1
   248                                   *  Bit = 0: The interrupt is disabled.
   249                                   *  Bit = 1: The interrupt is enabled. */
   250            Bit2_t    Bit2;     /*! GPIO Interrupt Enable Bit 2
   251                                   *  Bit = 0: The interrupt is disabled.
   252                                   *  Bit = 1: The interrupt is enabled. */
   253            Bit3_t    Bit3;     /*! GPIO Interrupt Enable Bit 3
   254                                   *  Bit = 0: The interrupt is disabled.
   255                                   *  Bit = 1: The interrupt is enabled. */
   256            Bit4_t    Bit4;     /*! GPIO Interrupt Enable Bit 4
   257                                   *  Bit = 0: The interrupt is disabled.
   258                                   *  Bit = 1: The interrupt is enabled. */
   259            Bit5_t    Bit5;     /*! GPIO Interrupt Enable Bit 5
   260                                   *  Bit = 0: The interrupt is disabled.
   261                                   *  Bit = 1: The interrupt is enabled. */
   262            Bit6_t    Bit6;     /*! GPIO Interrupt Enable Bit 6
   263                                   *  Bit = 0: The interrupt is disabled.
   264                                   *  Bit = 1: The interrupt is enabled. */
   265            Bit7_t    Bit7;     /*! GPIO Interrupt Enable Bit 7
   266                                   *  Bit = 0: The interrupt is disabled.
   267                                   *  Bit = 1: The interrupt is enabled. */
   268        }
   269
   270        /*!
   271        *  ======== GpioBits8PxIes_t ========
   272        *  Generic GPIO 8-bit PxIES Register
   273        *
   274        *  @see #GpioBits8PxIes_t
   275        */
   276        struct GpioBits8PxIes_t {
   277            Bit0_t    Bit0;     /*! GPIO Select Interrupt Edge Bit 0
   278                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   279                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   280            Bit1_t    Bit1;     /*! GPIO Select Interrupt Edge Bit 1
   281                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   282                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   283            Bit2_t    Bit2;     /*! GPIO Select Interrupt Edge Bit 2
   284                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   285                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   286            Bit3_t    Bit3;     /*! GPIO Select Interrupt Edge Bit 3
   287                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   288                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   289            Bit4_t    Bit4;     /*! GPIO Select Interrupt Edge Bit 4
   290                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   291                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   292            Bit5_t    Bit5;     /*! GPIO Select Interrupt Edge Bit 5
   293                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   294                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   295            Bit6_t    Bit6;     /*! GPIO Select Interrupt Edge Bit 6
   296                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   297                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   298            Bit7_t    Bit7;     /*! GPIO Select Interrupt Edge Bit 7
   299                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   300                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   301        }
   302
   303        /*!
   304        *  ======== GpioBits8PxIfg_t ========
   305        *  Generic GPIO 8-bit PxIFG Register
   306        *
   307        *  @see #GpioBits8PxIfg_t
   308        */
   309        struct GpioBits8PxIfg_t {
   310            Bit0_t    Bit0;     /*! GPIO Interrupt Flag Bit 0
   311                                   *  Bit = 0: No interrupt is pending
   312                                   *  Bit = 1: An interrupt is pending */
   313            Bit1_t    Bit1;     /*! GPIO Interrupt Flag Bit 1
   314                                   *  Bit = 0: No interrupt is pending
   315                                   *  Bit = 1: An interrupt is pending */
   316            Bit2_t    Bit2;     /*! GPIO Interrupt Flag Bit 2
   317                                   *  Bit = 0: No interrupt is pending
   318                                   *  Bit = 1: An interrupt is pending */
   319            Bit3_t    Bit3;     /*! GPIO Interrupt Flag Bit 3
   320                                   *  Bit = 0: No interrupt is pending
   321                                   *  Bit = 1: An interrupt is pending */
   322            Bit4_t    Bit4;     /*! GPIO Interrupt Flag Bit 4
   323                                   *  Bit = 0: No interrupt is pending
   324                                   *  Bit = 1: An interrupt is pending */
   325            Bit5_t    Bit5;     /*! GPIO Interrupt Flag Bit 5
   326                                   *  Bit = 0: No interrupt is pending
   327                                   *  Bit = 1: An interrupt is pending */
   328            Bit6_t    Bit6;     /*! GPIO Interrupt Flag Bit 6
   329                                   *  Bit = 0: No interrupt is pending
   330                                   *  Bit = 1: An interrupt is pending */
   331            Bit7_t    Bit7;     /*! GPIO Interrupt Flag Bit 7
   332                                   *  Bit = 0: No interrupt is pending
   333                                   *  Bit = 1: An interrupt is pending */
   334        }
   335
   336        /*!
   337        *  ======== DeviceRegisterConfig_t ========
   338        *  Device Register Configuration Descriptor
   339        *
   340        *  Type to describe how a register is configured for a particular
   341        *  use. The type allows setting and clearing of an arbitrary bit
   342        *  pattern inside the specified register.
   343        *
   344        *  @see #DeviceRegisterConfig_t
   345        */
   346        struct DeviceRegisterConfig_t {
   347            String              register;
   348            UInt                bitSetMask;
   349            UInt                bitClearMask;
   350        }
   351
   352        /*!
   353        *  ======== DevicePinFunction_t ========
   354        *  Device Pin Functional Descriptor
   355        *
   356        *  Type to describe how a device pin is configured for all its
   357        *  different uses that are possible. The function names are consolidated
   358        *  in one String array rather than located together with the function-
   359        *  specific data to allow easier access by Grace widgets. The functionConfig
   360        *  member contains an arbitrary-length array describing all register
   361        *  settings that need to be performed to configure a certain function.
   362        *
   363        *  @see #DevicePinFunction_t
   364        */
   365        struct DevicePinFunction_t {
   366            String                    functionName[];
   367            DeviceRegisterConfig_t    functionConfig[][];
   368        }
   369
   370        /*!
   371        *  ======== DevicePin_t ========
   372        *  Device Pin Descriptor
   373        *
   374        *  Type to describe a single device pin and all its possible
   375        *  configurations.
   376        *
   377        *  @see #DevicePin_t
   378        */
   379        struct DevicePin_t {
   380            String                    pinName;
   381            DevicePinFunction_t       pinFunction;
   382        }
   383
   384        /*!
   385        *  ======== MatchedPortFunction_t ========
   386        *  Port Function Enumeration Type
   387        *
   388        *  This type is used to store a list of applicable pins based on the
   389        *  search criteria when using the function findPinsForFunction().
   390        *
   391        *  @see #MatchedPortFunction_t
   392        */
   393        struct MatchedPortFunction_t {
   394            UInt      port[];
   395            UInt      pin[];
   396            String    pinName[];
   397            UInt      functionIndex[];
   398            String    functionName[];
   399        }
   400
   401        /*!
   402        *  ======== DevicePinFunctionSetting_t ========
   403        *  Device Pin Functional Setting Descriptor
   404        *
   405        *  Type to store the selected pin configuration and a reference
   406        *  to the object that last modified the configuration.
   407        *
   408        *  @see #DevicePinFunctionSetting_t
   409        */
   410        struct DevicePinFunctionSetting_t {
   411            UInt               functionIndex;       /*! Device Pin Functional Selection */
   412            Any                owner;               /*! Current Device Pin Owner */
   413            ResEnable_t        resistorEnable;      /*! Pull-up/down Resistor Enable Selection */
   414            OutputState_t      outputDirState;      /*! Output Direction State Selection */
   415            InterruptEnable_t  interruptEnable;     /*! Interrupt Enable State Selection */
   416            Bool               outputDirStateEnabled;/*! Enable state for output direction state selection */
   417            Bool               inputDirStateEnabled;/*! Enable state for input direction state selection */
   418        }
   419
   420        /*!
   421        *  ======== ForceSetDefaultRegister_t ========
   422        *  Force Set Default Register
   423        *
   424        *  Type to store if each register needs to be forced initialized
   425        *  even if the register is in default state.
   426        *
   427        *  @see #ForceSetDefaultRegister_t
   428        */
   429        struct ForceSetDefaultRegister_t {
   430            String     register;
   431            Bool       regForceSet;
   432        }
   433
   434        /*!
   435        *  ======== regIntVect_t ========
   436        *  Interrupt vector description
   437        *
   438        *  Type to describe a single interrupt vector pin and all its possible
   439        *  configurations.
   440        *
   441        *  @see #regIntVect_t
   442        */
   443        struct regIntVect_t {
   444            String                    registerName;
   445            String                    registerDescription;
   446            String                    isrToggleString;
   447            String                    priorityName;
   448            Bool                      interruptEnable;
   449            Bool                      interruptHandler;
   450            Int                       priority;
   451        }
   452
   453    instance:
   454        /*! Port 1 Interrupt Edge Select Register */
   455        config GpioBits8PxIes_t P1IES = {
   456            Bit0        : BIT0_OFF,
   457            Bit1        : BIT1_OFF,
   458            Bit2        : BIT2_OFF,
   459            Bit3        : BIT3_OFF,
   460            Bit4        : BIT4_OFF,
   461            Bit5        : BIT5_OFF,
   462            Bit6        : BIT6_OFF,
   463            Bit7        : BIT7_OFF
   464        };
   465
   466        /*! Port 1 Interrupt Flag Register */
   467        config GpioBits8PxIfg_t P1IFG = {
   468            Bit0        : BIT0_OFF,
   469            Bit1        : BIT1_OFF,
   470            Bit2        : BIT2_OFF,
   471            Bit3        : BIT3_OFF,
   472            Bit4        : BIT4_OFF,
   473            Bit5        : BIT5_OFF,
   474            Bit6        : BIT6_OFF,
   475            Bit7        : BIT7_OFF
   476        };
   477
   478        /*! Port 1 Interrupt Enable Register */
   479        config GpioBits8PxIe_t P1IE = {
   480            Bit0        : BIT0_OFF,
   481            Bit1        : BIT1_OFF,
   482            Bit2        : BIT2_OFF,
   483            Bit3        : BIT3_OFF,
   484            Bit4        : BIT4_OFF,
   485            Bit5        : BIT5_OFF,
   486            Bit6        : BIT6_OFF,
   487            Bit7        : BIT7_OFF
   488        };
   489
   490        /*! Port 2 Interrupt Edge Select Register */
   491        config GpioBits8PxIes_t P2IES = {
   492            Bit0        : BIT0_OFF,
   493            Bit1        : BIT1_OFF,
   494            Bit2        : BIT2_OFF,
   495            Bit3        : BIT3_OFF,
   496            Bit4        : BIT4_OFF,
   497            Bit5        : BIT5_OFF,
   498            Bit6        : BIT6_OFF,
   499            Bit7        : BIT7_OFF
   500        };
   501
   502        /*! Port 2 Interrupt Flag Register */
   503        config GpioBits8PxIfg_t P2IFG = {
   504            Bit0        : BIT0_OFF,
   505            Bit1        : BIT1_OFF,
   506            Bit2        : BIT2_OFF,
   507            Bit3        : BIT3_OFF,
   508            Bit4        : BIT4_OFF,
   509            Bit5        : BIT5_OFF,
   510            Bit6        : BIT6_OFF,
   511            Bit7        : BIT7_OFF
   512        };
   513
   514        /*! Port 2 Interrupt Enable Register */
   515        config GpioBits8PxIe_t P2IE = {
   516            Bit0        : BIT0_OFF,
   517            Bit1        : BIT1_OFF,
   518            Bit2        : BIT2_OFF,
   519            Bit3        : BIT3_OFF,
   520            Bit4        : BIT4_OFF,
   521            Bit5        : BIT5_OFF,
   522            Bit6        : BIT6_OFF,
   523            Bit7        : BIT7_OFF
   524        };
   525
   526        /*! Port 3 Interrupt Edge Select Register */
   527        config GpioBits8PxIes_t P3IES = {
   528            Bit0        : BIT0_OFF,
   529            Bit1        : BIT1_OFF,
   530            Bit2        : BIT2_OFF,
   531            Bit3        : BIT3_OFF,
   532            Bit4        : BIT4_OFF,
   533            Bit5        : BIT5_OFF,
   534            Bit6        : BIT6_OFF,
   535            Bit7        : BIT7_OFF
   536        };
   537
   538        /*! Port 3 Interrupt Flag Register */
   539        config GpioBits8PxIfg_t P3IFG = {
   540            Bit0        : BIT0_OFF,
   541            Bit1        : BIT1_OFF,
   542            Bit2        : BIT2_OFF,
   543            Bit3        : BIT3_OFF,
   544            Bit4        : BIT4_OFF,
   545            Bit5        : BIT5_OFF,
   546            Bit6        : BIT6_OFF,
   547            Bit7        : BIT7_OFF
   548        };
   549
   550        /*! Port 3 Interrupt Enable Register */
   551        config GpioBits8PxIe_t P3IE = {
   552            Bit0        : BIT0_OFF,
   553            Bit1        : BIT1_OFF,
   554            Bit2        : BIT2_OFF,
   555            Bit3        : BIT3_OFF,
   556            Bit4        : BIT4_OFF,
   557            Bit5        : BIT5_OFF,
   558            Bit6        : BIT6_OFF,
   559            Bit7        : BIT7_OFF
   560        };
   561
   562        /*! Port 4 Interrupt Edge Select Register */
   563        config GpioBits8PxIes_t P4IES = {
   564            Bit0        : BIT0_OFF,
   565            Bit1        : BIT1_OFF,
   566            Bit2        : BIT2_OFF,
   567            Bit3        : BIT3_OFF,
   568            Bit4        : BIT4_OFF,
   569            Bit5        : BIT5_OFF,
   570            Bit6        : BIT6_OFF,
   571            Bit7        : BIT7_OFF
   572        };
   573
   574        /*! Port 4 Interrupt Flag Register */
   575        config GpioBits8PxIfg_t P4IFG = {
   576            Bit0        : BIT0_OFF,
   577            Bit1        : BIT1_OFF,
   578            Bit2        : BIT2_OFF,
   579            Bit3        : BIT3_OFF,
   580            Bit4        : BIT4_OFF,
   581            Bit5        : BIT5_OFF,
   582            Bit6        : BIT6_OFF,
   583            Bit7        : BIT7_OFF
   584        };
   585
   586        /*! Port 4 Interrupt Enable Register */
   587        config GpioBits8PxIe_t P4IE = {
   588            Bit0        : BIT0_OFF,
   589            Bit1        : BIT1_OFF,
   590            Bit2        : BIT2_OFF,
   591            Bit3        : BIT3_OFF,
   592            Bit4        : BIT4_OFF,
   593            Bit5        : BIT5_OFF,
   594            Bit6        : BIT6_OFF,
   595            Bit7        : BIT7_OFF
   596        };
   597
   598        /*! GPIO interrupt source */
   599        config regIntVect_t interruptSource[32];
   600
   601        /*! Forward Declaration of Device Pin Functional Configuration */
   602        config DevicePinFunctionSetting_t devicePinSetting[][];
   603
   604        /*!
   605         *  ======== findPinsForFunction ========
   606         *    Identify all device pins that can be used to serve a certain purpose
   607         *
   608         *  Function to scan through the pin configuration database to identify
   609         *    a list of device pins matching a regular expression.
   610         */
   611        MatchedPortFunction_t findPinsForFunction(String regExp);
   612
   613        /*!
   614         *  ======== pinFunctionIsActive ========
   615         *  Check if a pin is enabled for a certain function
   616         *
   617         *    This function is used to check if a certain functionality is enabled
   618         *    on a given device pins (returns 'true' in that case).
   619         */
   620        Bool pinFunctionIsActive(UInt port, UInt pin, String regExp);
   621
   622        /*!
   623         *  ======== getPinFunctionIndex ========
   624         *  Get a pin's current functional configuration
   625         *
   626         *  This function is used to obtain the current configuration of a given
   627         *    device pin. The returned value can be used as an index to obtain further
   628         *  information from the pin configuration database.
   629         */
   630        UInt getPinFunctionIndex(UInt port, UInt pin);
   631
   632        /*!
   633         *  ======== getPinOwner ========
   634         *    This function returns the current owner of the specified device pin.
   635         */
   636        Any getPinOwner(UInt port, UInt pin);
   637
   638        /*!
   639         *  ======== setPinFunctionUsingIndex ========
   640         *     Configure a device pin to a specific peripheral function
   641         *
   642         *  This function is used to configure a device pin to a specific peripheral
   643         *    function that is identified by an index. The index corresponds to an
   644         *    associated set of configuration parameters stored in the pin configuration
   645         *    database. The owner parameter can be used to protect a pin from being
   646         *    used by somebody else. A pin configuration can only be changed if the
   647         *    current owner is undefined, or of the current owner matches the
   648         *    owner specified as function parameter.
   649         */
   650        Void setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner);
   651
   652        /*!
   653         *  ======== setDefaultPinFunction ========
   654         *     Configure a device pin to its default state
   655         *
   656         *  This function is used to configure a device pin to its default state
   657         *    and is typically used when a peripheral module relinquishes ownership
   658         *    of a pin so that it can be used by other peripheral modules.
   659         */
   660        Void setDefaultPinFunction(UInt port, UInt pin, Any owner);
   661    }


package ti.catalog.msp430.peripherals.interrupt
index URL

MSP430 interrupt support

XDCspec declarations sourced in ti/catalog/msp430/peripherals/interrupt/package.xdc
package ti.catalog.msp430.peripherals.interrupt [1, 0, 0] {
    module Interrupt_Controller;
    // MSP430 Interrupt_Controller
}
generated on Thu, 08 Nov 2012 02:17:37 GMT


package ti.catalog.msp430.peripherals.interrupt

     1    /*!
     2     *  ======== ti.catalog.msp430.peripherals.interrupt ========
     3     *  MSP430 interrupt support
     4     */
     5    package ti.catalog.msp430.peripherals.interrupt [1, 0, 0] {
     6        module Interrupt_Controller;
     7    }


module ti.catalog.msp430.peripherals.interrupt.Interrupt_Controller

metaonly module ti.catalog.msp430.peripherals.interrupt.Interrupt_Controller
index URL

MSP430 Interrupt_Controller

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/interrupt/Interrupt_Controller.xdc
var Interrupt_Controller = xdc.useModule('ti.catalog.msp430.peripherals.interrupt.Interrupt_Controller');
module-wide functions
     Interrupt_Controller.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Interrupt_Controller.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Interrupt_Controller.Params// Instance config-params object;
        params.baseAddr// = UInt undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numInterrupts// = UInt undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
Interrupt_Controller.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Interrupt_Controller.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Interrupt_Controller.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Interrupt_Controller.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Interrupt_Controller.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    //
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numInterrupts = UInt undefined;
    //
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Interrupt_Controller.baseAddr // instance
index URL
XDCscript usage meta-domain
var params = new Interrupt_Controller.Params;
...
params.baseAddr = UInt undefined;
config Interrupt_Controller.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Interrupt_Controller.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Interrupt_Controller.numInterrupts // instance
index URL
XDCscript usage meta-domain
var params = new Interrupt_Controller.Params;
...
params.numInterrupts = UInt undefined;
config Interrupt_Controller.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Interrupt_Controller.Params;
...
params.owner = String undefined;
generated on Thu, 08 Nov 2012 02:17:37 GMT


module ti.catalog.msp430.peripherals.interrupt.Interrupt_Controller

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Interrupt_Controller ========
    14     *  MSP430 Interrupt_Controller
    15     */
    16    metaonly module Interrupt_Controller inherits xdc.platform.IPeripheral {
    17
    18    instance:
    19
    20        config UInt baseAddr;
    21        config UInt numInterrupts;
    22    }


package ti.catalog.msp430.peripherals.memory
index URL

MSP430 Flash memory peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/package.xdc
requires ti.catalog.msp430.peripherals.clock;
requires ti.catalog.msp430.peripherals.special_function;
package ti.catalog.msp430.peripherals.memory [1, 0, 0] {
    interface IFlash;
    // MSP430 IFlash interface
    module Flash_2xx;
    // MSP430F2xx Family Flash Module
}
generated on Thu, 08 Nov 2012 02:17:38 GMT


package ti.catalog.msp430.peripherals.memory

     1    requires ti.catalog.msp430.peripherals.clock;
     2    requires ti.catalog.msp430.peripherals.special_function;
     3    /*!
     4     *  ======== ti.catalog.msp430.peripherals.memory ========
     5     *  MSP430 Flash memory peripheral
     6     */
     7    package ti.catalog.msp430.peripherals.memory [1, 0, 0] {
     8        interface IFlash;
     9        module Flash_2xx;
    10    }


module ti.catalog.msp430.peripherals.memory.Flash_2xx

metaonly module ti.catalog.msp430.peripherals.memory.Flash_2xx
index URL

MSP430F2xx Family Flash Module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/memory/Flash_2xx.xdc
var Flash_2xx = xdc.useModule('ti.catalog.msp430.peripherals.memory.Flash_2xx');
module-wide constants & types
    values of type Flash_2xx.ACCVIFG_t// Access violation interrupt flag
        const Flash_2xx.ACCVIFG_OFF// No interrupt pending;
        const Flash_2xx.ACCVIFG// Interrupt pending;
    values of type Flash_2xx.BLKWRT_t// Block write mode
        const Flash_2xx.BLKWRT_OFF// Block-write mode is off;
        const Flash_2xx.BLKWRT// Block-write mode is on;
    values of type Flash_2xx.BUSY_t// Busy
        const Flash_2xx.BUSY_OFF// Not Busy;
        const Flash_2xx.BUSY// Busy;
    values of type Flash_2xx.EEIEX_t// Enable Emergency Interrupt Exit
        const Flash_2xx.EEIEX_OFF// Exit interrupt disabled;
        const Flash_2xx.EEIEX// Exit interrupt enabled;
    values of type Flash_2xx.EEI_t// Enable Erase Interrupts
        const Flash_2xx.EEI_OFF// Interrupts during segment erase disabled;
        const Flash_2xx.EEI// Interrupts during segment erase enabled;
    values of type Flash_2xx.EMEX_t// Emergency exit
        const Flash_2xx.EMEX_OFF// No emergency exit;
        const Flash_2xx.EMEX// Emergency exit;
    values of type Flash_2xx.ERASE_t// Erase
        const Flash_2xx.ERASE_OFF// Erase disabled;
        const Flash_2xx.ERASE// Erase enabled;
    values of type Flash_2xx.FAIL_t// Operation failure
        const Flash_2xx.FAIL_OFF// No failure;
        const Flash_2xx.FAIL// Failure;
    values of type Flash_2xx.FN0_t// Flash controller clock divider bit 0
        const Flash_2xx.FN0_OFF// Flash controller clock divider bit 0;
        const Flash_2xx.FN0// Flash controller clock divider bit 0;
    values of type Flash_2xx.FN1_t// Flash controller clock divider bit 1
        const Flash_2xx.FN1_OFF// Flash controller clock divider bit 1;
        const Flash_2xx.FN1// Flash controller clock divider bit 1;
    values of type Flash_2xx.FN2_t// Flash controller clock divider bit 2
        const Flash_2xx.FN2_OFF// Flash controller clock divider bit 2;
        const Flash_2xx.FN2// Flash controller clock divider bit 2;
    values of type Flash_2xx.FN3_t// Flash controller clock divider bit 3
        const Flash_2xx.FN3_OFF// Flash controller clock divider bit 3;
        const Flash_2xx.FN3// Flash controller clock divider bit 3;
    values of type Flash_2xx.FN4_t// Flash controller clock divider bit 4
        const Flash_2xx.FN4_OFF// Flash controller clock divider bit 4;
        const Flash_2xx.FN4// Flash controller clock divider bit 4;
    values of type Flash_2xx.FN5_t// Flash controller clock divider bit 5
        const Flash_2xx.FN5_OFF// Flash controller clock divider bit 5;
        const Flash_2xx.FN5// Flash controller clock divider bit 5;
    values of type Flash_2xx.FSSEL_t//
        const Flash_2xx.FSSEL_0// ACLK;
        const Flash_2xx.FSSEL_1// MCLK;
        const Flash_2xx.FSSEL_2// SMCLK;
    values of type Flash_2xx.FWKEY_t//
        const Flash_2xx.FWKEY_OFF;
        const Flash_2xx.FWKEY;
    values of type Flash_2xx.KEYV_t// Flash security key violation
        const Flash_2xx.KEYV_OFF// FCTLx password was written correctly;
        const Flash_2xx.KEYV// FCTLx password was written incorrectly;
    values of type Flash_2xx.LOCKA_t// SegmentA and Info lock
        const Flash_2xx.LOCKA_OFF// Segment A unlocked and all information memory is erased during a mass erase;
        const Flash_2xx.LOCKA// Segment A locked and all information memory is protected from erasure during a mass erase;
    values of type Flash_2xx.LOCK_t// Lock
        const Flash_2xx.LOCK_OFF// Unlocked;
        const Flash_2xx.LOCK// Locked;
    values of type Flash_2xx.MERAS_t// Mass erase
        const Flash_2xx.MERAS_OFF// Mass erase disabled;
        const Flash_2xx.MERAS// Mass erase enabled;
    values of type Flash_2xx.WAIT_t// Wait
        const Flash_2xx.WAIT_OFF// The flash memory is not ready for the next byte/word write;
        const Flash_2xx.WAIT// The flash memory is ready for the next byte/word write;
    values of type Flash_2xx.WRT_t// Write
        const Flash_2xx.WRT_OFF// Write mode is off;
        const Flash_2xx.WRT// Write mode is on;
    var obj = new Flash_2xx.FCTL1_t// ;
        obj.FWKEY// FCTLx password Always read as 096h. Must be written as 0A5h or a PUC will be generated = Flash_2xx.FWKEY_t ...
        obj.BLKWRT// Block write mode = Flash_2xx.BLKWRT_t ...
        obj.WRT// Write = Flash_2xx.WRT_t ...
        obj.EEIEX// Enable Emergency Interrupt Exit = Flash_2xx.EEIEX_t ...
        obj.EEI// Enable Erase Interrupts = Flash_2xx.EEI_t ...
        obj.MERAS// Mass erase = Flash_2xx.MERAS_t ...
        obj.ERASE// Erase = Flash_2xx.ERASE_t ...
    var obj = new Flash_2xx.FCTL2_t// ;
        obj.FWKEY// FCTLx password Always read as 096h. Must be written as 0A5h or a PUC will be generated = Flash_2xx.FWKEY_t ...
        obj.FSSEL// Flash controller clock source select 00 ACLK 01 MCLK 10 SMCLK 11 SMCLK = Flash_2xx.FSSEL_t ...
        obj.FN5// Flash Controller Clock Divider Bit 5 = Flash_2xx.FN5_t ...
        obj.FN4// Flash Controller Clock Divider Bit 4 = Flash_2xx.FN4_t ...
        obj.FN3// Flash Controller Clock Divider Bit 3 = Flash_2xx.FN3_t ...
        obj.FN2// Flash Controller Clock Divider Bit 2 = Flash_2xx.FN2_t ...
        obj.FN1// Flash Controller Clock Divider Bit 1 = Flash_2xx.FN1_t ...
        obj.FN0// Flash Controller Clock Divider Bit 0 = Flash_2xx.FN0_t ...
    var obj = new Flash_2xx.FCTL3_t// ;
        obj.FWKEY// FCTLx password. Always read as 096h. Must be written as 0A5h or a PUC will be generated = Flash_2xx.FWKEY_t ...
        obj.FAIL// FAIL Bit 7 Operation failure. This bit is set if the fFTG clock source fails, or a flash operation is aborted from an interrupt when EEIEX = 1. FAIL must be reset with software. 0 No failure 1 Failure = Flash_2xx.FAIL_t ...
        obj.LOCKA// SegmentA and Info lock. Write a 1 to this bit to change its state. Writing 0 has no effect. 0 Segment A unlocked and all information memory is erased during a mass erase. 1 Segment A locked and all information memory is protected from erasure during a mass erase = Flash_2xx.LOCKA_t ...
        obj.EMEX// Emergency exit 0 No emergency exit 1 Emergency exit = Flash_2xx.EMEX_t ...
        obj.LOCK// Lock. This bit unlocks the flash memory for writing or erasing. The LOCK bit can be set anytime during a byte/word write or erase operation and the operation will complete normally. In the block write mode if the LOCK bit is set while BLKWRT=WAIT=1, then BLKWRT and WAIT are reset and the mode ends normally. 0 Unlocked 1 Locked = Flash_2xx.LOCK_t ...
        obj.WAIT// Wait. Indicates the flash memory is being written to. 0 The flash memory is not ready for the next byte/word write 1 The flash memory is ready for the next byte/word write = Flash_2xx.WAIT_t ...
        obj.ACCVIFG// Access violation interrupt flag 0 No interrupt pending 1 Interrupt pending = Flash_2xx.ACCVIFG_t ...
        obj.KEYV// Flash security key violation. This bit indicates an incorrect FCTLx password was written to any flash control register and generates a PUC when set. KEYV must be reset with software. 0 FCTLx password was written correctly 1 FCTLx password was written incorrectly = Flash_2xx.KEYV_t ...
        obj.BUSY// Busy. This bit indicates the status of the flash timing generator. 0 Not Busy 1 Busy = Flash_2xx.BUSY_t ...
    var obj = new Flash_2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
module-wide functions
     Flash_2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Flash_2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Flash_2xx.Params// Instance config-params object;
        params.FCTL1// Flash Memory Control Register 1 = Flash_2xx.FCTL1_t {
            FWKEY: IFlash.FWKEY,
            BLKWRT: IFlash.BLKWRT_OFF,
            WRT: IFlash.WRT_OFF,
            EEIEX: IFlash.EEIEX_OFF,
            EEI: IFlash.EEI_OFF,
            MERAS: IFlash.MERAS_OFF,
            ERASE: IFlash.ERASE_OFF
        };
        params.FCTL2// Flash Memory Control Register 2 = Flash_2xx.FCTL2_t {
            FWKEY: IFlash.FWKEY,
            FSSEL: IFlash.FSSEL_1,
            FN5: IFlash.FN5_OFF,
            FN4: IFlash.FN4_OFF,
            FN3: IFlash.FN3_OFF,
            FN2: IFlash.FN2_OFF,
            FN1: IFlash.FN1,
            FN0: IFlash.FN0_OFF
        };
        params.FCTL3// Flash Memory Control Register 3 = Flash_2xx.FCTL3_t {
            FAIL: IFlash.FAIL_OFF,
            LOCKA: IFlash.LOCKA_OFF,
            EMEX: IFlash.EMEX_OFF,
            LOCK: IFlash.LOCK,
            WAIT: IFlash.WAIT,
            ACCVIFG: IFlash.ACCVIFG_OFF,
            KEYV: IFlash.KEYV_OFF,
            BUSY: IFlash.BUSY_OFF
        };
        params.clock// = IClock.Instance undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Flash_2xx.ForceSetDefaultRegister_t[] [
            {
                register: "FCTL1",
                regForceSet: false
            },
            {
                register: "FCTL2",
                regForceSet: false
            },
            {
                register: "FCTL3",
                regForceSet: false
            }
        ];
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
        params.uMaxFtg// Max Flash Timing Generator Value from Datasheet = UInt8 undefined;
        params.uMinFtg// Min Flash Timing Generator Value from Datasheet = UInt8 undefined;
per-instance creation
    var inst = Flash_2xx.create// Create an instance-object(IClock.Instance clock, params);
enum Flash_2xx.ACCVIFG_t
index URL

Access violation interrupt flag

XDCscript usage meta-domain
values of type Flash_2xx.ACCVIFG_t
    const Flash_2xx.ACCVIFG_OFF;
    // No interrupt pending
    const Flash_2xx.ACCVIFG;
    // Interrupt pending
enum Flash_2xx.BLKWRT_t
index URL

Block write mode

XDCscript usage meta-domain
values of type Flash_2xx.BLKWRT_t
    const Flash_2xx.BLKWRT_OFF;
    // Block-write mode is off
    const Flash_2xx.BLKWRT;
    // Block-write mode is on
enum Flash_2xx.BUSY_t
index URL

Busy

XDCscript usage meta-domain
values of type Flash_2xx.BUSY_t
    const Flash_2xx.BUSY_OFF;
    // Not Busy
    const Flash_2xx.BUSY;
    // Busy
enum Flash_2xx.EEIEX_t
index URL

Enable Emergency Interrupt Exit

XDCscript usage meta-domain
values of type Flash_2xx.EEIEX_t
    const Flash_2xx.EEIEX_OFF;
    // Exit interrupt disabled
    const Flash_2xx.EEIEX;
    // Exit interrupt enabled
enum Flash_2xx.EEI_t
index URL

Enable Erase Interrupts

XDCscript usage meta-domain
values of type Flash_2xx.EEI_t
    const Flash_2xx.EEI_OFF;
    // Interrupts during segment erase disabled
    const Flash_2xx.EEI;
    // Interrupts during segment erase enabled
enum Flash_2xx.EMEX_t
index URL

Emergency exit

XDCscript usage meta-domain
values of type Flash_2xx.EMEX_t
    const Flash_2xx.EMEX_OFF;
    // No emergency exit
    const Flash_2xx.EMEX;
    // Emergency exit
enum Flash_2xx.ERASE_t
index URL

Erase

XDCscript usage meta-domain
values of type Flash_2xx.ERASE_t
    const Flash_2xx.ERASE_OFF;
    // Erase disabled
    const Flash_2xx.ERASE;
    // Erase enabled
enum Flash_2xx.FAIL_t
index URL

Operation failure

XDCscript usage meta-domain
values of type Flash_2xx.FAIL_t
    const Flash_2xx.FAIL_OFF;
    // No failure
    const Flash_2xx.FAIL;
    // Failure
enum Flash_2xx.FN0_t
index URL

Flash controller clock divider bit 0

XDCscript usage meta-domain
values of type Flash_2xx.FN0_t
    const Flash_2xx.FN0_OFF;
    // Flash controller clock divider bit 0
    const Flash_2xx.FN0;
    // Flash controller clock divider bit 0
enum Flash_2xx.FN1_t
index URL

Flash controller clock divider bit 1

XDCscript usage meta-domain
values of type Flash_2xx.FN1_t
    const Flash_2xx.FN1_OFF;
    // Flash controller clock divider bit 1
    const Flash_2xx.FN1;
    // Flash controller clock divider bit 1
enum Flash_2xx.FN2_t
index URL

Flash controller clock divider bit 2

XDCscript usage meta-domain
values of type Flash_2xx.FN2_t
    const Flash_2xx.FN2_OFF;
    // Flash controller clock divider bit 2
    const Flash_2xx.FN2;
    // Flash controller clock divider bit 2
enum Flash_2xx.FN3_t
index URL

Flash controller clock divider bit 3

XDCscript usage meta-domain
values of type Flash_2xx.FN3_t
    const Flash_2xx.FN3_OFF;
    // Flash controller clock divider bit 3
    const Flash_2xx.FN3;
    // Flash controller clock divider bit 3
enum Flash_2xx.FN4_t
index URL

Flash controller clock divider bit 4

XDCscript usage meta-domain
values of type Flash_2xx.FN4_t
    const Flash_2xx.FN4_OFF;
    // Flash controller clock divider bit 4
    const Flash_2xx.FN4;
    // Flash controller clock divider bit 4
enum Flash_2xx.FN5_t
index URL

Flash controller clock divider bit 5

XDCscript usage meta-domain
values of type Flash_2xx.FN5_t
    const Flash_2xx.FN5_OFF;
    // Flash controller clock divider bit 5
    const Flash_2xx.FN5;
    // Flash controller clock divider bit 5
enum Flash_2xx.FSSEL_t
index URL
XDCscript usage meta-domain
values of type Flash_2xx.FSSEL_t
    const Flash_2xx.FSSEL_0;
    // ACLK
    const Flash_2xx.FSSEL_1;
    // MCLK
    const Flash_2xx.FSSEL_2;
    // SMCLK
enum Flash_2xx.FWKEY_t
index URL
XDCscript usage meta-domain
values of type Flash_2xx.FWKEY_t
    const Flash_2xx.FWKEY_OFF;
    const Flash_2xx.FWKEY;
enum Flash_2xx.KEYV_t
index URL

Flash security key violation

XDCscript usage meta-domain
values of type Flash_2xx.KEYV_t
    const Flash_2xx.KEYV_OFF;
    // FCTLx password was written correctly
    const Flash_2xx.KEYV;
    // FCTLx password was written incorrectly
enum Flash_2xx.LOCKA_t
index URL

SegmentA and Info lock

XDCscript usage meta-domain
values of type Flash_2xx.LOCKA_t
    const Flash_2xx.LOCKA_OFF;
    // Segment A unlocked and all information memory is erased during a mass erase
    const Flash_2xx.LOCKA;
    // Segment A locked and all information memory is protected from erasure during a mass erase
enum Flash_2xx.LOCK_t
index URL

Lock

XDCscript usage meta-domain
values of type Flash_2xx.LOCK_t
    const Flash_2xx.LOCK_OFF;
    // Unlocked
    const Flash_2xx.LOCK;
    // Locked
enum Flash_2xx.MERAS_t
index URL

Mass erase

XDCscript usage meta-domain
values of type Flash_2xx.MERAS_t
    const Flash_2xx.MERAS_OFF;
    // Mass erase disabled
    const Flash_2xx.MERAS;
    // Mass erase enabled
enum Flash_2xx.WAIT_t
index URL

Wait

XDCscript usage meta-domain
values of type Flash_2xx.WAIT_t
    const Flash_2xx.WAIT_OFF;
    // The flash memory is not ready for the next byte/word write
    const Flash_2xx.WAIT;
    // The flash memory is ready for the next byte/word write
enum Flash_2xx.WRT_t
index URL

Write

XDCscript usage meta-domain
values of type Flash_2xx.WRT_t
    const Flash_2xx.WRT_OFF;
    // Write mode is off
    const Flash_2xx.WRT;
    // Write mode is on
struct Flash_2xx.FCTL1_t
index URL
XDCscript usage meta-domain
var obj = new Flash_2xx.FCTL1_t;
    obj.FWKEY = Flash_2xx.FWKEY_t ...
    // FCTLx password Always read as 096h. Must be written as 0A5h or a PUC will be generated
    obj.BLKWRT = Flash_2xx.BLKWRT_t ...
    // Block write mode
    obj.WRT = Flash_2xx.WRT_t ...
    // Write
    obj.EEIEX = Flash_2xx.EEIEX_t ...
    // Enable Emergency Interrupt Exit
    obj.EEI = Flash_2xx.EEI_t ...
    // Enable Erase Interrupts
    obj.MERAS = Flash_2xx.MERAS_t ...
    // Mass erase
    obj.ERASE = Flash_2xx.ERASE_t ...
    // Erase
struct Flash_2xx.FCTL2_t
index URL
XDCscript usage meta-domain
var obj = new Flash_2xx.FCTL2_t;
    obj.FWKEY = Flash_2xx.FWKEY_t ...
    // FCTLx password Always read as 096h. Must be written as 0A5h or a PUC will be generated
    obj.FSSEL = Flash_2xx.FSSEL_t ...
    // Flash controller clock source select 00 ACLK 01 MCLK 10 SMCLK 11 SMCLK
    obj.FN5 = Flash_2xx.FN5_t ...
    // Flash Controller Clock Divider Bit 5
    obj.FN4 = Flash_2xx.FN4_t ...
    // Flash Controller Clock Divider Bit 4
    obj.FN3 = Flash_2xx.FN3_t ...
    // Flash Controller Clock Divider Bit 3
    obj.FN2 = Flash_2xx.FN2_t ...
    // Flash Controller Clock Divider Bit 2
    obj.FN1 = Flash_2xx.FN1_t ...
    // Flash Controller Clock Divider Bit 1
    obj.FN0 = Flash_2xx.FN0_t ...
    // Flash Controller Clock Divider Bit 0
struct Flash_2xx.FCTL3_t
index URL
XDCscript usage meta-domain
var obj = new Flash_2xx.FCTL3_t;
    obj.FWKEY = Flash_2xx.FWKEY_t ...
    // FCTLx password. Always read as 096h. Must be written as 0A5h or a PUC will be generated
    obj.FAIL = Flash_2xx.FAIL_t ...
    // FAIL Bit 7 Operation failure. This bit is set if the fFTG clock source fails, or a flash operation is aborted from an interrupt when EEIEX = 1. FAIL must be reset with software. 0 No failure 1 Failure
    obj.LOCKA = Flash_2xx.LOCKA_t ...
    // SegmentA and Info lock. Write a 1 to this bit to change its state. Writing 0 has no effect. 0 Segment A unlocked and all information memory is erased during a mass erase. 1 Segment A locked and all information memory is protected from erasure during a mass erase
    obj.EMEX = Flash_2xx.EMEX_t ...
    // Emergency exit 0 No emergency exit 1 Emergency exit
    obj.LOCK = Flash_2xx.LOCK_t ...
    // Lock. This bit unlocks the flash memory for writing or erasing. The LOCK bit can be set anytime during a byte/word write or erase operation and the operation will complete normally. In the block write mode if the LOCK bit is set while BLKWRT=WAIT=1, then BLKWRT and WAIT are reset and the mode ends normally. 0 Unlocked 1 Locked
    obj.WAIT = Flash_2xx.WAIT_t ...
    // Wait. Indicates the flash memory is being written to. 0 The flash memory is not ready for the next byte/word write 1 The flash memory is ready for the next byte/word write
    obj.ACCVIFG = Flash_2xx.ACCVIFG_t ...
    // Access violation interrupt flag 0 No interrupt pending 1 Interrupt pending
    obj.KEYV = Flash_2xx.KEYV_t ...
    // Flash security key violation. This bit indicates an incorrect FCTLx password was written to any flash control register and generates a PUC when set. KEYV must be reset with software. 0 FCTLx password was written correctly 1 FCTLx password was written incorrectly
    obj.BUSY = Flash_2xx.BUSY_t ...
    // Busy. This bit indicates the status of the flash timing generator. 0 Not Busy 1 Busy
struct Flash_2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Flash_2xx.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
Flash_2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Flash_2xx.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Flash_2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Flash_2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
// Instance config-params object
    params.FCTL1 = Flash_2xx.FCTL1_t {
    // Flash Memory Control Register 1
        FWKEY: IFlash.FWKEY,
        BLKWRT: IFlash.BLKWRT_OFF,
        WRT: IFlash.WRT_OFF,
        EEIEX: IFlash.EEIEX_OFF,
        EEI: IFlash.EEI_OFF,
        MERAS: IFlash.MERAS_OFF,
        ERASE: IFlash.ERASE_OFF
    };
    params.FCTL2 = Flash_2xx.FCTL2_t {
    // Flash Memory Control Register 2
        FWKEY: IFlash.FWKEY,
        FSSEL: IFlash.FSSEL_1,
        FN5: IFlash.FN5_OFF,
        FN4: IFlash.FN4_OFF,
        FN3: IFlash.FN3_OFF,
        FN2: IFlash.FN2_OFF,
        FN1: IFlash.FN1,
        FN0: IFlash.FN0_OFF
    };
    params.FCTL3 = Flash_2xx.FCTL3_t {
    // Flash Memory Control Register 3
        FAIL: IFlash.FAIL_OFF,
        LOCKA: IFlash.LOCKA_OFF,
        EMEX: IFlash.EMEX_OFF,
        LOCK: IFlash.LOCK,
        WAIT: IFlash.WAIT,
        ACCVIFG: IFlash.ACCVIFG_OFF,
        KEYV: IFlash.KEYV_OFF,
        BUSY: IFlash.BUSY_OFF
    };
    params.clock = IClock.Instance undefined;
    //
    params.forceSetDefaultRegister = Flash_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "FCTL1",
            regForceSet: false
        },
        {
            register: "FCTL2",
            regForceSet: false
        },
        {
            register: "FCTL3",
            regForceSet: false
        }
    ];
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
    params.uMaxFtg = UInt8 undefined;
    // Max Flash Timing Generator Value from Datasheet
    params.uMinFtg = UInt8 undefined;
    // Min Flash Timing Generator Value from Datasheet
config Flash_2xx.FCTL1 // instance
index URL

Flash Memory Control Register 1

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
params.FCTL1 = Flash_2xx.FCTL1_t {
    FWKEY: IFlash.FWKEY,
    BLKWRT: IFlash.BLKWRT_OFF,
    WRT: IFlash.WRT_OFF,
    EEIEX: IFlash.EEIEX_OFF,
    EEI: IFlash.EEI_OFF,
    MERAS: IFlash.MERAS_OFF,
    ERASE: IFlash.ERASE_OFF
};
config Flash_2xx.FCTL2 // instance
index URL

Flash Memory Control Register 2

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
params.FCTL2 = Flash_2xx.FCTL2_t {
    FWKEY: IFlash.FWKEY,
    FSSEL: IFlash.FSSEL_1,
    FN5: IFlash.FN5_OFF,
    FN4: IFlash.FN4_OFF,
    FN3: IFlash.FN3_OFF,
    FN2: IFlash.FN2_OFF,
    FN1: IFlash.FN1,
    FN0: IFlash.FN0_OFF
};
config Flash_2xx.FCTL3 // instance
index URL

Flash Memory Control Register 3

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
params.FCTL3 = Flash_2xx.FCTL3_t {
    FAIL: IFlash.FAIL_OFF,
    LOCKA: IFlash.LOCKA_OFF,
    EMEX: IFlash.EMEX_OFF,
    LOCK: IFlash.LOCK,
    WAIT: IFlash.WAIT,
    ACCVIFG: IFlash.ACCVIFG_OFF,
    KEYV: IFlash.KEYV_OFF,
    BUSY: IFlash.BUSY_OFF
};
config Flash_2xx.clock // instance
index URL
XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
params.clock = IClock.Instance undefined;
config Flash_2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
const params.forceSetDefaultRegister = Flash_2xx.ForceSetDefaultRegister_t[] [
    {
        register: "FCTL1",
        regForceSet: false
    },
    {
        register: "FCTL2",
        regForceSet: false
    },
    {
        register: "FCTL3",
        regForceSet: false
    }
];
config Flash_2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Flash_2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
params.owner = String undefined;
config Flash_2xx.uMaxFtg // instance
index URL

Max Flash Timing Generator Value from Datasheet

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
params.uMaxFtg = UInt8 undefined;
config Flash_2xx.uMinFtg // instance
index URL

Min Flash Timing Generator Value from Datasheet

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
params.uMinFtg = UInt8 undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Flash_2xx.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:17:38 GMT


module ti.catalog.msp430.peripherals.memory.Flash_2xx

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     *  ======== Flash_2xx ========
    16     *  MSP430F2xx Family Flash Module
    17     */
    18    metaonly module Flash_2xx inherits IFlash
    19    {
    20        /* FCTL1 Register */
    21        struct FCTL1_t {
    22            FWKEY_t     FWKEY;                  /*! FCTLx password Always read as 096h. Must be written as 0A5h or a PUC
    23                                                 *  will be generated. */
    24            BLKWRT_t    BLKWRT;                 /*! Block write mode */
    25            WRT_t       WRT;                    /*! Write */
    26            EEIEX_t     EEIEX;                  /*! Enable Emergency Interrupt Exit */
    27            EEI_t       EEI;                    /*! Enable Erase Interrupts */
    28            MERAS_t     MERAS;                  /*! Mass erase */
    29            ERASE_t     ERASE;                  /*! Erase */
    30        }
    31
    32        /* FCTL2 Register */
    33        struct FCTL2_t {
    34            FWKEY_t     FWKEY;                  /*! FCTLx password Always read as 096h. Must be written as 0A5h or a PUC
    35                                                 *  will be generated. */
    36             FSSEL_t     FSSEL;                 /*! Flash controller clock source select
    37                                                 *   00  ACLK
    38                                                 *   01  MCLK
    39                                                 *   10  SMCLK
    40                                                 *   11  SMCLK */
    41            FN5_t    FN5;                       /*! Flash Controller Clock Divider Bit 5 */
    42            FN4_t    FN4;                       /*! Flash Controller Clock Divider Bit 4 */
    43            FN3_t    FN3;                       /*! Flash Controller Clock Divider Bit 3 */
    44            FN2_t    FN2;                       /*! Flash Controller Clock Divider Bit 2 */
    45            FN1_t    FN1;                       /*! Flash Controller Clock Divider Bit 1 */
    46            FN0_t    FN0;                       /*! Flash Controller Clock Divider Bit 0 */
    47        }
    48
    49        /* FCTL3 Register */
    50        struct FCTL3_t {
    51            FWKEY_t     FWKEY;                  /*! FCTLx password. Always read as 096h. Must be written as 0A5h or a PUC
    52                                                 *  will be generated. */
    53            FAIL_t      FAIL;                   /*!  FAIL Bit 7 Operation failure. This bit is set if the fFTG clock source fails, or a flash
    54                                                 *  operation is aborted from an interrupt when EEIEX = 1. FAIL must be reset
    55                                                 *  with software.
    56                                                 *  0  No failure
    57                                                 *  1  Failure */
    58            LOCKA_t     LOCKA;                  /*! SegmentA and Info lock. Write a 1 to this bit to change its state. Writing 0 has
    59                                                 *  no effect.
    60                                                 *  0  Segment A unlocked and all information memory is erased during a
    61                                                 *     mass erase.
    62                                                 *  1  Segment A locked and all information memory is protected from erasure
    63                                                 *     during a mass erase. */
    64            EMEX_t      EMEX;                   /*! Emergency exit
    65                                                 *  0  No emergency exit
    66                                                 *  1  Emergency exit */
    67            LOCK_t      LOCK;                   /*! Lock. This bit unlocks the flash memory for writing or erasing. The LOCK bit
    68                                                 *  can be set anytime during a byte/word write or erase operation and the
    69                                                 *  operation will complete normally. In the block write mode if the LOCK bit is set
    70                                                 *  while BLKWRT=WAIT=1, then BLKWRT and WAIT are reset and the mode
    71                                                 *  ends normally.
    72                                                 *  0  Unlocked
    73                                                 *  1  Locked */
    74            WAIT_t      WAIT;                   /*! Wait. Indicates the flash memory is being written to.
    75                                                 *  0  The flash memory is not ready for the next byte/word write
    76                                                 *  1  The flash memory is ready for the next byte/word write */
    77            ACCVIFG_t   ACCVIFG;                /*! Access violation interrupt flag
    78                                                 *  0 No interrupt pending
    79                                                 *  1 Interrupt pending */
    80            KEYV_t      KEYV;                   /*! Flash security key violation. This bit indicates an incorrect FCTLx password
    81                                                 *  was written to any flash control register and generates a PUC when set. KEYV
    82                                                 *  must be reset with software.
    83                                                 *  0  FCTLx password was written correctly
    84                                                 *  1  FCTLx password was written incorrectly */
    85            BUSY_t      BUSY;                   /*! Busy. This bit indicates the status of the flash timing generator.
    86                                                 *  0  Not Busy
    87                                                 *  1  Busy */
    88        }
    89
    90        /*
    91         *  ======== create ========
    92         */
    93        create(IClock.Instance clock);
    94
    95    instance:
    96        /*! Flash Memory Control Register 1 */
    97        config FCTL1_t FCTL1 = {
    98            FWKEY   : FWKEY,
    99            BLKWRT  : BLKWRT_OFF,
   100            WRT     : WRT_OFF,
   101            EEIEX   : EEIEX_OFF,
   102            EEI     : EEI_OFF,
   103            MERAS   : MERAS_OFF,
   104            ERASE   : ERASE_OFF
   105        };
   106
   107        /*! Flash Memory Control Register 2 */
   108        config FCTL2_t FCTL2 = {
   109            FWKEY       : FWKEY,
   110            FSSEL       : FSSEL_1,
   111            FN5         : FN5_OFF,
   112            FN4         : FN4_OFF,
   113            FN3         : FN3_OFF,
   114            FN2         : FN2_OFF,
   115            FN1         : FN1,
   116            FN0         : FN0_OFF
   117        };
   118
   119        /*! Flash Memory Control Register 3 */
   120        config FCTL3_t FCTL3 = {
   121            FAIL        : FAIL_OFF,
   122            LOCKA       : LOCKA_OFF,
   123            EMEX        : EMEX_OFF,
   124            LOCK        : LOCK,
   125            WAIT        : WAIT,
   126            ACCVIFG     : ACCVIFG_OFF,
   127            KEYV        : KEYV_OFF,
   128            BUSY        : BUSY_OFF
   129        };
   130
   131        /*! Determine if each Register needs to be forced set or not */
   132        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] = [
   133            { register : "FCTL1" , regForceSet : false },
   134            { register : "FCTL2" , regForceSet : false },
   135            { register : "FCTL3" , regForceSet : false }
   136        ];
   137
   138        config IClock.Instance clock;
   139    }


interface ti.catalog.msp430.peripherals.memory.IFlash

metaonly interface ti.catalog.msp430.peripherals.memory.IFlash
index URL

MSP430 IFlash interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
metaonly interface IFlash { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
package ti.catalog.msp430.peripherals.memory;
metaonly interface IFlash inherits IPeripheral {
module-wide constants & types
    enum ACCVIFG_t// Access violation interrupt flag {
         ACCVIFG_OFF// No interrupt pending,
         ACCVIFG// Interrupt pending
    };
    enum BLKWRT_t// Block write mode {
         BLKWRT_OFF// Block-write mode is off,
         BLKWRT// Block-write mode is on
    };
    enum BUSY_t// Busy {
         BUSY_OFF// Not Busy,
         BUSY// Busy
    };
    enum EEIEX_t// Enable Emergency Interrupt Exit {
         EEIEX_OFF// Exit interrupt disabled,
         EEIEX// Exit interrupt enabled
    };
    enum EEI_t// Enable Erase Interrupts {
         EEI_OFF// Interrupts during segment erase disabled,
         EEI// Interrupts during segment erase enabled
    };
    enum EMEX_t// Emergency exit {
         EMEX_OFF// No emergency exit,
         EMEX// Emergency exit
    };
    enum ERASE_t// Erase {
         ERASE_OFF// Erase disabled,
         ERASE// Erase enabled
    };
    enum FAIL_t// Operation failure {
         FAIL_OFF// No failure,
         FAIL// Failure
    };
    enum FN0_t// Flash controller clock divider bit 0 {
         FN0_OFF// Flash controller clock divider bit 0,
         FN0// Flash controller clock divider bit 0
    };
    enum FN1_t// Flash controller clock divider bit 1 {
         FN1_OFF// Flash controller clock divider bit 1,
         FN1// Flash controller clock divider bit 1
    };
    enum FN2_t// Flash controller clock divider bit 2 {
         FN2_OFF// Flash controller clock divider bit 2,
         FN2// Flash controller clock divider bit 2
    };
    enum FN3_t// Flash controller clock divider bit 3 {
         FN3_OFF// Flash controller clock divider bit 3,
         FN3// Flash controller clock divider bit 3
    };
    enum FN4_t// Flash controller clock divider bit 4 {
         FN4_OFF// Flash controller clock divider bit 4,
         FN4// Flash controller clock divider bit 4
    };
    enum FN5_t// Flash controller clock divider bit 5 {
         FN5_OFF// Flash controller clock divider bit 5,
         FN5// Flash controller clock divider bit 5
    };
    enum FSSEL_t// {
         FSSEL_0// ACLK,
         FSSEL_1// MCLK,
         FSSEL_2// SMCLK
    };
    enum FWKEY_t// {
         FWKEY_OFF,
         FWKEY
    };
    enum KEYV_t// Flash security key violation {
         KEYV_OFF// FCTLx password was written correctly,
         KEYV// FCTLx password was written incorrectly
    };
    enum LOCKA_t// SegmentA and Info lock {
         LOCKA_OFF// Segment A unlocked and all information memory is erased during a mass erase,
         LOCKA// Segment A locked and all information memory is protected from erasure during a mass erase
    };
    enum LOCK_t// Lock {
         LOCK_OFF// Unlocked,
         LOCK// Locked
    };
    enum MERAS_t// Mass erase {
         MERAS_OFF// Mass erase disabled,
         MERAS// Mass erase enabled
    };
    enum WAIT_t// Wait {
         WAIT_OFF// The flash memory is not ready for the next byte/word write,
         WAIT// The flash memory is ready for the next byte/word write
    };
    enum WRT_t// Write {
         WRT_OFF// Write mode is off,
         WRT// Write mode is on
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
    config UInt8 uMaxFtg// Max Flash Timing Generator Value from Datasheet;
    config UInt8 uMinFtg// Min Flash Timing Generator Value from Datasheet;
}
enum IFlash.ACCVIFG_t
index URL

Access violation interrupt flag

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum ACCVIFG_t {
    ACCVIFG_OFF,
    // No interrupt pending
    ACCVIFG
    // Interrupt pending
};
enum IFlash.BLKWRT_t
index URL

Block write mode

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum BLKWRT_t {
    BLKWRT_OFF,
    // Block-write mode is off
    BLKWRT
    // Block-write mode is on
};
enum IFlash.BUSY_t
index URL

Busy

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum BUSY_t {
    BUSY_OFF,
    // Not Busy
    BUSY
    // Busy
};
enum IFlash.EEIEX_t
index URL

Enable Emergency Interrupt Exit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum EEIEX_t {
    EEIEX_OFF,
    // Exit interrupt disabled
    EEIEX
    // Exit interrupt enabled
};
enum IFlash.EEI_t
index URL

Enable Erase Interrupts

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum EEI_t {
    EEI_OFF,
    // Interrupts during segment erase disabled
    EEI
    // Interrupts during segment erase enabled
};
enum IFlash.EMEX_t
index URL

Emergency exit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum EMEX_t {
    EMEX_OFF,
    // No emergency exit
    EMEX
    // Emergency exit
};
enum IFlash.ERASE_t
index URL

Erase

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum ERASE_t {
    ERASE_OFF,
    // Erase disabled
    ERASE
    // Erase enabled
};
enum IFlash.FAIL_t
index URL

Operation failure

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FAIL_t {
    FAIL_OFF,
    // No failure
    FAIL
    // Failure
};
enum IFlash.FN0_t
index URL

Flash controller clock divider bit 0

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FN0_t {
    FN0_OFF,
    // Flash controller clock divider bit 0
    FN0
    // Flash controller clock divider bit 0
};
enum IFlash.FN1_t
index URL

Flash controller clock divider bit 1

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FN1_t {
    FN1_OFF,
    // Flash controller clock divider bit 1
    FN1
    // Flash controller clock divider bit 1
};
enum IFlash.FN2_t
index URL

Flash controller clock divider bit 2

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FN2_t {
    FN2_OFF,
    // Flash controller clock divider bit 2
    FN2
    // Flash controller clock divider bit 2
};
enum IFlash.FN3_t
index URL

Flash controller clock divider bit 3

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FN3_t {
    FN3_OFF,
    // Flash controller clock divider bit 3
    FN3
    // Flash controller clock divider bit 3
};
enum IFlash.FN4_t
index URL

Flash controller clock divider bit 4

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FN4_t {
    FN4_OFF,
    // Flash controller clock divider bit 4
    FN4
    // Flash controller clock divider bit 4
};
enum IFlash.FN5_t
index URL

Flash controller clock divider bit 5

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FN5_t {
    FN5_OFF,
    // Flash controller clock divider bit 5
    FN5
    // Flash controller clock divider bit 5
};
enum IFlash.FSSEL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FSSEL_t {
    FSSEL_0,
    // ACLK
    FSSEL_1,
    // MCLK
    FSSEL_2
    // SMCLK
};
enum IFlash.FWKEY_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FWKEY_t {
    FWKEY_OFF,
    FWKEY
};
enum IFlash.KEYV_t
index URL

Flash security key violation

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum KEYV_t {
    KEYV_OFF,
    // FCTLx password was written correctly
    KEYV
    // FCTLx password was written incorrectly
};
enum IFlash.LOCKA_t
index URL

SegmentA and Info lock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum LOCKA_t {
    LOCKA_OFF,
    // Segment A unlocked and all information memory is erased during a mass erase
    LOCKA
    // Segment A locked and all information memory is protected from erasure during a mass erase
};
enum IFlash.LOCK_t
index URL

Lock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum LOCK_t {
    LOCK_OFF,
    // Unlocked
    LOCK
    // Locked
};
enum IFlash.MERAS_t
index URL

Mass erase

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum MERAS_t {
    MERAS_OFF,
    // Mass erase disabled
    MERAS
    // Mass erase enabled
};
enum IFlash.WAIT_t
index URL

Wait

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum WAIT_t {
    WAIT_OFF,
    // The flash memory is not ready for the next byte/word write
    WAIT
    // The flash memory is ready for the next byte/word write
};
enum IFlash.WRT_t
index URL

Write

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum WRT_t {
    WRT_OFF,
    // Write mode is off
    WRT
    // Write mode is on
};
typedef IFlash.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IFlash.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
typedef String StringArray[];
struct IFlash.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
IFlash.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IFlash.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IFlash.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IFlash.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
config String owner;
config IFlash.uMaxFtg // instance
index URL

Max Flash Timing Generator Value from Datasheet

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
config UInt8 uMaxFtg;
config IFlash.uMinFtg // instance
index URL

Min Flash Timing Generator Value from Datasheet

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
config UInt8 uMinFtg;
generated on Thu, 08 Nov 2012 02:17:37 GMT


interface ti.catalog.msp430.peripherals.memory.IFlash

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IFlash ========
    14     *  MSP430 IFlash interface
    15     */
    16    metaonly interface IFlash inherits xdc.platform.IPeripheral {
    17
    18        enum FWKEY_t {
    19            FWKEY_OFF = 0x00,
    20            FWKEY = 0xA500
    21        };
    22
    23        /*! Block write mode */
    24        enum BLKWRT_t {
    25            BLKWRT_OFF = (0x0000),              /*! Block-write mode is off */
    26            BLKWRT = 0x0080                     /*! Block-write mode is on */
    27        };
    28
    29        /*! Write */
    30        enum WRT_t {
    31            WRT_OFF = (0x0000),                 /*! Write mode is off */
    32            WRT = 0x0040                        /*! Write mode is on */
    33        };
    34
    35        /*! Enable Emergency Interrupt Exit */
    36        enum EEIEX_t {
    37            EEIEX_OFF = (0x0000),               /*! Exit interrupt disabled */
    38            EEIEX = 0x0010                      /*! Exit interrupt enabled */
    39        };
    40
    41        /*! Enable Erase Interrupts */
    42        enum EEI_t {
    43            EEI_OFF = (0x0000),                 /*! Interrupts during segment erase disabled */
    44            EEI = 0x0008                        /*! Interrupts during segment erase enabled */
    45        };
    46
    47        /*! Mass erase */
    48        enum MERAS_t {
    49            MERAS_OFF = (0x0000),               /*! Mass erase disabled */
    50            MERAS = 0x0004                      /*! Mass erase enabled */
    51        };
    52
    53        /*! Erase */
    54        enum ERASE_t {
    55            ERASE_OFF = (0x0000),               /*! Erase disabled */
    56            ERASE = 0x0002                      /*! Erase enabled */
    57        };
    58
    59        enum FSSEL_t {
    60            FSSEL_0 = 0x0000,                   /*! ACLK */
    61            FSSEL_1 = 0x0040,                   /*! MCLK  */
    62            FSSEL_2 = 0x0080                    /*! SMCLK */
    63         };
    64
    65         /*! Flash controller clock divider bit 0 */
    66        enum FN0_t {
    67            FN0_OFF = (0x0000),                 /*! Flash controller clock divider bit 0 */
    68            FN0 = 0x0001                        /*! Flash controller clock divider bit 0 */
    69        };
    70
    71        /*! Flash controller clock divider bit 1 */
    72        enum FN1_t {
    73            FN1_OFF = (0x0000),                 /*! Flash controller clock divider bit 1 */
    74            FN1 = 0x0002                        /*! Flash controller clock divider bit 1 */
    75        };
    76
    77        /*! Flash controller clock divider bit 2 */
    78        enum FN2_t {
    79            FN2_OFF = (0x0000),                 /*! Flash controller clock divider bit 2 */
    80            FN2 = 0x0004                        /*! Flash controller clock divider bit 2 */
    81        };
    82
    83        /*! Flash controller clock divider bit 3 */
    84        enum FN3_t {
    85            FN3_OFF = (0x0000),                 /*! Flash controller clock divider bit 3 */
    86            FN3 = 0x0008                        /*! Flash controller clock divider bit 3 */
    87        };
    88
    89        /*! Flash controller clock divider bit 4 */
    90        enum FN4_t {
    91            FN4_OFF = (0x0000),                 /*! Flash controller clock divider bit 4 */
    92            FN4 = 0x0010                        /*! Flash controller clock divider bit 4 */
    93        };
    94
    95        /*! Flash controller clock divider bit 5 */
    96        enum FN5_t {
    97            FN5_OFF = (0x0000),                 /*! Flash controller clock divider bit 5 */
    98            FN5 = 0x0020                        /*! Flash controller clock divider bit 5 */
    99        };
   100
   101        /*! Operation failure */
   102        enum FAIL_t {
   103            FAIL_OFF = (0x0000),                /*! No failure */
   104            FAIL = 0x0080                       /*! Failure */
   105        };
   106
   107        /*! SegmentA and Info lock */
   108        enum LOCKA_t {
   109            LOCKA_OFF = (0x0000),               /*! Segment A unlocked and all information memory is erased during a mass erase */
   110            LOCKA = 0x0040                      /*! Segment A locked and all information memory is protected from erasure during a mass erase */
   111        };
   112
   113        /*! Emergency exit */
   114        enum EMEX_t {
   115            EMEX_OFF = (0x0000),                /*! No emergency exit */
   116            EMEX = 0x0020                       /*! Emergency exit */
   117        };
   118
   119        /*! Lock */
   120        enum LOCK_t {
   121            LOCK_OFF = (0x0000),                /*! Unlocked */
   122            LOCK = 0x0010                       /*! Locked */
   123        };
   124
   125        /*! Wait */
   126        enum WAIT_t {
   127            WAIT_OFF = (0x0000),                /*! The flash memory is not ready for the next byte/word write */
   128            WAIT = 0x0008                       /*! The flash memory is ready for the next byte/word write */
   129        };
   130
   131        /*! Access violation interrupt flag */
   132        enum ACCVIFG_t {
   133            ACCVIFG_OFF = (0x0000),             /*! No interrupt pending */
   134            ACCVIFG = 0x0004                    /*! Interrupt pending */
   135        };
   136
   137        /*! Flash security key violation */
   138        enum KEYV_t {
   139            KEYV_OFF = (0x0000),                /*! FCTLx password was written correctly */
   140            KEYV = 0x0002                       /*! FCTLx password was written incorrectly */
   141        };
   142
   143        /*! Busy */
   144        enum BUSY_t {
   145            BUSY_OFF = (0x0000),                /*! Not Busy */
   146            BUSY = 0x0001                       /*! Busy */
   147        };
   148
   149        /*!
   150        *  ======== ForceSetDefaultRegister_t ========
   151        *  Force Set Default Register
   152        *
   153        *  Type to store if each register needs to be forced initialized
   154        *  even if the register is in default state.
   155        *
   156        *  @see #ForceSetDefaultRegister_t
   157        */
   158        struct ForceSetDefaultRegister_t {
   159            String     register;
   160            Bool       regForceSet;
   161        }
   162
   163
   164    instance:
   165        /*! Max Flash Timing Generator Value from Datasheet */
   166        config UInt8 uMaxFtg;
   167
   168        /*! Min Flash Timing Generator Value from Datasheet */
   169        config UInt8 uMinFtg;
   170
   171    }


package ti.catalog.msp430.peripherals.oa
index URL

MSP430 Op Amp peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/package.xdc
package ti.catalog.msp430.peripherals.oa [1, 0, 0] {
    interface IOA;
    // MSP430 General Purpose Operational Amplifier
    module OA_2;
    // MSP430 General Purpose Operational Amplifier
}
generated on Thu, 08 Nov 2012 02:17:38 GMT


package ti.catalog.msp430.peripherals.oa

     1    /*!
     2     *  ======== ti.catalog.msp430.peripherals.oa ========
     3     *  MSP430 Op Amp peripheral
     4     */
     5    package ti.catalog.msp430.peripherals.oa [1, 0, 0] {
     6        interface IOA;
     7        module    OA_2;
     8    }


interface ti.catalog.msp430.peripherals.oa.IOA

metaonly interface ti.catalog.msp430.peripherals.oa.IOA
index URL

MSP430 General Purpose Operational Amplifier

XDCspec summary sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
metaonly interface IOA { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
package ti.catalog.msp430.peripherals.oa;
metaonly interface IOA inherits IPeripheral {
module-wide constants & types
    enum OAADC0_t// {
         OAADC0_OFF// OAx output to ADC12 input channel select 0,
         OAADC0// OAx output to ADC12 input channel select 0
    };
    enum OAADC1_t// {
         OAADC1_OFF// OAx output to ADC12 input channel select 1,
         OAADC1// OAx output to ADC12 input channel select 1
    };
    enum OAFBR_t// OAx feedback resistor select {
         OAFBR_0// OAx Feedback resistor: Tap 0,
         OAFBR_1// OAx Feedback resistor: Tap 1,
         OAFBR_2// OAx Feedback resistor: Tap 2,
         OAFBR_3// OAx Feedback resistor: Tap 3,
         OAFBR_4// OAx Feedback resistor: Tap 4,
         OAFBR_5// OAx Feedback resistor: Tap 5,
         OAFBR_6// OAx Feedback resistor: Tap 6,
         OAFBR_7// OAx Feedback resistor: Tap 7
    };
    enum OAFC_t// OAx function control {
         OAFC_0// General Purpose,
         OAFC_1// Unity gain buffer for three-opamp differential amplifier,
         OAFC_2// Unity gain buffer,
         OAFC_3// Comparator,
         OAFC_4// Non-inverting PGA,
         OAFC_5// Cascaded non-inverting PGA,
         OAFC_6// Inverting PGA,
         OAFC_7// Differential amplifier
    };
    enum OANEXT_t// {
         OANEXT_OFF// OAx inverting input not externally available,
         OANEXT// OAx inverting input externally available
    };
    enum OAN_t// Inverting input selection {
         OAN_0// OAxI0,
         OAN_1// OAxI1,
         OAN_2// OAxI2,
         OAN_3// OAxI3
    };
    enum OAPM_t// Slew rate select {
         OAPM_0// Off, output high Z,
         OAPM_1// Slow,
         OAPM_2// Medium,
         OAPM_3// Fast
    };
    enum OAP_t// Non-inverting input selection {
         OAP_0// OAxI0,
         OAP_1// OAxI1,
         OAP_2// OAxI2,
         OAP_3// OAxI3
    };
    enum OARRIP_t// {
         OARRIP_OFF// Rtop = AVss, Rbottom = AVcc,
         OARRIP// Rtop = AVcc, Rbottom = AVss
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct OAxCTL0_t// Opamp Control Register 0 Definition {
         IOA.OAN_t OAN// Inverting input select. These bits select the input signal for the OA inverting input. 00 OAxI0 01 OAxI1 10 OAxIA (see the device-specific data sheet for connected signal) 11 OAxIB (see the device-specific data sheet for connected signal);
         IOA.OAP_t OAP// Non-inverting input select. These bits select the input signal for the OA non-inverting input. 00 OAxI0 01 OA0I1 10 OAxIA (see the device-specific data sheet for connected signal) 11 OAxIB (see the device-specific data sheet for connected signal);
         IOA.OAPM_t OAPM// Slew rate select. These bits select the slew rate vs. current consumption for the OA. 00 Off, output high Z 01 Slow 10 Medium 11 Fast;
         IOA.OAADC0_t OAADC0// OA output select. These bits, together with the OAFCx bits, control the routing of the OAx output when OAPMx > 0. When OAFCx = 0: 00 OAxOUT connected to external pins and ADC input A1, A3, or A5 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected to external pins and ADC input A12, A13, or A14 When OAFCx > 0: 00 OAxOUT used for internal routing only 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected internally to ADC input A12, A13 , or A14. External A12, A13, or A14 pin connections are disconnected from the ADC;
         IOA.OAADC1_t OAADC1// OA output select. These bits, together with the OAFCx bits, control the routing of the OAx output when OAPMx > 0. When OAFCx = 0: 00 OAxOUT connected to external pins and ADC input A1, A3, or A5 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected to external pins and ADC input A12, A13, or A14 When OAFCx > 0: 00 OAxOUT used for internal routing only 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected internally to ADC input A12, A13 , or A14. External A12, A13, or A14 pin connections are disconnected from the ADC;
    };
    metaonly struct OAxCTL1_t// Opamp Control Register 1 Definition {
         IOA.OAFBR_t OAFBR// OAx feedback resistor select 000 Tap 0 - 0R/16R 001 Tap 1 - 4R/12R 010 Tap 2 - 8R/8R 011 Tap 3 - 10R/6R 100 Tap 4 - 12R/4R 101 Tap 5 - 13R/3R 110 Tap 6 - 14R/2R 111 Tap 7 - 15R/1R;
         IOA.OAFC_t OAFC// OAx function control. This bit selects the function of OAx 000 General purpose opamp 001 Unity gain buffer for three-opamp differential amplifier 010 Unity gain buffer 011 Comparator 100 Non-inverting PGA amplifier 101 Cascaded non-inverting PGA amplifier 110 Inverting PGA amplifier 111 Differential amplifier;
         IOA.OANEXT_t OANEXT// OAx inverting input externally available. This bit, when set, connects the inverting OAx input to the external pin when the integrated resistor network is used. 0 OAx inverting input not externally available 1 OAx inverting input externally available;
         IOA.OARRIP_t OARRIP// OAx reverse resistor connection in comparator mode 0 RTOP is connected to AVSS and RBOTTOM is connected to AVCC when OAFCx = 3 1 RTOP is connected to AVCC and RBOTTOM is connected to AVSS when OAFCx = 3;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
per-instance functions
    UChar getNumberOfOA// Returns the number of available OA();
}
enum IOA.OAADC0_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OAADC0_t {
    OAADC0_OFF,
    // OAx output to ADC12 input channel select 0
    OAADC0
    // OAx output to ADC12 input channel select 0
};
enum IOA.OAADC1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OAADC1_t {
    OAADC1_OFF,
    // OAx output to ADC12 input channel select 1
    OAADC1
    // OAx output to ADC12 input channel select 1
};
enum IOA.OAFBR_t
index URL

OAx feedback resistor select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OAFBR_t {
    OAFBR_0,
    // OAx Feedback resistor: Tap 0
    OAFBR_1,
    // OAx Feedback resistor: Tap 1
    OAFBR_2,
    // OAx Feedback resistor: Tap 2
    OAFBR_3,
    // OAx Feedback resistor: Tap 3
    OAFBR_4,
    // OAx Feedback resistor: Tap 4
    OAFBR_5,
    // OAx Feedback resistor: Tap 5
    OAFBR_6,
    // OAx Feedback resistor: Tap 6
    OAFBR_7
    // OAx Feedback resistor: Tap 7
};
enum IOA.OAFC_t
index URL

OAx function control

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OAFC_t {
    OAFC_0,
    // General Purpose
    OAFC_1,
    // Unity gain buffer for three-opamp differential amplifier
    OAFC_2,
    // Unity gain buffer
    OAFC_3,
    // Comparator
    OAFC_4,
    // Non-inverting PGA
    OAFC_5,
    // Cascaded non-inverting PGA
    OAFC_6,
    // Inverting PGA
    OAFC_7
    // Differential amplifier
};
enum IOA.OANEXT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OANEXT_t {
    OANEXT_OFF,
    // OAx inverting input not externally available
    OANEXT
    // OAx inverting input externally available
};
enum IOA.OAN_t
index URL

Inverting input selection

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OAN_t {
    OAN_0,
    // OAxI0
    OAN_1,
    // OAxI1
    OAN_2,
    // OAxI2
    OAN_3
    // OAxI3
};
enum IOA.OAPM_t
index URL

Slew rate select

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OAPM_t {
    OAPM_0,
    // Off, output high Z
    OAPM_1,
    // Slow
    OAPM_2,
    // Medium
    OAPM_3
    // Fast
};
enum IOA.OAP_t
index URL

Non-inverting input selection

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OAP_t {
    OAP_0,
    // OAxI0
    OAP_1,
    // OAxI1
    OAP_2,
    // OAxI2
    OAP_3
    // OAxI3
};
enum IOA.OARRIP_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OARRIP_t {
    OARRIP_OFF,
    // Rtop = AVss, Rbottom = AVcc
    OARRIP
    // Rtop = AVcc, Rbottom = AVss
};
typedef IOA.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IOA.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
typedef String StringArray[];
struct IOA.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IOA.OAxCTL0_t
index URL

Opamp Control Register 0 Definition

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
metaonly struct OAxCTL0_t {
     IOA.OAN_t OAN;
    // Inverting input select. These bits select the input signal for the OA inverting input. 00 OAxI0 01 OAxI1 10 OAxIA (see the device-specific data sheet for connected signal) 11 OAxIB (see the device-specific data sheet for connected signal)
     IOA.OAP_t OAP;
    // Non-inverting input select. These bits select the input signal for the OA non-inverting input. 00 OAxI0 01 OA0I1 10 OAxIA (see the device-specific data sheet for connected signal) 11 OAxIB (see the device-specific data sheet for connected signal)
     IOA.OAPM_t OAPM;
    // Slew rate select. These bits select the slew rate vs. current consumption for the OA. 00 Off, output high Z 01 Slow 10 Medium 11 Fast
     IOA.OAADC0_t OAADC0;
    // OA output select. These bits, together with the OAFCx bits, control the routing of the OAx output when OAPMx > 0. When OAFCx = 0: 00 OAxOUT connected to external pins and ADC input A1, A3, or A5 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected to external pins and ADC input A12, A13, or A14 When OAFCx > 0: 00 OAxOUT used for internal routing only 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected internally to ADC input A12, A13 , or A14. External A12, A13, or A14 pin connections are disconnected from the ADC
     IOA.OAADC1_t OAADC1;
    // OA output select. These bits, together with the OAFCx bits, control the routing of the OAx output when OAPMx > 0. When OAFCx = 0: 00 OAxOUT connected to external pins and ADC input A1, A3, or A5 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected to external pins and ADC input A12, A13, or A14 When OAFCx > 0: 00 OAxOUT used for internal routing only 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected internally to ADC input A12, A13 , or A14. External A12, A13, or A14 pin connections are disconnected from the ADC
};
SEE
OAxCTL0_t
struct IOA.OAxCTL1_t
index URL

Opamp Control Register 1 Definition

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
metaonly struct OAxCTL1_t {
     IOA.OAFBR_t OAFBR;
    // OAx feedback resistor select 000 Tap 0 - 0R/16R 001 Tap 1 - 4R/12R 010 Tap 2 - 8R/8R 011 Tap 3 - 10R/6R 100 Tap 4 - 12R/4R 101 Tap 5 - 13R/3R 110 Tap 6 - 14R/2R 111 Tap 7 - 15R/1R
     IOA.OAFC_t OAFC;
    // OAx function control. This bit selects the function of OAx 000 General purpose opamp 001 Unity gain buffer for three-opamp differential amplifier 010 Unity gain buffer 011 Comparator 100 Non-inverting PGA amplifier 101 Cascaded non-inverting PGA amplifier 110 Inverting PGA amplifier 111 Differential amplifier
     IOA.OANEXT_t OANEXT;
    // OAx inverting input externally available. This bit, when set, connects the inverting OAx input to the external pin when the integrated resistor network is used. 0 OAx inverting input not externally available 1 OAx inverting input externally available
     IOA.OARRIP_t OARRIP;
    // OAx reverse resistor connection in comparator mode 0 RTOP is connected to AVSS and RBOTTOM is connected to AVCC when OAFCx = 3 1 RTOP is connected to AVCC and RBOTTOM is connected to AVSS when OAFCx = 3
};
SEE
OAxCTL1_t
IOA.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IOA.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IOA.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IOA.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
config String owner;
IOA.getNumberOfOA() // instance
index URL

Returns the number of available OA

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
UChar getNumberOfOA();
generated on Thu, 08 Nov 2012 02:17:38 GMT


interface ti.catalog.msp430.peripherals.oa.IOA

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IOA ========
    14     *  MSP430 General Purpose Operational Amplifier
    15     */
    16    metaonly interface IOA inherits xdc.platform.IPeripheral {
    17
    18        /*! Inverting input selection */
    19        enum OAN_t {
    20          OAN_0 = (0*0x400u),       /*! OAxI0 */
    21          OAN_1 = (1*0x400u),       /*! OAxI1 */
    22          OAN_2 = (2*0x400u),       /*! OAxI2 */
    23          OAN_3 = 3*0x400u          /*! OAxI3 */
    24        };
    25
    26        /*! Non-inverting input selection */
    27        enum OAP_t {
    28          OAP_0 = (0*0x400u),       /*! OAxI0 */
    29          OAP_1 = (1*0x400u),       /*! OAxI1 */
    30          OAP_2 = (2*0x400u),       /*! OAxI2 */
    31          OAP_3 = 3*0x400u          /*! OAxI3 */
    32        };
    33
    34        /*! Slew rate select */
    35        enum OAPM_t {
    36          OAPM_0 = (0*0x400u),      /*! Off, output high Z */
    37          OAPM_1 = (1*0x400u),      /*! Slow */
    38          OAPM_2 = (2*0x400u),      /*! Medium */
    39          OAPM_3 = 3*0x400u         /*! Fast */
    40        };
    41
    42        enum OAADC0_t {
    43          OAADC0_OFF = (0x00),      /*! OAx output to ADC12 input channel select 0 */
    44          OAADC0 = 0x01             /*! OAx output to ADC12 input channel select 0 */
    45        };
    46
    47        enum OAADC1_t {
    48          OAADC1_OFF = (0x00),      /*! OAx output to ADC12 input channel select 1 */
    49          OAADC1 = 0x02             /*! OAx output to ADC12 input channel select 1 */
    50        };
    51
    52        /*! OAx feedback resistor select */
    53        enum OAFBR_t {
    54          OAFBR_0 = (0*0x100u),     /*! OAx Feedback resistor: Tap 0 */
    55          OAFBR_1 = (1*0x100u),     /*! OAx Feedback resistor: Tap 1 */
    56          OAFBR_2 = (2*0x100u),     /*! OAx Feedback resistor: Tap 2 */
    57          OAFBR_3 = (3*0x100u),     /*! OAx Feedback resistor: Tap 3 */
    58          OAFBR_4 = (4*0x100u),     /*! OAx Feedback resistor: Tap 4 */
    59          OAFBR_5 = (5*0x100u),     /*! OAx Feedback resistor: Tap 5 */
    60          OAFBR_6 = (6*0x100u),     /*! OAx Feedback resistor: Tap 6 */
    61          OAFBR_7 = 7*0x100u        /*! OAx Feedback resistor: Tap 7 */
    62        };
    63
    64        /*! OAx function control */
    65        enum OAFC_t {
    66          OAFC_0 = (0*0x100u),      /*! General Purpose */
    67          OAFC_1 = (1*0x100u),      /*! Unity gain buffer for three-opamp differential amplifier */
    68          OAFC_2 = (2*0x100u),      /*! Unity gain buffer */
    69          OAFC_3 = (3*0x100u),      /*! Comparator */
    70          OAFC_4 = (4*0x100u),      /*! Non-inverting PGA */
    71          OAFC_5 = (5*0x100u),      /*! Cascaded non-inverting PGA */
    72          OAFC_6 = (6*0x100u),      /*! Inverting PGA */
    73          OAFC_7 = 7*0x100u         /*! Differential amplifier */
    74        };
    75
    76        enum OARRIP_t {
    77          OARRIP_OFF = 0x00,        /*! Rtop = AVss, Rbottom = AVcc */
    78          OARRIP     = 0x01         /*! Rtop = AVcc, Rbottom = AVss */
    79        };
    80
    81        enum OANEXT_t {
    82          OANEXT_OFF = 0x00,        /*! OAx inverting input not externally available */
    83          OANEXT     = 0x02         /*! OAx inverting input externally available */
    84        };
    85
    86       /*!
    87        *  ======== OAxCTL0_t ========
    88        *  Opamp Control Register 0 Definition
    89        *
    90        *  @see #OAxCTL0_t
    91        */
    92        struct OAxCTL0_t {
    93          OAN_t     OAN;            /*! Inverting input select. These bits select the input signal for the OA inverting
    94                                      * input.
    95                                      *  00  OAxI0
    96                                      *  01  OAxI1
    97                                      *  10  OAxIA (see the device-specific data sheet for connected signal)
    98                                      *  11  OAxIB (see the device-specific data sheet for connected signal) */
    99          OAP_t     OAP;            /*! Non-inverting input select. These bits select the input signal for the OA
   100                                      * non-inverting input.
   101                                      *  00  OAxI0
   102                                      *  01  OA0I1
   103                                      *  10  OAxIA (see the device-specific data sheet for connected signal)
   104                                      *  11  OAxIB (see the device-specific data sheet for connected signal) */
   105          OAPM_t    OAPM;           /*! Slew rate select. These bits select the slew rate vs. current consumption
   106                                      * for the OA.
   107                                      *  00  Off, output high Z
   108                                      *  01  Slow
   109                                      *  10  Medium
   110                                      *  11  Fast */
   111          OAADC0_t  OAADC0;         /*! OA output select. These bits, together with the OAFCx bits, control the
   112                                      * routing of the OAx output when OAPMx > 0.
   113                                      * When OAFCx = 0:
   114                                      *  00  OAxOUT connected to external pins and ADC input A1, A3, or A5
   115                                      *  01  OAxOUT connected to external pins and ADC input A12, A13, or A14
   116                                      *  10  OAxOUT connected to external pins and ADC input A1, A3, or A5
   117                                      *  11  OAxOUT connected to external pins and ADC input A12, A13, or A14
   118                                      * When OAFCx > 0:
   119                                      *  00  OAxOUT used for internal routing only
   120                                      *  01  OAxOUT connected to external pins and ADC input A12, A13, or A14
   121                                      *  10  OAxOUT connected to external pins and ADC input A1, A3, or A5
   122                                      *  11  OAxOUT connected internally to ADC input A12, A13 , or A14.
   123                                      * External A12, A13, or A14 pin connections are disconnected from the
   124                                      * ADC. */
   125          OAADC1_t  OAADC1;         /*! OA output select. These bits, together with the OAFCx bits, control the
   126                                      * routing of the OAx output when OAPMx > 0.
   127                                      * When OAFCx = 0:
   128                                      *  00  OAxOUT connected to external pins and ADC input A1, A3, or A5
   129                                      *  01  OAxOUT connected to external pins and ADC input A12, A13, or A14
   130                                      *  10  OAxOUT connected to external pins and ADC input A1, A3, or A5
   131                                      *  11  OAxOUT connected to external pins and ADC input A12, A13, or A14
   132                                      * When OAFCx > 0:
   133                                      *  00  OAxOUT used for internal routing only
   134                                      *  01  OAxOUT connected to external pins and ADC input A12, A13, or A14
   135                                      *  10  OAxOUT connected to external pins and ADC input A1, A3, or A5
   136                                      *  11  OAxOUT connected internally to ADC input A12, A13 , or A14.
   137                                      * External A12, A13, or A14 pin connections are disconnected from the
   138                                      * ADC. */
   139        }
   140
   141        /*!
   142        *  ======== OAxCTL1_t ========
   143        *  Opamp Control Register 1 Definition
   144        *
   145        *  @see #OAxCTL1_t
   146        */
   147        struct OAxCTL1_t {
   148          OAFBR_t   OAFBR;          /*! OAx feedback resistor select
   149                                      *  000  Tap 0 - 0R/16R
   150                                      *  001  Tap 1 - 4R/12R
   151                                      *  010  Tap 2 - 8R/8R
   152                                      *  011  Tap 3 - 10R/6R
   153                                      *  100  Tap 4 - 12R/4R
   154                                      *  101  Tap 5 - 13R/3R
   155                                      *  110  Tap 6 - 14R/2R
   156                                      *  111  Tap 7 - 15R/1R */
   157          OAFC_t    OAFC;           /*! OAx function control. This bit selects the function of OAx
   158                                      *  000  General purpose opamp
   159                                      *  001  Unity gain buffer for three-opamp differential amplifier
   160                                      *  010  Unity gain buffer
   161                                      *  011  Comparator
   162                                      *  100  Non-inverting PGA amplifier
   163                                      *  101  Cascaded non-inverting PGA amplifier
   164                                      *  110  Inverting PGA amplifier
   165                                      *  111  Differential amplifier */
   166          OANEXT_t  OANEXT;         /*! OAx inverting input externally available. This bit, when set, connects the
   167                                      * inverting OAx input to the external pin when the integrated resistor network
   168                                      * is used.
   169                                      *  0  OAx inverting input not externally available
   170                                      *  1  OAx inverting input externally available */
   171          OARRIP_t  OARRIP;         /*! OAx reverse resistor connection in comparator mode
   172                                      *  0  RTOP is connected to AVSS and RBOTTOM is connected to AVCC when
   173                                      *     OAFCx = 3
   174                                      *  1  RTOP is connected to AVCC and RBOTTOM is connected to AVSS when
   175                                      *     OAFCx = 3. */
   176        }
   177
   178        /*!
   179        *  ======== ForceSetDefaultRegister_t ========
   180        *  Force Set Default Register
   181        *
   182        *  Type to store if each register needs to be forced initialized
   183        *  even if the register is in default state.
   184        *
   185        *  @see #ForceSetDefaultRegister_t
   186        */
   187        struct ForceSetDefaultRegister_t {
   188            String     register;
   189            Bool       regForceSet;
   190        }
   191
   192    instance:
   193
   194        /*! Returns the number of available OA */
   195        UChar getNumberOfOA();
   196    }


module ti.catalog.msp430.peripherals.oa.OA_2

metaonly module ti.catalog.msp430.peripherals.oa.OA_2
index URL

MSP430 General Purpose Operational Amplifier

  • XDCscript usage
  • Individual elements
The module is named OA_2 because it only supports two OAs. A device containing three op-amps would require a separate module.
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/oa/OA_2.xdc
var OA_2 = xdc.useModule('ti.catalog.msp430.peripherals.oa.OA_2');
module-wide constants & types
    values of type OA_2.OAADC0_t//
        const OA_2.OAADC0_OFF// OAx output to ADC12 input channel select 0;
        const OA_2.OAADC0// OAx output to ADC12 input channel select 0;
    values of type OA_2.OAADC1_t//
        const OA_2.OAADC1_OFF// OAx output to ADC12 input channel select 1;
        const OA_2.OAADC1// OAx output to ADC12 input channel select 1;
    values of type OA_2.OAFBR_t// OAx feedback resistor select
        const OA_2.OAFBR_0// OAx Feedback resistor: Tap 0;
        const OA_2.OAFBR_1// OAx Feedback resistor: Tap 1;
        const OA_2.OAFBR_2// OAx Feedback resistor: Tap 2;
        const OA_2.OAFBR_3// OAx Feedback resistor: Tap 3;
        const OA_2.OAFBR_4// OAx Feedback resistor: Tap 4;
        const OA_2.OAFBR_5// OAx Feedback resistor: Tap 5;
        const OA_2.OAFBR_6// OAx Feedback resistor: Tap 6;
        const OA_2.OAFBR_7// OAx Feedback resistor: Tap 7;
    values of type OA_2.OAFC_t// OAx function control
        const OA_2.OAFC_0// General Purpose;
        const OA_2.OAFC_1// Unity gain buffer for three-opamp differential amplifier;
        const OA_2.OAFC_2// Unity gain buffer;
        const OA_2.OAFC_3// Comparator;
        const OA_2.OAFC_4// Non-inverting PGA;
        const OA_2.OAFC_5// Cascaded non-inverting PGA;
        const OA_2.OAFC_6// Inverting PGA;
        const OA_2.OAFC_7// Differential amplifier;
    values of type OA_2.OANEXT_t//
        const OA_2.OANEXT_OFF// OAx inverting input not externally available;
        const OA_2.OANEXT// OAx inverting input externally available;
    values of type OA_2.OAN_t// Inverting input selection
        const OA_2.OAN_0// OAxI0;
        const OA_2.OAN_1// OAxI1;
        const OA_2.OAN_2// OAxI2;
        const OA_2.OAN_3// OAxI3;
    values of type OA_2.OAPM_t// Slew rate select
        const OA_2.OAPM_0// Off, output high Z;
        const OA_2.OAPM_1// Slow;
        const OA_2.OAPM_2// Medium;
        const OA_2.OAPM_3// Fast;
    values of type OA_2.OAP_t// Non-inverting input selection
        const OA_2.OAP_0// OAxI0;
        const OA_2.OAP_1// OAxI1;
        const OA_2.OAP_2// OAxI2;
        const OA_2.OAP_3// OAxI3;
    values of type OA_2.OARRIP_t//
        const OA_2.OARRIP_OFF// Rtop = AVss, Rbottom = AVcc;
        const OA_2.OARRIP// Rtop = AVcc, Rbottom = AVss;
    var obj = new OA_2.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new OA_2.OAxCTL0_t// Opamp Control Register 0 Definition;
        obj.OAN// Inverting input select. These bits select the input signal for the OA inverting input. 00 OAxI0 01 OAxI1 10 OAxIA (see the device-specific data sheet for connected signal) 11 OAxIB (see the device-specific data sheet for connected signal) = IOA.OAN_t ...
        obj.OAP// Non-inverting input select. These bits select the input signal for the OA non-inverting input. 00 OAxI0 01 OA0I1 10 OAxIA (see the device-specific data sheet for connected signal) 11 OAxIB (see the device-specific data sheet for connected signal) = IOA.OAP_t ...
        obj.OAPM// Slew rate select. These bits select the slew rate vs. current consumption for the OA. 00 Off, output high Z 01 Slow 10 Medium 11 Fast = IOA.OAPM_t ...
        obj.OAADC0// OA output select. These bits, together with the OAFCx bits, control the routing of the OAx output when OAPMx > 0. When OAFCx = 0: 00 OAxOUT connected to external pins and ADC input A1, A3, or A5 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected to external pins and ADC input A12, A13, or A14 When OAFCx > 0: 00 OAxOUT used for internal routing only 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected internally to ADC input A12, A13 , or A14. External A12, A13, or A14 pin connections are disconnected from the ADC = IOA.OAADC0_t ...
        obj.OAADC1// OA output select. These bits, together with the OAFCx bits, control the routing of the OAx output when OAPMx > 0. When OAFCx = 0: 00 OAxOUT connected to external pins and ADC input A1, A3, or A5 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected to external pins and ADC input A12, A13, or A14 When OAFCx > 0: 00 OAxOUT used for internal routing only 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected internally to ADC input A12, A13 , or A14. External A12, A13, or A14 pin connections are disconnected from the ADC = IOA.OAADC1_t ...
    var obj = new OA_2.OAxCTL1_t// Opamp Control Register 1 Definition;
        obj.OAFBR// OAx feedback resistor select 000 Tap 0 - 0R/16R 001 Tap 1 - 4R/12R 010 Tap 2 - 8R/8R 011 Tap 3 - 10R/6R 100 Tap 4 - 12R/4R 101 Tap 5 - 13R/3R 110 Tap 6 - 14R/2R 111 Tap 7 - 15R/1R = IOA.OAFBR_t ...
        obj.OAFC// OAx function control. This bit selects the function of OAx 000 General purpose opamp 001 Unity gain buffer for three-opamp differential amplifier 010 Unity gain buffer 011 Comparator 100 Non-inverting PGA amplifier 101 Cascaded non-inverting PGA amplifier 110 Inverting PGA amplifier 111 Differential amplifier = IOA.OAFC_t ...
        obj.OANEXT// OAx inverting input externally available. This bit, when set, connects the inverting OAx input to the external pin when the integrated resistor network is used. 0 OAx inverting input not externally available 1 OAx inverting input externally available = IOA.OANEXT_t ...
        obj.OARRIP// OAx reverse resistor connection in comparator mode 0 RTOP is connected to AVSS and RBOTTOM is connected to AVCC when OAFCx = 3 1 RTOP is connected to AVCC and RBOTTOM is connected to AVSS when OAFCx = 3 = IOA.OARRIP_t ...
module-wide functions
     OA_2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     OA_2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new OA_2.Params// Instance config-params object;
        params.OA0CTL0// OA0 control register 0 = OA_2.OAxCTL0_t {
            OAN: IOA.OAN_0,
            OAP: IOA.OAP_0,
            OAPM: IOA.OAPM_0,
            OAADC0: IOA.OAADC0_OFF,
            OAADC1: IOA.OAADC1_OFF
        };
        params.OA0CTL1// OA0 control register 1 = OA_2.OAxCTL1_t {
            OAFBR: IOA.OAFBR_0,
            OAFC: IOA.OAFC_0,
            OANEXT: IOA.OANEXT_OFF,
            OARRIP: IOA.OARRIP_OFF
        };
        params.OA1CTL0// OA1 control register 0 = OA_2.OAxCTL0_t {
            OAN: IOA.OAN_0,
            OAP: IOA.OAP_0,
            OAPM: IOA.OAPM_0,
            OAADC0: IOA.OAADC0_OFF,
            OAADC1: IOA.OAADC1_OFF
        };
        params.OA1CTL1// OA1 control register 1 = OA_2.OAxCTL1_t {
            OAFBR: IOA.OAFBR_0,
            OAFC: IOA.OAFC_0,
            OANEXT: IOA.OANEXT_OFF,
            OARRIP: IOA.OARRIP_OFF
        };
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = OA_2.ForceSetDefaultRegister_t[] [
            {
                register: "OA0CTL0",
                regForceSet: false
            },
            {
                register: "OA0CTL1",
                regForceSet: false
            },
            {
                register: "OA1CTL0",
                regForceSet: false
            },
            {
                register: "OA1CTL1",
                regForceSet: false
            }
        ];
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = OA_2.create// Create an instance-object(params);
per-instance functions
     inst.getNumberOfOA// Returns the number of available OA() returns UChar
enum OA_2.OAADC0_t
index URL
XDCscript usage meta-domain
values of type OA_2.OAADC0_t
    const OA_2.OAADC0_OFF;
    // OAx output to ADC12 input channel select 0
    const OA_2.OAADC0;
    // OAx output to ADC12 input channel select 0
enum OA_2.OAADC1_t
index URL
XDCscript usage meta-domain
values of type OA_2.OAADC1_t
    const OA_2.OAADC1_OFF;
    // OAx output to ADC12 input channel select 1
    const OA_2.OAADC1;
    // OAx output to ADC12 input channel select 1
enum OA_2.OAFBR_t
index URL

OAx feedback resistor select

XDCscript usage meta-domain
values of type OA_2.OAFBR_t
    const OA_2.OAFBR_0;
    // OAx Feedback resistor: Tap 0
    const OA_2.OAFBR_1;
    // OAx Feedback resistor: Tap 1
    const OA_2.OAFBR_2;
    // OAx Feedback resistor: Tap 2
    const OA_2.OAFBR_3;
    // OAx Feedback resistor: Tap 3
    const OA_2.OAFBR_4;
    // OAx Feedback resistor: Tap 4
    const OA_2.OAFBR_5;
    // OAx Feedback resistor: Tap 5
    const OA_2.OAFBR_6;
    // OAx Feedback resistor: Tap 6
    const OA_2.OAFBR_7;
    // OAx Feedback resistor: Tap 7
enum OA_2.OAFC_t
index URL

OAx function control

XDCscript usage meta-domain
values of type OA_2.OAFC_t
    const OA_2.OAFC_0;
    // General Purpose
    const OA_2.OAFC_1;
    // Unity gain buffer for three-opamp differential amplifier
    const OA_2.OAFC_2;
    // Unity gain buffer
    const OA_2.OAFC_3;
    // Comparator
    const OA_2.OAFC_4;
    // Non-inverting PGA
    const OA_2.OAFC_5;
    // Cascaded non-inverting PGA
    const OA_2.OAFC_6;
    // Inverting PGA
    const OA_2.OAFC_7;
    // Differential amplifier
enum OA_2.OANEXT_t
index URL
XDCscript usage meta-domain
values of type OA_2.OANEXT_t
    const OA_2.OANEXT_OFF;
    // OAx inverting input not externally available
    const OA_2.OANEXT;
    // OAx inverting input externally available
enum OA_2.OAN_t
index URL

Inverting input selection

XDCscript usage meta-domain
values of type OA_2.OAN_t
    const OA_2.OAN_0;
    // OAxI0
    const OA_2.OAN_1;
    // OAxI1
    const OA_2.OAN_2;
    // OAxI2
    const OA_2.OAN_3;
    // OAxI3
enum OA_2.OAPM_t
index URL

Slew rate select

XDCscript usage meta-domain
values of type OA_2.OAPM_t
    const OA_2.OAPM_0;
    // Off, output high Z
    const OA_2.OAPM_1;
    // Slow
    const OA_2.OAPM_2;
    // Medium
    const OA_2.OAPM_3;
    // Fast
enum OA_2.OAP_t
index URL

Non-inverting input selection

XDCscript usage meta-domain
values of type OA_2.OAP_t
    const OA_2.OAP_0;
    // OAxI0
    const OA_2.OAP_1;
    // OAxI1
    const OA_2.OAP_2;
    // OAxI2
    const OA_2.OAP_3;
    // OAxI3
enum OA_2.OARRIP_t
index URL
XDCscript usage meta-domain
values of type OA_2.OARRIP_t
    const OA_2.OARRIP_OFF;
    // Rtop = AVss, Rbottom = AVcc
    const OA_2.OARRIP;
    // Rtop = AVcc, Rbottom = AVss
struct OA_2.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new OA_2.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct OA_2.OAxCTL0_t
index URL

Opamp Control Register 0 Definition

XDCscript usage meta-domain
var obj = new OA_2.OAxCTL0_t;
    obj.OAN = IOA.OAN_t ...
    // Inverting input select. These bits select the input signal for the OA inverting input. 00 OAxI0 01 OAxI1 10 OAxIA (see the device-specific data sheet for connected signal) 11 OAxIB (see the device-specific data sheet for connected signal)
    obj.OAP = IOA.OAP_t ...
    // Non-inverting input select. These bits select the input signal for the OA non-inverting input. 00 OAxI0 01 OA0I1 10 OAxIA (see the device-specific data sheet for connected signal) 11 OAxIB (see the device-specific data sheet for connected signal)
    obj.OAPM = IOA.OAPM_t ...
    // Slew rate select. These bits select the slew rate vs. current consumption for the OA. 00 Off, output high Z 01 Slow 10 Medium 11 Fast
    obj.OAADC0 = IOA.OAADC0_t ...
    // OA output select. These bits, together with the OAFCx bits, control the routing of the OAx output when OAPMx > 0. When OAFCx = 0: 00 OAxOUT connected to external pins and ADC input A1, A3, or A5 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected to external pins and ADC input A12, A13, or A14 When OAFCx > 0: 00 OAxOUT used for internal routing only 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected internally to ADC input A12, A13 , or A14. External A12, A13, or A14 pin connections are disconnected from the ADC
    obj.OAADC1 = IOA.OAADC1_t ...
    // OA output select. These bits, together with the OAFCx bits, control the routing of the OAx output when OAPMx > 0. When OAFCx = 0: 00 OAxOUT connected to external pins and ADC input A1, A3, or A5 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected to external pins and ADC input A12, A13, or A14 When OAFCx > 0: 00 OAxOUT used for internal routing only 01 OAxOUT connected to external pins and ADC input A12, A13, or A14 10 OAxOUT connected to external pins and ADC input A1, A3, or A5 11 OAxOUT connected internally to ADC input A12, A13 , or A14. External A12, A13, or A14 pin connections are disconnected from the ADC
SEE
OAxCTL0_t
struct OA_2.OAxCTL1_t
index URL

Opamp Control Register 1 Definition

XDCscript usage meta-domain
var obj = new OA_2.OAxCTL1_t;
    obj.OAFBR = IOA.OAFBR_t ...
    // OAx feedback resistor select 000 Tap 0 - 0R/16R 001 Tap 1 - 4R/12R 010 Tap 2 - 8R/8R 011 Tap 3 - 10R/6R 100 Tap 4 - 12R/4R 101 Tap 5 - 13R/3R 110 Tap 6 - 14R/2R 111 Tap 7 - 15R/1R
    obj.OAFC = IOA.OAFC_t ...
    // OAx function control. This bit selects the function of OAx 000 General purpose opamp 001 Unity gain buffer for three-opamp differential amplifier 010 Unity gain buffer 011 Comparator 100 Non-inverting PGA amplifier 101 Cascaded non-inverting PGA amplifier 110 Inverting PGA amplifier 111 Differential amplifier
    obj.OANEXT = IOA.OANEXT_t ...
    // OAx inverting input externally available. This bit, when set, connects the inverting OAx input to the external pin when the integrated resistor network is used. 0 OAx inverting input not externally available 1 OAx inverting input externally available
    obj.OARRIP = IOA.OARRIP_t ...
    // OAx reverse resistor connection in comparator mode 0 RTOP is connected to AVSS and RBOTTOM is connected to AVCC when OAFCx = 3 1 RTOP is connected to AVCC and RBOTTOM is connected to AVSS when OAFCx = 3
SEE
OAxCTL1_t
OA_2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
OA_2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
OA_2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
OA_2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OA_2.Params;
// Instance config-params object
    params.OA0CTL0 = OA_2.OAxCTL0_t {
    // OA0 control register 0
        OAN: IOA.OAN_0,
        OAP: IOA.OAP_0,
        OAPM: IOA.OAPM_0,
        OAADC0: IOA.OAADC0_OFF,
        OAADC1: IOA.OAADC1_OFF
    };
    params.OA0CTL1 = OA_2.OAxCTL1_t {
    // OA0 control register 1
        OAFBR: IOA.OAFBR_0,
        OAFC: IOA.OAFC_0,
        OANEXT: IOA.OANEXT_OFF,
        OARRIP: IOA.OARRIP_OFF
    };
    params.OA1CTL0 = OA_2.OAxCTL0_t {
    // OA1 control register 0
        OAN: IOA.OAN_0,
        OAP: IOA.OAP_0,
        OAPM: IOA.OAPM_0,
        OAADC0: IOA.OAADC0_OFF,
        OAADC1: IOA.OAADC1_OFF
    };
    params.OA1CTL1 = OA_2.OAxCTL1_t {
    // OA1 control register 1
        OAFBR: IOA.OAFBR_0,
        OAFC: IOA.OAFC_0,
        OANEXT: IOA.OANEXT_OFF,
        OARRIP: IOA.OARRIP_OFF
    };
    params.forceSetDefaultRegister = OA_2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "OA0CTL0",
            regForceSet: false
        },
        {
            register: "OA0CTL1",
            regForceSet: false
        },
        {
            register: "OA1CTL0",
            regForceSet: false
        },
        {
            register: "OA1CTL1",
            regForceSet: false
        }
    ];
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config OA_2.OA0CTL0 // instance
index URL

OA0 control register 0

XDCscript usage meta-domain
var params = new OA_2.Params;
...
params.OA0CTL0 = OA_2.OAxCTL0_t {
    OAN: IOA.OAN_0,
    OAP: IOA.OAP_0,
    OAPM: IOA.OAPM_0,
    OAADC0: IOA.OAADC0_OFF,
    OAADC1: IOA.OAADC1_OFF
};
config OA_2.OA0CTL1 // instance
index URL

OA0 control register 1

XDCscript usage meta-domain
var params = new OA_2.Params;
...
params.OA0CTL1 = OA_2.OAxCTL1_t {
    OAFBR: IOA.OAFBR_0,
    OAFC: IOA.OAFC_0,
    OANEXT: IOA.OANEXT_OFF,
    OARRIP: IOA.OARRIP_OFF
};
config OA_2.OA1CTL0 // instance
index URL

OA1 control register 0

XDCscript usage meta-domain
var params = new OA_2.Params;
...
params.OA1CTL0 = OA_2.OAxCTL0_t {
    OAN: IOA.OAN_0,
    OAP: IOA.OAP_0,
    OAPM: IOA.OAPM_0,
    OAADC0: IOA.OAADC0_OFF,
    OAADC1: IOA.OAADC1_OFF
};
config OA_2.OA1CTL1 // instance
index URL

OA1 control register 1

XDCscript usage meta-domain
var params = new OA_2.Params;
...
params.OA1CTL1 = OA_2.OAxCTL1_t {
    OAFBR: IOA.OAFBR_0,
    OAFC: IOA.OAFC_0,
    OANEXT: IOA.OANEXT_OFF,
    OARRIP: IOA.OARRIP_OFF
};
config OA_2.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new OA_2.Params;
...
const params.forceSetDefaultRegister = OA_2.ForceSetDefaultRegister_t[] [
    {
        register: "OA0CTL0",
        regForceSet: false
    },
    {
        register: "OA0CTL1",
        regForceSet: false
    },
    {
        register: "OA1CTL0",
        regForceSet: false
    },
    {
        register: "OA1CTL1",
        regForceSet: false
    }
];
config OA_2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new OA_2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config OA_2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new OA_2.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OA_2.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OA_2.create(params);
// Create an instance-object
OA_2.getNumberOfOA() // instance
index URL

Returns the number of available OA

XDCscript usage meta-domain
inst.getNumberOfOA() returns UChar
generated on Thu, 08 Nov 2012 02:17:38 GMT


module ti.catalog.msp430.peripherals.oa.OA_2

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== OA_2 ========
    14     *  MSP430 General Purpose Operational Amplifier
    15     *
    16     *  The module is named OA_2 because it only supports two OAs. A device
    17     *  containing three op-amps would require a separate module.
    18     */
    19    metaonly module OA_2 inherits IOA {
    20        /*!
    21         *  ======== create ========
    22         *  Create an instance of this peripheral
    23         */
    24        create();
    25
    26    instance:
    27        /*! OA0 control register 0 */
    28        config OAxCTL0_t OA0CTL0 = {
    29          OAN : OAN_0,
    30          OAP : OAP_0,
    31          OAPM : OAPM_0,
    32          OAADC0 : OAADC0_OFF,
    33          OAADC1 : OAADC1_OFF
    34        };
    35
    36        /*! OA0 control register 1 */
    37        config OAxCTL1_t OA0CTL1 = {
    38          OAFBR : OAFBR_0,
    39          OAFC : OAFC_0,
    40          OANEXT : OANEXT_OFF,
    41          OARRIP : OARRIP_OFF,
    42        };
    43
    44        /*! OA1 control register 0 */
    45        config OAxCTL0_t OA1CTL0 = {
    46          OAN : OAN_0,
    47          OAP : OAP_0,
    48          OAPM : OAPM_0,
    49          OAADC0 : OAADC0_OFF,
    50          OAADC1 : OAADC1_OFF
    51        };
    52
    53        /*! OA1 control register 1 */
    54        config OAxCTL1_t OA1CTL1 = {
    55          OAFBR : OAFBR_0,
    56          OAFC : OAFC_0,
    57          OANEXT : OANEXT_OFF,
    58          OARRIP : OARRIP_OFF,
    59        };
    60
    61        /*! Determine if each Register needs to be forced set or not */
    62        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    63        [
    64            { register : "OA0CTL0" , regForceSet : false },
    65            { register : "OA0CTL1" , regForceSet : false },
    66            { register : "OA1CTL0" , regForceSet : false },
    67            { register : "OA1CTL1" , regForceSet : false }
    68        ];
    69    }


package ti.catalog.msp430.peripherals.pmm
index URL

MSP430 PMM (Power Management Module) peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/pmm/package.xdc
requires ti.catalog.msp430.peripherals.clock;
requires ti.catalog.msp430.peripherals.special_function;
package ti.catalog.msp430.peripherals.pmm [1, 0, 0] {
    interface IPMM;
    // MSP430 Power Management Interface
    module PMM;
    // MSP430 Power Management Module
}
generated on Thu, 08 Nov 2012 02:17:38 GMT


package ti.catalog.msp430.peripherals.pmm

     1    requires ti.catalog.msp430.peripherals.clock;
     2    requires ti.catalog.msp430.peripherals.special_function;
     3
     4    /*!
     5     *  ======== ti.catalog.msp430.peripherals.pmm ========
     6     *  MSP430 PMM (Power Management Module) peripheral
     7     */
     8    package ti.catalog.msp430.peripherals.pmm [1, 0, 0] {
     9        interface IPMM;
    10        module  PMM;
    11    }


interface ti.catalog.msp430.peripherals.pmm.IPMM

metaonly interface ti.catalog.msp430.peripherals.pmm.IPMM
index URL

MSP430 Power Management Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/pmm/IPMM.xdc
metaonly interface IPMM { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/pmm/IPMM.xdc
package ti.catalog.msp430.peripherals.pmm;
metaonly interface IPMM inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
typedef IPMM.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/pmm/IPMM.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IPMM.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/pmm/IPMM.xdc
typedef String StringArray[];
struct IPMM.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/pmm/IPMM.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
IPMM.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/pmm/IPMM.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IPMM.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/pmm/IPMM.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IPMM.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/pmm/IPMM.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IPMM.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/pmm/IPMM.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:17:38 GMT


interface ti.catalog.msp430.peripherals.pmm.IPMM

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IPMM ========
    14     *  MSP430 Power Management Interface
    15     */
    16    metaonly interface IPMM inherits xdc.platform.IPeripheral {
    17
    18        /*!
    19        *  ======== ForceSetDefaultRegister_t ========
    20        *  Force Set Default Register
    21        *
    22        *  Type to store if each register needs to be forced initialized
    23        *  even if the register is in default state.
    24        *
    25        *  @see #ForceSetDefaultRegister_t
    26        */
    27        struct ForceSetDefaultRegister_t {
    28            String     register;
    29            Bool       regForceSet;
    30        }
    31    }


module ti.catalog.msp430.peripherals.pmm.PMM

metaonly module ti.catalog.msp430.peripherals.pmm.PMM
index URL

MSP430 Power Management Module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/pmm/PMM.xdc
var PMM = xdc.useModule('ti.catalog.msp430.peripherals.pmm.PMM');
module-wide constants & types
    var obj = new PMM.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
module-wide functions
     PMM.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     PMM.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new PMM.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
struct PMM.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new PMM.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
PMM.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
PMM.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
PMM.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
PMM.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new PMM.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config PMM.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new PMM.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config PMM.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new PMM.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config PMM.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new PMM.Params;
...
params.owner = String undefined;
generated on Thu, 08 Nov 2012 02:17:38 GMT


module ti.catalog.msp430.peripherals.pmm.PMM

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== PMM ========
    15     *  MSP430 Power Management Module
    16     */
    17    metaonly module PMM inherits IPMM
    18    {
    19    instance:
    20        /*!
    21         *  ======== baseAddr ========
    22         *  Address of the peripheral's control register.
    23         *
    24         *  A peripheral's registers are commonly accessed through a structure
    25         *  that defines the offsets of a particular register from the lowest
    26         *  address mapped to a peripheral. That lowest address is specified by
    27         *  this parameter.
    28         */
    29        config UInt baseAddr;
    30    }


package ti.catalog.msp430.peripherals.ref
index URL

MSP430 REF (Reference Module) peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/ref/package.xdc
requires ti.catalog.msp430.peripherals.clock;
requires ti.catalog.msp430.peripherals.special_function;
package ti.catalog.msp430.peripherals.ref [1, 0, 0] {
    interface IREF;
    // MSP430 REF Interface
    module REF;
    // MSP430 REF Module
}
generated on Thu, 08 Nov 2012 02:17:39 GMT


package ti.catalog.msp430.peripherals.ref

     1    requires ti.catalog.msp430.peripherals.clock;
     2    requires ti.catalog.msp430.peripherals.special_function;
     3
     4    /*!
     5     *  ======== ti.catalog.msp430.peripherals.ref ========
     6     *  MSP430 REF (Reference Module) peripheral
     7     */
     8    package ti.catalog.msp430.peripherals.ref [1, 0, 0] {
     9        interface IREF;
    10        module  REF;
    11    }


interface ti.catalog.msp430.peripherals.ref.IREF

metaonly interface ti.catalog.msp430.peripherals.ref.IREF
index URL

MSP430 REF Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/ref/IREF.xdc
metaonly interface IREF { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/ref/IREF.xdc
package ti.catalog.msp430.peripherals.ref;
metaonly interface IREF inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
typedef IREF.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/ref/IREF.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IREF.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/ref/IREF.xdc
typedef String StringArray[];
struct IREF.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/ref/IREF.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
IREF.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/ref/IREF.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IREF.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/ref/IREF.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IREF.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/ref/IREF.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IREF.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/ref/IREF.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:17:39 GMT


interface ti.catalog.msp430.peripherals.ref.IREF

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IREF ========
    14     *  MSP430 REF Interface
    15     */
    16    metaonly interface IREF inherits xdc.platform.IPeripheral {
    17
    18        /*!
    19        *  ======== ForceSetDefaultRegister_t ========
    20        *  Force Set Default Register
    21        *
    22        *  Type to store if each register needs to be forced initialized
    23        *  even if the register is in default state.
    24        *
    25        *  @see #ForceSetDefaultRegister_t
    26        */
    27        struct ForceSetDefaultRegister_t {
    28            String     register;
    29            Bool       regForceSet;
    30        }
    31    }


module ti.catalog.msp430.peripherals.ref.REF

metaonly module ti.catalog.msp430.peripherals.ref.REF
index URL

MSP430 REF Module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/ref/REF.xdc
var REF = xdc.useModule('ti.catalog.msp430.peripherals.ref.REF');
module-wide constants & types
    var obj = new REF.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
module-wide functions
     REF.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     REF.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new REF.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
struct REF.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new REF.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
REF.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
REF.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
REF.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
REF.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new REF.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config REF.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new REF.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config REF.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new REF.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config REF.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new REF.Params;
...
params.owner = String undefined;
generated on Thu, 08 Nov 2012 02:17:39 GMT


module ti.catalog.msp430.peripherals.ref.REF

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== REF ========
    15     *  MSP430 REF Module
    16     */
    17    metaonly module REF inherits IREF
    18    {
    19    instance:
    20        /*!
    21         *  ======== baseAddr ========
    22         *  Address of the peripheral's control register.
    23         *
    24         *  A peripheral's registers are commonly accessed through a structure
    25         *  that defines the offsets of a particular register from the lowest
    26         *  address mapped to a peripheral. That lowest address is specified by
    27         *  this parameter.
    28         */
    29        config UInt baseAddr;
    30    }


package ti.catalog.msp430.peripherals.rtc
index URL

MSP430 RTC (real time clock) peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/package.xdc
package ti.catalog.msp430.peripherals.rtc [1, 0, 0] {
    interface IRTC;
    // MSP430 Real-Time Clock interface
    module RTC_B;
    // MSP430 Real-Time Clock B
}
generated on Thu, 08 Nov 2012 02:17:39 GMT


package ti.catalog.msp430.peripherals.rtc

     1
     2    /* requires ti.catalog.msp430.peripherals.special_function; ?? */
     3
     4    /*!
     5     *  ======== ti.catalog.msp430.peripherals.rtc ========
     6     *  MSP430 RTC (real time clock) peripheral
     7     */
     8    package ti.catalog.msp430.peripherals.rtc [1, 0, 0] {
     9        interface IRTC;
    10        module RTC_B;
    11    }


interface ti.catalog.msp430.peripherals.rtc.IRTC

metaonly interface ti.catalog.msp430.peripherals.rtc.IRTC
index URL

MSP430 Real-Time Clock interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
metaonly interface IRTC { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
package ti.catalog.msp430.peripherals.rtc;
metaonly interface IRTC inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
typedef IRTC.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IRTC.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
typedef String StringArray[];
struct IRTC.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IRTC.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IRTC.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IRTC.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IRTC.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IRTC.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/rtc/IRTC.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:17:39 GMT


interface ti.catalog.msp430.peripherals.rtc.IRTC

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== IRTC ========
    15     *  MSP430 Real-Time Clock interface
    16     */
    17    metaonly interface IRTC inherits xdc.platform.IPeripheral {
    18
    19        /*!
    20        *  ======== ForceSetDefaultRegister_t ========
    21        *  Force Set Default Register
    22        *
    23        *  Type to store if each register needs to be forced initialized
    24        *  even if the register is in default state.
    25        *
    26        *  @see #ForceSetDefaultRegister_t
    27        */
    28        struct ForceSetDefaultRegister_t {
    29            String     register;
    30            Bool       regForceSet;
    31        }
    32
    33        /*!
    34        *  ======== regIntVect_t ========
    35        *  Interrupt vector description
    36        *
    37        *  Type to describe a single interrupt vector pin and all its possible
    38        *  configurations.
    39        *
    40        *  @see #regIntVect_t
    41        */
    42        struct regIntVect_t {
    43            String                    registerName;
    44            String                    registerDescription;
    45            String                    isrToggleString;
    46            String                    priorityName;
    47            Bool                      interruptEnable;
    48            Bool                      interruptHandler;
    49            Int                       priority;
    50        }
    51
    52
    53    instance:
    54
    55    }
    56
    57


module ti.catalog.msp430.peripherals.rtc.RTC_B

metaonly module ti.catalog.msp430.peripherals.rtc.RTC_B
index URL

MSP430 Real-Time Clock B

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/rtc/RTC_B.xdc
var RTC_B = xdc.useModule('ti.catalog.msp430.peripherals.rtc.RTC_B');
module-wide constants & types
    var obj = new RTC_B.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new RTC_B.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     RTC_B.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     RTC_B.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new RTC_B.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = RTC_B.ForceSetDefaultRegister_t[] [ ];
        params.interruptSource// RTC interrupt enables = RTC_B.regIntVect_t[4] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
struct RTC_B.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new RTC_B.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct RTC_B.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new RTC_B.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
RTC_B.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
RTC_B.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
RTC_B.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
RTC_B.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new RTC_B.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = RTC_B.ForceSetDefaultRegister_t[] [ ];
    // Determine if each Register needs to be forced set or not
    params.interruptSource = RTC_B.regIntVect_t[4] undefined;
    // RTC interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config RTC_B.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new RTC_B.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config RTC_B.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new RTC_B.Params;
...
const params.forceSetDefaultRegister = RTC_B.ForceSetDefaultRegister_t[] [ ];
config RTC_B.interruptSource // instance
index URL

RTC interrupt enables

XDCscript usage meta-domain
var params = new RTC_B.Params;
...
params.interruptSource = RTC_B.regIntVect_t[4] undefined;
config RTC_B.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new RTC_B.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config RTC_B.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new RTC_B.Params;
...
params.owner = String undefined;
generated on Thu, 08 Nov 2012 02:17:39 GMT


module ti.catalog.msp430.peripherals.rtc.RTC_B

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== RTC_B ========
    15     *  MSP430 Real-Time Clock B
    16     */
    17    metaonly module RTC_B inherits IRTC {
    18
    19    instance:
    20        /*!
    21         *  ======== baseAddr ========
    22         *  Address of the peripheral's control register.
    23         *
    24         *  A peripheral's registers are commonly accessed through a structure
    25         *  that defines the offsets of a particular register from the lowest
    26         *  address mapped to a peripheral. That lowest address is specified by
    27         *  this parameter.
    28         */
    29        config UInt baseAddr;
    30
    31        /*! RTC interrupt enables */
    32        config regIntVect_t interruptSource[4];
    33
    34        /*! Determine if each Register needs to be forced set or not */
    35        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    36        [
    37        ];
    38
    39    }


package ti.catalog.msp430.peripherals.special_function
index URL

MSP430 interrupt enable support

XDCspec declarations sourced in ti/catalog/msp430/peripherals/special_function/package.xdc
package ti.catalog.msp430.peripherals.special_function [1, 0, 0] {
    module IE1;
    // MSP430 Interrupt Enable Register 1
    module IE2;
    // MSP430 Interrupt Enable Register 2
    module SFRIE1;
    // MSP430 Interrupt Enable Register 1
    module SR;
    // MSP430 Status Register
}
generated on Thu, 08 Nov 2012 02:17:40 GMT


package ti.catalog.msp430.peripherals.special_function

     1    /*!
     2     *  ======== ti.catalog.msp430.peripherals.special_function ========
     3     *  MSP430 interrupt enable support
     4     */
     5    package ti.catalog.msp430.peripherals.special_function [1, 0, 0] {
     6        module IE1;
     7        module IE2;
     8        module SFRIE1;
     9        module SR;
    10    }


module ti.catalog.msp430.peripherals.special_function.IE1

metaonly module ti.catalog.msp430.peripherals.special_function.IE1
index URL

MSP430 Interrupt Enable Register 1

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/special_function/IE1.xdc
var IE1 = xdc.useModule('ti.catalog.msp430.peripherals.special_function.IE1');
module-wide constants & types
    values of type IE1.ACCVIE_t//
        const IE1.ACCVIE_OFF// Interrupt not enabled;
        const IE1.ACCVIE// Interrupt enabled;
    values of type IE1.ACCVIFG_t//
        const IE1.ACCVIFG_OFF// No interrupt pending;
        const IE1.ACCVIFG// Interrupt pending;
    values of type IE1.NMIIE_t//
        const IE1.NMIIE_OFF// Interrupt not enabled;
        const IE1.NMIIE// Interrupt enabled;
    values of type IE1.NMIIFG_t//
        const IE1.NMIIFG_OFF// No interrupt pending;
        const IE1.NMIIFG// Interrupt pending;
    values of type IE1.OFIE_t//
        const IE1.OFIE_OFF// Interrupt not enabled;
        const IE1.OFIE// Interrupt enabled;
    values of type IE1.OFIFG_t//
        const IE1.OFIFG_OFF// No interrupt pending;
        const IE1.OFIFG// Interrupt pending;
    values of type IE1.WDTIE_t//
        const IE1.WDTIE_OFF// Interrupt not enabled;
        const IE1.WDTIE// Interrupt enabled;
    values of type IE1.WDTIFG_t//
        const IE1.WDTIFG_OFF// No interrupt pending;
        const IE1.WDTIFG// Interrupt pending;
    var obj = new IE1.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new IE1.IE1_t// ;
        obj.ACCVIE// Flash memory access violation interrupt enable. This bit enables the ACCVIFG interrupt. 0 Interrupt disabled 1 Interrupt enabled = IE1.ACCVIE_t ...
        obj.NMIIE// NMI interrupt enable. This bit enables the NMI interrupt. 0 Interrupt disabled 1 Interrupt enabled = IE1.NMIIE_t ...
        obj.OFIE// Oscillator fault flag interrupt enable This bit enables the OFIFG interrupt. 0 Interrupt disabled 1 Interrupt enabled = IE1.OFIE_t ...
        obj.WDTIE// Watchdog timer+ interrupt enable. This bit enables the WDTIFG interrupt for interval timer mode. It is not necessary to set this bit for watchdog mode. 0 Interrupt disabled 1 Interrupt enabled = IE1.WDTIE_t ...
    var obj = new IE1.IFG1_t// ;
        obj.ACCVIFG// Flash memory access violation interrupt flag. 0 No interrupt pending 1 Interrupt pending = IE1.ACCVIFG_t ...
        obj.NMIIFG// NMI interrupt flag. 0 No interrupt pending 1 Interrupt pending = IE1.NMIIFG_t ...
        obj.OFIFG// Oscillator fault interrupt flag 0 No interrupt pending 1 Interrupt pending = IE1.OFIFG_t ...
        obj.WDTIFG// Watchdog timer+ interrupt flag. 0 No interrupt pending 1 Interrupt pending = IE1.WDTIFG_t ...
    var obj = new IE1.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     IE1.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     IE1.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new IE1.Params// Instance config-params object;
        params.IE1// IE1, Interrupt Enable Register 1 = IE1.IE1_t {
            ACCVIE: IE1.ACCVIE_OFF,
            NMIIE: IE1.NMIIE_OFF,
            OFIE: IE1.OFIE_OFF,
            WDTIE: IE1.WDTIE_OFF
        };
        params.IFG1// IFG1, Interrupt Flag Register 1 = IE1.IFG1_t {
            ACCVIFG: IE1.ACCVIFG_OFF,
            NMIIFG: IE1.NMIIFG_OFF,
            OFIFG: IE1.OFIFG_OFF,
            WDTIFG: IE1.WDTIFG_OFF
        };
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = IE1.ForceSetDefaultRegister_t[] [
            {
                register: "IE1",
                regForceSet: false
            },
            {
                register: "IFG1",
                regForceSet: false
            }
        ];
        params.interruptSource// IE1 interrupt enables = IE1.regIntVect_t[8] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance functions
     inst.getACCVIE// Gets ACCVIE bit() returns Bool
     inst.getACCVIFG// Gets ACCVIFG bit() returns Bool
     inst.getNMIIE// Gets NMIIE bit() returns Bool
     inst.getNMIIFG// Gets NMIIFG bit() returns Bool
     inst.getOFIE// Gets OFIE bit() returns Bool
     inst.getOFIFG// Gets OFIFG bit() returns Bool
     inst.getWDTIE// Gets WDTIE bit() returns Bool
     inst.getWDTIFG// Gets WDTIFG bit() returns Bool
     inst.setACCVIE// Sets ACCVIE bit(Bool set) returns Bool
     inst.setACCVIFG// Sets ACCVIFG bit(Bool set) returns Bool
     inst.setNMIIE// Sets NMIIE bit(Bool set) returns Bool
     inst.setNMIIFG// Sets NMIIFG bit(Bool set) returns Bool
     inst.setOFIE// Sets OFIE bit(Bool set) returns Bool
     inst.setOFIFG// Sets OFIFG bit(Bool set) returns Bool
     inst.setWDTIE// Sets WDTIE bit(Bool set) returns Bool
     inst.setWDTIFG// Sets WDTIFG bit(Bool set) returns Bool
enum IE1.ACCVIE_t
index URL
XDCscript usage meta-domain
values of type IE1.ACCVIE_t
    const IE1.ACCVIE_OFF;
    // Interrupt not enabled
    const IE1.ACCVIE;
    // Interrupt enabled
enum IE1.ACCVIFG_t
index URL
XDCscript usage meta-domain
values of type IE1.ACCVIFG_t
    const IE1.ACCVIFG_OFF;
    // No interrupt pending
    const IE1.ACCVIFG;
    // Interrupt pending
enum IE1.NMIIE_t
index URL
XDCscript usage meta-domain
values of type IE1.NMIIE_t
    const IE1.NMIIE_OFF;
    // Interrupt not enabled
    const IE1.NMIIE;
    // Interrupt enabled
enum IE1.NMIIFG_t
index URL
XDCscript usage meta-domain
values of type IE1.NMIIFG_t
    const IE1.NMIIFG_OFF;
    // No interrupt pending
    const IE1.NMIIFG;
    // Interrupt pending
enum IE1.OFIE_t
index URL
XDCscript usage meta-domain
values of type IE1.OFIE_t
    const IE1.OFIE_OFF;
    // Interrupt not enabled
    const IE1.OFIE;
    // Interrupt enabled
enum IE1.OFIFG_t
index URL
XDCscript usage meta-domain
values of type IE1.OFIFG_t
    const IE1.OFIFG_OFF;
    // No interrupt pending
    const IE1.OFIFG;
    // Interrupt pending
enum IE1.WDTIE_t
index URL
XDCscript usage meta-domain
values of type IE1.WDTIE_t
    const IE1.WDTIE_OFF;
    // Interrupt not enabled
    const IE1.WDTIE;
    // Interrupt enabled
enum IE1.WDTIFG_t
index URL
XDCscript usage meta-domain
values of type IE1.WDTIFG_t
    const IE1.WDTIFG_OFF;
    // No interrupt pending
    const IE1.WDTIFG;
    // Interrupt pending
struct IE1.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new IE1.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IE1.IE1_t
index URL
XDCscript usage meta-domain
var obj = new IE1.IE1_t;
    obj.ACCVIE = IE1.ACCVIE_t ...
    // Flash memory access violation interrupt enable. This bit enables the ACCVIFG interrupt. 0 Interrupt disabled 1 Interrupt enabled
    obj.NMIIE = IE1.NMIIE_t ...
    // NMI interrupt enable. This bit enables the NMI interrupt. 0 Interrupt disabled 1 Interrupt enabled
    obj.OFIE = IE1.OFIE_t ...
    // Oscillator fault flag interrupt enable This bit enables the OFIFG interrupt. 0 Interrupt disabled 1 Interrupt enabled
    obj.WDTIE = IE1.WDTIE_t ...
    // Watchdog timer+ interrupt enable. This bit enables the WDTIFG interrupt for interval timer mode. It is not necessary to set this bit for watchdog mode. 0 Interrupt disabled 1 Interrupt enabled
struct IE1.IFG1_t
index URL
XDCscript usage meta-domain
var obj = new IE1.IFG1_t;
    obj.ACCVIFG = IE1.ACCVIFG_t ...
    // Flash memory access violation interrupt flag. 0 No interrupt pending 1 Interrupt pending
    obj.NMIIFG = IE1.NMIIFG_t ...
    // NMI interrupt flag. 0 No interrupt pending 1 Interrupt pending
    obj.OFIFG = IE1.OFIFG_t ...
    // Oscillator fault interrupt flag 0 No interrupt pending 1 Interrupt pending
    obj.WDTIFG = IE1.WDTIFG_t ...
    // Watchdog timer+ interrupt flag. 0 No interrupt pending 1 Interrupt pending
struct IE1.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new IE1.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IE1.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
IE1.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IE1.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
IE1.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new IE1.Params;
// Instance config-params object
    params.IE1 = IE1.IE1_t {
    // IE1, Interrupt Enable Register 1
        ACCVIE: IE1.ACCVIE_OFF,
        NMIIE: IE1.NMIIE_OFF,
        OFIE: IE1.OFIE_OFF,
        WDTIE: IE1.WDTIE_OFF
    };
    params.IFG1 = IE1.IFG1_t {
    // IFG1, Interrupt Flag Register 1
        ACCVIFG: IE1.ACCVIFG_OFF,
        NMIIFG: IE1.NMIIFG_OFF,
        OFIFG: IE1.OFIFG_OFF,
        WDTIFG: IE1.WDTIFG_OFF
    };
    params.forceSetDefaultRegister = IE1.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "IE1",
            regForceSet: false
        },
        {
            register: "IFG1",
            regForceSet: false
        }
    ];
    params.interruptSource = IE1.regIntVect_t[8] undefined;
    // IE1 interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config IE1.IE1 // instance
index URL

IE1, Interrupt Enable Register 1

XDCscript usage meta-domain
var params = new IE1.Params;
...
params.IE1 = IE1.IE1_t {
    ACCVIE: IE1.ACCVIE_OFF,
    NMIIE: IE1.NMIIE_OFF,
    OFIE: IE1.OFIE_OFF,
    WDTIE: IE1.WDTIE_OFF
};
config IE1.IFG1 // instance
index URL

IFG1, Interrupt Flag Register 1

XDCscript usage meta-domain
var params = new IE1.Params;
...
params.IFG1 = IE1.IFG1_t {
    ACCVIFG: IE1.ACCVIFG_OFF,
    NMIIFG: IE1.NMIIFG_OFF,
    OFIFG: IE1.OFIFG_OFF,
    WDTIFG: IE1.WDTIFG_OFF
};
config IE1.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new IE1.Params;
...
const params.forceSetDefaultRegister = IE1.ForceSetDefaultRegister_t[] [
    {
        register: "IE1",
        regForceSet: false
    },
    {
        register: "IFG1",
        regForceSet: false
    }
];
config IE1.interruptSource // instance
index URL

IE1 interrupt enables

XDCscript usage meta-domain
var params = new IE1.Params;
...
params.interruptSource = IE1.regIntVect_t[8] undefined;
config IE1.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new IE1.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IE1.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new IE1.Params;
...
params.owner = String undefined;
IE1.getACCVIE() // instance
index URL

Gets ACCVIE bit

XDCscript usage meta-domain
inst.getACCVIE() returns Bool
SEE
getACCVIE
IE1.getACCVIFG() // instance
index URL

Gets ACCVIFG bit

XDCscript usage meta-domain
inst.getACCVIFG() returns Bool
SEE
getACCVIFG
IE1.getNMIIE() // instance
index URL

Gets NMIIE bit

XDCscript usage meta-domain
inst.getNMIIE() returns Bool
SEE
getNMIIE
IE1.getNMIIFG() // instance
index URL

Gets NMIIFG bit

XDCscript usage meta-domain
inst.getNMIIFG() returns Bool
SEE
getNMIIFG
IE1.getOFIE() // instance
index URL

Gets OFIE bit

XDCscript usage meta-domain
inst.getOFIE() returns Bool
SEE
getOFIE
IE1.getOFIFG() // instance
index URL

Gets OFIFG bit

XDCscript usage meta-domain
inst.getOFIFG() returns Bool
SEE
getOFIFG
IE1.getWDTIE() // instance
index URL

Gets WDTIE bit

XDCscript usage meta-domain
inst.getWDTIE() returns Bool
SEE
getWDTIE
IE1.getWDTIFG() // instance
index URL

Gets WDTIFG bit

XDCscript usage meta-domain
inst.getWDTIFG() returns Bool
SEE
getWDTIFG
IE1.setACCVIE() // instance
index URL

Sets ACCVIE bit

XDCscript usage meta-domain
inst.setACCVIE(Bool set) returns Bool
SEE
setACCVIE
IE1.setACCVIFG() // instance
index URL

Sets ACCVIFG bit

XDCscript usage meta-domain
inst.setACCVIFG(Bool set) returns Bool
SEE
setACCVIFG
IE1.setNMIIE() // instance
index URL

Sets NMIIE bit

XDCscript usage meta-domain
inst.setNMIIE(Bool set) returns Bool
SEE
setNMIIE
IE1.setNMIIFG() // instance
index URL

Sets NMIIFG bit

XDCscript usage meta-domain
inst.setNMIIFG(Bool set) returns Bool
SEE
setNMIIFG
IE1.setOFIE() // instance
index URL

Sets OFIE bit

XDCscript usage meta-domain
inst.setOFIE(Bool set) returns Bool
SEE
setOFIE
IE1.setOFIFG() // instance
index URL

Sets OFIFG bit

XDCscript usage meta-domain
inst.setOFIFG(Bool set) returns Bool
SEE
setOFIFG
IE1.setWDTIE() // instance
index URL

Sets WDTIE bit

XDCscript usage meta-domain
inst.setWDTIE(Bool set) returns Bool
SEE
setWDTIE
IE1.setWDTIFG() // instance
index URL

Sets WDTIFG bit

XDCscript usage meta-domain
inst.setWDTIFG(Bool set) returns Bool
SEE
setWDTIFG
generated on Thu, 08 Nov 2012 02:17:40 GMT


module ti.catalog.msp430.peripherals.special_function.IE1

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IE1 ========
    14     *  MSP430 Interrupt Enable Register 1
    15     */
    16    metaonly module IE1 inherits xdc.platform.IPeripheral {
    17
    18        enum NMIIE_t {
    19            NMIIE_OFF  = 0x00,           /*! Interrupt not enabled */
    20            NMIIE      = 0x10            /*! Interrupt enabled */
    21        };
    22
    23        enum WDTIE_t {
    24            WDTIE_OFF  = 0x00,           /*! Interrupt not enabled */
    25            WDTIE      = 0x01            /*! Interrupt enabled */
    26        };
    27
    28        enum OFIE_t {
    29            OFIE_OFF   = 0x00,           /*! Interrupt not enabled */
    30            OFIE       = 0x02            /*! Interrupt enabled */
    31        };
    32
    33        enum ACCVIE_t {
    34            ACCVIE_OFF = 0x00,           /*! Interrupt not enabled */
    35            ACCVIE     = 0x20            /*! Interrupt enabled */
    36        };
    37
    38        enum NMIIFG_t {
    39            NMIIFG_OFF = 0x00,           /*! No interrupt pending */
    40            NMIIFG     = 0x10            /*! Interrupt pending */
    41        };
    42
    43        enum WDTIFG_t {
    44            WDTIFG_OFF = 0x00,           /*! No interrupt pending */
    45            WDTIFG     = 0x01            /*! Interrupt pending */
    46        };
    47
    48        enum OFIFG_t {
    49            OFIFG_OFF  = 0x00,           /*! No interrupt pending */
    50            OFIFG      = 0x02            /*! Interrupt pending */
    51        };
    52
    53        enum ACCVIFG_t {
    54            ACCVIFG_OFF = 0x00,          /*! No interrupt pending */
    55            ACCVIFG     = 0x20           /*! Interrupt pending */
    56        };
    57
    58        /* IE1 */
    59        struct IE1_t {
    60            ACCVIE_t    ACCVIE;          /*! Flash memory access violation interrupt
    61                                          * enable. This bit enables the ACCVIFG interrupt.
    62                                          *  0  Interrupt disabled
    63                                          *  1  Interrupt enabled */
    64            NMIIE_t      NMIIE;          /*! NMI interrupt enable. This bit enables
    65                                          *the NMI interrupt.
    66                                          *  0  Interrupt disabled
    67                                          *  1  Interrupt enabled */
    68            OFIE_t      OFIE;            /*! Oscillator fault flag interrupt enable
    69                                          *This bit enables the OFIFG interrupt.
    70                                          *  0  Interrupt disabled
    71                                          *  1  Interrupt enabled */
    72            WDTIE_t     WDTIE;           /*! Watchdog timer+ interrupt enable. This
    73                                          *bit enables the WDTIFG interrupt for
    74                                          *interval timer mode. It is not necessary
    75                                          *to set this bit for watchdog mode.
    76                                          *  0  Interrupt disabled
    77                                          *  1  Interrupt enabled */
    78        }
    79
    80        /* IFG1 */
    81        struct IFG1_t {
    82            ACCVIFG_t    ACCVIFG;        /*! Flash memory access violation interrupt
    83                                          * flag.
    84                                          *  0  No interrupt pending
    85                                          *  1  Interrupt pending */
    86            NMIIFG_t     NMIIFG;         /*! NMI interrupt flag.
    87                                          *  0  No interrupt pending
    88                                          *  1  Interrupt pending */
    89            OFIFG_t      OFIFG;          /*! Oscillator fault interrupt flag
    90                                          *  0  No interrupt pending
    91                                          *  1  Interrupt pending */
    92            WDTIFG_t     WDTIFG;         /*! Watchdog timer+ interrupt flag.
    93                                          *  0  No interrupt pending
    94                                          *  1  Interrupt pending */
    95        }
    96
    97       /*!
    98        *  ======== regIntVect_t ========
    99        *  Interrupt vector description
   100        *
   101        *  Type to describe a single interrupt vector pin and all its possible
   102        *  configurations.
   103        *
   104        *  @see #regIntVect_t
   105        */
   106        struct regIntVect_t {
   107            String                    registerName;
   108            String                    registerDescription;
   109            String                    isrToggleString;
   110            String                    priorityName;
   111            Bool                      interruptEnable;
   112            Bool                      interruptHandler;
   113            Int                       priority;
   114        }
   115
   116        /*!
   117        *  ======== ForceSetDefaultRegister_t ========
   118        *  Force Set Default Register
   119        *
   120        *  Type to store if each register needs to be forced initialized
   121        *  even if the register is in default state.
   122        *
   123        *  @see #ForceSetDefaultRegister_t
   124        */
   125        struct ForceSetDefaultRegister_t {
   126            String     register;
   127            Bool       regForceSet;
   128        }
   129
   130    instance:
   131        /*! IE1 interrupt enables
   132         */
   133        config regIntVect_t interruptSource[8];
   134
   135        /*! IE1, Interrupt Enable Register 1 */
   136        config IE1_t IE1 = {
   137            ACCVIE      : ACCVIE_OFF,
   138            NMIIE       : NMIIE_OFF,
   139            OFIE        : OFIE_OFF,
   140            WDTIE       : WDTIE_OFF
   141        };
   142
   143        /*! IFG1, Interrupt Flag Register 1 */
   144        config IFG1_t IFG1 = {
   145            ACCVIFG     : ACCVIFG_OFF,
   146            NMIIFG      : NMIIFG_OFF,
   147            OFIFG       : OFIFG_OFF,
   148            WDTIFG      : WDTIFG_OFF
   149        };
   150
   151       /*!
   152        *  ======== getWDTIE ========
   153        *  Gets WDTIE bit
   154        *
   155        *  @see #getWDTIE
   156        */
   157        Bool    getWDTIE();
   158
   159       /*!
   160        *  ======== setWDTIE ========
   161        *  Sets WDTIE bit
   162        *
   163        *  @see #setWDTIE
   164        */
   165        Bool    setWDTIE(Bool set);
   166
   167       /*!
   168        *  ======== getWDTIFG ========
   169        *  Gets WDTIFG bit
   170        *
   171        *  @see #getWDTIFG
   172        */
   173        Bool    getWDTIFG();
   174
   175       /*!
   176        *  ======== setWDTIFG ========
   177        *  Sets WDTIFG bit
   178        *
   179        *  @see #setWDTIFG
   180        */
   181        Bool    setWDTIFG(Bool set);
   182
   183       /*!
   184        *  ======== getOFIE ========
   185        *  Gets OFIE bit
   186        *
   187        *  @see #getOFIE
   188        */
   189        Bool    getOFIE();
   190
   191       /*!
   192        *  ======== setOFIE ========
   193        *  Sets OFIE bit
   194        *
   195        *  @see #setOFIE
   196        */
   197        Bool    setOFIE(Bool set);
   198
   199       /*!
   200        *  ======== getOFIFG ========
   201        *  Gets OFIFG bit
   202        *
   203        *  @see #getOFIFG
   204        */
   205        Bool    getOFIFG();
   206
   207       /*!
   208        *  ======== setOFIFG ========
   209        *  Sets OFIFG bit
   210        *
   211        *  @see #setOFIFG
   212        */
   213        Bool    setOFIFG(Bool set);
   214
   215       /*!
   216        *  ======== getNMIIE ========
   217        *  Gets NMIIE bit
   218        *
   219        *  @see #getNMIIE
   220        */
   221        Bool    getNMIIE();
   222
   223       /*!
   224        *  ======== setNMIIE ========
   225        *  Sets NMIIE bit
   226        *
   227        *  @see #setNMIIE
   228        */
   229        Bool    setNMIIE(Bool set);
   230
   231       /*!
   232        *  ======== getNMIIFG ========
   233        *  Gets NMIIFG bit
   234        *
   235        *  @see #getNMIIFG
   236        */
   237        Bool    getNMIIFG();
   238
   239       /*!
   240        *  ======== setNMIIFG ========
   241        *  Sets NMIIFG bit
   242        *
   243        *  @see #setNMIIFG
   244        */
   245        Bool    setNMIIFG(Bool set);
   246
   247        /*!
   248        *  ======== getACCVIE ========
   249        *  Gets ACCVIE bit
   250        *
   251        *  @see #getACCVIE
   252        */
   253        Bool    getACCVIE();
   254
   255       /*!
   256        *  ======== setACCVIE ========
   257        *  Sets ACCVIE bit
   258        *
   259        *  @see #setACCVIE
   260        */
   261        Bool    setACCVIE(Bool set);
   262
   263        /*!
   264        *  ======== getACCVIFG ========
   265        *  Gets ACCVIFG bit
   266        *
   267        *  @see #getACCVIFG
   268        */
   269        Bool    getACCVIFG();
   270
   271       /*!
   272        *  ======== setACCVIFG ========
   273        *  Sets ACCVIFG bit
   274        *
   275        *  @see #setACCVIFG
   276        */
   277        Bool    setACCVIFG(Bool set);
   278
   279        /*! Determine if each Register needs to be forced set or not */
   280        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   281        [
   282            { register : "IE1" , regForceSet : false },
   283            { register : "IFG1" , regForceSet : false },
   284        ];
   285    }


module ti.catalog.msp430.peripherals.special_function.IE2

metaonly module ti.catalog.msp430.peripherals.special_function.IE2
index URL

MSP430 Interrupt Enable Register 2

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/special_function/IE2.xdc
var IE2 = xdc.useModule('ti.catalog.msp430.peripherals.special_function.IE2');
module-wide constants & types
    values of type IE2.UCA0RXIE_t//
        const IE2.UCA0RXIE_OFF// Interrupt disabled;
        const IE2.UCA0RXIE// Interrupt enabled;
    values of type IE2.UCA0RXIFG_t//
        const IE2.UCA0RXIFG_OFF// No interrupt pending;
        const IE2.UCA0RXIFG// Interrupt pending;
    values of type IE2.UCA0TXIE_t//
        const IE2.UCA0TXIE_OFF// Interrupt disabled;
        const IE2.UCA0TXIE// Interrupt enabled;
    values of type IE2.UCA0TXIFG_t//
        const IE2.UCA0TXIFG_OFF// No interrupt pending;
        const IE2.UCA0TXIFG// Interrupt pending;
    values of type IE2.UCB0RXIE_t//
        const IE2.UCB0RXIE_OFF// Interrupt disabled;
        const IE2.UCB0RXIE// Interrupt enabled;
    values of type IE2.UCB0RXIFG_t//
        const IE2.UCB0RXIFG_OFF// No interrupt pending;
        const IE2.UCB0RXIFG// Interrupt pending;
    values of type IE2.UCB0TXIE_t//
        const IE2.UCB0TXIE_OFF// Interrupt disabled;
        const IE2.UCB0TXIE// Interrupt enabled;
    values of type IE2.UCB0TXIFG_t//
        const IE2.UCB0TXIFG_OFF// No interrupt pending;
        const IE2.UCB0TXIFG// Interrupt pending;
    var obj = new IE2.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new IE2.IE2_t// IE2, Interrupt Enable Register 2;
        obj.UCB0TXIE// USCI_B0 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled = IE2.UCB0TXIE_t ...
        obj.UCB0RXIE// USCI_B0 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled = IE2.UCB0RXIE_t ...
        obj.UCA0TXIE// USCI_A0 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled = IE2.UCA0TXIE_t ...
        obj.UCA0RXIE// USCI_A0 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled = IE2.UCA0RXIE_t ...
    var obj = new IE2.IFG2_t// IFG2, Interrupt Flag Register 2;
        obj.UCB0TXIFG// USCI_B0 transmit interrupt flag 0 No interrupt pending 1 Interrupt pending = IE2.UCB0TXIFG_t ...
        obj.UCB0RXIFG// USCI_B0 receive interrupt flag 0 No interrupt pending 1 Interrupt pending = IE2.UCB0RXIFG_t ...
        obj.UCA0TXIFG// USCI_A0 transmit interrupt flag 0 No interrupt pending 1 Interrupt pending = IE2.UCA0TXIFG_t ...
        obj.UCA0RXIFG// USCI_A0 receive interrupt flag 0 No interrupt pending 1 Interrupt pending = IE2.UCA0RXIFG_t ...
    var obj = new IE2.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     IE2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     IE2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new IE2.Params// Instance config-params object;
        params.IE2// IE2, Interrupt Enable Register 2 = IE2.IE2_t {
            UCB0TXIE: IE2.UCB0TXIE_OFF,
            UCB0RXIE: IE2.UCB0RXIE_OFF,
            UCA0TXIE: IE2.UCA0TXIE_OFF,
            UCA0RXIE: IE2.UCA0RXIE_OFF
        };
        params.IFG2// IFG2, Interrupt Flag Register 2 = IE2.IFG2_t {
            UCB0TXIFG: IE2.UCB0TXIFG_OFF,
            UCB0RXIFG: IE2.UCB0RXIFG_OFF,
            UCA0TXIFG: IE2.UCA0TXIFG_OFF,
            UCA0RXIFG: IE2.UCA0RXIFG_OFF
        };
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = IE2.ForceSetDefaultRegister_t[] [
            {
                register: "IE2",
                regForceSet: false
            },
            {
                register: "IFG2",
                regForceSet: false
            }
        ];
        params.interruptSource// IE2 interrupt enables = IE2.regIntVect_t[8] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance functions
     inst.getUCA0RXIE// Gets UCA0RXIE bit() returns Bool
     inst.getUCA0TXIE// Gets UCA0TXIE bit() returns Bool
     inst.getUCB0RXIE// Gets UCB0RXIE bit() returns Bool
     inst.getUCB0TXIE// Gets UCB0TXIE bit() returns Bool
     inst.setUCA0RXIE// Sets UCA0RXIE bit(Bool set) returns Bool
     inst.setUCA0TXIE// Sets UCA0TXIE bit(Bool set) returns Bool
     inst.setUCB0RXIE// Sets UCB0RXIE bit(Bool set) returns Bool
     inst.setUCB0TXIE// Sets UCB0TXIE bit(Bool set) returns Bool
enum IE2.UCA0RXIE_t
index URL
XDCscript usage meta-domain
values of type IE2.UCA0RXIE_t
    const IE2.UCA0RXIE_OFF;
    // Interrupt disabled
    const IE2.UCA0RXIE;
    // Interrupt enabled
enum IE2.UCA0RXIFG_t
index URL
XDCscript usage meta-domain
values of type IE2.UCA0RXIFG_t
    const IE2.UCA0RXIFG_OFF;
    // No interrupt pending
    const IE2.UCA0RXIFG;
    // Interrupt pending
enum IE2.UCA0TXIE_t
index URL
XDCscript usage meta-domain
values of type IE2.UCA0TXIE_t
    const IE2.UCA0TXIE_OFF;
    // Interrupt disabled
    const IE2.UCA0TXIE;
    // Interrupt enabled
enum IE2.UCA0TXIFG_t
index URL
XDCscript usage meta-domain
values of type IE2.UCA0TXIFG_t
    const IE2.UCA0TXIFG_OFF;
    // No interrupt pending
    const IE2.UCA0TXIFG;
    // Interrupt pending
enum IE2.UCB0RXIE_t
index URL
XDCscript usage meta-domain
values of type IE2.UCB0RXIE_t
    const IE2.UCB0RXIE_OFF;
    // Interrupt disabled
    const IE2.UCB0RXIE;
    // Interrupt enabled
enum IE2.UCB0RXIFG_t
index URL
XDCscript usage meta-domain
values of type IE2.UCB0RXIFG_t
    const IE2.UCB0RXIFG_OFF;
    // No interrupt pending
    const IE2.UCB0RXIFG;
    // Interrupt pending
enum IE2.UCB0TXIE_t
index URL
XDCscript usage meta-domain
values of type IE2.UCB0TXIE_t
    const IE2.UCB0TXIE_OFF;
    // Interrupt disabled
    const IE2.UCB0TXIE;
    // Interrupt enabled
enum IE2.UCB0TXIFG_t
index URL
XDCscript usage meta-domain
values of type IE2.UCB0TXIFG_t
    const IE2.UCB0TXIFG_OFF;
    // No interrupt pending
    const IE2.UCB0TXIFG;
    // Interrupt pending
struct IE2.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new IE2.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct IE2.IE2_t
index URL

IE2, Interrupt Enable Register 2

XDCscript usage meta-domain
var obj = new IE2.IE2_t;
    obj.UCB0TXIE = IE2.UCB0TXIE_t ...
    // USCI_B0 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCB0RXIE = IE2.UCB0RXIE_t ...
    // USCI_B0 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCA0TXIE = IE2.UCA0TXIE_t ...
    // USCI_A0 transmit interrupt enable 0 Interrupt disabled 1 Interrupt enabled
    obj.UCA0RXIE = IE2.UCA0RXIE_t ...
    // USCI_A0 receive interrupt enable 0 Interrupt disabled 1 Interrupt enabled
struct IE2.IFG2_t
index URL

IFG2, Interrupt Flag Register 2

XDCscript usage meta-domain
var obj = new IE2.IFG2_t;
    obj.UCB0TXIFG = IE2.UCB0TXIFG_t ...
    // USCI_B0 transmit interrupt flag 0 No interrupt pending 1 Interrupt pending
    obj.UCB0RXIFG = IE2.UCB0RXIFG_t ...
    // USCI_B0 receive interrupt flag 0 No interrupt pending 1 Interrupt pending
    obj.UCA0TXIFG = IE2.UCA0TXIFG_t ...
    // USCI_A0 transmit interrupt flag 0 No interrupt pending 1 Interrupt pending
    obj.UCA0RXIFG = IE2.UCA0RXIFG_t ...
    // USCI_A0 receive interrupt flag 0 No interrupt pending 1 Interrupt pending
struct IE2.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new IE2.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
IE2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
IE2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IE2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
IE2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new IE2.Params;
// Instance config-params object
    params.IE2 = IE2.IE2_t {
    // IE2, Interrupt Enable Register 2
        UCB0TXIE: IE2.UCB0TXIE_OFF,
        UCB0RXIE: IE2.UCB0RXIE_OFF,
        UCA0TXIE: IE2.UCA0TXIE_OFF,
        UCA0RXIE: IE2.UCA0RXIE_OFF
    };
    params.IFG2 = IE2.IFG2_t {
    // IFG2, Interrupt Flag Register 2
        UCB0TXIFG: IE2.UCB0TXIFG_OFF,
        UCB0RXIFG: IE2.UCB0RXIFG_OFF,
        UCA0TXIFG: IE2.UCA0TXIFG_OFF,
        UCA0RXIFG: IE2.UCA0RXIFG_OFF
    };
    params.forceSetDefaultRegister = IE2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "IE2",
            regForceSet: false
        },
        {
            register: "IFG2",
            regForceSet: false
        }
    ];
    params.interruptSource = IE2.regIntVect_t[8] undefined;
    // IE2 interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config IE2.IE2 // instance
index URL

IE2, Interrupt Enable Register 2

XDCscript usage meta-domain
var params = new IE2.Params;
...
params.IE2 = IE2.IE2_t {
    UCB0TXIE: IE2.UCB0TXIE_OFF,
    UCB0RXIE: IE2.UCB0RXIE_OFF,
    UCA0TXIE: IE2.UCA0TXIE_OFF,
    UCA0RXIE: IE2.UCA0RXIE_OFF
};
config IE2.IFG2 // instance
index URL

IFG2, Interrupt Flag Register 2

XDCscript usage meta-domain
var params = new IE2.Params;
...
params.IFG2 = IE2.IFG2_t {
    UCB0TXIFG: IE2.UCB0TXIFG_OFF,
    UCB0RXIFG: IE2.UCB0RXIFG_OFF,
    UCA0TXIFG: IE2.UCA0TXIFG_OFF,
    UCA0RXIFG: IE2.UCA0RXIFG_OFF
};
config IE2.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new IE2.Params;
...
const params.forceSetDefaultRegister = IE2.ForceSetDefaultRegister_t[] [
    {
        register: "IE2",
        regForceSet: false
    },
    {
        register: "IFG2",
        regForceSet: false
    }
];
config IE2.interruptSource // instance
index URL

IE2 interrupt enables

XDCscript usage meta-domain
var params = new IE2.Params;
...
params.interruptSource = IE2.regIntVect_t[8] undefined;
config IE2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new IE2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IE2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new IE2.Params;
...
params.owner = String undefined;
IE2.getUCA0RXIE() // instance
index URL

Gets UCA0RXIE bit

XDCscript usage meta-domain
inst.getUCA0RXIE() returns Bool
SEE
getUCA0RXIE
IE2.getUCA0TXIE() // instance
index URL

Gets UCA0TXIE bit

XDCscript usage meta-domain
inst.getUCA0TXIE() returns Bool
SEE
getUCA0TXIE
IE2.getUCB0RXIE() // instance
index URL

Gets UCB0RXIE bit

XDCscript usage meta-domain
inst.getUCB0RXIE() returns Bool
SEE
getUCB0RXIE
IE2.getUCB0TXIE() // instance
index URL

Gets UCB0TXIE bit

XDCscript usage meta-domain
inst.getUCB0TXIE() returns Bool
SEE
getUCB0TXIE
IE2.setUCA0RXIE() // instance
index URL

Sets UCA0RXIE bit

XDCscript usage meta-domain
inst.setUCA0RXIE(Bool set) returns Bool
SEE
setUCA0RXIE
IE2.setUCA0TXIE() // instance
index URL

Sets UCA0TXIE bit

XDCscript usage meta-domain
inst.setUCA0TXIE(Bool set) returns Bool
SEE
setUCA0TXIE
IE2.setUCB0RXIE() // instance
index URL

Sets UCB0RXIE bit

XDCscript usage meta-domain
inst.setUCB0RXIE(Bool set) returns Bool
SEE
setUCB0RXIE
IE2.setUCB0TXIE() // instance
index URL

Sets UCB0TXIE bit

XDCscript usage meta-domain
inst.setUCB0TXIE(Bool set) returns Bool
SEE
setUCB0TXIE
generated on Thu, 08 Nov 2012 02:17:40 GMT


module ti.catalog.msp430.peripherals.special_function.IE2

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IE2 ========
    14     *  MSP430 Interrupt Enable Register 2
    15     */
    16    metaonly module IE2 inherits xdc.platform.IPeripheral {
    17
    18        /* USCI_B0 transmit interrupt enable */
    19        enum UCB0TXIE_t {
    20            UCB0TXIE_OFF = 0x00,            /*! Interrupt disabled */
    21            UCB0TXIE     = 0x08             /*! Interrupt enabled */
    22        };
    23
    24        /* USCI_B0 receive interrupt enable */
    25        enum UCB0RXIE_t {
    26            UCB0RXIE_OFF = 0x00,            /*! Interrupt disabled */
    27            UCB0RXIE     = 0x04             /*! Interrupt enabled */
    28        };
    29
    30        /* USCI_A0 transmit interrupt enable */
    31        enum UCA0TXIE_t {
    32            UCA0TXIE_OFF = 0x00,            /*! Interrupt disabled */
    33            UCA0TXIE     = 0x02             /*! Interrupt enabled */
    34        };
    35
    36        /* USCI_A0 receive interrupt enable */
    37        enum UCA0RXIE_t {
    38            UCA0RXIE_OFF = 0x00,            /*! Interrupt disabled */
    39            UCA0RXIE     = 0x01             /*! Interrupt enabled */
    40        };
    41
    42        /* USCI_B0 transmit interrupt flag */
    43        enum UCB0TXIFG_t {
    44            UCB0TXIFG_OFF = 0x00,           /*! No interrupt pending */
    45            UCB0TXIFG     = 0x08            /*! Interrupt pending */
    46        };
    47
    48        /* USCI_B0 receive interrupt flag */
    49        enum UCB0RXIFG_t {
    50            UCB0RXIFG_OFF = 0x00,           /*! No interrupt pending */
    51            UCB0RXIFG     = 0x04            /*! Interrupt pending */
    52        };
    53
    54        /* USCI_A0 transmit interrupt flag */
    55        enum UCA0TXIFG_t {
    56            UCA0TXIFG_OFF = 0x00,           /*! No interrupt pending */
    57            UCA0TXIFG     = 0x02            /*! Interrupt pending */
    58        };
    59
    60        /* USCI_A0 receive interrupt flag */
    61        enum UCA0RXIFG_t {
    62            UCA0RXIFG_OFF = 0x00,           /*! No interrupt pending */
    63            UCA0RXIFG     = 0x01            /*! Interrupt pending */
    64        };
    65
    66        /*! IE2, Interrupt Enable Register 2 */
    67        struct IE2_t {
    68            UCB0TXIE_t  UCB0TXIE;           /*! USCI_B0 transmit interrupt enable
    69                                             *  0 Interrupt disabled
    70                                             *  1 Interrupt enabled */
    71            UCB0RXIE_t  UCB0RXIE;           /*! USCI_B0 receive interrupt enable
    72                                             *  0 Interrupt disabled
    73                                             *  1 Interrupt enabled */
    74            UCA0TXIE_t  UCA0TXIE;           /*! USCI_A0 transmit interrupt enable
    75                                             *  0 Interrupt disabled
    76                                             *  1 Interrupt enabled */
    77            UCA0RXIE_t  UCA0RXIE;           /*! USCI_A0 receive interrupt enable
    78                                             *  0 Interrupt disabled
    79                                             *  1 Interrupt enabled */
    80        }
    81
    82        /*! IFG2, Interrupt Flag Register 2 */
    83        struct IFG2_t {
    84            UCB0TXIFG_t  UCB0TXIFG;         /*! USCI_B0 transmit interrupt flag
    85                                             *  0 No interrupt pending
    86                                             *  1 Interrupt pending */
    87            UCB0RXIFG_t  UCB0RXIFG;         /*! USCI_B0 receive interrupt flag
    88                                             *  0 No interrupt pending
    89                                             *  1 Interrupt pending */
    90            UCA0TXIFG_t  UCA0TXIFG;         /*! USCI_A0 transmit interrupt flag
    91                                             *  0 No interrupt pending
    92                                             *  1 Interrupt pending */
    93            UCA0RXIFG_t  UCA0RXIFG;         /*! USCI_A0 receive interrupt flag
    94                                             *  0 No interrupt pending
    95                                             *  1 Interrupt pending */
    96        }
    97
    98       /*!
    99        *  ======== regIntVect_t ========
   100        *  Interrupt vector description
   101        *
   102        *  Type to describe a single interrupt vector pin and all its possible
   103        *  configurations.
   104        *
   105        *  @see #regIntVect_t
   106        */
   107        struct regIntVect_t {
   108            String                    registerName;
   109            String                    registerDescription;
   110            String                    isrToggleString;
   111            String                    priorityName;
   112            Bool                      interruptEnable;
   113            Bool                      interruptHandler;
   114            Int                       priority;
   115        }
   116
   117        /*!
   118        *  ======== ForceSetDefaultRegister_t ========
   119        *  Force Set Default Register
   120        *
   121        *  Type to store if each register needs to be forced initialized
   122        *  even if the register is in default state.
   123        *
   124        *  @see #ForceSetDefaultRegister_t
   125        */
   126        struct ForceSetDefaultRegister_t {
   127            String     register;
   128            Bool       regForceSet;
   129        }
   130
   131    instance:
   132        /*! IE2, Interrupt Enable Register 2 */
   133        config IE2_t IE2 = {
   134            UCB0TXIE    : UCB0TXIE_OFF,
   135            UCB0RXIE    : UCB0RXIE_OFF,
   136            UCA0TXIE    : UCA0TXIE_OFF,
   137            UCA0RXIE    : UCA0RXIE_OFF,
   138        };
   139
   140        /*! IFG2, Interrupt Flag Register 2 */
   141        config IFG2_t IFG2 = {
   142            UCB0TXIFG   : UCB0TXIFG_OFF,
   143            UCB0RXIFG   : UCB0RXIFG_OFF,
   144            UCA0TXIFG   : UCA0TXIFG_OFF,
   145            UCA0RXIFG   : UCA0RXIFG_OFF,
   146        };
   147
   148       /*!
   149        *  ======== getUCB0TXIE ========
   150        *  Gets UCB0TXIE bit
   151        *
   152        *  @see #getUCB0TXIE
   153        */
   154        Bool    getUCB0TXIE();
   155
   156       /*!
   157        *  ======== setUCB0TXIE ========
   158        *  Sets UCB0TXIE bit
   159        *
   160        *  @see #setUCB0TXIE
   161        */
   162        Bool    setUCB0TXIE(Bool set);
   163
   164       /*!
   165        *  ======== getUCB0RXIE ========
   166        *  Gets UCB0RXIE bit
   167        *
   168        *  @see #getUCB0RXIE
   169        */
   170        Bool    getUCB0RXIE();
   171
   172       /*!
   173        *  ======== setUCB0RXIE ========
   174        *  Sets UCB0RXIE bit
   175        *
   176        *  @see #setUCB0RXIE
   177        */
   178        Bool    setUCB0RXIE(Bool set);
   179
   180       /*!
   181        *  ======== getUCA0TXIE ========
   182        *  Gets UCA0TXIE bit
   183        *
   184        *  @see #getUCA0TXIE
   185        */
   186        Bool    getUCA0TXIE();
   187
   188       /*!
   189        *  ======== setUCA0TXIE ========
   190        *  Sets UCA0TXIE bit
   191        *
   192        *  @see #setUCA0TXIE
   193        */
   194        Bool    setUCA0TXIE(Bool set);
   195
   196       /*!
   197        *  ======== getUCA0RXIE ========
   198        *  Gets UCA0RXIE bit
   199        *
   200        *  @see #getUCA0RXIE
   201        */
   202        Bool    getUCA0RXIE();
   203
   204       /*!
   205        *  ======== setUCA0RXIE ========
   206        *  Sets UCA0RXIE bit
   207        *
   208        *  @see #setUCA0RXIE
   209        */
   210        Bool    setUCA0RXIE(Bool set);
   211
   212        /*! IE2 interrupt enables
   213         */
   214        config regIntVect_t interruptSource[8];
   215
   216        /*!
   217         *  ======== forceSetDefaultRegister ========
   218         *  Determine if each Register needs to be forced set or not
   219         */
   220        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   221        [
   222            { register : "IE2" , regForceSet : false },
   223            { register : "IFG2" , regForceSet : false },
   224        ];
   225    }


module ti.catalog.msp430.peripherals.special_function.SFRIE1

metaonly module ti.catalog.msp430.peripherals.special_function.SFRIE1
index URL

MSP430 Interrupt Enable Register 1

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/special_function/SFRIE1.xdc
var SFRIE1 = xdc.useModule('ti.catalog.msp430.peripherals.special_function.SFRIE1');
module-wide constants & types
    values of type SFRIE1.ACCVIE_t//
        const SFRIE1.ACCVIE_OFF// Interrupt not enabled;
        const SFRIE1.ACCVIE// Interrupt enabled;
    values of type SFRIE1.ACCVIFG_t//
        const SFRIE1.ACCVIFG_OFF// No interrupt pending;
        const SFRIE1.ACCVIFG// Interrupt pending;
    values of type SFRIE1.JMBINIE_t//
        const SFRIE1.JMBINIE_OFF// Interrupt not enabled;
        const SFRIE1.JMBINIE// Interrupt enabled;
    values of type SFRIE1.JMBOUTIE_t//
        const SFRIE1.JMBOUTIE_OFF// Interrupt not enabled;
        const SFRIE1.JMBOUTIE// Interrupt enabled;
    values of type SFRIE1.NMIIE_t//
        const SFRIE1.NMIIE_OFF// Interrupt not enabled;
        const SFRIE1.NMIIE// Interrupt enabled;
    values of type SFRIE1.NMIIFG_t//
        const SFRIE1.NMIIFG_OFF// No interrupt pending;
        const SFRIE1.NMIIFG// Interrupt pending;
    values of type SFRIE1.OFIE_t//
        const SFRIE1.OFIE_OFF// Interrupt not enabled;
        const SFRIE1.OFIE// Interrupt enabled;
    values of type SFRIE1.OFIFG_t//
        const SFRIE1.OFIFG_OFF// No interrupt pending;
        const SFRIE1.OFIFG// Interrupt pending;
    values of type SFRIE1.WDTIE_t//
        const SFRIE1.WDTIE_OFF// Interrupt not enabled;
        const SFRIE1.WDTIE// Interrupt enabled;
    values of type SFRIE1.WDTIFG_t//
        const SFRIE1.WDTIFG_OFF// No interrupt pending;
        const SFRIE1.WDTIFG// Interrupt pending;
    var obj = new SFRIE1.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new SFRIE1.IE1_t// ;
        obj.ACCVIE// Flash memory access violation interrupt enable. This bit enables the ACCVIFG interrupt. 0 Interrupt disabled 1 Interrupt enabled = SFRIE1.ACCVIE_t ...
        obj.NMIIE// NMI interrupt enable. This bit enables the NMI interrupt. 0 Interrupt disabled 1 Interrupt enabled = SFRIE1.NMIIE_t ...
        obj.OFIE// Oscillator fault flag interrupt enable This bit enables the OFIFG interrupt. 0 Interrupt disabled 1 Interrupt enabled = SFRIE1.OFIE_t ...
        obj.WDTIE// Watchdog timer+ interrupt enable. This bit enables the WDTIFG interrupt for interval timer mode. It is not necessary to set this bit for watchdog mode. 0 Interrupt disabled 1 Interrupt enabled = SFRIE1.WDTIE_t ...
    var obj = new SFRIE1.IFG1_t// ;
        obj.ACCVIFG// Flash memory access violation interrupt flag. 0 No interrupt pending 1 Interrupt pending = SFRIE1.ACCVIFG_t ...
        obj.NMIIFG// NMI interrupt flag. 0 No interrupt pending 1 Interrupt pending = SFRIE1.NMIIFG_t ...
        obj.OFIFG// Oscillator fault interrupt flag 0 No interrupt pending 1 Interrupt pending = SFRIE1.OFIFG_t ...
        obj.WDTIFG// Watchdog timer+ interrupt flag. 0 No interrupt pending 1 Interrupt pending = SFRIE1.WDTIFG_t ...
    var obj = new SFRIE1.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     SFRIE1.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     SFRIE1.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new SFRIE1.Params// Instance config-params object;
        params.SFRIE1// IE1, Interrupt Enable Register 1 = SFRIE1.IE1_t {
            ACCVIE: SFRIE1.ACCVIE_OFF,
            NMIIE: SFRIE1.NMIIE_OFF,
            OFIE: SFRIE1.OFIE_OFF,
            WDTIE: SFRIE1.WDTIE_OFF
        };
        params.SFRIFG1// IFG1, Interrupt Flag Register 1 = SFRIE1.IFG1_t {
            ACCVIFG: SFRIE1.ACCVIFG_OFF,
            NMIIFG: SFRIE1.NMIIFG_OFF,
            OFIFG: SFRIE1.OFIFG_OFF,
            WDTIFG: SFRIE1.WDTIFG_OFF
        };
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = SFRIE1.ForceSetDefaultRegister_t[] [
            {
                register: "SFRIE1",
                regForceSet: false
            },
            {
                register: "SFRIFG1",
                regForceSet: false
            }
        ];
        params.interruptSource// SFRIE1 interrupt enables = SFRIE1.regIntVect_t[16] undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance functions
     inst.getSFRIE1// Gets a bit from the register in SFRIE1(String register) returns Bool
     inst.setSFRIE1// Sets a bit in the register SFRIE1(String register, Bool set) returns Bool
enum SFRIE1.ACCVIE_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.ACCVIE_t
    const SFRIE1.ACCVIE_OFF;
    // Interrupt not enabled
    const SFRIE1.ACCVIE;
    // Interrupt enabled
enum SFRIE1.ACCVIFG_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.ACCVIFG_t
    const SFRIE1.ACCVIFG_OFF;
    // No interrupt pending
    const SFRIE1.ACCVIFG;
    // Interrupt pending
enum SFRIE1.JMBINIE_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.JMBINIE_t
    const SFRIE1.JMBINIE_OFF;
    // Interrupt not enabled
    const SFRIE1.JMBINIE;
    // Interrupt enabled
enum SFRIE1.JMBOUTIE_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.JMBOUTIE_t
    const SFRIE1.JMBOUTIE_OFF;
    // Interrupt not enabled
    const SFRIE1.JMBOUTIE;
    // Interrupt enabled
enum SFRIE1.NMIIE_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.NMIIE_t
    const SFRIE1.NMIIE_OFF;
    // Interrupt not enabled
    const SFRIE1.NMIIE;
    // Interrupt enabled
enum SFRIE1.NMIIFG_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.NMIIFG_t
    const SFRIE1.NMIIFG_OFF;
    // No interrupt pending
    const SFRIE1.NMIIFG;
    // Interrupt pending
enum SFRIE1.OFIE_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.OFIE_t
    const SFRIE1.OFIE_OFF;
    // Interrupt not enabled
    const SFRIE1.OFIE;
    // Interrupt enabled
enum SFRIE1.OFIFG_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.OFIFG_t
    const SFRIE1.OFIFG_OFF;
    // No interrupt pending
    const SFRIE1.OFIFG;
    // Interrupt pending
enum SFRIE1.WDTIE_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.WDTIE_t
    const SFRIE1.WDTIE_OFF;
    // Interrupt not enabled
    const SFRIE1.WDTIE;
    // Interrupt enabled
enum SFRIE1.WDTIFG_t
index URL
XDCscript usage meta-domain
values of type SFRIE1.WDTIFG_t
    const SFRIE1.WDTIFG_OFF;
    // No interrupt pending
    const SFRIE1.WDTIFG;
    // Interrupt pending
struct SFRIE1.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new SFRIE1.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct SFRIE1.IE1_t
index URL
XDCscript usage meta-domain
var obj = new SFRIE1.IE1_t;
    obj.ACCVIE = SFRIE1.ACCVIE_t ...
    // Flash memory access violation interrupt enable. This bit enables the ACCVIFG interrupt. 0 Interrupt disabled 1 Interrupt enabled
    obj.NMIIE = SFRIE1.NMIIE_t ...
    // NMI interrupt enable. This bit enables the NMI interrupt. 0 Interrupt disabled 1 Interrupt enabled
    obj.OFIE = SFRIE1.OFIE_t ...
    // Oscillator fault flag interrupt enable This bit enables the OFIFG interrupt. 0 Interrupt disabled 1 Interrupt enabled
    obj.WDTIE = SFRIE1.WDTIE_t ...
    // Watchdog timer+ interrupt enable. This bit enables the WDTIFG interrupt for interval timer mode. It is not necessary to set this bit for watchdog mode. 0 Interrupt disabled 1 Interrupt enabled
struct SFRIE1.IFG1_t
index URL
XDCscript usage meta-domain
var obj = new SFRIE1.IFG1_t;
    obj.ACCVIFG = SFRIE1.ACCVIFG_t ...
    // Flash memory access violation interrupt flag. 0 No interrupt pending 1 Interrupt pending
    obj.NMIIFG = SFRIE1.NMIIFG_t ...
    // NMI interrupt flag. 0 No interrupt pending 1 Interrupt pending
    obj.OFIFG = SFRIE1.OFIFG_t ...
    // Oscillator fault interrupt flag 0 No interrupt pending 1 Interrupt pending
    obj.WDTIFG = SFRIE1.WDTIFG_t ...
    // Watchdog timer+ interrupt flag. 0 No interrupt pending 1 Interrupt pending
struct SFRIE1.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new SFRIE1.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
SFRIE1.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
SFRIE1.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
SFRIE1.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
SFRIE1.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SFRIE1.Params;
// Instance config-params object
    params.SFRIE1 = SFRIE1.IE1_t {
    // IE1, Interrupt Enable Register 1
        ACCVIE: SFRIE1.ACCVIE_OFF,
        NMIIE: SFRIE1.NMIIE_OFF,
        OFIE: SFRIE1.OFIE_OFF,
        WDTIE: SFRIE1.WDTIE_OFF
    };
    params.SFRIFG1 = SFRIE1.IFG1_t {
    // IFG1, Interrupt Flag Register 1
        ACCVIFG: SFRIE1.ACCVIFG_OFF,
        NMIIFG: SFRIE1.NMIIFG_OFF,
        OFIFG: SFRIE1.OFIFG_OFF,
        WDTIFG: SFRIE1.WDTIFG_OFF
    };
    params.forceSetDefaultRegister = SFRIE1.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "SFRIE1",
            regForceSet: false
        },
        {
            register: "SFRIFG1",
            regForceSet: false
        }
    ];
    params.interruptSource = SFRIE1.regIntVect_t[16] undefined;
    // SFRIE1 interrupt enables
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config SFRIE1.SFRIE1 // instance
index URL

IE1, Interrupt Enable Register 1

XDCscript usage meta-domain
var params = new SFRIE1.Params;
...
params.SFRIE1 = SFRIE1.IE1_t {
    ACCVIE: SFRIE1.ACCVIE_OFF,
    NMIIE: SFRIE1.NMIIE_OFF,
    OFIE: SFRIE1.OFIE_OFF,
    WDTIE: SFRIE1.WDTIE_OFF
};
config SFRIE1.SFRIFG1 // instance
index URL

IFG1, Interrupt Flag Register 1

XDCscript usage meta-domain
var params = new SFRIE1.Params;
...
params.SFRIFG1 = SFRIE1.IFG1_t {
    ACCVIFG: SFRIE1.ACCVIFG_OFF,
    NMIIFG: SFRIE1.NMIIFG_OFF,
    OFIFG: SFRIE1.OFIFG_OFF,
    WDTIFG: SFRIE1.WDTIFG_OFF
};
config SFRIE1.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new SFRIE1.Params;
...
const params.forceSetDefaultRegister = SFRIE1.ForceSetDefaultRegister_t[] [
    {
        register: "SFRIE1",
        regForceSet: false
    },
    {
        register: "SFRIFG1",
        regForceSet: false
    }
];
config SFRIE1.interruptSource // instance
index URL

SFRIE1 interrupt enables

XDCscript usage meta-domain
var params = new SFRIE1.Params;
...
params.interruptSource = SFRIE1.regIntVect_t[16] undefined;
config SFRIE1.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new SFRIE1.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config SFRIE1.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new SFRIE1.Params;
...
params.owner = String undefined;
SFRIE1.getSFRIE1() // instance
index URL

Gets a bit from the register in SFRIE1

XDCscript usage meta-domain
inst.getSFRIE1(String register) returns Bool
SEE
getSFRIE1
SFRIE1.setSFRIE1() // instance
index URL

Sets a bit in the register SFRIE1

XDCscript usage meta-domain
inst.setSFRIE1(String register, Bool set) returns Bool
SEE
setSFRIE1
generated on Thu, 08 Nov 2012 02:17:40 GMT


module ti.catalog.msp430.peripherals.special_function.SFRIE1

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== SFRIE1 ========
    14     *  MSP430 Interrupt Enable Register 1
    15     */
    16    metaonly module SFRIE1 inherits xdc.platform.IPeripheral {
    17
    18        enum JMBOUTIE_t {
    19            JMBOUTIE_OFF  = 0x00,        /*! Interrupt not enabled */
    20            JMBOUTIE      = 0x80         /*! Interrupt enabled */
    21        };
    22
    23        enum JMBINIE_t {
    24            JMBINIE_OFF = 0x00,          /*! Interrupt not enabled */
    25            JMBINIE     = 0x40           /*! Interrupt enabled */
    26        };
    27
    28        enum ACCVIE_t {
    29            ACCVIE_OFF = 0x00,           /*! Interrupt not enabled */
    30            ACCVIE     = 0x20            /*! Interrupt enabled */
    31        };
    32
    33        enum NMIIE_t {
    34            NMIIE_OFF  = 0x00,           /*! Interrupt not enabled */
    35            NMIIE      = 0x10            /*! Interrupt enabled */
    36        };
    37
    38        enum OFIE_t {
    39            OFIE_OFF   = 0x00,           /*! Interrupt not enabled */
    40            OFIE       = 0x02            /*! Interrupt enabled */
    41        };
    42
    43        enum WDTIE_t {
    44            WDTIE_OFF  = 0x00,           /*! Interrupt not enabled */
    45            WDTIE      = 0x01            /*! Interrupt enabled */
    46        };
    47
    48        enum NMIIFG_t {
    49            NMIIFG_OFF = 0x00,           /*! No interrupt pending */
    50            NMIIFG     = 0x10            /*! Interrupt pending */
    51        };
    52
    53        enum WDTIFG_t {
    54            WDTIFG_OFF = 0x00,           /*! No interrupt pending */
    55            WDTIFG     = 0x01            /*! Interrupt pending */
    56        };
    57
    58        enum OFIFG_t {
    59            OFIFG_OFF  = 0x00,           /*! No interrupt pending */
    60            OFIFG      = 0x02            /*! Interrupt pending */
    61        };
    62
    63        enum ACCVIFG_t {
    64            ACCVIFG_OFF = 0x00,          /*! No interrupt pending */
    65            ACCVIFG     = 0x20           /*! Interrupt pending */
    66        };
    67
    68        /* IE1 */
    69        struct IE1_t {
    70            ACCVIE_t    ACCVIE;          /*! Flash memory access violation interrupt
    71                                          * enable. This bit enables the ACCVIFG interrupt.
    72                                          *  0  Interrupt disabled
    73                                          *  1  Interrupt enabled */
    74            NMIIE_t      NMIIE;          /*! NMI interrupt enable. This bit enables
    75                                          *the NMI interrupt.
    76                                          *  0  Interrupt disabled
    77                                          *  1  Interrupt enabled */
    78            OFIE_t      OFIE;            /*! Oscillator fault flag interrupt enable
    79                                          *This bit enables the OFIFG interrupt.
    80                                          *  0  Interrupt disabled
    81                                          *  1  Interrupt enabled */
    82            WDTIE_t     WDTIE;           /*! Watchdog timer+ interrupt enable. This
    83                                          *bit enables the WDTIFG interrupt for
    84                                          *interval timer mode. It is not necessary
    85                                          *to set this bit for watchdog mode.
    86                                          *  0  Interrupt disabled
    87                                          *  1  Interrupt enabled */
    88        }
    89
    90        /* IFG1 */
    91        struct IFG1_t {
    92            ACCVIFG_t    ACCVIFG;        /*! Flash memory access violation interrupt
    93                                          * flag.
    94                                          *  0  No interrupt pending
    95                                          *  1  Interrupt pending */
    96            NMIIFG_t     NMIIFG;         /*! NMI interrupt flag.
    97                                          *  0  No interrupt pending
    98                                          *  1  Interrupt pending */
    99            OFIFG_t      OFIFG;          /*! Oscillator fault interrupt flag
   100                                          *  0  No interrupt pending
   101                                          *  1  Interrupt pending */
   102            WDTIFG_t     WDTIFG;         /*! Watchdog timer+ interrupt flag.
   103                                          *  0  No interrupt pending
   104                                          *  1  Interrupt pending */
   105        }
   106
   107        /*!
   108        *  ======== ForceSetDefaultRegister_t ========
   109        *  Force Set Default Register
   110        *
   111        *  Type to store if each register needs to be forced initialized
   112        *  even if the register is in default state.
   113        *
   114        *  @see #ForceSetDefaultRegister_t
   115        */
   116        struct ForceSetDefaultRegister_t {
   117            String     register;
   118            Bool       regForceSet;
   119        }
   120
   121       /*!
   122        *  ======== regIntVect_t ========
   123        *  Interrupt vector description
   124        *
   125        *  Type to describe a single interrupt vector pin and all its possible
   126        *  configurations.
   127        *
   128        *  @see #regIntVect_t
   129        */
   130        struct regIntVect_t {
   131            String                    registerName;
   132            String                    registerDescription;
   133            String                    isrToggleString;
   134            String                    priorityName;
   135            Bool                      interruptEnable;
   136            Bool                      interruptHandler;
   137            Int                       priority;
   138        }
   139
   140    instance:
   141
   142        /*! SFRIE1 interrupt enables
   143         */
   144        config regIntVect_t interruptSource[16];
   145
   146        /*! IE1, Interrupt Enable Register 1 */
   147        config IE1_t SFRIE1 = {
   148            ACCVIE      : ACCVIE_OFF,
   149            NMIIE       : NMIIE_OFF,
   150            OFIE        : OFIE_OFF,
   151            WDTIE       : WDTIE_OFF
   152        };
   153
   154        /*! IFG1, Interrupt Flag Register 1 */
   155        config IFG1_t SFRIFG1 = {
   156            ACCVIFG     : ACCVIFG_OFF,
   157            NMIIFG      : NMIIFG_OFF,
   158            OFIFG       : OFIFG_OFF,
   159            WDTIFG      : WDTIFG_OFF
   160        };
   161
   162       /*!
   163        *  ======== getSFRIE1 ========
   164        *  Gets a bit from the register in SFRIE1
   165        *
   166        *  @see #getSFRIE1
   167        */
   168        Bool    getSFRIE1(String register);
   169
   170       /*!
   171        *  ======== setSFRIE1 ========
   172        *  Sets a bit in the register SFRIE1
   173        *
   174        *  @see #setSFRIE1
   175        */
   176        Bool    setSFRIE1(String register, Bool set);
   177
   178        /*! Determine if each Register needs to be forced set or not */
   179        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   180        [
   181            { register : "SFRIE1" , regForceSet : false },
   182            { register : "SFRIFG1" , regForceSet : false },
   183        ];
   184    }


module ti.catalog.msp430.peripherals.special_function.SR

metaonly module ti.catalog.msp430.peripherals.special_function.SR
index URL

MSP430 Status Register

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/special_function/SR.xdc
var SR = xdc.useModule('ti.catalog.msp430.peripherals.special_function.SR');
module-wide constants & types
    values of type SR.CPUOFF_t//
        const SR.CPUOFF_OFF// CPU On;
        const SR.CPUOFF// CPU Off;
    values of type SR.GIE_t//
        const SR.GIE_OFF// General interrupt disable;
        const SR.GIE// General interrupt enable;
    values of type SR.OSCOFF_t//
        const SR.OSCOFF_OFF// Oscillator On;
        const SR.OSCOFF// Oscillator Off;
    values of type SR.SCG0_t//
        const SR.SCG0_OFF// Disable System clock generator 0;
        const SR.SCG0// Enable System clock generator 0;
    values of type SR.SCG1_t//
        const SR.SCG1_OFF// Disable System clock generator 1;
        const SR.SCG1// Enable System clock generator 1;
    var obj = new SR.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new SR.SR_t// ;
        obj.SCG1// System clock generator 1 This bit, when set, turns off the SMCLK = SR.SCG1_t ...
        obj.SCG0// System clock generator 0 This bit, when set, turns off the DCO dc generator, if DCOCLK is not used for MCLK or SMCLK = SR.SCG0_t ...
        obj.OSCOFF// Oscillator Off This bit, when set, turns off the LFXT1 crystal oscillator, when LFXT1CLK is not use for MCLK or SMCLK = SR.OSCOFF_t ...
        obj.CPUOFF// CPU off This bit, when set, turns off the CPU = SR.CPUOFF_t ...
        obj.GIE// General interrupt enable This bit, when set, enables maskable interrupts. When reset, all maskable interrupts are disabled = SR.GIE_t ...
module-wide functions
     SR.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     SR.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new SR.Params// Instance config-params object;
        params.SR// SR, Status Register = SR.SR_t {
            SCG1: SR.SCG1_OFF,
            SCG0: SR.SCG0_OFF,
            OSCOFF: SR.OSCOFF_OFF,
            CPUOFF: SR.CPUOFF_OFF,
            GIE: SR.GIE_OFF
        };
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = SR.ForceSetDefaultRegister_t[] [
            {
                register: "SR",
                regForceSet: false
            }
        ];
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance functions
     inst.getCPUOFF// Gets CPUOFF bit() returns Bool
     inst.getGIE// Gets GIE bit() returns Bool
     inst.getOSCOFF// Gets OSCOFF bit() returns Bool
     inst.getSCG0// Gets SCG0 bit() returns Bool
     inst.getSCG1// Gets SCG1 bit() returns Bool
     inst.setCPUOFF// Sets CPUOFF bit(Bool set) returns Bool
     inst.setGIE// Sets GIE bit(Bool set) returns Bool
     inst.setOSCOFF// Sets OSCOFF bit(Bool set) returns Bool
     inst.setSCG0// Sets SCG0 bit(Bool set) returns Bool
     inst.setSCG1// Sets SCG1 bit(Bool set) returns Bool
enum SR.CPUOFF_t
index URL
XDCscript usage meta-domain
values of type SR.CPUOFF_t
    const SR.CPUOFF_OFF;
    // CPU On
    const SR.CPUOFF;
    // CPU Off
enum SR.GIE_t
index URL
XDCscript usage meta-domain
values of type SR.GIE_t
    const SR.GIE_OFF;
    // General interrupt disable
    const SR.GIE;
    // General interrupt enable
enum SR.OSCOFF_t
index URL
XDCscript usage meta-domain
values of type SR.OSCOFF_t
    const SR.OSCOFF_OFF;
    // Oscillator On
    const SR.OSCOFF;
    // Oscillator Off
enum SR.SCG0_t
index URL
XDCscript usage meta-domain
values of type SR.SCG0_t
    const SR.SCG0_OFF;
    // Disable System clock generator 0
    const SR.SCG0;
    // Enable System clock generator 0
enum SR.SCG1_t
index URL
XDCscript usage meta-domain
values of type SR.SCG1_t
    const SR.SCG1_OFF;
    // Disable System clock generator 1
    const SR.SCG1;
    // Enable System clock generator 1
struct SR.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new SR.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct SR.SR_t
index URL
XDCscript usage meta-domain
var obj = new SR.SR_t;
    obj.SCG1 = SR.SCG1_t ...
    // System clock generator 1 This bit, when set, turns off the SMCLK
    obj.SCG0 = SR.SCG0_t ...
    // System clock generator 0 This bit, when set, turns off the DCO dc generator, if DCOCLK is not used for MCLK or SMCLK
    obj.OSCOFF = SR.OSCOFF_t ...
    // Oscillator Off This bit, when set, turns off the LFXT1 crystal oscillator, when LFXT1CLK is not use for MCLK or SMCLK
    obj.CPUOFF = SR.CPUOFF_t ...
    // CPU off This bit, when set, turns off the CPU
    obj.GIE = SR.GIE_t ...
    // General interrupt enable This bit, when set, enables maskable interrupts. When reset, all maskable interrupts are disabled
SR.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
SR.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
SR.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
SR.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SR.Params;
// Instance config-params object
    params.SR = SR.SR_t {
    // SR, Status Register
        SCG1: SR.SCG1_OFF,
        SCG0: SR.SCG0_OFF,
        OSCOFF: SR.OSCOFF_OFF,
        CPUOFF: SR.CPUOFF_OFF,
        GIE: SR.GIE_OFF
    };
    params.forceSetDefaultRegister = SR.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "SR",
            regForceSet: false
        }
    ];
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config SR.SR // instance
index URL

SR, Status Register

XDCscript usage meta-domain
var params = new SR.Params;
...
params.SR = SR.SR_t {
    SCG1: SR.SCG1_OFF,
    SCG0: SR.SCG0_OFF,
    OSCOFF: SR.OSCOFF_OFF,
    CPUOFF: SR.CPUOFF_OFF,
    GIE: SR.GIE_OFF
};
config SR.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new SR.Params;
...
const params.forceSetDefaultRegister = SR.ForceSetDefaultRegister_t[] [
    {
        register: "SR",
        regForceSet: false
    }
];
config SR.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new SR.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config SR.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new SR.Params;
...
params.owner = String undefined;
SR.getCPUOFF() // instance
index URL

Gets CPUOFF bit

XDCscript usage meta-domain
inst.getCPUOFF() returns Bool
SEE
getCPUOFF
SR.getGIE() // instance
index URL

Gets GIE bit

XDCscript usage meta-domain
inst.getGIE() returns Bool
SEE
getGIE
SR.getOSCOFF() // instance
index URL

Gets OSCOFF bit

XDCscript usage meta-domain
inst.getOSCOFF() returns Bool
SEE
getOSCOFF
SR.getSCG0() // instance
index URL

Gets SCG0 bit

XDCscript usage meta-domain
inst.getSCG0() returns Bool
SEE
getSCG0
SR.getSCG1() // instance
index URL

Gets SCG1 bit

XDCscript usage meta-domain
inst.getSCG1() returns Bool
SEE
getSCG1
SR.setCPUOFF() // instance
index URL

Sets CPUOFF bit

XDCscript usage meta-domain
inst.setCPUOFF(Bool set) returns Bool
SEE
setCPUOFF
SR.setGIE() // instance
index URL

Sets GIE bit

XDCscript usage meta-domain
inst.setGIE(Bool set) returns Bool
SEE
setGIE
SR.setOSCOFF() // instance
index URL

Sets OSCOFF bit

XDCscript usage meta-domain
inst.setOSCOFF(Bool set) returns Bool
SEE
setOSCOFF
SR.setSCG0() // instance
index URL

Sets SCG0 bit

XDCscript usage meta-domain
inst.setSCG0(Bool set) returns Bool
SEE
setSCG0
SR.setSCG1() // instance
index URL

Sets SCG1 bit

XDCscript usage meta-domain
inst.setSCG1(Bool set) returns Bool
SEE
setSCG1
generated on Thu, 08 Nov 2012 02:17:40 GMT


package ti.catalog.msp430.peripherals.svs
index URL

MSP430 SVS peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/package.xdc
package ti.catalog.msp430.peripherals.svs [1, 0, 0] {
    interface ISVS;
    // MSP430 ISVS interface
    module SVS;
    // MSP430F2xx Family SVS Module
}
generated on Thu, 08 Nov 2012 02:17:41 GMT


package ti.catalog.msp430.peripherals.svs

     1    /*!
     2     *  ======== ti.catalog.msp430.peripherals.svs ========
     3     *  MSP430 SVS peripheral
     4     */
     5    package ti.catalog.msp430.peripherals.svs [1, 0, 0] {
     6        interface ISVS;
     7        module SVS;
     8    }


interface ti.catalog.msp430.peripherals.svs.ISVS

metaonly interface ti.catalog.msp430.peripherals.svs.ISVS
index URL

MSP430 ISVS interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
metaonly interface ISVS { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
package ti.catalog.msp430.peripherals.svs;
metaonly interface ISVS inherits IPeripheral {
module-wide constants & types
    enum PORON_t// PORON Bit {
         PORON_OFF// SVSFG does not cause a POR,
         PORON// SVSFG causes a POR
    };
    enum SVSFG_t// SVSFG Bit {
         SVSFG_OFF,
         SVSFG
    };
    enum SVSON_t// SVSON Bit {
         SVSON_OFF,
         SVSON
    };
    enum SVSOP_t// SVSOP Bit {
         SVSOP_OFF,
         SVSOP
    };
    enum VLD0_t// VLD0 Bit {
         VLD0_OFF,
         VLD0
    };
    enum VLD1_t// VLD1 Bit {
         VLD1_OFF,
         VLD1
    };
    enum VLD2_t// VLD2 Bit {
         VLD2_OFF,
         VLD2
    };
    enum VLD3_t// VLD3 Bit {
         VLD3_OFF,
         VLD3
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
enum ISVS.PORON_t
index URL

PORON Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
enum PORON_t {
    PORON_OFF,
    // SVSFG does not cause a POR
    PORON
    // SVSFG causes a POR
};
enum ISVS.SVSFG_t
index URL

SVSFG Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
enum SVSFG_t {
    SVSFG_OFF,
    SVSFG
};
enum ISVS.SVSON_t
index URL

SVSON Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
enum SVSON_t {
    SVSON_OFF,
    SVSON
};
enum ISVS.SVSOP_t
index URL

SVSOP Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
enum SVSOP_t {
    SVSOP_OFF,
    SVSOP
};
enum ISVS.VLD0_t
index URL

VLD0 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
enum VLD0_t {
    VLD0_OFF,
    VLD0
};
enum ISVS.VLD1_t
index URL

VLD1 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
enum VLD1_t {
    VLD1_OFF,
    VLD1
};
enum ISVS.VLD2_t
index URL

VLD2 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
enum VLD2_t {
    VLD2_OFF,
    VLD2
};
enum ISVS.VLD3_t
index URL

VLD3 Bit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
enum VLD3_t {
    VLD3_OFF,
    VLD3
};
typedef ISVS.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef ISVS.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
typedef String StringArray[];
struct ISVS.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
ISVS.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
ISVS.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config ISVS.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config ISVS.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/svs/ISVS.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:17:41 GMT


interface ti.catalog.msp430.peripherals.svs.ISVS

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== ISVS ========
    15     *  MSP430 ISVS interface
    16     */
    17    metaonly interface ISVS inherits xdc.platform.IPeripheral {
    18
    19         /*! VLD3 Bit */
    20         enum VLD3_t {
    21            VLD3_OFF = 0x00,
    22            VLD3 = 0x80
    23         };
    24         /*! VLD2 Bit */
    25         enum VLD2_t {
    26            VLD2_OFF = 0x00,
    27            VLD2 = 0x40
    28         };
    29         /*! VLD1 Bit */
    30         enum VLD1_t {
    31             VLD1_OFF = 0x00,
    32             VLD1 = 0x20
    33         };
    34         /*! VLD0 Bit */
    35         enum VLD0_t {
    36            VLD0_OFF = 0x00,
    37            VLD0 = 0x10
    38         };
    39         /*! PORON Bit */
    40         enum PORON_t {
    41             PORON_OFF = 0x00,   /*! SVSFG does not cause a POR */
    42             PORON = 0x08        /*! SVSFG causes a POR */
    43          };
    44         /*! SVSON Bit */
    45         enum SVSON_t {
    46            SVSON_OFF = 0x00,
    47            SVSON = 0x04
    48         };
    49         /*! SVSOP Bit */
    50         enum SVSOP_t {
    51            SVSOP_OFF = 0x00,
    52            SVSOP = 0x02
    53         };
    54         /*! SVSFG Bit */
    55         enum SVSFG_t {
    56            SVSFG_OFF = 0x00,
    57            SVSFG = 0x01
    58         };
    59
    60        /*!
    61        *  ======== ForceSetDefaultRegister_t ========
    62        *  Force Set Default Register
    63        *
    64        *  Type to store if each register needs to be forced initialized
    65        *  even if the register is in default state.
    66        *
    67        *  @see #ForceSetDefaultRegister_t
    68        */
    69        struct ForceSetDefaultRegister_t {
    70            String     register;
    71            Bool       regForceSet;
    72        }
    73
    74    instance:
    75
    76    }


module ti.catalog.msp430.peripherals.svs.SVS

metaonly module ti.catalog.msp430.peripherals.svs.SVS
index URL

MSP430F2xx Family SVS Module

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/svs/SVS.xdc
var SVS = xdc.useModule('ti.catalog.msp430.peripherals.svs.SVS');
module-wide constants & types
    values of type SVS.PORON_t// PORON Bit
        const SVS.PORON_OFF// SVSFG does not cause a POR;
        const SVS.PORON// SVSFG causes a POR;
    values of type SVS.SVSFG_t// SVSFG Bit
        const SVS.SVSFG_OFF;
        const SVS.SVSFG;
    values of type SVS.SVSON_t// SVSON Bit
        const SVS.SVSON_OFF;
        const SVS.SVSON;
    values of type SVS.SVSOP_t// SVSOP Bit
        const SVS.SVSOP_OFF;
        const SVS.SVSOP;
    values of type SVS.VLD0_t// VLD0 Bit
        const SVS.VLD0_OFF;
        const SVS.VLD0;
    values of type SVS.VLD1_t// VLD1 Bit
        const SVS.VLD1_OFF;
        const SVS.VLD1;
    values of type SVS.VLD2_t// VLD2 Bit
        const SVS.VLD2_OFF;
        const SVS.VLD2;
    values of type SVS.VLD3_t// VLD3 Bit
        const SVS.VLD3_OFF;
        const SVS.VLD3;
    var obj = new SVS.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new SVS.SVSCTL_t// SVSCTL Register;
        obj.VLD3// Voltage level detect. These bits turn on the SVS and select the nominal SVS threshold voltage level. See the device specific data sheet for parameters. 0000 SVS is off 0001 1.9 V 0010 2.1 V 0011 2.2 V 0100 2.3 V 0101 2.4 V 0110 2.5 V 0111 2.65 V 1000 2.8 V 1001 2.9 V 1010 3.05 1011 3.2 V 1100 3.35 V 1101 3.5 V 1110 3.7 V 1111 Compares external input voltage SVSIN to 1.25 V = SVS.VLD3_t ...
        obj.VLD2// Voltage level detect. These bits turn on the SVS and select the nominal SVS threshold voltage level. See the device specific data sheet for parameters. 0000 SVS is off 0001 1.9 V 0010 2.1 V 0011 2.2 V 0100 2.3 V 0101 2.4 V 0110 2.5 V 0111 2.65 V 1000 2.8 V 1001 2.9 V 1010 3.05 1011 3.2 V 1100 3.35 V 1101 3.5 V 1110 3.7 V 1111 Compares external input voltage SVSIN to 1.25 V = SVS.VLD2_t ...
        obj.VLD1// Voltage level detect. These bits turn on the SVS and select the nominal SVS threshold voltage level. See the device specific data sheet for parameters. 0000 SVS is off 0001 1.9 V 0010 2.1 V 0011 2.2 V 0100 2.3 V 0101 2.4 V 0110 2.5 V 0111 2.65 V 1000 2.8 V 1001 2.9 V 1010 3.05 1011 3.2 V 1100 3.35 V 1101 3.5 V 1110 3.7 V 1111 Compares external input voltage SVSIN to 1.25 V = SVS.VLD1_t ...
        obj.VLD0// Voltage level detect. These bits turn on the SVS and select the nominal SVS threshold voltage level. See the device specific data sheet for parameters. 0000 SVS is off 0001 1.9 V 0010 2.1 V 0011 2.2 V 0100 2.3 V 0101 2.4 V 0110 2.5 V 0111 2.65 V 1000 2.8 V 1001 2.9 V 1010 3.05 1011 3.2 V 1100 3.35 V 1101 3.5 V 1110 3.7 V 1111 Compares external input voltage SVSIN to 1.25 V = SVS.VLD0_t ...
        obj.PORON// POR on. This bit enables the SVSFG flag to cause a POR device reset. 0 SVSFG does not cause a POR 1 SVSFG causes a POR = SVS.PORON_t ...
        obj.SVSON// SVS on. This bit reflects the status of SVS operation. This bit DOES NOT turn on the SVS. The SVS is turned on by setting VLDx > 0. 0 SVS is Off 1 SVS is On = SVS.SVSON_t ...
        obj.SVSOP// SVS output. This bit reflects the output value of the SVS comparator. 0 SVS comparator output is low 1 SVS comparator output is high = SVS.SVSOP_t ...
        obj.SVSFG// SVS flag. This bit indicates a low voltage condition. SVSFG remains set after a low voltage condition until reset by software. 0 No low voltage condition occurred 1 A low condition is present or has occurred = SVS.SVSFG_t ...
module-wide functions
     SVS.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     SVS.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new SVS.Params// Instance config-params object;
        params.SVSCTL// SVSCTL Register = SVS.SVSCTL_t {
            VLD3: ISVS.VLD3_OFF,
            VLD2: ISVS.VLD2_OFF,
            VLD1: ISVS.VLD1_OFF,
            VLD0: ISVS.VLD0_OFF,
            PORON: ISVS.PORON_OFF,
            SVSON: ISVS.SVSON_OFF,
            SVSOP: ISVS.SVSOP_OFF,
            SVSFG: ISVS.SVSFG_OFF
        };
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = SVS.ForceSetDefaultRegister_t[] [
            {
                register: "SVSCTL",
                regForceSet: false
            }
        ];
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = SVS.create// Create an instance-object(params);
enum SVS.PORON_t
index URL

PORON Bit

XDCscript usage meta-domain
values of type SVS.PORON_t
    const SVS.PORON_OFF;
    // SVSFG does not cause a POR
    const SVS.PORON;
    // SVSFG causes a POR
enum SVS.SVSFG_t
index URL

SVSFG Bit

XDCscript usage meta-domain
values of type SVS.SVSFG_t
    const SVS.SVSFG_OFF;
    const SVS.SVSFG;
enum SVS.SVSON_t
index URL

SVSON Bit

XDCscript usage meta-domain
values of type SVS.SVSON_t
    const SVS.SVSON_OFF;
    const SVS.SVSON;
enum SVS.SVSOP_t
index URL

SVSOP Bit

XDCscript usage meta-domain
values of type SVS.SVSOP_t
    const SVS.SVSOP_OFF;
    const SVS.SVSOP;
enum SVS.VLD0_t
index URL

VLD0 Bit

XDCscript usage meta-domain
values of type SVS.VLD0_t
    const SVS.VLD0_OFF;
    const SVS.VLD0;
enum SVS.VLD1_t
index URL

VLD1 Bit

XDCscript usage meta-domain
values of type SVS.VLD1_t
    const SVS.VLD1_OFF;
    const SVS.VLD1;
enum SVS.VLD2_t
index URL

VLD2 Bit

XDCscript usage meta-domain
values of type SVS.VLD2_t
    const SVS.VLD2_OFF;
    const SVS.VLD2;
enum SVS.VLD3_t
index URL

VLD3 Bit

XDCscript usage meta-domain
values of type SVS.VLD3_t
    const SVS.VLD3_OFF;
    const SVS.VLD3;
struct SVS.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new SVS.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct SVS.SVSCTL_t
index URL

SVSCTL Register

XDCscript usage meta-domain
var obj = new SVS.SVSCTL_t;
    obj.VLD3 = SVS.VLD3_t ...
    // Voltage level detect. These bits turn on the SVS and select the nominal SVS threshold voltage level. See the device specific data sheet for parameters. 0000 SVS is off 0001 1.9 V 0010 2.1 V 0011 2.2 V 0100 2.3 V 0101 2.4 V 0110 2.5 V 0111 2.65 V 1000 2.8 V 1001 2.9 V 1010 3.05 1011 3.2 V 1100 3.35 V 1101 3.5 V 1110 3.7 V 1111 Compares external input voltage SVSIN to 1.25 V
    obj.VLD2 = SVS.VLD2_t ...
    // Voltage level detect. These bits turn on the SVS and select the nominal SVS threshold voltage level. See the device specific data sheet for parameters. 0000 SVS is off 0001 1.9 V 0010 2.1 V 0011 2.2 V 0100 2.3 V 0101 2.4 V 0110 2.5 V 0111 2.65 V 1000 2.8 V 1001 2.9 V 1010 3.05 1011 3.2 V 1100 3.35 V 1101 3.5 V 1110 3.7 V 1111 Compares external input voltage SVSIN to 1.25 V
    obj.VLD1 = SVS.VLD1_t ...
    // Voltage level detect. These bits turn on the SVS and select the nominal SVS threshold voltage level. See the device specific data sheet for parameters. 0000 SVS is off 0001 1.9 V 0010 2.1 V 0011 2.2 V 0100 2.3 V 0101 2.4 V 0110 2.5 V 0111 2.65 V 1000 2.8 V 1001 2.9 V 1010 3.05 1011 3.2 V 1100 3.35 V 1101 3.5 V 1110 3.7 V 1111 Compares external input voltage SVSIN to 1.25 V
    obj.VLD0 = SVS.VLD0_t ...
    // Voltage level detect. These bits turn on the SVS and select the nominal SVS threshold voltage level. See the device specific data sheet for parameters. 0000 SVS is off 0001 1.9 V 0010 2.1 V 0011 2.2 V 0100 2.3 V 0101 2.4 V 0110 2.5 V 0111 2.65 V 1000 2.8 V 1001 2.9 V 1010 3.05 1011 3.2 V 1100 3.35 V 1101 3.5 V 1110 3.7 V 1111 Compares external input voltage SVSIN to 1.25 V
    obj.PORON = SVS.PORON_t ...
    // POR on. This bit enables the SVSFG flag to cause a POR device reset. 0 SVSFG does not cause a POR 1 SVSFG causes a POR
    obj.SVSON = SVS.SVSON_t ...
    // SVS on. This bit reflects the status of SVS operation. This bit DOES NOT turn on the SVS. The SVS is turned on by setting VLDx > 0. 0 SVS is Off 1 SVS is On
    obj.SVSOP = SVS.SVSOP_t ...
    // SVS output. This bit reflects the output value of the SVS comparator. 0 SVS comparator output is low 1 SVS comparator output is high
    obj.SVSFG = SVS.SVSFG_t ...
    // SVS flag. This bit indicates a low voltage condition. SVSFG remains set after a low voltage condition until reset by software. 0 No low voltage condition occurred 1 A low condition is present or has occurred
SVS.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
SVS.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
SVS.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
SVS.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SVS.Params;
// Instance config-params object
    params.SVSCTL = SVS.SVSCTL_t {
    // SVSCTL Register
        VLD3: ISVS.VLD3_OFF,
        VLD2: ISVS.VLD2_OFF,
        VLD1: ISVS.VLD1_OFF,
        VLD0: ISVS.VLD0_OFF,
        PORON: ISVS.PORON_OFF,
        SVSON: ISVS.SVSON_OFF,
        SVSOP: ISVS.SVSOP_OFF,
        SVSFG: ISVS.SVSFG_OFF
    };
    params.forceSetDefaultRegister = SVS.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "SVSCTL",
            regForceSet: false
        }
    ];
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config SVS.SVSCTL // instance
index URL

SVSCTL Register

XDCscript usage meta-domain
var params = new SVS.Params;
...
params.SVSCTL = SVS.SVSCTL_t {
    VLD3: ISVS.VLD3_OFF,
    VLD2: ISVS.VLD2_OFF,
    VLD1: ISVS.VLD1_OFF,
    VLD0: ISVS.VLD0_OFF,
    PORON: ISVS.PORON_OFF,
    SVSON: ISVS.SVSON_OFF,
    SVSOP: ISVS.SVSOP_OFF,
    SVSFG: ISVS.SVSFG_OFF
};
config SVS.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new SVS.Params;
...
const params.forceSetDefaultRegister = SVS.ForceSetDefaultRegister_t[] [
    {
        register: "SVSCTL",
        regForceSet: false
    }
];
config SVS.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new SVS.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config SVS.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new SVS.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new SVS.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = SVS.create(params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:17:41 GMT


module ti.catalog.msp430.peripherals.svs.SVS

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Svs ========
    14     *  MSP430F2xx Family SVS Module
    15     */
    16    metaonly module SVS inherits ISVS {
    17
    18        /*! SVSCTL Register */
    19        struct SVSCTL_t {
    20            VLD3_t VLD3;   /*! Voltage level detect. These bits turn on the SVS and select
    21                            * the nominal SVS threshold voltage level. See the device specific
    22                            * data sheet for parameters.
    23                            * 0000 SVS is off
    24                            * 0001 1.9 V
    25                            * 0010 2.1 V
    26                            * 0011 2.2 V
    27                            * 0100 2.3 V
    28                            * 0101 2.4 V
    29                            * 0110 2.5 V
    30                            * 0111 2.65 V
    31                            * 1000 2.8 V
    32                            * 1001 2.9 V
    33                            * 1010 3.05
    34                            * 1011 3.2 V
    35                            * 1100 3.35 V
    36                            * 1101 3.5 V
    37                            * 1110 3.7 V
    38                            * 1111 Compares external input voltage SVSIN to 1.25 V. */
    39            VLD2_t VLD2;   /*! Voltage level detect. These bits turn on the SVS and select
    40                            * the nominal SVS threshold voltage level. See the device specific
    41                            * data sheet for parameters.
    42                            * 0000 SVS is off
    43                            * 0001 1.9 V
    44                            * 0010 2.1 V
    45                            * 0011 2.2 V
    46                            * 0100 2.3 V
    47                            * 0101 2.4 V
    48                            * 0110 2.5 V
    49                            * 0111 2.65 V
    50                            * 1000 2.8 V
    51                            * 1001 2.9 V
    52                            * 1010 3.05
    53                            * 1011 3.2 V
    54                            * 1100 3.35 V
    55                            * 1101 3.5 V
    56                            * 1110 3.7 V
    57                            * 1111 Compares external input voltage SVSIN to 1.25 V. */
    58            VLD1_t VLD1;   /*! Voltage level detect. These bits turn on the SVS and select
    59                            * the nominal SVS threshold voltage level. See the device specific
    60                            * data sheet for parameters.
    61                            * 0000 SVS is off
    62                            * 0001 1.9 V
    63                            * 0010 2.1 V
    64                            * 0011 2.2 V
    65                            * 0100 2.3 V
    66                            * 0101 2.4 V
    67                            * 0110 2.5 V
    68                            * 0111 2.65 V
    69                            * 1000 2.8 V
    70                            * 1001 2.9 V
    71                            * 1010 3.05
    72                            * 1011 3.2 V
    73                            * 1100 3.35 V
    74                            * 1101 3.5 V
    75                            * 1110 3.7 V
    76                            * 1111 Compares external input voltage SVSIN to 1.25 V. */
    77            VLD0_t VLD0;   /*! Voltage level detect. These bits turn on the SVS and select
    78                            * the nominal SVS threshold voltage level. See the device specific
    79                            * data sheet for parameters.
    80                            * 0000 SVS is off
    81                            * 0001 1.9 V
    82                            * 0010 2.1 V
    83                            * 0011 2.2 V
    84                            * 0100 2.3 V
    85                            * 0101 2.4 V
    86                            * 0110 2.5 V
    87                            * 0111 2.65 V
    88                            * 1000 2.8 V
    89                            * 1001 2.9 V
    90                            * 1010 3.05
    91                            * 1011 3.2 V
    92                            * 1100 3.35 V
    93                            * 1101 3.5 V
    94                            * 1110 3.7 V
    95                            * 1111 Compares external input voltage SVSIN to 1.25 V. */
    96            PORON_t PORON; /*! POR on. This bit enables the SVSFG flag to
    97                            * cause a POR device reset.
    98                            * 0 SVSFG does not cause a POR
    99                            * 1 SVSFG causes a POR */
   100            SVSON_t SVSON; /*! SVS on. This bit reflects the status of SVS operation. This bit DOES NOT turn
   101                            * on the SVS. The SVS is turned on by setting VLDx > 0.
   102                            * 0 SVS is Off
   103                            * 1 SVS is On */
   104            SVSOP_t SVSOP; /*! SVS output. This bit reflects the output value of the SVS comparator.
   105                            * 0 SVS comparator output is low
   106                            * 1 SVS comparator output is high */
   107            SVSFG_t SVSFG; /*! SVS flag. This bit indicates a low voltage condition. SVSFG remains set after
   108                            * a low voltage condition until reset by software.
   109                            * 0 No low voltage condition occurred
   110                            * 1 A low condition is present or has occurred */
   111      }
   112        /*!
   113         *  ======== create ========
   114         *  Create an instance of this peripheral.
   115         */
   116        create();
   117
   118    instance:
   119       /*! SVSCTL Register */
   120        config SVSCTL_t SVSCTL = {
   121            VLD3    :    VLD3_OFF,
   122            VLD2    :    VLD2_OFF,
   123            VLD1    :    VLD1_OFF,
   124            VLD0    :    VLD0_OFF,
   125            PORON   :    PORON_OFF,
   126            SVSON   :    SVSON_OFF,
   127            SVSOP   :    SVSOP_OFF,
   128            SVSFG   :    SVSFG_OFF
   129         };
   130         /*! Determine if each Register needs to be forced set or not */
   131        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   132        [
   133            { register : "SVSCTL" , regForceSet : false }
   134        ];
   135
   136    }


package ti.catalog.msp430.peripherals.timer
index URL

MSP430 Timer_A and Timer_B peripherals

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/package.xdc
requires ti.catalog.msp430.peripherals.clock;
package ti.catalog.msp430.peripherals.timer [1, 0, 0] {
    interface ITimer;
    // MSP430 ITimer interface
    interface ITimer_A;
    // MSP430 ITimer_A interface
    interface ITimer_B;
    // MSP430 ITimer_B interface
    module Timer0_A3;
    // MSP430 Timer0_A3 timer
    module Timer0_A5;
    // MSP430 Timer0_A5 timer
    module Timer0_B3;
    // MSP430 Timer0_B3 timer
    module Timer0_B7;
    // MSP430 Timer0_B7 timer
    module Timer1_A2;
    // MSP430 Timer1_A2 timer
    module Timer1_A3;
    // MSP430 Timer1_A3 timer
    module Timer1_B3;
    // MSP430 Timer1_B3 timer
    module Timer2_A2;
    // MSP430 Timer2_A2 timer
    module Timer2_A3;
    // MSP430 Timer2_A3 timer
    module Timer2_B3;
    // MSP430 Timer2_B3 timer
    module Timer3_A2;
    // MSP430 Timer3_A2 timer
    module Timer_A2;
    // MSP430 Timer_A2 timer
    module Timer_A3;
    // MSP430 Timer_A3 timer
    module Timer_A5;
    // MSP430 Timer_A5 timer
    module Timer_B3;
    // MSP430 Timer_B timer
    module Timer_B7;
    // MSP430 Timer_B7 timer
}
generated on Thu, 08 Nov 2012 02:17:48 GMT


package ti.catalog.msp430.peripherals.timer

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    requires ti.catalog.msp430.peripherals.clock;
    13
    14    /*!
    15     *  ======== ti.catalog.msp430.peripherals.timer ========
    16     *  MSP430 Timer_A and Timer_B peripherals
    17     */
    18    package ti.catalog.msp430.peripherals.timer [1, 0, 0] {
    19        module Timer_A2, Timer1_A2;
    20        module Timer_A5, Timer0_A5;
    21        module Timer_A3, Timer0_A3, Timer1_A3, Timer2_A3;
    22        module Timer_B3;
    23        module Timer_B7, Timer0_B7;
    24        module Timer0_B3, Timer1_B3, Timer2_B3;
    25        module Timer2_A2, Timer3_A2;
    26        interface ITimer, ITimer_A, ITimer_B;
    27    }


interface ti.catalog.msp430.peripherals.timer.ITimer

metaonly interface ti.catalog.msp430.peripherals.timer.ITimer
index URL

MSP430 ITimer interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
metaonly interface ITimer { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
package ti.catalog.msp430.peripherals.timer;
metaonly interface ITimer inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config UInt baseAddr// Address of the peripheral's control register;
    config UInt intNum// Interrupt source number;
    config Bool isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = false;
    config String name// Specific peripheral name given by the device;
    config UChar numberOfTimers// Stores the number of available timer capture compare blocks;
    config String owner// String specifying the entity that manages the peripheral;
per-instance creation
     create// Create an instance-object(IClock.Instance clock);
per-instance functions
    Bits16 getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber);
    Void setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value);
}
typedef ITimer.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef ITimer.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
typedef String StringArray[];
struct ITimer.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct ITimer.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
ITimer.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
ITimer.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config ITimer.baseAddr // instance
index URL

Address of the peripheral's control register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
config UInt baseAddr;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config ITimer.intNum // instance
index URL

Interrupt source number

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
config UInt intNum;
config ITimer.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
config Bool isInternal = false;
config ITimer.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config ITimer.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
config UChar numberOfTimers;
config ITimer.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
config String owner;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
create(IClock.Instance clock);
// Create an instance-object
ITimer.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
Bits16 getTxxCCRx(UChar ccrNumber);
SEE
getTxxCCRx
ITimer.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer.xdc
Void setTxxCCRx(UChar ccrNumber, Bits16 value);
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:45 GMT


interface ti.catalog.msp430.peripherals.timer.ITimer

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     *  ======== ITimer ========
    16     *  MSP430 ITimer interface
    17     */
    18    metaonly interface ITimer inherits xdc.platform.IPeripheral {
    19
    20       /*!
    21        *  ======== regIntVect_t ========
    22        *  Interrupt vector description
    23        *
    24        *  Type to describe a single interrupt vector pin and all its possible
    25        *  configurations.
    26        *
    27        *  @see #regIntVect_t
    28        */
    29        struct regIntVect_t {
    30            String                    registerName;
    31            String                    registerDescription;
    32            String                    isrToggleString;
    33            String                    priorityName;
    34            Bool                      interruptEnable;
    35            Bool                      interruptHandler;
    36            Int                       priority;
    37        }
    38
    39        /*!
    40        *  ======== ForceSetDefaultRegister_t ========
    41        *  Force Set Default Register
    42        *
    43        *  Type to store if each register needs to be forced initialized
    44        *  even if the register is in default state.
    45        *
    46        *  @see #ForceSetDefaultRegister_t
    47        */
    48        struct ForceSetDefaultRegister_t {
    49            String     register;
    50            Bool       regForceSet;
    51        }
    52
    53        create(IClock.Instance clock);
    54
    55    instance:
    56        /*!
    57         *  ======== baseAddr ========
    58         *  Address of the peripheral's control register.
    59         *
    60         *  A peripheral's registers are commonly accessed through a structure
    61         *  that defines the offsets of a particular register from the lowest
    62         *  address mapped to a peripheral. That lowest address is specified by
    63         *  this parameter.
    64         */
    65        config UInt baseAddr;
    66
    67        /*!
    68         *  ======== intNum ========
    69         *  Interrupt source number
    70         *
    71         */
    72        config UInt intNum;
    73
    74        /*!
    75         *  ======== numberOfTimers ========
    76         *  Stores the number of available timer capture compare blocks
    77         *
    78         */
    79        config UChar numberOfTimers;
    80
    81        /*!
    82        *  ======== setTxxCCRx ========
    83        *  Sets TxxCCRx register value based on which CCR register
    84        *
    85        *  @see #setTxxCCRx
    86        */
    87        void setTxxCCRx(UChar ccrNumber , Bits16 value);
    88
    89       /*!
    90        *  ======== getTxxCCRx ========
    91        *  Returns TxxCCRx register value based on which CCR register
    92        *
    93        *  @see #getTxxCCRx
    94        */
    95        Bits16 getTxxCCRx(UChar ccrNumber);
    96
    97       /*!
    98        *  ======== isInternal ========
    99        *  Boolean that is true if a Timer is internal, meaning
   100        *  it has no external inputs or outputs
   101        *
   102        */
   103        config Bool isInternal = false;
   104
   105        /*! @_nodoc */
   106        config IClock.Instance clock;
   107    }


interface ti.catalog.msp430.peripherals.timer.ITimer_A

metaonly interface ti.catalog.msp430.peripherals.timer.ITimer_A
index URL

MSP430 ITimer_A interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
metaonly interface ITimer_A { ...
// inherits ti.catalog.msp430.peripherals.timer.ITimer
    // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
package ti.catalog.msp430.peripherals.timer;
metaonly interface ITimer_A inherits ITimer {
module-wide constants & types
    enum CAP_t// {
         CAP_OFF// Compare mode,
         CAP// Capture mode
    };
    enum CCIE_t// {
         CCIE_OFF,
         CCIE
    };
    enum CCIFG_t// {
         CCIFG_OFF,
         CCIFG
    };
    enum CCIS_t// {
         CCIS_0// CCIxA,
         CCIS_1// CCIxB,
         CCIS_2// GND,
         CCIS_3// Vcc
    };
    enum CCI_t// {
         CCI_OFF,
         CCI
    };
    enum CM_t// {
         CM_0// No Capture,
         CM_1// Rising Edge,
         CM_2// Falling Edge,
         CM_3// Both Edges
    };
    enum COV_t// {
         COV_OFF,
         COV
    };
    enum ID_t// {
         ID_0// Divider - /1,
         ID_1// Divider - /2,
         ID_2// Divider - /4,
         ID_3// Divider - /8
    };
    enum IVValues// TA3IV Definitions {
         TAIV_NONE// No Interrupt pending,
         TAIV_TACCR1// TACCR1_CCIFG,
         TAIV_TACCR2// TACCR2_CCIFG,
         TAIV_6// Reserved,
         TAIV_8// Reserved,
         TAIV_TAIFG// TAIFG
    };
    enum MC_t// {
         MC_0// Stop Mode,
         MC_1// Up Mode,
         MC_2// Continuous Mode,
         MC_3// Up/Down Mode
    };
    enum OUTMOD_t// {
         OUTMOD_0// PWM output mode: 0 - OUT bit value,
         OUTMOD_1// PWM output mode: 1 - Set,
         OUTMOD_2// PWM output mode: 2 - PWM toggle/reset,
         OUTMOD_3// PWM output mode: 3 - PWM set/reset,
         OUTMOD_4// PWM output mode: 4 - Toggle,
         OUTMOD_5// PWM output mode: 5 - Reset,
         OUTMOD_6// PWM output mode: 6 - PWM toggle/set,
         OUTMOD_7// PWM output mode: 7 - PWM reset/set
    };
    enum OUT_t// {
         OUT_OFF,
         OUT
    };
    enum SCCI_t// {
         SCCI_OFF// Latched capture signal (read),
         SCCI// Latched capture signal (read)
    };
    enum SCS_t// {
         SCS_OFF// Asynchronous Capture,
         SCS// Sychronous Capture
    };
    enum TACLR_t// {
         TACLR_OFF,
         TACLR
    };
    enum TAIE_t// {
         TAIE_OFF,
         TAIE
    };
    enum TAIFG_t// {
         TAIFG_OFF,
         TAIFG
    };
    enum TASSEL_t// {
         TASSEL_0// TACLK,
         TASSEL_1// ACLK,
         TASSEL_2// SMCLK,
         TASSEL_3// INCLK
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct TACCTLx_t// Capture/Compare Control Register {
         ITimer_A.CM_t CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges;
         ITimer_A.CCIS_t CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC;
         ITimer_A.SCS_t SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture;
         ITimer_A.SCCI_t SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit;
         ITimer_A.CAP_t CAP// Capture mode 0 Compare mode 1 Capture mode;
         ITimer_A.OUTMOD_t OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set;
         ITimer_A.CCIE_t CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled;
         ITimer_A.CCI_t CCI// Capture/compare input. The selected input signal can be read by this bit;
         ITimer_A.OUT_t OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high;
         ITimer_A.COV_t COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred;
         ITimer_A.CCIFG_t CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending;
    };
    metaonly struct TACTL_t// Timer_A Control Register {
         ITimer_A.TASSEL_t TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK;
         ITimer_A.ID_t ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8;
         ITimer_A.MC_t MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h;
         ITimer_A.TACLR_t TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero;
         ITimer_A.TAIE_t TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled;
         ITimer_A.TAIFG_t TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Float INCLK// Timer_A INCLK = 0;
    config Float TACLK// Timer_A TACLK = 0;
    config UInt baseAddr// Address of the peripheral's control register;
    config UInt intNum// Interrupt source number;
    config Bool isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = false;
    config String name// Specific peripheral name given by the device;
    config UChar numberOfTimers// Stores the number of available timer capture compare blocks;
    config String owner// String specifying the entity that manages the peripheral;
per-instance creation
     create// Create an instance-object(IClock.Instance clock);
per-instance functions
    Bits16 getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber);
    Void setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value);
}
enum ITimer_A.CAP_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum CAP_t {
    CAP_OFF,
    // Compare mode
    CAP
    // Capture mode
};
enum ITimer_A.CCIE_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum CCIE_t {
    CCIE_OFF,
    CCIE
};
enum ITimer_A.CCIFG_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum CCIFG_t {
    CCIFG_OFF,
    CCIFG
};
enum ITimer_A.CCIS_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum CCIS_t {
    CCIS_0,
    // CCIxA
    CCIS_1,
    // CCIxB
    CCIS_2,
    // GND
    CCIS_3
    // Vcc
};
enum ITimer_A.CCI_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum CCI_t {
    CCI_OFF,
    CCI
};
enum ITimer_A.CM_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum CM_t {
    CM_0,
    // No Capture
    CM_1,
    // Rising Edge
    CM_2,
    // Falling Edge
    CM_3
    // Both Edges
};
enum ITimer_A.COV_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum COV_t {
    COV_OFF,
    COV
};
enum ITimer_A.ID_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum ID_t {
    ID_0,
    // Divider - /1
    ID_1,
    // Divider - /2
    ID_2,
    // Divider - /4
    ID_3
    // Divider - /8
};
enum ITimer_A.IVValues
index URL

TA3IV Definitions

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum IVValues {
    TAIV_NONE,
    // No Interrupt pending
    TAIV_TACCR1,
    // TACCR1_CCIFG
    TAIV_TACCR2,
    // TACCR2_CCIFG
    TAIV_6,
    // Reserved
    TAIV_8,
    // Reserved
    TAIV_TAIFG
    // TAIFG
};
enum ITimer_A.MC_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum MC_t {
    MC_0,
    // Stop Mode
    MC_1,
    // Up Mode
    MC_2,
    // Continuous Mode
    MC_3
    // Up/Down Mode
};
enum ITimer_A.OUTMOD_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum OUTMOD_t {
    OUTMOD_0,
    // PWM output mode: 0 - OUT bit value
    OUTMOD_1,
    // PWM output mode: 1 - Set
    OUTMOD_2,
    // PWM output mode: 2 - PWM toggle/reset
    OUTMOD_3,
    // PWM output mode: 3 - PWM set/reset
    OUTMOD_4,
    // PWM output mode: 4 - Toggle
    OUTMOD_5,
    // PWM output mode: 5 - Reset
    OUTMOD_6,
    // PWM output mode: 6 - PWM toggle/set
    OUTMOD_7
    // PWM output mode: 7 - PWM reset/set
};
enum ITimer_A.OUT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum OUT_t {
    OUT_OFF,
    OUT
};
enum ITimer_A.SCCI_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum SCCI_t {
    SCCI_OFF,
    // Latched capture signal (read)
    SCCI
    // Latched capture signal (read)
};
enum ITimer_A.SCS_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum SCS_t {
    SCS_OFF,
    // Asynchronous Capture
    SCS
    // Sychronous Capture
};
enum ITimer_A.TACLR_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum TACLR_t {
    TACLR_OFF,
    TACLR
};
enum ITimer_A.TAIE_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum TAIE_t {
    TAIE_OFF,
    TAIE
};
enum ITimer_A.TAIFG_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum TAIFG_t {
    TAIFG_OFF,
    TAIFG
};
enum ITimer_A.TASSEL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
enum TASSEL_t {
    TASSEL_0,
    // TACLK
    TASSEL_1,
    // ACLK
    TASSEL_2,
    // SMCLK
    TASSEL_3
    // INCLK
};
typedef ITimer_A.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef ITimer_A.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
typedef String StringArray[];
struct ITimer_A.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct ITimer_A.TACCTLx_t
index URL

Capture/Compare Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
metaonly struct TACCTLx_t {
     ITimer_A.CM_t CM;
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
     ITimer_A.CCIS_t CCIS;
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
     ITimer_A.SCS_t SCS;
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
     ITimer_A.SCCI_t SCCI;
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
     ITimer_A.CAP_t CAP;
    // Capture mode 0 Compare mode 1 Capture mode
     ITimer_A.OUTMOD_t OUTMOD;
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
     ITimer_A.CCIE_t CCIE;
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
     ITimer_A.CCI_t CCI;
    // Capture/compare input. The selected input signal can be read by this bit
     ITimer_A.OUT_t OUT;
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
     ITimer_A.COV_t COV;
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
     ITimer_A.CCIFG_t CCIFG;
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
};
SEE
TACCTLx_t
struct ITimer_A.TACTL_t
index URL

Timer_A Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
metaonly struct TACTL_t {
     ITimer_A.TASSEL_t TASSEL;
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
     ITimer_A.ID_t ID;
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
     ITimer_A.MC_t MC;
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
     ITimer_A.TACLR_t TACLR;
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
     ITimer_A.TAIE_t TAIE;
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
     ITimer_A.TAIFG_t TAIFG;
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
};
SEE
TACTL_t
struct ITimer_A.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
ITimer_A.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
ITimer_A.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config ITimer_A.INCLK // instance
index URL

Timer_A INCLK

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
config Float INCLK = 0;
config ITimer_A.TACLK // instance
index URL

Timer_A TACLK

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
config Float TACLK = 0;
config ITimer_A.baseAddr // instance
index URL

Address of the peripheral's control register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
config UInt baseAddr;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config ITimer_A.intNum // instance
index URL

Interrupt source number

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
config UInt intNum;
config ITimer_A.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
config Bool isInternal = false;
config ITimer_A.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config ITimer_A.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
config UChar numberOfTimers;
config ITimer_A.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
config String owner;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
create(IClock.Instance clock);
// Create an instance-object
ITimer_A.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
Bits16 getTxxCCRx(UChar ccrNumber);
SEE
getTxxCCRx
ITimer_A.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
Void setTxxCCRx(UChar ccrNumber, Bits16 value);
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:45 GMT


interface ti.catalog.msp430.peripherals.timer.ITimer_A

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ITimer_A ========
    14     *  MSP430 ITimer_A interface
    15     */
    16    metaonly interface ITimer_A inherits ITimer {
    17
    18        enum TASSEL_t {
    19            TASSEL_0 = (0*0x100u),              /*! TACLK */
    20            TASSEL_1 = (1*0x100u),              /*! ACLK  */
    21            TASSEL_2 = (2*0x100u),              /*! SMCLK */
    22            TASSEL_3 = 3*0x100u                 /*! INCLK */
    23        };
    24
    25        enum TACLR_t {
    26            TACLR_OFF = (0x0000),               /* Timer A counter clear */
    27            TACLR = 0x0004                      /* Timer A counter clear */
    28        };
    29
    30        enum TAIE_t {
    31            TAIE_OFF = (0x0000),                /* Timer A counter interrupt enable */
    32            TAIE     = 0x0002                   /* Timer A counter interrupt enable */
    33        };
    34
    35        enum TAIFG_t {
    36            TAIFG_OFF = (0x000),                /* Timer A counter interrupt flag */
    37            TAIFG     = (0x0001)                /* Timer A counter interrupt flag */
    38        };
    39
    40        enum MC_t {
    41            MC_0 = (0*0x10u),                   /*! Stop Mode */
    42            MC_1 = (1*0x10u),                   /*! Up Mode */
    43            MC_2 = (2*0x10u),                   /*! Continuous Mode */
    44            MC_3 = 3*0x10u                      /*! Up/Down Mode */
    45        };
    46
    47        enum ID_t {
    48            ID_0 = (0*0x40u),                   /*! Divider - /1 */
    49            ID_1 = (1*0x40u),                   /*! Divider - /2 */
    50            ID_2 = (2*0x40u),                   /*! Divider - /4 */
    51            ID_3 = 3*0x40u                      /*! Divider - /8 */
    52        };
    53
    54        enum CM_t {
    55            CM_0 = (0*0x4000u),                 /*! No Capture */
    56            CM_1 = (1*0x4000u),                 /*! Rising Edge */
    57            CM_2 = (2*0x4000u),                 /*! Falling Edge */
    58            CM_3 = 3*0x4000u                    /*! Both Edges */
    59        };
    60
    61        enum CCIS_t {
    62            CCIS_0 = (0*0x1000u),               /*! CCIxA */
    63            CCIS_1 = (1*0x1000u),               /*! CCIxB */
    64            CCIS_2 = (2*0x1000u),               /*! GND */
    65            CCIS_3 = 3*0x1000u                  /*! Vcc */
    66        };
    67
    68        enum SCS_t {
    69            SCS_OFF = (0x0000),                 /*! Asynchronous Capture */
    70            SCS = 0x0800                        /*! Sychronous Capture  */
    71        };
    72
    73        enum SCCI_t {
    74            SCCI_OFF = (0x0000),                /*! Latched capture signal (read) */
    75            SCCI = 0x0400                       /*! Latched capture signal (read) */
    76        };
    77
    78        enum CAP_t {
    79            CAP_OFF = (0x0000),                 /*! Compare mode */
    80            CAP = 0x0100                        /*! Capture mode */
    81        };
    82
    83        enum CCIE_t {
    84            CCIE_OFF = (0x0000),                /* Capture/compare interrupt disable */
    85            CCIE = (0x0010)                     /* Capture/compare interrupt enable */
    86        };
    87
    88        enum CCI_t {
    89            CCI_OFF = (0x0008),                 /* Capture input signal (read) */
    90            CCI = (0x0008)                      /* Capture input signal (read) */
    91        };
    92
    93        enum OUT_t {
    94            OUT_OFF = (0x0000),                 /* PWM Output signal if output mode 0 */
    95            OUT = (0x0004)                      /* PWM Output signal if output mode 0 */
    96        };
    97
    98        enum COV_t {
    99            COV_OFF = (0x0000),                 /* Capture/compare overflow flag */
   100            COV = (0x0002)                      /* Capture/compare overflow flag */
   101        };
   102
   103        enum CCIFG_t {
   104            CCIFG_OFF = (0x0000),               /* Capture/compare interrupt flag */
   105            CCIFG = (0x0001)                    /* Capture/compare interrupt flag */
   106        };
   107
   108        enum OUTMOD_t {
   109            OUTMOD_0 = (0*0x20u),               /*! PWM output mode: 0 - OUT bit value */
   110            OUTMOD_1 = (1*0x20u),               /*! PWM output mode: 1 - Set */
   111            OUTMOD_2 = (2*0x20u),               /*! PWM output mode: 2 - PWM toggle/reset */
   112            OUTMOD_3 = (3*0x20u),               /*! PWM output mode: 3 - PWM set/reset */
   113            OUTMOD_4 = (4*0x20u),               /*! PWM output mode: 4 - Toggle */
   114            OUTMOD_5 = (5*0x20u),               /*! PWM output mode: 5 - Reset */
   115            OUTMOD_6 = (6*0x20u),               /*! PWM output mode: 6 - PWM toggle/set */
   116            OUTMOD_7 = 7*0x20u                  /*! PWM output mode: 7 - PWM reset/set */
   117        };
   118
   119        /*! TA3IV Definitions */
   120        enum IVValues {
   121            TAIV_NONE = 0x0000,                 /*! No Interrupt pending */
   122            TAIV_TACCR1 = 0x0002,               /*! TACCR1_CCIFG */
   123            TAIV_TACCR2 = 0x0004,               /*! TACCR2_CCIFG */
   124            TAIV_6 = 0x0006,                    /*! Reserved */
   125            TAIV_8 = 0x0008,                    /*! Reserved */
   126            TAIV_TAIFG = 0x000A                 /*! TAIFG */
   127        };
   128
   129       /*!
   130        *  ======== TACTL_t ========
   131        *  Timer_A Control Register
   132        *
   133        *  @see #TACTL_t
   134        */
   135        struct TACTL_t {
   136            TASSEL_t    TASSEL;     /*! Timer_A clock source select
   137                                      *  00  TACLK
   138                                      *  01  ACLK
   139                                      *  10  SMCLK
   140                                      *  11  INCLK */
   141            ID_t        ID;         /*! Input divider. These bits select the divider for the input clock.
   142                                      *  00 /1
   143                                      *  01 /2
   144                                      *  10 /4
   145                                      *  11 /8 */
   146            MC_t        MC;         /*! Mode control. Setting MCx = 00h when Timer_A is not in use conserves
   147                                      * power.
   148                                      *  00  Stop mode: the timer is halted.
   149                                      *  01  Up mode: the timer counts up to TACCR0.
   150                                      *  10  Continuous mode: the timer counts up to 0FFFFh.
   151                                      *  11  Up/down mode: the timer counts up to TACCR0 then down to 0000h. */
   152            TACLR_t     TACLR;      /*! Timer_A clear. Setting this bit resets TAR, the clock divider, and the count
   153                                      * direction. The TACLR bit is automatically reset and is always read as zero. */
   154            TAIE_t      TAIE;       /*! Timer_A interrupt enable. This bit enables the TAIFG interrupt request.
   155                                      *  0  Interrupt disabled
   156                                      *  1  Interrupt enabled */
   157            TAIFG_t     TAIFG;      /*! Timer_A interrupt flag
   158                                      *  0  No interrupt pending
   159                                      *  1  Interrupt pending */
   160        }
   161
   162       /*!
   163        *  ======== TACCTLx_t ========
   164        *  Capture/Compare Control Register
   165        *
   166        *  @see #TACCTLx_t
   167        */
   168        struct TACCTLx_t {
   169            CM_t       CM;          /*! Capture mode
   170                                      *  00 No capture
   171                                      *  01 Capture on rising edge
   172                                      *  10 Capture on falling edge
   173                                      *  11 Capture on both rising and falling edges */
   174            CCIS_t     CCIS;        /*! Capture/compare input select. These bits select the TACCRx input signal.
   175                                      * See the device-specific data sheet for specific signal connections.
   176                                      *  00  CCIxA
   177                                      *  01  CCIxB
   178                                      *  10  GND
   179                                      *  11  VCC */
   180            SCS_t      SCS;         /*! Synchronize capture source. This bit is used to synchronize the capture input
   181                                      * signal with the timer clock.
   182                                      *  0  Asynchronous capture
   183                                      *  1  Synchronous capture */
   184            SCCI_t     SCCI;        /*! Synchronized capture/compare input. The selected CCI input signal is
   185                                      * latched with the EQUx signal and can be read via this bit */
   186            CAP_t      CAP;         /*! Capture mode
   187                                      *  0  Compare mode
   188                                      *  1  Capture mode */
   189            OUTMOD_t   OUTMOD;      /*! Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because
   190                                      * EQUx = EQU0.
   191                                      *  000  OUT bit value
   192                                      *  001  Set
   193                                      *  010  Toggle/reset
   194                                      *  011  Set/reset
   195                                      *  100  Toggle
   196                                      *  101  Reset
   197                                      *  110  Toggle/set
   198                                      *  111  Reset/set */
   199            CCIE_t     CCIE;        /*! Capture/compare interrupt enable. This bit enables the interrupt request of
   200                                      * the corresponding CCIFG flag.
   201                                      *  0  Interrupt disabled
   202                                      *  1  Interrupt enabled */
   203            CCI_t      CCI;         /*! Capture/compare input. The selected input signal can be read by this bit. */
   204            OUT_t      OUT;         /*! Output. For output mode 0, this bit directly controls the state of the output.
   205                                      *  0   Output low
   206                                      *  1   Output high */
   207            COV_t      COV;         /*! Capture overflow. This bit indicates a capture overflow occurred. COV must
   208                                      *  be reset with software.
   209                                      *  0  No capture overflow occurred
   210                                      *  1  Capture overflow occurred */
   211            CCIFG_t    CCIFG;       /*! Capture/compare interrupt flag
   212                                      *  0  No interrupt pending
   213                                      *  1  Interrupt pending */
   214        }
   215
   216    instance:
   217        /*! Timer_A TACLK */
   218        config float TACLK = 0;
   219
   220        /*! Timer_A INCLK */
   221        config float INCLK = 0;
   222    }


interface ti.catalog.msp430.peripherals.timer.ITimer_B

metaonly interface ti.catalog.msp430.peripherals.timer.ITimer_B
index URL

MSP430 ITimer_B interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
metaonly interface ITimer_B { ...
// inherits ti.catalog.msp430.peripherals.timer.ITimer
    // inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
package ti.catalog.msp430.peripherals.timer;
metaonly interface ITimer_B inherits ITimer {
module-wide constants & types
    enum CAP_t// {
         CAP_OFF,
         CAP
    };
    enum CCIE_t// {
         CCIE_OFF,
         CCIE
    };
    enum CCIFG_t// {
         CCIFG_OFF,
         CCIFG
    };
    enum CCIS_t// {
         CCIS_0// CCIxA,
         CCIS_1// CCIxB,
         CCIS_2// GND,
         CCIS_3// Vcc
    };
    enum CCI_t// {
         CCI_OFF,
         CCI
    };
    enum CLLD_t// {
         CLLD_0,
         CLLD_1,
         CLLD_2,
         CLLD_3
    };
    enum CM_t// {
         CM_0// No Capture,
         CM_1// Rising Edge,
         CM_2// Falling Edge,
         CM_3// Both Edges
    };
    enum CNTL_t// {
         CNTL_0// 16-bit, TBR(max) = 0FFFFh,
         CNTL_1// 12-bit, TBR(max) = 0FFFh,
         CNTL_2// 10-bit, TBR(max) = 03FFh,
         CNTL_3// 8-bit, TBR(max) = 0FFh
    };
    enum COV_t// {
         COV_OFF,
         COV
    };
    enum ID_t// {
         ID_0// Divider - /1,
         ID_1// Divider - /2,
         ID_2// Divider - /4,
         ID_3// Divider - /8
    };
    enum MC_t// {
         MC_0// Stop Mode,
         MC_1// Up Mode,
         MC_2// Continuous Mode,
         MC_3// Up/Down Mode
    };
    enum OUTMOD_t// {
         OUTMOD_0// PWM output mode: 0 - OUT bit value,
         OUTMOD_1// PWM output mode: 1 - Set,
         OUTMOD_2// PWM output mode: 2 - PWM toggle/reset,
         OUTMOD_3// PWM output mode: 3 - PWM set/reset,
         OUTMOD_4// PWM output mode: 4 - Toggle,
         OUTMOD_5// PWM output mode: 5 - Reset,
         OUTMOD_6// PWM output mode: 6 - PWM toggle/set,
         OUTMOD_7// PWM output mode: 7 - PWM reset/set
    };
    enum OUT_t// {
         OUT_OFF,
         OUT
    };
    enum SCCI_t// {
         SCCI_OFF,
         SCCI
    };
    enum SCS_t// {
         SCS_OFF,
         SCS
    };
    enum TBCLGRP_t// {
         TBCLGRP_0,
         TBCLGRP_1,
         TBCLGRP_2,
         TBCLGRP_3
    };
    enum TBCLR_t// {
         TBCLR_OFF,
         TBCLR
    };
    enum TBIE_t// {
         TBIE_OFF,
         TBIE
    };
    enum TBIFG_t// {
         TBIFG_OFF,
         TBIFG
    };
    enum TBSSEL_t// {
         TBSSEL_0// TBCLK,
         TBSSEL_1// ACLK,
         TBSSEL_2// SMCLK,
         TBSSEL_3// INCLK
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
    metaonly struct TBCCTLx_t// {
         ITimer_B.CM_t CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges;
         ITimer_B.CCIS_t CCIS// Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC;
         ITimer_B.SCS_t SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture;
         ITimer_B.CLLD_t CLLD// Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx;
         ITimer_B.CAP_t CAP// Capture mode 0 Compare mode 1 Capture mode;
         ITimer_B.OUTMOD_t OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set;
         ITimer_B.CCIE_t CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled;
         ITimer_B.CCI_t CCI// Capture/compare input. The selected input signal can be read by this bit;
         ITimer_B.OUT_t OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high;
         ITimer_B.COV_t COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred;
         ITimer_B.CCIFG_t CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending;
    };
    metaonly struct TBCTL_t// Timer_B Control Register {
         ITimer_B.TBCLGRP_t TBCLGRP// TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update);
         ITimer_B.CNTL_t CNTL// Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh;
         ITimer_B.TBSSEL_t TBSSEL// Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK;
         ITimer_B.ID_t ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8;
         ITimer_B.MC_t MC// Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h;
         ITimer_B.TBCLR_t TBCLR// Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero;
         ITimer_B.TBIE_t TBIE// Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled;
         ITimer_B.TBIFG_t TBIFG// Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending;
    };
    metaonly struct regIntVect_t// Interrupt vector description {
        String registerName;
        String registerDescription;
        String isrToggleString;
        String priorityName;
        Bool interruptEnable;
        Bool interruptHandler;
        Int priority;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config Float INCLK// Timer_B INCLK = 0;
    config Float TBCLK// Timer_B TBCLK = 0;
    config UInt baseAddr// Address of the peripheral's control register;
    config UInt intNum// Interrupt source number;
    config Bool isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = false;
    config String name// Specific peripheral name given by the device;
    config UChar numberOfTimers// Stores the number of available timer capture compare blocks;
    config String owner// String specifying the entity that manages the peripheral;
per-instance creation
     create// Create an instance-object(IClock.Instance clock);
per-instance functions
    Bits16 getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber);
    Void setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value);
}
enum ITimer_B.CAP_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum CAP_t {
    CAP_OFF,
    CAP
};
enum ITimer_B.CCIE_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum CCIE_t {
    CCIE_OFF,
    CCIE
};
enum ITimer_B.CCIFG_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum CCIFG_t {
    CCIFG_OFF,
    CCIFG
};
enum ITimer_B.CCIS_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum CCIS_t {
    CCIS_0,
    // CCIxA
    CCIS_1,
    // CCIxB
    CCIS_2,
    // GND
    CCIS_3
    // Vcc
};
enum ITimer_B.CCI_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum CCI_t {
    CCI_OFF,
    CCI
};
enum ITimer_B.CLLD_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum CLLD_t {
    CLLD_0,
    CLLD_1,
    CLLD_2,
    CLLD_3
};
enum ITimer_B.CM_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum CM_t {
    CM_0,
    // No Capture
    CM_1,
    // Rising Edge
    CM_2,
    // Falling Edge
    CM_3
    // Both Edges
};
enum ITimer_B.CNTL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum CNTL_t {
    CNTL_0,
    // 16-bit, TBR(max) = 0FFFFh
    CNTL_1,
    // 12-bit, TBR(max) = 0FFFh
    CNTL_2,
    // 10-bit, TBR(max) = 03FFh
    CNTL_3
    // 8-bit, TBR(max) = 0FFh
};
enum ITimer_B.COV_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum COV_t {
    COV_OFF,
    COV
};
enum ITimer_B.ID_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum ID_t {
    ID_0,
    // Divider - /1
    ID_1,
    // Divider - /2
    ID_2,
    // Divider - /4
    ID_3
    // Divider - /8
};
enum ITimer_B.MC_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum MC_t {
    MC_0,
    // Stop Mode
    MC_1,
    // Up Mode
    MC_2,
    // Continuous Mode
    MC_3
    // Up/Down Mode
};
enum ITimer_B.OUTMOD_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum OUTMOD_t {
    OUTMOD_0,
    // PWM output mode: 0 - OUT bit value
    OUTMOD_1,
    // PWM output mode: 1 - Set
    OUTMOD_2,
    // PWM output mode: 2 - PWM toggle/reset
    OUTMOD_3,
    // PWM output mode: 3 - PWM set/reset
    OUTMOD_4,
    // PWM output mode: 4 - Toggle
    OUTMOD_5,
    // PWM output mode: 5 - Reset
    OUTMOD_6,
    // PWM output mode: 6 - PWM toggle/set
    OUTMOD_7
    // PWM output mode: 7 - PWM reset/set
};
enum ITimer_B.OUT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum OUT_t {
    OUT_OFF,
    OUT
};
enum ITimer_B.SCCI_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum SCCI_t {
    SCCI_OFF,
    SCCI
};
enum ITimer_B.SCS_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum SCS_t {
    SCS_OFF,
    SCS
};
enum ITimer_B.TBCLGRP_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum TBCLGRP_t {
    TBCLGRP_0,
    TBCLGRP_1,
    TBCLGRP_2,
    TBCLGRP_3
};
enum ITimer_B.TBCLR_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum TBCLR_t {
    TBCLR_OFF,
    TBCLR
};
enum ITimer_B.TBIE_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum TBIE_t {
    TBIE_OFF,
    TBIE
};
enum ITimer_B.TBIFG_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum TBIFG_t {
    TBIFG_OFF,
    TBIFG
};
enum ITimer_B.TBSSEL_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
enum TBSSEL_t {
    TBSSEL_0,
    // TBCLK
    TBSSEL_1,
    // ACLK
    TBSSEL_2,
    // SMCLK
    TBSSEL_3
    // INCLK
};
typedef ITimer_B.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef ITimer_B.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
typedef String StringArray[];
struct ITimer_B.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct ITimer_B.TBCCTLx_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
metaonly struct TBCCTLx_t {
     ITimer_B.CM_t CM;
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
     ITimer_B.CCIS_t CCIS;
    // Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
     ITimer_B.SCS_t SCS;
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
     ITimer_B.CLLD_t CLLD;
    // Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx
     ITimer_B.CAP_t CAP;
    // Capture mode 0 Compare mode 1 Capture mode
     ITimer_B.OUTMOD_t OUTMOD;
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
     ITimer_B.CCIE_t CCIE;
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
     ITimer_B.CCI_t CCI;
    // Capture/compare input. The selected input signal can be read by this bit
     ITimer_B.OUT_t OUT;
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
     ITimer_B.COV_t COV;
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
     ITimer_B.CCIFG_t CCIFG;
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
};
struct ITimer_B.TBCTL_t
index URL

Timer_B Control Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
metaonly struct TBCTL_t {
     ITimer_B.TBCLGRP_t TBCLGRP;
    // TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update)
     ITimer_B.CNTL_t CNTL;
    // Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh
     ITimer_B.TBSSEL_t TBSSEL;
    // Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK
     ITimer_B.ID_t ID;
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
     ITimer_B.MC_t MC;
    // Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h
     ITimer_B.TBCLR_t TBCLR;
    // Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero
     ITimer_B.TBIE_t TBIE;
    // Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
     ITimer_B.TBIFG_t TBIFG;
    // Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending
};
SEE
TBCTL_t
struct ITimer_B.regIntVect_t
index URL

Interrupt vector description

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
metaonly struct regIntVect_t {
    String registerName;
    String registerDescription;
    String isrToggleString;
    String priorityName;
    Bool interruptEnable;
    Bool interruptHandler;
    Int priority;
};
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
ITimer_B.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
ITimer_B.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config ITimer_B.INCLK // instance
index URL

Timer_B INCLK

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
config Float INCLK = 0;
config ITimer_B.TBCLK // instance
index URL

Timer_B TBCLK

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
config Float TBCLK = 0;
config ITimer_B.baseAddr // instance
index URL

Address of the peripheral's control register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
config UInt baseAddr;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config ITimer_B.intNum // instance
index URL

Interrupt source number

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
config UInt intNum;
config ITimer_B.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
config Bool isInternal = false;
config ITimer_B.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config ITimer_B.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
config UChar numberOfTimers;
config ITimer_B.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
config String owner;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
create(IClock.Instance clock);
// Create an instance-object
ITimer_B.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
Bits16 getTxxCCRx(UChar ccrNumber);
SEE
getTxxCCRx
ITimer_B.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
Void setTxxCCRx(UChar ccrNumber, Bits16 value);
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:45 GMT


interface ti.catalog.msp430.peripherals.timer.ITimer_B

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ITimer_B ========
    14     *  MSP430 ITimer_B interface
    15     */
    16    metaonly interface ITimer_B inherits ITimer {
    17
    18        enum TBCLGRP_t {
    19            TBCLGRP_0 = (0*0x100u),             /* */
    20            TBCLGRP_1 = (1*0x100u),             /* */
    21            TBCLGRP_2 = (2*0x100u),             /* */
    22            TBCLGRP_3 = 3*0x100u                /* */
    23        };
    24
    25        enum CNTL_t {
    26            CNTL_0 = (0*0x100u),                /*! 16-bit, TBR(max) = 0FFFFh */
    27            CNTL_1 = (1*0x100u),                /*! 12-bit, TBR(max) = 0FFFh  */
    28            CNTL_2 = (2*0x100u),                /*! 10-bit, TBR(max) = 03FFh */
    29            CNTL_3 = 3*0x100u                   /*!  8-bit, TBR(max) = 0FFh */
    30        };
    31
    32        enum TBSSEL_t {
    33            TBSSEL_0 = (0*0x100u),              /*! TBCLK */
    34            TBSSEL_1 = (1*0x100u),              /*! ACLK  */
    35            TBSSEL_2 = (2*0x100u),              /*! SMCLK */
    36            TBSSEL_3 = 3*0x100u                 /*! INCLK */
    37        };
    38
    39        enum TBCLR_t {
    40            TBCLR_OFF = (0x0000),               /* Timer A counter clear */
    41            TBCLR = 0x0004                      /* Timer A counter clear */
    42        };
    43
    44        enum TBIE_t {
    45            TBIE_OFF = (0x0000),                /* Timer A counter interrupt enable */
    46            TBIE     = 0x0002                   /* Timer A counter interrupt enable */
    47        };
    48
    49        enum TBIFG_t {
    50            TBIFG_OFF = (0x000),                /* Timer A counter interrupt flag */
    51            TBIFG     = (0x0001)                /* Timer A counter interrupt flag */
    52        };
    53
    54        enum MC_t {
    55            MC_0 = (0*0x10u),                   /*! Stop Mode */
    56            MC_1 = (1*0x10u),                   /*! Up Mode */
    57            MC_2 = (2*0x10u),                   /*! Continuous Mode */
    58            MC_3 = 3*0x10u                      /*! Up/Down Mode */
    59        };
    60
    61        enum ID_t {
    62            ID_0 = (0*0x40u),                   /*! Divider - /1 */
    63            ID_1 = (1*0x40u),                   /*! Divider - /2 */
    64            ID_2 = (2*0x40u),                   /*! Divider - /4 */
    65            ID_3 = 3*0x40u                      /*! Divider - /8 */
    66        };
    67
    68        enum CM_t {
    69            CM_0 = (0*0x4000u),                 /*! No Capture */
    70            CM_1 = (1*0x4000u),                 /*! Rising Edge */
    71            CM_2 = (2*0x4000u),                 /*! Falling Edge */
    72            CM_3 = 3*0x4000u                    /*! Both Edges */
    73        };
    74
    75        enum CCIS_t {
    76            CCIS_0 = (0*0x1000u),               /*! CCIxA */
    77            CCIS_1 = (1*0x1000u),               /*! CCIxB */
    78            CCIS_2 = (2*0x1000u),               /*! GND */
    79            CCIS_3 = 3*0x1000u                  /*! Vcc */
    80        };
    81
    82        enum SCS_t {
    83            SCS_OFF = (0x0000),                 /* Asynchronous Capture */
    84            SCS = 0x0800                        /* Sychronous Capture  */
    85        };
    86
    87        enum CLLD_t {
    88            CLLD_0 = (0*0x1000u),               /* TBCLx loads on write to TBCCRx */
    89            CLLD_1 = (1*0x1000u),               /* TBCLx loads when TBR counts to 0 */
    90            CLLD_2 = (2*0x1000u),               /* TBCLx loads when TBR counts to 0 (up or continuous mode) */
    91            CLLD_3 = 3*0x1000u                  /* TBCLx loads when TBR counts to TBCLx */
    92        };
    93
    94        enum SCCI_t {
    95            SCCI_OFF = (0x0000),                /* Latched capture signal (read) */
    96            SCCI = 0x0400                       /* Latched capture signal (read) */
    97        };
    98
    99        enum CAP_t {
   100            CAP_OFF = (0x0000),                 /* Compare mode */
   101            CAP = 0x0100                        /* Capture mode */
   102        };
   103
   104        enum CCIE_t {
   105            CCIE_OFF = (0x0000),                /* Capture/compare interrupt disable */
   106            CCIE = (0x0010)                     /* Capture/compare interrupt enable */
   107        };
   108
   109        enum CCI_t {
   110            CCI_OFF = (0x0008),                 /* Capture input signal (read) */
   111            CCI = (0x0008)                      /* Capture input signal (read) */
   112        };
   113
   114        enum OUT_t {
   115            OUT_OFF = (0x0000),                 /* PWM Output signal if output mode 0 */
   116            OUT = (0x0004)                      /* PWM Output signal if output mode 0 */
   117        };
   118
   119        enum COV_t {
   120            COV_OFF = (0x0000),                 /* Capture/compare overflow flag */
   121            COV = (0x0002)                      /* Capture/compare overflow flag */
   122        };
   123
   124        enum CCIFG_t {
   125            CCIFG_OFF = (0x0000),               /* Capture/compare interrupt flag */
   126            CCIFG = (0x0001)                    /* Capture/compare interrupt flag */
   127        };
   128
   129        enum OUTMOD_t {
   130            OUTMOD_0 = (0*0x20u),               /*! PWM output mode: 0 - OUT bit value */
   131            OUTMOD_1 = (1*0x20u),               /*! PWM output mode: 1 - Set */
   132            OUTMOD_2 = (2*0x20u),               /*! PWM output mode: 2 - PWM toggle/reset */
   133            OUTMOD_3 = (3*0x20u),               /*! PWM output mode: 3 - PWM set/reset */
   134            OUTMOD_4 = (4*0x20u),               /*! PWM output mode: 4 - Toggle */
   135            OUTMOD_5 = (5*0x20u),               /*! PWM output mode: 5 - Reset */
   136            OUTMOD_6 = (6*0x20u),               /*! PWM output mode: 6 - PWM toggle/set */
   137            OUTMOD_7 = 7*0x20u                  /*! PWM output mode: 7 - PWM reset/set */
   138        };
   139
   140       /*!
   141        *  ======== TBCTL_t ========
   142        *  Timer_B Control Register
   143        *
   144        *  @see #TBCTL_t
   145        */
   146        struct TBCTL_t {
   147            TBCLGRP_t   TBCLGRP;    /*! TBCLx group
   148                                      *  00  Each TBCLx latch loads independently
   149                                      *  01  TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update)
   150                                      *      TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update)
   151                                      *      TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update)
   152                                      *      TBCL0 independent
   153                                      *  10  TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update)
   154                                      *      TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update)
   155                                      *      TBCL0 independent
   156                                      *  11  TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6
   157                                      *      (TBCCR1 CLLDx bits control the update) */
   158            CNTL_t      CNTL;       /*! Counter Length
   159                                      *  00  16-bit, TBR(max) = 0FFFFh
   160                                      *  01  12-bit, TBR(max) = 0FFFh
   161                                      *  10  10-bit, TBR(max) = 03FFh
   162                                      *  11  8-bit, TBR(max) = 0FFh */
   163            TBSSEL_t    TBSSEL;     /*! Timer_B clock source select.
   164                                      *  00  TBCLK
   165                                      *  01  ACLK
   166                                      *  10  SMCLK
   167                                      *  11  Inverted TBCLK */
   168            ID_t        ID;         /*! Input divider. These bits select the divider for the input clock.
   169                                      *  00  /1
   170                                      *  01  /2
   171                                      *  10  /4
   172                                      *  11  /8 */
   173            MC_t        MC;         /*! Mode control. Setting MCx = 00h when Timer_B is not in use conserves
   174                                      * power.
   175                                      *  00  Stop mode: the timer is halted
   176                                      *  01  Up mode: the timer counts up to TBCL0
   177                                      *  10  Continuous mode: the timer counts up to the value set by CNTLx
   178                                      *  11  Up/down mode: the timer counts up to TBCL0 and down to 0000h */
   179            TBCLR_t     TBCLR;      /*! Timer_B clear. Setting this bit resets TBR, the clock divider, and the count
   180                                      * direction. The TBCLR bit is automatically reset and is always read as zero. */
   181            TBIE_t      TBIE;       /*! Timer_B interrupt enable. This bit enables the TBIFG interrupt request.
   182                                      *  0 Interrupt disabled
   183                                      *  1 Interrupt enabled */
   184            TBIFG_t     TBIFG;      /*! Timer_B interrupt flag.
   185                                      *  0 No interrupt pending
   186                                      *  1 Interrupt pending */
   187        }
   188
   189        /* TBCCTLx */
   190        struct TBCCTLx_t {
   191            CM_t       CM;          /*! Capture mode
   192                                      *  00  No capture
   193                                      *  01  Capture on rising edge
   194                                      *  10  Capture on falling edge
   195                                      *  11  Capture on both rising and falling edges */
   196            CCIS_t     CCIS;        /*! Capture/compare input select. These bits select the TBCCRx input signal.
   197                                      * See the device-specific data sheet for specific signal connections.
   198                                      *  00  CCIxA
   199                                      *  01  CCIxB
   200                                      *  10  GND
   201                                      *  11  VCC */
   202            SCS_t      SCS;         /*! Synchronize capture source. This bit is used to synchronize the capture input
   203                                      * signal with the timer clock.
   204                                      *  0  Asynchronous capture
   205                                      *  1  Synchronous capture */
   206            CLLD_t     CLLD;        /*! Compare latch load. These bits select the compare latch load event.
   207                                      *  00  TBCLx loads on write to TBCCRx
   208                                      *  01  TBCLx loads when TBR counts to 0
   209                                      *  10  TBCLx loads when TBR counts to 0 (up or continuous mode)
   210                                      *      TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode)
   211                                      *  11  TBCLx loads when TBR counts to TBCLx */
   212            CAP_t      CAP;         /*! Capture mode
   213                                      *  0  Compare mode
   214                                      *  1  Capture mode */
   215            OUTMOD_t   OUTMOD;      /*! Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx
   216                                      * = EQU0.
   217                                      *  000  OUT bit value
   218                                      *  001  Set
   219                                      *  010  Toggle/reset
   220                                      *  011  Set/reset
   221                                      *  100  Toggle
   222                                      *  101  Reset
   223                                      *  110  Toggle/set
   224                                      *  111  Reset/set */
   225            CCIE_t     CCIE;        /*! Capture/compare interrupt enable. This bit enables the interrupt request of
   226                                      * the corresponding CCIFG flag.
   227                                      *  0  Interrupt disabled
   228                                      *  1  Interrupt enabled */
   229            CCI_t      CCI;         /*! Capture/compare input. The selected input signal can be read by this bit. */
   230            OUT_t      OUT;         /*! Output. For output mode 0, this bit directly controls the state of the output.
   231                                      *  0  Output low
   232                                      *  1  Output high */
   233            COV_t      COV;         /*! Capture overflow. This bit indicates a capture overflow occurred. COV must
   234                                      * be reset with software.
   235                                      *  0  No capture overflow occurred
   236                                      *  1  Capture overflow occurred */
   237            CCIFG_t    CCIFG;       /*! Capture/compare interrupt flag
   238                                      *  0  No interrupt pending
   239                                      *  1  Interrupt pending */
   240        }
   241
   242    instance:
   243
   244        /*! Timer_B TBCLK */
   245        config float TBCLK = 0;
   246
   247        /*! Timer_B INCLK */
   248        config float INCLK = 0;
   249    }


module ti.catalog.msp430.peripherals.timer.Timer0_A3

metaonly module ti.catalog.msp430.peripherals.timer.Timer0_A3
index URL

MSP430 Timer0_A3 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer0_A3.xdc
var Timer0_A3 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer0_A3');
module-wide constants & types
    values of type Timer0_A3.CAP_t//
        const Timer0_A3.CAP_OFF// Compare mode;
        const Timer0_A3.CAP// Capture mode;
    values of type Timer0_A3.CCIE_t//
        const Timer0_A3.CCIE_OFF;
        const Timer0_A3.CCIE;
    values of type Timer0_A3.CCIFG_t//
        const Timer0_A3.CCIFG_OFF;
        const Timer0_A3.CCIFG;
    values of type Timer0_A3.CCIS_t//
        const Timer0_A3.CCIS_0// CCIxA;
        const Timer0_A3.CCIS_1// CCIxB;
        const Timer0_A3.CCIS_2// GND;
        const Timer0_A3.CCIS_3// Vcc;
    values of type Timer0_A3.CCI_t//
        const Timer0_A3.CCI_OFF;
        const Timer0_A3.CCI;
    values of type Timer0_A3.CM_t//
        const Timer0_A3.CM_0// No Capture;
        const Timer0_A3.CM_1// Rising Edge;
        const Timer0_A3.CM_2// Falling Edge;
        const Timer0_A3.CM_3// Both Edges;
    values of type Timer0_A3.COV_t//
        const Timer0_A3.COV_OFF;
        const Timer0_A3.COV;
    values of type Timer0_A3.ID_t//
        const Timer0_A3.ID_0// Divider - /1;
        const Timer0_A3.ID_1// Divider - /2;
        const Timer0_A3.ID_2// Divider - /4;
        const Timer0_A3.ID_3// Divider - /8;
    values of type Timer0_A3.IVValues// TA3IV Definitions
        const Timer0_A3.TAIV_NONE// No Interrupt pending;
        const Timer0_A3.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer0_A3.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer0_A3.TAIV_6// Reserved;
        const Timer0_A3.TAIV_8// Reserved;
        const Timer0_A3.TAIV_TAIFG// TAIFG;
    values of type Timer0_A3.MC_t//
        const Timer0_A3.MC_0// Stop Mode;
        const Timer0_A3.MC_1// Up Mode;
        const Timer0_A3.MC_2// Continuous Mode;
        const Timer0_A3.MC_3// Up/Down Mode;
    values of type Timer0_A3.OUTMOD_t//
        const Timer0_A3.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer0_A3.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer0_A3.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer0_A3.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer0_A3.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer0_A3.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer0_A3.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer0_A3.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer0_A3.OUT_t//
        const Timer0_A3.OUT_OFF;
        const Timer0_A3.OUT;
    values of type Timer0_A3.SCCI_t//
        const Timer0_A3.SCCI_OFF// Latched capture signal (read);
        const Timer0_A3.SCCI// Latched capture signal (read);
    values of type Timer0_A3.SCS_t//
        const Timer0_A3.SCS_OFF// Asynchronous Capture;
        const Timer0_A3.SCS// Sychronous Capture;
    values of type Timer0_A3.TACLR_t//
        const Timer0_A3.TACLR_OFF;
        const Timer0_A3.TACLR;
    values of type Timer0_A3.TAIE_t//
        const Timer0_A3.TAIE_OFF;
        const Timer0_A3.TAIE;
    values of type Timer0_A3.TAIFG_t//
        const Timer0_A3.TAIFG_OFF;
        const Timer0_A3.TAIFG;
    values of type Timer0_A3.TASSEL_t//
        const Timer0_A3.TASSEL_0// TACLK;
        const Timer0_A3.TASSEL_1// ACLK;
        const Timer0_A3.TASSEL_2// SMCLK;
        const Timer0_A3.TASSEL_3// INCLK;
    var obj = new Timer0_A3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer0_A3.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer0_A3.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer0_A3.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer0_A3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer0_A3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer0_A3.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TA0CCR0// TA0CCR0, Timer_A Capture/Compare Register 0 = Bits16 0;
        params.TA0CCR1// TA0CCR1, Timer_A Capture/Compare Register 1 = Bits16 0;
        params.TA0CCR2// TA0CCR2, Timer_A Capture/Compare Register 2 = Bits16 0;
        params.TA0CCTL0// TA0CCTL0, Capture/Compare Control Register 0 = Timer0_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA0CCTL1// TA0CCTL1, Capture/Compare Control Register 1 = Timer0_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA0CCTL2// TA0CCTL2, Capture/Compare Control Register 2 = Timer0_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA0CTL// TA0CTL, Timer_A3 Control Register = Timer0_A3.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer0_A3.ForceSetDefaultRegister_t[] [
            {
                register: "TA0CTL",
                regForceSet: false
            },
            {
                register: "TA0CCTL0",
                regForceSet: false
            },
            {
                register: "TA0CCTL1",
                regForceSet: false
            },
            {
                register: "TA0CCTL2",
                regForceSet: false
            },
            {
                register: "TA0CCR0",
                regForceSet: false
            },
            {
                register: "TA0CCR1",
                regForceSet: false
            },
            {
                register: "TA0CCR2",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer0_A3.regIntVect_t[4] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer0_A3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer0_A3.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.CAP_t
    const Timer0_A3.CAP_OFF;
    // Compare mode
    const Timer0_A3.CAP;
    // Capture mode
enum Timer0_A3.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.CCIE_t
    const Timer0_A3.CCIE_OFF;
    const Timer0_A3.CCIE;
enum Timer0_A3.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.CCIFG_t
    const Timer0_A3.CCIFG_OFF;
    const Timer0_A3.CCIFG;
enum Timer0_A3.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.CCIS_t
    const Timer0_A3.CCIS_0;
    // CCIxA
    const Timer0_A3.CCIS_1;
    // CCIxB
    const Timer0_A3.CCIS_2;
    // GND
    const Timer0_A3.CCIS_3;
    // Vcc
enum Timer0_A3.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.CCI_t
    const Timer0_A3.CCI_OFF;
    const Timer0_A3.CCI;
enum Timer0_A3.CM_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.CM_t
    const Timer0_A3.CM_0;
    // No Capture
    const Timer0_A3.CM_1;
    // Rising Edge
    const Timer0_A3.CM_2;
    // Falling Edge
    const Timer0_A3.CM_3;
    // Both Edges
enum Timer0_A3.COV_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.COV_t
    const Timer0_A3.COV_OFF;
    const Timer0_A3.COV;
enum Timer0_A3.ID_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.ID_t
    const Timer0_A3.ID_0;
    // Divider - /1
    const Timer0_A3.ID_1;
    // Divider - /2
    const Timer0_A3.ID_2;
    // Divider - /4
    const Timer0_A3.ID_3;
    // Divider - /8
enum Timer0_A3.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer0_A3.IVValues
    const Timer0_A3.TAIV_NONE;
    // No Interrupt pending
    const Timer0_A3.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer0_A3.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer0_A3.TAIV_6;
    // Reserved
    const Timer0_A3.TAIV_8;
    // Reserved
    const Timer0_A3.TAIV_TAIFG;
    // TAIFG
enum Timer0_A3.MC_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.MC_t
    const Timer0_A3.MC_0;
    // Stop Mode
    const Timer0_A3.MC_1;
    // Up Mode
    const Timer0_A3.MC_2;
    // Continuous Mode
    const Timer0_A3.MC_3;
    // Up/Down Mode
enum Timer0_A3.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.OUTMOD_t
    const Timer0_A3.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer0_A3.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer0_A3.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer0_A3.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer0_A3.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer0_A3.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer0_A3.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer0_A3.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer0_A3.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.OUT_t
    const Timer0_A3.OUT_OFF;
    const Timer0_A3.OUT;
enum Timer0_A3.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.SCCI_t
    const Timer0_A3.SCCI_OFF;
    // Latched capture signal (read)
    const Timer0_A3.SCCI;
    // Latched capture signal (read)
enum Timer0_A3.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.SCS_t
    const Timer0_A3.SCS_OFF;
    // Asynchronous Capture
    const Timer0_A3.SCS;
    // Sychronous Capture
enum Timer0_A3.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.TACLR_t
    const Timer0_A3.TACLR_OFF;
    const Timer0_A3.TACLR;
enum Timer0_A3.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.TAIE_t
    const Timer0_A3.TAIE_OFF;
    const Timer0_A3.TAIE;
enum Timer0_A3.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.TAIFG_t
    const Timer0_A3.TAIFG_OFF;
    const Timer0_A3.TAIFG;
enum Timer0_A3.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer0_A3.TASSEL_t
    const Timer0_A3.TASSEL_0;
    // TACLK
    const Timer0_A3.TASSEL_1;
    // ACLK
    const Timer0_A3.TASSEL_2;
    // SMCLK
    const Timer0_A3.TASSEL_3;
    // INCLK
struct Timer0_A3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer0_A3.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer0_A3.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer0_A3.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer0_A3.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer0_A3.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer0_A3.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer0_A3.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer0_A3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer0_A3.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer0_A3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer0_A3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TA0CCR0 = Bits16 0;
    // TA0CCR0, Timer_A Capture/Compare Register 0
    params.TA0CCR1 = Bits16 0;
    // TA0CCR1, Timer_A Capture/Compare Register 1
    params.TA0CCR2 = Bits16 0;
    // TA0CCR2, Timer_A Capture/Compare Register 2
    params.TA0CCTL0 = Timer0_A3.TACCTLx_t {
    // TA0CCTL0, Capture/Compare Control Register 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA0CCTL1 = Timer0_A3.TACCTLx_t {
    // TA0CCTL1, Capture/Compare Control Register 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA0CCTL2 = Timer0_A3.TACCTLx_t {
    // TA0CCTL2, Capture/Compare Control Register 2
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA0CTL = Timer0_A3.TACTL_t {
    // TA0CTL, Timer_A3 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer0_A3.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TA0CTL",
            regForceSet: false
        },
        {
            register: "TA0CCTL0",
            regForceSet: false
        },
        {
            register: "TA0CCTL1",
            regForceSet: false
        },
        {
            register: "TA0CCTL2",
            regForceSet: false
        },
        {
            register: "TA0CCR0",
            regForceSet: false
        },
        {
            register: "TA0CCR1",
            regForceSet: false
        },
        {
            register: "TA0CCR2",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer0_A3.regIntVect_t[4] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer0_A3.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.INCLK = Float 0;
config Timer0_A3.TA0CCR0 // instance
index URL

TA0CCR0, Timer_A Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.TA0CCR0 = Bits16 0;
config Timer0_A3.TA0CCR1 // instance
index URL

TA0CCR1, Timer_A Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.TA0CCR1 = Bits16 0;
config Timer0_A3.TA0CCR2 // instance
index URL

TA0CCR2, Timer_A Capture/Compare Register 2

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.TA0CCR2 = Bits16 0;
config Timer0_A3.TA0CCTL0 // instance
index URL

TA0CCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.TA0CCTL0 = Timer0_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer0_A3.TA0CCTL1 // instance
index URL

TA0CCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.TA0CCTL1 = Timer0_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer0_A3.TA0CCTL2 // instance
index URL

TA0CCTL2, Capture/Compare Control Register 2

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.TA0CCTL2 = Timer0_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer0_A3.TA0CTL // instance
index URL

TA0CTL, Timer_A3 Control Register

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.TA0CTL = Timer0_A3.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer0_A3.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.TACLK = Float 0;
config Timer0_A3.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer0_A3.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
const params.forceSetDefaultRegister = Timer0_A3.ForceSetDefaultRegister_t[] [
    {
        register: "TA0CTL",
        regForceSet: false
    },
    {
        register: "TA0CCTL0",
        regForceSet: false
    },
    {
        register: "TA0CCTL1",
        regForceSet: false
    },
    {
        register: "TA0CCTL2",
        regForceSet: false
    },
    {
        register: "TA0CCR0",
        regForceSet: false
    },
    {
        register: "TA0CCR1",
        regForceSet: false
    },
    {
        register: "TA0CCR2",
        regForceSet: false
    }
];
config Timer0_A3.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.intNum = UInt undefined;
config Timer0_A3.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.interruptSource = Timer0_A3.regIntVect_t[4] undefined;
config Timer0_A3.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.isInternal = Bool false;
config Timer0_A3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer0_A3.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.numberOfTimers = UChar undefined;
config Timer0_A3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer0_A3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer0_A3.create(IClock.Instance clock, params);
// Create an instance-object
Timer0_A3.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer0_A3.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:45 GMT


module ti.catalog.msp430.peripherals.timer.Timer0_A3

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer0_A3 ========
    14     *  MSP430 Timer0_A3 timer
    15     */
    16    metaonly module Timer0_A3 inherits ITimer_A {
    17
    18    instance:
    19        /*! TA0CTL, Timer_A3 Control Register */
    20        config TACTL_t TA0CTL = {
    21            TASSEL : TASSEL_0,
    22            ID : ID_0,
    23            MC : MC_0,
    24            TACLR : TACLR_OFF,
    25            TAIE : TAIE_OFF,
    26            TAIFG : TAIFG_OFF
    27        };
    28
    29        /*! TA0CCTL0, Capture/Compare Control Register 0 */
    30        config TACCTLx_t TA0CCTL0 = {
    31            CM : CM_0,
    32            CCIS : CCIS_0,
    33            SCS : SCS_OFF,
    34            SCCI : SCCI_OFF,
    35            CAP : CAP_OFF,
    36            OUTMOD : OUTMOD_0,
    37            CCIE : CCIE_OFF,
    38            CCI : CCI_OFF,
    39            OUT : OUT_OFF,
    40            COV : COV_OFF,
    41            CCIFG : CCIFG_OFF
    42        };
    43
    44        /*! TA0CCTL1, Capture/Compare Control Register 1 */
    45        config TACCTLx_t TA0CCTL1 = {
    46            CM : CM_0,
    47            CCIS : CCIS_0,
    48            SCS : SCS_OFF,
    49            SCCI : SCCI_OFF,
    50            CAP : CAP_OFF,
    51            OUTMOD : OUTMOD_0,
    52            CCIE : CCIE_OFF,
    53            CCI : CCI_OFF,
    54            OUT : OUT_OFF,
    55            COV : COV_OFF,
    56            CCIFG : CCIFG_OFF
    57        };
    58
    59        /*! TA0CCTL2, Capture/Compare Control Register 2 */
    60        config TACCTLx_t TA0CCTL2 = {
    61            CM : CM_0,
    62            CCIS : CCIS_0,
    63            SCS : SCS_OFF,
    64            SCCI : SCCI_OFF,
    65            CAP : CAP_OFF,
    66            OUTMOD : OUTMOD_0,
    67            CCIE : CCIE_OFF,
    68            CCI : CCI_OFF,
    69            OUT : OUT_OFF,
    70            COV : COV_OFF,
    71            CCIFG : CCIFG_OFF
    72        };
    73
    74        /*! TA0CCR0, Timer_A Capture/Compare Register 0 */
    75        config Bits16 TA0CCR0 = 0;
    76        /*! TA0CCR1, Timer_A Capture/Compare Register 1 */
    77        config Bits16 TA0CCR1 = 0;
    78        /*! TA0CCR2, Timer_A Capture/Compare Register 2 */
    79        config Bits16 TA0CCR2 = 0;
    80
    81        /*! Timer interrupt enables */
    82        config regIntVect_t interruptSource[4];
    83
    84        /*! Determine if each Register needs to be forced set or not */
    85        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    86        [
    87            { register : "TA0CTL"   , regForceSet : false },
    88            { register : "TA0CCTL0" , regForceSet : false },
    89            { register : "TA0CCTL1" , regForceSet : false },
    90            { register : "TA0CCTL2" , regForceSet : false },
    91            { register : "TA0CCR0"  , regForceSet : false },
    92            { register : "TA0CCR1"  , regForceSet : false },
    93            { register : "TA0CCR2"  , regForceSet : false }
    94        ];
    95    }


module ti.catalog.msp430.peripherals.timer.Timer0_A5

metaonly module ti.catalog.msp430.peripherals.timer.Timer0_A5
index URL

MSP430 Timer0_A5 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer0_A5.xdc
var Timer0_A5 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer0_A5');
module-wide constants & types
    values of type Timer0_A5.CAP_t//
        const Timer0_A5.CAP_OFF// Compare mode;
        const Timer0_A5.CAP// Capture mode;
    values of type Timer0_A5.CCIE_t//
        const Timer0_A5.CCIE_OFF;
        const Timer0_A5.CCIE;
    values of type Timer0_A5.CCIFG_t//
        const Timer0_A5.CCIFG_OFF;
        const Timer0_A5.CCIFG;
    values of type Timer0_A5.CCIS_t//
        const Timer0_A5.CCIS_0// CCIxA;
        const Timer0_A5.CCIS_1// CCIxB;
        const Timer0_A5.CCIS_2// GND;
        const Timer0_A5.CCIS_3// Vcc;
    values of type Timer0_A5.CCI_t//
        const Timer0_A5.CCI_OFF;
        const Timer0_A5.CCI;
    values of type Timer0_A5.CM_t//
        const Timer0_A5.CM_0// No Capture;
        const Timer0_A5.CM_1// Rising Edge;
        const Timer0_A5.CM_2// Falling Edge;
        const Timer0_A5.CM_3// Both Edges;
    values of type Timer0_A5.COV_t//
        const Timer0_A5.COV_OFF;
        const Timer0_A5.COV;
    values of type Timer0_A5.ID_t//
        const Timer0_A5.ID_0// Divider - /1;
        const Timer0_A5.ID_1// Divider - /2;
        const Timer0_A5.ID_2// Divider - /4;
        const Timer0_A5.ID_3// Divider - /8;
    values of type Timer0_A5.IVValues// TA3IV Definitions
        const Timer0_A5.TAIV_NONE// No Interrupt pending;
        const Timer0_A5.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer0_A5.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer0_A5.TAIV_6// Reserved;
        const Timer0_A5.TAIV_8// Reserved;
        const Timer0_A5.TAIV_TAIFG// TAIFG;
    values of type Timer0_A5.MC_t//
        const Timer0_A5.MC_0// Stop Mode;
        const Timer0_A5.MC_1// Up Mode;
        const Timer0_A5.MC_2// Continuous Mode;
        const Timer0_A5.MC_3// Up/Down Mode;
    values of type Timer0_A5.OUTMOD_t//
        const Timer0_A5.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer0_A5.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer0_A5.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer0_A5.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer0_A5.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer0_A5.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer0_A5.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer0_A5.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer0_A5.OUT_t//
        const Timer0_A5.OUT_OFF;
        const Timer0_A5.OUT;
    values of type Timer0_A5.SCCI_t//
        const Timer0_A5.SCCI_OFF// Latched capture signal (read);
        const Timer0_A5.SCCI// Latched capture signal (read);
    values of type Timer0_A5.SCS_t//
        const Timer0_A5.SCS_OFF// Asynchronous Capture;
        const Timer0_A5.SCS// Sychronous Capture;
    values of type Timer0_A5.TACLR_t//
        const Timer0_A5.TACLR_OFF;
        const Timer0_A5.TACLR;
    values of type Timer0_A5.TAIE_t//
        const Timer0_A5.TAIE_OFF;
        const Timer0_A5.TAIE;
    values of type Timer0_A5.TAIFG_t//
        const Timer0_A5.TAIFG_OFF;
        const Timer0_A5.TAIFG;
    values of type Timer0_A5.TASSEL_t//
        const Timer0_A5.TASSEL_0// TACLK;
        const Timer0_A5.TASSEL_1// ACLK;
        const Timer0_A5.TASSEL_2// SMCLK;
        const Timer0_A5.TASSEL_3// INCLK;
    var obj = new Timer0_A5.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer0_A5.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer0_A5.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer0_A5.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer0_A5.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer0_A5.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer0_A5.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TA0CCR0// Capture/Compare 0 = Bits16 0;
        params.TA0CCR1// Capture/Compare 1 = Bits16 0;
        params.TA0CCR2// Capture/Compare 2 = Bits16 0;
        params.TA0CCR3// Capture/Compare 3 = Bits16 0;
        params.TA0CCR4// Capture/Compare 4 = Bits16 0;
        params.TA0CCTL0// Capture/Compare Control 0 = Timer0_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA0CCTL1// Capture/Compare Control 1 = Timer0_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA0CCTL2// Capture/Compare Control 2 = Timer0_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA0CCTL3// Capture/Compare Control 3 = Timer0_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA0CCTL4// Capture/Compare Control 4 = Timer0_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA0CTL// Timer A5 Control Register = Timer0_A5.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer0_A5.ForceSetDefaultRegister_t[] [
            {
                register: "TA0CTL",
                regForceSet: false
            },
            {
                register: "TA0CCTL0",
                regForceSet: false
            },
            {
                register: "TA0CCTL1",
                regForceSet: false
            },
            {
                register: "TA0CCTL2",
                regForceSet: false
            },
            {
                register: "TA0CCTL3",
                regForceSet: false
            },
            {
                register: "TA0CCTL4",
                regForceSet: false
            },
            {
                register: "TA0CCR0",
                regForceSet: false
            },
            {
                register: "TA0CCR1",
                regForceSet: false
            },
            {
                register: "TA0CCR2",
                regForceSet: false
            },
            {
                register: "TA0CCR3",
                regForceSet: false
            },
            {
                register: "TA0CCR4",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer0_A5.regIntVect_t[6] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String "TimerA5";
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer0_A5.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer0_A5.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.CAP_t
    const Timer0_A5.CAP_OFF;
    // Compare mode
    const Timer0_A5.CAP;
    // Capture mode
enum Timer0_A5.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.CCIE_t
    const Timer0_A5.CCIE_OFF;
    const Timer0_A5.CCIE;
enum Timer0_A5.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.CCIFG_t
    const Timer0_A5.CCIFG_OFF;
    const Timer0_A5.CCIFG;
enum Timer0_A5.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.CCIS_t
    const Timer0_A5.CCIS_0;
    // CCIxA
    const Timer0_A5.CCIS_1;
    // CCIxB
    const Timer0_A5.CCIS_2;
    // GND
    const Timer0_A5.CCIS_3;
    // Vcc
enum Timer0_A5.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.CCI_t
    const Timer0_A5.CCI_OFF;
    const Timer0_A5.CCI;
enum Timer0_A5.CM_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.CM_t
    const Timer0_A5.CM_0;
    // No Capture
    const Timer0_A5.CM_1;
    // Rising Edge
    const Timer0_A5.CM_2;
    // Falling Edge
    const Timer0_A5.CM_3;
    // Both Edges
enum Timer0_A5.COV_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.COV_t
    const Timer0_A5.COV_OFF;
    const Timer0_A5.COV;
enum Timer0_A5.ID_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.ID_t
    const Timer0_A5.ID_0;
    // Divider - /1
    const Timer0_A5.ID_1;
    // Divider - /2
    const Timer0_A5.ID_2;
    // Divider - /4
    const Timer0_A5.ID_3;
    // Divider - /8
enum Timer0_A5.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer0_A5.IVValues
    const Timer0_A5.TAIV_NONE;
    // No Interrupt pending
    const Timer0_A5.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer0_A5.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer0_A5.TAIV_6;
    // Reserved
    const Timer0_A5.TAIV_8;
    // Reserved
    const Timer0_A5.TAIV_TAIFG;
    // TAIFG
enum Timer0_A5.MC_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.MC_t
    const Timer0_A5.MC_0;
    // Stop Mode
    const Timer0_A5.MC_1;
    // Up Mode
    const Timer0_A5.MC_2;
    // Continuous Mode
    const Timer0_A5.MC_3;
    // Up/Down Mode
enum Timer0_A5.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.OUTMOD_t
    const Timer0_A5.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer0_A5.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer0_A5.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer0_A5.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer0_A5.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer0_A5.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer0_A5.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer0_A5.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer0_A5.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.OUT_t
    const Timer0_A5.OUT_OFF;
    const Timer0_A5.OUT;
enum Timer0_A5.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.SCCI_t
    const Timer0_A5.SCCI_OFF;
    // Latched capture signal (read)
    const Timer0_A5.SCCI;
    // Latched capture signal (read)
enum Timer0_A5.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.SCS_t
    const Timer0_A5.SCS_OFF;
    // Asynchronous Capture
    const Timer0_A5.SCS;
    // Sychronous Capture
enum Timer0_A5.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.TACLR_t
    const Timer0_A5.TACLR_OFF;
    const Timer0_A5.TACLR;
enum Timer0_A5.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.TAIE_t
    const Timer0_A5.TAIE_OFF;
    const Timer0_A5.TAIE;
enum Timer0_A5.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.TAIFG_t
    const Timer0_A5.TAIFG_OFF;
    const Timer0_A5.TAIFG;
enum Timer0_A5.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer0_A5.TASSEL_t
    const Timer0_A5.TASSEL_0;
    // TACLK
    const Timer0_A5.TASSEL_1;
    // ACLK
    const Timer0_A5.TASSEL_2;
    // SMCLK
    const Timer0_A5.TASSEL_3;
    // INCLK
struct Timer0_A5.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer0_A5.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer0_A5.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer0_A5.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer0_A5.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer0_A5.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer0_A5.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer0_A5.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer0_A5.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer0_A5.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer0_A5.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer0_A5.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TA0CCR0 = Bits16 0;
    // Capture/Compare 0
    params.TA0CCR1 = Bits16 0;
    // Capture/Compare 1
    params.TA0CCR2 = Bits16 0;
    // Capture/Compare 2
    params.TA0CCR3 = Bits16 0;
    // Capture/Compare 3
    params.TA0CCR4 = Bits16 0;
    // Capture/Compare 4
    params.TA0CCTL0 = Timer0_A5.TACCTLx_t {
    // Capture/Compare Control 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA0CCTL1 = Timer0_A5.TACCTLx_t {
    // Capture/Compare Control 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA0CCTL2 = Timer0_A5.TACCTLx_t {
    // Capture/Compare Control 2
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA0CCTL3 = Timer0_A5.TACCTLx_t {
    // Capture/Compare Control 3
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA0CCTL4 = Timer0_A5.TACCTLx_t {
    // Capture/Compare Control 4
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA0CTL = Timer0_A5.TACTL_t {
    // Timer A5 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer0_A5.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TA0CTL",
            regForceSet: false
        },
        {
            register: "TA0CCTL0",
            regForceSet: false
        },
        {
            register: "TA0CCTL1",
            regForceSet: false
        },
        {
            register: "TA0CCTL2",
            regForceSet: false
        },
        {
            register: "TA0CCTL3",
            regForceSet: false
        },
        {
            register: "TA0CCTL4",
            regForceSet: false
        },
        {
            register: "TA0CCR0",
            regForceSet: false
        },
        {
            register: "TA0CCR1",
            regForceSet: false
        },
        {
            register: "TA0CCR2",
            regForceSet: false
        },
        {
            register: "TA0CCR3",
            regForceSet: false
        },
        {
            register: "TA0CCR4",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer0_A5.regIntVect_t[6] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String "TimerA5";
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer0_A5.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.INCLK = Float 0;
config Timer0_A5.TA0CCR0 // instance
index URL

Capture/Compare 0

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCR0 = Bits16 0;
config Timer0_A5.TA0CCR1 // instance
index URL

Capture/Compare 1

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCR1 = Bits16 0;
config Timer0_A5.TA0CCR2 // instance
index URL

Capture/Compare 2

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCR2 = Bits16 0;
config Timer0_A5.TA0CCR3 // instance
index URL

Capture/Compare 3

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCR3 = Bits16 0;
config Timer0_A5.TA0CCR4 // instance
index URL

Capture/Compare 4

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCR4 = Bits16 0;
config Timer0_A5.TA0CCTL0 // instance
index URL

Capture/Compare Control 0

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCTL0 = Timer0_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer0_A5.TA0CCTL1 // instance
index URL

Capture/Compare Control 1

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCTL1 = Timer0_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer0_A5.TA0CCTL2 // instance
index URL

Capture/Compare Control 2

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCTL2 = Timer0_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer0_A5.TA0CCTL3 // instance
index URL

Capture/Compare Control 3

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCTL3 = Timer0_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer0_A5.TA0CCTL4 // instance
index URL

Capture/Compare Control 4

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CCTL4 = Timer0_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer0_A5.TA0CTL // instance
index URL

Timer A5 Control Register

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TA0CTL = Timer0_A5.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer0_A5.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.TACLK = Float 0;
config Timer0_A5.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer0_A5.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
const params.forceSetDefaultRegister = Timer0_A5.ForceSetDefaultRegister_t[] [
    {
        register: "TA0CTL",
        regForceSet: false
    },
    {
        register: "TA0CCTL0",
        regForceSet: false
    },
    {
        register: "TA0CCTL1",
        regForceSet: false
    },
    {
        register: "TA0CCTL2",
        regForceSet: false
    },
    {
        register: "TA0CCTL3",
        regForceSet: false
    },
    {
        register: "TA0CCTL4",
        regForceSet: false
    },
    {
        register: "TA0CCR0",
        regForceSet: false
    },
    {
        register: "TA0CCR1",
        regForceSet: false
    },
    {
        register: "TA0CCR2",
        regForceSet: false
    },
    {
        register: "TA0CCR3",
        regForceSet: false
    },
    {
        register: "TA0CCR4",
        regForceSet: false
    }
];
config Timer0_A5.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.intNum = UInt undefined;
config Timer0_A5.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.interruptSource = Timer0_A5.regIntVect_t[6] undefined;
config Timer0_A5.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.isInternal = Bool false;
config Timer0_A5.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.name = String "TimerA5";
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer0_A5.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.numberOfTimers = UChar undefined;
config Timer0_A5.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer0_A5.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer0_A5.create(IClock.Instance clock, params);
// Create an instance-object
Timer0_A5.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer0_A5.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:45 GMT


module ti.catalog.msp430.peripherals.timer.Timer0_A5

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer0_A5 ========
    14     *  MSP430 Timer0_A5 timer
    15     */
    16    metaonly module Timer0_A5 inherits ITimer_A {
    17
    18    instance:
    19
    20        override config string name = "TimerA5";
    21
    22        /*! Timer A5 Control Register */
    23        config TACTL_t TA0CTL = {
    24            TASSEL : TASSEL_0,
    25            ID : ID_0,
    26            MC : MC_0,
    27            TACLR : TACLR_OFF,
    28            TAIE : TAIE_OFF,
    29            TAIFG : TAIFG_OFF
    30        };
    31
    32        /*! Capture/Compare Control 0 */
    33        config TACCTLx_t TA0CCTL0 = {
    34            CM : CM_0,
    35            CCIS : CCIS_0,
    36            SCS : SCS_OFF,
    37            SCCI : SCCI_OFF,
    38            CAP : CAP_OFF,
    39            OUTMOD : OUTMOD_0,
    40            CCIE : CCIE_OFF,
    41            CCI : CCI_OFF,
    42            OUT : OUT_OFF,
    43            COV : COV_OFF,
    44            CCIFG : CCIFG_OFF
    45        };
    46
    47        /*! Capture/Compare Control 1 */
    48        config TACCTLx_t TA0CCTL1 = {
    49            CM : CM_0,
    50            CCIS : CCIS_0,
    51            SCS : SCS_OFF,
    52            SCCI : SCCI_OFF,
    53            CAP : CAP_OFF,
    54            OUTMOD : OUTMOD_0,
    55            CCIE : CCIE_OFF,
    56            CCI : CCI_OFF,
    57            OUT : OUT_OFF,
    58            COV : COV_OFF,
    59            CCIFG : CCIFG_OFF
    60        };
    61
    62        /*! Capture/Compare Control 2 */
    63        config TACCTLx_t TA0CCTL2 = {
    64            CM : CM_0,
    65            CCIS : CCIS_0,
    66            SCS : SCS_OFF,
    67            SCCI : SCCI_OFF,
    68            CAP : CAP_OFF,
    69            OUTMOD : OUTMOD_0,
    70            CCIE : CCIE_OFF,
    71            CCI : CCI_OFF,
    72            OUT : OUT_OFF,
    73            COV : COV_OFF,
    74            CCIFG : CCIFG_OFF
    75        };
    76
    77        /*! Capture/Compare Control 3 */
    78        config TACCTLx_t TA0CCTL3 = {
    79            CM : CM_0,
    80            CCIS : CCIS_0,
    81            SCS : SCS_OFF,
    82            SCCI : SCCI_OFF,
    83            CAP : CAP_OFF,
    84            OUTMOD : OUTMOD_0,
    85            CCIE : CCIE_OFF,
    86            CCI : CCI_OFF,
    87            OUT : OUT_OFF,
    88            COV : COV_OFF,
    89            CCIFG : CCIFG_OFF
    90        };
    91
    92        /*! Capture/Compare Control 4 */
    93        config TACCTLx_t TA0CCTL4 = {
    94            CM : CM_0,
    95            CCIS : CCIS_0,
    96            SCS : SCS_OFF,
    97            SCCI : SCCI_OFF,
    98            CAP : CAP_OFF,
    99            OUTMOD : OUTMOD_0,
   100            CCIE : CCIE_OFF,
   101            CCI : CCI_OFF,
   102            OUT : OUT_OFF,
   103            COV : COV_OFF,
   104            CCIFG : CCIFG_OFF
   105        };
   106
   107        config Bits16 TA0CCR0 = 0;                         /*! Capture/Compare 0 */
   108        config Bits16 TA0CCR1 = 0;                         /*! Capture/Compare 1 */
   109        config Bits16 TA0CCR2 = 0;                         /*! Capture/Compare 2 */
   110        config Bits16 TA0CCR3 = 0;                         /*! Capture/Compare 3 */
   111        config Bits16 TA0CCR4 = 0;                         /*! Capture/Compare 4 */
   112
   113        /*! Timer interrupt enables */
   114        config regIntVect_t interruptSource[6];
   115
   116        /*! Determine if each Register needs to be forced set or not */
   117        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   118        [
   119            { register : "TA0CTL"   , regForceSet : false },
   120            { register : "TA0CCTL0" , regForceSet : false },
   121            { register : "TA0CCTL1" , regForceSet : false },
   122            { register : "TA0CCTL2" , regForceSet : false },
   123            { register : "TA0CCTL3" , regForceSet : false },
   124            { register : "TA0CCTL4" , regForceSet : false },
   125            { register : "TA0CCR0"  , regForceSet : false },
   126            { register : "TA0CCR1"  , regForceSet : false },
   127            { register : "TA0CCR2"  , regForceSet : false },
   128            { register : "TA0CCR3"  , regForceSet : false },
   129            { register : "TA0CCR4"  , regForceSet : false }
   130        ];
   131    }


module ti.catalog.msp430.peripherals.timer.Timer0_B3

metaonly module ti.catalog.msp430.peripherals.timer.Timer0_B3
index URL

MSP430 Timer0_B3 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer0_B3.xdc
var Timer0_B3 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer0_B3');
module-wide constants & types
    values of type Timer0_B3.CAP_t//
        const Timer0_B3.CAP_OFF;
        const Timer0_B3.CAP;
    values of type Timer0_B3.CCIE_t//
        const Timer0_B3.CCIE_OFF;
        const Timer0_B3.CCIE;
    values of type Timer0_B3.CCIFG_t//
        const Timer0_B3.CCIFG_OFF;
        const Timer0_B3.CCIFG;
    values of type Timer0_B3.CCIS_t//
        const Timer0_B3.CCIS_0// CCIxA;
        const Timer0_B3.CCIS_1// CCIxB;
        const Timer0_B3.CCIS_2// GND;
        const Timer0_B3.CCIS_3// Vcc;
    values of type Timer0_B3.CCI_t//
        const Timer0_B3.CCI_OFF;
        const Timer0_B3.CCI;
    values of type Timer0_B3.CLLD_t//
        const Timer0_B3.CLLD_0;
        const Timer0_B3.CLLD_1;
        const Timer0_B3.CLLD_2;
        const Timer0_B3.CLLD_3;
    values of type Timer0_B3.CM_t//
        const Timer0_B3.CM_0// No Capture;
        const Timer0_B3.CM_1// Rising Edge;
        const Timer0_B3.CM_2// Falling Edge;
        const Timer0_B3.CM_3// Both Edges;
    values of type Timer0_B3.CNTL_t//
        const Timer0_B3.CNTL_0// 16-bit, TBR(max) = 0FFFFh;
        const Timer0_B3.CNTL_1// 12-bit, TBR(max) = 0FFFh;
        const Timer0_B3.CNTL_2// 10-bit, TBR(max) = 03FFh;
        const Timer0_B3.CNTL_3// 8-bit, TBR(max) = 0FFh;
    values of type Timer0_B3.COV_t//
        const Timer0_B3.COV_OFF;
        const Timer0_B3.COV;
    values of type Timer0_B3.ID_t//
        const Timer0_B3.ID_0// Divider - /1;
        const Timer0_B3.ID_1// Divider - /2;
        const Timer0_B3.ID_2// Divider - /4;
        const Timer0_B3.ID_3// Divider - /8;
    values of type Timer0_B3.MC_t//
        const Timer0_B3.MC_0// Stop Mode;
        const Timer0_B3.MC_1// Up Mode;
        const Timer0_B3.MC_2// Continuous Mode;
        const Timer0_B3.MC_3// Up/Down Mode;
    values of type Timer0_B3.OUTMOD_t//
        const Timer0_B3.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer0_B3.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer0_B3.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer0_B3.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer0_B3.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer0_B3.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer0_B3.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer0_B3.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer0_B3.OUT_t//
        const Timer0_B3.OUT_OFF;
        const Timer0_B3.OUT;
    values of type Timer0_B3.SCCI_t//
        const Timer0_B3.SCCI_OFF;
        const Timer0_B3.SCCI;
    values of type Timer0_B3.SCS_t//
        const Timer0_B3.SCS_OFF;
        const Timer0_B3.SCS;
    values of type Timer0_B3.TBCLGRP_t//
        const Timer0_B3.TBCLGRP_0;
        const Timer0_B3.TBCLGRP_1;
        const Timer0_B3.TBCLGRP_2;
        const Timer0_B3.TBCLGRP_3;
    values of type Timer0_B3.TBCLR_t//
        const Timer0_B3.TBCLR_OFF;
        const Timer0_B3.TBCLR;
    values of type Timer0_B3.TBIE_t//
        const Timer0_B3.TBIE_OFF;
        const Timer0_B3.TBIE;
    values of type Timer0_B3.TBIFG_t//
        const Timer0_B3.TBIFG_OFF;
        const Timer0_B3.TBIFG;
    values of type Timer0_B3.TBSSEL_t//
        const Timer0_B3.TBSSEL_0// TBCLK;
        const Timer0_B3.TBSSEL_1// ACLK;
        const Timer0_B3.TBSSEL_2// SMCLK;
        const Timer0_B3.TBSSEL_3// INCLK;
    var obj = new Timer0_B3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer0_B3.TBCCTLx_t// ;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_B.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_B.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_B.SCS_t ...
        obj.CLLD// Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx = ITimer_B.CLLD_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_B.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_B.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_B.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_B.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_B.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_B.CCIFG_t ...
    var obj = new Timer0_B3.TBCTL_t// Timer_B Control Register;
        obj.TBCLGRP// TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update) = ITimer_B.TBCLGRP_t ...
        obj.CNTL// Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh = ITimer_B.CNTL_t ...
        obj.TBSSEL// Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK = ITimer_B.TBSSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_B.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h = ITimer_B.MC_t ...
        obj.TBCLR// Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero = ITimer_B.TBCLR_t ...
        obj.TBIE// Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.TBIE_t ...
        obj.TBIFG// Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending = ITimer_B.TBIFG_t ...
    var obj = new Timer0_B3.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer0_B3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer0_B3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer0_B3.Params// Instance config-params object;
        params.INCLK// Timer_B INCLK = Float 0;
        params.TBCLK// Timer_B TBCLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer0_B3.regIntVect_t[8] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer0_B3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer0_B3.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.CAP_t
    const Timer0_B3.CAP_OFF;
    const Timer0_B3.CAP;
enum Timer0_B3.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.CCIE_t
    const Timer0_B3.CCIE_OFF;
    const Timer0_B3.CCIE;
enum Timer0_B3.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.CCIFG_t
    const Timer0_B3.CCIFG_OFF;
    const Timer0_B3.CCIFG;
enum Timer0_B3.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.CCIS_t
    const Timer0_B3.CCIS_0;
    // CCIxA
    const Timer0_B3.CCIS_1;
    // CCIxB
    const Timer0_B3.CCIS_2;
    // GND
    const Timer0_B3.CCIS_3;
    // Vcc
enum Timer0_B3.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.CCI_t
    const Timer0_B3.CCI_OFF;
    const Timer0_B3.CCI;
enum Timer0_B3.CLLD_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.CLLD_t
    const Timer0_B3.CLLD_0;
    const Timer0_B3.CLLD_1;
    const Timer0_B3.CLLD_2;
    const Timer0_B3.CLLD_3;
enum Timer0_B3.CM_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.CM_t
    const Timer0_B3.CM_0;
    // No Capture
    const Timer0_B3.CM_1;
    // Rising Edge
    const Timer0_B3.CM_2;
    // Falling Edge
    const Timer0_B3.CM_3;
    // Both Edges
enum Timer0_B3.CNTL_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.CNTL_t
    const Timer0_B3.CNTL_0;
    // 16-bit, TBR(max) = 0FFFFh
    const Timer0_B3.CNTL_1;
    // 12-bit, TBR(max) = 0FFFh
    const Timer0_B3.CNTL_2;
    // 10-bit, TBR(max) = 03FFh
    const Timer0_B3.CNTL_3;
    // 8-bit, TBR(max) = 0FFh
enum Timer0_B3.COV_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.COV_t
    const Timer0_B3.COV_OFF;
    const Timer0_B3.COV;
enum Timer0_B3.ID_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.ID_t
    const Timer0_B3.ID_0;
    // Divider - /1
    const Timer0_B3.ID_1;
    // Divider - /2
    const Timer0_B3.ID_2;
    // Divider - /4
    const Timer0_B3.ID_3;
    // Divider - /8
enum Timer0_B3.MC_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.MC_t
    const Timer0_B3.MC_0;
    // Stop Mode
    const Timer0_B3.MC_1;
    // Up Mode
    const Timer0_B3.MC_2;
    // Continuous Mode
    const Timer0_B3.MC_3;
    // Up/Down Mode
enum Timer0_B3.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.OUTMOD_t
    const Timer0_B3.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer0_B3.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer0_B3.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer0_B3.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer0_B3.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer0_B3.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer0_B3.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer0_B3.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer0_B3.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.OUT_t
    const Timer0_B3.OUT_OFF;
    const Timer0_B3.OUT;
enum Timer0_B3.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.SCCI_t
    const Timer0_B3.SCCI_OFF;
    const Timer0_B3.SCCI;
enum Timer0_B3.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.SCS_t
    const Timer0_B3.SCS_OFF;
    const Timer0_B3.SCS;
enum Timer0_B3.TBCLGRP_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.TBCLGRP_t
    const Timer0_B3.TBCLGRP_0;
    const Timer0_B3.TBCLGRP_1;
    const Timer0_B3.TBCLGRP_2;
    const Timer0_B3.TBCLGRP_3;
enum Timer0_B3.TBCLR_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.TBCLR_t
    const Timer0_B3.TBCLR_OFF;
    const Timer0_B3.TBCLR;
enum Timer0_B3.TBIE_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.TBIE_t
    const Timer0_B3.TBIE_OFF;
    const Timer0_B3.TBIE;
enum Timer0_B3.TBIFG_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.TBIFG_t
    const Timer0_B3.TBIFG_OFF;
    const Timer0_B3.TBIFG;
enum Timer0_B3.TBSSEL_t
index URL
XDCscript usage meta-domain
values of type Timer0_B3.TBSSEL_t
    const Timer0_B3.TBSSEL_0;
    // TBCLK
    const Timer0_B3.TBSSEL_1;
    // ACLK
    const Timer0_B3.TBSSEL_2;
    // SMCLK
    const Timer0_B3.TBSSEL_3;
    // INCLK
struct Timer0_B3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer0_B3.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer0_B3.TBCCTLx_t
index URL
XDCscript usage meta-domain
var obj = new Timer0_B3.TBCCTLx_t;
    obj.CM = ITimer_B.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_B.CCIS_t ...
    // Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_B.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.CLLD = ITimer_B.CLLD_t ...
    // Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx
    obj.CAP = ITimer_B.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_B.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_B.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_B.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_B.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_B.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_B.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
struct Timer0_B3.TBCTL_t
index URL

Timer_B Control Register

XDCscript usage meta-domain
var obj = new Timer0_B3.TBCTL_t;
    obj.TBCLGRP = ITimer_B.TBCLGRP_t ...
    // TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update)
    obj.CNTL = ITimer_B.CNTL_t ...
    // Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh
    obj.TBSSEL = ITimer_B.TBSSEL_t ...
    // Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK
    obj.ID = ITimer_B.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_B.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h
    obj.TBCLR = ITimer_B.TBCLR_t ...
    // Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero
    obj.TBIE = ITimer_B.TBIE_t ...
    // Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TBIFG = ITimer_B.TBIFG_t ...
    // Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending
SEE
TBCTL_t
struct Timer0_B3.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer0_B3.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer0_B3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer0_B3.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer0_B3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer0_B3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_B INCLK
    params.TBCLK = Float 0;
    // Timer_B TBCLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer0_B3.regIntVect_t[8] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer0_B3.INCLK // instance
index URL

Timer_B INCLK

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
...
params.INCLK = Float 0;
config Timer0_B3.TBCLK // instance
index URL

Timer_B TBCLK

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
...
params.TBCLK = Float 0;
config Timer0_B3.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer0_B3.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
...
params.intNum = UInt undefined;
config Timer0_B3.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
...
params.interruptSource = Timer0_B3.regIntVect_t[8] undefined;
config Timer0_B3.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
...
params.isInternal = Bool false;
config Timer0_B3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer0_B3.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
...
params.numberOfTimers = UChar undefined;
config Timer0_B3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer0_B3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer0_B3.create(IClock.Instance clock, params);
// Create an instance-object
Timer0_B3.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer0_B3.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:45 GMT


module ti.catalog.msp430.peripherals.timer.Timer0_B3

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer0_B3 ========
    14     *  MSP430 Timer0_B3 timer
    15     */
    16    metaonly module Timer0_B3 inherits ITimer_B {
    17
    18
    19    instance:
    20
    21        /*! Timer interrupt enables */
    22        config regIntVect_t interruptSource[8];
    23
    24    }


module ti.catalog.msp430.peripherals.timer.Timer0_B7

metaonly module ti.catalog.msp430.peripherals.timer.Timer0_B7
index URL

MSP430 Timer0_B7 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer0_B7.xdc
var Timer0_B7 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer0_B7');
module-wide constants & types
    values of type Timer0_B7.CAP_t//
        const Timer0_B7.CAP_OFF;
        const Timer0_B7.CAP;
    values of type Timer0_B7.CCIE_t//
        const Timer0_B7.CCIE_OFF;
        const Timer0_B7.CCIE;
    values of type Timer0_B7.CCIFG_t//
        const Timer0_B7.CCIFG_OFF;
        const Timer0_B7.CCIFG;
    values of type Timer0_B7.CCIS_t//
        const Timer0_B7.CCIS_0// CCIxA;
        const Timer0_B7.CCIS_1// CCIxB;
        const Timer0_B7.CCIS_2// GND;
        const Timer0_B7.CCIS_3// Vcc;
    values of type Timer0_B7.CCI_t//
        const Timer0_B7.CCI_OFF;
        const Timer0_B7.CCI;
    values of type Timer0_B7.CLLD_t//
        const Timer0_B7.CLLD_0;
        const Timer0_B7.CLLD_1;
        const Timer0_B7.CLLD_2;
        const Timer0_B7.CLLD_3;
    values of type Timer0_B7.CM_t//
        const Timer0_B7.CM_0// No Capture;
        const Timer0_B7.CM_1// Rising Edge;
        const Timer0_B7.CM_2// Falling Edge;
        const Timer0_B7.CM_3// Both Edges;
    values of type Timer0_B7.CNTL_t//
        const Timer0_B7.CNTL_0// 16-bit, TBR(max) = 0FFFFh;
        const Timer0_B7.CNTL_1// 12-bit, TBR(max) = 0FFFh;
        const Timer0_B7.CNTL_2// 10-bit, TBR(max) = 03FFh;
        const Timer0_B7.CNTL_3// 8-bit, TBR(max) = 0FFh;
    values of type Timer0_B7.COV_t//
        const Timer0_B7.COV_OFF;
        const Timer0_B7.COV;
    values of type Timer0_B7.ID_t//
        const Timer0_B7.ID_0// Divider - /1;
        const Timer0_B7.ID_1// Divider - /2;
        const Timer0_B7.ID_2// Divider - /4;
        const Timer0_B7.ID_3// Divider - /8;
    values of type Timer0_B7.IVValues// TB07IV Definitions
        const Timer0_B7.TB0IV_NONE// No Interrupt pending;
        const Timer0_B7.TB0IV_TBCCR1// TBCCR1_CCIFG;
        const Timer0_B7.TB0IV_TBCCR2// TBCCR2_CCIFG;
        const Timer0_B7.TB0IV_TBCCR3// TBCCR3_CCIFG;
        const Timer0_B7.TB0IV_TBCCR4// TBCCR4_CCIFG;
        const Timer0_B7.TB0IV_TBCCR5// TBCCR5_CCIFG;
        const Timer0_B7.TB0IV_TBCCR6// TBCCR6_CCIFG;
        const Timer0_B7.TB0IV_TBIFG// TBIFG;
    values of type Timer0_B7.MC_t//
        const Timer0_B7.MC_0// Stop Mode;
        const Timer0_B7.MC_1// Up Mode;
        const Timer0_B7.MC_2// Continuous Mode;
        const Timer0_B7.MC_3// Up/Down Mode;
    values of type Timer0_B7.OUTMOD_t//
        const Timer0_B7.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer0_B7.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer0_B7.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer0_B7.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer0_B7.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer0_B7.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer0_B7.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer0_B7.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer0_B7.OUT_t//
        const Timer0_B7.OUT_OFF;
        const Timer0_B7.OUT;
    values of type Timer0_B7.SCCI_t//
        const Timer0_B7.SCCI_OFF;
        const Timer0_B7.SCCI;
    values of type Timer0_B7.SCS_t//
        const Timer0_B7.SCS_OFF;
        const Timer0_B7.SCS;
    values of type Timer0_B7.TBCLGRP_t//
        const Timer0_B7.TBCLGRP_0;
        const Timer0_B7.TBCLGRP_1;
        const Timer0_B7.TBCLGRP_2;
        const Timer0_B7.TBCLGRP_3;
    values of type Timer0_B7.TBCLR_t//
        const Timer0_B7.TBCLR_OFF;
        const Timer0_B7.TBCLR;
    values of type Timer0_B7.TBIE_t//
        const Timer0_B7.TBIE_OFF;
        const Timer0_B7.TBIE;
    values of type Timer0_B7.TBIFG_t//
        const Timer0_B7.TBIFG_OFF;
        const Timer0_B7.TBIFG;
    values of type Timer0_B7.TBSSEL_t//
        const Timer0_B7.TBSSEL_0// TBCLK;
        const Timer0_B7.TBSSEL_1// ACLK;
        const Timer0_B7.TBSSEL_2// SMCLK;
        const Timer0_B7.TBSSEL_3// INCLK;
    var obj = new Timer0_B7.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer0_B7.TBCCTLx_t// ;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_B.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_B.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_B.SCS_t ...
        obj.CLLD// Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx = ITimer_B.CLLD_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_B.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_B.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_B.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_B.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_B.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_B.CCIFG_t ...
    var obj = new Timer0_B7.TBCTL_t// Timer_B Control Register;
        obj.TBCLGRP// TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update) = ITimer_B.TBCLGRP_t ...
        obj.CNTL// Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh = ITimer_B.CNTL_t ...
        obj.TBSSEL// Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK = ITimer_B.TBSSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_B.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h = ITimer_B.MC_t ...
        obj.TBCLR// Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero = ITimer_B.TBCLR_t ...
        obj.TBIE// Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.TBIE_t ...
        obj.TBIFG// Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending = ITimer_B.TBIFG_t ...
    var obj = new Timer0_B7.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer0_B7.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer0_B7.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer0_B7.Params// Instance config-params object;
        params.INCLK// Timer_B INCLK = Float 0;
        params.TB0CCR0// TB0CCR0, Timer_B Capture/Compare Register 0 = Bits16 0;
        params.TB0CCR1// TB0CCR1, Timer_B Capture/Compare Register 1 = Bits16 0;
        params.TB0CCR2// TB0CCR2, Timer_B Capture/Compare Register 2 = Bits16 0;
        params.TB0CCR3// TB0CCR3, Timer_B Capture/Compare Register 3 = Bits16 0;
        params.TB0CCR4// TB0CCR4, Timer_B Capture/Compare Register 4 = Bits16 0;
        params.TB0CCR5// TB0CCR5, Timer_B Capture/Compare Register 5 = Bits16 0;
        params.TB0CCR6// TB0CCR6, Timer_B Capture/Compare Register 6 = Bits16 0;
        params.TB0CCTL0// TB0CCTL0, Capture/Compare Control Register 0 = Timer0_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TB0CCTL1// TB0CCTL1, Capture/Compare Control Register 1 = Timer0_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TB0CCTL2// TB0CCTL2, Capture/Compare Control Register 2 = Timer0_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TB0CCTL3// TB0CCTL3, Capture/Compare Control Register 3 = Timer0_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TB0CCTL4// TB0CCTL4, Capture/Compare Control Register 4 = Timer0_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TB0CCTL5// TB0CCTL5, Capture/Compare Control Register 5 = Timer0_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TB0CCTL6// TB0CCTL6, Capture/Compare Control Register 6 = Timer0_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TB0CTL// TB0CTL, Timer_B7 Control Register = Timer0_B7.TBCTL_t {
            TBCLGRP: ITimer_B.TBCLGRP_0,
            CNTL: ITimer_B.CNTL_0,
            TBSSEL: ITimer_B.TBSSEL_0,
            ID: ITimer_B.ID_0,
            MC: ITimer_B.MC_0,
            TBCLR: ITimer_B.TBCLR_OFF,
            TBIE: ITimer_B.TBIE_OFF,
            TBIFG: ITimer_B.TBIFG_OFF
        };
        params.TBCLK// Timer_B TBCLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer0_B7.ForceSetDefaultRegister_t[] [
            {
                register: "TB0CTL",
                regForceSet: false
            },
            {
                register: "TB0CCTL0",
                regForceSet: false
            },
            {
                register: "TB0CCTL1",
                regForceSet: false
            },
            {
                register: "TB0CCTL2",
                regForceSet: false
            },
            {
                register: "TB0CCTL3",
                regForceSet: false
            },
            {
                register: "TB0CCTL4",
                regForceSet: false
            },
            {
                register: "TB0CCTL5",
                regForceSet: false
            },
            {
                register: "TB0CCTL6",
                regForceSet: false
            },
            {
                register: "TB0CCR0",
                regForceSet: false
            },
            {
                register: "TB0CCR1",
                regForceSet: false
            },
            {
                register: "TB0CCR2",
                regForceSet: false
            },
            {
                register: "TB0CCR3",
                regForceSet: false
            },
            {
                register: "TB0CCR4",
                regForceSet: false
            },
            {
                register: "TB0CCR5",
                regForceSet: false
            },
            {
                register: "TB0CCR6",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer0_B7.regIntVect_t[8] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer0_B7.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer0_B7.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.CAP_t
    const Timer0_B7.CAP_OFF;
    const Timer0_B7.CAP;
enum Timer0_B7.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.CCIE_t
    const Timer0_B7.CCIE_OFF;
    const Timer0_B7.CCIE;
enum Timer0_B7.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.CCIFG_t
    const Timer0_B7.CCIFG_OFF;
    const Timer0_B7.CCIFG;
enum Timer0_B7.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.CCIS_t
    const Timer0_B7.CCIS_0;
    // CCIxA
    const Timer0_B7.CCIS_1;
    // CCIxB
    const Timer0_B7.CCIS_2;
    // GND
    const Timer0_B7.CCIS_3;
    // Vcc
enum Timer0_B7.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.CCI_t
    const Timer0_B7.CCI_OFF;
    const Timer0_B7.CCI;
enum Timer0_B7.CLLD_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.CLLD_t
    const Timer0_B7.CLLD_0;
    const Timer0_B7.CLLD_1;
    const Timer0_B7.CLLD_2;
    const Timer0_B7.CLLD_3;
enum Timer0_B7.CM_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.CM_t
    const Timer0_B7.CM_0;
    // No Capture
    const Timer0_B7.CM_1;
    // Rising Edge
    const Timer0_B7.CM_2;
    // Falling Edge
    const Timer0_B7.CM_3;
    // Both Edges
enum Timer0_B7.CNTL_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.CNTL_t
    const Timer0_B7.CNTL_0;
    // 16-bit, TBR(max) = 0FFFFh
    const Timer0_B7.CNTL_1;
    // 12-bit, TBR(max) = 0FFFh
    const Timer0_B7.CNTL_2;
    // 10-bit, TBR(max) = 03FFh
    const Timer0_B7.CNTL_3;
    // 8-bit, TBR(max) = 0FFh
enum Timer0_B7.COV_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.COV_t
    const Timer0_B7.COV_OFF;
    const Timer0_B7.COV;
enum Timer0_B7.ID_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.ID_t
    const Timer0_B7.ID_0;
    // Divider - /1
    const Timer0_B7.ID_1;
    // Divider - /2
    const Timer0_B7.ID_2;
    // Divider - /4
    const Timer0_B7.ID_3;
    // Divider - /8
enum Timer0_B7.IVValues
index URL

TB07IV Definitions

XDCscript usage meta-domain
values of type Timer0_B7.IVValues
    const Timer0_B7.TB0IV_NONE;
    // No Interrupt pending
    const Timer0_B7.TB0IV_TBCCR1;
    // TBCCR1_CCIFG
    const Timer0_B7.TB0IV_TBCCR2;
    // TBCCR2_CCIFG
    const Timer0_B7.TB0IV_TBCCR3;
    // TBCCR3_CCIFG
    const Timer0_B7.TB0IV_TBCCR4;
    // TBCCR4_CCIFG
    const Timer0_B7.TB0IV_TBCCR5;
    // TBCCR5_CCIFG
    const Timer0_B7.TB0IV_TBCCR6;
    // TBCCR6_CCIFG
    const Timer0_B7.TB0IV_TBIFG;
    // TBIFG
enum Timer0_B7.MC_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.MC_t
    const Timer0_B7.MC_0;
    // Stop Mode
    const Timer0_B7.MC_1;
    // Up Mode
    const Timer0_B7.MC_2;
    // Continuous Mode
    const Timer0_B7.MC_3;
    // Up/Down Mode
enum Timer0_B7.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.OUTMOD_t
    const Timer0_B7.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer0_B7.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer0_B7.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer0_B7.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer0_B7.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer0_B7.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer0_B7.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer0_B7.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer0_B7.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.OUT_t
    const Timer0_B7.OUT_OFF;
    const Timer0_B7.OUT;
enum Timer0_B7.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.SCCI_t
    const Timer0_B7.SCCI_OFF;
    const Timer0_B7.SCCI;
enum Timer0_B7.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.SCS_t
    const Timer0_B7.SCS_OFF;
    const Timer0_B7.SCS;
enum Timer0_B7.TBCLGRP_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.TBCLGRP_t
    const Timer0_B7.TBCLGRP_0;
    const Timer0_B7.TBCLGRP_1;
    const Timer0_B7.TBCLGRP_2;
    const Timer0_B7.TBCLGRP_3;
enum Timer0_B7.TBCLR_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.TBCLR_t
    const Timer0_B7.TBCLR_OFF;
    const Timer0_B7.TBCLR;
enum Timer0_B7.TBIE_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.TBIE_t
    const Timer0_B7.TBIE_OFF;
    const Timer0_B7.TBIE;
enum Timer0_B7.TBIFG_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.TBIFG_t
    const Timer0_B7.TBIFG_OFF;
    const Timer0_B7.TBIFG;
enum Timer0_B7.TBSSEL_t
index URL
XDCscript usage meta-domain
values of type Timer0_B7.TBSSEL_t
    const Timer0_B7.TBSSEL_0;
    // TBCLK
    const Timer0_B7.TBSSEL_1;
    // ACLK
    const Timer0_B7.TBSSEL_2;
    // SMCLK
    const Timer0_B7.TBSSEL_3;
    // INCLK
struct Timer0_B7.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer0_B7.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer0_B7.TBCCTLx_t
index URL
XDCscript usage meta-domain
var obj = new Timer0_B7.TBCCTLx_t;
    obj.CM = ITimer_B.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_B.CCIS_t ...
    // Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_B.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.CLLD = ITimer_B.CLLD_t ...
    // Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx
    obj.CAP = ITimer_B.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_B.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_B.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_B.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_B.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_B.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_B.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
struct Timer0_B7.TBCTL_t
index URL

Timer_B Control Register

XDCscript usage meta-domain
var obj = new Timer0_B7.TBCTL_t;
    obj.TBCLGRP = ITimer_B.TBCLGRP_t ...
    // TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update)
    obj.CNTL = ITimer_B.CNTL_t ...
    // Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh
    obj.TBSSEL = ITimer_B.TBSSEL_t ...
    // Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK
    obj.ID = ITimer_B.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_B.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h
    obj.TBCLR = ITimer_B.TBCLR_t ...
    // Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero
    obj.TBIE = ITimer_B.TBIE_t ...
    // Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TBIFG = ITimer_B.TBIFG_t ...
    // Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending
SEE
TBCTL_t
struct Timer0_B7.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer0_B7.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer0_B7.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer0_B7.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer0_B7.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer0_B7.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_B INCLK
    params.TB0CCR0 = Bits16 0;
    // TB0CCR0, Timer_B Capture/Compare Register 0
    params.TB0CCR1 = Bits16 0;
    // TB0CCR1, Timer_B Capture/Compare Register 1
    params.TB0CCR2 = Bits16 0;
    // TB0CCR2, Timer_B Capture/Compare Register 2
    params.TB0CCR3 = Bits16 0;
    // TB0CCR3, Timer_B Capture/Compare Register 3
    params.TB0CCR4 = Bits16 0;
    // TB0CCR4, Timer_B Capture/Compare Register 4
    params.TB0CCR5 = Bits16 0;
    // TB0CCR5, Timer_B Capture/Compare Register 5
    params.TB0CCR6 = Bits16 0;
    // TB0CCR6, Timer_B Capture/Compare Register 6
    params.TB0CCTL0 = Timer0_B7.TBCCTLx_t {
    // TB0CCTL0, Capture/Compare Control Register 0
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TB0CCTL1 = Timer0_B7.TBCCTLx_t {
    // TB0CCTL1, Capture/Compare Control Register 1
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TB0CCTL2 = Timer0_B7.TBCCTLx_t {
    // TB0CCTL2, Capture/Compare Control Register 2
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TB0CCTL3 = Timer0_B7.TBCCTLx_t {
    // TB0CCTL3, Capture/Compare Control Register 3
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TB0CCTL4 = Timer0_B7.TBCCTLx_t {
    // TB0CCTL4, Capture/Compare Control Register 4
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TB0CCTL5 = Timer0_B7.TBCCTLx_t {
    // TB0CCTL5, Capture/Compare Control Register 5
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TB0CCTL6 = Timer0_B7.TBCCTLx_t {
    // TB0CCTL6, Capture/Compare Control Register 6
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TB0CTL = Timer0_B7.TBCTL_t {
    // TB0CTL, Timer_B7 Control Register
        TBCLGRP: ITimer_B.TBCLGRP_0,
        CNTL: ITimer_B.CNTL_0,
        TBSSEL: ITimer_B.TBSSEL_0,
        ID: ITimer_B.ID_0,
        MC: ITimer_B.MC_0,
        TBCLR: ITimer_B.TBCLR_OFF,
        TBIE: ITimer_B.TBIE_OFF,
        TBIFG: ITimer_B.TBIFG_OFF
    };
    params.TBCLK = Float 0;
    // Timer_B TBCLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer0_B7.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TB0CTL",
            regForceSet: false
        },
        {
            register: "TB0CCTL0",
            regForceSet: false
        },
        {
            register: "TB0CCTL1",
            regForceSet: false
        },
        {
            register: "TB0CCTL2",
            regForceSet: false
        },
        {
            register: "TB0CCTL3",
            regForceSet: false
        },
        {
            register: "TB0CCTL4",
            regForceSet: false
        },
        {
            register: "TB0CCTL5",
            regForceSet: false
        },
        {
            register: "TB0CCTL6",
            regForceSet: false
        },
        {
            register: "TB0CCR0",
            regForceSet: false
        },
        {
            register: "TB0CCR1",
            regForceSet: false
        },
        {
            register: "TB0CCR2",
            regForceSet: false
        },
        {
            register: "TB0CCR3",
            regForceSet: false
        },
        {
            register: "TB0CCR4",
            regForceSet: false
        },
        {
            register: "TB0CCR5",
            regForceSet: false
        },
        {
            register: "TB0CCR6",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer0_B7.regIntVect_t[8] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer0_B7.INCLK // instance
index URL

Timer_B INCLK

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.INCLK = Float 0;
config Timer0_B7.TB0CCR0 // instance
index URL

TB0CCR0, Timer_B Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCR0 = Bits16 0;
config Timer0_B7.TB0CCR1 // instance
index URL

TB0CCR1, Timer_B Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCR1 = Bits16 0;
config Timer0_B7.TB0CCR2 // instance
index URL

TB0CCR2, Timer_B Capture/Compare Register 2

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCR2 = Bits16 0;
config Timer0_B7.TB0CCR3 // instance
index URL

TB0CCR3, Timer_B Capture/Compare Register 3

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCR3 = Bits16 0;
config Timer0_B7.TB0CCR4 // instance
index URL

TB0CCR4, Timer_B Capture/Compare Register 4

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCR4 = Bits16 0;
config Timer0_B7.TB0CCR5 // instance
index URL

TB0CCR5, Timer_B Capture/Compare Register 5

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCR5 = Bits16 0;
config Timer0_B7.TB0CCR6 // instance
index URL

TB0CCR6, Timer_B Capture/Compare Register 6

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCR6 = Bits16 0;
config Timer0_B7.TB0CCTL0 // instance
index URL

TB0CCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCTL0 = Timer0_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer0_B7.TB0CCTL1 // instance
index URL

TB0CCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCTL1 = Timer0_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer0_B7.TB0CCTL2 // instance
index URL

TB0CCTL2, Capture/Compare Control Register 2

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCTL2 = Timer0_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer0_B7.TB0CCTL3 // instance
index URL

TB0CCTL3, Capture/Compare Control Register 3

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCTL3 = Timer0_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer0_B7.TB0CCTL4 // instance
index URL

TB0CCTL4, Capture/Compare Control Register 4

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCTL4 = Timer0_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer0_B7.TB0CCTL5 // instance
index URL

TB0CCTL5, Capture/Compare Control Register 5

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCTL5 = Timer0_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer0_B7.TB0CCTL6 // instance
index URL

TB0CCTL6, Capture/Compare Control Register 6

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CCTL6 = Timer0_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer0_B7.TB0CTL // instance
index URL

TB0CTL, Timer_B7 Control Register

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TB0CTL = Timer0_B7.TBCTL_t {
    TBCLGRP: ITimer_B.TBCLGRP_0,
    CNTL: ITimer_B.CNTL_0,
    TBSSEL: ITimer_B.TBSSEL_0,
    ID: ITimer_B.ID_0,
    MC: ITimer_B.MC_0,
    TBCLR: ITimer_B.TBCLR_OFF,
    TBIE: ITimer_B.TBIE_OFF,
    TBIFG: ITimer_B.TBIFG_OFF
};
config Timer0_B7.TBCLK // instance
index URL

Timer_B TBCLK

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.TBCLK = Float 0;
config Timer0_B7.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer0_B7.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
const params.forceSetDefaultRegister = Timer0_B7.ForceSetDefaultRegister_t[] [
    {
        register: "TB0CTL",
        regForceSet: false
    },
    {
        register: "TB0CCTL0",
        regForceSet: false
    },
    {
        register: "TB0CCTL1",
        regForceSet: false
    },
    {
        register: "TB0CCTL2",
        regForceSet: false
    },
    {
        register: "TB0CCTL3",
        regForceSet: false
    },
    {
        register: "TB0CCTL4",
        regForceSet: false
    },
    {
        register: "TB0CCTL5",
        regForceSet: false
    },
    {
        register: "TB0CCTL6",
        regForceSet: false
    },
    {
        register: "TB0CCR0",
        regForceSet: false
    },
    {
        register: "TB0CCR1",
        regForceSet: false
    },
    {
        register: "TB0CCR2",
        regForceSet: false
    },
    {
        register: "TB0CCR3",
        regForceSet: false
    },
    {
        register: "TB0CCR4",
        regForceSet: false
    },
    {
        register: "TB0CCR5",
        regForceSet: false
    },
    {
        register: "TB0CCR6",
        regForceSet: false
    }
];
config Timer0_B7.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.intNum = UInt undefined;
config Timer0_B7.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.interruptSource = Timer0_B7.regIntVect_t[8] undefined;
config Timer0_B7.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.isInternal = Bool false;
config Timer0_B7.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer0_B7.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.numberOfTimers = UChar undefined;
config Timer0_B7.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer0_B7.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer0_B7.create(IClock.Instance clock, params);
// Create an instance-object
Timer0_B7.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer0_B7.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:46 GMT


module ti.catalog.msp430.peripherals.timer.Timer0_B7

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer0_B7 ========
    14     *  MSP430 Timer0_B7 timer
    15     */
    16    metaonly module Timer0_B7 inherits ITimer_B {
    17
    18        /*! TB07IV Definitions */
    19        enum IVValues {
    20            TB0IV_NONE = 0x0000,                 /*! No Interrupt pending */
    21            TB0IV_TBCCR1 = 0x0002,               /*! TBCCR1_CCIFG */
    22            TB0IV_TBCCR2 = 0x0004,               /*! TBCCR2_CCIFG */
    23            TB0IV_TBCCR3 = 0x0006,               /*! TBCCR3_CCIFG */
    24            TB0IV_TBCCR4 = 0x0008,               /*! TBCCR4_CCIFG */
    25            TB0IV_TBCCR5 = 0x000A,               /*! TBCCR5_CCIFG */
    26            TB0IV_TBCCR6 = 0x000C,               /*! TBCCR6_CCIFG */
    27            TB0IV_TBIFG = 0x000E                 /*! TBIFG */
    28        };
    29
    30    instance:
    31        /*! TB0CTL, Timer_B7 Control Register */
    32        config TBCTL_t TB0CTL = {
    33            TBCLGRP : TBCLGRP_0,
    34            CNTL : CNTL_0,
    35            TBSSEL : TBSSEL_0,
    36            ID : ID_0,
    37            MC : MC_0,
    38            TBCLR : TBCLR_OFF,
    39            TBIE : TBIE_OFF,
    40            TBIFG : TBIFG_OFF
    41        };
    42
    43        /*! TB0CCTL0, Capture/Compare Control Register 0 */
    44        config TBCCTLx_t TB0CCTL0 = {
    45            CM : CM_0,
    46            CCIS : CCIS_0,
    47            SCS : SCS_OFF,
    48            CLLD : CLLD_0,
    49            CAP : CAP_OFF,
    50            OUTMOD : OUTMOD_0,
    51            CCIE : CCIE_OFF,
    52            CCI : CCI_OFF,
    53            OUT : OUT_OFF,
    54            COV : COV_OFF,
    55            CCIFG : CCIFG_OFF
    56        };
    57
    58        /*! TB0CCTL1, Capture/Compare Control Register 1 */
    59        config TBCCTLx_t TB0CCTL1 = {
    60            CM : CM_0,
    61            CCIS : CCIS_0,
    62            SCS : SCS_OFF,
    63            CLLD : CLLD_0,
    64            CAP : CAP_OFF,
    65            OUTMOD : OUTMOD_0,
    66            CCIE : CCIE_OFF,
    67            CCI : CCI_OFF,
    68            OUT : OUT_OFF,
    69            COV : COV_OFF,
    70            CCIFG : CCIFG_OFF
    71        };
    72
    73        /*! TB0CCTL2, Capture/Compare Control Register 2 */
    74        config TBCCTLx_t TB0CCTL2 = {
    75            CM : CM_0,
    76            CCIS : CCIS_0,
    77            SCS : SCS_OFF,
    78            CLLD : CLLD_0,
    79            CAP : CAP_OFF,
    80            OUTMOD : OUTMOD_0,
    81            CCIE : CCIE_OFF,
    82            CCI : CCI_OFF,
    83            OUT : OUT_OFF,
    84            COV : COV_OFF,
    85            CCIFG : CCIFG_OFF
    86        };
    87
    88        /*! TB0CCTL3, Capture/Compare Control Register 3 */
    89        config TBCCTLx_t TB0CCTL3 = {
    90            CM : CM_0,
    91            CCIS : CCIS_0,
    92            SCS : SCS_OFF,
    93            CLLD : CLLD_0,
    94            CAP : CAP_OFF,
    95            OUTMOD : OUTMOD_0,
    96            CCIE : CCIE_OFF,
    97            CCI : CCI_OFF,
    98            OUT : OUT_OFF,
    99            COV : COV_OFF,
   100            CCIFG : CCIFG_OFF
   101        };
   102
   103        /*! TB0CCTL4, Capture/Compare Control Register 4 */
   104        config TBCCTLx_t TB0CCTL4 = {
   105            CM : CM_0,
   106            CCIS : CCIS_0,
   107            SCS : SCS_OFF,
   108            CLLD : CLLD_0,
   109            CAP : CAP_OFF,
   110            OUTMOD : OUTMOD_0,
   111            CCIE : CCIE_OFF,
   112            CCI : CCI_OFF,
   113            OUT : OUT_OFF,
   114            COV : COV_OFF,
   115            CCIFG : CCIFG_OFF
   116        };
   117
   118        /*! TB0CCTL5, Capture/Compare Control Register 5 */
   119        config TBCCTLx_t TB0CCTL5 = {
   120            CM : CM_0,
   121            CCIS : CCIS_0,
   122            SCS : SCS_OFF,
   123            CLLD : CLLD_0,
   124            CAP : CAP_OFF,
   125            OUTMOD : OUTMOD_0,
   126            CCIE : CCIE_OFF,
   127            CCI : CCI_OFF,
   128            OUT : OUT_OFF,
   129            COV : COV_OFF,
   130            CCIFG : CCIFG_OFF
   131        };
   132
   133        /*! TB0CCTL6, Capture/Compare Control Register 6 */
   134        config TBCCTLx_t TB0CCTL6 = {
   135            CM : CM_0,
   136            CCIS : CCIS_0,
   137            SCS : SCS_OFF,
   138            CLLD : CLLD_0,
   139            CAP : CAP_OFF,
   140            OUTMOD : OUTMOD_0,
   141            CCIE : CCIE_OFF,
   142            CCI : CCI_OFF,
   143            OUT : OUT_OFF,
   144            COV : COV_OFF,
   145            CCIFG : CCIFG_OFF
   146        };
   147
   148        /*! TB0CCR0, Timer_B Capture/Compare Register 0 */
   149        config Bits16 TB0CCR0 = 0;
   150        /*! TB0CCR1, Timer_B Capture/Compare Register 1 */
   151        config Bits16 TB0CCR1 = 0;
   152        /*! TB0CCR2, Timer_B Capture/Compare Register 2 */
   153        config Bits16 TB0CCR2 = 0;
   154        /*! TB0CCR3, Timer_B Capture/Compare Register 3 */
   155        config Bits16 TB0CCR3 = 0;
   156        /*! TB0CCR4, Timer_B Capture/Compare Register 4 */
   157        config Bits16 TB0CCR4 = 0;
   158        /*! TB0CCR5, Timer_B Capture/Compare Register 5 */
   159        config Bits16 TB0CCR5 = 0;
   160        /*! TB0CCR6, Timer_B Capture/Compare Register 6 */
   161        config Bits16 TB0CCR6 = 0;
   162
   163        /*! Timer interrupt enables */
   164        config regIntVect_t interruptSource[8];
   165
   166        /*! Determine if each Register needs to be forced set or not */
   167        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   168        [
   169            { register : "TB0CTL"   , regForceSet : false },
   170            { register : "TB0CCTL0" , regForceSet : false },
   171            { register : "TB0CCTL1" , regForceSet : false },
   172            { register : "TB0CCTL2" , regForceSet : false },
   173            { register : "TB0CCTL3" , regForceSet : false },
   174            { register : "TB0CCTL4" , regForceSet : false },
   175            { register : "TB0CCTL5" , regForceSet : false },
   176            { register : "TB0CCTL6" , regForceSet : false },
   177            { register : "TB0CCR0"  , regForceSet : false },
   178            { register : "TB0CCR1"  , regForceSet : false },
   179            { register : "TB0CCR2"  , regForceSet : false },
   180            { register : "TB0CCR3"  , regForceSet : false },
   181            { register : "TB0CCR4"  , regForceSet : false },
   182            { register : "TB0CCR5"  , regForceSet : false },
   183            { register : "TB0CCR6"  , regForceSet : false }
   184        ];
   185    }


module ti.catalog.msp430.peripherals.timer.Timer1_A2

metaonly module ti.catalog.msp430.peripherals.timer.Timer1_A2
index URL

MSP430 Timer1_A2 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer1_A2.xdc
var Timer1_A2 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer1_A2');
module-wide constants & types
    values of type Timer1_A2.CAP_t//
        const Timer1_A2.CAP_OFF// Compare mode;
        const Timer1_A2.CAP// Capture mode;
    values of type Timer1_A2.CCIE_t//
        const Timer1_A2.CCIE_OFF;
        const Timer1_A2.CCIE;
    values of type Timer1_A2.CCIFG_t//
        const Timer1_A2.CCIFG_OFF;
        const Timer1_A2.CCIFG;
    values of type Timer1_A2.CCIS_t//
        const Timer1_A2.CCIS_0// CCIxA;
        const Timer1_A2.CCIS_1// CCIxB;
        const Timer1_A2.CCIS_2// GND;
        const Timer1_A2.CCIS_3// Vcc;
    values of type Timer1_A2.CCI_t//
        const Timer1_A2.CCI_OFF;
        const Timer1_A2.CCI;
    values of type Timer1_A2.CM_t//
        const Timer1_A2.CM_0// No Capture;
        const Timer1_A2.CM_1// Rising Edge;
        const Timer1_A2.CM_2// Falling Edge;
        const Timer1_A2.CM_3// Both Edges;
    values of type Timer1_A2.COV_t//
        const Timer1_A2.COV_OFF;
        const Timer1_A2.COV;
    values of type Timer1_A2.ID_t//
        const Timer1_A2.ID_0// Divider - /1;
        const Timer1_A2.ID_1// Divider - /2;
        const Timer1_A2.ID_2// Divider - /4;
        const Timer1_A2.ID_3// Divider - /8;
    values of type Timer1_A2.IVValues// TA3IV Definitions
        const Timer1_A2.TAIV_NONE// No Interrupt pending;
        const Timer1_A2.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer1_A2.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer1_A2.TAIV_6// Reserved;
        const Timer1_A2.TAIV_8// Reserved;
        const Timer1_A2.TAIV_TAIFG// TAIFG;
    values of type Timer1_A2.MC_t//
        const Timer1_A2.MC_0// Stop Mode;
        const Timer1_A2.MC_1// Up Mode;
        const Timer1_A2.MC_2// Continuous Mode;
        const Timer1_A2.MC_3// Up/Down Mode;
    values of type Timer1_A2.OUTMOD_t//
        const Timer1_A2.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer1_A2.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer1_A2.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer1_A2.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer1_A2.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer1_A2.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer1_A2.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer1_A2.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer1_A2.OUT_t//
        const Timer1_A2.OUT_OFF;
        const Timer1_A2.OUT;
    values of type Timer1_A2.SCCI_t//
        const Timer1_A2.SCCI_OFF// Latched capture signal (read);
        const Timer1_A2.SCCI// Latched capture signal (read);
    values of type Timer1_A2.SCS_t//
        const Timer1_A2.SCS_OFF// Asynchronous Capture;
        const Timer1_A2.SCS// Sychronous Capture;
    values of type Timer1_A2.TACLR_t//
        const Timer1_A2.TACLR_OFF;
        const Timer1_A2.TACLR;
    values of type Timer1_A2.TAIE_t//
        const Timer1_A2.TAIE_OFF;
        const Timer1_A2.TAIE;
    values of type Timer1_A2.TAIFG_t//
        const Timer1_A2.TAIFG_OFF;
        const Timer1_A2.TAIFG;
    values of type Timer1_A2.TASSEL_t//
        const Timer1_A2.TASSEL_0// TACLK;
        const Timer1_A2.TASSEL_1// ACLK;
        const Timer1_A2.TASSEL_2// SMCLK;
        const Timer1_A2.TASSEL_3// INCLK;
    var obj = new Timer1_A2.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer1_A2.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer1_A2.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer1_A2.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer1_A2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer1_A2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer1_A2.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TA1CCR0// TA1CCR0, Timer_A Capture/Compare Register 0 = Bits16 0;
        params.TA1CCR1// TA1CCR1, Timer_A Capture/Compare Register 1 = Bits16 0;
        params.TA1CCTL0// TA1CCTL0, Capture/Compare Control Register 0 = Timer1_A2.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA1CCTL1// TA1CCTL1, Capture/Compare Control Register 1 = Timer1_A2.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA1CTL// TA1CTL, Timer1_A2 Control Register = Timer1_A2.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer1_A2.ForceSetDefaultRegister_t[] [
            {
                register: "TA1CTL",
                regForceSet: false
            },
            {
                register: "TA1CCTL0",
                regForceSet: false
            },
            {
                register: "TA1CCTL1",
                regForceSet: false
            },
            {
                register: "TA1CCR0",
                regForceSet: false
            },
            {
                register: "TA1CCR1",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer1_A2.regIntVect_t[3] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer1_A2.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer1_A2.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.CAP_t
    const Timer1_A2.CAP_OFF;
    // Compare mode
    const Timer1_A2.CAP;
    // Capture mode
enum Timer1_A2.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.CCIE_t
    const Timer1_A2.CCIE_OFF;
    const Timer1_A2.CCIE;
enum Timer1_A2.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.CCIFG_t
    const Timer1_A2.CCIFG_OFF;
    const Timer1_A2.CCIFG;
enum Timer1_A2.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.CCIS_t
    const Timer1_A2.CCIS_0;
    // CCIxA
    const Timer1_A2.CCIS_1;
    // CCIxB
    const Timer1_A2.CCIS_2;
    // GND
    const Timer1_A2.CCIS_3;
    // Vcc
enum Timer1_A2.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.CCI_t
    const Timer1_A2.CCI_OFF;
    const Timer1_A2.CCI;
enum Timer1_A2.CM_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.CM_t
    const Timer1_A2.CM_0;
    // No Capture
    const Timer1_A2.CM_1;
    // Rising Edge
    const Timer1_A2.CM_2;
    // Falling Edge
    const Timer1_A2.CM_3;
    // Both Edges
enum Timer1_A2.COV_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.COV_t
    const Timer1_A2.COV_OFF;
    const Timer1_A2.COV;
enum Timer1_A2.ID_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.ID_t
    const Timer1_A2.ID_0;
    // Divider - /1
    const Timer1_A2.ID_1;
    // Divider - /2
    const Timer1_A2.ID_2;
    // Divider - /4
    const Timer1_A2.ID_3;
    // Divider - /8
enum Timer1_A2.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer1_A2.IVValues
    const Timer1_A2.TAIV_NONE;
    // No Interrupt pending
    const Timer1_A2.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer1_A2.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer1_A2.TAIV_6;
    // Reserved
    const Timer1_A2.TAIV_8;
    // Reserved
    const Timer1_A2.TAIV_TAIFG;
    // TAIFG
enum Timer1_A2.MC_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.MC_t
    const Timer1_A2.MC_0;
    // Stop Mode
    const Timer1_A2.MC_1;
    // Up Mode
    const Timer1_A2.MC_2;
    // Continuous Mode
    const Timer1_A2.MC_3;
    // Up/Down Mode
enum Timer1_A2.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.OUTMOD_t
    const Timer1_A2.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer1_A2.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer1_A2.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer1_A2.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer1_A2.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer1_A2.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer1_A2.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer1_A2.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer1_A2.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.OUT_t
    const Timer1_A2.OUT_OFF;
    const Timer1_A2.OUT;
enum Timer1_A2.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.SCCI_t
    const Timer1_A2.SCCI_OFF;
    // Latched capture signal (read)
    const Timer1_A2.SCCI;
    // Latched capture signal (read)
enum Timer1_A2.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.SCS_t
    const Timer1_A2.SCS_OFF;
    // Asynchronous Capture
    const Timer1_A2.SCS;
    // Sychronous Capture
enum Timer1_A2.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.TACLR_t
    const Timer1_A2.TACLR_OFF;
    const Timer1_A2.TACLR;
enum Timer1_A2.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.TAIE_t
    const Timer1_A2.TAIE_OFF;
    const Timer1_A2.TAIE;
enum Timer1_A2.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.TAIFG_t
    const Timer1_A2.TAIFG_OFF;
    const Timer1_A2.TAIFG;
enum Timer1_A2.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer1_A2.TASSEL_t
    const Timer1_A2.TASSEL_0;
    // TACLK
    const Timer1_A2.TASSEL_1;
    // ACLK
    const Timer1_A2.TASSEL_2;
    // SMCLK
    const Timer1_A2.TASSEL_3;
    // INCLK
struct Timer1_A2.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer1_A2.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer1_A2.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer1_A2.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer1_A2.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer1_A2.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer1_A2.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer1_A2.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer1_A2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer1_A2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer1_A2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer1_A2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TA1CCR0 = Bits16 0;
    // TA1CCR0, Timer_A Capture/Compare Register 0
    params.TA1CCR1 = Bits16 0;
    // TA1CCR1, Timer_A Capture/Compare Register 1
    params.TA1CCTL0 = Timer1_A2.TACCTLx_t {
    // TA1CCTL0, Capture/Compare Control Register 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA1CCTL1 = Timer1_A2.TACCTLx_t {
    // TA1CCTL1, Capture/Compare Control Register 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA1CTL = Timer1_A2.TACTL_t {
    // TA1CTL, Timer1_A2 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer1_A2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TA1CTL",
            regForceSet: false
        },
        {
            register: "TA1CCTL0",
            regForceSet: false
        },
        {
            register: "TA1CCTL1",
            regForceSet: false
        },
        {
            register: "TA1CCR0",
            regForceSet: false
        },
        {
            register: "TA1CCR1",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer1_A2.regIntVect_t[3] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer1_A2.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.INCLK = Float 0;
config Timer1_A2.TA1CCR0 // instance
index URL

TA1CCR0, Timer_A Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.TA1CCR0 = Bits16 0;
config Timer1_A2.TA1CCR1 // instance
index URL

TA1CCR1, Timer_A Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.TA1CCR1 = Bits16 0;
config Timer1_A2.TA1CCTL0 // instance
index URL

TA1CCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.TA1CCTL0 = Timer1_A2.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer1_A2.TA1CCTL1 // instance
index URL

TA1CCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.TA1CCTL1 = Timer1_A2.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer1_A2.TA1CTL // instance
index URL

TA1CTL, Timer1_A2 Control Register

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.TA1CTL = Timer1_A2.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer1_A2.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.TACLK = Float 0;
config Timer1_A2.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer1_A2.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
const params.forceSetDefaultRegister = Timer1_A2.ForceSetDefaultRegister_t[] [
    {
        register: "TA1CTL",
        regForceSet: false
    },
    {
        register: "TA1CCTL0",
        regForceSet: false
    },
    {
        register: "TA1CCTL1",
        regForceSet: false
    },
    {
        register: "TA1CCR0",
        regForceSet: false
    },
    {
        register: "TA1CCR1",
        regForceSet: false
    }
];
config Timer1_A2.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.intNum = UInt undefined;
config Timer1_A2.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.interruptSource = Timer1_A2.regIntVect_t[3] undefined;
config Timer1_A2.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.isInternal = Bool false;
config Timer1_A2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer1_A2.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.numberOfTimers = UChar undefined;
config Timer1_A2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer1_A2.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer1_A2.create(IClock.Instance clock, params);
// Create an instance-object
Timer1_A2.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer1_A2.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:46 GMT


module ti.catalog.msp430.peripherals.timer.Timer1_A2

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer1_A2 ========
    14     *  MSP430 Timer1_A2 timer
    15     */
    16    metaonly module Timer1_A2 inherits ITimer_A {
    17
    18    instance:
    19        /*! TA1CTL, Timer1_A2 Control Register */
    20        config TACTL_t TA1CTL = {
    21            TASSEL : TASSEL_0,
    22            ID : ID_0,
    23            MC : MC_0,
    24            TACLR : TACLR_OFF,
    25            TAIE : TAIE_OFF,
    26            TAIFG : TAIFG_OFF
    27        };
    28
    29        /*! TA1CCTL0, Capture/Compare Control Register 0 */
    30        config TACCTLx_t TA1CCTL0 = {
    31            CM : CM_0,
    32            CCIS : CCIS_0,
    33            SCS : SCS_OFF,
    34            SCCI : SCCI_OFF,
    35            CAP : CAP_OFF,
    36            OUTMOD : OUTMOD_0,
    37            CCIE : CCIE_OFF,
    38            CCI : CCI_OFF,
    39            OUT : OUT_OFF,
    40            COV : COV_OFF,
    41            CCIFG : CCIFG_OFF
    42        };
    43
    44        /*! TA1CCTL1, Capture/Compare Control Register 1 */
    45        config TACCTLx_t TA1CCTL1 = {
    46            CM : CM_0,
    47            CCIS : CCIS_0,
    48            SCS : SCS_OFF,
    49            SCCI : SCCI_OFF,
    50            CAP : CAP_OFF,
    51            OUTMOD : OUTMOD_0,
    52            CCIE : CCIE_OFF,
    53            CCI : CCI_OFF,
    54            OUT : OUT_OFF,
    55            COV : COV_OFF,
    56            CCIFG : CCIFG_OFF
    57        };
    58
    59        /*! TA1CCR0, Timer_A Capture/Compare Register 0 */
    60        config Bits16 TA1CCR0 = 0;
    61        /*! TA1CCR1, Timer_A Capture/Compare Register 1 */
    62        config Bits16 TA1CCR1 = 0;
    63
    64        /*! Timer interrupt enables */
    65        config regIntVect_t interruptSource[3];
    66
    67        /*! Determine if each Register needs to be forced set or not */
    68        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    69        [
    70            { register : "TA1CTL"   , regForceSet : false },
    71            { register : "TA1CCTL0" , regForceSet : false },
    72            { register : "TA1CCTL1" , regForceSet : false },
    73            { register : "TA1CCR0"  , regForceSet : false },
    74            { register : "TA1CCR1"  , regForceSet : false }
    75        ];
    76    }


module ti.catalog.msp430.peripherals.timer.Timer1_A3

metaonly module ti.catalog.msp430.peripherals.timer.Timer1_A3
index URL

MSP430 Timer1_A3 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer1_A3.xdc
var Timer1_A3 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer1_A3');
module-wide constants & types
    values of type Timer1_A3.CAP_t//
        const Timer1_A3.CAP_OFF// Compare mode;
        const Timer1_A3.CAP// Capture mode;
    values of type Timer1_A3.CCIE_t//
        const Timer1_A3.CCIE_OFF;
        const Timer1_A3.CCIE;
    values of type Timer1_A3.CCIFG_t//
        const Timer1_A3.CCIFG_OFF;
        const Timer1_A3.CCIFG;
    values of type Timer1_A3.CCIS_t//
        const Timer1_A3.CCIS_0// CCIxA;
        const Timer1_A3.CCIS_1// CCIxB;
        const Timer1_A3.CCIS_2// GND;
        const Timer1_A3.CCIS_3// Vcc;
    values of type Timer1_A3.CCI_t//
        const Timer1_A3.CCI_OFF;
        const Timer1_A3.CCI;
    values of type Timer1_A3.CM_t//
        const Timer1_A3.CM_0// No Capture;
        const Timer1_A3.CM_1// Rising Edge;
        const Timer1_A3.CM_2// Falling Edge;
        const Timer1_A3.CM_3// Both Edges;
    values of type Timer1_A3.COV_t//
        const Timer1_A3.COV_OFF;
        const Timer1_A3.COV;
    values of type Timer1_A3.ID_t//
        const Timer1_A3.ID_0// Divider - /1;
        const Timer1_A3.ID_1// Divider - /2;
        const Timer1_A3.ID_2// Divider - /4;
        const Timer1_A3.ID_3// Divider - /8;
    values of type Timer1_A3.IVValues// TA3IV Definitions
        const Timer1_A3.TAIV_NONE// No Interrupt pending;
        const Timer1_A3.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer1_A3.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer1_A3.TAIV_6// Reserved;
        const Timer1_A3.TAIV_8// Reserved;
        const Timer1_A3.TAIV_TAIFG// TAIFG;
    values of type Timer1_A3.MC_t//
        const Timer1_A3.MC_0// Stop Mode;
        const Timer1_A3.MC_1// Up Mode;
        const Timer1_A3.MC_2// Continuous Mode;
        const Timer1_A3.MC_3// Up/Down Mode;
    values of type Timer1_A3.OUTMOD_t//
        const Timer1_A3.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer1_A3.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer1_A3.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer1_A3.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer1_A3.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer1_A3.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer1_A3.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer1_A3.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer1_A3.OUT_t//
        const Timer1_A3.OUT_OFF;
        const Timer1_A3.OUT;
    values of type Timer1_A3.SCCI_t//
        const Timer1_A3.SCCI_OFF// Latched capture signal (read);
        const Timer1_A3.SCCI// Latched capture signal (read);
    values of type Timer1_A3.SCS_t//
        const Timer1_A3.SCS_OFF// Asynchronous Capture;
        const Timer1_A3.SCS// Sychronous Capture;
    values of type Timer1_A3.TACLR_t//
        const Timer1_A3.TACLR_OFF;
        const Timer1_A3.TACLR;
    values of type Timer1_A3.TAIE_t//
        const Timer1_A3.TAIE_OFF;
        const Timer1_A3.TAIE;
    values of type Timer1_A3.TAIFG_t//
        const Timer1_A3.TAIFG_OFF;
        const Timer1_A3.TAIFG;
    values of type Timer1_A3.TASSEL_t//
        const Timer1_A3.TASSEL_0// TACLK;
        const Timer1_A3.TASSEL_1// ACLK;
        const Timer1_A3.TASSEL_2// SMCLK;
        const Timer1_A3.TASSEL_3// INCLK;
    var obj = new Timer1_A3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer1_A3.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer1_A3.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer1_A3.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer1_A3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer1_A3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer1_A3.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TA1CCR0// TA1CCR0, Timer_A Capture/Compare Register 0 = Bits16 0;
        params.TA1CCR1// TA1CCR1, Timer_A Capture/Compare Register 1 = Bits16 0;
        params.TA1CCR2// TA1CCR2, Timer_A Capture/Compare Register 2 = Bits16 0;
        params.TA1CCTL0// TA1CCTL0, Capture/Compare Control Register 0 = Timer1_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA1CCTL1// TA1CCTL1, Capture/Compare Control Register 1 = Timer1_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA1CCTL2// TA1CCTL2, Capture/Compare Control Register 2 = Timer1_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA1CTL// TA1CTL, Timer_A3 Control Register = Timer1_A3.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer1_A3.ForceSetDefaultRegister_t[] [
            {
                register: "TA1CTL",
                regForceSet: false
            },
            {
                register: "TA1CCTL0",
                regForceSet: false
            },
            {
                register: "TA1CCTL1",
                regForceSet: false
            },
            {
                register: "TA1CCTL2",
                regForceSet: false
            },
            {
                register: "TA1CCR0",
                regForceSet: false
            },
            {
                register: "TA1CCR1",
                regForceSet: false
            },
            {
                register: "TA1CCR2",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer1_A3.regIntVect_t[4] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer1_A3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer1_A3.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.CAP_t
    const Timer1_A3.CAP_OFF;
    // Compare mode
    const Timer1_A3.CAP;
    // Capture mode
enum Timer1_A3.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.CCIE_t
    const Timer1_A3.CCIE_OFF;
    const Timer1_A3.CCIE;
enum Timer1_A3.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.CCIFG_t
    const Timer1_A3.CCIFG_OFF;
    const Timer1_A3.CCIFG;
enum Timer1_A3.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.CCIS_t
    const Timer1_A3.CCIS_0;
    // CCIxA
    const Timer1_A3.CCIS_1;
    // CCIxB
    const Timer1_A3.CCIS_2;
    // GND
    const Timer1_A3.CCIS_3;
    // Vcc
enum Timer1_A3.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.CCI_t
    const Timer1_A3.CCI_OFF;
    const Timer1_A3.CCI;
enum Timer1_A3.CM_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.CM_t
    const Timer1_A3.CM_0;
    // No Capture
    const Timer1_A3.CM_1;
    // Rising Edge
    const Timer1_A3.CM_2;
    // Falling Edge
    const Timer1_A3.CM_3;
    // Both Edges
enum Timer1_A3.COV_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.COV_t
    const Timer1_A3.COV_OFF;
    const Timer1_A3.COV;
enum Timer1_A3.ID_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.ID_t
    const Timer1_A3.ID_0;
    // Divider - /1
    const Timer1_A3.ID_1;
    // Divider - /2
    const Timer1_A3.ID_2;
    // Divider - /4
    const Timer1_A3.ID_3;
    // Divider - /8
enum Timer1_A3.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer1_A3.IVValues
    const Timer1_A3.TAIV_NONE;
    // No Interrupt pending
    const Timer1_A3.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer1_A3.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer1_A3.TAIV_6;
    // Reserved
    const Timer1_A3.TAIV_8;
    // Reserved
    const Timer1_A3.TAIV_TAIFG;
    // TAIFG
enum Timer1_A3.MC_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.MC_t
    const Timer1_A3.MC_0;
    // Stop Mode
    const Timer1_A3.MC_1;
    // Up Mode
    const Timer1_A3.MC_2;
    // Continuous Mode
    const Timer1_A3.MC_3;
    // Up/Down Mode
enum Timer1_A3.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.OUTMOD_t
    const Timer1_A3.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer1_A3.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer1_A3.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer1_A3.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer1_A3.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer1_A3.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer1_A3.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer1_A3.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer1_A3.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.OUT_t
    const Timer1_A3.OUT_OFF;
    const Timer1_A3.OUT;
enum Timer1_A3.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.SCCI_t
    const Timer1_A3.SCCI_OFF;
    // Latched capture signal (read)
    const Timer1_A3.SCCI;
    // Latched capture signal (read)
enum Timer1_A3.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.SCS_t
    const Timer1_A3.SCS_OFF;
    // Asynchronous Capture
    const Timer1_A3.SCS;
    // Sychronous Capture
enum Timer1_A3.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.TACLR_t
    const Timer1_A3.TACLR_OFF;
    const Timer1_A3.TACLR;
enum Timer1_A3.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.TAIE_t
    const Timer1_A3.TAIE_OFF;
    const Timer1_A3.TAIE;
enum Timer1_A3.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.TAIFG_t
    const Timer1_A3.TAIFG_OFF;
    const Timer1_A3.TAIFG;
enum Timer1_A3.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer1_A3.TASSEL_t
    const Timer1_A3.TASSEL_0;
    // TACLK
    const Timer1_A3.TASSEL_1;
    // ACLK
    const Timer1_A3.TASSEL_2;
    // SMCLK
    const Timer1_A3.TASSEL_3;
    // INCLK
struct Timer1_A3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer1_A3.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer1_A3.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer1_A3.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer1_A3.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer1_A3.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer1_A3.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer1_A3.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer1_A3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer1_A3.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer1_A3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer1_A3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TA1CCR0 = Bits16 0;
    // TA1CCR0, Timer_A Capture/Compare Register 0
    params.TA1CCR1 = Bits16 0;
    // TA1CCR1, Timer_A Capture/Compare Register 1
    params.TA1CCR2 = Bits16 0;
    // TA1CCR2, Timer_A Capture/Compare Register 2
    params.TA1CCTL0 = Timer1_A3.TACCTLx_t {
    // TA1CCTL0, Capture/Compare Control Register 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA1CCTL1 = Timer1_A3.TACCTLx_t {
    // TA1CCTL1, Capture/Compare Control Register 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA1CCTL2 = Timer1_A3.TACCTLx_t {
    // TA1CCTL2, Capture/Compare Control Register 2
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA1CTL = Timer1_A3.TACTL_t {
    // TA1CTL, Timer_A3 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer1_A3.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TA1CTL",
            regForceSet: false
        },
        {
            register: "TA1CCTL0",
            regForceSet: false
        },
        {
            register: "TA1CCTL1",
            regForceSet: false
        },
        {
            register: "TA1CCTL2",
            regForceSet: false
        },
        {
            register: "TA1CCR0",
            regForceSet: false
        },
        {
            register: "TA1CCR1",
            regForceSet: false
        },
        {
            register: "TA1CCR2",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer1_A3.regIntVect_t[4] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer1_A3.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.INCLK = Float 0;
config Timer1_A3.TA1CCR0 // instance
index URL

TA1CCR0, Timer_A Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.TA1CCR0 = Bits16 0;
config Timer1_A3.TA1CCR1 // instance
index URL

TA1CCR1, Timer_A Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.TA1CCR1 = Bits16 0;
config Timer1_A3.TA1CCR2 // instance
index URL

TA1CCR2, Timer_A Capture/Compare Register 2

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.TA1CCR2 = Bits16 0;
config Timer1_A3.TA1CCTL0 // instance
index URL

TA1CCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.TA1CCTL0 = Timer1_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer1_A3.TA1CCTL1 // instance
index URL

TA1CCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.TA1CCTL1 = Timer1_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer1_A3.TA1CCTL2 // instance
index URL

TA1CCTL2, Capture/Compare Control Register 2

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.TA1CCTL2 = Timer1_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer1_A3.TA1CTL // instance
index URL

TA1CTL, Timer_A3 Control Register

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.TA1CTL = Timer1_A3.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer1_A3.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.TACLK = Float 0;
config Timer1_A3.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer1_A3.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
const params.forceSetDefaultRegister = Timer1_A3.ForceSetDefaultRegister_t[] [
    {
        register: "TA1CTL",
        regForceSet: false
    },
    {
        register: "TA1CCTL0",
        regForceSet: false
    },
    {
        register: "TA1CCTL1",
        regForceSet: false
    },
    {
        register: "TA1CCTL2",
        regForceSet: false
    },
    {
        register: "TA1CCR0",
        regForceSet: false
    },
    {
        register: "TA1CCR1",
        regForceSet: false
    },
    {
        register: "TA1CCR2",
        regForceSet: false
    }
];
config Timer1_A3.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.intNum = UInt undefined;
config Timer1_A3.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.interruptSource = Timer1_A3.regIntVect_t[4] undefined;
config Timer1_A3.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.isInternal = Bool false;
config Timer1_A3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer1_A3.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.numberOfTimers = UChar undefined;
config Timer1_A3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer1_A3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer1_A3.create(IClock.Instance clock, params);
// Create an instance-object
Timer1_A3.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer1_A3.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:46 GMT


module ti.catalog.msp430.peripherals.timer.Timer1_A3

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer1_A3 ========
    14     *  MSP430 Timer1_A3 timer
    15     */
    16    metaonly module Timer1_A3 inherits ITimer_A {
    17
    18    instance:
    19        /*! TA1CTL, Timer_A3 Control Register */
    20        config TACTL_t TA1CTL = {
    21            TASSEL : TASSEL_0,
    22            ID : ID_0,
    23            MC : MC_0,
    24            TACLR : TACLR_OFF,
    25            TAIE : TAIE_OFF,
    26            TAIFG : TAIFG_OFF
    27        };
    28
    29        /*! TA1CCTL0, Capture/Compare Control Register 0 */
    30        config TACCTLx_t TA1CCTL0 = {
    31            CM : CM_0,
    32            CCIS : CCIS_0,
    33            SCS : SCS_OFF,
    34            SCCI : SCCI_OFF,
    35            CAP : CAP_OFF,
    36            OUTMOD : OUTMOD_0,
    37            CCIE : CCIE_OFF,
    38            CCI : CCI_OFF,
    39            OUT : OUT_OFF,
    40            COV : COV_OFF,
    41            CCIFG : CCIFG_OFF
    42        };
    43
    44        /*! TA1CCTL1, Capture/Compare Control Register 1 */
    45        config TACCTLx_t TA1CCTL1 = {
    46            CM : CM_0,
    47            CCIS : CCIS_0,
    48            SCS : SCS_OFF,
    49            SCCI : SCCI_OFF,
    50            CAP : CAP_OFF,
    51            OUTMOD : OUTMOD_0,
    52            CCIE : CCIE_OFF,
    53            CCI : CCI_OFF,
    54            OUT : OUT_OFF,
    55            COV : COV_OFF,
    56            CCIFG : CCIFG_OFF
    57        };
    58
    59        /*! TA1CCTL2, Capture/Compare Control Register 2 */
    60        config TACCTLx_t TA1CCTL2 = {
    61            CM : CM_0,
    62            CCIS : CCIS_0,
    63            SCS : SCS_OFF,
    64            SCCI : SCCI_OFF,
    65            CAP : CAP_OFF,
    66            OUTMOD : OUTMOD_0,
    67            CCIE : CCIE_OFF,
    68            CCI : CCI_OFF,
    69            OUT : OUT_OFF,
    70            COV : COV_OFF,
    71            CCIFG : CCIFG_OFF
    72        };
    73
    74        /*! TA1CCR0, Timer_A Capture/Compare Register 0 */
    75        config Bits16 TA1CCR0 = 0;
    76        /*! TA1CCR1, Timer_A Capture/Compare Register 1 */
    77        config Bits16 TA1CCR1 = 0;
    78        /*! TA1CCR2, Timer_A Capture/Compare Register 2 */
    79        config Bits16 TA1CCR2 = 0;
    80
    81        /*! Timer interrupt enables */
    82        config regIntVect_t interruptSource[4];
    83
    84        /*! Determine if each Register needs to be forced set or not */
    85        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    86        [
    87            { register : "TA1CTL"   , regForceSet : false },
    88            { register : "TA1CCTL0" , regForceSet : false },
    89            { register : "TA1CCTL1" , regForceSet : false },
    90            { register : "TA1CCTL2" , regForceSet : false },
    91            { register : "TA1CCR0"  , regForceSet : false },
    92            { register : "TA1CCR1"  , regForceSet : false },
    93            { register : "TA1CCR2"  , regForceSet : false }
    94        ];
    95    }


module ti.catalog.msp430.peripherals.timer.Timer1_B3

metaonly module ti.catalog.msp430.peripherals.timer.Timer1_B3
index URL

MSP430 Timer1_B3 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer1_B3.xdc
var Timer1_B3 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer1_B3');
module-wide constants & types
    values of type Timer1_B3.CAP_t//
        const Timer1_B3.CAP_OFF;
        const Timer1_B3.CAP;
    values of type Timer1_B3.CCIE_t//
        const Timer1_B3.CCIE_OFF;
        const Timer1_B3.CCIE;
    values of type Timer1_B3.CCIFG_t//
        const Timer1_B3.CCIFG_OFF;
        const Timer1_B3.CCIFG;
    values of type Timer1_B3.CCIS_t//
        const Timer1_B3.CCIS_0// CCIxA;
        const Timer1_B3.CCIS_1// CCIxB;
        const Timer1_B3.CCIS_2// GND;
        const Timer1_B3.CCIS_3// Vcc;
    values of type Timer1_B3.CCI_t//
        const Timer1_B3.CCI_OFF;
        const Timer1_B3.CCI;
    values of type Timer1_B3.CLLD_t//
        const Timer1_B3.CLLD_0;
        const Timer1_B3.CLLD_1;
        const Timer1_B3.CLLD_2;
        const Timer1_B3.CLLD_3;
    values of type Timer1_B3.CM_t//
        const Timer1_B3.CM_0// No Capture;
        const Timer1_B3.CM_1// Rising Edge;
        const Timer1_B3.CM_2// Falling Edge;
        const Timer1_B3.CM_3// Both Edges;
    values of type Timer1_B3.CNTL_t//
        const Timer1_B3.CNTL_0// 16-bit, TBR(max) = 0FFFFh;
        const Timer1_B3.CNTL_1// 12-bit, TBR(max) = 0FFFh;
        const Timer1_B3.CNTL_2// 10-bit, TBR(max) = 03FFh;
        const Timer1_B3.CNTL_3// 8-bit, TBR(max) = 0FFh;
    values of type Timer1_B3.COV_t//
        const Timer1_B3.COV_OFF;
        const Timer1_B3.COV;
    values of type Timer1_B3.ID_t//
        const Timer1_B3.ID_0// Divider - /1;
        const Timer1_B3.ID_1// Divider - /2;
        const Timer1_B3.ID_2// Divider - /4;
        const Timer1_B3.ID_3// Divider - /8;
    values of type Timer1_B3.MC_t//
        const Timer1_B3.MC_0// Stop Mode;
        const Timer1_B3.MC_1// Up Mode;
        const Timer1_B3.MC_2// Continuous Mode;
        const Timer1_B3.MC_3// Up/Down Mode;
    values of type Timer1_B3.OUTMOD_t//
        const Timer1_B3.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer1_B3.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer1_B3.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer1_B3.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer1_B3.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer1_B3.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer1_B3.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer1_B3.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer1_B3.OUT_t//
        const Timer1_B3.OUT_OFF;
        const Timer1_B3.OUT;
    values of type Timer1_B3.SCCI_t//
        const Timer1_B3.SCCI_OFF;
        const Timer1_B3.SCCI;
    values of type Timer1_B3.SCS_t//
        const Timer1_B3.SCS_OFF;
        const Timer1_B3.SCS;
    values of type Timer1_B3.TBCLGRP_t//
        const Timer1_B3.TBCLGRP_0;
        const Timer1_B3.TBCLGRP_1;
        const Timer1_B3.TBCLGRP_2;
        const Timer1_B3.TBCLGRP_3;
    values of type Timer1_B3.TBCLR_t//
        const Timer1_B3.TBCLR_OFF;
        const Timer1_B3.TBCLR;
    values of type Timer1_B3.TBIE_t//
        const Timer1_B3.TBIE_OFF;
        const Timer1_B3.TBIE;
    values of type Timer1_B3.TBIFG_t//
        const Timer1_B3.TBIFG_OFF;
        const Timer1_B3.TBIFG;
    values of type Timer1_B3.TBSSEL_t//
        const Timer1_B3.TBSSEL_0// TBCLK;
        const Timer1_B3.TBSSEL_1// ACLK;
        const Timer1_B3.TBSSEL_2// SMCLK;
        const Timer1_B3.TBSSEL_3// INCLK;
    var obj = new Timer1_B3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer1_B3.TBCCTLx_t// ;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_B.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_B.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_B.SCS_t ...
        obj.CLLD// Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx = ITimer_B.CLLD_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_B.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_B.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_B.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_B.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_B.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_B.CCIFG_t ...
    var obj = new Timer1_B3.TBCTL_t// Timer_B Control Register;
        obj.TBCLGRP// TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update) = ITimer_B.TBCLGRP_t ...
        obj.CNTL// Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh = ITimer_B.CNTL_t ...
        obj.TBSSEL// Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK = ITimer_B.TBSSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_B.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h = ITimer_B.MC_t ...
        obj.TBCLR// Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero = ITimer_B.TBCLR_t ...
        obj.TBIE// Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.TBIE_t ...
        obj.TBIFG// Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending = ITimer_B.TBIFG_t ...
    var obj = new Timer1_B3.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer1_B3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer1_B3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer1_B3.Params// Instance config-params object;
        params.INCLK// Timer_B INCLK = Float 0;
        params.TBCLK// Timer_B TBCLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer1_B3.regIntVect_t[8] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer1_B3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer1_B3.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.CAP_t
    const Timer1_B3.CAP_OFF;
    const Timer1_B3.CAP;
enum Timer1_B3.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.CCIE_t
    const Timer1_B3.CCIE_OFF;
    const Timer1_B3.CCIE;
enum Timer1_B3.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.CCIFG_t
    const Timer1_B3.CCIFG_OFF;
    const Timer1_B3.CCIFG;
enum Timer1_B3.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.CCIS_t
    const Timer1_B3.CCIS_0;
    // CCIxA
    const Timer1_B3.CCIS_1;
    // CCIxB
    const Timer1_B3.CCIS_2;
    // GND
    const Timer1_B3.CCIS_3;
    // Vcc
enum Timer1_B3.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.CCI_t
    const Timer1_B3.CCI_OFF;
    const Timer1_B3.CCI;
enum Timer1_B3.CLLD_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.CLLD_t
    const Timer1_B3.CLLD_0;
    const Timer1_B3.CLLD_1;
    const Timer1_B3.CLLD_2;
    const Timer1_B3.CLLD_3;
enum Timer1_B3.CM_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.CM_t
    const Timer1_B3.CM_0;
    // No Capture
    const Timer1_B3.CM_1;
    // Rising Edge
    const Timer1_B3.CM_2;
    // Falling Edge
    const Timer1_B3.CM_3;
    // Both Edges
enum Timer1_B3.CNTL_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.CNTL_t
    const Timer1_B3.CNTL_0;
    // 16-bit, TBR(max) = 0FFFFh
    const Timer1_B3.CNTL_1;
    // 12-bit, TBR(max) = 0FFFh
    const Timer1_B3.CNTL_2;
    // 10-bit, TBR(max) = 03FFh
    const Timer1_B3.CNTL_3;
    // 8-bit, TBR(max) = 0FFh
enum Timer1_B3.COV_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.COV_t
    const Timer1_B3.COV_OFF;
    const Timer1_B3.COV;
enum Timer1_B3.ID_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.ID_t
    const Timer1_B3.ID_0;
    // Divider - /1
    const Timer1_B3.ID_1;
    // Divider - /2
    const Timer1_B3.ID_2;
    // Divider - /4
    const Timer1_B3.ID_3;
    // Divider - /8
enum Timer1_B3.MC_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.MC_t
    const Timer1_B3.MC_0;
    // Stop Mode
    const Timer1_B3.MC_1;
    // Up Mode
    const Timer1_B3.MC_2;
    // Continuous Mode
    const Timer1_B3.MC_3;
    // Up/Down Mode
enum Timer1_B3.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.OUTMOD_t
    const Timer1_B3.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer1_B3.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer1_B3.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer1_B3.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer1_B3.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer1_B3.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer1_B3.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer1_B3.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer1_B3.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.OUT_t
    const Timer1_B3.OUT_OFF;
    const Timer1_B3.OUT;
enum Timer1_B3.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.SCCI_t
    const Timer1_B3.SCCI_OFF;
    const Timer1_B3.SCCI;
enum Timer1_B3.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.SCS_t
    const Timer1_B3.SCS_OFF;
    const Timer1_B3.SCS;
enum Timer1_B3.TBCLGRP_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.TBCLGRP_t
    const Timer1_B3.TBCLGRP_0;
    const Timer1_B3.TBCLGRP_1;
    const Timer1_B3.TBCLGRP_2;
    const Timer1_B3.TBCLGRP_3;
enum Timer1_B3.TBCLR_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.TBCLR_t
    const Timer1_B3.TBCLR_OFF;
    const Timer1_B3.TBCLR;
enum Timer1_B3.TBIE_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.TBIE_t
    const Timer1_B3.TBIE_OFF;
    const Timer1_B3.TBIE;
enum Timer1_B3.TBIFG_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.TBIFG_t
    const Timer1_B3.TBIFG_OFF;
    const Timer1_B3.TBIFG;
enum Timer1_B3.TBSSEL_t
index URL
XDCscript usage meta-domain
values of type Timer1_B3.TBSSEL_t
    const Timer1_B3.TBSSEL_0;
    // TBCLK
    const Timer1_B3.TBSSEL_1;
    // ACLK
    const Timer1_B3.TBSSEL_2;
    // SMCLK
    const Timer1_B3.TBSSEL_3;
    // INCLK
struct Timer1_B3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer1_B3.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer1_B3.TBCCTLx_t
index URL
XDCscript usage meta-domain
var obj = new Timer1_B3.TBCCTLx_t;
    obj.CM = ITimer_B.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_B.CCIS_t ...
    // Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_B.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.CLLD = ITimer_B.CLLD_t ...
    // Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx
    obj.CAP = ITimer_B.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_B.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_B.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_B.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_B.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_B.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_B.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
struct Timer1_B3.TBCTL_t
index URL

Timer_B Control Register

XDCscript usage meta-domain
var obj = new Timer1_B3.TBCTL_t;
    obj.TBCLGRP = ITimer_B.TBCLGRP_t ...
    // TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update)
    obj.CNTL = ITimer_B.CNTL_t ...
    // Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh
    obj.TBSSEL = ITimer_B.TBSSEL_t ...
    // Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK
    obj.ID = ITimer_B.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_B.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h
    obj.TBCLR = ITimer_B.TBCLR_t ...
    // Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero
    obj.TBIE = ITimer_B.TBIE_t ...
    // Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TBIFG = ITimer_B.TBIFG_t ...
    // Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending
SEE
TBCTL_t
struct Timer1_B3.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer1_B3.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer1_B3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer1_B3.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer1_B3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer1_B3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_B INCLK
    params.TBCLK = Float 0;
    // Timer_B TBCLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer1_B3.regIntVect_t[8] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer1_B3.INCLK // instance
index URL

Timer_B INCLK

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
...
params.INCLK = Float 0;
config Timer1_B3.TBCLK // instance
index URL

Timer_B TBCLK

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
...
params.TBCLK = Float 0;
config Timer1_B3.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer1_B3.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
...
params.intNum = UInt undefined;
config Timer1_B3.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
...
params.interruptSource = Timer1_B3.regIntVect_t[8] undefined;
config Timer1_B3.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
...
params.isInternal = Bool false;
config Timer1_B3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer1_B3.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
...
params.numberOfTimers = UChar undefined;
config Timer1_B3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer1_B3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer1_B3.create(IClock.Instance clock, params);
// Create an instance-object
Timer1_B3.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer1_B3.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:46 GMT


module ti.catalog.msp430.peripherals.timer.Timer1_B3

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer1_B3 ========
    14     *  MSP430 Timer1_B3 timer
    15     */
    16    metaonly module Timer1_B3 inherits ITimer_B {
    17
    18
    19    instance:
    20
    21        /*! Timer interrupt enables */
    22        config regIntVect_t interruptSource[8];
    23
    24    }


module ti.catalog.msp430.peripherals.timer.Timer2_A2

metaonly module ti.catalog.msp430.peripherals.timer.Timer2_A2
index URL

MSP430 Timer2_A2 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer2_A2.xdc
var Timer2_A2 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer2_A2');
module-wide constants & types
    values of type Timer2_A2.CAP_t//
        const Timer2_A2.CAP_OFF// Compare mode;
        const Timer2_A2.CAP// Capture mode;
    values of type Timer2_A2.CCIE_t//
        const Timer2_A2.CCIE_OFF;
        const Timer2_A2.CCIE;
    values of type Timer2_A2.CCIFG_t//
        const Timer2_A2.CCIFG_OFF;
        const Timer2_A2.CCIFG;
    values of type Timer2_A2.CCIS_t//
        const Timer2_A2.CCIS_0// CCIxA;
        const Timer2_A2.CCIS_1// CCIxB;
        const Timer2_A2.CCIS_2// GND;
        const Timer2_A2.CCIS_3// Vcc;
    values of type Timer2_A2.CCI_t//
        const Timer2_A2.CCI_OFF;
        const Timer2_A2.CCI;
    values of type Timer2_A2.CM_t//
        const Timer2_A2.CM_0// No Capture;
        const Timer2_A2.CM_1// Rising Edge;
        const Timer2_A2.CM_2// Falling Edge;
        const Timer2_A2.CM_3// Both Edges;
    values of type Timer2_A2.COV_t//
        const Timer2_A2.COV_OFF;
        const Timer2_A2.COV;
    values of type Timer2_A2.ID_t//
        const Timer2_A2.ID_0// Divider - /1;
        const Timer2_A2.ID_1// Divider - /2;
        const Timer2_A2.ID_2// Divider - /4;
        const Timer2_A2.ID_3// Divider - /8;
    values of type Timer2_A2.IVValues// TA3IV Definitions
        const Timer2_A2.TAIV_NONE// No Interrupt pending;
        const Timer2_A2.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer2_A2.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer2_A2.TAIV_6// Reserved;
        const Timer2_A2.TAIV_8// Reserved;
        const Timer2_A2.TAIV_TAIFG// TAIFG;
    values of type Timer2_A2.MC_t//
        const Timer2_A2.MC_0// Stop Mode;
        const Timer2_A2.MC_1// Up Mode;
        const Timer2_A2.MC_2// Continuous Mode;
        const Timer2_A2.MC_3// Up/Down Mode;
    values of type Timer2_A2.OUTMOD_t//
        const Timer2_A2.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer2_A2.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer2_A2.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer2_A2.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer2_A2.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer2_A2.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer2_A2.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer2_A2.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer2_A2.OUT_t//
        const Timer2_A2.OUT_OFF;
        const Timer2_A2.OUT;
    values of type Timer2_A2.SCCI_t//
        const Timer2_A2.SCCI_OFF// Latched capture signal (read);
        const Timer2_A2.SCCI// Latched capture signal (read);
    values of type Timer2_A2.SCS_t//
        const Timer2_A2.SCS_OFF// Asynchronous Capture;
        const Timer2_A2.SCS// Sychronous Capture;
    values of type Timer2_A2.TACLR_t//
        const Timer2_A2.TACLR_OFF;
        const Timer2_A2.TACLR;
    values of type Timer2_A2.TAIE_t//
        const Timer2_A2.TAIE_OFF;
        const Timer2_A2.TAIE;
    values of type Timer2_A2.TAIFG_t//
        const Timer2_A2.TAIFG_OFF;
        const Timer2_A2.TAIFG;
    values of type Timer2_A2.TASSEL_t//
        const Timer2_A2.TASSEL_0// TACLK;
        const Timer2_A2.TASSEL_1// ACLK;
        const Timer2_A2.TASSEL_2// SMCLK;
        const Timer2_A2.TASSEL_3// INCLK;
    var obj = new Timer2_A2.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer2_A2.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer2_A2.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer2_A2.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer2_A2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer2_A2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer2_A2.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TA2CCR0// TA2CCR0, Timer_A Capture/Compare Register 0 = Bits16 0;
        params.TA2CCR1// TA2CCR1, Timer_A Capture/Compare Register 1 = Bits16 0;
        params.TA2CCTL0// TA2CCTL0, Capture/Compare Control Register 0 = Timer2_A2.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA2CCTL1// TA2CCTL1, Capture/Compare Control Register 1 = Timer2_A2.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA2CTL// TA2CTL, Timer2_A2 Control Register = Timer2_A2.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer2_A2.ForceSetDefaultRegister_t[] [
            {
                register: "TA2CTL",
                regForceSet: false
            },
            {
                register: "TA2CCTL0",
                regForceSet: false
            },
            {
                register: "TA2CCTL1",
                regForceSet: false
            },
            {
                register: "TA2CCR0",
                regForceSet: false
            },
            {
                register: "TA2CCR1",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer2_A2.regIntVect_t[3] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer2_A2.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer2_A2.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.CAP_t
    const Timer2_A2.CAP_OFF;
    // Compare mode
    const Timer2_A2.CAP;
    // Capture mode
enum Timer2_A2.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.CCIE_t
    const Timer2_A2.CCIE_OFF;
    const Timer2_A2.CCIE;
enum Timer2_A2.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.CCIFG_t
    const Timer2_A2.CCIFG_OFF;
    const Timer2_A2.CCIFG;
enum Timer2_A2.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.CCIS_t
    const Timer2_A2.CCIS_0;
    // CCIxA
    const Timer2_A2.CCIS_1;
    // CCIxB
    const Timer2_A2.CCIS_2;
    // GND
    const Timer2_A2.CCIS_3;
    // Vcc
enum Timer2_A2.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.CCI_t
    const Timer2_A2.CCI_OFF;
    const Timer2_A2.CCI;
enum Timer2_A2.CM_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.CM_t
    const Timer2_A2.CM_0;
    // No Capture
    const Timer2_A2.CM_1;
    // Rising Edge
    const Timer2_A2.CM_2;
    // Falling Edge
    const Timer2_A2.CM_3;
    // Both Edges
enum Timer2_A2.COV_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.COV_t
    const Timer2_A2.COV_OFF;
    const Timer2_A2.COV;
enum Timer2_A2.ID_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.ID_t
    const Timer2_A2.ID_0;
    // Divider - /1
    const Timer2_A2.ID_1;
    // Divider - /2
    const Timer2_A2.ID_2;
    // Divider - /4
    const Timer2_A2.ID_3;
    // Divider - /8
enum Timer2_A2.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer2_A2.IVValues
    const Timer2_A2.TAIV_NONE;
    // No Interrupt pending
    const Timer2_A2.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer2_A2.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer2_A2.TAIV_6;
    // Reserved
    const Timer2_A2.TAIV_8;
    // Reserved
    const Timer2_A2.TAIV_TAIFG;
    // TAIFG
enum Timer2_A2.MC_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.MC_t
    const Timer2_A2.MC_0;
    // Stop Mode
    const Timer2_A2.MC_1;
    // Up Mode
    const Timer2_A2.MC_2;
    // Continuous Mode
    const Timer2_A2.MC_3;
    // Up/Down Mode
enum Timer2_A2.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.OUTMOD_t
    const Timer2_A2.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer2_A2.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer2_A2.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer2_A2.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer2_A2.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer2_A2.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer2_A2.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer2_A2.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer2_A2.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.OUT_t
    const Timer2_A2.OUT_OFF;
    const Timer2_A2.OUT;
enum Timer2_A2.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.SCCI_t
    const Timer2_A2.SCCI_OFF;
    // Latched capture signal (read)
    const Timer2_A2.SCCI;
    // Latched capture signal (read)
enum Timer2_A2.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.SCS_t
    const Timer2_A2.SCS_OFF;
    // Asynchronous Capture
    const Timer2_A2.SCS;
    // Sychronous Capture
enum Timer2_A2.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.TACLR_t
    const Timer2_A2.TACLR_OFF;
    const Timer2_A2.TACLR;
enum Timer2_A2.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.TAIE_t
    const Timer2_A2.TAIE_OFF;
    const Timer2_A2.TAIE;
enum Timer2_A2.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.TAIFG_t
    const Timer2_A2.TAIFG_OFF;
    const Timer2_A2.TAIFG;
enum Timer2_A2.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer2_A2.TASSEL_t
    const Timer2_A2.TASSEL_0;
    // TACLK
    const Timer2_A2.TASSEL_1;
    // ACLK
    const Timer2_A2.TASSEL_2;
    // SMCLK
    const Timer2_A2.TASSEL_3;
    // INCLK
struct Timer2_A2.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer2_A2.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer2_A2.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer2_A2.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer2_A2.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer2_A2.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer2_A2.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer2_A2.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer2_A2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer2_A2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer2_A2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer2_A2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TA2CCR0 = Bits16 0;
    // TA2CCR0, Timer_A Capture/Compare Register 0
    params.TA2CCR1 = Bits16 0;
    // TA2CCR1, Timer_A Capture/Compare Register 1
    params.TA2CCTL0 = Timer2_A2.TACCTLx_t {
    // TA2CCTL0, Capture/Compare Control Register 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA2CCTL1 = Timer2_A2.TACCTLx_t {
    // TA2CCTL1, Capture/Compare Control Register 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA2CTL = Timer2_A2.TACTL_t {
    // TA2CTL, Timer2_A2 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer2_A2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TA2CTL",
            regForceSet: false
        },
        {
            register: "TA2CCTL0",
            regForceSet: false
        },
        {
            register: "TA2CCTL1",
            regForceSet: false
        },
        {
            register: "TA2CCR0",
            regForceSet: false
        },
        {
            register: "TA2CCR1",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer2_A2.regIntVect_t[3] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer2_A2.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.INCLK = Float 0;
config Timer2_A2.TA2CCR0 // instance
index URL

TA2CCR0, Timer_A Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.TA2CCR0 = Bits16 0;
config Timer2_A2.TA2CCR1 // instance
index URL

TA2CCR1, Timer_A Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.TA2CCR1 = Bits16 0;
config Timer2_A2.TA2CCTL0 // instance
index URL

TA2CCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.TA2CCTL0 = Timer2_A2.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer2_A2.TA2CCTL1 // instance
index URL

TA2CCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.TA2CCTL1 = Timer2_A2.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer2_A2.TA2CTL // instance
index URL

TA2CTL, Timer2_A2 Control Register

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.TA2CTL = Timer2_A2.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer2_A2.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.TACLK = Float 0;
config Timer2_A2.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer2_A2.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
const params.forceSetDefaultRegister = Timer2_A2.ForceSetDefaultRegister_t[] [
    {
        register: "TA2CTL",
        regForceSet: false
    },
    {
        register: "TA2CCTL0",
        regForceSet: false
    },
    {
        register: "TA2CCTL1",
        regForceSet: false
    },
    {
        register: "TA2CCR0",
        regForceSet: false
    },
    {
        register: "TA2CCR1",
        regForceSet: false
    }
];
config Timer2_A2.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.intNum = UInt undefined;
config Timer2_A2.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.interruptSource = Timer2_A2.regIntVect_t[3] undefined;
config Timer2_A2.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.isInternal = Bool false;
config Timer2_A2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer2_A2.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.numberOfTimers = UChar undefined;
config Timer2_A2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer2_A2.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer2_A2.create(IClock.Instance clock, params);
// Create an instance-object
Timer2_A2.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer2_A2.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:47 GMT


module ti.catalog.msp430.peripherals.timer.Timer2_A2

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer2_A2 ========
    14     *  MSP430 Timer2_A2 timer
    15     */
    16    metaonly module Timer2_A2 inherits ITimer_A {
    17
    18    instance:
    19        /*! TA2CTL, Timer2_A2 Control Register */
    20        config TACTL_t TA2CTL = {
    21            TASSEL : TASSEL_0,
    22            ID : ID_0,
    23            MC : MC_0,
    24            TACLR : TACLR_OFF,
    25            TAIE : TAIE_OFF,
    26            TAIFG : TAIFG_OFF
    27        };
    28
    29        /*! TA2CCTL0, Capture/Compare Control Register 0 */
    30        config TACCTLx_t TA2CCTL0 = {
    31            CM : CM_0,
    32            CCIS : CCIS_0,
    33            SCS : SCS_OFF,
    34            SCCI : SCCI_OFF,
    35            CAP : CAP_OFF,
    36            OUTMOD : OUTMOD_0,
    37            CCIE : CCIE_OFF,
    38            CCI : CCI_OFF,
    39            OUT : OUT_OFF,
    40            COV : COV_OFF,
    41            CCIFG : CCIFG_OFF
    42        };
    43
    44        /*! TA2CCTL1, Capture/Compare Control Register 1 */
    45        config TACCTLx_t TA2CCTL1 = {
    46            CM : CM_0,
    47            CCIS : CCIS_0,
    48            SCS : SCS_OFF,
    49            SCCI : SCCI_OFF,
    50            CAP : CAP_OFF,
    51            OUTMOD : OUTMOD_0,
    52            CCIE : CCIE_OFF,
    53            CCI : CCI_OFF,
    54            OUT : OUT_OFF,
    55            COV : COV_OFF,
    56            CCIFG : CCIFG_OFF
    57        };
    58
    59        /*! TA2CCR0, Timer_A Capture/Compare Register 0 */
    60        config Bits16 TA2CCR0 = 0;
    61        /*! TA2CCR1, Timer_A Capture/Compare Register 1 */
    62        config Bits16 TA2CCR1 = 0;
    63
    64        /*! Timer interrupt enables */
    65        config regIntVect_t interruptSource[3];
    66
    67        /*! Determine if each Register needs to be forced set or not */
    68        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    69        [
    70            { register : "TA2CTL"   , regForceSet : false },
    71            { register : "TA2CCTL0" , regForceSet : false },
    72            { register : "TA2CCTL1" , regForceSet : false },
    73            { register : "TA2CCR0"  , regForceSet : false },
    74            { register : "TA2CCR1"  , regForceSet : false }
    75        ];
    76    }


module ti.catalog.msp430.peripherals.timer.Timer2_A3

metaonly module ti.catalog.msp430.peripherals.timer.Timer2_A3
index URL

MSP430 Timer2_A3 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer2_A3.xdc
var Timer2_A3 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer2_A3');
module-wide constants & types
    values of type Timer2_A3.CAP_t//
        const Timer2_A3.CAP_OFF// Compare mode;
        const Timer2_A3.CAP// Capture mode;
    values of type Timer2_A3.CCIE_t//
        const Timer2_A3.CCIE_OFF;
        const Timer2_A3.CCIE;
    values of type Timer2_A3.CCIFG_t//
        const Timer2_A3.CCIFG_OFF;
        const Timer2_A3.CCIFG;
    values of type Timer2_A3.CCIS_t//
        const Timer2_A3.CCIS_0// CCIxA;
        const Timer2_A3.CCIS_1// CCIxB;
        const Timer2_A3.CCIS_2// GND;
        const Timer2_A3.CCIS_3// Vcc;
    values of type Timer2_A3.CCI_t//
        const Timer2_A3.CCI_OFF;
        const Timer2_A3.CCI;
    values of type Timer2_A3.CM_t//
        const Timer2_A3.CM_0// No Capture;
        const Timer2_A3.CM_1// Rising Edge;
        const Timer2_A3.CM_2// Falling Edge;
        const Timer2_A3.CM_3// Both Edges;
    values of type Timer2_A3.COV_t//
        const Timer2_A3.COV_OFF;
        const Timer2_A3.COV;
    values of type Timer2_A3.ID_t//
        const Timer2_A3.ID_0// Divider - /1;
        const Timer2_A3.ID_1// Divider - /2;
        const Timer2_A3.ID_2// Divider - /4;
        const Timer2_A3.ID_3// Divider - /8;
    values of type Timer2_A3.IVValues// TA3IV Definitions
        const Timer2_A3.TAIV_NONE// No Interrupt pending;
        const Timer2_A3.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer2_A3.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer2_A3.TAIV_6// Reserved;
        const Timer2_A3.TAIV_8// Reserved;
        const Timer2_A3.TAIV_TAIFG// TAIFG;
    values of type Timer2_A3.MC_t//
        const Timer2_A3.MC_0// Stop Mode;
        const Timer2_A3.MC_1// Up Mode;
        const Timer2_A3.MC_2// Continuous Mode;
        const Timer2_A3.MC_3// Up/Down Mode;
    values of type Timer2_A3.OUTMOD_t//
        const Timer2_A3.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer2_A3.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer2_A3.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer2_A3.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer2_A3.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer2_A3.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer2_A3.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer2_A3.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer2_A3.OUT_t//
        const Timer2_A3.OUT_OFF;
        const Timer2_A3.OUT;
    values of type Timer2_A3.SCCI_t//
        const Timer2_A3.SCCI_OFF// Latched capture signal (read);
        const Timer2_A3.SCCI// Latched capture signal (read);
    values of type Timer2_A3.SCS_t//
        const Timer2_A3.SCS_OFF// Asynchronous Capture;
        const Timer2_A3.SCS// Sychronous Capture;
    values of type Timer2_A3.TACLR_t//
        const Timer2_A3.TACLR_OFF;
        const Timer2_A3.TACLR;
    values of type Timer2_A3.TAIE_t//
        const Timer2_A3.TAIE_OFF;
        const Timer2_A3.TAIE;
    values of type Timer2_A3.TAIFG_t//
        const Timer2_A3.TAIFG_OFF;
        const Timer2_A3.TAIFG;
    values of type Timer2_A3.TASSEL_t//
        const Timer2_A3.TASSEL_0// TACLK;
        const Timer2_A3.TASSEL_1// ACLK;
        const Timer2_A3.TASSEL_2// SMCLK;
        const Timer2_A3.TASSEL_3// INCLK;
    var obj = new Timer2_A3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer2_A3.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer2_A3.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer2_A3.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer2_A3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer2_A3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer2_A3.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TA2CCR0// TA2CCR0, Timer_A Capture/Compare Register 0 = Bits16 0;
        params.TA2CCR1// TA2CCR1, Timer_A Capture/Compare Register 1 = Bits16 0;
        params.TA2CCR2// TA2CCR2, Timer_A Capture/Compare Register 2 = Bits16 0;
        params.TA2CCTL0// TA2CCTL0, Capture/Compare Control Register 0 = Timer2_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA2CCTL1// TA2CCTL1, Capture/Compare Control Register 1 = Timer2_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA2CCTL2// TA2CCTL2, Capture/Compare Control Register 2 = Timer2_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA2CTL// TA2CTL, Timer_A3 Control Register = Timer2_A3.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer2_A3.ForceSetDefaultRegister_t[] [
            {
                register: "TA2CTL",
                regForceSet: false
            },
            {
                register: "TA2CCTL0",
                regForceSet: false
            },
            {
                register: "TA2CCTL1",
                regForceSet: false
            },
            {
                register: "TA2CCTL2",
                regForceSet: false
            },
            {
                register: "TA2CCR0",
                regForceSet: false
            },
            {
                register: "TA2CCR1",
                regForceSet: false
            },
            {
                register: "TA2CCR2",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer2_A3.regIntVect_t[4] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer2_A3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer2_A3.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.CAP_t
    const Timer2_A3.CAP_OFF;
    // Compare mode
    const Timer2_A3.CAP;
    // Capture mode
enum Timer2_A3.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.CCIE_t
    const Timer2_A3.CCIE_OFF;
    const Timer2_A3.CCIE;
enum Timer2_A3.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.CCIFG_t
    const Timer2_A3.CCIFG_OFF;
    const Timer2_A3.CCIFG;
enum Timer2_A3.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.CCIS_t
    const Timer2_A3.CCIS_0;
    // CCIxA
    const Timer2_A3.CCIS_1;
    // CCIxB
    const Timer2_A3.CCIS_2;
    // GND
    const Timer2_A3.CCIS_3;
    // Vcc
enum Timer2_A3.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.CCI_t
    const Timer2_A3.CCI_OFF;
    const Timer2_A3.CCI;
enum Timer2_A3.CM_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.CM_t
    const Timer2_A3.CM_0;
    // No Capture
    const Timer2_A3.CM_1;
    // Rising Edge
    const Timer2_A3.CM_2;
    // Falling Edge
    const Timer2_A3.CM_3;
    // Both Edges
enum Timer2_A3.COV_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.COV_t
    const Timer2_A3.COV_OFF;
    const Timer2_A3.COV;
enum Timer2_A3.ID_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.ID_t
    const Timer2_A3.ID_0;
    // Divider - /1
    const Timer2_A3.ID_1;
    // Divider - /2
    const Timer2_A3.ID_2;
    // Divider - /4
    const Timer2_A3.ID_3;
    // Divider - /8
enum Timer2_A3.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer2_A3.IVValues
    const Timer2_A3.TAIV_NONE;
    // No Interrupt pending
    const Timer2_A3.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer2_A3.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer2_A3.TAIV_6;
    // Reserved
    const Timer2_A3.TAIV_8;
    // Reserved
    const Timer2_A3.TAIV_TAIFG;
    // TAIFG
enum Timer2_A3.MC_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.MC_t
    const Timer2_A3.MC_0;
    // Stop Mode
    const Timer2_A3.MC_1;
    // Up Mode
    const Timer2_A3.MC_2;
    // Continuous Mode
    const Timer2_A3.MC_3;
    // Up/Down Mode
enum Timer2_A3.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.OUTMOD_t
    const Timer2_A3.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer2_A3.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer2_A3.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer2_A3.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer2_A3.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer2_A3.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer2_A3.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer2_A3.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer2_A3.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.OUT_t
    const Timer2_A3.OUT_OFF;
    const Timer2_A3.OUT;
enum Timer2_A3.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.SCCI_t
    const Timer2_A3.SCCI_OFF;
    // Latched capture signal (read)
    const Timer2_A3.SCCI;
    // Latched capture signal (read)
enum Timer2_A3.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.SCS_t
    const Timer2_A3.SCS_OFF;
    // Asynchronous Capture
    const Timer2_A3.SCS;
    // Sychronous Capture
enum Timer2_A3.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.TACLR_t
    const Timer2_A3.TACLR_OFF;
    const Timer2_A3.TACLR;
enum Timer2_A3.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.TAIE_t
    const Timer2_A3.TAIE_OFF;
    const Timer2_A3.TAIE;
enum Timer2_A3.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.TAIFG_t
    const Timer2_A3.TAIFG_OFF;
    const Timer2_A3.TAIFG;
enum Timer2_A3.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer2_A3.TASSEL_t
    const Timer2_A3.TASSEL_0;
    // TACLK
    const Timer2_A3.TASSEL_1;
    // ACLK
    const Timer2_A3.TASSEL_2;
    // SMCLK
    const Timer2_A3.TASSEL_3;
    // INCLK
struct Timer2_A3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer2_A3.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer2_A3.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer2_A3.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer2_A3.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer2_A3.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer2_A3.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer2_A3.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer2_A3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer2_A3.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer2_A3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer2_A3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TA2CCR0 = Bits16 0;
    // TA2CCR0, Timer_A Capture/Compare Register 0
    params.TA2CCR1 = Bits16 0;
    // TA2CCR1, Timer_A Capture/Compare Register 1
    params.TA2CCR2 = Bits16 0;
    // TA2CCR2, Timer_A Capture/Compare Register 2
    params.TA2CCTL0 = Timer2_A3.TACCTLx_t {
    // TA2CCTL0, Capture/Compare Control Register 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA2CCTL1 = Timer2_A3.TACCTLx_t {
    // TA2CCTL1, Capture/Compare Control Register 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA2CCTL2 = Timer2_A3.TACCTLx_t {
    // TA2CCTL2, Capture/Compare Control Register 2
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA2CTL = Timer2_A3.TACTL_t {
    // TA2CTL, Timer_A3 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer2_A3.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TA2CTL",
            regForceSet: false
        },
        {
            register: "TA2CCTL0",
            regForceSet: false
        },
        {
            register: "TA2CCTL1",
            regForceSet: false
        },
        {
            register: "TA2CCTL2",
            regForceSet: false
        },
        {
            register: "TA2CCR0",
            regForceSet: false
        },
        {
            register: "TA2CCR1",
            regForceSet: false
        },
        {
            register: "TA2CCR2",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer2_A3.regIntVect_t[4] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer2_A3.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.INCLK = Float 0;
config Timer2_A3.TA2CCR0 // instance
index URL

TA2CCR0, Timer_A Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.TA2CCR0 = Bits16 0;
config Timer2_A3.TA2CCR1 // instance
index URL

TA2CCR1, Timer_A Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.TA2CCR1 = Bits16 0;
config Timer2_A3.TA2CCR2 // instance
index URL

TA2CCR2, Timer_A Capture/Compare Register 2

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.TA2CCR2 = Bits16 0;
config Timer2_A3.TA2CCTL0 // instance
index URL

TA2CCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.TA2CCTL0 = Timer2_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer2_A3.TA2CCTL1 // instance
index URL

TA2CCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.TA2CCTL1 = Timer2_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer2_A3.TA2CCTL2 // instance
index URL

TA2CCTL2, Capture/Compare Control Register 2

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.TA2CCTL2 = Timer2_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer2_A3.TA2CTL // instance
index URL

TA2CTL, Timer_A3 Control Register

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.TA2CTL = Timer2_A3.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer2_A3.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.TACLK = Float 0;
config Timer2_A3.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer2_A3.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
const params.forceSetDefaultRegister = Timer2_A3.ForceSetDefaultRegister_t[] [
    {
        register: "TA2CTL",
        regForceSet: false
    },
    {
        register: "TA2CCTL0",
        regForceSet: false
    },
    {
        register: "TA2CCTL1",
        regForceSet: false
    },
    {
        register: "TA2CCTL2",
        regForceSet: false
    },
    {
        register: "TA2CCR0",
        regForceSet: false
    },
    {
        register: "TA2CCR1",
        regForceSet: false
    },
    {
        register: "TA2CCR2",
        regForceSet: false
    }
];
config Timer2_A3.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.intNum = UInt undefined;
config Timer2_A3.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.interruptSource = Timer2_A3.regIntVect_t[4] undefined;
config Timer2_A3.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.isInternal = Bool false;
config Timer2_A3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer2_A3.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.numberOfTimers = UChar undefined;
config Timer2_A3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer2_A3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer2_A3.create(IClock.Instance clock, params);
// Create an instance-object
Timer2_A3.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer2_A3.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:47 GMT


module ti.catalog.msp430.peripherals.timer.Timer2_A3

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer2_A3 ========
    14     *  MSP430 Timer2_A3 timer
    15     */
    16    metaonly module Timer2_A3 inherits ITimer_A {
    17
    18    instance:
    19        /*! TA2CTL, Timer_A3 Control Register */
    20        config TACTL_t TA2CTL = {
    21            TASSEL : TASSEL_0,
    22            ID : ID_0,
    23            MC : MC_0,
    24            TACLR : TACLR_OFF,
    25            TAIE : TAIE_OFF,
    26            TAIFG : TAIFG_OFF
    27        };
    28
    29        /*! TA2CCTL0, Capture/Compare Control Register 0 */
    30        config TACCTLx_t TA2CCTL0 = {
    31            CM : CM_0,
    32            CCIS : CCIS_0,
    33            SCS : SCS_OFF,
    34            SCCI : SCCI_OFF,
    35            CAP : CAP_OFF,
    36            OUTMOD : OUTMOD_0,
    37            CCIE : CCIE_OFF,
    38            CCI : CCI_OFF,
    39            OUT : OUT_OFF,
    40            COV : COV_OFF,
    41            CCIFG : CCIFG_OFF
    42        };
    43
    44        /*! TA2CCTL1, Capture/Compare Control Register 1 */
    45        config TACCTLx_t TA2CCTL1 = {
    46            CM : CM_0,
    47            CCIS : CCIS_0,
    48            SCS : SCS_OFF,
    49            SCCI : SCCI_OFF,
    50            CAP : CAP_OFF,
    51            OUTMOD : OUTMOD_0,
    52            CCIE : CCIE_OFF,
    53            CCI : CCI_OFF,
    54            OUT : OUT_OFF,
    55            COV : COV_OFF,
    56            CCIFG : CCIFG_OFF
    57        };
    58
    59        /*! TA2CCTL2, Capture/Compare Control Register 2 */
    60        config TACCTLx_t TA2CCTL2 = {
    61            CM : CM_0,
    62            CCIS : CCIS_0,
    63            SCS : SCS_OFF,
    64            SCCI : SCCI_OFF,
    65            CAP : CAP_OFF,
    66            OUTMOD : OUTMOD_0,
    67            CCIE : CCIE_OFF,
    68            CCI : CCI_OFF,
    69            OUT : OUT_OFF,
    70            COV : COV_OFF,
    71            CCIFG : CCIFG_OFF
    72        };
    73
    74        /*! TA2CCR0, Timer_A Capture/Compare Register 0 */
    75        config Bits16 TA2CCR0 = 0;
    76        /*! TA2CCR1, Timer_A Capture/Compare Register 1 */
    77        config Bits16 TA2CCR1 = 0;
    78        /*! TA2CCR2, Timer_A Capture/Compare Register 2 */
    79        config Bits16 TA2CCR2 = 0;
    80
    81        /*! Timer interrupt enables */
    82        config regIntVect_t interruptSource[4];
    83
    84        /*! Determine if each Register needs to be forced set or not */
    85        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    86        [
    87            { register : "TA2CTL"   , regForceSet : false },
    88            { register : "TA2CCTL0" , regForceSet : false },
    89            { register : "TA2CCTL1" , regForceSet : false },
    90            { register : "TA2CCTL2" , regForceSet : false },
    91            { register : "TA2CCR0"  , regForceSet : false },
    92            { register : "TA2CCR1"  , regForceSet : false },
    93            { register : "TA2CCR2"  , regForceSet : false }
    94        ];
    95    }


module ti.catalog.msp430.peripherals.timer.Timer2_B3

metaonly module ti.catalog.msp430.peripherals.timer.Timer2_B3
index URL

MSP430 Timer2_B3 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer2_B3.xdc
var Timer2_B3 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer2_B3');
module-wide constants & types
    values of type Timer2_B3.CAP_t//
        const Timer2_B3.CAP_OFF;
        const Timer2_B3.CAP;
    values of type Timer2_B3.CCIE_t//
        const Timer2_B3.CCIE_OFF;
        const Timer2_B3.CCIE;
    values of type Timer2_B3.CCIFG_t//
        const Timer2_B3.CCIFG_OFF;
        const Timer2_B3.CCIFG;
    values of type Timer2_B3.CCIS_t//
        const Timer2_B3.CCIS_0// CCIxA;
        const Timer2_B3.CCIS_1// CCIxB;
        const Timer2_B3.CCIS_2// GND;
        const Timer2_B3.CCIS_3// Vcc;
    values of type Timer2_B3.CCI_t//
        const Timer2_B3.CCI_OFF;
        const Timer2_B3.CCI;
    values of type Timer2_B3.CLLD_t//
        const Timer2_B3.CLLD_0;
        const Timer2_B3.CLLD_1;
        const Timer2_B3.CLLD_2;
        const Timer2_B3.CLLD_3;
    values of type Timer2_B3.CM_t//
        const Timer2_B3.CM_0// No Capture;
        const Timer2_B3.CM_1// Rising Edge;
        const Timer2_B3.CM_2// Falling Edge;
        const Timer2_B3.CM_3// Both Edges;
    values of type Timer2_B3.CNTL_t//
        const Timer2_B3.CNTL_0// 16-bit, TBR(max) = 0FFFFh;
        const Timer2_B3.CNTL_1// 12-bit, TBR(max) = 0FFFh;
        const Timer2_B3.CNTL_2// 10-bit, TBR(max) = 03FFh;
        const Timer2_B3.CNTL_3// 8-bit, TBR(max) = 0FFh;
    values of type Timer2_B3.COV_t//
        const Timer2_B3.COV_OFF;
        const Timer2_B3.COV;
    values of type Timer2_B3.ID_t//
        const Timer2_B3.ID_0// Divider - /1;
        const Timer2_B3.ID_1// Divider - /2;
        const Timer2_B3.ID_2// Divider - /4;
        const Timer2_B3.ID_3// Divider - /8;
    values of type Timer2_B3.MC_t//
        const Timer2_B3.MC_0// Stop Mode;
        const Timer2_B3.MC_1// Up Mode;
        const Timer2_B3.MC_2// Continuous Mode;
        const Timer2_B3.MC_3// Up/Down Mode;
    values of type Timer2_B3.OUTMOD_t//
        const Timer2_B3.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer2_B3.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer2_B3.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer2_B3.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer2_B3.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer2_B3.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer2_B3.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer2_B3.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer2_B3.OUT_t//
        const Timer2_B3.OUT_OFF;
        const Timer2_B3.OUT;
    values of type Timer2_B3.SCCI_t//
        const Timer2_B3.SCCI_OFF;
        const Timer2_B3.SCCI;
    values of type Timer2_B3.SCS_t//
        const Timer2_B3.SCS_OFF;
        const Timer2_B3.SCS;
    values of type Timer2_B3.TBCLGRP_t//
        const Timer2_B3.TBCLGRP_0;
        const Timer2_B3.TBCLGRP_1;
        const Timer2_B3.TBCLGRP_2;
        const Timer2_B3.TBCLGRP_3;
    values of type Timer2_B3.TBCLR_t//
        const Timer2_B3.TBCLR_OFF;
        const Timer2_B3.TBCLR;
    values of type Timer2_B3.TBIE_t//
        const Timer2_B3.TBIE_OFF;
        const Timer2_B3.TBIE;
    values of type Timer2_B3.TBIFG_t//
        const Timer2_B3.TBIFG_OFF;
        const Timer2_B3.TBIFG;
    values of type Timer2_B3.TBSSEL_t//
        const Timer2_B3.TBSSEL_0// TBCLK;
        const Timer2_B3.TBSSEL_1// ACLK;
        const Timer2_B3.TBSSEL_2// SMCLK;
        const Timer2_B3.TBSSEL_3// INCLK;
    var obj = new Timer2_B3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer2_B3.TBCCTLx_t// ;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_B.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_B.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_B.SCS_t ...
        obj.CLLD// Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx = ITimer_B.CLLD_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_B.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_B.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_B.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_B.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_B.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_B.CCIFG_t ...
    var obj = new Timer2_B3.TBCTL_t// Timer_B Control Register;
        obj.TBCLGRP// TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update) = ITimer_B.TBCLGRP_t ...
        obj.CNTL// Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh = ITimer_B.CNTL_t ...
        obj.TBSSEL// Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK = ITimer_B.TBSSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_B.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h = ITimer_B.MC_t ...
        obj.TBCLR// Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero = ITimer_B.TBCLR_t ...
        obj.TBIE// Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.TBIE_t ...
        obj.TBIFG// Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending = ITimer_B.TBIFG_t ...
    var obj = new Timer2_B3.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer2_B3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer2_B3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer2_B3.Params// Instance config-params object;
        params.INCLK// Timer_B INCLK = Float 0;
        params.TBCLK// Timer_B TBCLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer2_B3.regIntVect_t[8] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer2_B3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer2_B3.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.CAP_t
    const Timer2_B3.CAP_OFF;
    const Timer2_B3.CAP;
enum Timer2_B3.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.CCIE_t
    const Timer2_B3.CCIE_OFF;
    const Timer2_B3.CCIE;
enum Timer2_B3.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.CCIFG_t
    const Timer2_B3.CCIFG_OFF;
    const Timer2_B3.CCIFG;
enum Timer2_B3.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.CCIS_t
    const Timer2_B3.CCIS_0;
    // CCIxA
    const Timer2_B3.CCIS_1;
    // CCIxB
    const Timer2_B3.CCIS_2;
    // GND
    const Timer2_B3.CCIS_3;
    // Vcc
enum Timer2_B3.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.CCI_t
    const Timer2_B3.CCI_OFF;
    const Timer2_B3.CCI;
enum Timer2_B3.CLLD_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.CLLD_t
    const Timer2_B3.CLLD_0;
    const Timer2_B3.CLLD_1;
    const Timer2_B3.CLLD_2;
    const Timer2_B3.CLLD_3;
enum Timer2_B3.CM_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.CM_t
    const Timer2_B3.CM_0;
    // No Capture
    const Timer2_B3.CM_1;
    // Rising Edge
    const Timer2_B3.CM_2;
    // Falling Edge
    const Timer2_B3.CM_3;
    // Both Edges
enum Timer2_B3.CNTL_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.CNTL_t
    const Timer2_B3.CNTL_0;
    // 16-bit, TBR(max) = 0FFFFh
    const Timer2_B3.CNTL_1;
    // 12-bit, TBR(max) = 0FFFh
    const Timer2_B3.CNTL_2;
    // 10-bit, TBR(max) = 03FFh
    const Timer2_B3.CNTL_3;
    // 8-bit, TBR(max) = 0FFh
enum Timer2_B3.COV_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.COV_t
    const Timer2_B3.COV_OFF;
    const Timer2_B3.COV;
enum Timer2_B3.ID_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.ID_t
    const Timer2_B3.ID_0;
    // Divider - /1
    const Timer2_B3.ID_1;
    // Divider - /2
    const Timer2_B3.ID_2;
    // Divider - /4
    const Timer2_B3.ID_3;
    // Divider - /8
enum Timer2_B3.MC_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.MC_t
    const Timer2_B3.MC_0;
    // Stop Mode
    const Timer2_B3.MC_1;
    // Up Mode
    const Timer2_B3.MC_2;
    // Continuous Mode
    const Timer2_B3.MC_3;
    // Up/Down Mode
enum Timer2_B3.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.OUTMOD_t
    const Timer2_B3.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer2_B3.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer2_B3.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer2_B3.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer2_B3.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer2_B3.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer2_B3.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer2_B3.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer2_B3.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.OUT_t
    const Timer2_B3.OUT_OFF;
    const Timer2_B3.OUT;
enum Timer2_B3.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.SCCI_t
    const Timer2_B3.SCCI_OFF;
    const Timer2_B3.SCCI;
enum Timer2_B3.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.SCS_t
    const Timer2_B3.SCS_OFF;
    const Timer2_B3.SCS;
enum Timer2_B3.TBCLGRP_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.TBCLGRP_t
    const Timer2_B3.TBCLGRP_0;
    const Timer2_B3.TBCLGRP_1;
    const Timer2_B3.TBCLGRP_2;
    const Timer2_B3.TBCLGRP_3;
enum Timer2_B3.TBCLR_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.TBCLR_t
    const Timer2_B3.TBCLR_OFF;
    const Timer2_B3.TBCLR;
enum Timer2_B3.TBIE_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.TBIE_t
    const Timer2_B3.TBIE_OFF;
    const Timer2_B3.TBIE;
enum Timer2_B3.TBIFG_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.TBIFG_t
    const Timer2_B3.TBIFG_OFF;
    const Timer2_B3.TBIFG;
enum Timer2_B3.TBSSEL_t
index URL
XDCscript usage meta-domain
values of type Timer2_B3.TBSSEL_t
    const Timer2_B3.TBSSEL_0;
    // TBCLK
    const Timer2_B3.TBSSEL_1;
    // ACLK
    const Timer2_B3.TBSSEL_2;
    // SMCLK
    const Timer2_B3.TBSSEL_3;
    // INCLK
struct Timer2_B3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer2_B3.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer2_B3.TBCCTLx_t
index URL
XDCscript usage meta-domain
var obj = new Timer2_B3.TBCCTLx_t;
    obj.CM = ITimer_B.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_B.CCIS_t ...
    // Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_B.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.CLLD = ITimer_B.CLLD_t ...
    // Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx
    obj.CAP = ITimer_B.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_B.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_B.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_B.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_B.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_B.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_B.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
struct Timer2_B3.TBCTL_t
index URL

Timer_B Control Register

XDCscript usage meta-domain
var obj = new Timer2_B3.TBCTL_t;
    obj.TBCLGRP = ITimer_B.TBCLGRP_t ...
    // TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update)
    obj.CNTL = ITimer_B.CNTL_t ...
    // Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh
    obj.TBSSEL = ITimer_B.TBSSEL_t ...
    // Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK
    obj.ID = ITimer_B.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_B.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h
    obj.TBCLR = ITimer_B.TBCLR_t ...
    // Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero
    obj.TBIE = ITimer_B.TBIE_t ...
    // Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TBIFG = ITimer_B.TBIFG_t ...
    // Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending
SEE
TBCTL_t
struct Timer2_B3.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer2_B3.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer2_B3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer2_B3.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer2_B3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer2_B3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_B INCLK
    params.TBCLK = Float 0;
    // Timer_B TBCLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer2_B3.regIntVect_t[8] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer2_B3.INCLK // instance
index URL

Timer_B INCLK

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
...
params.INCLK = Float 0;
config Timer2_B3.TBCLK // instance
index URL

Timer_B TBCLK

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
...
params.TBCLK = Float 0;
config Timer2_B3.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer2_B3.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
...
params.intNum = UInt undefined;
config Timer2_B3.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
...
params.interruptSource = Timer2_B3.regIntVect_t[8] undefined;
config Timer2_B3.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
...
params.isInternal = Bool false;
config Timer2_B3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer2_B3.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
...
params.numberOfTimers = UChar undefined;
config Timer2_B3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer2_B3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer2_B3.create(IClock.Instance clock, params);
// Create an instance-object
Timer2_B3.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer2_B3.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:47 GMT


module ti.catalog.msp430.peripherals.timer.Timer2_B3

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer2_B3 ========
    14     *  MSP430 Timer2_B3 timer
    15     */
    16    metaonly module Timer2_B3 inherits ITimer_B {
    17
    18
    19    instance:
    20
    21        /*! Timer interrupt enables */
    22        config regIntVect_t interruptSource[8];
    23
    24    }


module ti.catalog.msp430.peripherals.timer.Timer3_A2

metaonly module ti.catalog.msp430.peripherals.timer.Timer3_A2
index URL

MSP430 Timer3_A2 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer3_A2.xdc
var Timer3_A2 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer3_A2');
module-wide constants & types
    values of type Timer3_A2.CAP_t//
        const Timer3_A2.CAP_OFF// Compare mode;
        const Timer3_A2.CAP// Capture mode;
    values of type Timer3_A2.CCIE_t//
        const Timer3_A2.CCIE_OFF;
        const Timer3_A2.CCIE;
    values of type Timer3_A2.CCIFG_t//
        const Timer3_A2.CCIFG_OFF;
        const Timer3_A2.CCIFG;
    values of type Timer3_A2.CCIS_t//
        const Timer3_A2.CCIS_0// CCIxA;
        const Timer3_A2.CCIS_1// CCIxB;
        const Timer3_A2.CCIS_2// GND;
        const Timer3_A2.CCIS_3// Vcc;
    values of type Timer3_A2.CCI_t//
        const Timer3_A2.CCI_OFF;
        const Timer3_A2.CCI;
    values of type Timer3_A2.CM_t//
        const Timer3_A2.CM_0// No Capture;
        const Timer3_A2.CM_1// Rising Edge;
        const Timer3_A2.CM_2// Falling Edge;
        const Timer3_A2.CM_3// Both Edges;
    values of type Timer3_A2.COV_t//
        const Timer3_A2.COV_OFF;
        const Timer3_A2.COV;
    values of type Timer3_A2.ID_t//
        const Timer3_A2.ID_0// Divider - /1;
        const Timer3_A2.ID_1// Divider - /2;
        const Timer3_A2.ID_2// Divider - /4;
        const Timer3_A2.ID_3// Divider - /8;
    values of type Timer3_A2.IVValues// TA3IV Definitions
        const Timer3_A2.TAIV_NONE// No Interrupt pending;
        const Timer3_A2.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer3_A2.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer3_A2.TAIV_6// Reserved;
        const Timer3_A2.TAIV_8// Reserved;
        const Timer3_A2.TAIV_TAIFG// TAIFG;
    values of type Timer3_A2.MC_t//
        const Timer3_A2.MC_0// Stop Mode;
        const Timer3_A2.MC_1// Up Mode;
        const Timer3_A2.MC_2// Continuous Mode;
        const Timer3_A2.MC_3// Up/Down Mode;
    values of type Timer3_A2.OUTMOD_t//
        const Timer3_A2.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer3_A2.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer3_A2.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer3_A2.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer3_A2.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer3_A2.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer3_A2.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer3_A2.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer3_A2.OUT_t//
        const Timer3_A2.OUT_OFF;
        const Timer3_A2.OUT;
    values of type Timer3_A2.SCCI_t//
        const Timer3_A2.SCCI_OFF// Latched capture signal (read);
        const Timer3_A2.SCCI// Latched capture signal (read);
    values of type Timer3_A2.SCS_t//
        const Timer3_A2.SCS_OFF// Asynchronous Capture;
        const Timer3_A2.SCS// Sychronous Capture;
    values of type Timer3_A2.TACLR_t//
        const Timer3_A2.TACLR_OFF;
        const Timer3_A2.TACLR;
    values of type Timer3_A2.TAIE_t//
        const Timer3_A2.TAIE_OFF;
        const Timer3_A2.TAIE;
    values of type Timer3_A2.TAIFG_t//
        const Timer3_A2.TAIFG_OFF;
        const Timer3_A2.TAIFG;
    values of type Timer3_A2.TASSEL_t//
        const Timer3_A2.TASSEL_0// TACLK;
        const Timer3_A2.TASSEL_1// ACLK;
        const Timer3_A2.TASSEL_2// SMCLK;
        const Timer3_A2.TASSEL_3// INCLK;
    var obj = new Timer3_A2.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer3_A2.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer3_A2.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer3_A2.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer3_A2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer3_A2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer3_A2.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TA3CCR0// TA3CCR0, Timer_A Capture/Compare Register 0 = Bits16 0;
        params.TA3CCR1// TA3CCR1, Timer_A Capture/Compare Register 1 = Bits16 0;
        params.TA3CCTL0// TA3CCTL0, Capture/Compare Control Register 0 = Timer3_A2.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA3CCTL1// TA3CCTL1, Capture/Compare Control Register 1 = Timer3_A2.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TA3CTL// TA3CTL, Timer3_A2 Control Register = Timer3_A2.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer3_A2.ForceSetDefaultRegister_t[] [
            {
                register: "TA3CTL",
                regForceSet: false
            },
            {
                register: "TA3CCTL0",
                regForceSet: false
            },
            {
                register: "TA3CCTL1",
                regForceSet: false
            },
            {
                register: "TA3CCR0",
                regForceSet: false
            },
            {
                register: "TA3CCR1",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer3_A2.regIntVect_t[3] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer3_A2.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer3_A2.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.CAP_t
    const Timer3_A2.CAP_OFF;
    // Compare mode
    const Timer3_A2.CAP;
    // Capture mode
enum Timer3_A2.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.CCIE_t
    const Timer3_A2.CCIE_OFF;
    const Timer3_A2.CCIE;
enum Timer3_A2.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.CCIFG_t
    const Timer3_A2.CCIFG_OFF;
    const Timer3_A2.CCIFG;
enum Timer3_A2.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.CCIS_t
    const Timer3_A2.CCIS_0;
    // CCIxA
    const Timer3_A2.CCIS_1;
    // CCIxB
    const Timer3_A2.CCIS_2;
    // GND
    const Timer3_A2.CCIS_3;
    // Vcc
enum Timer3_A2.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.CCI_t
    const Timer3_A2.CCI_OFF;
    const Timer3_A2.CCI;
enum Timer3_A2.CM_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.CM_t
    const Timer3_A2.CM_0;
    // No Capture
    const Timer3_A2.CM_1;
    // Rising Edge
    const Timer3_A2.CM_2;
    // Falling Edge
    const Timer3_A2.CM_3;
    // Both Edges
enum Timer3_A2.COV_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.COV_t
    const Timer3_A2.COV_OFF;
    const Timer3_A2.COV;
enum Timer3_A2.ID_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.ID_t
    const Timer3_A2.ID_0;
    // Divider - /1
    const Timer3_A2.ID_1;
    // Divider - /2
    const Timer3_A2.ID_2;
    // Divider - /4
    const Timer3_A2.ID_3;
    // Divider - /8
enum Timer3_A2.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer3_A2.IVValues
    const Timer3_A2.TAIV_NONE;
    // No Interrupt pending
    const Timer3_A2.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer3_A2.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer3_A2.TAIV_6;
    // Reserved
    const Timer3_A2.TAIV_8;
    // Reserved
    const Timer3_A2.TAIV_TAIFG;
    // TAIFG
enum Timer3_A2.MC_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.MC_t
    const Timer3_A2.MC_0;
    // Stop Mode
    const Timer3_A2.MC_1;
    // Up Mode
    const Timer3_A2.MC_2;
    // Continuous Mode
    const Timer3_A2.MC_3;
    // Up/Down Mode
enum Timer3_A2.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.OUTMOD_t
    const Timer3_A2.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer3_A2.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer3_A2.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer3_A2.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer3_A2.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer3_A2.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer3_A2.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer3_A2.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer3_A2.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.OUT_t
    const Timer3_A2.OUT_OFF;
    const Timer3_A2.OUT;
enum Timer3_A2.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.SCCI_t
    const Timer3_A2.SCCI_OFF;
    // Latched capture signal (read)
    const Timer3_A2.SCCI;
    // Latched capture signal (read)
enum Timer3_A2.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.SCS_t
    const Timer3_A2.SCS_OFF;
    // Asynchronous Capture
    const Timer3_A2.SCS;
    // Sychronous Capture
enum Timer3_A2.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.TACLR_t
    const Timer3_A2.TACLR_OFF;
    const Timer3_A2.TACLR;
enum Timer3_A2.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.TAIE_t
    const Timer3_A2.TAIE_OFF;
    const Timer3_A2.TAIE;
enum Timer3_A2.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.TAIFG_t
    const Timer3_A2.TAIFG_OFF;
    const Timer3_A2.TAIFG;
enum Timer3_A2.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer3_A2.TASSEL_t
    const Timer3_A2.TASSEL_0;
    // TACLK
    const Timer3_A2.TASSEL_1;
    // ACLK
    const Timer3_A2.TASSEL_2;
    // SMCLK
    const Timer3_A2.TASSEL_3;
    // INCLK
struct Timer3_A2.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer3_A2.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer3_A2.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer3_A2.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer3_A2.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer3_A2.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer3_A2.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer3_A2.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer3_A2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer3_A2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer3_A2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer3_A2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TA3CCR0 = Bits16 0;
    // TA3CCR0, Timer_A Capture/Compare Register 0
    params.TA3CCR1 = Bits16 0;
    // TA3CCR1, Timer_A Capture/Compare Register 1
    params.TA3CCTL0 = Timer3_A2.TACCTLx_t {
    // TA3CCTL0, Capture/Compare Control Register 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA3CCTL1 = Timer3_A2.TACCTLx_t {
    // TA3CCTL1, Capture/Compare Control Register 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TA3CTL = Timer3_A2.TACTL_t {
    // TA3CTL, Timer3_A2 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer3_A2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TA3CTL",
            regForceSet: false
        },
        {
            register: "TA3CCTL0",
            regForceSet: false
        },
        {
            register: "TA3CCTL1",
            regForceSet: false
        },
        {
            register: "TA3CCR0",
            regForceSet: false
        },
        {
            register: "TA3CCR1",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer3_A2.regIntVect_t[3] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer3_A2.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.INCLK = Float 0;
config Timer3_A2.TA3CCR0 // instance
index URL

TA3CCR0, Timer_A Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.TA3CCR0 = Bits16 0;
config Timer3_A2.TA3CCR1 // instance
index URL

TA3CCR1, Timer_A Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.TA3CCR1 = Bits16 0;
config Timer3_A2.TA3CCTL0 // instance
index URL

TA3CCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.TA3CCTL0 = Timer3_A2.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer3_A2.TA3CCTL1 // instance
index URL

TA3CCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.TA3CCTL1 = Timer3_A2.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer3_A2.TA3CTL // instance
index URL

TA3CTL, Timer3_A2 Control Register

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.TA3CTL = Timer3_A2.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer3_A2.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.TACLK = Float 0;
config Timer3_A2.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer3_A2.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
const params.forceSetDefaultRegister = Timer3_A2.ForceSetDefaultRegister_t[] [
    {
        register: "TA3CTL",
        regForceSet: false
    },
    {
        register: "TA3CCTL0",
        regForceSet: false
    },
    {
        register: "TA3CCTL1",
        regForceSet: false
    },
    {
        register: "TA3CCR0",
        regForceSet: false
    },
    {
        register: "TA3CCR1",
        regForceSet: false
    }
];
config Timer3_A2.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.intNum = UInt undefined;
config Timer3_A2.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.interruptSource = Timer3_A2.regIntVect_t[3] undefined;
config Timer3_A2.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.isInternal = Bool false;
config Timer3_A2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer3_A2.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.numberOfTimers = UChar undefined;
config Timer3_A2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer3_A2.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer3_A2.create(IClock.Instance clock, params);
// Create an instance-object
Timer3_A2.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer3_A2.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:47 GMT


module ti.catalog.msp430.peripherals.timer.Timer3_A2

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer3_A2 ========
    14     *  MSP430 Timer3_A2 timer
    15     */
    16    metaonly module Timer3_A2 inherits ITimer_A {
    17
    18    instance:
    19        /*! TA3CTL, Timer3_A2 Control Register */
    20        config TACTL_t TA3CTL = {
    21            TASSEL : TASSEL_0,
    22            ID : ID_0,
    23            MC : MC_0,
    24            TACLR : TACLR_OFF,
    25            TAIE : TAIE_OFF,
    26            TAIFG : TAIFG_OFF
    27        };
    28
    29        /*! TA3CCTL0, Capture/Compare Control Register 0 */
    30        config TACCTLx_t TA3CCTL0 = {
    31            CM : CM_0,
    32            CCIS : CCIS_0,
    33            SCS : SCS_OFF,
    34            SCCI : SCCI_OFF,
    35            CAP : CAP_OFF,
    36            OUTMOD : OUTMOD_0,
    37            CCIE : CCIE_OFF,
    38            CCI : CCI_OFF,
    39            OUT : OUT_OFF,
    40            COV : COV_OFF,
    41            CCIFG : CCIFG_OFF
    42        };
    43
    44        /*! TA3CCTL1, Capture/Compare Control Register 1 */
    45        config TACCTLx_t TA3CCTL1 = {
    46            CM : CM_0,
    47            CCIS : CCIS_0,
    48            SCS : SCS_OFF,
    49            SCCI : SCCI_OFF,
    50            CAP : CAP_OFF,
    51            OUTMOD : OUTMOD_0,
    52            CCIE : CCIE_OFF,
    53            CCI : CCI_OFF,
    54            OUT : OUT_OFF,
    55            COV : COV_OFF,
    56            CCIFG : CCIFG_OFF
    57        };
    58
    59        /*! TA3CCR0, Timer_A Capture/Compare Register 0 */
    60        config Bits16 TA3CCR0 = 0;
    61        /*! TA3CCR1, Timer_A Capture/Compare Register 1 */
    62        config Bits16 TA3CCR1 = 0;
    63
    64        /*! Timer interrupt enables */
    65        config regIntVect_t interruptSource[3];
    66
    67        /*! Determine if each Register needs to be forced set or not */
    68        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    69        [
    70            { register : "TA3CTL"   , regForceSet : false },
    71            { register : "TA3CCTL0" , regForceSet : false },
    72            { register : "TA3CCTL1" , regForceSet : false },
    73            { register : "TA3CCR0"  , regForceSet : false },
    74            { register : "TA3CCR1"  , regForceSet : false }
    75        ];
    76    }


module ti.catalog.msp430.peripherals.timer.Timer_A2

metaonly module ti.catalog.msp430.peripherals.timer.Timer_A2
index URL

MSP430 Timer_A2 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer_A2.xdc
var Timer_A2 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer_A2');
module-wide constants & types
    values of type Timer_A2.CAP_t//
        const Timer_A2.CAP_OFF// Compare mode;
        const Timer_A2.CAP// Capture mode;
    values of type Timer_A2.CCIE_t//
        const Timer_A2.CCIE_OFF;
        const Timer_A2.CCIE;
    values of type Timer_A2.CCIFG_t//
        const Timer_A2.CCIFG_OFF;
        const Timer_A2.CCIFG;
    values of type Timer_A2.CCIS_t//
        const Timer_A2.CCIS_0// CCIxA;
        const Timer_A2.CCIS_1// CCIxB;
        const Timer_A2.CCIS_2// GND;
        const Timer_A2.CCIS_3// Vcc;
    values of type Timer_A2.CCI_t//
        const Timer_A2.CCI_OFF;
        const Timer_A2.CCI;
    values of type Timer_A2.CM_t//
        const Timer_A2.CM_0// No Capture;
        const Timer_A2.CM_1// Rising Edge;
        const Timer_A2.CM_2// Falling Edge;
        const Timer_A2.CM_3// Both Edges;
    values of type Timer_A2.COV_t//
        const Timer_A2.COV_OFF;
        const Timer_A2.COV;
    values of type Timer_A2.ID_t//
        const Timer_A2.ID_0// Divider - /1;
        const Timer_A2.ID_1// Divider - /2;
        const Timer_A2.ID_2// Divider - /4;
        const Timer_A2.ID_3// Divider - /8;
    values of type Timer_A2.IVValues// TA3IV Definitions
        const Timer_A2.TAIV_NONE// No Interrupt pending;
        const Timer_A2.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer_A2.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer_A2.TAIV_6// Reserved;
        const Timer_A2.TAIV_8// Reserved;
        const Timer_A2.TAIV_TAIFG// TAIFG;
    values of type Timer_A2.MC_t//
        const Timer_A2.MC_0// Stop Mode;
        const Timer_A2.MC_1// Up Mode;
        const Timer_A2.MC_2// Continuous Mode;
        const Timer_A2.MC_3// Up/Down Mode;
    values of type Timer_A2.OUTMOD_t//
        const Timer_A2.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer_A2.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer_A2.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer_A2.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer_A2.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer_A2.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer_A2.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer_A2.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer_A2.OUT_t//
        const Timer_A2.OUT_OFF;
        const Timer_A2.OUT;
    values of type Timer_A2.SCCI_t//
        const Timer_A2.SCCI_OFF// Latched capture signal (read);
        const Timer_A2.SCCI// Latched capture signal (read);
    values of type Timer_A2.SCS_t//
        const Timer_A2.SCS_OFF// Asynchronous Capture;
        const Timer_A2.SCS// Sychronous Capture;
    values of type Timer_A2.TACLR_t//
        const Timer_A2.TACLR_OFF;
        const Timer_A2.TACLR;
    values of type Timer_A2.TAIE_t//
        const Timer_A2.TAIE_OFF;
        const Timer_A2.TAIE;
    values of type Timer_A2.TAIFG_t//
        const Timer_A2.TAIFG_OFF;
        const Timer_A2.TAIFG;
    values of type Timer_A2.TASSEL_t//
        const Timer_A2.TASSEL_0// TACLK;
        const Timer_A2.TASSEL_1// ACLK;
        const Timer_A2.TASSEL_2// SMCLK;
        const Timer_A2.TASSEL_3// INCLK;
    var obj = new Timer_A2.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer_A2.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer_A2.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer_A2.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer_A2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer_A2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer_A2.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TACCR0// TACCR0, Timer_A Capture/Compare Register 0 = Bits16 0;
        params.TACCR1// TACCR1, Timer_A Capture/Compare Register 1 = Bits16 0;
        params.TACCTL0// TACCTL0, Capture/Compare Control Register 0 = Timer_A2.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACCTL1// TACCTL1, Capture/Compare Control Register 1 = Timer_A2.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.TACTL// TACTL, Timer_A2 Control Register = Timer_A2.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer_A2.ForceSetDefaultRegister_t[] [
            {
                register: "TACTL",
                regForceSet: false
            },
            {
                register: "TACCTL0",
                regForceSet: false
            },
            {
                register: "TACCTL1",
                regForceSet: false
            },
            {
                register: "TACCR0",
                regForceSet: false
            },
            {
                register: "TACCR1",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer_A2.regIntVect_t[3] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer_A2.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer_A2.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.CAP_t
    const Timer_A2.CAP_OFF;
    // Compare mode
    const Timer_A2.CAP;
    // Capture mode
enum Timer_A2.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.CCIE_t
    const Timer_A2.CCIE_OFF;
    const Timer_A2.CCIE;
enum Timer_A2.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.CCIFG_t
    const Timer_A2.CCIFG_OFF;
    const Timer_A2.CCIFG;
enum Timer_A2.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.CCIS_t
    const Timer_A2.CCIS_0;
    // CCIxA
    const Timer_A2.CCIS_1;
    // CCIxB
    const Timer_A2.CCIS_2;
    // GND
    const Timer_A2.CCIS_3;
    // Vcc
enum Timer_A2.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.CCI_t
    const Timer_A2.CCI_OFF;
    const Timer_A2.CCI;
enum Timer_A2.CM_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.CM_t
    const Timer_A2.CM_0;
    // No Capture
    const Timer_A2.CM_1;
    // Rising Edge
    const Timer_A2.CM_2;
    // Falling Edge
    const Timer_A2.CM_3;
    // Both Edges
enum Timer_A2.COV_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.COV_t
    const Timer_A2.COV_OFF;
    const Timer_A2.COV;
enum Timer_A2.ID_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.ID_t
    const Timer_A2.ID_0;
    // Divider - /1
    const Timer_A2.ID_1;
    // Divider - /2
    const Timer_A2.ID_2;
    // Divider - /4
    const Timer_A2.ID_3;
    // Divider - /8
enum Timer_A2.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer_A2.IVValues
    const Timer_A2.TAIV_NONE;
    // No Interrupt pending
    const Timer_A2.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer_A2.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer_A2.TAIV_6;
    // Reserved
    const Timer_A2.TAIV_8;
    // Reserved
    const Timer_A2.TAIV_TAIFG;
    // TAIFG
enum Timer_A2.MC_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.MC_t
    const Timer_A2.MC_0;
    // Stop Mode
    const Timer_A2.MC_1;
    // Up Mode
    const Timer_A2.MC_2;
    // Continuous Mode
    const Timer_A2.MC_3;
    // Up/Down Mode
enum Timer_A2.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.OUTMOD_t
    const Timer_A2.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer_A2.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer_A2.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer_A2.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer_A2.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer_A2.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer_A2.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer_A2.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer_A2.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.OUT_t
    const Timer_A2.OUT_OFF;
    const Timer_A2.OUT;
enum Timer_A2.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.SCCI_t
    const Timer_A2.SCCI_OFF;
    // Latched capture signal (read)
    const Timer_A2.SCCI;
    // Latched capture signal (read)
enum Timer_A2.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.SCS_t
    const Timer_A2.SCS_OFF;
    // Asynchronous Capture
    const Timer_A2.SCS;
    // Sychronous Capture
enum Timer_A2.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.TACLR_t
    const Timer_A2.TACLR_OFF;
    const Timer_A2.TACLR;
enum Timer_A2.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.TAIE_t
    const Timer_A2.TAIE_OFF;
    const Timer_A2.TAIE;
enum Timer_A2.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.TAIFG_t
    const Timer_A2.TAIFG_OFF;
    const Timer_A2.TAIFG;
enum Timer_A2.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer_A2.TASSEL_t
    const Timer_A2.TASSEL_0;
    // TACLK
    const Timer_A2.TASSEL_1;
    // ACLK
    const Timer_A2.TASSEL_2;
    // SMCLK
    const Timer_A2.TASSEL_3;
    // INCLK
struct Timer_A2.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer_A2.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer_A2.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer_A2.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer_A2.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer_A2.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer_A2.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer_A2.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer_A2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer_A2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer_A2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer_A2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer_A2.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TACCR0 = Bits16 0;
    // TACCR0, Timer_A Capture/Compare Register 0
    params.TACCR1 = Bits16 0;
    // TACCR1, Timer_A Capture/Compare Register 1
    params.TACCTL0 = Timer_A2.TACCTLx_t {
    // TACCTL0, Capture/Compare Control Register 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACCTL1 = Timer_A2.TACCTLx_t {
    // TACCTL1, Capture/Compare Control Register 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.TACTL = Timer_A2.TACTL_t {
    // TACTL, Timer_A2 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer_A2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TACTL",
            regForceSet: false
        },
        {
            register: "TACCTL0",
            regForceSet: false
        },
        {
            register: "TACCTL1",
            regForceSet: false
        },
        {
            register: "TACCR0",
            regForceSet: false
        },
        {
            register: "TACCR1",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer_A2.regIntVect_t[3] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer_A2.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.INCLK = Float 0;
config Timer_A2.TACCR0 // instance
index URL

TACCR0, Timer_A Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.TACCR0 = Bits16 0;
config Timer_A2.TACCR1 // instance
index URL

TACCR1, Timer_A Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.TACCR1 = Bits16 0;
config Timer_A2.TACCTL0 // instance
index URL

TACCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.TACCTL0 = Timer_A2.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A2.TACCTL1 // instance
index URL

TACCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.TACCTL1 = Timer_A2.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A2.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.TACLK = Float 0;
config Timer_A2.TACTL // instance
index URL

TACTL, Timer_A2 Control Register

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.TACTL = Timer_A2.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer_A2.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer_A2.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
const params.forceSetDefaultRegister = Timer_A2.ForceSetDefaultRegister_t[] [
    {
        register: "TACTL",
        regForceSet: false
    },
    {
        register: "TACCTL0",
        regForceSet: false
    },
    {
        register: "TACCTL1",
        regForceSet: false
    },
    {
        register: "TACCR0",
        regForceSet: false
    },
    {
        register: "TACCR1",
        regForceSet: false
    }
];
config Timer_A2.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.intNum = UInt undefined;
config Timer_A2.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.interruptSource = Timer_A2.regIntVect_t[3] undefined;
config Timer_A2.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.isInternal = Bool false;
config Timer_A2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer_A2.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.numberOfTimers = UChar undefined;
config Timer_A2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer_A2.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer_A2.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer_A2.create(IClock.Instance clock, params);
// Create an instance-object
Timer_A2.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer_A2.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:47 GMT


module ti.catalog.msp430.peripherals.timer.Timer_A2

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer_A2 ========
    14     *  MSP430 Timer_A2 timer
    15     */
    16    metaonly module Timer_A2 inherits ITimer_A {
    17
    18    instance:
    19        /*! TACTL, Timer_A2 Control Register */
    20        config TACTL_t TACTL = {
    21            TASSEL : TASSEL_0,
    22            ID : ID_0,
    23            MC : MC_0,
    24            TACLR : TACLR_OFF,
    25            TAIE : TAIE_OFF,
    26            TAIFG : TAIFG_OFF
    27        };
    28
    29        /*! TACCTL0, Capture/Compare Control Register 0 */
    30        config TACCTLx_t TACCTL0 = {
    31            CM : CM_0,
    32            CCIS : CCIS_0,
    33            SCS : SCS_OFF,
    34            SCCI : SCCI_OFF,
    35            CAP : CAP_OFF,
    36            OUTMOD : OUTMOD_0,
    37            CCIE : CCIE_OFF,
    38            CCI : CCI_OFF,
    39            OUT : OUT_OFF,
    40            COV : COV_OFF,
    41            CCIFG : CCIFG_OFF
    42        };
    43
    44        /*! TACCTL1, Capture/Compare Control Register 1 */
    45        config TACCTLx_t TACCTL1 = {
    46            CM : CM_0,
    47            CCIS : CCIS_0,
    48            SCS : SCS_OFF,
    49            SCCI : SCCI_OFF,
    50            CAP : CAP_OFF,
    51            OUTMOD : OUTMOD_0,
    52            CCIE : CCIE_OFF,
    53            CCI : CCI_OFF,
    54            OUT : OUT_OFF,
    55            COV : COV_OFF,
    56            CCIFG : CCIFG_OFF
    57        };
    58
    59        /*! TACCR0, Timer_A Capture/Compare Register 0 */
    60        config Bits16 TACCR0 = 0;
    61        /*! TACCR1, Timer_A Capture/Compare Register 1 */
    62        config Bits16 TACCR1 = 0;
    63
    64        /*! Timer interrupt enables */
    65        config regIntVect_t interruptSource[3];
    66
    67        /*! Determine if each Register needs to be forced set or not */
    68        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    69        [
    70            { register : "TACTL"   , regForceSet : false },
    71            { register : "TACCTL0" , regForceSet : false },
    72            { register : "TACCTL1" , regForceSet : false },
    73            { register : "TACCR0"  , regForceSet : false },
    74            { register : "TACCR1"  , regForceSet : false }
    75        ];
    76    }


module ti.catalog.msp430.peripherals.timer.Timer_A3

metaonly module ti.catalog.msp430.peripherals.timer.Timer_A3
index URL

MSP430 Timer_A3 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer_A3.xdc
var Timer_A3 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer_A3');
module-wide constants & types
    values of type Timer_A3.CAP_t//
        const Timer_A3.CAP_OFF// Compare mode;
        const Timer_A3.CAP// Capture mode;
    values of type Timer_A3.CCIE_t//
        const Timer_A3.CCIE_OFF;
        const Timer_A3.CCIE;
    values of type Timer_A3.CCIFG_t//
        const Timer_A3.CCIFG_OFF;
        const Timer_A3.CCIFG;
    values of type Timer_A3.CCIS_t//
        const Timer_A3.CCIS_0// CCIxA;
        const Timer_A3.CCIS_1// CCIxB;
        const Timer_A3.CCIS_2// GND;
        const Timer_A3.CCIS_3// Vcc;
    values of type Timer_A3.CCI_t//
        const Timer_A3.CCI_OFF;
        const Timer_A3.CCI;
    values of type Timer_A3.CM_t//
        const Timer_A3.CM_0// No Capture;
        const Timer_A3.CM_1// Rising Edge;
        const Timer_A3.CM_2// Falling Edge;
        const Timer_A3.CM_3// Both Edges;
    values of type Timer_A3.COV_t//
        const Timer_A3.COV_OFF;
        const Timer_A3.COV;
    values of type Timer_A3.ID_t//
        const Timer_A3.ID_0// Divider - /1;
        const Timer_A3.ID_1// Divider - /2;
        const Timer_A3.ID_2// Divider - /4;
        const Timer_A3.ID_3// Divider - /8;
    values of type Timer_A3.IVValues// TA3IV Definitions
        const Timer_A3.TAIV_NONE// No Interrupt pending;
        const Timer_A3.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer_A3.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer_A3.TAIV_6// Reserved;
        const Timer_A3.TAIV_8// Reserved;
        const Timer_A3.TAIV_TAIFG// TAIFG;
    values of type Timer_A3.MC_t//
        const Timer_A3.MC_0// Stop Mode;
        const Timer_A3.MC_1// Up Mode;
        const Timer_A3.MC_2// Continuous Mode;
        const Timer_A3.MC_3// Up/Down Mode;
    values of type Timer_A3.OUTMOD_t//
        const Timer_A3.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer_A3.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer_A3.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer_A3.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer_A3.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer_A3.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer_A3.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer_A3.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer_A3.OUT_t//
        const Timer_A3.OUT_OFF;
        const Timer_A3.OUT;
    values of type Timer_A3.SCCI_t//
        const Timer_A3.SCCI_OFF// Latched capture signal (read);
        const Timer_A3.SCCI// Latched capture signal (read);
    values of type Timer_A3.SCS_t//
        const Timer_A3.SCS_OFF// Asynchronous Capture;
        const Timer_A3.SCS// Sychronous Capture;
    values of type Timer_A3.TACLR_t//
        const Timer_A3.TACLR_OFF;
        const Timer_A3.TACLR;
    values of type Timer_A3.TAIE_t//
        const Timer_A3.TAIE_OFF;
        const Timer_A3.TAIE;
    values of type Timer_A3.TAIFG_t//
        const Timer_A3.TAIFG_OFF;
        const Timer_A3.TAIFG;
    values of type Timer_A3.TASSEL_t//
        const Timer_A3.TASSEL_0// TACLK;
        const Timer_A3.TASSEL_1// ACLK;
        const Timer_A3.TASSEL_2// SMCLK;
        const Timer_A3.TASSEL_3// INCLK;
    var obj = new Timer_A3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer_A3.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer_A3.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer_A3.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer_A3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer_A3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer_A3.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TACCR0// TACCR0, Timer_A Capture/Compare Register 0 = Bits16 0;
        params.TACCR1// TACCR1, Timer_A Capture/Compare Register 1 = Bits16 0;
        params.TACCR2// TACCR2, Timer_A Capture/Compare Register 2 = Bits16 0;
        params.TACCTL0// TACCTL0, Capture/Compare Control Register 0 = Timer_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACCTL1// TACCTL1, Capture/Compare Control Register 1 = Timer_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACCTL2// TACCTL2, Capture/Compare Control Register 2 = Timer_A3.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.TACTL// TACTL, Timer_A3 Control Register = Timer_A3.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer_A3.ForceSetDefaultRegister_t[] [
            {
                register: "TACTL",
                regForceSet: false
            },
            {
                register: "TACCTL0",
                regForceSet: false
            },
            {
                register: "TACCTL1",
                regForceSet: false
            },
            {
                register: "TACCTL2",
                regForceSet: false
            },
            {
                register: "TACCR0",
                regForceSet: false
            },
            {
                register: "TACCR1",
                regForceSet: false
            },
            {
                register: "TACCR2",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer_A3.regIntVect_t[4] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer_A3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer_A3.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.CAP_t
    const Timer_A3.CAP_OFF;
    // Compare mode
    const Timer_A3.CAP;
    // Capture mode
enum Timer_A3.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.CCIE_t
    const Timer_A3.CCIE_OFF;
    const Timer_A3.CCIE;
enum Timer_A3.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.CCIFG_t
    const Timer_A3.CCIFG_OFF;
    const Timer_A3.CCIFG;
enum Timer_A3.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.CCIS_t
    const Timer_A3.CCIS_0;
    // CCIxA
    const Timer_A3.CCIS_1;
    // CCIxB
    const Timer_A3.CCIS_2;
    // GND
    const Timer_A3.CCIS_3;
    // Vcc
enum Timer_A3.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.CCI_t
    const Timer_A3.CCI_OFF;
    const Timer_A3.CCI;
enum Timer_A3.CM_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.CM_t
    const Timer_A3.CM_0;
    // No Capture
    const Timer_A3.CM_1;
    // Rising Edge
    const Timer_A3.CM_2;
    // Falling Edge
    const Timer_A3.CM_3;
    // Both Edges
enum Timer_A3.COV_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.COV_t
    const Timer_A3.COV_OFF;
    const Timer_A3.COV;
enum Timer_A3.ID_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.ID_t
    const Timer_A3.ID_0;
    // Divider - /1
    const Timer_A3.ID_1;
    // Divider - /2
    const Timer_A3.ID_2;
    // Divider - /4
    const Timer_A3.ID_3;
    // Divider - /8
enum Timer_A3.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer_A3.IVValues
    const Timer_A3.TAIV_NONE;
    // No Interrupt pending
    const Timer_A3.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer_A3.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer_A3.TAIV_6;
    // Reserved
    const Timer_A3.TAIV_8;
    // Reserved
    const Timer_A3.TAIV_TAIFG;
    // TAIFG
enum Timer_A3.MC_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.MC_t
    const Timer_A3.MC_0;
    // Stop Mode
    const Timer_A3.MC_1;
    // Up Mode
    const Timer_A3.MC_2;
    // Continuous Mode
    const Timer_A3.MC_3;
    // Up/Down Mode
enum Timer_A3.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.OUTMOD_t
    const Timer_A3.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer_A3.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer_A3.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer_A3.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer_A3.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer_A3.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer_A3.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer_A3.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer_A3.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.OUT_t
    const Timer_A3.OUT_OFF;
    const Timer_A3.OUT;
enum Timer_A3.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.SCCI_t
    const Timer_A3.SCCI_OFF;
    // Latched capture signal (read)
    const Timer_A3.SCCI;
    // Latched capture signal (read)
enum Timer_A3.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.SCS_t
    const Timer_A3.SCS_OFF;
    // Asynchronous Capture
    const Timer_A3.SCS;
    // Sychronous Capture
enum Timer_A3.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.TACLR_t
    const Timer_A3.TACLR_OFF;
    const Timer_A3.TACLR;
enum Timer_A3.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.TAIE_t
    const Timer_A3.TAIE_OFF;
    const Timer_A3.TAIE;
enum Timer_A3.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.TAIFG_t
    const Timer_A3.TAIFG_OFF;
    const Timer_A3.TAIFG;
enum Timer_A3.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer_A3.TASSEL_t
    const Timer_A3.TASSEL_0;
    // TACLK
    const Timer_A3.TASSEL_1;
    // ACLK
    const Timer_A3.TASSEL_2;
    // SMCLK
    const Timer_A3.TASSEL_3;
    // INCLK
struct Timer_A3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer_A3.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer_A3.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer_A3.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer_A3.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer_A3.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer_A3.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer_A3.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer_A3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer_A3.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer_A3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer_A3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer_A3.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TACCR0 = Bits16 0;
    // TACCR0, Timer_A Capture/Compare Register 0
    params.TACCR1 = Bits16 0;
    // TACCR1, Timer_A Capture/Compare Register 1
    params.TACCR2 = Bits16 0;
    // TACCR2, Timer_A Capture/Compare Register 2
    params.TACCTL0 = Timer_A3.TACCTLx_t {
    // TACCTL0, Capture/Compare Control Register 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACCTL1 = Timer_A3.TACCTLx_t {
    // TACCTL1, Capture/Compare Control Register 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACCTL2 = Timer_A3.TACCTLx_t {
    // TACCTL2, Capture/Compare Control Register 2
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.TACTL = Timer_A3.TACTL_t {
    // TACTL, Timer_A3 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer_A3.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TACTL",
            regForceSet: false
        },
        {
            register: "TACCTL0",
            regForceSet: false
        },
        {
            register: "TACCTL1",
            regForceSet: false
        },
        {
            register: "TACCTL2",
            regForceSet: false
        },
        {
            register: "TACCR0",
            regForceSet: false
        },
        {
            register: "TACCR1",
            regForceSet: false
        },
        {
            register: "TACCR2",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer_A3.regIntVect_t[4] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer_A3.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.INCLK = Float 0;
config Timer_A3.TACCR0 // instance
index URL

TACCR0, Timer_A Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.TACCR0 = Bits16 0;
config Timer_A3.TACCR1 // instance
index URL

TACCR1, Timer_A Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.TACCR1 = Bits16 0;
config Timer_A3.TACCR2 // instance
index URL

TACCR2, Timer_A Capture/Compare Register 2

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.TACCR2 = Bits16 0;
config Timer_A3.TACCTL0 // instance
index URL

TACCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.TACCTL0 = Timer_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A3.TACCTL1 // instance
index URL

TACCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.TACCTL1 = Timer_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A3.TACCTL2 // instance
index URL

TACCTL2, Capture/Compare Control Register 2

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.TACCTL2 = Timer_A3.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A3.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.TACLK = Float 0;
config Timer_A3.TACTL // instance
index URL

TACTL, Timer_A3 Control Register

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.TACTL = Timer_A3.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer_A3.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer_A3.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
const params.forceSetDefaultRegister = Timer_A3.ForceSetDefaultRegister_t[] [
    {
        register: "TACTL",
        regForceSet: false
    },
    {
        register: "TACCTL0",
        regForceSet: false
    },
    {
        register: "TACCTL1",
        regForceSet: false
    },
    {
        register: "TACCTL2",
        regForceSet: false
    },
    {
        register: "TACCR0",
        regForceSet: false
    },
    {
        register: "TACCR1",
        regForceSet: false
    },
    {
        register: "TACCR2",
        regForceSet: false
    }
];
config Timer_A3.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.intNum = UInt undefined;
config Timer_A3.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.interruptSource = Timer_A3.regIntVect_t[4] undefined;
config Timer_A3.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.isInternal = Bool false;
config Timer_A3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer_A3.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.numberOfTimers = UChar undefined;
config Timer_A3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer_A3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer_A3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer_A3.create(IClock.Instance clock, params);
// Create an instance-object
Timer_A3.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer_A3.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:48 GMT


module ti.catalog.msp430.peripherals.timer.Timer_A3

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer_A3 ========
    14     *  MSP430 Timer_A3 timer
    15     */
    16    metaonly module Timer_A3 inherits ITimer_A {
    17
    18    instance:
    19        /*! TACTL, Timer_A3 Control Register */
    20        config TACTL_t TACTL = {
    21            TASSEL : TASSEL_0,
    22            ID : ID_0,
    23            MC : MC_0,
    24            TACLR : TACLR_OFF,
    25            TAIE : TAIE_OFF,
    26            TAIFG : TAIFG_OFF
    27        };
    28
    29        /*! TACCTL0, Capture/Compare Control Register 0 */
    30        config TACCTLx_t TACCTL0 = {
    31            CM : CM_0,
    32            CCIS : CCIS_0,
    33            SCS : SCS_OFF,
    34            SCCI : SCCI_OFF,
    35            CAP : CAP_OFF,
    36            OUTMOD : OUTMOD_0,
    37            CCIE : CCIE_OFF,
    38            CCI : CCI_OFF,
    39            OUT : OUT_OFF,
    40            COV : COV_OFF,
    41            CCIFG : CCIFG_OFF
    42        };
    43
    44        /*! TACCTL1, Capture/Compare Control Register 1 */
    45        config TACCTLx_t TACCTL1 = {
    46            CM : CM_0,
    47            CCIS : CCIS_0,
    48            SCS : SCS_OFF,
    49            SCCI : SCCI_OFF,
    50            CAP : CAP_OFF,
    51            OUTMOD : OUTMOD_0,
    52            CCIE : CCIE_OFF,
    53            CCI : CCI_OFF,
    54            OUT : OUT_OFF,
    55            COV : COV_OFF,
    56            CCIFG : CCIFG_OFF
    57        };
    58
    59        /*! TACCTL2, Capture/Compare Control Register 2 */
    60        config TACCTLx_t TACCTL2 = {
    61            CM : CM_0,
    62            CCIS : CCIS_0,
    63            SCS : SCS_OFF,
    64            SCCI : SCCI_OFF,
    65            CAP : CAP_OFF,
    66            OUTMOD : OUTMOD_0,
    67            CCIE : CCIE_OFF,
    68            CCI : CCI_OFF,
    69            OUT : OUT_OFF,
    70            COV : COV_OFF,
    71            CCIFG : CCIFG_OFF
    72        };
    73
    74        /*! TACCR0, Timer_A Capture/Compare Register 0 */
    75        config Bits16 TACCR0 = 0;
    76        /*! TACCR1, Timer_A Capture/Compare Register 1 */
    77        config Bits16 TACCR1 = 0;
    78        /*! TACCR2, Timer_A Capture/Compare Register 2 */
    79        config Bits16 TACCR2 = 0;
    80
    81        /*! Timer interrupt enables */
    82        config regIntVect_t interruptSource[4];
    83
    84        /*! Determine if each Register needs to be forced set or not */
    85        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    86        [
    87            { register : "TACTL"   , regForceSet : false },
    88            { register : "TACCTL0" , regForceSet : false },
    89            { register : "TACCTL1" , regForceSet : false },
    90            { register : "TACCTL2" , regForceSet : false },
    91            { register : "TACCR0"  , regForceSet : false },
    92            { register : "TACCR1"  , regForceSet : false },
    93            { register : "TACCR2"  , regForceSet : false }
    94        ];
    95    }


module ti.catalog.msp430.peripherals.timer.Timer_A5

metaonly module ti.catalog.msp430.peripherals.timer.Timer_A5
index URL

MSP430 Timer_A5 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer_A5.xdc
var Timer_A5 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer_A5');
module-wide constants & types
    values of type Timer_A5.CAP_t//
        const Timer_A5.CAP_OFF// Compare mode;
        const Timer_A5.CAP// Capture mode;
    values of type Timer_A5.CCIE_t//
        const Timer_A5.CCIE_OFF;
        const Timer_A5.CCIE;
    values of type Timer_A5.CCIFG_t//
        const Timer_A5.CCIFG_OFF;
        const Timer_A5.CCIFG;
    values of type Timer_A5.CCIS_t//
        const Timer_A5.CCIS_0// CCIxA;
        const Timer_A5.CCIS_1// CCIxB;
        const Timer_A5.CCIS_2// GND;
        const Timer_A5.CCIS_3// Vcc;
    values of type Timer_A5.CCI_t//
        const Timer_A5.CCI_OFF;
        const Timer_A5.CCI;
    values of type Timer_A5.CM_t//
        const Timer_A5.CM_0// No Capture;
        const Timer_A5.CM_1// Rising Edge;
        const Timer_A5.CM_2// Falling Edge;
        const Timer_A5.CM_3// Both Edges;
    values of type Timer_A5.COV_t//
        const Timer_A5.COV_OFF;
        const Timer_A5.COV;
    values of type Timer_A5.ID_t//
        const Timer_A5.ID_0// Divider - /1;
        const Timer_A5.ID_1// Divider - /2;
        const Timer_A5.ID_2// Divider - /4;
        const Timer_A5.ID_3// Divider - /8;
    values of type Timer_A5.IVValues// TA3IV Definitions
        const Timer_A5.TAIV_NONE// No Interrupt pending;
        const Timer_A5.TAIV_TACCR1// TACCR1_CCIFG;
        const Timer_A5.TAIV_TACCR2// TACCR2_CCIFG;
        const Timer_A5.TAIV_6// Reserved;
        const Timer_A5.TAIV_8// Reserved;
        const Timer_A5.TAIV_TAIFG// TAIFG;
    values of type Timer_A5.MC_t//
        const Timer_A5.MC_0// Stop Mode;
        const Timer_A5.MC_1// Up Mode;
        const Timer_A5.MC_2// Continuous Mode;
        const Timer_A5.MC_3// Up/Down Mode;
    values of type Timer_A5.OUTMOD_t//
        const Timer_A5.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer_A5.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer_A5.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer_A5.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer_A5.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer_A5.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer_A5.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer_A5.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer_A5.OUT_t//
        const Timer_A5.OUT_OFF;
        const Timer_A5.OUT;
    values of type Timer_A5.SCCI_t//
        const Timer_A5.SCCI_OFF// Latched capture signal (read);
        const Timer_A5.SCCI// Latched capture signal (read);
    values of type Timer_A5.SCS_t//
        const Timer_A5.SCS_OFF// Asynchronous Capture;
        const Timer_A5.SCS// Sychronous Capture;
    values of type Timer_A5.TACLR_t//
        const Timer_A5.TACLR_OFF;
        const Timer_A5.TACLR;
    values of type Timer_A5.TAIE_t//
        const Timer_A5.TAIE_OFF;
        const Timer_A5.TAIE;
    values of type Timer_A5.TAIFG_t//
        const Timer_A5.TAIFG_OFF;
        const Timer_A5.TAIFG;
    values of type Timer_A5.TASSEL_t//
        const Timer_A5.TASSEL_0// TACLK;
        const Timer_A5.TASSEL_1// ACLK;
        const Timer_A5.TASSEL_2// SMCLK;
        const Timer_A5.TASSEL_3// INCLK;
    var obj = new Timer_A5.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer_A5.TACCTLx_t// Capture/Compare Control Register;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_A.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_A.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_A.SCS_t ...
        obj.SCCI// Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit = ITimer_A.SCCI_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_A.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_A.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_A.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_A.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_A.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.CCIFG_t ...
    var obj = new Timer_A5.TACTL_t// Timer_A Control Register;
        obj.TASSEL// Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK = ITimer_A.TASSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_A.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h = ITimer_A.MC_t ...
        obj.TACLR// Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero = ITimer_A.TACLR_t ...
        obj.TAIE// Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_A.TAIE_t ...
        obj.TAIFG// Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_A.TAIFG_t ...
    var obj = new Timer_A5.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer_A5.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer_A5.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer_A5.Params// Instance config-params object;
        params.INCLK// Timer_A INCLK = Float 0;
        params.TACCR0// Capture/Compare 0 = Bits16 0;
        params.TACCR1// Capture/Compare 1 = Bits16 0;
        params.TACCR2// Capture/Compare 2 = Bits16 0;
        params.TACCR3// Capture/Compare 3 = Bits16 0;
        params.TACCR4// Capture/Compare 4 = Bits16 0;
        params.TACCTL0// Capture/Compare Control 0 = Timer_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACCTL1// Capture/Compare Control 1 = Timer_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACCTL2// Capture/Compare Control 2 = Timer_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACCTL3// Capture/Compare Control 3 = Timer_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACCTL4// Capture/Compare Control 4 = Timer_A5.TACCTLx_t {
            CM: ITimer_A.CM_0,
            CCIS: ITimer_A.CCIS_0,
            SCS: ITimer_A.SCS_OFF,
            SCCI: ITimer_A.SCCI_OFF,
            CAP: ITimer_A.CAP_OFF,
            OUTMOD: ITimer_A.OUTMOD_0,
            CCIE: ITimer_A.CCIE_OFF,
            CCI: ITimer_A.CCI_OFF,
            OUT: ITimer_A.OUT_OFF,
            COV: ITimer_A.COV_OFF,
            CCIFG: ITimer_A.CCIFG_OFF
        };
        params.TACLK// Timer_A TACLK = Float 0;
        params.TAxCTL// Timer A5 Control Register = Timer_A5.TACTL_t {
            TASSEL: ITimer_A.TASSEL_0,
            ID: ITimer_A.ID_0,
            MC: ITimer_A.MC_0,
            TACLR: ITimer_A.TACLR_OFF,
            TAIE: ITimer_A.TAIE_OFF,
            TAIFG: ITimer_A.TAIFG_OFF
        };
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer_A5.ForceSetDefaultRegister_t[] [
            {
                register: "TACTL",
                regForceSet: false
            },
            {
                register: "TACCTL0",
                regForceSet: false
            },
            {
                register: "TACCTL1",
                regForceSet: false
            },
            {
                register: "TACCTL2",
                regForceSet: false
            },
            {
                register: "TACCTL3",
                regForceSet: false
            },
            {
                register: "TACCTL4",
                regForceSet: false
            },
            {
                register: "TACCR0",
                regForceSet: false
            },
            {
                register: "TACCR1",
                regForceSet: false
            },
            {
                register: "TACCR2",
                regForceSet: false
            },
            {
                register: "TACCR3",
                regForceSet: false
            },
            {
                register: "TACCR4",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer_A5.regIntVect_t[6] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String "TimerA5";
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer_A5.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer_A5.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.CAP_t
    const Timer_A5.CAP_OFF;
    // Compare mode
    const Timer_A5.CAP;
    // Capture mode
enum Timer_A5.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.CCIE_t
    const Timer_A5.CCIE_OFF;
    const Timer_A5.CCIE;
enum Timer_A5.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.CCIFG_t
    const Timer_A5.CCIFG_OFF;
    const Timer_A5.CCIFG;
enum Timer_A5.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.CCIS_t
    const Timer_A5.CCIS_0;
    // CCIxA
    const Timer_A5.CCIS_1;
    // CCIxB
    const Timer_A5.CCIS_2;
    // GND
    const Timer_A5.CCIS_3;
    // Vcc
enum Timer_A5.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.CCI_t
    const Timer_A5.CCI_OFF;
    const Timer_A5.CCI;
enum Timer_A5.CM_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.CM_t
    const Timer_A5.CM_0;
    // No Capture
    const Timer_A5.CM_1;
    // Rising Edge
    const Timer_A5.CM_2;
    // Falling Edge
    const Timer_A5.CM_3;
    // Both Edges
enum Timer_A5.COV_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.COV_t
    const Timer_A5.COV_OFF;
    const Timer_A5.COV;
enum Timer_A5.ID_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.ID_t
    const Timer_A5.ID_0;
    // Divider - /1
    const Timer_A5.ID_1;
    // Divider - /2
    const Timer_A5.ID_2;
    // Divider - /4
    const Timer_A5.ID_3;
    // Divider - /8
enum Timer_A5.IVValues
index URL

TA3IV Definitions

XDCscript usage meta-domain
values of type Timer_A5.IVValues
    const Timer_A5.TAIV_NONE;
    // No Interrupt pending
    const Timer_A5.TAIV_TACCR1;
    // TACCR1_CCIFG
    const Timer_A5.TAIV_TACCR2;
    // TACCR2_CCIFG
    const Timer_A5.TAIV_6;
    // Reserved
    const Timer_A5.TAIV_8;
    // Reserved
    const Timer_A5.TAIV_TAIFG;
    // TAIFG
enum Timer_A5.MC_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.MC_t
    const Timer_A5.MC_0;
    // Stop Mode
    const Timer_A5.MC_1;
    // Up Mode
    const Timer_A5.MC_2;
    // Continuous Mode
    const Timer_A5.MC_3;
    // Up/Down Mode
enum Timer_A5.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.OUTMOD_t
    const Timer_A5.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer_A5.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer_A5.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer_A5.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer_A5.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer_A5.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer_A5.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer_A5.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer_A5.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.OUT_t
    const Timer_A5.OUT_OFF;
    const Timer_A5.OUT;
enum Timer_A5.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.SCCI_t
    const Timer_A5.SCCI_OFF;
    // Latched capture signal (read)
    const Timer_A5.SCCI;
    // Latched capture signal (read)
enum Timer_A5.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.SCS_t
    const Timer_A5.SCS_OFF;
    // Asynchronous Capture
    const Timer_A5.SCS;
    // Sychronous Capture
enum Timer_A5.TACLR_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.TACLR_t
    const Timer_A5.TACLR_OFF;
    const Timer_A5.TACLR;
enum Timer_A5.TAIE_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.TAIE_t
    const Timer_A5.TAIE_OFF;
    const Timer_A5.TAIE;
enum Timer_A5.TAIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.TAIFG_t
    const Timer_A5.TAIFG_OFF;
    const Timer_A5.TAIFG;
enum Timer_A5.TASSEL_t
index URL
XDCscript usage meta-domain
values of type Timer_A5.TASSEL_t
    const Timer_A5.TASSEL_0;
    // TACLK
    const Timer_A5.TASSEL_1;
    // ACLK
    const Timer_A5.TASSEL_2;
    // SMCLK
    const Timer_A5.TASSEL_3;
    // INCLK
struct Timer_A5.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer_A5.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer_A5.TACCTLx_t
index URL

Capture/Compare Control Register

XDCscript usage meta-domain
var obj = new Timer_A5.TACCTLx_t;
    obj.CM = ITimer_A.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_A.CCIS_t ...
    // Capture/compare input select. These bits select the TACCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_A.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.SCCI = ITimer_A.SCCI_t ...
    // Synchronized capture/compare input. The selected CCI input signal is latched with the EQUx signal and can be read via this bit
    obj.CAP = ITimer_A.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_A.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_A.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_A.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_A.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_A.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_A.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACCTLx_t
struct Timer_A5.TACTL_t
index URL

Timer_A Control Register

XDCscript usage meta-domain
var obj = new Timer_A5.TACTL_t;
    obj.TASSEL = ITimer_A.TASSEL_t ...
    // Timer_A clock source select 00 TACLK 01 ACLK 10 SMCLK 11 INCLK
    obj.ID = ITimer_A.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_A.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_A is not in use conserves power. 00 Stop mode: the timer is halted. 01 Up mode: the timer counts up to TACCR0. 10 Continuous mode: the timer counts up to 0FFFFh. 11 Up/down mode: the timer counts up to TACCR0 then down to 0000h
    obj.TACLR = ITimer_A.TACLR_t ...
    // Timer_A clear. Setting this bit resets TAR, the clock divider, and the count direction. The TACLR bit is automatically reset and is always read as zero
    obj.TAIE = ITimer_A.TAIE_t ...
    // Timer_A interrupt enable. This bit enables the TAIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TAIFG = ITimer_A.TAIFG_t ...
    // Timer_A interrupt flag 0 No interrupt pending 1 Interrupt pending
SEE
TACTL_t
struct Timer_A5.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer_A5.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer_A5.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer_A5.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer_A5.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer_A5.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer_A5.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_A INCLK
    params.TACCR0 = Bits16 0;
    // Capture/Compare 0
    params.TACCR1 = Bits16 0;
    // Capture/Compare 1
    params.TACCR2 = Bits16 0;
    // Capture/Compare 2
    params.TACCR3 = Bits16 0;
    // Capture/Compare 3
    params.TACCR4 = Bits16 0;
    // Capture/Compare 4
    params.TACCTL0 = Timer_A5.TACCTLx_t {
    // Capture/Compare Control 0
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACCTL1 = Timer_A5.TACCTLx_t {
    // Capture/Compare Control 1
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACCTL2 = Timer_A5.TACCTLx_t {
    // Capture/Compare Control 2
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACCTL3 = Timer_A5.TACCTLx_t {
    // Capture/Compare Control 3
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACCTL4 = Timer_A5.TACCTLx_t {
    // Capture/Compare Control 4
        CM: ITimer_A.CM_0,
        CCIS: ITimer_A.CCIS_0,
        SCS: ITimer_A.SCS_OFF,
        SCCI: ITimer_A.SCCI_OFF,
        CAP: ITimer_A.CAP_OFF,
        OUTMOD: ITimer_A.OUTMOD_0,
        CCIE: ITimer_A.CCIE_OFF,
        CCI: ITimer_A.CCI_OFF,
        OUT: ITimer_A.OUT_OFF,
        COV: ITimer_A.COV_OFF,
        CCIFG: ITimer_A.CCIFG_OFF
    };
    params.TACLK = Float 0;
    // Timer_A TACLK
    params.TAxCTL = Timer_A5.TACTL_t {
    // Timer A5 Control Register
        TASSEL: ITimer_A.TASSEL_0,
        ID: ITimer_A.ID_0,
        MC: ITimer_A.MC_0,
        TACLR: ITimer_A.TACLR_OFF,
        TAIE: ITimer_A.TAIE_OFF,
        TAIFG: ITimer_A.TAIFG_OFF
    };
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer_A5.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TACTL",
            regForceSet: false
        },
        {
            register: "TACCTL0",
            regForceSet: false
        },
        {
            register: "TACCTL1",
            regForceSet: false
        },
        {
            register: "TACCTL2",
            regForceSet: false
        },
        {
            register: "TACCTL3",
            regForceSet: false
        },
        {
            register: "TACCTL4",
            regForceSet: false
        },
        {
            register: "TACCR0",
            regForceSet: false
        },
        {
            register: "TACCR1",
            regForceSet: false
        },
        {
            register: "TACCR2",
            regForceSet: false
        },
        {
            register: "TACCR3",
            regForceSet: false
        },
        {
            register: "TACCR4",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer_A5.regIntVect_t[6] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String "TimerA5";
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer_A5.INCLK // instance
index URL

Timer_A INCLK

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.INCLK = Float 0;
config Timer_A5.TACCR0 // instance
index URL

Capture/Compare 0

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCR0 = Bits16 0;
config Timer_A5.TACCR1 // instance
index URL

Capture/Compare 1

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCR1 = Bits16 0;
config Timer_A5.TACCR2 // instance
index URL

Capture/Compare 2

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCR2 = Bits16 0;
config Timer_A5.TACCR3 // instance
index URL

Capture/Compare 3

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCR3 = Bits16 0;
config Timer_A5.TACCR4 // instance
index URL

Capture/Compare 4

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCR4 = Bits16 0;
config Timer_A5.TACCTL0 // instance
index URL

Capture/Compare Control 0

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCTL0 = Timer_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A5.TACCTL1 // instance
index URL

Capture/Compare Control 1

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCTL1 = Timer_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A5.TACCTL2 // instance
index URL

Capture/Compare Control 2

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCTL2 = Timer_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A5.TACCTL3 // instance
index URL

Capture/Compare Control 3

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCTL3 = Timer_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A5.TACCTL4 // instance
index URL

Capture/Compare Control 4

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCTL4 = Timer_A5.TACCTLx_t {
    CM: ITimer_A.CM_0,
    CCIS: ITimer_A.CCIS_0,
    SCS: ITimer_A.SCS_OFF,
    SCCI: ITimer_A.SCCI_OFF,
    CAP: ITimer_A.CAP_OFF,
    OUTMOD: ITimer_A.OUTMOD_0,
    CCIE: ITimer_A.CCIE_OFF,
    CCI: ITimer_A.CCI_OFF,
    OUT: ITimer_A.OUT_OFF,
    COV: ITimer_A.COV_OFF,
    CCIFG: ITimer_A.CCIFG_OFF
};
config Timer_A5.TACLK // instance
index URL

Timer_A TACLK

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACLK = Float 0;
config Timer_A5.TAxCTL // instance
index URL

Timer A5 Control Register

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TAxCTL = Timer_A5.TACTL_t {
    TASSEL: ITimer_A.TASSEL_0,
    ID: ITimer_A.ID_0,
    MC: ITimer_A.MC_0,
    TACLR: ITimer_A.TACLR_OFF,
    TAIE: ITimer_A.TAIE_OFF,
    TAIFG: ITimer_A.TAIFG_OFF
};
config Timer_A5.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer_A5.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
const params.forceSetDefaultRegister = Timer_A5.ForceSetDefaultRegister_t[] [
    {
        register: "TACTL",
        regForceSet: false
    },
    {
        register: "TACCTL0",
        regForceSet: false
    },
    {
        register: "TACCTL1",
        regForceSet: false
    },
    {
        register: "TACCTL2",
        regForceSet: false
    },
    {
        register: "TACCTL3",
        regForceSet: false
    },
    {
        register: "TACCTL4",
        regForceSet: false
    },
    {
        register: "TACCR0",
        regForceSet: false
    },
    {
        register: "TACCR1",
        regForceSet: false
    },
    {
        register: "TACCR2",
        regForceSet: false
    },
    {
        register: "TACCR3",
        regForceSet: false
    },
    {
        register: "TACCR4",
        regForceSet: false
    }
];
config Timer_A5.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.intNum = UInt undefined;
config Timer_A5.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.interruptSource = Timer_A5.regIntVect_t[6] undefined;
config Timer_A5.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.isInternal = Bool false;
config Timer_A5.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.name = String "TimerA5";
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer_A5.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.numberOfTimers = UChar undefined;
config Timer_A5.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer_A5.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer_A5.create(IClock.Instance clock, params);
// Create an instance-object
Timer_A5.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer_A5.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:48 GMT


module ti.catalog.msp430.peripherals.timer.Timer_A5

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer_A5 ========
    14     *  MSP430 Timer_A5 timer
    15     */
    16    metaonly module Timer_A5 inherits ITimer_A {
    17
    18    instance:
    19
    20        override config string name = "TimerA5";
    21
    22        /*! Timer A5 Control Register */
    23        config TACTL_t TAxCTL = {
    24            TASSEL : TASSEL_0,
    25            ID : ID_0,
    26            MC : MC_0,
    27            TACLR : TACLR_OFF,
    28            TAIE : TAIE_OFF,
    29            TAIFG : TAIFG_OFF
    30        };
    31
    32        /*! Capture/Compare Control 0 */
    33        config TACCTLx_t TACCTL0 = {
    34            CM : CM_0,
    35            CCIS : CCIS_0,
    36            SCS : SCS_OFF,
    37            SCCI : SCCI_OFF,
    38            CAP : CAP_OFF,
    39            OUTMOD : OUTMOD_0,
    40            CCIE : CCIE_OFF,
    41            CCI : CCI_OFF,
    42            OUT : OUT_OFF,
    43            COV : COV_OFF,
    44            CCIFG : CCIFG_OFF
    45        };
    46
    47        /*! Capture/Compare Control 1 */
    48        config TACCTLx_t TACCTL1 = {
    49            CM : CM_0,
    50            CCIS : CCIS_0,
    51            SCS : SCS_OFF,
    52            SCCI : SCCI_OFF,
    53            CAP : CAP_OFF,
    54            OUTMOD : OUTMOD_0,
    55            CCIE : CCIE_OFF,
    56            CCI : CCI_OFF,
    57            OUT : OUT_OFF,
    58            COV : COV_OFF,
    59            CCIFG : CCIFG_OFF
    60        };
    61
    62        /*! Capture/Compare Control 2 */
    63        config TACCTLx_t TACCTL2 = {
    64            CM : CM_0,
    65            CCIS : CCIS_0,
    66            SCS : SCS_OFF,
    67            SCCI : SCCI_OFF,
    68            CAP : CAP_OFF,
    69            OUTMOD : OUTMOD_0,
    70            CCIE : CCIE_OFF,
    71            CCI : CCI_OFF,
    72            OUT : OUT_OFF,
    73            COV : COV_OFF,
    74            CCIFG : CCIFG_OFF
    75        };
    76
    77        /*! Capture/Compare Control 3 */
    78        config TACCTLx_t TACCTL3 = {
    79            CM : CM_0,
    80            CCIS : CCIS_0,
    81            SCS : SCS_OFF,
    82            SCCI : SCCI_OFF,
    83            CAP : CAP_OFF,
    84            OUTMOD : OUTMOD_0,
    85            CCIE : CCIE_OFF,
    86            CCI : CCI_OFF,
    87            OUT : OUT_OFF,
    88            COV : COV_OFF,
    89            CCIFG : CCIFG_OFF
    90        };
    91
    92        /*! Capture/Compare Control 4 */
    93        config TACCTLx_t TACCTL4 = {
    94            CM : CM_0,
    95            CCIS : CCIS_0,
    96            SCS : SCS_OFF,
    97            SCCI : SCCI_OFF,
    98            CAP : CAP_OFF,
    99            OUTMOD : OUTMOD_0,
   100            CCIE : CCIE_OFF,
   101            CCI : CCI_OFF,
   102            OUT : OUT_OFF,
   103            COV : COV_OFF,
   104            CCIFG : CCIFG_OFF
   105        };
   106
   107        config Bits16 TACCR0 = 0;                         /*! Capture/Compare 0 */
   108        config Bits16 TACCR1 = 0;                         /*! Capture/Compare 1 */
   109        config Bits16 TACCR2 = 0;                         /*! Capture/Compare 2 */
   110        config Bits16 TACCR3 = 0;                         /*! Capture/Compare 3 */
   111        config Bits16 TACCR4 = 0;                         /*! Capture/Compare 4 */
   112
   113        /*! Timer interrupt enables */
   114        config regIntVect_t interruptSource[6];
   115
   116        /*! Determine if each Register needs to be forced set or not */
   117        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   118        [
   119            { register : "TACTL"   , regForceSet : false },
   120            { register : "TACCTL0" , regForceSet : false },
   121            { register : "TACCTL1" , regForceSet : false },
   122            { register : "TACCTL2" , regForceSet : false },
   123            { register : "TACCTL3" , regForceSet : false },
   124            { register : "TACCTL4" , regForceSet : false },
   125            { register : "TACCR0"  , regForceSet : false },
   126            { register : "TACCR1"  , regForceSet : false },
   127            { register : "TACCR2"  , regForceSet : false },
   128            { register : "TACCR3"  , regForceSet : false },
   129            { register : "TACCR4"  , regForceSet : false }
   130        ];
   131    }


module ti.catalog.msp430.peripherals.timer.Timer_B3

metaonly module ti.catalog.msp430.peripherals.timer.Timer_B3
index URL

MSP430 Timer_B timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer_B3.xdc
var Timer_B3 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer_B3');
module-wide constants & types
    values of type Timer_B3.CAP_t//
        const Timer_B3.CAP_OFF;
        const Timer_B3.CAP;
    values of type Timer_B3.CCIE_t//
        const Timer_B3.CCIE_OFF;
        const Timer_B3.CCIE;
    values of type Timer_B3.CCIFG_t//
        const Timer_B3.CCIFG_OFF;
        const Timer_B3.CCIFG;
    values of type Timer_B3.CCIS_t//
        const Timer_B3.CCIS_0// CCIxA;
        const Timer_B3.CCIS_1// CCIxB;
        const Timer_B3.CCIS_2// GND;
        const Timer_B3.CCIS_3// Vcc;
    values of type Timer_B3.CCI_t//
        const Timer_B3.CCI_OFF;
        const Timer_B3.CCI;
    values of type Timer_B3.CLLD_t//
        const Timer_B3.CLLD_0;
        const Timer_B3.CLLD_1;
        const Timer_B3.CLLD_2;
        const Timer_B3.CLLD_3;
    values of type Timer_B3.CM_t//
        const Timer_B3.CM_0// No Capture;
        const Timer_B3.CM_1// Rising Edge;
        const Timer_B3.CM_2// Falling Edge;
        const Timer_B3.CM_3// Both Edges;
    values of type Timer_B3.CNTL_t//
        const Timer_B3.CNTL_0// 16-bit, TBR(max) = 0FFFFh;
        const Timer_B3.CNTL_1// 12-bit, TBR(max) = 0FFFh;
        const Timer_B3.CNTL_2// 10-bit, TBR(max) = 03FFh;
        const Timer_B3.CNTL_3// 8-bit, TBR(max) = 0FFh;
    values of type Timer_B3.COV_t//
        const Timer_B3.COV_OFF;
        const Timer_B3.COV;
    values of type Timer_B3.ID_t//
        const Timer_B3.ID_0// Divider - /1;
        const Timer_B3.ID_1// Divider - /2;
        const Timer_B3.ID_2// Divider - /4;
        const Timer_B3.ID_3// Divider - /8;
    values of type Timer_B3.IVValues// TB3IV Definitions
        const Timer_B3.TBIV_NONE// No Interrupt pending;
        const Timer_B3.TBIV_TBCCR1// TBCCR1_CCIFG;
        const Timer_B3.TBIV_TBCCR2// TBCCR2_CCIFG;
        const Timer_B3.TBIV_6// Reserved;
        const Timer_B3.TBIV_8// Reserved;
        const Timer_B3.TBIV_TBIFG// TBIFG;
    values of type Timer_B3.MC_t//
        const Timer_B3.MC_0// Stop Mode;
        const Timer_B3.MC_1// Up Mode;
        const Timer_B3.MC_2// Continuous Mode;
        const Timer_B3.MC_3// Up/Down Mode;
    values of type Timer_B3.OUTMOD_t//
        const Timer_B3.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer_B3.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer_B3.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer_B3.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer_B3.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer_B3.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer_B3.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer_B3.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer_B3.OUT_t//
        const Timer_B3.OUT_OFF;
        const Timer_B3.OUT;
    values of type Timer_B3.SCCI_t//
        const Timer_B3.SCCI_OFF;
        const Timer_B3.SCCI;
    values of type Timer_B3.SCS_t//
        const Timer_B3.SCS_OFF;
        const Timer_B3.SCS;
    values of type Timer_B3.TBCLGRP_t//
        const Timer_B3.TBCLGRP_0;
        const Timer_B3.TBCLGRP_1;
        const Timer_B3.TBCLGRP_2;
        const Timer_B3.TBCLGRP_3;
    values of type Timer_B3.TBCLR_t//
        const Timer_B3.TBCLR_OFF;
        const Timer_B3.TBCLR;
    values of type Timer_B3.TBIE_t//
        const Timer_B3.TBIE_OFF;
        const Timer_B3.TBIE;
    values of type Timer_B3.TBIFG_t//
        const Timer_B3.TBIFG_OFF;
        const Timer_B3.TBIFG;
    values of type Timer_B3.TBSSEL_t//
        const Timer_B3.TBSSEL_0// TBCLK;
        const Timer_B3.TBSSEL_1// ACLK;
        const Timer_B3.TBSSEL_2// SMCLK;
        const Timer_B3.TBSSEL_3// INCLK;
    var obj = new Timer_B3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer_B3.TBCCTLx_t// ;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_B.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_B.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_B.SCS_t ...
        obj.CLLD// Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx = ITimer_B.CLLD_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_B.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_B.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_B.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_B.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_B.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_B.CCIFG_t ...
    var obj = new Timer_B3.TBCTL_t// Timer_B Control Register;
        obj.TBCLGRP// TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update) = ITimer_B.TBCLGRP_t ...
        obj.CNTL// Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh = ITimer_B.CNTL_t ...
        obj.TBSSEL// Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK = ITimer_B.TBSSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_B.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h = ITimer_B.MC_t ...
        obj.TBCLR// Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero = ITimer_B.TBCLR_t ...
        obj.TBIE// Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.TBIE_t ...
        obj.TBIFG// Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending = ITimer_B.TBIFG_t ...
    var obj = new Timer_B3.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer_B3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer_B3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer_B3.Params// Instance config-params object;
        params.INCLK// Timer_B INCLK = Float 0;
        params.TBCCR0// TBCCR0, Timer_B Capture/Compare Register 0 = Bits16 0;
        params.TBCCR1// TBCCR1, Timer_B Capture/Compare Register 1 = Bits16 0;
        params.TBCCR2// TBCCR2, Timer_B Capture/Compare Register 2 = Bits16 0;
        params.TBCCTL0// TBCCTL0, Capture/Compare Control Register 0 = Timer_B3.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCCTL1// TBCCTL1, Capture/Compare Control Register 1 = Timer_B3.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCCTL2// TBCCTL2, Capture/Compare Control Register 2 = Timer_B3.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCLK// Timer_B TBCLK = Float 0;
        params.TBCTL// TBCTL, Timer_B3 Control Register = Timer_B3.TBCTL_t {
            TBCLGRP: ITimer_B.TBCLGRP_0,
            CNTL: ITimer_B.CNTL_0,
            TBSSEL: ITimer_B.TBSSEL_0,
            ID: ITimer_B.ID_0,
            MC: ITimer_B.MC_0,
            TBCLR: ITimer_B.TBCLR_OFF,
            TBIE: ITimer_B.TBIE_OFF,
            TBIFG: ITimer_B.TBIFG_OFF
        };
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer_B3.ForceSetDefaultRegister_t[] [
            {
                register: "TBCTL",
                regForceSet: false
            },
            {
                register: "TBCCTL0",
                regForceSet: false
            },
            {
                register: "TBCCTL1",
                regForceSet: false
            },
            {
                register: "TBCCTL2",
                regForceSet: false
            },
            {
                register: "TBCCR0",
                regForceSet: false
            },
            {
                register: "TBCCR1",
                regForceSet: false
            },
            {
                register: "TBCCR2",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer_B3.regIntVect_t[4] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer_B3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer_B3.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.CAP_t
    const Timer_B3.CAP_OFF;
    const Timer_B3.CAP;
enum Timer_B3.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.CCIE_t
    const Timer_B3.CCIE_OFF;
    const Timer_B3.CCIE;
enum Timer_B3.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.CCIFG_t
    const Timer_B3.CCIFG_OFF;
    const Timer_B3.CCIFG;
enum Timer_B3.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.CCIS_t
    const Timer_B3.CCIS_0;
    // CCIxA
    const Timer_B3.CCIS_1;
    // CCIxB
    const Timer_B3.CCIS_2;
    // GND
    const Timer_B3.CCIS_3;
    // Vcc
enum Timer_B3.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.CCI_t
    const Timer_B3.CCI_OFF;
    const Timer_B3.CCI;
enum Timer_B3.CLLD_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.CLLD_t
    const Timer_B3.CLLD_0;
    const Timer_B3.CLLD_1;
    const Timer_B3.CLLD_2;
    const Timer_B3.CLLD_3;
enum Timer_B3.CM_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.CM_t
    const Timer_B3.CM_0;
    // No Capture
    const Timer_B3.CM_1;
    // Rising Edge
    const Timer_B3.CM_2;
    // Falling Edge
    const Timer_B3.CM_3;
    // Both Edges
enum Timer_B3.CNTL_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.CNTL_t
    const Timer_B3.CNTL_0;
    // 16-bit, TBR(max) = 0FFFFh
    const Timer_B3.CNTL_1;
    // 12-bit, TBR(max) = 0FFFh
    const Timer_B3.CNTL_2;
    // 10-bit, TBR(max) = 03FFh
    const Timer_B3.CNTL_3;
    // 8-bit, TBR(max) = 0FFh
enum Timer_B3.COV_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.COV_t
    const Timer_B3.COV_OFF;
    const Timer_B3.COV;
enum Timer_B3.ID_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.ID_t
    const Timer_B3.ID_0;
    // Divider - /1
    const Timer_B3.ID_1;
    // Divider - /2
    const Timer_B3.ID_2;
    // Divider - /4
    const Timer_B3.ID_3;
    // Divider - /8
enum Timer_B3.IVValues
index URL

TB3IV Definitions

XDCscript usage meta-domain
values of type Timer_B3.IVValues
    const Timer_B3.TBIV_NONE;
    // No Interrupt pending
    const Timer_B3.TBIV_TBCCR1;
    // TBCCR1_CCIFG
    const Timer_B3.TBIV_TBCCR2;
    // TBCCR2_CCIFG
    const Timer_B3.TBIV_6;
    // Reserved
    const Timer_B3.TBIV_8;
    // Reserved
    const Timer_B3.TBIV_TBIFG;
    // TBIFG
enum Timer_B3.MC_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.MC_t
    const Timer_B3.MC_0;
    // Stop Mode
    const Timer_B3.MC_1;
    // Up Mode
    const Timer_B3.MC_2;
    // Continuous Mode
    const Timer_B3.MC_3;
    // Up/Down Mode
enum Timer_B3.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.OUTMOD_t
    const Timer_B3.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer_B3.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer_B3.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer_B3.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer_B3.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer_B3.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer_B3.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer_B3.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer_B3.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.OUT_t
    const Timer_B3.OUT_OFF;
    const Timer_B3.OUT;
enum Timer_B3.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.SCCI_t
    const Timer_B3.SCCI_OFF;
    const Timer_B3.SCCI;
enum Timer_B3.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.SCS_t
    const Timer_B3.SCS_OFF;
    const Timer_B3.SCS;
enum Timer_B3.TBCLGRP_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.TBCLGRP_t
    const Timer_B3.TBCLGRP_0;
    const Timer_B3.TBCLGRP_1;
    const Timer_B3.TBCLGRP_2;
    const Timer_B3.TBCLGRP_3;
enum Timer_B3.TBCLR_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.TBCLR_t
    const Timer_B3.TBCLR_OFF;
    const Timer_B3.TBCLR;
enum Timer_B3.TBIE_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.TBIE_t
    const Timer_B3.TBIE_OFF;
    const Timer_B3.TBIE;
enum Timer_B3.TBIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.TBIFG_t
    const Timer_B3.TBIFG_OFF;
    const Timer_B3.TBIFG;
enum Timer_B3.TBSSEL_t
index URL
XDCscript usage meta-domain
values of type Timer_B3.TBSSEL_t
    const Timer_B3.TBSSEL_0;
    // TBCLK
    const Timer_B3.TBSSEL_1;
    // ACLK
    const Timer_B3.TBSSEL_2;
    // SMCLK
    const Timer_B3.TBSSEL_3;
    // INCLK
struct Timer_B3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer_B3.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer_B3.TBCCTLx_t
index URL
XDCscript usage meta-domain
var obj = new Timer_B3.TBCCTLx_t;
    obj.CM = ITimer_B.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_B.CCIS_t ...
    // Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_B.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.CLLD = ITimer_B.CLLD_t ...
    // Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx
    obj.CAP = ITimer_B.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_B.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_B.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_B.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_B.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_B.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_B.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
struct Timer_B3.TBCTL_t
index URL

Timer_B Control Register

XDCscript usage meta-domain
var obj = new Timer_B3.TBCTL_t;
    obj.TBCLGRP = ITimer_B.TBCLGRP_t ...
    // TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update)
    obj.CNTL = ITimer_B.CNTL_t ...
    // Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh
    obj.TBSSEL = ITimer_B.TBSSEL_t ...
    // Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK
    obj.ID = ITimer_B.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_B.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h
    obj.TBCLR = ITimer_B.TBCLR_t ...
    // Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero
    obj.TBIE = ITimer_B.TBIE_t ...
    // Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TBIFG = ITimer_B.TBIFG_t ...
    // Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending
SEE
TBCTL_t
struct Timer_B3.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer_B3.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer_B3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer_B3.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer_B3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer_B3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer_B3.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_B INCLK
    params.TBCCR0 = Bits16 0;
    // TBCCR0, Timer_B Capture/Compare Register 0
    params.TBCCR1 = Bits16 0;
    // TBCCR1, Timer_B Capture/Compare Register 1
    params.TBCCR2 = Bits16 0;
    // TBCCR2, Timer_B Capture/Compare Register 2
    params.TBCCTL0 = Timer_B3.TBCCTLx_t {
    // TBCCTL0, Capture/Compare Control Register 0
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCCTL1 = Timer_B3.TBCCTLx_t {
    // TBCCTL1, Capture/Compare Control Register 1
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCCTL2 = Timer_B3.TBCCTLx_t {
    // TBCCTL2, Capture/Compare Control Register 2
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCLK = Float 0;
    // Timer_B TBCLK
    params.TBCTL = Timer_B3.TBCTL_t {
    // TBCTL, Timer_B3 Control Register
        TBCLGRP: ITimer_B.TBCLGRP_0,
        CNTL: ITimer_B.CNTL_0,
        TBSSEL: ITimer_B.TBSSEL_0,
        ID: ITimer_B.ID_0,
        MC: ITimer_B.MC_0,
        TBCLR: ITimer_B.TBCLR_OFF,
        TBIE: ITimer_B.TBIE_OFF,
        TBIFG: ITimer_B.TBIFG_OFF
    };
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer_B3.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TBCTL",
            regForceSet: false
        },
        {
            register: "TBCCTL0",
            regForceSet: false
        },
        {
            register: "TBCCTL1",
            regForceSet: false
        },
        {
            register: "TBCCTL2",
            regForceSet: false
        },
        {
            register: "TBCCR0",
            regForceSet: false
        },
        {
            register: "TBCCR1",
            regForceSet: false
        },
        {
            register: "TBCCR2",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer_B3.regIntVect_t[4] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer_B3.INCLK // instance
index URL

Timer_B INCLK

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.INCLK = Float 0;
config Timer_B3.TBCCR0 // instance
index URL

TBCCR0, Timer_B Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.TBCCR0 = Bits16 0;
config Timer_B3.TBCCR1 // instance
index URL

TBCCR1, Timer_B Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.TBCCR1 = Bits16 0;
config Timer_B3.TBCCR2 // instance
index URL

TBCCR2, Timer_B Capture/Compare Register 2

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.TBCCR2 = Bits16 0;
config Timer_B3.TBCCTL0 // instance
index URL

TBCCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.TBCCTL0 = Timer_B3.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B3.TBCCTL1 // instance
index URL

TBCCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.TBCCTL1 = Timer_B3.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B3.TBCCTL2 // instance
index URL

TBCCTL2, Capture/Compare Control Register 2

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.TBCCTL2 = Timer_B3.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B3.TBCLK // instance
index URL

Timer_B TBCLK

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.TBCLK = Float 0;
config Timer_B3.TBCTL // instance
index URL

TBCTL, Timer_B3 Control Register

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.TBCTL = Timer_B3.TBCTL_t {
    TBCLGRP: ITimer_B.TBCLGRP_0,
    CNTL: ITimer_B.CNTL_0,
    TBSSEL: ITimer_B.TBSSEL_0,
    ID: ITimer_B.ID_0,
    MC: ITimer_B.MC_0,
    TBCLR: ITimer_B.TBCLR_OFF,
    TBIE: ITimer_B.TBIE_OFF,
    TBIFG: ITimer_B.TBIFG_OFF
};
config Timer_B3.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer_B3.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
const params.forceSetDefaultRegister = Timer_B3.ForceSetDefaultRegister_t[] [
    {
        register: "TBCTL",
        regForceSet: false
    },
    {
        register: "TBCCTL0",
        regForceSet: false
    },
    {
        register: "TBCCTL1",
        regForceSet: false
    },
    {
        register: "TBCCTL2",
        regForceSet: false
    },
    {
        register: "TBCCR0",
        regForceSet: false
    },
    {
        register: "TBCCR1",
        regForceSet: false
    },
    {
        register: "TBCCR2",
        regForceSet: false
    }
];
config Timer_B3.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.intNum = UInt undefined;
config Timer_B3.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.interruptSource = Timer_B3.regIntVect_t[4] undefined;
config Timer_B3.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.isInternal = Bool false;
config Timer_B3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer_B3.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.numberOfTimers = UChar undefined;
config Timer_B3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer_B3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer_B3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer_B3.create(IClock.Instance clock, params);
// Create an instance-object
Timer_B3.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer_B3.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:48 GMT


module ti.catalog.msp430.peripherals.timer.Timer_B3

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer_B3 ========
    14     *  MSP430 Timer_B timer
    15     */
    16    metaonly module Timer_B3 inherits ITimer_B {
    17
    18        /*! TB3IV Definitions */
    19        enum IVValues {
    20            TBIV_NONE = 0x0000,                 /*! No Interrupt pending */
    21            TBIV_TBCCR1 = 0x0002,               /*! TBCCR1_CCIFG */
    22            TBIV_TBCCR2 = 0x0004,               /*! TBCCR2_CCIFG */
    23            TBIV_6 = 0x0006,                    /*! Reserved */
    24            TBIV_8 = 0x0008,                    /*! Reserved */
    25            TBIV_TBIFG = 0x000A                 /*! TBIFG */
    26        };
    27
    28    instance:
    29        /*! TBCTL, Timer_B3 Control Register */
    30        config TBCTL_t TBCTL = {
    31            TBCLGRP : TBCLGRP_0,
    32            CNTL : CNTL_0,
    33            TBSSEL : TBSSEL_0,
    34            ID : ID_0,
    35            MC : MC_0,
    36            TBCLR : TBCLR_OFF,
    37            TBIE : TBIE_OFF,
    38            TBIFG : TBIFG_OFF
    39        };
    40
    41        /*! TBCCTL0, Capture/Compare Control Register 0 */
    42        config TBCCTLx_t TBCCTL0 = {
    43            CM : CM_0,
    44            CCIS : CCIS_0,
    45            SCS : SCS_OFF,
    46            CLLD : CLLD_0,
    47            CAP : CAP_OFF,
    48            OUTMOD : OUTMOD_0,
    49            CCIE : CCIE_OFF,
    50            CCI : CCI_OFF,
    51            OUT : OUT_OFF,
    52            COV : COV_OFF,
    53            CCIFG : CCIFG_OFF
    54        };
    55
    56        /*! TBCCTL1, Capture/Compare Control Register 1 */
    57        config TBCCTLx_t TBCCTL1 = {
    58            CM : CM_0,
    59            CCIS : CCIS_0,
    60            SCS : SCS_OFF,
    61            CLLD : CLLD_0,
    62            CAP : CAP_OFF,
    63            OUTMOD : OUTMOD_0,
    64            CCIE : CCIE_OFF,
    65            CCI : CCI_OFF,
    66            OUT : OUT_OFF,
    67            COV : COV_OFF,
    68            CCIFG : CCIFG_OFF
    69        };
    70
    71        /*! TBCCTL2, Capture/Compare Control Register 2 */
    72        config TBCCTLx_t TBCCTL2 = {
    73            CM : CM_0,
    74            CCIS : CCIS_0,
    75            SCS : SCS_OFF,
    76            CLLD : CLLD_0,
    77            CAP : CAP_OFF,
    78            OUTMOD : OUTMOD_0,
    79            CCIE : CCIE_OFF,
    80            CCI : CCI_OFF,
    81            OUT : OUT_OFF,
    82            COV : COV_OFF,
    83            CCIFG : CCIFG_OFF
    84        };
    85
    86        /*! TBCCR0, Timer_B Capture/Compare Register 0 */
    87        config Bits16 TBCCR0 = 0;
    88        /*! TBCCR1, Timer_B Capture/Compare Register 1 */
    89        config Bits16 TBCCR1 = 0;
    90        /*! TBCCR2, Timer_B Capture/Compare Register 2 */
    91        config Bits16 TBCCR2 = 0;
    92
    93        /*! Timer interrupt enables */
    94        config regIntVect_t interruptSource[4];
    95
    96        /*! Determine if each Register needs to be forced set or not */
    97        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    98        [
    99            { register : "TBCTL"   , regForceSet : false },
   100            { register : "TBCCTL0" , regForceSet : false },
   101            { register : "TBCCTL1" , regForceSet : false },
   102            { register : "TBCCTL2" , regForceSet : false },
   103            { register : "TBCCR0"  , regForceSet : false },
   104            { register : "TBCCR1"  , regForceSet : false },
   105            { register : "TBCCR2"  , regForceSet : false }
   106        ];
   107    }


module ti.catalog.msp430.peripherals.timer.Timer_B7

metaonly module ti.catalog.msp430.peripherals.timer.Timer_B7
index URL

MSP430 Timer_B7 timer

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/timer/Timer_B7.xdc
var Timer_B7 = xdc.useModule('ti.catalog.msp430.peripherals.timer.Timer_B7');
module-wide constants & types
    values of type Timer_B7.CAP_t//
        const Timer_B7.CAP_OFF;
        const Timer_B7.CAP;
    values of type Timer_B7.CCIE_t//
        const Timer_B7.CCIE_OFF;
        const Timer_B7.CCIE;
    values of type Timer_B7.CCIFG_t//
        const Timer_B7.CCIFG_OFF;
        const Timer_B7.CCIFG;
    values of type Timer_B7.CCIS_t//
        const Timer_B7.CCIS_0// CCIxA;
        const Timer_B7.CCIS_1// CCIxB;
        const Timer_B7.CCIS_2// GND;
        const Timer_B7.CCIS_3// Vcc;
    values of type Timer_B7.CCI_t//
        const Timer_B7.CCI_OFF;
        const Timer_B7.CCI;
    values of type Timer_B7.CLLD_t//
        const Timer_B7.CLLD_0;
        const Timer_B7.CLLD_1;
        const Timer_B7.CLLD_2;
        const Timer_B7.CLLD_3;
    values of type Timer_B7.CM_t//
        const Timer_B7.CM_0// No Capture;
        const Timer_B7.CM_1// Rising Edge;
        const Timer_B7.CM_2// Falling Edge;
        const Timer_B7.CM_3// Both Edges;
    values of type Timer_B7.CNTL_t//
        const Timer_B7.CNTL_0// 16-bit, TBR(max) = 0FFFFh;
        const Timer_B7.CNTL_1// 12-bit, TBR(max) = 0FFFh;
        const Timer_B7.CNTL_2// 10-bit, TBR(max) = 03FFh;
        const Timer_B7.CNTL_3// 8-bit, TBR(max) = 0FFh;
    values of type Timer_B7.COV_t//
        const Timer_B7.COV_OFF;
        const Timer_B7.COV;
    values of type Timer_B7.ID_t//
        const Timer_B7.ID_0// Divider - /1;
        const Timer_B7.ID_1// Divider - /2;
        const Timer_B7.ID_2// Divider - /4;
        const Timer_B7.ID_3// Divider - /8;
    values of type Timer_B7.IVValues// TBIV Definitions
        const Timer_B7.TBIV_NONE// No Interrupt pending;
        const Timer_B7.TBIV_TBCCR1// TBCCR1_CCIFG;
        const Timer_B7.TBIV_TBCCR2// TBCCR2_CCIFG;
        const Timer_B7.TBIV_TBCCR3// TBCCR3_CCIFG;
        const Timer_B7.TBIV_TBCCR4// TBCCR4_CCIFG;
        const Timer_B7.TBIV_TBCCR5// TBCCR5_CCIFG;
        const Timer_B7.TBIV_TBCCR6// TBCCR6_CCIFG;
        const Timer_B7.TBIV_TBIFG// TBIFG;
    values of type Timer_B7.MC_t//
        const Timer_B7.MC_0// Stop Mode;
        const Timer_B7.MC_1// Up Mode;
        const Timer_B7.MC_2// Continuous Mode;
        const Timer_B7.MC_3// Up/Down Mode;
    values of type Timer_B7.OUTMOD_t//
        const Timer_B7.OUTMOD_0// PWM output mode: 0 - OUT bit value;
        const Timer_B7.OUTMOD_1// PWM output mode: 1 - Set;
        const Timer_B7.OUTMOD_2// PWM output mode: 2 - PWM toggle/reset;
        const Timer_B7.OUTMOD_3// PWM output mode: 3 - PWM set/reset;
        const Timer_B7.OUTMOD_4// PWM output mode: 4 - Toggle;
        const Timer_B7.OUTMOD_5// PWM output mode: 5 - Reset;
        const Timer_B7.OUTMOD_6// PWM output mode: 6 - PWM toggle/set;
        const Timer_B7.OUTMOD_7// PWM output mode: 7 - PWM reset/set;
    values of type Timer_B7.OUT_t//
        const Timer_B7.OUT_OFF;
        const Timer_B7.OUT;
    values of type Timer_B7.SCCI_t//
        const Timer_B7.SCCI_OFF;
        const Timer_B7.SCCI;
    values of type Timer_B7.SCS_t//
        const Timer_B7.SCS_OFF;
        const Timer_B7.SCS;
    values of type Timer_B7.TBCLGRP_t//
        const Timer_B7.TBCLGRP_0;
        const Timer_B7.TBCLGRP_1;
        const Timer_B7.TBCLGRP_2;
        const Timer_B7.TBCLGRP_3;
    values of type Timer_B7.TBCLR_t//
        const Timer_B7.TBCLR_OFF;
        const Timer_B7.TBCLR;
    values of type Timer_B7.TBIE_t//
        const Timer_B7.TBIE_OFF;
        const Timer_B7.TBIE;
    values of type Timer_B7.TBIFG_t//
        const Timer_B7.TBIFG_OFF;
        const Timer_B7.TBIFG;
    values of type Timer_B7.TBSSEL_t//
        const Timer_B7.TBSSEL_0// TBCLK;
        const Timer_B7.TBSSEL_1// ACLK;
        const Timer_B7.TBSSEL_2// SMCLK;
        const Timer_B7.TBSSEL_3// INCLK;
    var obj = new Timer_B7.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new Timer_B7.TBCCTLx_t// ;
        obj.CM// Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges = ITimer_B.CM_t ...
        obj.CCIS// Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC = ITimer_B.CCIS_t ...
        obj.SCS// Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture = ITimer_B.SCS_t ...
        obj.CLLD// Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx = ITimer_B.CLLD_t ...
        obj.CAP// Capture mode 0 Compare mode 1 Capture mode = ITimer_B.CAP_t ...
        obj.OUTMOD// Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set = ITimer_B.OUTMOD_t ...
        obj.CCIE// Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.CCIE_t ...
        obj.CCI// Capture/compare input. The selected input signal can be read by this bit = ITimer_B.CCI_t ...
        obj.OUT// Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high = ITimer_B.OUT_t ...
        obj.COV// Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred = ITimer_B.COV_t ...
        obj.CCIFG// Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending = ITimer_B.CCIFG_t ...
    var obj = new Timer_B7.TBCTL_t// Timer_B Control Register;
        obj.TBCLGRP// TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update) = ITimer_B.TBCLGRP_t ...
        obj.CNTL// Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh = ITimer_B.CNTL_t ...
        obj.TBSSEL// Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK = ITimer_B.TBSSEL_t ...
        obj.ID// Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8 = ITimer_B.ID_t ...
        obj.MC// Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h = ITimer_B.MC_t ...
        obj.TBCLR// Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero = ITimer_B.TBCLR_t ...
        obj.TBIE// Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled = ITimer_B.TBIE_t ...
        obj.TBIFG// Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending = ITimer_B.TBIFG_t ...
    var obj = new Timer_B7.regIntVect_t// Interrupt vector description;
        obj.registerName = String ...
        obj.registerDescription = String ...
        obj.isrToggleString = String ...
        obj.priorityName = String ...
        obj.interruptEnable = Bool ...
        obj.interruptHandler = Bool ...
        obj.priority = Int ...
module-wide functions
     Timer_B7.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Timer_B7.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Timer_B7.Params// Instance config-params object;
        params.INCLK// Timer_B INCLK = Float 0;
        params.TBCCR0// TBCCR0, Timer_B Capture/Compare Register 0 = Bits16 0;
        params.TBCCR1// TBCCR1, Timer_B Capture/Compare Register 1 = Bits16 0;
        params.TBCCR2// TBCCR2, Timer_B Capture/Compare Register 2 = Bits16 0;
        params.TBCCR3// TBCCR3, Timer_B Capture/Compare Register 3 = Bits16 0;
        params.TBCCR4// TBCCR4, Timer_B Capture/Compare Register 4 = Bits16 0;
        params.TBCCR5// TBCCR5, Timer_B Capture/Compare Register 5 = Bits16 0;
        params.TBCCR6// TBCCR6, Timer_B Capture/Compare Register 6 = Bits16 0;
        params.TBCCTL0// TBCCTL0, Capture/Compare Control Register 0 = Timer_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCCTL1// TBCCTL1, Capture/Compare Control Register 1 = Timer_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCCTL2// TBCCTL2, Capture/Compare Control Register 2 = Timer_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCCTL3// TBCCTL3, Capture/Compare Control Register 3 = Timer_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCCTL4// TBCCTL4, Capture/Compare Control Register 4 = Timer_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCCTL5// TBCCTL5, Capture/Compare Control Register 5 = Timer_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCCTL6// TBCCTL6, Capture/Compare Control Register 6 = Timer_B7.TBCCTLx_t {
            CM: ITimer_B.CM_0,
            CCIS: ITimer_B.CCIS_0,
            SCS: ITimer_B.SCS_OFF,
            CLLD: ITimer_B.CLLD_0,
            CAP: ITimer_B.CAP_OFF,
            OUTMOD: ITimer_B.OUTMOD_0,
            CCIE: ITimer_B.CCIE_OFF,
            CCI: ITimer_B.CCI_OFF,
            OUT: ITimer_B.OUT_OFF,
            COV: ITimer_B.COV_OFF,
            CCIFG: ITimer_B.CCIFG_OFF
        };
        params.TBCLK// Timer_B TBCLK = Float 0;
        params.TBCTL// TBCTL, Timer_B7 Control Register = Timer_B7.TBCTL_t {
            TBCLGRP: ITimer_B.TBCLGRP_0,
            CNTL: ITimer_B.CNTL_0,
            TBSSEL: ITimer_B.TBSSEL_0,
            ID: ITimer_B.ID_0,
            MC: ITimer_B.MC_0,
            TBCLR: ITimer_B.TBCLR_OFF,
            TBIE: ITimer_B.TBIE_OFF,
            TBIFG: ITimer_B.TBIFG_OFF
        };
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Timer_B7.ForceSetDefaultRegister_t[] [
            {
                register: "TBCTL",
                regForceSet: false
            },
            {
                register: "TBCCTL0",
                regForceSet: false
            },
            {
                register: "TBCCTL1",
                regForceSet: false
            },
            {
                register: "TBCCTL2",
                regForceSet: false
            },
            {
                register: "TBCCTL3",
                regForceSet: false
            },
            {
                register: "TBCCTL4",
                regForceSet: false
            },
            {
                register: "TBCCTL5",
                regForceSet: false
            },
            {
                register: "TBCCTL6",
                regForceSet: false
            },
            {
                register: "TBCCR0",
                regForceSet: false
            },
            {
                register: "TBCCR1",
                regForceSet: false
            },
            {
                register: "TBCCR2",
                regForceSet: false
            },
            {
                register: "TBCCR3",
                regForceSet: false
            },
            {
                register: "TBCCR4",
                regForceSet: false
            },
            {
                register: "TBCCR5",
                regForceSet: false
            },
            {
                register: "TBCCR6",
                regForceSet: false
            }
        ];
        params.intNum// Interrupt source number = UInt undefined;
        params.interruptSource// Timer interrupt enables = Timer_B7.regIntVect_t[8] undefined;
        params.isInternal// Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs = Bool false;
        params.name// Specific peripheral name given by the device = String undefined;
        params.numberOfTimers// Stores the number of available timer capture compare blocks = UChar undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = Timer_B7.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getTxxCCRx// Returns TxxCCRx register value based on which CCR register(UChar ccrNumber) returns Bits16
     inst.setTxxCCRx// Sets TxxCCRx register value based on which CCR register(UChar ccrNumber, Bits16 value) returns Void
enum Timer_B7.CAP_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.CAP_t
    const Timer_B7.CAP_OFF;
    const Timer_B7.CAP;
enum Timer_B7.CCIE_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.CCIE_t
    const Timer_B7.CCIE_OFF;
    const Timer_B7.CCIE;
enum Timer_B7.CCIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.CCIFG_t
    const Timer_B7.CCIFG_OFF;
    const Timer_B7.CCIFG;
enum Timer_B7.CCIS_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.CCIS_t
    const Timer_B7.CCIS_0;
    // CCIxA
    const Timer_B7.CCIS_1;
    // CCIxB
    const Timer_B7.CCIS_2;
    // GND
    const Timer_B7.CCIS_3;
    // Vcc
enum Timer_B7.CCI_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.CCI_t
    const Timer_B7.CCI_OFF;
    const Timer_B7.CCI;
enum Timer_B7.CLLD_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.CLLD_t
    const Timer_B7.CLLD_0;
    const Timer_B7.CLLD_1;
    const Timer_B7.CLLD_2;
    const Timer_B7.CLLD_3;
enum Timer_B7.CM_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.CM_t
    const Timer_B7.CM_0;
    // No Capture
    const Timer_B7.CM_1;
    // Rising Edge
    const Timer_B7.CM_2;
    // Falling Edge
    const Timer_B7.CM_3;
    // Both Edges
enum Timer_B7.CNTL_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.CNTL_t
    const Timer_B7.CNTL_0;
    // 16-bit, TBR(max) = 0FFFFh
    const Timer_B7.CNTL_1;
    // 12-bit, TBR(max) = 0FFFh
    const Timer_B7.CNTL_2;
    // 10-bit, TBR(max) = 03FFh
    const Timer_B7.CNTL_3;
    // 8-bit, TBR(max) = 0FFh
enum Timer_B7.COV_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.COV_t
    const Timer_B7.COV_OFF;
    const Timer_B7.COV;
enum Timer_B7.ID_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.ID_t
    const Timer_B7.ID_0;
    // Divider - /1
    const Timer_B7.ID_1;
    // Divider - /2
    const Timer_B7.ID_2;
    // Divider - /4
    const Timer_B7.ID_3;
    // Divider - /8
enum Timer_B7.IVValues
index URL

TBIV Definitions

XDCscript usage meta-domain
values of type Timer_B7.IVValues
    const Timer_B7.TBIV_NONE;
    // No Interrupt pending
    const Timer_B7.TBIV_TBCCR1;
    // TBCCR1_CCIFG
    const Timer_B7.TBIV_TBCCR2;
    // TBCCR2_CCIFG
    const Timer_B7.TBIV_TBCCR3;
    // TBCCR3_CCIFG
    const Timer_B7.TBIV_TBCCR4;
    // TBCCR4_CCIFG
    const Timer_B7.TBIV_TBCCR5;
    // TBCCR5_CCIFG
    const Timer_B7.TBIV_TBCCR6;
    // TBCCR6_CCIFG
    const Timer_B7.TBIV_TBIFG;
    // TBIFG
enum Timer_B7.MC_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.MC_t
    const Timer_B7.MC_0;
    // Stop Mode
    const Timer_B7.MC_1;
    // Up Mode
    const Timer_B7.MC_2;
    // Continuous Mode
    const Timer_B7.MC_3;
    // Up/Down Mode
enum Timer_B7.OUTMOD_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.OUTMOD_t
    const Timer_B7.OUTMOD_0;
    // PWM output mode: 0 - OUT bit value
    const Timer_B7.OUTMOD_1;
    // PWM output mode: 1 - Set
    const Timer_B7.OUTMOD_2;
    // PWM output mode: 2 - PWM toggle/reset
    const Timer_B7.OUTMOD_3;
    // PWM output mode: 3 - PWM set/reset
    const Timer_B7.OUTMOD_4;
    // PWM output mode: 4 - Toggle
    const Timer_B7.OUTMOD_5;
    // PWM output mode: 5 - Reset
    const Timer_B7.OUTMOD_6;
    // PWM output mode: 6 - PWM toggle/set
    const Timer_B7.OUTMOD_7;
    // PWM output mode: 7 - PWM reset/set
enum Timer_B7.OUT_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.OUT_t
    const Timer_B7.OUT_OFF;
    const Timer_B7.OUT;
enum Timer_B7.SCCI_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.SCCI_t
    const Timer_B7.SCCI_OFF;
    const Timer_B7.SCCI;
enum Timer_B7.SCS_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.SCS_t
    const Timer_B7.SCS_OFF;
    const Timer_B7.SCS;
enum Timer_B7.TBCLGRP_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.TBCLGRP_t
    const Timer_B7.TBCLGRP_0;
    const Timer_B7.TBCLGRP_1;
    const Timer_B7.TBCLGRP_2;
    const Timer_B7.TBCLGRP_3;
enum Timer_B7.TBCLR_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.TBCLR_t
    const Timer_B7.TBCLR_OFF;
    const Timer_B7.TBCLR;
enum Timer_B7.TBIE_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.TBIE_t
    const Timer_B7.TBIE_OFF;
    const Timer_B7.TBIE;
enum Timer_B7.TBIFG_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.TBIFG_t
    const Timer_B7.TBIFG_OFF;
    const Timer_B7.TBIFG;
enum Timer_B7.TBSSEL_t
index URL
XDCscript usage meta-domain
values of type Timer_B7.TBSSEL_t
    const Timer_B7.TBSSEL_0;
    // TBCLK
    const Timer_B7.TBSSEL_1;
    // ACLK
    const Timer_B7.TBSSEL_2;
    // SMCLK
    const Timer_B7.TBSSEL_3;
    // INCLK
struct Timer_B7.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Timer_B7.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct Timer_B7.TBCCTLx_t
index URL
XDCscript usage meta-domain
var obj = new Timer_B7.TBCCTLx_t;
    obj.CM = ITimer_B.CM_t ...
    // Capture mode 00 No capture 01 Capture on rising edge 10 Capture on falling edge 11 Capture on both rising and falling edges
    obj.CCIS = ITimer_B.CCIS_t ...
    // Capture/compare input select. These bits select the TBCCRx input signal. See the device-specific data sheet for specific signal connections. 00 CCIxA 01 CCIxB 10 GND 11 VCC
    obj.SCS = ITimer_B.SCS_t ...
    // Synchronize capture source. This bit is used to synchronize the capture input signal with the timer clock. 0 Asynchronous capture 1 Synchronous capture
    obj.CLLD = ITimer_B.CLLD_t ...
    // Compare latch load. These bits select the compare latch load event. 00 TBCLx loads on write to TBCCRx 01 TBCLx loads when TBR counts to 0 10 TBCLx loads when TBR counts to 0 (up or continuous mode) TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode) 11 TBCLx loads when TBR counts to TBCLx
    obj.CAP = ITimer_B.CAP_t ...
    // Capture mode 0 Compare mode 1 Capture mode
    obj.OUTMOD = ITimer_B.OUTMOD_t ...
    // Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx = EQU0. 000 OUT bit value 001 Set 010 Toggle/reset 011 Set/reset 100 Toggle 101 Reset 110 Toggle/set 111 Reset/set
    obj.CCIE = ITimer_B.CCIE_t ...
    // Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled
    obj.CCI = ITimer_B.CCI_t ...
    // Capture/compare input. The selected input signal can be read by this bit
    obj.OUT = ITimer_B.OUT_t ...
    // Output. For output mode 0, this bit directly controls the state of the output. 0 Output low 1 Output high
    obj.COV = ITimer_B.COV_t ...
    // Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred
    obj.CCIFG = ITimer_B.CCIFG_t ...
    // Capture/compare interrupt flag 0 No interrupt pending 1 Interrupt pending
struct Timer_B7.TBCTL_t
index URL

Timer_B Control Register

XDCscript usage meta-domain
var obj = new Timer_B7.TBCTL_t;
    obj.TBCLGRP = ITimer_B.TBCLGRP_t ...
    // TBCLx group 00 Each TBCLx latch loads independently 01 TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update) TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update) TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update) TBCL0 independent 10 TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update) TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update) TBCL0 independent 11 TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6 (TBCCR1 CLLDx bits control the update)
    obj.CNTL = ITimer_B.CNTL_t ...
    // Counter Length 00 16-bit, TBR(max) = 0FFFFh 01 12-bit, TBR(max) = 0FFFh 10 10-bit, TBR(max) = 03FFh 11 8-bit, TBR(max) = 0FFh
    obj.TBSSEL = ITimer_B.TBSSEL_t ...
    // Timer_B clock source select. 00 TBCLK 01 ACLK 10 SMCLK 11 Inverted TBCLK
    obj.ID = ITimer_B.ID_t ...
    // Input divider. These bits select the divider for the input clock. 00 /1 01 /2 10 /4 11 /8
    obj.MC = ITimer_B.MC_t ...
    // Mode control. Setting MCx = 00h when Timer_B is not in use conserves power. 00 Stop mode: the timer is halted 01 Up mode: the timer counts up to TBCL0 10 Continuous mode: the timer counts up to the value set by CNTLx 11 Up/down mode: the timer counts up to TBCL0 and down to 0000h
    obj.TBCLR = ITimer_B.TBCLR_t ...
    // Timer_B clear. Setting this bit resets TBR, the clock divider, and the count direction. The TBCLR bit is automatically reset and is always read as zero
    obj.TBIE = ITimer_B.TBIE_t ...
    // Timer_B interrupt enable. This bit enables the TBIFG interrupt request. 0 Interrupt disabled 1 Interrupt enabled
    obj.TBIFG = ITimer_B.TBIFG_t ...
    // Timer_B interrupt flag. 0 No interrupt pending 1 Interrupt pending
SEE
TBCTL_t
struct Timer_B7.regIntVect_t
index URL

Interrupt vector description

XDCscript usage meta-domain
var obj = new Timer_B7.regIntVect_t;
    obj.registerName = String ...
    obj.registerDescription = String ...
    obj.isrToggleString = String ...
    obj.priorityName = String ...
    obj.interruptEnable = Bool ...
    obj.interruptHandler = Bool ...
    obj.priority = Int ...
DETAILS
Type to describe a single interrupt vector pin and all its possible configurations.
SEE
regIntVect_t
Timer_B7.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Timer_B7.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
Timer_B7.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Timer_B7.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Timer_B7.Params;
// Instance config-params object
    params.INCLK = Float 0;
    // Timer_B INCLK
    params.TBCCR0 = Bits16 0;
    // TBCCR0, Timer_B Capture/Compare Register 0
    params.TBCCR1 = Bits16 0;
    // TBCCR1, Timer_B Capture/Compare Register 1
    params.TBCCR2 = Bits16 0;
    // TBCCR2, Timer_B Capture/Compare Register 2
    params.TBCCR3 = Bits16 0;
    // TBCCR3, Timer_B Capture/Compare Register 3
    params.TBCCR4 = Bits16 0;
    // TBCCR4, Timer_B Capture/Compare Register 4
    params.TBCCR5 = Bits16 0;
    // TBCCR5, Timer_B Capture/Compare Register 5
    params.TBCCR6 = Bits16 0;
    // TBCCR6, Timer_B Capture/Compare Register 6
    params.TBCCTL0 = Timer_B7.TBCCTLx_t {
    // TBCCTL0, Capture/Compare Control Register 0
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCCTL1 = Timer_B7.TBCCTLx_t {
    // TBCCTL1, Capture/Compare Control Register 1
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCCTL2 = Timer_B7.TBCCTLx_t {
    // TBCCTL2, Capture/Compare Control Register 2
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCCTL3 = Timer_B7.TBCCTLx_t {
    // TBCCTL3, Capture/Compare Control Register 3
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCCTL4 = Timer_B7.TBCCTLx_t {
    // TBCCTL4, Capture/Compare Control Register 4
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCCTL5 = Timer_B7.TBCCTLx_t {
    // TBCCTL5, Capture/Compare Control Register 5
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCCTL6 = Timer_B7.TBCCTLx_t {
    // TBCCTL6, Capture/Compare Control Register 6
        CM: ITimer_B.CM_0,
        CCIS: ITimer_B.CCIS_0,
        SCS: ITimer_B.SCS_OFF,
        CLLD: ITimer_B.CLLD_0,
        CAP: ITimer_B.CAP_OFF,
        OUTMOD: ITimer_B.OUTMOD_0,
        CCIE: ITimer_B.CCIE_OFF,
        CCI: ITimer_B.CCI_OFF,
        OUT: ITimer_B.OUT_OFF,
        COV: ITimer_B.COV_OFF,
        CCIFG: ITimer_B.CCIFG_OFF
    };
    params.TBCLK = Float 0;
    // Timer_B TBCLK
    params.TBCTL = Timer_B7.TBCTL_t {
    // TBCTL, Timer_B7 Control Register
        TBCLGRP: ITimer_B.TBCLGRP_0,
        CNTL: ITimer_B.CNTL_0,
        TBSSEL: ITimer_B.TBSSEL_0,
        ID: ITimer_B.ID_0,
        MC: ITimer_B.MC_0,
        TBCLR: ITimer_B.TBCLR_OFF,
        TBIE: ITimer_B.TBIE_OFF,
        TBIFG: ITimer_B.TBIFG_OFF
    };
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Timer_B7.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "TBCTL",
            regForceSet: false
        },
        {
            register: "TBCCTL0",
            regForceSet: false
        },
        {
            register: "TBCCTL1",
            regForceSet: false
        },
        {
            register: "TBCCTL2",
            regForceSet: false
        },
        {
            register: "TBCCTL3",
            regForceSet: false
        },
        {
            register: "TBCCTL4",
            regForceSet: false
        },
        {
            register: "TBCCTL5",
            regForceSet: false
        },
        {
            register: "TBCCTL6",
            regForceSet: false
        },
        {
            register: "TBCCR0",
            regForceSet: false
        },
        {
            register: "TBCCR1",
            regForceSet: false
        },
        {
            register: "TBCCR2",
            regForceSet: false
        },
        {
            register: "TBCCR3",
            regForceSet: false
        },
        {
            register: "TBCCR4",
            regForceSet: false
        },
        {
            register: "TBCCR5",
            regForceSet: false
        },
        {
            register: "TBCCR6",
            regForceSet: false
        }
    ];
    params.intNum = UInt undefined;
    // Interrupt source number
    params.interruptSource = Timer_B7.regIntVect_t[8] undefined;
    // Timer interrupt enables
    params.isInternal = Bool false;
    // Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.numberOfTimers = UChar undefined;
    // Stores the number of available timer capture compare blocks
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config Timer_B7.INCLK // instance
index URL

Timer_B INCLK

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.INCLK = Float 0;
config Timer_B7.TBCCR0 // instance
index URL

TBCCR0, Timer_B Capture/Compare Register 0

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCR0 = Bits16 0;
config Timer_B7.TBCCR1 // instance
index URL

TBCCR1, Timer_B Capture/Compare Register 1

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCR1 = Bits16 0;
config Timer_B7.TBCCR2 // instance
index URL

TBCCR2, Timer_B Capture/Compare Register 2

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCR2 = Bits16 0;
config Timer_B7.TBCCR3 // instance
index URL

TBCCR3, Timer_B Capture/Compare Register 3

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCR3 = Bits16 0;
config Timer_B7.TBCCR4 // instance
index URL

TBCCR4, Timer_B Capture/Compare Register 4

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCR4 = Bits16 0;
config Timer_B7.TBCCR5 // instance
index URL

TBCCR5, Timer_B Capture/Compare Register 5

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCR5 = Bits16 0;
config Timer_B7.TBCCR6 // instance
index URL

TBCCR6, Timer_B Capture/Compare Register 6

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCR6 = Bits16 0;
config Timer_B7.TBCCTL0 // instance
index URL

TBCCTL0, Capture/Compare Control Register 0

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCTL0 = Timer_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B7.TBCCTL1 // instance
index URL

TBCCTL1, Capture/Compare Control Register 1

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCTL1 = Timer_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B7.TBCCTL2 // instance
index URL

TBCCTL2, Capture/Compare Control Register 2

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCTL2 = Timer_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B7.TBCCTL3 // instance
index URL

TBCCTL3, Capture/Compare Control Register 3

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCTL3 = Timer_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B7.TBCCTL4 // instance
index URL

TBCCTL4, Capture/Compare Control Register 4

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCTL4 = Timer_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B7.TBCCTL5 // instance
index URL

TBCCTL5, Capture/Compare Control Register 5

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCTL5 = Timer_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B7.TBCCTL6 // instance
index URL

TBCCTL6, Capture/Compare Control Register 6

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCCTL6 = Timer_B7.TBCCTLx_t {
    CM: ITimer_B.CM_0,
    CCIS: ITimer_B.CCIS_0,
    SCS: ITimer_B.SCS_OFF,
    CLLD: ITimer_B.CLLD_0,
    CAP: ITimer_B.CAP_OFF,
    OUTMOD: ITimer_B.OUTMOD_0,
    CCIE: ITimer_B.CCIE_OFF,
    CCI: ITimer_B.CCI_OFF,
    OUT: ITimer_B.OUT_OFF,
    COV: ITimer_B.COV_OFF,
    CCIFG: ITimer_B.CCIFG_OFF
};
config Timer_B7.TBCLK // instance
index URL

Timer_B TBCLK

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCLK = Float 0;
config Timer_B7.TBCTL // instance
index URL

TBCTL, Timer_B7 Control Register

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.TBCTL = Timer_B7.TBCTL_t {
    TBCLGRP: ITimer_B.TBCLGRP_0,
    CNTL: ITimer_B.CNTL_0,
    TBSSEL: ITimer_B.TBSSEL_0,
    ID: ITimer_B.ID_0,
    MC: ITimer_B.MC_0,
    TBCLR: ITimer_B.TBCLR_OFF,
    TBIE: ITimer_B.TBIE_OFF,
    TBIFG: ITimer_B.TBIFG_OFF
};
config Timer_B7.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config Timer_B7.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
const params.forceSetDefaultRegister = Timer_B7.ForceSetDefaultRegister_t[] [
    {
        register: "TBCTL",
        regForceSet: false
    },
    {
        register: "TBCCTL0",
        regForceSet: false
    },
    {
        register: "TBCCTL1",
        regForceSet: false
    },
    {
        register: "TBCCTL2",
        regForceSet: false
    },
    {
        register: "TBCCTL3",
        regForceSet: false
    },
    {
        register: "TBCCTL4",
        regForceSet: false
    },
    {
        register: "TBCCTL5",
        regForceSet: false
    },
    {
        register: "TBCCTL6",
        regForceSet: false
    },
    {
        register: "TBCCR0",
        regForceSet: false
    },
    {
        register: "TBCCR1",
        regForceSet: false
    },
    {
        register: "TBCCR2",
        regForceSet: false
    },
    {
        register: "TBCCR3",
        regForceSet: false
    },
    {
        register: "TBCCR4",
        regForceSet: false
    },
    {
        register: "TBCCR5",
        regForceSet: false
    },
    {
        register: "TBCCR6",
        regForceSet: false
    }
];
config Timer_B7.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.intNum = UInt undefined;
config Timer_B7.interruptSource // instance
index URL

Timer interrupt enables

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.interruptSource = Timer_B7.regIntVect_t[8] undefined;
config Timer_B7.isInternal // instance
index URL

Boolean that is true if a Timer is internal, meaning it has no external inputs or outputs

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.isInternal = Bool false;
config Timer_B7.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config Timer_B7.numberOfTimers // instance
index URL

Stores the number of available timer capture compare blocks

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.numberOfTimers = UChar undefined;
config Timer_B7.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Timer_B7.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Timer_B7.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Timer_B7.create(IClock.Instance clock, params);
// Create an instance-object
Timer_B7.getTxxCCRx() // instance
index URL

Returns TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.getTxxCCRx(UChar ccrNumber) returns Bits16
SEE
getTxxCCRx
Timer_B7.setTxxCCRx() // instance
index URL

Sets TxxCCRx register value based on which CCR register

XDCscript usage meta-domain
inst.setTxxCCRx(UChar ccrNumber, Bits16 value) returns Void
SEE
setTxxCCRx
generated on Thu, 08 Nov 2012 02:17:48 GMT


module ti.catalog.msp430.peripherals.timer.Timer_B7

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Timer_B7 ========
    14     *  MSP430 Timer_B7 timer
    15     */
    16    metaonly module Timer_B7 inherits ITimer_B {
    17
    18        /*! TBIV Definitions */
    19        enum IVValues {
    20            TBIV_NONE = 0x0000,                 /*! No Interrupt pending */
    21            TBIV_TBCCR1 = 0x0002,               /*! TBCCR1_CCIFG */
    22            TBIV_TBCCR2 = 0x0004,               /*! TBCCR2_CCIFG */
    23            TBIV_TBCCR3 = 0x0006,               /*! TBCCR3_CCIFG */
    24            TBIV_TBCCR4 = 0x0008,               /*! TBCCR4_CCIFG */
    25            TBIV_TBCCR5 = 0x000A,               /*! TBCCR5_CCIFG */
    26            TBIV_TBCCR6 = 0x000C,               /*! TBCCR6_CCIFG */
    27            TBIV_TBIFG = 0x000E                 /*! TBIFG */
    28        };
    29
    30    instance:
    31        /*! TBCTL, Timer_B7 Control Register */
    32        config TBCTL_t TBCTL = {
    33            TBCLGRP : TBCLGRP_0,
    34            CNTL : CNTL_0,
    35            TBSSEL : TBSSEL_0,
    36            ID : ID_0,
    37            MC : MC_0,
    38            TBCLR : TBCLR_OFF,
    39            TBIE : TBIE_OFF,
    40            TBIFG : TBIFG_OFF
    41        };
    42
    43        /*! TBCCTL0, Capture/Compare Control Register 0 */
    44        config TBCCTLx_t TBCCTL0 = {
    45            CM : CM_0,
    46            CCIS : CCIS_0,
    47            SCS : SCS_OFF,
    48            CLLD : CLLD_0,
    49            CAP : CAP_OFF,
    50            OUTMOD : OUTMOD_0,
    51            CCIE : CCIE_OFF,
    52            CCI : CCI_OFF,
    53            OUT : OUT_OFF,
    54            COV : COV_OFF,
    55            CCIFG : CCIFG_OFF
    56        };
    57
    58        /*! TBCCTL1, Capture/Compare Control Register 1 */
    59        config TBCCTLx_t TBCCTL1 = {
    60            CM : CM_0,
    61            CCIS : CCIS_0,
    62            SCS : SCS_OFF,
    63            CLLD : CLLD_0,
    64            CAP : CAP_OFF,
    65            OUTMOD : OUTMOD_0,
    66            CCIE : CCIE_OFF,
    67            CCI : CCI_OFF,
    68            OUT : OUT_OFF,
    69            COV : COV_OFF,
    70            CCIFG : CCIFG_OFF
    71        };
    72
    73        /*! TBCCTL2, Capture/Compare Control Register 2 */
    74        config TBCCTLx_t TBCCTL2 = {
    75            CM : CM_0,
    76            CCIS : CCIS_0,
    77            SCS : SCS_OFF,
    78            CLLD : CLLD_0,
    79            CAP : CAP_OFF,
    80            OUTMOD : OUTMOD_0,
    81            CCIE : CCIE_OFF,
    82            CCI : CCI_OFF,
    83            OUT : OUT_OFF,
    84            COV : COV_OFF,
    85            CCIFG : CCIFG_OFF
    86        };
    87
    88        /*! TBCCTL3, Capture/Compare Control Register 3 */
    89        config TBCCTLx_t TBCCTL3 = {
    90            CM : CM_0,
    91            CCIS : CCIS_0,
    92            SCS : SCS_OFF,
    93            CLLD : CLLD_0,
    94            CAP : CAP_OFF,
    95            OUTMOD : OUTMOD_0,
    96            CCIE : CCIE_OFF,
    97            CCI : CCI_OFF,
    98            OUT : OUT_OFF,
    99            COV : COV_OFF,
   100            CCIFG : CCIFG_OFF
   101        };
   102
   103        /*! TBCCTL4, Capture/Compare Control Register 4 */
   104        config TBCCTLx_t TBCCTL4 = {
   105            CM : CM_0,
   106            CCIS : CCIS_0,
   107            SCS : SCS_OFF,
   108            CLLD : CLLD_0,
   109            CAP : CAP_OFF,
   110            OUTMOD : OUTMOD_0,
   111            CCIE : CCIE_OFF,
   112            CCI : CCI_OFF,
   113            OUT : OUT_OFF,
   114            COV : COV_OFF,
   115            CCIFG : CCIFG_OFF
   116        };
   117
   118        /*! TBCCTL5, Capture/Compare Control Register 5 */
   119        config TBCCTLx_t TBCCTL5 = {
   120            CM : CM_0,
   121            CCIS : CCIS_0,
   122            SCS : SCS_OFF,
   123            CLLD : CLLD_0,
   124            CAP : CAP_OFF,
   125            OUTMOD : OUTMOD_0,
   126            CCIE : CCIE_OFF,
   127            CCI : CCI_OFF,
   128            OUT : OUT_OFF,
   129            COV : COV_OFF,
   130            CCIFG : CCIFG_OFF
   131        };
   132
   133        /*! TBCCTL6, Capture/Compare Control Register 6 */
   134        config TBCCTLx_t TBCCTL6 = {
   135            CM : CM_0,
   136            CCIS : CCIS_0,
   137            SCS : SCS_OFF,
   138            CLLD : CLLD_0,
   139            CAP : CAP_OFF,
   140            OUTMOD : OUTMOD_0,
   141            CCIE : CCIE_OFF,
   142            CCI : CCI_OFF,
   143            OUT : OUT_OFF,
   144            COV : COV_OFF,
   145            CCIFG : CCIFG_OFF
   146        };
   147
   148        /*! TBCCR0, Timer_B Capture/Compare Register 0 */
   149        config Bits16 TBCCR0 = 0;
   150        /*! TBCCR1, Timer_B Capture/Compare Register 1 */
   151        config Bits16 TBCCR1 = 0;
   152        /*! TBCCR2, Timer_B Capture/Compare Register 2 */
   153        config Bits16 TBCCR2 = 0;
   154        /*! TBCCR3, Timer_B Capture/Compare Register 3 */
   155        config Bits16 TBCCR3 = 0;
   156        /*! TBCCR4, Timer_B Capture/Compare Register 4 */
   157        config Bits16 TBCCR4 = 0;
   158        /*! TBCCR5, Timer_B Capture/Compare Register 5 */
   159        config Bits16 TBCCR5 = 0;
   160        /*! TBCCR6, Timer_B Capture/Compare Register 6 */
   161        config Bits16 TBCCR6 = 0;
   162
   163        /*! Timer interrupt enables */
   164        config regIntVect_t interruptSource[8];
   165
   166        /*! Determine if each Register needs to be forced set or not */
   167        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   168        [
   169            { register : "TBCTL"   , regForceSet : false },
   170            { register : "TBCCTL0" , regForceSet : false },
   171            { register : "TBCCTL1" , regForceSet : false },
   172            { register : "TBCCTL2" , regForceSet : false },
   173            { register : "TBCCTL3" , regForceSet : false },
   174            { register : "TBCCTL4" , regForceSet : false },
   175            { register : "TBCCTL5" , regForceSet : false },
   176            { register : "TBCCTL6" , regForceSet : false },
   177            { register : "TBCCR0"  , regForceSet : false },
   178            { register : "TBCCR1"  , regForceSet : false },
   179            { register : "TBCCR2"  , regForceSet : false },
   180            { register : "TBCCR3"  , regForceSet : false },
   181            { register : "TBCCR4"  , regForceSet : false },
   182            { register : "TBCCR5"  , regForceSet : false },
   183            { register : "TBCCR6"  , regForceSet : false }
   184        ];
   185    }


package ti.catalog.msp430.peripherals.watchdog
index URL

MSP430 WDT+ (watchdog timer) peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/package.xdc
requires ti.catalog.msp430.peripherals.clock;
requires ti.catalog.msp430.peripherals.special_function;
package ti.catalog.msp430.peripherals.watchdog [1, 0, 0] {
    interface IWDT;
    // MSP430 Watchdog Timer Interface
    module WDT_A;
    // MSP430 Watchdog Timer A
    module WDTplus;
    // MSP430 Watchdog Timer+
}
generated on Thu, 08 Nov 2012 02:17:49 GMT


package ti.catalog.msp430.peripherals.watchdog

     1    requires ti.catalog.msp430.peripherals.clock;
     2    requires ti.catalog.msp430.peripherals.special_function;
     3
     4    /*!
     5     *  ======== ti.catalog.msp430.peripherals.watchdog ========
     6     *  MSP430 WDT+ (watchdog timer) peripheral
     7     */
     8    package ti.catalog.msp430.peripherals.watchdog [1, 0, 0] {
     9        module WDTplus;
    10        module WDT_A;
    11        interface IWDT;
    12    }


interface ti.catalog.msp430.peripherals.watchdog.IWDT

metaonly interface ti.catalog.msp430.peripherals.watchdog.IWDT
index URL

MSP430 Watchdog Timer Interface

XDCspec summary sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
metaonly interface IWDT { ...
// inherits xdc.platform.IPeripheral
instance: ...
XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
package ti.catalog.msp430.peripherals.watchdog;
metaonly interface IWDT inherits IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
typedef IWDT.IPeripheralArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IWDT.StringArray
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
typedef String StringArray[];
struct IWDT.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
metaonly struct ForceSetDefaultRegister_t {
    String register;
    Bool regForceSet;
};
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
IWDT.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IWDT.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IWDT.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IWDT.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:17:49 GMT


interface ti.catalog.msp430.peripherals.watchdog.IWDT

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== IWDT ========
    14     *  MSP430 Watchdog Timer Interface
    15     */
    16    metaonly interface IWDT inherits xdc.platform.IPeripheral {
    17
    18        /*!
    19        *  ======== ForceSetDefaultRegister_t ========
    20        *  Force Set Default Register
    21        *
    22        *  Type to store if each register needs to be forced initialized
    23        *  even if the register is in default state.
    24        *
    25        *  @see #ForceSetDefaultRegister_t
    26        */
    27        struct ForceSetDefaultRegister_t {
    28            String     register;
    29            Bool       regForceSet;
    30        }
    31
    32    instance:
    33
    34    }


module ti.catalog.msp430.peripherals.watchdog.WDTplus

metaonly module ti.catalog.msp430.peripherals.watchdog.WDTplus
index URL

MSP430 Watchdog Timer+

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/watchdog/WDTplus.xdc
var WDTplus = xdc.useModule('ti.catalog.msp430.peripherals.watchdog.WDTplus');
module-wide constants & types
    values of type WDTplus.WDTCNTCL_t//
        const WDTplus.WDTCNTCL_OFF// No action;
        const WDTplus.WDTCNTCL// WDTCNT = 0000h;
    values of type WDTplus.WDTHOLD_t//
        const WDTplus.WDTHOLD_OFF// Watchdog timer+ is not stopped;
        const WDTplus.WDTHOLD// Watchdog timer+ is stopped;
    values of type WDTplus.WDTIS0_t//
        const WDTplus.WDTIS0_OFF// Watchdog clock source bit0 disabled;
        const WDTplus.WDTIS0// Watchdog clock source bit0 enabled;
    values of type WDTplus.WDTIS1_t//
        const WDTplus.WDTIS1_OFF// Watchdog clock source bit1 disabled;
        const WDTplus.WDTIS1// Watchdog clock source bit1 enabled;
    values of type WDTplus.WDTNMIES_t//
        const WDTplus.WDTNMIES_OFF// NMI on rising edge;
        const WDTplus.WDTNMIES// NMI on falling edge;
    values of type WDTplus.WDTNMI_t//
        const WDTplus.WDTNMI_OFF// Reset function;
        const WDTplus.WDTNMI// NMI function;
    values of type WDTplus.WDTPW_t//
        const WDTplus.WDTPW_OFF// no Watchdog password value;
        const WDTplus.WDTPW// Watchdog password;
    values of type WDTplus.WDTSSEL_t//
        const WDTplus.WDTSSEL_OFF// SMCLK;
        const WDTplus.WDTSSEL// ACLK;
    values of type WDTplus.WDTTMSEL_t//
        const WDTplus.WDTTMSEL_OFF// Watchdog mode;
        const WDTplus.WDTTMSEL// Interval timer mode;
    var obj = new WDTplus.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new WDTplus.WDTCTL_t// ;
        obj.WDTPW// WDT+ password = WDTplus.WDTPW_t ...
        obj.WDTHOLD// Watchdog timer+ hold. This bit stops the watchdog timer+. Setting WDTHOLD = 1 when the WDT+ is not in use conserves power. 0 Watchdog timer+ is not stopped 1 Watchdog timer+ is stopped = WDTplus.WDTHOLD_t ...
        obj.WDTNMIES// Watchdog timer+ NMI edge select. This bit selects the interrupt edge for the NMI interrupt when WDTNMI = 1. Modifying this bit can trigger an NMI. Modify this bit when WDTIE = 0 to avoid triggering an accidental NMI. 0 NMI on rising edge 1 NMI on falling edge = WDTplus.WDTNMIES_t ...
        obj.WDTNMI// Watchdog timer+ NMI select. This bit selects the function for the RST/NMI pin. 0 Reset function 1 NMI function = WDTplus.WDTNMI_t ...
        obj.WDTTMSEL// Watchdog timer+ mode select 0 Watchdog mode 1 Interval timer mode = WDTplus.WDTTMSEL_t ...
        obj.WDTCNTCL// Watchdog timer+ counter clear. Setting WDTCNTCL = 1 clears the count value to 0000h. WDTCNTCL is automatically reset. 0 No action 1 WDTCNT = 0000h = WDTplus.WDTCNTCL_t ...
        obj.WDTSSEL// Watchdog timer+ clock source select 0 SMCLK 1 ACLK = WDTplus.WDTSSEL_t ...
        obj.WDTIS0// Watchdog timer+ interval select. These bits select the watchdog timer+ interval to set the WDTIFG flag and/or generate a PUC. 00 Watchdog clock source /32768 01 Watchdog clock source /8192 10 Watchdog clock source /512 11 Watchdog clock source /64 = WDTplus.WDTIS0_t ...
        obj.WDTIS1// Watchdog timer+ interval select. These bits select the watchdog timer+ interval to set the WDTIFG flag and/or generate a PUC. 00 Watchdog clock source /32768 01 Watchdog clock source /8192 10 Watchdog clock source /512 11 Watchdog clock source /64 = WDTplus.WDTIS1_t ...
module-wide functions
     WDTplus.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     WDTplus.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new WDTplus.Params// Instance config-params object;
        params.WDTCTL// WDTCTL, Watchdog Timer+ Register = WDTplus.WDTCTL_t {
            WDTPW: WDTplus.WDTPW,
            WDTHOLD: WDTplus.WDTHOLD_OFF,
            WDTNMIES: WDTplus.WDTNMIES_OFF,
            WDTNMI: WDTplus.WDTNMI_OFF,
            WDTTMSEL: WDTplus.WDTTMSEL_OFF,
            WDTCNTCL: WDTplus.WDTCNTCL_OFF,
            WDTSSEL: WDTplus.WDTSSEL_OFF,
            WDTIS0: WDTplus.WDTIS0_OFF,
            WDTIS1: WDTplus.WDTIS1_OFF
        };
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = WDTplus.ForceSetDefaultRegister_t[] [
            {
                register: "WDTCTL",
                regForceSet: true
            }
        ];
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = WDTplus.create// Create an instance-object(IClock.Instance clock, params);
enum WDTplus.WDTCNTCL_t
index URL
XDCscript usage meta-domain
values of type WDTplus.WDTCNTCL_t
    const WDTplus.WDTCNTCL_OFF;
    // No action
    const WDTplus.WDTCNTCL;
    // WDTCNT = 0000h
enum WDTplus.WDTHOLD_t
index URL
XDCscript usage meta-domain
values of type WDTplus.WDTHOLD_t
    const WDTplus.WDTHOLD_OFF;
    // Watchdog timer+ is not stopped
    const WDTplus.WDTHOLD;
    // Watchdog timer+ is stopped
enum WDTplus.WDTIS0_t
index URL
XDCscript usage meta-domain
values of type WDTplus.WDTIS0_t
    const WDTplus.WDTIS0_OFF;
    // Watchdog clock source bit0 disabled
    const WDTplus.WDTIS0;
    // Watchdog clock source bit0 enabled
enum WDTplus.WDTIS1_t
index URL
XDCscript usage meta-domain
values of type WDTplus.WDTIS1_t
    const WDTplus.WDTIS1_OFF;
    // Watchdog clock source bit1 disabled
    const WDTplus.WDTIS1;
    // Watchdog clock source bit1 enabled
enum WDTplus.WDTNMIES_t
index URL
XDCscript usage meta-domain
values of type WDTplus.WDTNMIES_t
    const WDTplus.WDTNMIES_OFF;
    // NMI on rising edge
    const WDTplus.WDTNMIES;
    // NMI on falling edge
enum WDTplus.WDTNMI_t
index URL
XDCscript usage meta-domain
values of type WDTplus.WDTNMI_t
    const WDTplus.WDTNMI_OFF;
    // Reset function
    const WDTplus.WDTNMI;
    // NMI function
enum WDTplus.WDTPW_t
index URL
XDCscript usage meta-domain
values of type WDTplus.WDTPW_t
    const WDTplus.WDTPW_OFF;
    // no Watchdog password value
    const WDTplus.WDTPW;
    // Watchdog password
enum WDTplus.WDTSSEL_t
index URL
XDCscript usage meta-domain
values of type WDTplus.WDTSSEL_t
    const WDTplus.WDTSSEL_OFF;
    // SMCLK
    const WDTplus.WDTSSEL;
    // ACLK
enum WDTplus.WDTTMSEL_t
index URL
XDCscript usage meta-domain
values of type WDTplus.WDTTMSEL_t
    const WDTplus.WDTTMSEL_OFF;
    // Watchdog mode
    const WDTplus.WDTTMSEL;
    // Interval timer mode
struct WDTplus.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new WDTplus.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
struct WDTplus.WDTCTL_t
index URL
XDCscript usage meta-domain
var obj = new WDTplus.WDTCTL_t;
    obj.WDTPW = WDTplus.WDTPW_t ...
    // WDT+ password
    obj.WDTHOLD = WDTplus.WDTHOLD_t ...
    // Watchdog timer+ hold. This bit stops the watchdog timer+. Setting WDTHOLD = 1 when the WDT+ is not in use conserves power. 0 Watchdog timer+ is not stopped 1 Watchdog timer+ is stopped
    obj.WDTNMIES = WDTplus.WDTNMIES_t ...
    // Watchdog timer+ NMI edge select. This bit selects the interrupt edge for the NMI interrupt when WDTNMI = 1. Modifying this bit can trigger an NMI. Modify this bit when WDTIE = 0 to avoid triggering an accidental NMI. 0 NMI on rising edge 1 NMI on falling edge
    obj.WDTNMI = WDTplus.WDTNMI_t ...
    // Watchdog timer+ NMI select. This bit selects the function for the RST/NMI pin. 0 Reset function 1 NMI function
    obj.WDTTMSEL = WDTplus.WDTTMSEL_t ...
    // Watchdog timer+ mode select 0 Watchdog mode 1 Interval timer mode
    obj.WDTCNTCL = WDTplus.WDTCNTCL_t ...
    // Watchdog timer+ counter clear. Setting WDTCNTCL = 1 clears the count value to 0000h. WDTCNTCL is automatically reset. 0 No action 1 WDTCNT = 0000h
    obj.WDTSSEL = WDTplus.WDTSSEL_t ...
    // Watchdog timer+ clock source select 0 SMCLK 1 ACLK
    obj.WDTIS0 = WDTplus.WDTIS0_t ...
    // Watchdog timer+ interval select. These bits select the watchdog timer+ interval to set the WDTIFG flag and/or generate a PUC. 00 Watchdog clock source /32768 01 Watchdog clock source /8192 10 Watchdog clock source /512 11 Watchdog clock source /64
    obj.WDTIS1 = WDTplus.WDTIS1_t ...
    // Watchdog timer+ interval select. These bits select the watchdog timer+ interval to set the WDTIFG flag and/or generate a PUC. 00 Watchdog clock source /32768 01 Watchdog clock source /8192 10 Watchdog clock source /512 11 Watchdog clock source /64
WDTplus.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
WDTplus.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
WDTplus.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
WDTplus.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new WDTplus.Params;
// Instance config-params object
    params.WDTCTL = WDTplus.WDTCTL_t {
    // WDTCTL, Watchdog Timer+ Register
        WDTPW: WDTplus.WDTPW,
        WDTHOLD: WDTplus.WDTHOLD_OFF,
        WDTNMIES: WDTplus.WDTNMIES_OFF,
        WDTNMI: WDTplus.WDTNMI_OFF,
        WDTTMSEL: WDTplus.WDTTMSEL_OFF,
        WDTCNTCL: WDTplus.WDTCNTCL_OFF,
        WDTSSEL: WDTplus.WDTSSEL_OFF,
        WDTIS0: WDTplus.WDTIS0_OFF,
        WDTIS1: WDTplus.WDTIS1_OFF
    };
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = WDTplus.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
        {
            register: "WDTCTL",
            regForceSet: true
        }
    ];
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config WDTplus.WDTCTL // instance
index URL

WDTCTL, Watchdog Timer+ Register

XDCscript usage meta-domain
var params = new WDTplus.Params;
...
params.WDTCTL = WDTplus.WDTCTL_t {
    WDTPW: WDTplus.WDTPW,
    WDTHOLD: WDTplus.WDTHOLD_OFF,
    WDTNMIES: WDTplus.WDTNMIES_OFF,
    WDTNMI: WDTplus.WDTNMI_OFF,
    WDTTMSEL: WDTplus.WDTTMSEL_OFF,
    WDTCNTCL: WDTplus.WDTCNTCL_OFF,
    WDTSSEL: WDTplus.WDTSSEL_OFF,
    WDTIS0: WDTplus.WDTIS0_OFF,
    WDTIS1: WDTplus.WDTIS1_OFF
};
config WDTplus.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new WDTplus.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config WDTplus.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new WDTplus.Params;
...
const params.forceSetDefaultRegister = WDTplus.ForceSetDefaultRegister_t[] [
    {
        register: "WDTCTL",
        regForceSet: true
    }
];
config WDTplus.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new WDTplus.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config WDTplus.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new WDTplus.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new WDTplus.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = WDTplus.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:17:49 GMT


module ti.catalog.msp430.peripherals.watchdog.WDTplus

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     *  ======== WDT+ ========
    16     *  MSP430 Watchdog Timer+
    17     */
    18    metaonly module WDTplus inherits IWDT
    19    {
    20        enum WDTPW_t {
    21            WDTPW_OFF = 0x0000,         /*! no Watchdog password value */
    22            WDTPW     = 0x5A00          /*! Watchdog password */
    23        };
    24
    25        enum WDTHOLD_t {
    26            WDTHOLD_OFF = 0x0000,       /*! Watchdog timer+ is not stopped */
    27            WDTHOLD     = 0x0080        /*! Watchdog timer+ is stopped */
    28        };
    29
    30        enum WDTNMIES_t {
    31            WDTNMIES_OFF = 0x0000,      /*! NMI on rising edge */
    32            WDTNMIES     = 0x0040       /*! NMI on falling edge */
    33        };
    34
    35        enum WDTNMI_t {
    36            WDTNMI_OFF = 0x0000,        /*! Reset function */
    37            WDTNMI     = 0x0020         /*! NMI function */
    38        };
    39
    40        enum WDTTMSEL_t {
    41            WDTTMSEL_OFF = 0x0000,      /*! Watchdog mode */
    42            WDTTMSEL     = 0x0010       /*! Interval timer mode */
    43        };
    44
    45        enum WDTCNTCL_t {
    46            WDTCNTCL_OFF = 0x0000,      /*! No action */
    47            WDTCNTCL     = 0x0008       /*! WDTCNT = 0000h */
    48        };
    49
    50        enum WDTSSEL_t {
    51            WDTSSEL_OFF = 0x0000,       /*! SMCLK */
    52            WDTSSEL     = 0x0004        /*! ACLK */
    53        };
    54
    55        enum WDTIS1_t {
    56            WDTIS1_OFF = 0x0000,        /*! Watchdog clock source bit1 disabled */
    57            WDTIS1     = 0x0002         /*! Watchdog clock source bit1 enabled */
    58        };
    59
    60        enum WDTIS0_t {
    61            WDTIS0_OFF = 0x0000,        /*! Watchdog clock source bit0 disabled */
    62            WDTIS0     = 0x0001         /*! Watchdog clock source bit0 enabled */
    63        };
    64
    65        /* WDTCTL Register */
    66        struct WDTCTL_t {
    67            WDTPW_t     WDTPW;          /*! WDT+ password */
    68            WDTHOLD_t   WDTHOLD;        /*! Watchdog timer+ hold. This bit stops the watchdog timer+. Setting
    69                                         *WDTHOLD = 1 when the WDT+ is not in use conserves power.
    70                                         *  0    Watchdog timer+ is not stopped
    71                                         *  1    Watchdog timer+ is stopped
    72                                         */
    73            WDTNMIES_t  WDTNMIES;       /*! Watchdog timer+ NMI edge select. This bit selects the interrupt edge for the
    74                                         *NMI interrupt when WDTNMI = 1. Modifying this bit can trigger an NMI. Modify
    75                                         *this bit when WDTIE = 0 to avoid triggering an accidental NMI.
    76                                         *  0    NMI on rising edge
    77                                         *  1    NMI on falling edge
    78                                         */
    79            WDTNMI_t    WDTNMI;         /*! Watchdog timer+ NMI select. This bit selects the function for the RST/NMI pin.
    80                                         *  0    Reset function
    81                                         *  1    NMI function
    82                                         */
    83            WDTTMSEL_t  WDTTMSEL;       /*! Watchdog timer+ mode select
    84                                         *  0    Watchdog mode
    85                                         *  1    Interval timer mode
    86                                         */
    87            WDTCNTCL_t  WDTCNTCL;       /*! Watchdog timer+ counter clear. Setting WDTCNTCL = 1 clears the count
    88                                         *value to 0000h. WDTCNTCL is automatically reset.
    89                                         *  0    No action
    90                                         *  1    WDTCNT = 0000h
    91                                         */
    92            WDTSSEL_t   WDTSSEL;        /*! Watchdog timer+ clock source select
    93                                         *  0    SMCLK
    94                                         *  1    ACLK
    95                                         */
    96            WDTIS0_t    WDTIS0;         /*! Watchdog timer+ interval select. These bits select the watchdog timer+
    97                                         *interval to set the WDTIFG flag and/or generate a PUC.
    98                                         *  00   Watchdog clock source /32768
    99                                         *  01   Watchdog clock source /8192
   100                                         *  10   Watchdog clock source /512
   101                                         *  11   Watchdog clock source /64
   102                                         */
   103            WDTIS1_t    WDTIS1;          /*! Watchdog timer+ interval select. These bits select the watchdog timer+
   104                                          *interval to set the WDTIFG flag and/or generate a PUC.
   105                                          *  00   Watchdog clock source /32768
   106                                          *  01   Watchdog clock source /8192
   107                                          *  10   Watchdog clock source /512
   108                                          *  11   Watchdog clock source /64
   109                                          */
   110        }
   111
   112        create(IClock.Instance clock);
   113
   114    instance:
   115        /*! WDTCTL, Watchdog Timer+ Register */
   116        config WDTCTL_t WDTCTL = {
   117            WDTPW       : WDTPW,
   118            WDTHOLD     : WDTHOLD_OFF,
   119            WDTNMIES    : WDTNMIES_OFF,
   120            WDTNMI      : WDTNMI_OFF,
   121            WDTTMSEL    : WDTTMSEL_OFF,
   122            WDTCNTCL    : WDTCNTCL_OFF,
   123            WDTSSEL     : WDTSSEL_OFF,
   124            WDTIS0      : WDTIS0_OFF,
   125            WDTIS1      : WDTIS1_OFF,
   126        };
   127
   128        /*! Determine if each Register needs to be forced set or not */
   129        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   130        [
   131            { register : "WDTCTL" , regForceSet : true }
   132        ];
   133
   134        /*!
   135         *  ======== baseAddr ========
   136         *  Address of the peripheral's control register.
   137         *
   138         *  A peripheral's registers are commonly accessed through a structure
   139         *  that defines the offsets of a particular register from the lowest
   140         *  address mapped to a peripheral. That lowest address is specified by
   141         *  this parameter.
   142         */
   143        config UInt baseAddr;
   144
   145        /*! @_nodoc */
   146        config IClock.Instance clock;
   147    }


module ti.catalog.msp430.peripherals.watchdog.WDT_A

metaonly module ti.catalog.msp430.peripherals.watchdog.WDT_A
index URL

MSP430 Watchdog Timer A

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/watchdog/WDT_A.xdc
var WDT_A = xdc.useModule('ti.catalog.msp430.peripherals.watchdog.WDT_A');
module-wide constants & types
    var obj = new WDT_A.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
module-wide functions
     WDT_A.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     WDT_A.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new WDT_A.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
per-instance creation
    var inst = WDT_A.create// Create an instance-object(IClock.Instance clock, params);
struct WDT_A.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new WDT_A.ForceSetDefaultRegister_t;
    obj.register = String ...
    obj.regForceSet = Bool ...
DETAILS
Type to store if each register needs to be forced initialized even if the register is in default state.
SEE
ForceSetDefaultRegister_t
WDT_A.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
WDT_A.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
WDT_A.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
WDT_A.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new WDT_A.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config WDT_A.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new WDT_A.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config WDT_A.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new WDT_A.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config WDT_A.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new WDT_A.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new WDT_A.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = WDT_A.create(IClock.Instance clock, params);
// Create an instance-object
generated on Thu, 08 Nov 2012 02:17:49 GMT


module ti.catalog.msp430.peripherals.watchdog.WDT_A

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.clock.IClock;
    13
    14    /*!
    15     *  ======== WDT_A ========
    16     *  MSP430 Watchdog Timer A
    17     */
    18    metaonly module WDT_A inherits IWDT
    19    {
    20        create(IClock.Instance clock);
    21
    22    instance:
    23
    24        /*!
    25         *  ======== baseAddr ========
    26         *  Address of the peripheral's control register.
    27         *
    28         *  A peripheral's registers are commonly accessed through a structure
    29         *  that defines the offsets of a particular register from the lowest
    30         *  address mapped to a peripheral. That lowest address is specified by
    31         *  this parameter.
    32         */
    33        config UInt baseAddr;
    34
    35        /*! @_nodoc */
    36        config IClock.Instance clock;
    37    }


package ti.catalog.peripherals.hdvicp2
index URL

HD Video Coprocessor support

XDCspec declarations sourced in ti/catalog/peripherals/hdvicp2/package.xdc
package ti.catalog.peripherals.hdvicp2 {
    module HDVICP2;
    // HD Video Coprocessor
}
generated on Thu, 08 Nov 2012 02:16:19 GMT


package ti.catalog.peripherals.hdvicp2

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ti.catalog.peripherals.hdvicp2 ========
    15     *  HD Video Coprocessor support
    16     */
    17    package ti.catalog.peripherals.hdvicp2 {
    18        module HDVICP2;
    19    }
    20    /*
    21     *  @(#) ti.catalog.peripherals.hdvicp2; 1,0,0,153; 8-17-2012 22:13:32; /db/ztree/library/trees/platform/platform-n27x/src/
    22     */
    23


module ti.catalog.peripherals.hdvicp2.HDVICP2

metaonly module ti.catalog.peripherals.hdvicp2.HDVICP2
index URL

HD Video Coprocessor

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/peripherals/hdvicp2/HDVICP2.xdc
var HDVICP2 = xdc.useModule('ti.catalog.peripherals.hdvicp2.HDVICP2');
module-wide functions
     HDVICP2.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     HDVICP2.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new HDVICP2.Params// Instance config-params object;
        params.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.intNum// Transfer completion Interrupt source number = UInt undefined;
        params.name// Specific peripheral name given by the device = String undefined;
        params.owner// String specifying the entity that manages the peripheral = String undefined;
HDVICP2.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
HDVICP2.getAll() returns IPeripheral.Instance[]
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
HDVICP2.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
HDVICP2.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new HDVICP2.Params;
// Instance config-params object
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.intNum = UInt undefined;
    // Transfer completion Interrupt source number
    params.name = String undefined;
    // Specific peripheral name given by the device
    params.owner = String undefined;
    // String specifying the entity that manages the peripheral
config HDVICP2.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new HDVICP2.Params;
...
params.baseAddr = UInt undefined;
DETAILS
A peripheral's registers are commonly accessed through a structure that defines the offsets of a particular register from the lowest address mapped to a peripheral. That lowest address is specified by this parameter.
config HDVICP2.intNum // instance
index URL

Transfer completion Interrupt source number

XDCscript usage meta-domain
var params = new HDVICP2.Params;
...
params.intNum = UInt undefined;
config HDVICP2.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new HDVICP2.Params;
...
params.name = String undefined;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config HDVICP2.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new HDVICP2.Params;
...
params.owner = String undefined;
generated on Thu, 08 Nov 2012 02:16:19 GMT


module ti.catalog.peripherals.hdvicp2.HDVICP2

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== HDVICP2 ========
    15     *  HD Video Coprocessor
    16     */
    17    metaonly module HDVICP2 inherits xdc.platform.IPeripheral {
    18
    19    instance:
    20        /*!
    21         *  ======== baseAddr ========
    22         *  Address of the peripheral's control register.
    23         *
    24         *  A peripheral's registers are commonly accessed through a structure
    25         *  that defines the offsets of a particular register from the lowest
    26         *  address mapped to a peripheral. That lowest address is specified by
    27         *  this parameter.
    28         */
    29        config UInt baseAddr;
    30
    31        /*!
    32         *  ======== intNum ========
    33         *  Transfer completion Interrupt source number
    34         *
    35         */
    36        config UInt intNum;
    37    }
    38    /*
    39     *  @(#) ti.catalog.peripherals.hdvicp2; 1,0,0,153; 8-17-2012 22:13:32; /db/ztree/library/trees/platform/platform-n27x/src/
    40     */
    41


package ti.mcu.msp430
index URL

Grace support for the MSP430

  • DETAILS
  • SYNOPSYS
  • DESCRIPTION
  • SEE ALSO
This package provides the top-level runtime interface to the code generated by Grace. At this time, the only function externally callable by applications is Grace_init(). To use this function you must include the header file that declares its prototype. For example, [ more ... ]
XDCspec declarations sourced in ti/mcu/msp430/package.xdc
package ti.mcu.msp430 [1, 0, 0] {
}
DETAILS
This package provides the top-level runtime interface to the code generated by Grace. At this time, the only function externally callable by applications is Grace_init(). To use this function you must include the header file that declares its prototype. For example,
      #include <ti/mcu/msp430/Grace.h>
          :
      int main(void)
      {
          Grace_init();  // initialize device peripherals
             :           // do something interesting ...
          return (0);    // return status to C runtime
      }
SYNOPSYS
      #include <ti/mcu/msp430/Grace.h>

      void Grace_init(void)
DESCRIPTION
The function Grace_init() initializes the peripherals of your device according to the settings specified by your application's .cfg file. This file can be created "by hand" but is more typically created using the Grace graphical configuration tool.
Grace_init() assumes that, prior to execution, peripherals are in their power-on-reset state. This allows it to to avoid spending unnecessary time and code space setting registers to default values already established by the hardware during reset. However, this also means that Grace_init() can not be used to "soft reset" peripherals during runtime.
SEE ALSO
  • Grace graphical configuration tool
  • Grace file generation details
generated on Thu, 08 Nov 2012 02:15:01 GMT


package ti.mcu.msp430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== ti.mcu.msp430 ========
    14     *  Grace support for the MSP430
    15     *
    16     *  This package provides the top-level runtime interface to the code
    17     *  generated by Grace.  At this time, the only function externally callable
    18     *  by applications is `Grace_init()`.  To
    19     *  use this function you must include the header file that declares its
    20     *  prototype.  For example,
    21     *  @p(code)
    22     *      #include <ti/mcu/msp430/Grace.h>
    23     *          :
    24     *      int main(void)
    25     *      {
    26     *          Grace_init();  // initialize device peripherals
    27     *             :           // do something interesting ...
    28     *          return (0);    // return status to C runtime
    29     *      }
    30     *  @p
    31     *  @a(Synopsys)
    32     *  @p(code)
    33     *      #include <ti/mcu/msp430/Grace.h>
    34     *
    35     *      void Grace_init(void)
    36     *  @p
    37     *  @a(Description)
    38     *  The function `Grace_init()` initializes the peripherals of your device
    39     *  according to the settings specified by your application's `.cfg` file.
    40     *  This file can be created "by hand" but is more typically created using
    41     *  the Grace graphical configuration tool.
    42     *
    43     *  `Grace_init()` assumes that, prior to execution, peripherals are in their
    44     *  power-on-reset state.  This allows it to to avoid spending unnecessary
    45     *  time and code space setting registers to default values already
    46     *  established by the hardware during reset.  However, this also means that
    47     *  `Grace_init()` can not be used to "soft reset" peripherals during
    48     *  runtime.
    49     *  @a(See Also)
    50     *  @p(blist)
    51     *     - {@link PLUGINS_ROOT/com.ti.sdo.grace.product.ui/welcome/Welcome_to_Grace.html Grace graphical configuration tool}
    52     *     - {@link ti.mcu.msp430.csl.CSL Grace file generation details}
    53     *  @p
    54     */
    55    package ti.mcu.msp430 [1, 0, 0]
    56    {
    57    }


package ti.mcu.msp430.runtime
index URL

Local extensions to the xdc.runtime modules

This package illustrates how to extend the xdc.runtime runtime for a particular platform. In this case, the modules in this package enable full use of the xdc.runtime for the EZ430-RF2500 hardare. [ more ... ]
XDCspec declarations sourced in ti/mcu/msp430/runtime/package.xdc
package ti.mcu.msp430.runtime [1, 0, 0] {
    module GateGIE;
    // Global interrupt disable/enable implementation of IGateProvider
    module HeapNull;
    // Empty heap
    module LoggerCallback;
    // A logger that passes events to a user supplied call back function
    module LoggerUart;
    // A logger that writes events to a UART
    module SysBuf;
    // Minimal implementation of functions required by System
    module SysCallback;
    // ISystemSupport provider that "calls back" to application defined functions
    module SysUart;
    // Implementation of ISystemSupport that sends output to a UART
}
DETAILS
This package illustrates how to extend the xdc.runtime runtime for a particular platform. In this case, the modules in this package enable full use of the xdc.runtime for the EZ430-RF2500 hardare.
Although the modules in this package are designed to support the EZ430-RF2500, large parts of the implementations are portable to many similar platforms.
generated on Thu, 08 Nov 2012 02:15:03 GMT


package ti.mcu.msp430.runtime

     1    /*!
     2     *  ======== ti.mcu.msp430.runtime ========
     3     *  Local extensions to the xdc.runtime modules
     4     *
     5     *  This package illustrates how to extend the xdc.runtime runtime
     6     *  for a particular platform.  In this case, the modules in this package
     7     *  enable full use of the xdc.runtime for the EZ430-RF2500 hardare.
     8     *
     9     *  Although the modules in this package are designed to support the
    10     *  EZ430-RF2500, large parts of the implementations are portable to
    11     *  many similar platforms.
    12     */
    13    package ti.mcu.msp430.runtime [1, 0, 0] {
    14        module SysBuf;
    15        module SysUart;
    16        module SysCallback;
    17        module LoggerUart;
    18        module LoggerCallback;
    19        module GateGIE;
    20        module HeapNull;
    21    }


module ti.mcu.msp430.runtime.GateGIE
index URL

Global interrupt disable/enable implementation of IGateProvider

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
Instances of this gate implementation disable all interrupts and should only be used for modules in which the data structures protected by module-level gates are held for fixed short durations.
C synopsis target-domain sourced in ti/mcu/msp430/runtime/GateGIE.xdc
#include <ti/mcu/msp430/runtime/GateGIE.h>
Functions
Void | GateGIE_construct// Initialize a new instance object inside the provided structure(GateGIE_Struct *structP, const GateGIE_Params *params);
GateGIE_Handle | GateGIE_create// Allocate and initialize a new instance object and return its handle(const GateGIE_Params *params, Error_Block *eb);
Void | GateGIE_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(GateGIE_Handle *handleP);
Void | GateGIE_destruct// Finalize the instance object inside the provided structure(GateGIE_Struct *structP);
Void | GateGIE_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(GateGIE_Params *params);
Functions common to all IGateProvider modules
IArg | GateGIE_enter// Enter this gate(GateGIE_Handle handle);
Void | GateGIE_leave// Leave this gate(GateGIE_Handle handle, IArg key);
Bool | GateGIE_query// Runtime test for a particular gate quality(Int qual);
Functions common to all target instances
 | GateGIE_handle// Convert this instance structure pointer into an instance handle, GateGIE_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, GateGIE_Handle_label// The label associated with this instance object, GateGIE_Handle_name// The name of this instance object, GateGIE_Handle_upCast// unconditionally move one level up the inheritance hierarchy, GateGIE_Object_count// The number of statically-created instance objects, GateGIE_Object_first// The handle of the first dynamically-created instance object, or NULL, GateGIE_Object_get// The handle of the i-th statically-created instance object (array == NULL), GateGIE_Object_heap// The heap used to allocate dynamically-created instance objects, GateGIE_Object_next// The handle of the next dynamically-created instance object, or NULL, GateGIE_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | GateGIE_Module_getMask// Returns the diagnostics mask for this module, GateGIE_Module_hasMask// Test whether this module has a diagnostics mask, GateGIE_Module_heap// The heap from which this module allocates memory, GateGIE_Module_id// Get this module's unique id, GateGIE_Module_setMask// Set the diagnostics mask for this module, GateGIE_Module_startupDone// Test if this module has completed startup
Defines
#define | GateGIE_Q_BLOCKING// Blocking quality (Int)1
#define | GateGIE_Q_PREEMPTING// Preempting quality (Int)2
Typedefs
typedef GateGIE_Object * | GateGIE_Handle// Client reference to an instance object;
typedef struct | GateGIE_Object// Opaque internal representation of an instance object GateGIE_Object;
typedef struct | GateGIE_Params// Instance config-params structure ...
typedef struct | GateGIE_Struct// Opaque client structure large enough to hold an instance object GateGIE_Struct;
const GateGIE_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define GateGIE_Q_BLOCKING (Int)1
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
const GateGIE_Q_PREEMPTING
index URL

Preempting quality

C synopsis target-domain
#define GateGIE_Q_PREEMPTING (Int)2
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
GateGIE_query() // module-wide
index URL

Runtime test for a particular gate quality

C synopsis target-domain
Bool GateGIE_query(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId GateGIE_Module_id();
// Get this module's unique id
Bool GateGIE_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle GateGIE_Module_heap();
// The heap from which this module allocates memory
Bool GateGIE_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GateGIE_Module_getMask();
// Returns the diagnostics mask for this module
Void GateGIE_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct GateGIE_Object GateGIE_Object;
// Opaque internal representation of an instance object
typedef GateGIE_Object *GateGIE_Handle;
// Client reference to an instance object
typedef struct GateGIE_Struct GateGIE_Struct;
// Opaque client structure large enough to hold an instance object
GateGIE_Handle GateGIE_handle(GateGIE_Struct *structP);
// Convert this instance structure pointer into an instance handle
GateGIE_Struct *GateGIE_struct(GateGIE_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct GateGIE_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} GateGIE_Params;
Void GateGIE_Params_init(GateGIE_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
GateGIE_Handle GateGIE_create(const GateGIE_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void GateGIE_construct(GateGIE_Struct *structP, const GateGIE_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
Instance Deletion
index URL

C synopsis target-domain
Void GateGIE_delete(GateGIE_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void GateGIE_destruct(GateGIE_Struct *structP);
// Finalize the instance object inside the provided structure
GateGIE_enter() // instance
index URL

Enter this gate

C synopsis target-domain
IArg GateGIE_enter(GateGIE_Handle handle);
ARGUMENTS
handle — handle of a previously-created GateGIE instance object
DETAILS
Each gate provider can implement mutual exclusion using different algorithms; e.g., disabling all scheduling, disabling the scheduling of all threads below a specified "priority level", suspending the caller when the gate has been entered by another thread and re-enabling it when the the other thread leaves the gate. However, in all cases, after this method returns that caller has exclusive access to the data protected by this gate.
A thread may reenter a gate without blocking or failing.
RETURNS
Returns a "key" that is used to leave this gate; this value is used to restore thread preemption to the state that existed just prior to entering this gate.
GateGIE_leave() // instance
index URL

Leave this gate

C synopsis target-domain
Void GateGIE_leave(GateGIE_Handle handle, IArg key);
ARGUMENTS
handle — handle of a previously-created GateGIE instance object
key — the value returned by a matching call to enter
DETAILS
This method is only called by threads that have previously entered this gate via enter. After this method returns, the caller must not access the data structure protected by this gate (unless the caller has entered the gate more than once and other calls to leave remain to balance the number of previous calls to enter).
Instance Convertors
index URL

C synopsis target-domain
IGateProvider_Handle GateGIE_Handle_upCast(GateGIE_Handle handle);
// unconditionally move one level up the inheritance hierarchy
GateGIE_Handle GateGIE_Handle_downCast(IGateProvider_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int GateGIE_Object_count();
// The number of statically-created instance objects
GateGIE_Handle GateGIE_Object_get(GateGIE_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
GateGIE_Handle GateGIE_Object_first();
// The handle of the first dynamically-created instance object, or NULL
GateGIE_Handle GateGIE_Object_next(GateGIE_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle GateGIE_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *GateGIE_Handle_label(GateGIE_Handle handle, Types_Label *buf);
// The label associated with this instance object
String GateGIE_Handle_name(GateGIE_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/GateGIE.xdc
var GateGIE = xdc.useModule('ti.mcu.msp430.runtime.GateGIE');
module-wide constants & types
    const GateGIE.Q_BLOCKING// Blocking quality = 1;
    const GateGIE.Q_PREEMPTING// Preempting quality = 2;
module-wide config parameters
     GateGIE.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     GateGIE.queryMeta// Configuration time test for a particular gate quality(Int qual) returns Bool
per-instance config parameters
    var params = new GateGIE.Params// Instance config-params object;
per-instance creation
    var inst = GateGIE.create// Create an instance-object(params);
const GateGIE.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const GateGIE.Q_BLOCKING = 1;
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
C SYNOPSIS
GateGIE_Q_BLOCKING
const GateGIE.Q_PREEMPTING
index URL

Preempting quality

XDCscript usage meta-domain
const GateGIE.Q_PREEMPTING = 2;
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
C SYNOPSIS
GateGIE_Q_PREEMPTING
metaonly config GateGIE.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
GateGIE.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.
metaonly GateGIE.queryMeta() // module-wide
index URL

Configuration time test for a particular gate quality

XDCscript usage meta-domain
GateGIE.queryMeta(Int qual) returns Bool
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GateGIE.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GateGIE.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GateGIE.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
generated on Thu, 08 Nov 2012 02:15:02 GMT


module ti.mcu.msp430.runtime.GateGIE

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    import xdc.runtime.IGateProvider;
    14
    15    /*!
    16     *  ======== GateGIE ========
    17     *  Global interrupt disable/enable implementation of `{@link IGateProvider}`
    18     *
    19     *  Instances of this gate implementation disable all interrupts and should only
    20     *  be used for modules in which the data structures protected by module-level
    21     *  gates are held for fixed short durations.
    22     */
    23    module GateGIE inherits IGateProvider {
    24
    25    instance:
    26        /*!
    27         *  ======== create ========
    28         *  Create a `GateGIE` gate
    29         */
    30        create();
    31
    32    internal:
    33        /*!
    34         *  ======== Instance_State ========
    35         */
    36        struct Instance_State { /* nothing needed for this implementation */
    37        };
    38    }


module ti.mcu.msp430.runtime.HeapNull
index URL

Empty heap

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in ti/mcu/msp430/runtime/HeapNull.xdc
#include <ti/mcu/msp430/runtime/HeapNull.h>
Functions
Void | HeapNull_construct// Initialize a new instance object inside the provided structure(HeapNull_Struct *structP, const HeapNull_Params *params);
HeapNull_Handle | HeapNull_create// Allocate and initialize a new instance object and return its handle(const HeapNull_Params *params, Error_Block *eb);
Void | HeapNull_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(HeapNull_Handle *handleP);
Void | HeapNull_destruct// Finalize the instance object inside the provided structure(HeapNull_Struct *structP);
Void | HeapNull_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(HeapNull_Params *params);
Functions common to all IHeap modules
Ptr | HeapNull_alloc// Allocate a block of memory from the heap(HeapNull_Handle handle, SizeT size, SizeT align, Error_Block *eb);
Void | HeapNull_free// Free a block of memory back to the heap(HeapNull_Handle handle, Ptr block, SizeT size);
Void | HeapNull_getStats// Retrieve the statistics from the heap(HeapNull_Handle handle, Memory_Stats *stats);
Bool | HeapNull_isBlocking// Can this heap block the caller(HeapNull_Handle handle);
Functions common to all target instances
 | HeapNull_handle// Convert this instance structure pointer into an instance handle, HeapNull_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, HeapNull_Handle_label// The label associated with this instance object, HeapNull_Handle_name// The name of this instance object, HeapNull_Handle_upCast// unconditionally move one level up the inheritance hierarchy, HeapNull_Object_count// The number of statically-created instance objects, HeapNull_Object_first// The handle of the first dynamically-created instance object, or NULL, HeapNull_Object_get// The handle of the i-th statically-created instance object (array == NULL), HeapNull_Object_heap// The heap used to allocate dynamically-created instance objects, HeapNull_Object_next// The handle of the next dynamically-created instance object, or NULL, HeapNull_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | HeapNull_Module_getMask// Returns the diagnostics mask for this module, HeapNull_Module_hasMask// Test whether this module has a diagnostics mask, HeapNull_Module_heap// The heap from which this module allocates memory, HeapNull_Module_id// Get this module's unique id, HeapNull_Module_setMask// Set the diagnostics mask for this module, HeapNull_Module_startupDone// Test if this module has completed startup
Typedefs
typedef HeapNull_Object * | HeapNull_Handle// Client reference to an instance object;
typedef struct | HeapNull_Object// Opaque internal representation of an instance object HeapNull_Object;
typedef struct | HeapNull_Params// Instance config-params structure ...
typedef struct | HeapNull_Struct// Opaque client structure large enough to hold an instance object HeapNull_Struct;
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId HeapNull_Module_id();
// Get this module's unique id
Bool HeapNull_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle HeapNull_Module_heap();
// The heap from which this module allocates memory
Bool HeapNull_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 HeapNull_Module_getMask();
// Returns the diagnostics mask for this module
Void HeapNull_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct HeapNull_Object HeapNull_Object;
// Opaque internal representation of an instance object
typedef HeapNull_Object *HeapNull_Handle;
// Client reference to an instance object
typedef struct HeapNull_Struct HeapNull_Struct;
// Opaque client structure large enough to hold an instance object
HeapNull_Handle HeapNull_handle(HeapNull_Struct *structP);
// Convert this instance structure pointer into an instance handle
HeapNull_Struct *HeapNull_struct(HeapNull_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct HeapNull_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} HeapNull_Params;
Void HeapNull_Params_init(HeapNull_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
HeapNull_Handle HeapNull_create(const HeapNull_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void HeapNull_construct(HeapNull_Struct *structP, const HeapNull_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This heap is an always empty heap that is intended to be used by systems that never allocate objects or free memory but need a heap to satisfy linkage requirements of third-party libraries.
Instance Deletion
index URL

C synopsis target-domain
Void HeapNull_delete(HeapNull_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void HeapNull_destruct(HeapNull_Struct *structP);
// Finalize the instance object inside the provided structure
HeapNull_alloc() // instance
index URL

Allocate a block of memory from the heap

C synopsis target-domain
Ptr HeapNull_alloc(HeapNull_Handle handle, SizeT size, SizeT align, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created HeapNull instance object
size — size (in MADUs) of the block
align — alignment (in MADUs) of the block
eb — pointer to error block
DETAILS
This method returns a block of memory from the heap. It is called by the xdc.runtime.Memory.alloc() function.
HeapNull_alloc() always fails.
RETURNS
Returns the address of the allocated memory.
HeapNull_free() // instance
index URL

Free a block of memory back to the heap

C synopsis target-domain
Void HeapNull_free(HeapNull_Handle handle, Ptr block, SizeT size);
ARGUMENTS
handle — handle of a previously-created HeapNull instance object
block — non-NULL address of allocated block to free
size — size (in MADUs) of the block of memory to free
DETAILS
This method gives back a block of memory to a heap. It is called by the xdc.runtime.Memory.free() function.
Calling the HeapNull_free function has no effect.
HeapNull_getStats() // instance
index URL

Retrieve the statistics from the heap

C synopsis target-domain
Void HeapNull_getStats(HeapNull_Handle handle, Memory_Stats *stats);
ARGUMENTS
handle — handle of a previously-created HeapNull instance object
stats — non-NULL pointer to an output buffer
DETAILS
The caller passes in a pointer to a xdc.runtime.Memory.Stats structure and getStats fills in this structure.
This function is called by the xdc.runtime.Memory.getStats() function.
HeapNull_isBlocking() // instance
index URL

Can this heap block the caller

C synopsis target-domain
Bool HeapNull_isBlocking(HeapNull_Handle handle);
ARGUMENTS
handle — handle of a previously-created HeapNull instance object
RETURNS
If the heap might block, TRUE is returned. If the heap does not block, FALSE is returned.
HeapNull always returns FALSE since it never blocks on a resource.
Instance Convertors
index URL

C synopsis target-domain
IHeap_Handle HeapNull_Handle_upCast(HeapNull_Handle handle);
// unconditionally move one level up the inheritance hierarchy
HeapNull_Handle HeapNull_Handle_downCast(IHeap_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int HeapNull_Object_count();
// The number of statically-created instance objects
HeapNull_Handle HeapNull_Object_get(HeapNull_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
HeapNull_Handle HeapNull_Object_first();
// The handle of the first dynamically-created instance object, or NULL
HeapNull_Handle HeapNull_Object_next(HeapNull_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle HeapNull_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *HeapNull_Handle_label(HeapNull_Handle handle, Types_Label *buf);
// The label associated with this instance object
String HeapNull_Handle_name(HeapNull_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/HeapNull.xdc
var HeapNull = xdc.useModule('ti.mcu.msp430.runtime.HeapNull');
module-wide config parameters
     HeapNull.common$// Common module configuration parameters = Types.Common$ undefined;
per-instance config parameters
    var params = new HeapNull.Params// Instance config-params object;
per-instance creation
    var inst = HeapNull.create// Create an instance-object(params);
metaonly config HeapNull.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
HeapNull.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.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new HeapNull.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new HeapNull.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = HeapNull.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This heap is an always empty heap that is intended to be used by systems that never allocate objects or free memory but need a heap to satisfy linkage requirements of third-party libraries.
generated on Thu, 08 Nov 2012 02:15:02 GMT


module ti.mcu.msp430.runtime.HeapNull

     1    /* --COPYRIGHT--,ESD
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * --/COPYRIGHT--*/
    13    /*
    14     *  ======== HeapNull.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18
    19    /*!
    20     *  ======== HeapNull ========
    21     *  Empty heap
    22     */
    23    module HeapNull inherits xdc.runtime.IHeap {
    24
    25    instance:
    26
    27        /*!
    28         *  ======== create ========
    29         *  Create a `HeapNull` heap
    30         *
    31         *  This heap is an always empty heap that is intended to be used by
    32         *  systems that never allocate objects or free memory but need a heap
    33         *  to satisfy linkage requirements of third-party libraries.
    34         */
    35        create();
    36
    37        /*!
    38         *  ======== alloc ========
    39         *  Allocate a block of memory from the heap.
    40         *
    41         *  `HeapNull_alloc()` always fails.
    42         */
    43        override Ptr alloc(SizeT size, SizeT align, Error.Block *eb);
    44
    45        /*!
    46         *  ======== free ========
    47         *  Free a block of memory back to the heap.
    48         *
    49         *  Calling the `HeapNull_free` function has no effect.
    50         */
    51        override Void free(Ptr block, SizeT size);
    52
    53        /*!
    54         *  ======== isBlocking ========
    55         *  Can this heap block the caller
    56         *
    57         *  @a(returns)
    58         *  `HeapNull` always returns `FALSE` since it never blocks on a
    59         *  resource.
    60         */
    61        override Bool isBlocking();
    62
    63    internal:
    64        /*!
    65         *  ======== Instance_State ========
    66         */
    67        struct Instance_State { /* nothing needed for this implementation */
    68        };
    69    }


module ti.mcu.msp430.runtime.LoggerCallback
index URL

A logger that passes events to a user supplied call back function

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in ti/mcu/msp430/runtime/LoggerCallback.xdc
#include <ti/mcu/msp430/runtime/LoggerCallback.h>
Functions
Void | LoggerCallback_construct// Initialize a new instance object inside the provided structure(LoggerCallback_Struct *structP, const LoggerCallback_Params *params);
LoggerCallback_Handle | LoggerCallback_create// Allocate and initialize a new instance object and return its handle(const LoggerCallback_Params *params, Error_Block *eb);
Void | LoggerCallback_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(LoggerCallback_Handle *handleP);
Void | LoggerCallback_destruct// Finalize the instance object inside the provided structure(LoggerCallback_Struct *structP);
Void | LoggerCallback_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(LoggerCallback_Params *params);
Functions common to all ILogger modules
Bool | LoggerCallback_disable// Disable a log(LoggerCallback_Handle handle);
Bool | LoggerCallback_enable// Enable a log(LoggerCallback_Handle handle);
Void | LoggerCallback_write0// Process a log event with 0 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid);
Void | LoggerCallback_write1// Process a log event with 1 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
Void | LoggerCallback_write2// Process a log event with 2 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
Void | LoggerCallback_write4// Process a log event with up to 4 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
Void | LoggerCallback_write8// Process a log event with up to 8 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
Functions common to all target instances
 | LoggerCallback_handle// Convert this instance structure pointer into an instance handle, LoggerCallback_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, LoggerCallback_Handle_label// The label associated with this instance object, LoggerCallback_Handle_name// The name of this instance object, LoggerCallback_Handle_upCast// unconditionally move one level up the inheritance hierarchy, LoggerCallback_Object_count// The number of statically-created instance objects, LoggerCallback_Object_first// The handle of the first dynamically-created instance object, or NULL, LoggerCallback_Object_get// The handle of the i-th statically-created instance object (array == NULL), LoggerCallback_Object_heap// The heap used to allocate dynamically-created instance objects, LoggerCallback_Object_next// The handle of the next dynamically-created instance object, or NULL, LoggerCallback_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | LoggerCallback_Module_getMask// Returns the diagnostics mask for this module, LoggerCallback_Module_hasMask// Test whether this module has a diagnostics mask, LoggerCallback_Module_heap// The heap from which this module allocates memory, LoggerCallback_Module_id// Get this module's unique id, LoggerCallback_Module_setMask// Set the diagnostics mask for this module, LoggerCallback_Module_startupDone// Test if this module has completed startup
Typedefs
typedef Void | (*LoggerCallback_CallbackFxn// Callback character callback function)(Log_EventRec*);
typedef LoggerCallback_Object * | LoggerCallback_Handle// Client reference to an instance object;
typedef struct | LoggerCallback_Object// Opaque internal representation of an instance object LoggerCallback_Object;
typedef struct | LoggerCallback_Params// Instance config-params structure ...
typedef struct | LoggerCallback_Struct// Opaque client structure large enough to hold an instance object LoggerCallback_Struct;
Constants
extern const LoggerCallback_CallbackFxn | LoggerCallback_callbackFxn// User suplied character callback function;
EXAMPLES
Configuration example: The following XDC configuration statements create a logger instance, assign it as the default logger for all modules, and enable USER1 logging in all modules of the package my.pkg. See the Diags.setMaskMeta() function for details on specifying the module names.
  var Defaults = xdc.useModule('xdc.runtime.Defaults');
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var LoggerCallback = xdc.useModule('xdc.runtime.LoggerCallback');

  var LoggerCallbackParams = new LoggerCallback.Params();
  LoggerCallbackParams.callbackFxn = "&myCallbackFxn";

  Defaults.common$.logger = LoggerCallback.create(LoggerCallbackParams);
  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
typedef LoggerCallback_CallbackFxn
index URL

Callback character callback function

C synopsis target-domain
typedef Void (*LoggerCallback_CallbackFxn)(Log_EventRec*);
DETAILS
This function is called each time a Log event is generated by the application.
config LoggerCallback_callbackFxn // module-wide
index URL

User suplied character callback function

C synopsis target-domain
extern const LoggerCallback_CallbackFxn LoggerCallback_callbackFxn;
DETAILS
If this parameter is set to a non-null value, the specified function will be called for each character received.
For example, if you define a function named myCallbackFxn, the following configuration fragment will cause LoggerCallback to call myCallbackFxn whenever a character is received.
      var LoggerCallback = xdc.useModule("xdc.runtime.LoggerCallback");
      LoggerCallback.callbackFxn = "&myCallbackFxn";
If this parameter is not set, a default function will be used which simply drops the callback characters.
SEE
CallbackFxn
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId LoggerCallback_Module_id();
// Get this module's unique id
Bool LoggerCallback_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle LoggerCallback_Module_heap();
// The heap from which this module allocates memory
Bool LoggerCallback_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 LoggerCallback_Module_getMask();
// Returns the diagnostics mask for this module
Void LoggerCallback_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct LoggerCallback_Object LoggerCallback_Object;
// Opaque internal representation of an instance object
typedef LoggerCallback_Object *LoggerCallback_Handle;
// Client reference to an instance object
typedef struct LoggerCallback_Struct LoggerCallback_Struct;
// Opaque client structure large enough to hold an instance object
LoggerCallback_Handle LoggerCallback_handle(LoggerCallback_Struct *structP);
// Convert this instance structure pointer into an instance handle
LoggerCallback_Struct *LoggerCallback_struct(LoggerCallback_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct LoggerCallback_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} LoggerCallback_Params;
Void LoggerCallback_Params_init(LoggerCallback_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
LoggerCallback_Handle LoggerCallback_create(const LoggerCallback_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void LoggerCallback_construct(LoggerCallback_Struct *structP, const LoggerCallback_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
The logger instance will route all log events it receives to the System.printf function.
Instance Deletion
index URL

C synopsis target-domain
Void LoggerCallback_delete(LoggerCallback_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void LoggerCallback_destruct(LoggerCallback_Struct *structP);
// Finalize the instance object inside the provided structure
LoggerCallback_disable() // instance
index URL

Disable a log

C synopsis target-domain
Bool LoggerCallback_disable(LoggerCallback_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Events written to a disabled log are silently discarded.
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerCallback_enable() // instance
index URL

Enable a log

C synopsis target-domain
Bool LoggerCallback_enable(LoggerCallback_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerCallback_write0() // instance
index URL

Process a log event with 0 arguments

C synopsis target-domain
Void LoggerCallback_write0(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Same as write4 except with 0 arguments rather than 4.
SEE
ILogger.write4()
LoggerCallback_write1() // instance
index URL

Process a log event with 1 arguments

C synopsis target-domain
Void LoggerCallback_write1(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Same as write4 except with 1 arguments rather than 4.
SEE
ILogger.write4()
LoggerCallback_write2() // instance
index URL

Process a log event with 2 arguments

C synopsis target-domain
Void LoggerCallback_write2(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Same as write4 except with 2 arguments rather than 4.
SEE
ILogger.write4()
LoggerCallback_write4() // instance
index URL

Process a log event with up to 4 arguments

C synopsis target-domain
Void LoggerCallback_write4(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
evt — event to be logged
mid — module ID of the module which logged the event
a1 — arbitrary argument passed by caller
DETAILS
The evt argument is of type Log.Event, which encodes the Log.EventId, the Diags.Mask, and the Diags.EventLevel of the event. The event ID can be obtained via Types.getEventId(evt), the Diags mask can be obtained via Diags.getMask(evt), and the event level can be obtained via Diags.getLevel(evt).
The modId argument is the module ID of the module that logged the event.
The event information can be used by the logger to handle different events specially. For example, the event ID can be used to compare against other known Log.Events.
      if (Log_getEventId(MY_EVENT) == Log_getEventId(evt)) {
          :
      }
The Diags mask and event level can be used for filtering of events based on event level (see IFilterLogger), or even routing events to separate loggers based on diags category (see, for example, LoggerBuf.statusLogger).
The Diags mask and event level are useful for handling the event, but are generally not recorded by the logger because they are not needed in decoding and displaying the event. A more suitable value to record is a Types.Event, which encodes the event ID and module ID. For example, the Log.EventRec type stores a Types.Event in its record definition. A Types.Event can be created using the Types.makeEvent API given the event ID and module ID.
The event ID value of 0 is used to indicate an event triggered by a call to one of the Log_print[0-6] methods. These methods take a format string rather than a Log_Event argument and, as a result, the event ID encoded in evt is 0 and the parameter a1 is the format string.
Non-zero event IDs can also be used to access the msg string associated with the Log.EventDesc that originally defined the Log event.
      Log_EventId id = Log_getEventId(evt));
      if (id != 0) {
          String msg = Text_ropeText(id);
          System_aprintf(msg, a1, a2, a3, a4);
      }
This works because an event's ID is simply an offset into a table of characters (maintained by the Text module) containing the event's msg string.
The arguments a1, a2, etc. are parameters that are to be interpreted according to the message format string associated with evt.
SEE
Log.Event, Log.EventDesc, Text.ropeText, Log.getEventId
LoggerCallback_write8() // instance
index URL

Process a log event with up to 8 arguments

C synopsis target-domain
Void LoggerCallback_write8(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Same as write4 except with 8 arguments rather than 4.
SEE
ILogger.write4()
Instance Convertors
index URL

C synopsis target-domain
ILogger_Handle LoggerCallback_Handle_upCast(LoggerCallback_Handle handle);
// unconditionally move one level up the inheritance hierarchy
LoggerCallback_Handle LoggerCallback_Handle_downCast(ILogger_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int LoggerCallback_Object_count();
// The number of statically-created instance objects
LoggerCallback_Handle LoggerCallback_Object_get(LoggerCallback_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
LoggerCallback_Handle LoggerCallback_Object_first();
// The handle of the first dynamically-created instance object, or NULL
LoggerCallback_Handle LoggerCallback_Object_next(LoggerCallback_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle LoggerCallback_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *LoggerCallback_Handle_label(LoggerCallback_Handle handle, Types_Label *buf);
// The label associated with this instance object
String LoggerCallback_Handle_name(LoggerCallback_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/LoggerCallback.xdc
var LoggerCallback = xdc.useModule('ti.mcu.msp430.runtime.LoggerCallback');
local proxy modules
     LoggerCallback.TimestampProxy// User supplied time-stamp proxy = ITimestampClient.Module null
         LoggerCallback.TimestampProxy.delegate$ = ITimestampClient.Module null
module-wide config parameters
     LoggerCallback.callbackFxn// User suplied character callback function = Void(*)(Log.EventRec*) null;
     LoggerCallback.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     LoggerCallback.getMetaArgs// Returns any meta data needed to support RTA(Any inst, Any instNum) returns Any
per-instance config parameters
    var params = new LoggerCallback.Params// Instance config-params object;
per-instance creation
    var inst = LoggerCallback.create// Create an instance-object(params);
proxy LoggerCallback.TimestampProxy
index URL

User supplied time-stamp proxy

XDCscript usage meta-domain
LoggerCallback.TimestampProxy = ITimestampClient.Module null
// some delegate module inheriting the ITimestampClient interface
    LoggerCallback.TimestampProxy.delegate$ = ITimestampClient.Module null
    // explicit access to the currently bound delegate module
DETAILS
This proxy allows LoggerCallback to use a timestamp server different from the server used by xdc.runtime.Timestamp. However, if not supplied by a user, this proxy defaults to whichever timestamp server is used by Timestamp.
config LoggerCallback.callbackFxn // module-wide
index URL

User suplied character callback function

XDCscript usage meta-domain
LoggerCallback.callbackFxn = Void(*)(Log.EventRec*) null;
DETAILS
If this parameter is set to a non-null value, the specified function will be called for each character received.
For example, if you define a function named myCallbackFxn, the following configuration fragment will cause LoggerCallback to call myCallbackFxn whenever a character is received.
      var LoggerCallback = xdc.useModule("xdc.runtime.LoggerCallback");
      LoggerCallback.callbackFxn = "&myCallbackFxn";
If this parameter is not set, a default function will be used which simply drops the callback characters.
SEE
CallbackFxn
C SYNOPSIS
LoggerCallback_callbackFxn
metaonly config LoggerCallback.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
LoggerCallback.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.
metaonly LoggerCallback.getMetaArgs() // module-wide
index URL

Returns any meta data needed to support RTA

XDCscript usage meta-domain
LoggerCallback.getMetaArgs(Any inst, Any instNum) returns Any
DETAILS
This meta data should be returned in the form of a structure which can be converted into XML. This data is added to the RTA XML file during the application's configuration, and can be accessed later through the xdc.rta.MetaData module.
The MetaData is returned per instance of the ILogger module. The instance object is passed to the function as the first argument.
The second argument is the index of the instance in the list of the ILogger's static instances.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LoggerCallback.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LoggerCallback.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LoggerCallback.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
The logger instance will route all log events it receives to the System.printf function.
generated on Thu, 08 Nov 2012 02:15:02 GMT


module ti.mcu.msp430.runtime.LoggerCallback

     1    /* --COPYRIGHT--,ESD
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * --/COPYRIGHT--*/
    13    /*
    14     *  ======== LoggerCallback.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== LoggerCallback ========
    19     *  A logger that passes events to a user supplied call back function
    20     *
    21     *  @a(Examples)
    22     *  Configuration example: The following XDC configuration statements
    23     *  create a logger instance, assign it as the default logger for all
    24     *  modules, and enable `USER1` logging in all modules of the package
    25     *  `my.pkg`. See the `{@link Diags#setMaskMeta Diags.setMaskMeta()}` function
    26     *  for details on specifying the module names.
    27     *
    28     *  @p(code)
    29     *  var Defaults = xdc.useModule('xdc.runtime.Defaults');
    30     *  var Diags = xdc.useModule('xdc.runtime.Diags');
    31     *  var LoggerCallback = xdc.useModule('xdc.runtime.LoggerCallback');
    32     *
    33     *  var LoggerCallbackParams = new LoggerCallback.Params();
    34     *  LoggerCallbackParams.callbackFxn = "&myCallbackFxn";
    35     *
    36     *  Defaults.common$.logger = LoggerCallback.create(LoggerCallbackParams);
    37     *  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
    38     *  @p
    39     */
    40
    41    module LoggerCallback inherits xdc.runtime.ILogger {
    42
    43        /*!
    44         *  ======== ITimestampProxy ========
    45         *  User supplied time-stamp proxy
    46         *
    47         *  This proxy allows `LoggerCallback` to use a timestamp server different
    48         *  from the server used by `{@link xdc.runtime.Timestamp}`. However, if
    49         *  not supplied by a user, this proxy defaults to whichever timestamp
    50         *  server is used by `Timestamp`.
    51         */
    52        proxy TimestampProxy inherits xdc.runtime.ITimestampClient;
    53
    54        /*!
    55         *  ======== CallbackFxn ========
    56         *  Callback character callback function
    57         *
    58         *  This function is called each time a Log event is generated by the
    59         *  application.
    60         */
    61        typedef Void (*CallbackFxn)(xdc.runtime.Log.EventRec *);
    62
    63        /*!
    64         *  ======== callbackFxn ========
    65         *  User suplied character callback function
    66         *
    67         *  If this parameter is set to a non-`null` value, the specified
    68         *  function will be called for each character received.
    69         *
    70         *  For example, if you define a function named `myCallbackFxn`, the
    71         *  following configuration fragment will cause `LoggerCallback` to call
    72         *  `myCallbackFxn` whenever a character is received.
    73         *  @p(code)
    74         *      var LoggerCallback = xdc.useModule("xdc.runtime.LoggerCallback");
    75         *      LoggerCallback.callbackFxn = "&myCallbackFxn";
    76         *  @p
    77         *
    78         *  If this parameter is not set, a default function will be used which
    79         *  simply drops the callback characters.
    80         *
    81         *  @see #CallbackFxn
    82         */
    83        config CallbackFxn callbackFxn = null;
    84
    85    instance:
    86
    87        /*!
    88         *  ======== create ========
    89         *  Create a `LoggerCallback` logger
    90         *
    91         *  The logger instance will route all log events it receives to
    92         *  the {@link System#printf} function.
    93         */
    94        create();
    95
    96    internal:
    97
    98        struct Instance_State {
    99            Bool enabled;
   100        };
   101    }


module ti.mcu.msp430.runtime.LoggerUart
index URL

A logger that writes events to a UART

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in ti/mcu/msp430/runtime/LoggerUart.xdc
#include <ti/mcu/msp430/runtime/LoggerUart.h>
Functions
Void | LoggerUart_construct// Initialize a new instance object inside the provided structure(LoggerUart_Struct *structP, const LoggerUart_Params *params);
LoggerUart_Handle | LoggerUart_create// Allocate and initialize a new instance object and return its handle(const LoggerUart_Params *params, Error_Block *eb);
Void | LoggerUart_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(LoggerUart_Handle *handleP);
Void | LoggerUart_destruct// Finalize the instance object inside the provided structure(LoggerUart_Struct *structP);
Void | LoggerUart_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(LoggerUart_Params *params);
Functions common to all ILogger modules
Bool | LoggerUart_disable// Disable a log(LoggerUart_Handle handle);
Bool | LoggerUart_enable// Enable a log(LoggerUart_Handle handle);
Void | LoggerUart_write0// Process a log event with 0 arguments(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid);
Void | LoggerUart_write1// Process a log event with 1 arguments(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
Void | LoggerUart_write2// Process a log event with 2 arguments(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
Void | LoggerUart_write4// Process a log event with up to 4 arguments(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
Void | LoggerUart_write8// Process a log event with up to 8 arguments(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
Functions common to all target instances
 | LoggerUart_handle// Convert this instance structure pointer into an instance handle, LoggerUart_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, LoggerUart_Handle_label// The label associated with this instance object, LoggerUart_Handle_name// The name of this instance object, LoggerUart_Handle_upCast// unconditionally move one level up the inheritance hierarchy, LoggerUart_Object_count// The number of statically-created instance objects, LoggerUart_Object_first// The handle of the first dynamically-created instance object, or NULL, LoggerUart_Object_get// The handle of the i-th statically-created instance object (array == NULL), LoggerUart_Object_heap// The heap used to allocate dynamically-created instance objects, LoggerUart_Object_next// The handle of the next dynamically-created instance object, or NULL, LoggerUart_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | LoggerUart_Module_getMask// Returns the diagnostics mask for this module, LoggerUart_Module_hasMask// Test whether this module has a diagnostics mask, LoggerUart_Module_heap// The heap from which this module allocates memory, LoggerUart_Module_id// Get this module's unique id, LoggerUart_Module_setMask// Set the diagnostics mask for this module, LoggerUart_Module_startupDone// Test if this module has completed startup
Typedefs
typedef LoggerUart_Object * | LoggerUart_Handle// Client reference to an instance object;
typedef struct | LoggerUart_Object// Opaque internal representation of an instance object LoggerUart_Object;
typedef struct | LoggerUart_Params// Instance config-params structure ...
typedef struct | LoggerUart_Struct// Opaque client structure large enough to hold an instance object LoggerUart_Struct;
EXAMPLES
Configuration example: The following XDC configuration statements create a logger instance, assign it as the default logger for all modules, and enable USER1 logging in all modules of the package my.pkg. See the Diags.setMaskMeta() function for details on specifying the module names.
  var Defaults = xdc.useModule('xdc.runtime.Defaults');
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var LoggerUart = xdc.useModule('xdc.runtime.LoggerUart');

  var LoggerUartParams = new LoggerUart.Params();
  Defaults.common$.logger = LoggerUart.create(LoggerUartParams);
  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId LoggerUart_Module_id();
// Get this module's unique id
Bool LoggerUart_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle LoggerUart_Module_heap();
// The heap from which this module allocates memory
Bool LoggerUart_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 LoggerUart_Module_getMask();
// Returns the diagnostics mask for this module
Void LoggerUart_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct LoggerUart_Object LoggerUart_Object;
// Opaque internal representation of an instance object
typedef LoggerUart_Object *LoggerUart_Handle;
// Client reference to an instance object
typedef struct LoggerUart_Struct LoggerUart_Struct;
// Opaque client structure large enough to hold an instance object
LoggerUart_Handle LoggerUart_handle(LoggerUart_Struct *structP);
// Convert this instance structure pointer into an instance handle
LoggerUart_Struct *LoggerUart_struct(LoggerUart_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct LoggerUart_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} LoggerUart_Params;
Void LoggerUart_Params_init(LoggerUart_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
LoggerUart_Handle LoggerUart_create(const LoggerUart_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void LoggerUart_construct(LoggerUart_Struct *structP, const LoggerUart_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
The logger instance will route all log events it receives to the System.printf function.
Instance Deletion
index URL

C synopsis target-domain
Void LoggerUart_delete(LoggerUart_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void LoggerUart_destruct(LoggerUart_Struct *structP);
// Finalize the instance object inside the provided structure
LoggerUart_disable() // instance
index URL

Disable a log

C synopsis target-domain
Bool LoggerUart_disable(LoggerUart_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerUart instance object
DETAILS
Events written to a disabled log are silently discarded.
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerUart_enable() // instance
index URL

Enable a log

C synopsis target-domain
Bool LoggerUart_enable(LoggerUart_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerUart instance object
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerUart_write0() // instance
index URL

Process a log event with 0 arguments

C synopsis target-domain
Void LoggerUart_write0(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid);
ARGUMENTS
handle — handle of a previously-created LoggerUart instance object
DETAILS
Same as write4 except with 0 arguments rather than 4.
SEE
ILogger.write4()
LoggerUart_write1() // instance
index URL

Process a log event with 1 arguments

C synopsis target-domain
Void LoggerUart_write1(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
ARGUMENTS
handle — handle of a previously-created LoggerUart instance object
DETAILS
Same as write4 except with 1 arguments rather than 4.
SEE
ILogger.write4()
LoggerUart_write2() // instance
index URL

Process a log event with 2 arguments

C synopsis target-domain
Void LoggerUart_write2(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
ARGUMENTS
handle — handle of a previously-created LoggerUart instance object
DETAILS
Same as write4 except with 2 arguments rather than 4.
SEE
ILogger.write4()
LoggerUart_write4() // instance
index URL

Process a log event with up to 4 arguments

C synopsis target-domain
Void LoggerUart_write4(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
ARGUMENTS
handle — handle of a previously-created LoggerUart instance object
evt — event to be logged
mid — module ID of the module which logged the event
a1 — arbitrary argument passed by caller
DETAILS
The evt argument is of type Log.Event, which encodes the Log.EventId, the Diags.Mask, and the Diags.EventLevel of the event. The event ID can be obtained via Types.getEventId(evt), the Diags mask can be obtained via Diags.getMask(evt), and the event level can be obtained via Diags.getLevel(evt).
The modId argument is the module ID of the module that logged the event.
The event information can be used by the logger to handle different events specially. For example, the event ID can be used to compare against other known Log.Events.
      if (Log_getEventId(MY_EVENT) == Log_getEventId(evt)) {
          :
      }
The Diags mask and event level can be used for filtering of events based on event level (see IFilterLogger), or even routing events to separate loggers based on diags category (see, for example, LoggerBuf.statusLogger).
The Diags mask and event level are useful for handling the event, but are generally not recorded by the logger because they are not needed in decoding and displaying the event. A more suitable value to record is a Types.Event, which encodes the event ID and module ID. For example, the Log.EventRec type stores a Types.Event in its record definition. A Types.Event can be created using the Types.makeEvent API given the event ID and module ID.
The event ID value of 0 is used to indicate an event triggered by a call to one of the Log_print[0-6] methods. These methods take a format string rather than a Log_Event argument and, as a result, the event ID encoded in evt is 0 and the parameter a1 is the format string.
Non-zero event IDs can also be used to access the msg string associated with the Log.EventDesc that originally defined the Log event.
      Log_EventId id = Log_getEventId(evt));
      if (id != 0) {
          String msg = Text_ropeText(id);
          System_aprintf(msg, a1, a2, a3, a4);
      }
This works because an event's ID is simply an offset into a table of characters (maintained by the Text module) containing the event's msg string.
The arguments a1, a2, etc. are parameters that are to be interpreted according to the message format string associated with evt.
SEE
Log.Event, Log.EventDesc, Text.ropeText, Log.getEventId
LoggerUart_write8() // instance
index URL

Process a log event with up to 8 arguments

C synopsis target-domain
Void LoggerUart_write8(LoggerUart_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
ARGUMENTS
handle — handle of a previously-created LoggerUart instance object
DETAILS
Same as write4 except with 8 arguments rather than 4.
SEE
ILogger.write4()
Instance Convertors
index URL

C synopsis target-domain
ILogger_Handle LoggerUart_Handle_upCast(LoggerUart_Handle handle);
// unconditionally move one level up the inheritance hierarchy
LoggerUart_Handle LoggerUart_Handle_downCast(ILogger_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int LoggerUart_Object_count();
// The number of statically-created instance objects
LoggerUart_Handle LoggerUart_Object_get(LoggerUart_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
LoggerUart_Handle LoggerUart_Object_first();
// The handle of the first dynamically-created instance object, or NULL
LoggerUart_Handle LoggerUart_Object_next(LoggerUart_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle LoggerUart_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *LoggerUart_Handle_label(LoggerUart_Handle handle, Types_Label *buf);
// The label associated with this instance object
String LoggerUart_Handle_name(LoggerUart_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/LoggerUart.xdc
var LoggerUart = xdc.useModule('ti.mcu.msp430.runtime.LoggerUart');
local proxy modules
     LoggerUart.TimestampProxy// User supplied time-stamp proxy = ITimestampClient.Module null
         LoggerUart.TimestampProxy.delegate$ = ITimestampClient.Module null
module-wide config parameters
     LoggerUart.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     LoggerUart.getMetaArgs// Returns any meta data needed to support RTA(Any inst, Any instNum) returns Any
per-instance config parameters
    var params = new LoggerUart.Params// Instance config-params object;
per-instance creation
    var inst = LoggerUart.create// Create an instance-object(params);
proxy LoggerUart.TimestampProxy
index URL

User supplied time-stamp proxy

XDCscript usage meta-domain
LoggerUart.TimestampProxy = ITimestampClient.Module null
// some delegate module inheriting the ITimestampClient interface
    LoggerUart.TimestampProxy.delegate$ = ITimestampClient.Module null
    // explicit access to the currently bound delegate module
DETAILS
This proxy allows LoggerUart to use a timestamp server different from the server used by xdc.runtime.Timestamp. However, if not supplied by a user, this proxy defaults to whichever timestamp server is used by Timestamp.
metaonly config LoggerUart.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
LoggerUart.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.
metaonly LoggerUart.getMetaArgs() // module-wide
index URL

Returns any meta data needed to support RTA

XDCscript usage meta-domain
LoggerUart.getMetaArgs(Any inst, Any instNum) returns Any
DETAILS
This meta data should be returned in the form of a structure which can be converted into XML. This data is added to the RTA XML file during the application's configuration, and can be accessed later through the xdc.rta.MetaData module.
The MetaData is returned per instance of the ILogger module. The instance object is passed to the function as the first argument.
The second argument is the index of the instance in the list of the ILogger's static instances.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LoggerUart.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LoggerUart.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LoggerUart.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
The logger instance will route all log events it receives to the System.printf function.
generated on Thu, 08 Nov 2012 02:15:03 GMT


module ti.mcu.msp430.runtime.LoggerUart

     1    /* --COPYRIGHT--,ESD
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * --/COPYRIGHT--*/
    13    /*
    14     *  ======== LoggerUart.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== LoggerUart ========
    19     *  A logger that writes events to a UART
    20     *
    21     *  @a(Examples)
    22     *  Configuration example: The following XDC configuration statements
    23     *  create a logger instance, assign it as the default logger for all
    24     *  modules, and enable `USER1` logging in all modules of the package
    25     *  `my.pkg`. See the `{@link Diags#setMaskMeta Diags.setMaskMeta()}` function
    26     *  for details on specifying the module names.
    27     *
    28     *  @p(code)
    29     *  var Defaults = xdc.useModule('xdc.runtime.Defaults');
    30     *  var Diags = xdc.useModule('xdc.runtime.Diags');
    31     *  var LoggerUart = xdc.useModule('xdc.runtime.LoggerUart');
    32     *
    33     *  var LoggerUartParams = new LoggerUart.Params();
    34     *  Defaults.common$.logger = LoggerUart.create(LoggerUartParams);
    35     *  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
    36     *  @p
    37     */
    38
    39    module LoggerUart inherits xdc.runtime.ILogger {
    40
    41        /*!
    42         *  ======== ITimestampProxy ========
    43         *  User supplied time-stamp proxy
    44         *
    45         *  This proxy allows `LoggerUart` to use a timestamp server different
    46         *  from the server used by `{@link xdc.runtime.Timestamp}`. However, if
    47         *  not supplied by a user, this proxy defaults to whichever timestamp
    48         *  server is used by `Timestamp`.
    49         */
    50        proxy TimestampProxy inherits xdc.runtime.ITimestampClient;
    51
    52    instance:
    53
    54        /*!
    55         *  ======== create ========
    56         *  Create a `LoggerUart` logger
    57         *
    58         *  The logger instance will route all log events it receives to
    59         *  the {@link System#printf} function.
    60         */
    61        create();
    62
    63    internal:
    64
    65        struct Instance_State {
    66            Bool enabled;
    67        };
    68    }


module ti.mcu.msp430.runtime.SysBuf
index URL

Minimal implementation of functions required by System

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
SysBuf writes all output to a circular memory buffer configured by the user. [ more ... ]
C synopsis target-domain sourced in ti/mcu/msp430/runtime/SysBuf.xdc
#include <ti/mcu/msp430/runtime/SysBuf.h>
Functions common to all ISystemSupport modules
Void | SysBuf_abort// Backend for System.abort()(String str);
Void | SysBuf_exit// Backend for System.exit()(Int stat);
Void | SysBuf_flush// Backend for System.flush()();
Void | SysBuf_putch// Backend for System.printf() and System.putch()(Char ch);
Bool | SysBuf_ready// Test if character output can proceed();
Functions common to all target modules
 | SysBuf_Module_getMask// Returns the diagnostics mask for this module, SysBuf_Module_hasMask// Test whether this module has a diagnostics mask, SysBuf_Module_heap// The heap from which this module allocates memory, SysBuf_Module_id// Get this module's unique id, SysBuf_Module_setMask// Set the diagnostics mask for this module, SysBuf_Module_startupDone// Test if this module has completed startup
Constants
extern const SizeT | SysBuf_bufSize// Size (in MAUs) of the output;
DETAILS
SysBuf writes all output to a circular memory buffer configured by the user.
This module provides a simple but 100% portable implementation of the ISystemSupport interface.
config SysBuf_bufSize // module-wide
index URL

Size (in MAUs) of the output

C synopsis target-domain
extern const SizeT SysBuf_bufSize;
DETAILS
An internal buffer of this size is allocated. All output is stored in this internal buffer.
If 0 is specified for the size, no buffer is created and all output is simply dropped.
SysBuf_abort() // module-wide
index URL

Backend for System.abort()

C synopsis target-domain
Void SysBuf_abort(String str);
ARGUMENTS
str — message to output just prior to aborting
If non-NULL, this string should be output just prior to terminating.
DETAILS
This function is called by System.abort() prior to calling the ANSI C Standard library function abort(). So, to ensure the abort processing of the system's ANSI C Standard library completes, this function should return to its caller.
SysBuf_exit() // module-wide
index URL

Backend for System.exit()

C synopsis target-domain
Void SysBuf_exit(Int stat);
ARGUMENTS
stat — status value passed to all "atexit" handlers
This value is passed to all "atexit" handles bound via System.atexit(). If the application exits via the ANSI C Standard exit() function rather than via System_exit(), stat will be equal to System.STATUS_UNKNOWN.
DETAILS
This function is called as part the normal "atexit" processing performed by the ANSI C Standard Library's exit() function; System.exit() directly calls ANSI exit().
This function is called after all "atexit" handlers bound via System.atexit() are run and it is always called while "inside" the the System gate.
To ensure that all exit processing of the system's ANSI C Standard Library completes, this function should return to its caller. Exit handlers bound using the ANSI C Standard Library atexit() function may run before or after this function.
SEE
System.atexit
SysBuf_flush() // module-wide
index URL

Backend for System.flush()

C synopsis target-domain
Void SysBuf_flush();
DETAILS
This function is simply called by System_flush to output any characters buffered by the underlying SystemSupport module to an output device.
SysBuf_putch() // module-wide
index URL

Backend for System.printf() and System.putch()

C synopsis target-domain
Void SysBuf_putch(Char ch);
ARGUMENTS
ch — character to output
DETAILS
Output a single character. This function is called by System_printf() to write each character of formated output specified by its arguments.
SysBuf_ready() // module-wide
index URL

Test if character output can proceed

C synopsis target-domain
Bool SysBuf_ready();
DETAILS
This function is called by System prior to performing any character output. If this function returns FALSE, the System functions that would normally call putch() simply return (with an appropriate error status) without ever calling putch.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SysBuf_Module_id();
// Get this module's unique id
Bool SysBuf_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SysBuf_Module_heap();
// The heap from which this module allocates memory
Bool SysBuf_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SysBuf_Module_getMask();
// Returns the diagnostics mask for this module
Void SysBuf_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/SysBuf.xdc
var SysBuf = xdc.useModule('ti.mcu.msp430.runtime.SysBuf');
module-wide config parameters
     SysBuf.bufSize// Size (in MAUs) of the output = SizeT 1024;
     SysBuf.bufName// Global variable name containing pointer to output buffer = String "SYSBUF";
     SysBuf.common$// Common module configuration parameters = Types.Common$ undefined;
     SysBuf.sectionName// Section where the internal buffer managed by SysBuf is placed = String null;
config SysBuf.bufSize // module-wide
index URL

Size (in MAUs) of the output

XDCscript usage meta-domain
SysBuf.bufSize = SizeT 1024;
DETAILS
An internal buffer of this size is allocated. All output is stored in this internal buffer.
If 0 is specified for the size, no buffer is created and all output is simply dropped.
C SYNOPSIS
SysBuf_bufSize
metaonly config SysBuf.bufName // module-wide
index URL

Global variable name containing pointer to output buffer

XDCscript usage meta-domain
SysBuf.bufName = String "SYSBUF";
DETAILS
This variable will be created so that it is easy to view the contents of the output buffer within a debugger. If bufName is set to null or undefined, the variable will not be created.
metaonly config SysBuf.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SysBuf.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.
metaonly config SysBuf.sectionName // module-wide
index URL

Section where the internal buffer managed by SysBuf is placed

XDCscript usage meta-domain
SysBuf.sectionName = String null;
DETAILS
The default is to have no explicit placement.
generated on Thu, 08 Nov 2012 02:15:03 GMT


module ti.mcu.msp430.runtime.SysBuf

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== SysBuf.xdc ========
    14     */
    15    import xdc.runtime.Types;
    16
    17    /*!
    18     *  ======== SysBuf ========
    19     *  Minimal implementation of functions required by System
    20     *
    21     *  `SysBuf` writes all output to a circular memory buffer configured by
    22     *  the user.
    23     *
    24     *  This module provides a simple but 100% portable implementation of the
    25     *  `{@link ISystemSupport}` interface.
    26     */
    27    module SysBuf inherits xdc.runtime.ISystemSupport {
    28
    29        /*!
    30         *  ======== bufSize ========
    31         *  Size (in MAUs) of the output.
    32         *
    33         *  An internal buffer of this size is allocated. All output is stored
    34         *  in this internal buffer.
    35         *
    36         *  If 0 is specified for the size, no buffer is created and all output
    37         *  is simply dropped.
    38         */
    39        config SizeT bufSize = 1024;
    40
    41        /*!
    42         *  ======== bufName ========
    43         *  Global variable name containing pointer to output buffer
    44         *
    45         *  This variable will be created so that it is easy to view the
    46         *  contents of the output buffer within a debugger.  If `bufName` is
    47         *  set to `null` or `undefined`, the variable will not be created.
    48         */
    49        metaonly config String bufName = "SYSBUF";
    50
    51        /*!
    52         *  ======== sectionName ========
    53         *  Section where the internal buffer managed by `SysBuf` is placed.
    54         *
    55         *  The default is to have no explicit placement.
    56         */
    57        metaonly config String sectionName = null;
    58
    59    internal:
    60
    61        struct Module_State {
    62            Char outbuf[];  /* output buffer */
    63            UInt outidx;    /* index of next available output character */
    64        }
    65    }


module ti.mcu.msp430.runtime.SysCallback
index URL

ISystemSupport provider that "calls back" to application defined functions

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides an implementation of the ISystemSupport interface that simply calls back to user defined functions to enable the System module's functionality.
C synopsis target-domain sourced in ti/mcu/msp430/runtime/SysCallback.xdc
#include <ti/mcu/msp430/runtime/SysCallback.h>
Functions common to all ISystemSupport modules
Void | SysCallback_abort// Backend for System.abort()(String str);
Void | SysCallback_exit// Backend for System.exit()(Int stat);
Void | SysCallback_flush// Backend for System.flush()();
Void | SysCallback_putch// Backend for System.printf() and System.putch()(Char ch);
Bool | SysCallback_ready// Test if character output can proceed();
Functions common to all target modules
 | SysCallback_Module_getMask// Returns the diagnostics mask for this module, SysCallback_Module_hasMask// Test whether this module has a diagnostics mask, SysCallback_Module_heap// The heap from which this module allocates memory, SysCallback_Module_id// Get this module's unique id, SysCallback_Module_setMask// Set the diagnostics mask for this module, SysCallback_Module_startupDone// Test if this module has completed startup
Typedefs
typedef Void | (*SysCallback_AbortFxn// Abort function signature)(Void);
typedef Int | (*SysCallback_AtExitFxn// Function called as part of normal application exit)(Void(*)(Void));
typedef Void | (*SysCallback_ExitFxn// Exit function signature)(Int);
typedef Void | (*SysCallback_InitFxn// Init function signature)(Void);
typedef Void | (*SysCallback_PutCharFxn// Putchar function signature)(Char);
Constants
extern const SysCallback_AbortFxn | SysCallback_abortFxn// User supplied abort function;
extern const SysCallback_AtExitFxn | SysCallback_atExitFxn// User supplied atexit function to be called when atexit() is called;
extern const SysCallback_ExitFxn | SysCallback_exitFxn// User supplied exit function;
extern const SysCallback_InitFxn | SysCallback_initFxn// User supplied initialization function;
extern const SysCallback_PutCharFxn | SysCallback_putCharFxn// User suplied character output function;
typedef SysCallback_AbortFxn
index URL

Abort function signature

C synopsis target-domain
typedef Void (*SysCallback_AbortFxn)(Void);
typedef SysCallback_AtExitFxn
index URL

Function called as part of normal application exit

C synopsis target-domain
typedef Int (*SysCallback_AtExitFxn)(Void(*)(Void));
typedef SysCallback_ExitFxn
index URL

Exit function signature

C synopsis target-domain
typedef Void (*SysCallback_ExitFxn)(Int);
typedef SysCallback_InitFxn
index URL

Init function signature

C synopsis target-domain
typedef Void (*SysCallback_InitFxn)(Void);
typedef SysCallback_PutCharFxn
index URL

Putchar function signature

C synopsis target-domain
typedef Void (*SysCallback_PutCharFxn)(Char);
config SysCallback_abortFxn // module-wide
index URL

User supplied abort function

C synopsis target-domain
extern const SysCallback_AbortFxn SysCallback_abortFxn;
DETAILS
This function is called when abort() is called. If it returns to the caller, abort() will enter into a self loop to prevent futher execution.
If this function is set to null, abort() will enter into a self loop to prevent futher execution.
config SysCallback_atExitFxn // module-wide
index URL

User supplied atexit function to be called when atexit() is called

C synopsis target-domain
extern const SysCallback_AtExitFxn SysCallback_atExitFxn;
DETAILS
This function is called when the application calls atexit() and its argument is passed to this function.
If this function is set to null, the function passed to atexit() is ignored and atexit() will return 0.
config SysCallback_exitFxn // module-wide
index URL

User supplied exit function

C synopsis target-domain
extern const SysCallback_ExitFxn SysCallback_exitFxn;
DETAILS
This function is called when exit() is called. If it returns to the caller, exit() will enter into a self loop to prevent futher execution.
If this function is set to null, exit() will enter into a self loop to prevent futher execution.
config SysCallback_initFxn // module-wide
index URL

User supplied initialization function

C synopsis target-domain
extern const SysCallback_InitFxn SysCallback_initFxn;
DETAILS
If this function is set to non-null value, it is called prior to main() during this module's startup function.
config SysCallback_putCharFxn // module-wide
index URL

User suplied character output function

C synopsis target-domain
extern const SysCallback_PutCharFxn SysCallback_putCharFxn;
DETAILS
This function is called whenever the System module needs to output a character; e.g., during System_printf() or System_putch().
If this function is set to null, output characters are simply ignored (i.e., they are not output).
SysCallback_abort() // module-wide
index URL

Backend for System.abort()

C synopsis target-domain
Void SysCallback_abort(String str);
ARGUMENTS
str — message to output just prior to aborting
If non-NULL, this string should be output just prior to terminating.
DETAILS
This function is called by System.abort() prior to calling the ANSI C Standard library function abort(). So, to ensure the abort processing of the system's ANSI C Standard library completes, this function should return to its caller.
SysCallback_exit() // module-wide
index URL

Backend for System.exit()

C synopsis target-domain
Void SysCallback_exit(Int stat);
ARGUMENTS
stat — status value passed to all "atexit" handlers
This value is passed to all "atexit" handles bound via System.atexit(). If the application exits via the ANSI C Standard exit() function rather than via System_exit(), stat will be equal to System.STATUS_UNKNOWN.
DETAILS
This function is called as part the normal "atexit" processing performed by the ANSI C Standard Library's exit() function; System.exit() directly calls ANSI exit().
This function is called after all "atexit" handlers bound via System.atexit() are run and it is always called while "inside" the the System gate.
To ensure that all exit processing of the system's ANSI C Standard Library completes, this function should return to its caller. Exit handlers bound using the ANSI C Standard Library atexit() function may run before or after this function.
SEE
System.atexit
SysCallback_flush() // module-wide
index URL

Backend for System.flush()

C synopsis target-domain
Void SysCallback_flush();
DETAILS
This function is simply called by System_flush to output any characters buffered by the underlying SystemSupport module to an output device.
SysCallback_putch() // module-wide
index URL

Backend for System.printf() and System.putch()

C synopsis target-domain
Void SysCallback_putch(Char ch);
ARGUMENTS
ch — character to output
DETAILS
Output a single character. This function is called by System_printf() to write each character of formated output specified by its arguments.
SysCallback_ready() // module-wide
index URL

Test if character output can proceed

C synopsis target-domain
Bool SysCallback_ready();
DETAILS
This function is called by System prior to performing any character output. If this function returns FALSE, the System functions that would normally call putch() simply return (with an appropriate error status) without ever calling putch.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SysCallback_Module_id();
// Get this module's unique id
Bool SysCallback_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SysCallback_Module_heap();
// The heap from which this module allocates memory
Bool SysCallback_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SysCallback_Module_getMask();
// Returns the diagnostics mask for this module
Void SysCallback_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/SysCallback.xdc
var SysCallback = xdc.useModule('ti.mcu.msp430.runtime.SysCallback');
module-wide config parameters
     SysCallback.abortFxn// User supplied abort function = Void(*)(Void) null;
     SysCallback.atExitFxn// User supplied atexit function to be called when atexit() is called = Int(*)(Void(*)(Void)) null;
     SysCallback.exitFxn// User supplied exit function = Void(*)(Int) null;
     SysCallback.initFxn// User supplied initialization function = Void(*)(Void) null;
     SysCallback.putCharFxn// User suplied character output function = Void(*)(Char) null;
     SysCallback.common$// Common module configuration parameters = Types.Common$ undefined;
config SysCallback.abortFxn // module-wide
index URL

User supplied abort function

XDCscript usage meta-domain
SysCallback.abortFxn = Void(*)(Void) null;
DETAILS
This function is called when abort() is called. If it returns to the caller, abort() will enter into a self loop to prevent futher execution.
If this function is set to null, abort() will enter into a self loop to prevent futher execution.
C SYNOPSIS
SysCallback_abortFxn
config SysCallback.atExitFxn // module-wide
index URL

User supplied atexit function to be called when atexit() is called

XDCscript usage meta-domain
SysCallback.atExitFxn = Int(*)(Void(*)(Void)) null;
DETAILS
This function is called when the application calls atexit() and its argument is passed to this function.
If this function is set to null, the function passed to atexit() is ignored and atexit() will return 0.
C SYNOPSIS
SysCallback_atExitFxn
config SysCallback.exitFxn // module-wide
index URL

User supplied exit function

XDCscript usage meta-domain
SysCallback.exitFxn = Void(*)(Int) null;
DETAILS
This function is called when exit() is called. If it returns to the caller, exit() will enter into a self loop to prevent futher execution.
If this function is set to null, exit() will enter into a self loop to prevent futher execution.
C SYNOPSIS
SysCallback_exitFxn
config SysCallback.initFxn // module-wide
index URL

User supplied initialization function

XDCscript usage meta-domain
SysCallback.initFxn = Void(*)(Void) null;
DETAILS
If this function is set to non-null value, it is called prior to main() during this module's startup function.
C SYNOPSIS
SysCallback_initFxn
config SysCallback.putCharFxn // module-wide
index URL

User suplied character output function

XDCscript usage meta-domain
SysCallback.putCharFxn = Void(*)(Char) null;
DETAILS
This function is called whenever the System module needs to output a character; e.g., during System_printf() or System_putch().
If this function is set to null, output characters are simply ignored (i.e., they are not output).
C SYNOPSIS
SysCallback_putCharFxn
metaonly config SysCallback.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SysCallback.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 Thu, 08 Nov 2012 02:15:03 GMT


module ti.mcu.msp430.runtime.SysCallback

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== SysCallback.xdc ========
    14     */
    15    import xdc.runtime.Types;
    16
    17    /*!
    18     *  ======== SysCallback ========
    19     *  ISystemSupport provider that "calls back" to application defined functions
    20     *
    21     *  This module provides an implementation of the `{@link ISystemSupport}`
    22     *  interface that simply calls back to user defined functions to enable the
    23     *  System module's functionality.
    24     */
    25    @ModuleStartup
    26    @Template("./SysCallback.xdt")
    27    module SysCallback inherits xdc.runtime.ISystemSupport {
    28        /*!
    29         *  ======== PutCharFxn ========
    30         *  Putchar function signature
    31         */
    32        typedef Void (*PutCharFxn)(Char);
    33
    34        /*!
    35         *  ======== AtExitFxn ========
    36         *  Function called as part of normal application exit
    37         */
    38        typedef Int (*AtExitFxn)(void (*)(void));
    39
    40        /*!
    41         *  ======== AbortFxn ========
    42         *  Abort function signature
    43         */
    44        typedef Void (*AbortFxn)(void);
    45
    46        /*!
    47         *  ======== InitFxn ========
    48         *  Init function signature
    49         */
    50        typedef Void (*InitFxn)(void);
    51
    52        /*!
    53         *  ======== ExitFxn ========
    54         *  Exit function signature
    55         */
    56        typedef Void (*ExitFxn)(int);
    57
    58        /*!
    59         *  ======== putCharFxn ========
    60         *  User suplied character output function
    61         *
    62         *  This function is called whenever the `System` module needs to output
    63         *  a character; e.g., during `System_printf()` or `System_putch()`.
    64         *
    65         *  If this function is set to `null`, output characters are simply
    66         *  ignored (i.e., they are not output).
    67         */
    68        config PutCharFxn putCharFxn = null;
    69
    70        /*!
    71         *  ======== atExitFxn ========
    72         *  User supplied atexit function to be called when `atexit()` is called
    73         *
    74         *  This function is called when the application calls `atexit()` and its
    75         *  argument is passed to this function.
    76         *
    77         *  If this function is set to `null`, the function passed to `atexit()`
    78         *  is ignored and `atexit()` will return 0.
    79         */
    80        config AtExitFxn atExitFxn = null;
    81
    82        /*!
    83         *  ======== abortFxn ========
    84         *  User supplied abort function
    85         *
    86         *  This function is called when `abort()` is called.  If it returns to
    87         *  the caller, `abort()` will enter into a self loop to prevent futher
    88         *  execution.
    89         *
    90         *  If this function is set to `null`, `abort()` will enter into a self
    91         *  loop to prevent futher execution.
    92         */
    93        config AbortFxn abortFxn = null;
    94
    95        /*!
    96         *  ======== initFxn ========
    97         *  User supplied initialization function
    98         *
    99         *  If this function is set to non-`null` value, it is called prior to
   100         *  `main()` during this module's startup function.
   101         */
   102        config InitFxn initFxn = null;
   103
   104        /*!
   105         *  ======== exitFxn ========
   106         *  User supplied exit function
   107         *
   108         *  This function is called when `exit()` is called.  If it returns to
   109         *  the caller, `exit()` will enter into a self loop to prevent futher
   110         *  execution.
   111         *
   112         *  If this function is set to `null`, `exit()` will enter into a self
   113         *  loop to prevent futher execution.
   114         */
   115        config ExitFxn exitFxn = null;
   116    }


module ti.mcu.msp430.runtime.SysUart
index URL

Implementation of ISystemSupport that sends output to a UART

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides an implementation of the ISystemSupport interface that simply writes each character to the MSP430's UART.
C synopsis target-domain sourced in ti/mcu/msp430/runtime/SysUart.xdc
#include <ti/mcu/msp430/runtime/SysUart.h>
Functions common to all ISystemSupport modules
Void | SysUart_abort// Backend for System.abort()(String str);
Void | SysUart_exit// Backend for System.exit()(Int stat);
Void | SysUart_flush// Backend for System.flush()();
Void | SysUart_putch// Backend for System.printf() and System.putch()(Char ch);
Bool | SysUart_ready// Test if character output can proceed();
Functions common to all target modules
 | SysUart_Module_getMask// Returns the diagnostics mask for this module, SysUart_Module_hasMask// Test whether this module has a diagnostics mask, SysUart_Module_heap// The heap from which this module allocates memory, SysUart_Module_id// Get this module's unique id, SysUart_Module_setMask// Set the diagnostics mask for this module, SysUart_Module_startupDone// Test if this module has completed startup
Typedefs
typedef Void | (*SysUart_GetLineFxn// Input a single line)(Char[],Int);
Constants
extern const SysUart_GetLineFxn | SysUart_getLineFxn// User suplied character input function;
extern const Int | SysUart_lineSize// The maximum line buffer size;
typedef SysUart_GetLineFxn
index URL

Input a single line

C synopsis target-domain
typedef Void (*SysUart_GetLineFxn)(Char[],Int);
config SysUart_getLineFxn // module-wide
index URL

User suplied character input function

C synopsis target-domain
extern const SysUart_GetLineFxn SysUart_getLineFxn;
DETAILS
If this parameter is set to a non-null value, the specified function will be called to input a line of chars received by SysUart.
For example, if you define a function named myGetLineFxn, the following configuration fragment will cause SysUart to call myGetLineFxn whenever a line is received.
      var SysUart = xdc.useModule("xdc.runtime.SysUart");
      SysUart.getLineFxn = "&myGetLineFxn";
If this parameter is not set, a default function will be used which simply drops the input.
SEE
GetLineFxn
config SysUart_lineSize // module-wide
index URL

The maximum line buffer size

C synopsis target-domain
extern const Int SysUart_lineSize;
DETAILS
The maximum number of characters to buffer before calling getLineFxn. If set to zero, no buffering occurs and each character received triggers getLineFxn (if it's defined).
SysUart_abort() // module-wide
index URL

Backend for System.abort()

C synopsis target-domain
Void SysUart_abort(String str);
ARGUMENTS
str — message to output just prior to aborting
If non-NULL, this string should be output just prior to terminating.
DETAILS
This function is called by System.abort() prior to calling the ANSI C Standard library function abort(). So, to ensure the abort processing of the system's ANSI C Standard library completes, this function should return to its caller.
SysUart_exit() // module-wide
index URL

Backend for System.exit()

C synopsis target-domain
Void SysUart_exit(Int stat);
ARGUMENTS
stat — status value passed to all "atexit" handlers
This value is passed to all "atexit" handles bound via System.atexit(). If the application exits via the ANSI C Standard exit() function rather than via System_exit(), stat will be equal to System.STATUS_UNKNOWN.
DETAILS
This function is called as part the normal "atexit" processing performed by the ANSI C Standard Library's exit() function; System.exit() directly calls ANSI exit().
This function is called after all "atexit" handlers bound via System.atexit() are run and it is always called while "inside" the the System gate.
To ensure that all exit processing of the system's ANSI C Standard Library completes, this function should return to its caller. Exit handlers bound using the ANSI C Standard Library atexit() function may run before or after this function.
SEE
System.atexit
SysUart_flush() // module-wide
index URL

Backend for System.flush()

C synopsis target-domain
Void SysUart_flush();
DETAILS
This function is simply called by System_flush to output any characters buffered by the underlying SystemSupport module to an output device.
SysUart_putch() // module-wide
index URL

Backend for System.printf() and System.putch()

C synopsis target-domain
Void SysUart_putch(Char ch);
ARGUMENTS
ch — character to output
DETAILS
Output a single character. This function is called by System_printf() to write each character of formated output specified by its arguments.
SysUart_ready() // module-wide
index URL

Test if character output can proceed

C synopsis target-domain
Bool SysUart_ready();
DETAILS
This function is called by System prior to performing any character output. If this function returns FALSE, the System functions that would normally call putch() simply return (with an appropriate error status) without ever calling putch.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SysUart_Module_id();
// Get this module's unique id
Bool SysUart_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SysUart_Module_heap();
// The heap from which this module allocates memory
Bool SysUart_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SysUart_Module_getMask();
// Returns the diagnostics mask for this module
Void SysUart_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/SysUart.xdc
var SysUart = xdc.useModule('ti.mcu.msp430.runtime.SysUart');
module-wide config parameters
     SysUart.getLineFxn// User suplied character input function = Void(*)(Char[],Int) null;
     SysUart.lineSize// The maximum line buffer size = Int 0;
     SysUart.common$// Common module configuration parameters = Types.Common$ undefined;
config SysUart.getLineFxn // module-wide
index URL

User suplied character input function

XDCscript usage meta-domain
SysUart.getLineFxn = Void(*)(Char[],Int) null;
DETAILS
If this parameter is set to a non-null value, the specified function will be called to input a line of chars received by SysUart.
For example, if you define a function named myGetLineFxn, the following configuration fragment will cause SysUart to call myGetLineFxn whenever a line is received.
      var SysUart = xdc.useModule("xdc.runtime.SysUart");
      SysUart.getLineFxn = "&myGetLineFxn";
If this parameter is not set, a default function will be used which simply drops the input.
SEE
GetLineFxn
C SYNOPSIS
SysUart_getLineFxn
config SysUart.lineSize // module-wide
index URL

The maximum line buffer size

XDCscript usage meta-domain
SysUart.lineSize = Int 0;
DETAILS
The maximum number of characters to buffer before calling getLineFxn. If set to zero, no buffering occurs and each character received triggers getLineFxn (if it's defined).
C SYNOPSIS
SysUart_lineSize
metaonly config SysUart.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SysUart.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 Thu, 08 Nov 2012 02:15:03 GMT


module ti.mcu.msp430.runtime.SysUart

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== SysUart.xdc ========
    14     */
    15    import xdc.runtime.Types;
    16
    17    /*!
    18     *  ======== SysUart ========
    19     *  Implementation of ISystemSupport that sends output to a UART
    20     *
    21     *  This module provides an implementation of the `{@link ISystemSupport}`
    22     *  interface that simply writes each character to the MSP430's UART.
    23     */
    24    @ModuleStartup
    25    @Template("./SysUart.xdt")
    26    module SysUart inherits xdc.runtime.ISystemSupport {
    27
    28        /*!
    29         *  ======== GetLineFxn ========
    30         *  Input a single line
    31         */
    32         typedef Void (*GetLineFxn)(Char[], Int);
    33
    34        /*!
    35         *  ======== getLineFxn ========
    36         *  User suplied character input function
    37         *
    38         *  If this parameter is set to a non-`null` value, the specified
    39         *  function will be called to input a line of chars received by
    40         *  `SysUart`.
    41         *
    42         *  For example, if you define a function named `myGetLineFxn`, the
    43         *  following configuration fragment will cause `SysUart` to call
    44         *  `myGetLineFxn` whenever a line is received.
    45         *  @p(code)
    46         *      var SysUart = xdc.useModule("xdc.runtime.SysUart");
    47         *      SysUart.getLineFxn = "&myGetLineFxn";
    48         *  @p
    49         *
    50         *  If this parameter is not set, a default function will be used which
    51         *  simply drops the input.
    52         *
    53         *  @see #GetLineFxn
    54         */
    55        config GetLineFxn getLineFxn = null;
    56
    57        /*!
    58         *  ======== lineSize ========
    59         *  The maximum line buffer size
    60         *
    61         *  The maximum number of characters to buffer before calling
    62         *  `getLineFxn`.  If set to zero, no buffering occurs and each
    63         *  character received triggers `getLineFxn` (if it's defined).
    64         */
    65        config Int lineSize = 0;
    66
    67    internal:
    68
    69        /*!
    70         *  ======== rxtxInit ========
    71         *  Initialize peripheral HW at startup
    72         */
    73        void rxtxInit();
    74
    75        /*!
    76         *  ======== tx ========
    77         *  Transmit one character
    78         */
    79        void tx(char c);
    80
    81        /*!
    82         *  ======== rx ========
    83         *  Receive one character
    84         */
    85        void rx(char c);
    86
    87        config Char lineBuf[];
    88
    89        struct Module_State {
    90            UInt lineIdx;
    91        }
    92    }


package ti.mcu.msp430.runtime.utils
index URL

Misc utilities

XDCspec declarations sourced in ti/mcu/msp430/runtime/utils/package.xdc
package ti.mcu.msp430.runtime.utils [1, 0, 0] {
    module Atomic;
    // Simple atomic operations on integers
    module Button;
    // Simple momentary button switch manager
    module Clock;
    // Basic "wall clock" functions
    module Led;
    // Simple LED manager
    module Stack;
    // Stack monitoring functions
}
generated on Thu, 08 Nov 2012 02:15:04 GMT


package ti.mcu.msp430.runtime.utils

     1    /*!
     2     *  ======== utils ========
     3     *  Misc utilities
     4     */
     5    package ti.mcu.msp430.runtime.utils [1, 0, 0]
     6    {
     7        module Atomic;
     8        module Clock;
     9        module Stack;
    10        module Led;
    11        module Button;
    12    }


module ti.mcu.msp430.runtime.utils.Atomic
index URL

Simple atomic operations on integers

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides simple "atomic" operations on integral variables. These operations reliably read, modify, and store a specified value even in the face of preempting threads that modify the same variables. [ more ... ]
C synopsis target-domain sourced in ti/mcu/msp430/runtime/utils/Atomic.xdc
#include <ti/mcu/msp430/runtime/utils/Atomic.h>
Functions
Void | Atomic_dec8// Atomically decrement val by 1(UInt8 *val);
Void | Atomic_inc8// Atomically increment val by 1(UInt8 *val);
Functions common to all target modules
 | Atomic_Module_getMask// Returns the diagnostics mask for this module, Atomic_Module_hasMask// Test whether this module has a diagnostics mask, Atomic_Module_heap// The heap from which this module allocates memory, Atomic_Module_id// Get this module's unique id, Atomic_Module_setMask// Set the diagnostics mask for this module, Atomic_Module_startupDone// Test if this module has completed startup
DETAILS
This module provides simple "atomic" operations on integral variables. These operations reliably read, modify, and store a specified value even in the face of preempting threads that modify the same variables.
Atomic operations are used as a simple counting semaphore between an appliation and an interrupt service ruotine, for example.
Atomic_dec8() // module-wide
index URL

Atomically decrement val by 1

C synopsis target-domain
Void Atomic_dec8(UInt8 *val);
Atomic_inc8() // module-wide
index URL

Atomically increment val by 1

C synopsis target-domain
Void Atomic_inc8(UInt8 *val);
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Atomic_Module_id();
// Get this module's unique id
Bool Atomic_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Atomic_Module_heap();
// The heap from which this module allocates memory
Bool Atomic_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Atomic_Module_getMask();
// Returns the diagnostics mask for this module
Void Atomic_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/utils/Atomic.xdc
var Atomic = xdc.useModule('ti.mcu.msp430.runtime.utils.Atomic');
module-wide config parameters
     Atomic.common$// Common module configuration parameters = Types.Common$ undefined;
metaonly config Atomic.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Atomic.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 Thu, 08 Nov 2012 02:15:03 GMT


module ti.mcu.msp430.runtime.utils.Atomic

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Atomic ========
    14     *  Simple atomic operations on integers
    15     *
    16     *  This module provides simple "atomic" operations on integral variables.
    17     *  These operations reliably read, modify, and store a specified value
    18     *  even in the face of preempting threads that modify the same variables.
    19     *
    20     *  Atomic operations are used as a simple counting semaphore between an
    21     *  appliation and an interrupt service ruotine, for example.
    22     */
    23    module Atomic
    24    {
    25        /*!
    26         *  ======== inc8 ========
    27         *  Atomically increment val by 1
    28         */
    29        @DirectCall
    30        Void inc8(UInt8 *val);
    31
    32        /*!
    33         *  ======== dec8 ========
    34         *  Atomically decrement val by 1
    35         */
    36        @DirectCall
    37        Void dec8(UInt8 *val);
    38    }


module ti.mcu.msp430.runtime.utils.Button
index URL

Simple momentary button switch manager

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in ti/mcu/msp430/runtime/utils/Button.xdc
#include <ti/mcu/msp430/runtime/utils/Button.h>
Functions
Void | Button_disable// Disable the specified buttons(Bits8 mask);
Void | Button_enable// Enable the specified buttons(Bits8 mask);
Bits8 | Button_read// Atomically read and clear the specified buttons(Bits8 mask);
Functions common to all target modules
 | Button_Module_getMask// Returns the diagnostics mask for this module, Button_Module_hasMask// Test whether this module has a diagnostics mask, Button_Module_heap// The heap from which this module allocates memory, Button_Module_id// Get this module's unique id, Button_Module_setMask// Set the diagnostics mask for this module, Button_Module_startupDone// Test if this module has completed startup
Constants
extern const Ptr | Button_PORT// Address of 8-bit output port to use;
extern const Ptr | Button_PORT_IE// Address of Interrupt Enable register;
extern const Ptr | Button_PORT_IFG// Address of Interrupt Flag register;
extern const Ptr | Button_PORT_OUT// Address of output configuration register;
extern const Ptr | Button_PORT_REN// Address of pullup/down resister enable configuration register;
extern const Bits8 | Button_SWITCH1// Port mask for switch #1;
extern const Bits8 | Button_SWITCH2// Port mask for switch #2;
config Button_PORT // module-wide
index URL

Address of 8-bit output port to use

C synopsis target-domain
extern const Ptr Button_PORT;
config Button_PORT_IE // module-wide
index URL

Address of Interrupt Enable register

C synopsis target-domain
extern const Ptr Button_PORT_IE;
config Button_PORT_IFG // module-wide
index URL

Address of Interrupt Flag register

C synopsis target-domain
extern const Ptr Button_PORT_IFG;
config Button_PORT_OUT // module-wide
index URL

Address of output configuration register

C synopsis target-domain
extern const Ptr Button_PORT_OUT;
config Button_PORT_REN // module-wide
index URL

Address of pullup/down resister enable configuration register

C synopsis target-domain
extern const Ptr Button_PORT_REN;
config Button_SWITCH1 // module-wide
index URL

Port mask for switch #1

C synopsis target-domain
extern const Bits8 Button_SWITCH1;
config Button_SWITCH2 // module-wide
index URL

Port mask for switch #2

C synopsis target-domain
extern const Bits8 Button_SWITCH2;
Button_disable() // module-wide
index URL

Disable the specified buttons

C synopsis target-domain
Void Button_disable(Bits8 mask);
Button_enable() // module-wide
index URL

Enable the specified buttons

C synopsis target-domain
Void Button_enable(Bits8 mask);
Button_read() // module-wide
index URL

Atomically read and clear the specified buttons

C synopsis target-domain
Bits8 Button_read(Bits8 mask);
DETAILS
This function returns the state of the buttons and clears their state. Only the state of the buttons specified by mask are affected.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Button_Module_id();
// Get this module's unique id
Bool Button_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Button_Module_heap();
// The heap from which this module allocates memory
Bool Button_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Button_Module_getMask();
// Returns the diagnostics mask for this module
Void Button_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/utils/Button.xdc
var Button = xdc.useModule('ti.mcu.msp430.runtime.utils.Button');
module-wide config parameters
    const Button.PORT0// = Ptr 0x11;
    const Button.PORT0_IE// = Ptr 0x15;
    const Button.PORT0_IFG// = Ptr 0x13;
    const Button.PORT0_OUT// = Ptr 0x11;
    const Button.PORT0_REN// = Ptr 0x11;
    const Button.PORT1// = Ptr 0x21;
    const Button.PORT1_IE// = Ptr 0x25;
    const Button.PORT1_IFG// = Ptr 0x23;
    const Button.PORT1_OUT// = Ptr 0x21;
    const Button.PORT1_REN// = Ptr 0x27;
    const Button.PORT2// = Ptr 0x29;
    const Button.PORT2_IE// = Ptr 0x2D;
    const Button.PORT2_IFG// = Ptr 0x2B;
    const Button.PORT2_OUT// = Ptr 0x29;
    const Button.PORT2_REN// = Ptr 0x2F;
    const Button.PORTA_IE_H// = Ptr 0x21B;
    const Button.PORTA_IE_L// = Ptr 0x21A;
    const Button.PORTA_IFG_H// = Ptr 0x21D;
    const Button.PORTA_IFG_L// = Ptr 0x21C;
    const Button.PORTA_OUT_H// = Ptr 0x203;
    const Button.PORTA_OUT_L// = Ptr 0x202;
    const Button.PORTA_REN_H// = Ptr 0x207;
    const Button.PORTA_REN_L// = Ptr 0x206;
     Button.PORT// Address of 8-bit output port to use = Ptr Button.PORT1;
     Button.PORT_IE// Address of Interrupt Enable register = Ptr Button.PORT1_IE;
     Button.PORT_IFG// Address of Interrupt Flag register = Ptr Button.PORT1_IFG;
     Button.PORT_OUT// Address of output configuration register = Ptr Button.PORT1_OUT;
     Button.PORT_REN// Address of pullup/down resister enable configuration register = Ptr Button.PORT1_REN;
     Button.SWITCH1// Port mask for switch #1 = Bits8 0x1;
     Button.SWITCH2// Port mask for switch #2 = Bits8 0x2;
     Button.common$// Common module configuration parameters = Types.Common$ undefined;
metaonly config Button.PORT0 // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT0 = Ptr 0x11;
metaonly config Button.PORT0_IE // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT0_IE = Ptr 0x15;
metaonly config Button.PORT0_IFG // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT0_IFG = Ptr 0x13;
metaonly config Button.PORT0_OUT // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT0_OUT = Ptr 0x11;
metaonly config Button.PORT0_REN // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT0_REN = Ptr 0x11;
metaonly config Button.PORT1 // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT1 = Ptr 0x21;
metaonly config Button.PORT1_IE // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT1_IE = Ptr 0x25;
metaonly config Button.PORT1_IFG // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT1_IFG = Ptr 0x23;
metaonly config Button.PORT1_OUT // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT1_OUT = Ptr 0x21;
metaonly config Button.PORT1_REN // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT1_REN = Ptr 0x27;
metaonly config Button.PORT2 // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT2 = Ptr 0x29;
metaonly config Button.PORT2_IE // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT2_IE = Ptr 0x2D;
metaonly config Button.PORT2_IFG // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT2_IFG = Ptr 0x2B;
metaonly config Button.PORT2_OUT // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT2_OUT = Ptr 0x29;
metaonly config Button.PORT2_REN // module-wide
index URL
XDCscript usage meta-domain
const Button.PORT2_REN = Ptr 0x2F;
metaonly config Button.PORTA_IE_H // module-wide
index URL
XDCscript usage meta-domain
const Button.PORTA_IE_H = Ptr 0x21B;
metaonly config Button.PORTA_IE_L // module-wide
index URL
XDCscript usage meta-domain
const Button.PORTA_IE_L = Ptr 0x21A;
metaonly config Button.PORTA_IFG_H // module-wide
index URL
XDCscript usage meta-domain
const Button.PORTA_IFG_H = Ptr 0x21D;
metaonly config Button.PORTA_IFG_L // module-wide
index URL
XDCscript usage meta-domain
const Button.PORTA_IFG_L = Ptr 0x21C;
metaonly config Button.PORTA_OUT_H // module-wide
index URL
XDCscript usage meta-domain
const Button.PORTA_OUT_H = Ptr 0x203;
metaonly config Button.PORTA_OUT_L // module-wide
index URL
XDCscript usage meta-domain
const Button.PORTA_OUT_L = Ptr 0x202;
metaonly config Button.PORTA_REN_H // module-wide
index URL
XDCscript usage meta-domain
const Button.PORTA_REN_H = Ptr 0x207;
metaonly config Button.PORTA_REN_L // module-wide
index URL
XDCscript usage meta-domain
const Button.PORTA_REN_L = Ptr 0x206;
config Button.PORT // module-wide
index URL

Address of 8-bit output port to use

XDCscript usage meta-domain
Button.PORT = Ptr Button.PORT1;
C SYNOPSIS
Button_PORT
config Button.PORT_IE // module-wide
index URL

Address of Interrupt Enable register

XDCscript usage meta-domain
Button.PORT_IE = Ptr Button.PORT1_IE;
C SYNOPSIS
Button_PORT_IE
config Button.PORT_IFG // module-wide
index URL

Address of Interrupt Flag register

XDCscript usage meta-domain
Button.PORT_IFG = Ptr Button.PORT1_IFG;
C SYNOPSIS
Button_PORT_IFG
config Button.PORT_OUT // module-wide
index URL

Address of output configuration register

XDCscript usage meta-domain
Button.PORT_OUT = Ptr Button.PORT1_OUT;
C SYNOPSIS
Button_PORT_OUT
config Button.PORT_REN // module-wide
index URL

Address of pullup/down resister enable configuration register

XDCscript usage meta-domain
Button.PORT_REN = Ptr Button.PORT1_REN;
C SYNOPSIS
Button_PORT_REN
config Button.SWITCH1 // module-wide
index URL

Port mask for switch #1

XDCscript usage meta-domain
Button.SWITCH1 = Bits8 0x1;
C SYNOPSIS
Button_SWITCH1
config Button.SWITCH2 // module-wide
index URL

Port mask for switch #2

XDCscript usage meta-domain
Button.SWITCH2 = Bits8 0x2;
C SYNOPSIS
Button_SWITCH2
metaonly config Button.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Button.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 Thu, 08 Nov 2012 02:15:04 GMT


module ti.mcu.msp430.runtime.utils.Button

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Button ========
    14     *  Simple momentary button switch manager
    15     */
    16    @ModuleStartup
    17    module Button
    18    {
    19        /* PORT0 only defined on msp430x3[123]x devices */
    20        metaonly readonly config Ptr PORT0 = 0x11;
    21
    22        metaonly readonly config Ptr PORT1 = 0x21;
    23        metaonly readonly config Ptr PORT2 = 0x29;
    24
    25        metaonly readonly config Ptr PORT0_IE  = 0x15;
    26        metaonly readonly config Ptr PORT0_IFG = 0x13;
    27        metaonly readonly config Ptr PORT0_OUT = 0x11;
    28        metaonly readonly config Ptr PORT0_REN = 0x11;  /* does not exist */
    29
    30        metaonly readonly config Ptr PORT1_IE  = 0x25;
    31        metaonly readonly config Ptr PORT1_IFG = 0x23;
    32        metaonly readonly config Ptr PORT1_OUT = 0x21;
    33        metaonly readonly config Ptr PORT1_REN = 0x27;
    34
    35        metaonly readonly config Ptr PORT2_IE  = 0x2D;
    36        metaonly readonly config Ptr PORT2_IFG = 0x2B;
    37        metaonly readonly config Ptr PORT2_OUT = 0x29;
    38        metaonly readonly config Ptr PORT2_REN = 0x2F;
    39
    40        metaonly readonly config Ptr PORTA_IE_L  = 0x21A;
    41        metaonly readonly config Ptr PORTA_IFG_L = 0x21C;
    42        metaonly readonly config Ptr PORTA_OUT_L = 0x202;
    43        metaonly readonly config Ptr PORTA_REN_L = 0x206;
    44
    45        metaonly readonly config Ptr PORTA_IE_H  = 0x21B;
    46        metaonly readonly config Ptr PORTA_IFG_H = 0x21D;
    47        metaonly readonly config Ptr PORTA_OUT_H = 0x203;
    48        metaonly readonly config Ptr PORTA_REN_H = 0x207;
    49
    50        /*!
    51         *  ======== PORT ========
    52         *  Address of 8-bit output port to use
    53         */
    54        config Ptr PORT = PORT1;        /* platform dependent port number */
    55
    56        /*!
    57         *  ======== PORT_IE ========
    58         *  Address of Interrupt Enable register
    59         */
    60        config Ptr PORT_IE = PORT1_IE;
    61
    62        /*!
    63         *  ======== PORT_OUT ========
    64         *  Address of output configuration register
    65         */
    66        config Ptr PORT_OUT = PORT1_OUT;
    67
    68        /*!
    69         *  ======== PORT_REN ========
    70         *  Address of pullup/down resister enable configuration register
    71         */
    72        config Ptr PORT_REN = PORT1_REN;
    73
    74        /*!
    75         *  ======== PORT_IFG ========
    76         *  Address of Interrupt Flag register
    77         */
    78        config Ptr PORT_IFG = PORT1_IFG;
    79
    80        /*!
    81         *  ======== SWITCH1 ========
    82         *  Port mask for switch #1
    83         */
    84        config Bits8 SWITCH1 = 0x1;         /* platform dependent pin */
    85
    86        /*!
    87         *  ======== SWITCH2 ========
    88         *  Port mask for switch #2
    89         */
    90        config Bits8 SWITCH2 = 0x2;         /* platform dependent pin */
    91
    92        /*!
    93         *  ======== enable ========
    94         *  Enable the specified buttons
    95         */
    96        @DirectCall
    97        Void enable(Bits8 mask);
    98
    99        /*!
   100         *  ======== disable ========
   101         *  Disable the specified buttons
   102         */
   103        @DirectCall
   104        Void disable(Bits8 mask);
   105
   106        /*!
   107         *  ======== read ========
   108         *  Atomically read and clear the specified buttons
   109         *
   110         *  This function returns the state of the buttons and clears
   111         *  their state.  Only the state of the buttons specified by
   112         *  `mask` are affected.
   113         */
   114        @DirectCall
   115        Bits8 read(Bits8 mask);
   116    }


module ti.mcu.msp430.runtime.utils.Clock
index URL

Basic "wall clock" functions

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in ti/mcu/msp430/runtime/utils/Clock.xdc
#include <ti/mcu/msp430/runtime/utils/Clock.h>
Functions
Void | Clock_delay// Spin for specified number of micro seconds(UInt16 usec);
Clock_TimeValue | Clock_getTime// Get the current time in Auxiliary clock ticks();
Void | Clock_sleep// Idle the CPU for specified number of micro seconds(UInt16 usec, UInt lpm);
Functions common to all target modules
 | Clock_Module_getMask// Returns the diagnostics mask for this module, Clock_Module_hasMask// Test whether this module has a diagnostics mask, Clock_Module_heap// The heap from which this module allocates memory, Clock_Module_id// Get this module's unique id, Clock_Module_setMask// Set the diagnostics mask for this module, Clock_Module_startupDone// Test if this module has completed startup
Defines
#define | Clock_T0A3// (Clock_TimerRegs*)0x340
#define | Clock_T0A5// (Clock_TimerRegs*)0x340
#define | Clock_T0B7// (Clock_TimerRegs*)0x3d0
#define | Clock_T1A2// (Clock_TimerRegs*)0x180
#define | Clock_T1A3// (Clock_TimerRegs*)0x380
#define | Clock_T1A5// (Clock_TimerRegs*)0x380
#define | Clock_T2A3// (Clock_TimerRegs*)0x400
#define | Clock_TA2// (Clock_TimerRegs*)0x160
#define | Clock_TA3// (Clock_TimerRegs*)0x160
#define | Clock_TA5// (Clock_TimerRegs*)0x160
#define | Clock_TB3// (Clock_TimerRegs*)0x180
#define | Clock_TB7// (Clock_TimerRegs*)0x180
Typedefs
typedef struct | Clock_TimerRegs// Timer peripheral register definition ...
typedef UInt16 | Clock_TimeValue// Time value type;
Constants
extern const Int | Clock_fastClockKHz// Main System clock frequency (KHz);
extern const Int | Clock_slowClockHz// Auxiliary clock frequency (Hz);
extern const Clock_TimerRegs * | Clock_TIMER// Base address of timer peripheral to use;
const Clock_T0A3
index URL
C synopsis target-domain
#define Clock_T0A3 (Clock_TimerRegs*)0x340
const Clock_T0A5
index URL
C synopsis target-domain
#define Clock_T0A5 (Clock_TimerRegs*)0x340
const Clock_T0B7
index URL
C synopsis target-domain
#define Clock_T0B7 (Clock_TimerRegs*)0x3d0
const Clock_T1A2
index URL
C synopsis target-domain
#define Clock_T1A2 (Clock_TimerRegs*)0x180
const Clock_T1A3
index URL
C synopsis target-domain
#define Clock_T1A3 (Clock_TimerRegs*)0x380
const Clock_T1A5
index URL
C synopsis target-domain
#define Clock_T1A5 (Clock_TimerRegs*)0x380
const Clock_T2A3
index URL
C synopsis target-domain
#define Clock_T2A3 (Clock_TimerRegs*)0x400
const Clock_TA2
index URL
C synopsis target-domain
#define Clock_TA2 (Clock_TimerRegs*)0x160
const Clock_TA3
index URL
C synopsis target-domain
#define Clock_TA3 (Clock_TimerRegs*)0x160
const Clock_TA5
index URL
C synopsis target-domain
#define Clock_TA5 (Clock_TimerRegs*)0x160
const Clock_TB3
index URL
C synopsis target-domain
#define Clock_TB3 (Clock_TimerRegs*)0x180
const Clock_TB7
index URL
C synopsis target-domain
#define Clock_TB7 (Clock_TimerRegs*)0x180
typedef Clock_TimeValue
index URL

Time value type

C synopsis target-domain
typedef UInt16 Clock_TimeValue;
struct Clock_TimerRegs
index URL

Timer peripheral register definition

C synopsis target-domain
typedef struct Clock_TimerRegs {
    Bits16 CTL;
    Bits16 CCTL[7];
    Bits16 R;
    Bits16 CCR[7];
    Bits16 EX0;
    Bits16 IV;
} Clock_TimerRegs;
config Clock_TIMER // module-wide
index URL

Base address of timer peripheral to use

C synopsis target-domain
extern const Clock_TimerRegs *Clock_TIMER;
DETAILS
Timer B on 2274
config Clock_fastClockKHz // module-wide
index URL

Main System clock frequency (KHz)

C synopsis target-domain
extern const Int Clock_fastClockKHz;
config Clock_slowClockHz // module-wide
index URL

Auxiliary clock frequency (Hz)

C synopsis target-domain
extern const Int Clock_slowClockHz;
Clock_delay() // module-wide
index URL

Spin for specified number of micro seconds

C synopsis target-domain
Void Clock_delay(UInt16 usec);
Clock_getTime() // module-wide
index URL

Get the current time in Auxiliary clock ticks

C synopsis target-domain
Clock_TimeValue Clock_getTime();
Clock_sleep() // module-wide
index URL

Idle the CPU for specified number of micro seconds

C synopsis target-domain
Void Clock_sleep(UInt16 usec, UInt lpm);
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Clock_Module_id();
// Get this module's unique id
Bool Clock_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Clock_Module_heap();
// The heap from which this module allocates memory
Bool Clock_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Clock_Module_getMask();
// Returns the diagnostics mask for this module
Void Clock_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/utils/Clock.xdc
var Clock = xdc.useModule('ti.mcu.msp430.runtime.utils.Clock');
module-wide constants & types
    const Clock.T0A3// = 0x340;
    const Clock.T0A5// = 0x340;
    const Clock.T0B7// = 0x3d0;
    const Clock.T1A2// = 0x180;
    const Clock.T1A3// = 0x380;
    const Clock.T1A5// = 0x380;
    const Clock.T2A3// = 0x400;
    const Clock.TA2// = 0x160;
    const Clock.TA3// = 0x160;
    const Clock.TA5// = 0x160;
    const Clock.TB3// = 0x180;
    const Clock.TB7// = 0x180;
    var obj = new Clock.TimerRegs// Timer peripheral register definition;
        obj.CTL = Bits16 ...
        obj.CCTL = Bits16[7] ...
        obj.R = Bits16 ...
        obj.CCR = Bits16[7] ...
        obj.EX0 = Bits16 ...
        obj.IV = Bits16 ...
module-wide config parameters
     Clock.TIMER// Base address of timer peripheral to use = Clock.TimerRegs* Clock.TB3;
     Clock.fastClockKHz// Main System clock frequency (KHz) = Int 8000;
     Clock.slowClockHz// Auxiliary clock frequency (Hz) = Int 12000;
     Clock.common$// Common module configuration parameters = Types.Common$ undefined;
const Clock.T0A3
index URL
XDCscript usage meta-domain
const Clock.T0A3 = 0x340;
C SYNOPSIS
Clock_T0A3
const Clock.T0A5
index URL
XDCscript usage meta-domain
const Clock.T0A5 = 0x340;
C SYNOPSIS
Clock_T0A5
const Clock.T0B7
index URL
XDCscript usage meta-domain
const Clock.T0B7 = 0x3d0;
C SYNOPSIS
Clock_T0B7
const Clock.T1A2
index URL
XDCscript usage meta-domain
const Clock.T1A2 = 0x180;
C SYNOPSIS
Clock_T1A2
const Clock.T1A3
index URL
XDCscript usage meta-domain
const Clock.T1A3 = 0x380;
C SYNOPSIS
Clock_T1A3
const Clock.T1A5
index URL
XDCscript usage meta-domain
const Clock.T1A5 = 0x380;
C SYNOPSIS
Clock_T1A5
const Clock.T2A3
index URL
XDCscript usage meta-domain
const Clock.T2A3 = 0x400;
C SYNOPSIS
Clock_T2A3
const Clock.TA2
index URL
XDCscript usage meta-domain
const Clock.TA2 = 0x160;
C SYNOPSIS
Clock_TA2
const Clock.TA3
index URL
XDCscript usage meta-domain
const Clock.TA3 = 0x160;
C SYNOPSIS
Clock_TA3
const Clock.TA5
index URL
XDCscript usage meta-domain
const Clock.TA5 = 0x160;
C SYNOPSIS
Clock_TA5
const Clock.TB3
index URL
XDCscript usage meta-domain
const Clock.TB3 = 0x180;
C SYNOPSIS
Clock_TB3
const Clock.TB7
index URL
XDCscript usage meta-domain
const Clock.TB7 = 0x180;
C SYNOPSIS
Clock_TB7
struct Clock.TimerRegs
index URL

Timer peripheral register definition

XDCscript usage meta-domain
var obj = new Clock.TimerRegs;
    obj.CTL = Bits16 ...
    obj.CCTL = Bits16[7] ...
    obj.R = Bits16 ...
    obj.CCR = Bits16[7] ...
    obj.EX0 = Bits16 ...
    obj.IV = Bits16 ...
C SYNOPSIS
Clock_TimerRegs
config Clock.TIMER // module-wide
index URL

Base address of timer peripheral to use

XDCscript usage meta-domain
Clock.TIMER = Clock.TimerRegs* Clock.TB3;
DETAILS
Timer B on 2274
C SYNOPSIS
Clock_TIMER
config Clock.fastClockKHz // module-wide
index URL

Main System clock frequency (KHz)

XDCscript usage meta-domain
Clock.fastClockKHz = Int 8000;
C SYNOPSIS
Clock_fastClockKHz
config Clock.slowClockHz // module-wide
index URL

Auxiliary clock frequency (Hz)

XDCscript usage meta-domain
Clock.slowClockHz = Int 12000;
C SYNOPSIS
Clock_slowClockHz
metaonly config Clock.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Clock.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 Thu, 08 Nov 2012 02:15:04 GMT


module ti.mcu.msp430.runtime.utils.Clock

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== Clock.xdc ========
    14     */
    15
    16    /*!
    17     *  ======== Clock ========
    18     *  Basic "wall clock" functions
    19     */
    20    @ModuleStartup
    21
    22    module Clock {
    23        /*!
    24         *  ======== TimeValue ========
    25         *  Time value type
    26         */
    27        typedef UInt16 TimeValue;
    28
    29        /*!
    30         *  ======== TimerRegs ========
    31         *  Timer peripheral register definition
    32         */
    33        struct TimerRegs {
    34            Bits16  CTL;
    35            Bits16  CCTL[7];
    36            Bits16  R;
    37            Bits16  CCR[7];
    38            Bits16  EX0;
    39            Bits16  IV;
    40        };
    41
    42        const TimerRegs *TA2  = 0x160;
    43        const TimerRegs *TA3  = 0x160;
    44        const TimerRegs *TA5  = 0x160;
    45
    46        const TimerRegs *TB3  = 0x180;
    47        const TimerRegs *TB7  = 0x180;
    48        const TimerRegs *T1A2 = 0x180;
    49
    50        const TimerRegs *T0A3 = 0x340;
    51        const TimerRegs *T0A5 = 0x340;
    52
    53        const TimerRegs *T1A3 = 0x380;
    54        const TimerRegs *T1A5 = 0x380;
    55
    56        const TimerRegs *T2A3 = 0x400;
    57
    58        const TimerRegs *T0B7 = 0x3d0;
    59
    60        /*!
    61         *  ======== TIMER ========
    62         *  Base address of timer peripheral to use
    63         */
    64        config TimerRegs *TIMER = TB3;    /*! Timer B on 2274 */
    65
    66        /*!
    67         *  ======== fastClockKHz ========
    68         *  Main System clock frequency (KHz)
    69         */
    70        config Int fastClockKHz = 8000;
    71
    72        /*!
    73         *  ======== slowClockHz ========
    74         *  Auxiliary clock frequency (Hz)
    75         */
    76        config Int slowClockHz = 12000;
    77
    78        /*!
    79         *  ======== delay ========
    80         *  Spin for specified number of micro seconds
    81         */
    82        Void delay(UInt16 usec);
    83
    84        /*!
    85         *  ======== sleep ========
    86         *  Idle the CPU for specified number of micro seconds
    87         */
    88        Void sleep(UInt16 usec, UInt lpm);
    89
    90        /*!
    91         *  ======== getTime ========
    92         *  Get the current time in Auxiliary clock ticks
    93         */
    94        TimeValue getTime();
    95    }


module ti.mcu.msp430.runtime.utils.Led
index URL

Simple LED manager

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in ti/mcu/msp430/runtime/utils/Led.xdc
#include <ti/mcu/msp430/runtime/utils/Led.h>
Functions
Void | Led_off// Turn specified LED off(Bits8 mask);
Void | Led_on// Turn specified LED on(Bits8 mask);
Void | Led_toggle// Toggle the state of specified LED(Bits8 mask);
Functions common to all target modules
 | Led_Module_getMask// Returns the diagnostics mask for this module, Led_Module_hasMask// Test whether this module has a diagnostics mask, Led_Module_heap// The heap from which this module allocates memory, Led_Module_id// Get this module's unique id, Led_Module_setMask// Set the diagnostics mask for this module, Led_Module_startupDone// Test if this module has completed startup
Defines
#define | Led_PORT0// (Ptr)0x11
#define | Led_PORT0DIR// (Ptr)0x12
#define | Led_PORT1// (Ptr)0x21
#define | Led_PORT1DIR// (Ptr)0x22
#define | Led_PORT2// (Ptr)0x29
#define | Led_PORT2DIR// (Ptr)0x2A
#define | Led_PORT3// (Ptr)0x19
#define | Led_PORT3DIR// (Ptr)0x1A
#define | Led_PORT4// (Ptr)0x1D
#define | Led_PORT4DIR// (Ptr)0x1E
#define | Led_PORT5// (Ptr)0x31
#define | Led_PORT5DIR// (Ptr)0x32
#define | Led_PORT6// (Ptr)0x35
#define | Led_PORT6DIR// (Ptr)0x36
#define | Led_PORT7// (Ptr)0x3A
#define | Led_PORT7DIR// (Ptr)0x3C
#define | Led_PORT8// (Ptr)0x3B
#define | Led_PORT8DIR// (Ptr)0x3D
#define | Led_PORTADIR_H// (Ptr)0x205
#define | Led_PORTADIR_L// (Ptr)0x204
#define | Led_PORTA_H// (Ptr)0x203
#define | Led_PORTA_L// (Ptr)0x202
#define | Led_PORTBDIR_H// (Ptr)0x225
#define | Led_PORTBDIR_L// (Ptr)0x224
#define | Led_PORTB_H// (Ptr)0x223
#define | Led_PORTB_L// (Ptr)0x222
#define | Led_PORTCDIR_H// (Ptr)0x245
#define | Led_PORTCDIR_L// (Ptr)0x244
#define | Led_PORTC_H// (Ptr)0x243
#define | Led_PORTC_L// (Ptr)0x242
#define | Led_PORTDDIR_H// (Ptr)0x265
#define | Led_PORTDDIR_L// (Ptr)0x264
#define | Led_PORTD_H// (Ptr)0x263
#define | Led_PORTD_L// (Ptr)0x262
#define | Led_PORTEDIR_H// (Ptr)0x285
#define | Led_PORTEDIR_L// (Ptr)0x284
#define | Led_PORTE_H// (Ptr)0x283
#define | Led_PORTE_L// (Ptr)0x282
#define | Led_PORTFDIR_L// (Ptr)0x2A4
#define | Led_PORTF_L// (Ptr)0x2A2
Constants
extern const Ptr | Led_DIRCFG// Address of GPIO configuration register;
extern const Bits8 | Led_GREEN// Port mask for a green LED;
extern const Ptr | Led_PORT// Address of 8-bit output port to use;
extern const Bits8 | Led_RED// Port mask for a red LED;
const Led_PORT0
index URL
C synopsis target-domain
#define Led_PORT0 (Ptr)0x11
const Led_PORT0DIR
index URL
C synopsis target-domain
#define Led_PORT0DIR (Ptr)0x12
const Led_PORT1
index URL
C synopsis target-domain
#define Led_PORT1 (Ptr)0x21
const Led_PORT1DIR
index URL
C synopsis target-domain
#define Led_PORT1DIR (Ptr)0x22
const Led_PORT2
index URL
C synopsis target-domain
#define Led_PORT2 (Ptr)0x29
const Led_PORT2DIR
index URL
C synopsis target-domain
#define Led_PORT2DIR (Ptr)0x2A
const Led_PORT3
index URL
C synopsis target-domain
#define Led_PORT3 (Ptr)0x19
const Led_PORT3DIR
index URL
C synopsis target-domain
#define Led_PORT3DIR (Ptr)0x1A
const Led_PORT4
index URL
C synopsis target-domain
#define Led_PORT4 (Ptr)0x1D
const Led_PORT4DIR
index URL
C synopsis target-domain
#define Led_PORT4DIR (Ptr)0x1E
const Led_PORT5
index URL
C synopsis target-domain
#define Led_PORT5 (Ptr)0x31
const Led_PORT5DIR
index URL
C synopsis target-domain
#define Led_PORT5DIR (Ptr)0x32
const Led_PORT6
index URL
C synopsis target-domain
#define Led_PORT6 (Ptr)0x35
const Led_PORT6DIR
index URL
C synopsis target-domain
#define Led_PORT6DIR (Ptr)0x36
const Led_PORT7
index URL
C synopsis target-domain
#define Led_PORT7 (Ptr)0x3A
const Led_PORT7DIR
index URL
C synopsis target-domain
#define Led_PORT7DIR (Ptr)0x3C
const Led_PORT8
index URL
C synopsis target-domain
#define Led_PORT8 (Ptr)0x3B
const Led_PORT8DIR
index URL
C synopsis target-domain
#define Led_PORT8DIR (Ptr)0x3D
const Led_PORTADIR_H
index URL
C synopsis target-domain
#define Led_PORTADIR_H (Ptr)0x205
const Led_PORTADIR_L
index URL
C synopsis target-domain
#define Led_PORTADIR_L (Ptr)0x204
const Led_PORTA_H
index URL
C synopsis target-domain
#define Led_PORTA_H (Ptr)0x203
const Led_PORTA_L
index URL
C synopsis target-domain
#define Led_PORTA_L (Ptr)0x202
const Led_PORTBDIR_H
index URL
C synopsis target-domain
#define Led_PORTBDIR_H (Ptr)0x225
const Led_PORTBDIR_L
index URL
C synopsis target-domain
#define Led_PORTBDIR_L (Ptr)0x224
const Led_PORTB_H
index URL
C synopsis target-domain
#define Led_PORTB_H (Ptr)0x223
const Led_PORTB_L
index URL
C synopsis target-domain
#define Led_PORTB_L (Ptr)0x222
const Led_PORTCDIR_H
index URL
C synopsis target-domain
#define Led_PORTCDIR_H (Ptr)0x245
const Led_PORTCDIR_L
index URL
C synopsis target-domain
#define Led_PORTCDIR_L (Ptr)0x244
const Led_PORTC_H
index URL
C synopsis target-domain
#define Led_PORTC_H (Ptr)0x243
const Led_PORTC_L
index URL
C synopsis target-domain
#define Led_PORTC_L (Ptr)0x242
const Led_PORTDDIR_H
index URL
C synopsis target-domain
#define Led_PORTDDIR_H (Ptr)0x265
const Led_PORTDDIR_L
index URL
C synopsis target-domain
#define Led_PORTDDIR_L (Ptr)0x264
const Led_PORTD_H
index URL
C synopsis target-domain
#define Led_PORTD_H (Ptr)0x263
const Led_PORTD_L
index URL
C synopsis target-domain
#define Led_PORTD_L (Ptr)0x262
const Led_PORTEDIR_H
index URL
C synopsis target-domain
#define Led_PORTEDIR_H (Ptr)0x285
const Led_PORTEDIR_L
index URL
C synopsis target-domain
#define Led_PORTEDIR_L (Ptr)0x284
const Led_PORTE_H
index URL
C synopsis target-domain
#define Led_PORTE_H (Ptr)0x283
const Led_PORTE_L
index URL
C synopsis target-domain
#define Led_PORTE_L (Ptr)0x282
const Led_PORTFDIR_L
index URL
C synopsis target-domain
#define Led_PORTFDIR_L (Ptr)0x2A4
const Led_PORTF_L
index URL
C synopsis target-domain
#define Led_PORTF_L (Ptr)0x2A2
config Led_DIRCFG // module-wide
index URL

Address of GPIO configuration register

C synopsis target-domain
extern const Ptr Led_DIRCFG;
config Led_GREEN // module-wide
index URL

Port mask for a green LED

C synopsis target-domain
extern const Bits8 Led_GREEN;
config Led_PORT // module-wide
index URL

Address of 8-bit output port to use

C synopsis target-domain
extern const Ptr Led_PORT;
config Led_RED // module-wide
index URL

Port mask for a red LED

C synopsis target-domain
extern const Bits8 Led_RED;
Led_off() // module-wide
index URL

Turn specified LED off

C synopsis target-domain
Void Led_off(Bits8 mask);
Led_on() // module-wide
index URL

Turn specified LED on

C synopsis target-domain
Void Led_on(Bits8 mask);
Led_toggle() // module-wide
index URL

Toggle the state of specified LED

C synopsis target-domain
Void Led_toggle(Bits8 mask);
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Led_Module_id();
// Get this module's unique id
Bool Led_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Led_Module_heap();
// The heap from which this module allocates memory
Bool Led_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Led_Module_getMask();
// Returns the diagnostics mask for this module
Void Led_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/utils/Led.xdc
var Led = xdc.useModule('ti.mcu.msp430.runtime.utils.Led');
module-wide constants & types
    const Led.PORT0// = 0x11;
    const Led.PORT0DIR// = 0x12;
    const Led.PORT1// = 0x21;
    const Led.PORT1DIR// = 0x22;
    const Led.PORT2// = 0x29;
    const Led.PORT2DIR// = 0x2A;
    const Led.PORT3// = 0x19;
    const Led.PORT3DIR// = 0x1A;
    const Led.PORT4// = 0x1D;
    const Led.PORT4DIR// = 0x1E;
    const Led.PORT5// = 0x31;
    const Led.PORT5DIR// = 0x32;
    const Led.PORT6// = 0x35;
    const Led.PORT6DIR// = 0x36;
    const Led.PORT7// = 0x3A;
    const Led.PORT7DIR// = 0x3C;
    const Led.PORT8// = 0x3B;
    const Led.PORT8DIR// = 0x3D;
    const Led.PORTADIR_H// = 0x205;
    const Led.PORTADIR_L// = 0x204;
    const Led.PORTA_H// = 0x203;
    const Led.PORTA_L// = 0x202;
    const Led.PORTBDIR_H// = 0x225;
    const Led.PORTBDIR_L// = 0x224;
    const Led.PORTB_H// = 0x223;
    const Led.PORTB_L// = 0x222;
    const Led.PORTCDIR_H// = 0x245;
    const Led.PORTCDIR_L// = 0x244;
    const Led.PORTC_H// = 0x243;
    const Led.PORTC_L// = 0x242;
    const Led.PORTDDIR_H// = 0x265;
    const Led.PORTDDIR_L// = 0x264;
    const Led.PORTD_H// = 0x263;
    const Led.PORTD_L// = 0x262;
    const Led.PORTEDIR_H// = 0x285;
    const Led.PORTEDIR_L// = 0x284;
    const Led.PORTE_H// = 0x283;
    const Led.PORTE_L// = 0x282;
    const Led.PORTFDIR_L// = 0x2A4;
    const Led.PORTF_L// = 0x2A2;
module-wide config parameters
     Led.DIRCFG// Address of GPIO configuration register = Ptr Led.PORT1DIR;
     Led.GREEN// Port mask for a green LED = Bits8 0x2;
     Led.PORT// Address of 8-bit output port to use = Ptr Led.PORT1;
     Led.RED// Port mask for a red LED = Bits8 0x1;
     Led.common$// Common module configuration parameters = Types.Common$ undefined;
const Led.PORT0
index URL
XDCscript usage meta-domain
const Led.PORT0 = 0x11;
C SYNOPSIS
Led_PORT0
const Led.PORT0DIR
index URL
XDCscript usage meta-domain
const Led.PORT0DIR = 0x12;
C SYNOPSIS
Led_PORT0DIR
const Led.PORT1
index URL
XDCscript usage meta-domain
const Led.PORT1 = 0x21;
C SYNOPSIS
Led_PORT1
const Led.PORT1DIR
index URL
XDCscript usage meta-domain
const Led.PORT1DIR = 0x22;
C SYNOPSIS
Led_PORT1DIR
const Led.PORT2
index URL
XDCscript usage meta-domain
const Led.PORT2 = 0x29;
C SYNOPSIS
Led_PORT2
const Led.PORT2DIR
index URL
XDCscript usage meta-domain
const Led.PORT2DIR = 0x2A;
C SYNOPSIS
Led_PORT2DIR
const Led.PORT3
index URL
XDCscript usage meta-domain
const Led.PORT3 = 0x19;
C SYNOPSIS
Led_PORT3
const Led.PORT3DIR
index URL
XDCscript usage meta-domain
const Led.PORT3DIR = 0x1A;
C SYNOPSIS
Led_PORT3DIR
const Led.PORT4
index URL
XDCscript usage meta-domain
const Led.PORT4 = 0x1D;
C SYNOPSIS
Led_PORT4
const Led.PORT4DIR
index URL
XDCscript usage meta-domain
const Led.PORT4DIR = 0x1E;
C SYNOPSIS
Led_PORT4DIR
const Led.PORT5
index URL
XDCscript usage meta-domain
const Led.PORT5 = 0x31;
C SYNOPSIS
Led_PORT5
const Led.PORT5DIR
index URL
XDCscript usage meta-domain
const Led.PORT5DIR = 0x32;
C SYNOPSIS
Led_PORT5DIR
const Led.PORT6
index URL
XDCscript usage meta-domain
const Led.PORT6 = 0x35;
C SYNOPSIS
Led_PORT6
const Led.PORT6DIR
index URL
XDCscript usage meta-domain
const Led.PORT6DIR = 0x36;
C SYNOPSIS
Led_PORT6DIR
const Led.PORT7
index URL
XDCscript usage meta-domain
const Led.PORT7 = 0x3A;
C SYNOPSIS
Led_PORT7
const Led.PORT7DIR
index URL
XDCscript usage meta-domain
const Led.PORT7DIR = 0x3C;
C SYNOPSIS
Led_PORT7DIR
const Led.PORT8
index URL
XDCscript usage meta-domain
const Led.PORT8 = 0x3B;
C SYNOPSIS
Led_PORT8
const Led.PORT8DIR
index URL
XDCscript usage meta-domain
const Led.PORT8DIR = 0x3D;
C SYNOPSIS
Led_PORT8DIR
const Led.PORTADIR_H
index URL
XDCscript usage meta-domain
const Led.PORTADIR_H = 0x205;
C SYNOPSIS
Led_PORTADIR_H
const Led.PORTADIR_L
index URL
XDCscript usage meta-domain
const Led.PORTADIR_L = 0x204;
C SYNOPSIS
Led_PORTADIR_L
const Led.PORTA_H
index URL
XDCscript usage meta-domain
const Led.PORTA_H = 0x203;
C SYNOPSIS
Led_PORTA_H
const Led.PORTA_L
index URL
XDCscript usage meta-domain
const Led.PORTA_L = 0x202;
C SYNOPSIS
Led_PORTA_L
const Led.PORTBDIR_H
index URL
XDCscript usage meta-domain
const Led.PORTBDIR_H = 0x225;
C SYNOPSIS
Led_PORTBDIR_H
const Led.PORTBDIR_L
index URL
XDCscript usage meta-domain
const Led.PORTBDIR_L = 0x224;
C SYNOPSIS
Led_PORTBDIR_L
const Led.PORTB_H
index URL
XDCscript usage meta-domain
const Led.PORTB_H = 0x223;
C SYNOPSIS
Led_PORTB_H
const Led.PORTB_L
index URL
XDCscript usage meta-domain
const Led.PORTB_L = 0x222;
C SYNOPSIS
Led_PORTB_L
const Led.PORTCDIR_H
index URL
XDCscript usage meta-domain
const Led.PORTCDIR_H = 0x245;
C SYNOPSIS
Led_PORTCDIR_H
const Led.PORTCDIR_L
index URL
XDCscript usage meta-domain
const Led.PORTCDIR_L = 0x244;
C SYNOPSIS
Led_PORTCDIR_L
const Led.PORTC_H
index URL
XDCscript usage meta-domain
const Led.PORTC_H = 0x243;
C SYNOPSIS
Led_PORTC_H
const Led.PORTC_L
index URL
XDCscript usage meta-domain
const Led.PORTC_L = 0x242;
C SYNOPSIS
Led_PORTC_L
const Led.PORTDDIR_H
index URL
XDCscript usage meta-domain
const Led.PORTDDIR_H = 0x265;
C SYNOPSIS
Led_PORTDDIR_H
const Led.PORTDDIR_L
index URL
XDCscript usage meta-domain
const Led.PORTDDIR_L = 0x264;
C SYNOPSIS
Led_PORTDDIR_L
const Led.PORTD_H
index URL
XDCscript usage meta-domain
const Led.PORTD_H = 0x263;
C SYNOPSIS
Led_PORTD_H
const Led.PORTD_L
index URL
XDCscript usage meta-domain
const Led.PORTD_L = 0x262;
C SYNOPSIS
Led_PORTD_L
const Led.PORTEDIR_H
index URL
XDCscript usage meta-domain
const Led.PORTEDIR_H = 0x285;
C SYNOPSIS
Led_PORTEDIR_H
const Led.PORTEDIR_L
index URL
XDCscript usage meta-domain
const Led.PORTEDIR_L = 0x284;
C SYNOPSIS
Led_PORTEDIR_L
const Led.PORTE_H
index URL
XDCscript usage meta-domain
const Led.PORTE_H = 0x283;
C SYNOPSIS
Led_PORTE_H
const Led.PORTE_L
index URL
XDCscript usage meta-domain
const Led.PORTE_L = 0x282;
C SYNOPSIS
Led_PORTE_L
const Led.PORTFDIR_L
index URL
XDCscript usage meta-domain
const Led.PORTFDIR_L = 0x2A4;
C SYNOPSIS
Led_PORTFDIR_L
const Led.PORTF_L
index URL
XDCscript usage meta-domain
const Led.PORTF_L = 0x2A2;
C SYNOPSIS
Led_PORTF_L
config Led.DIRCFG // module-wide
index URL

Address of GPIO configuration register

XDCscript usage meta-domain
Led.DIRCFG = Ptr Led.PORT1DIR;
C SYNOPSIS
Led_DIRCFG
config Led.GREEN // module-wide
index URL

Port mask for a green LED

XDCscript usage meta-domain
Led.GREEN = Bits8 0x2;
C SYNOPSIS
Led_GREEN
config Led.PORT // module-wide
index URL

Address of 8-bit output port to use

XDCscript usage meta-domain
Led.PORT = Ptr Led.PORT1;
C SYNOPSIS
Led_PORT
config Led.RED // module-wide
index URL

Port mask for a red LED

XDCscript usage meta-domain
Led.RED = Bits8 0x1;
C SYNOPSIS
Led_RED
metaonly config Led.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Led.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 Thu, 08 Nov 2012 02:15:04 GMT


module ti.mcu.msp430.runtime.utils.Led

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Led ========
    14     *  Simple LED manager
    15     */
    16    @ModuleStartup
    17    module Led
    18    {
    19        const Ptr PORT0 = 0x11;  /* only defined on msp430x33x devices */
    20        const Ptr PORT1 = 0x21;
    21        const Ptr PORT2 = 0x29;
    22        const Ptr PORT3 = 0x19;
    23        const Ptr PORT4 = 0x1D;
    24        const Ptr PORT5 = 0x31;
    25        const Ptr PORT6 = 0x35;
    26        const Ptr PORT7 = 0x3A;  /* = 0x39 for msp430x41x2 devices */
    27        const Ptr PORT8 = 0x3B;
    28
    29        const Ptr PORTA_L = 0x202;  /* port 1 */
    30        const Ptr PORTA_H = 0x203;  /* port 2 */
    31        const Ptr PORTB_L = 0x222;  /* port 3 */
    32        const Ptr PORTB_H = 0x223;  /* port 4 */
    33        const Ptr PORTC_L = 0x242;  /* port 5 */
    34        const Ptr PORTC_H = 0x243;  /* port 6 */
    35        const Ptr PORTD_L = 0x262;  /* port 7 */
    36        const Ptr PORTD_H = 0x263;  /* port 8 */
    37        const Ptr PORTE_L = 0x282;  /* port 9 */
    38        const Ptr PORTE_H = 0x283;  /* port 10 */
    39        const Ptr PORTF_L = 0x2A2;  /* port 11 */
    40
    41        const Ptr PORT0DIR = 0x12;  /* only defined on msp430x33x devices */
    42        const Ptr PORT1DIR = 0x22;
    43        const Ptr PORT2DIR = 0x2A;
    44        const Ptr PORT3DIR = 0x1A;
    45        const Ptr PORT4DIR = 0x1E;
    46        const Ptr PORT5DIR = 0x32;
    47        const Ptr PORT6DIR = 0x36;
    48        const Ptr PORT7DIR = 0x3C;  /* = 0x3A for msp430x41x2 devices */
    49        const Ptr PORT8DIR = 0x3D;
    50
    51        const Ptr PORTADIR_L = 0x204;
    52        const Ptr PORTADIR_H = 0x205;
    53        const Ptr PORTBDIR_L = 0x224;
    54        const Ptr PORTBDIR_H = 0x225;
    55        const Ptr PORTCDIR_L = 0x244;
    56        const Ptr PORTCDIR_H = 0x245;
    57        const Ptr PORTDDIR_L = 0x264;
    58        const Ptr PORTDDIR_H = 0x265;
    59        const Ptr PORTEDIR_L = 0x284;
    60        const Ptr PORTEDIR_H = 0x285;
    61        const Ptr PORTFDIR_L = 0x2A4;
    62
    63        /*!
    64         *  ======== PORT ========
    65         *  Address of 8-bit output port to use
    66         */
    67        config Ptr PORT = PORT1;
    68
    69        /*!
    70         *  ======== DIRCFG ========
    71         *  Address of GPIO configuration register
    72         */
    73        config Ptr DIRCFG = PORT1DIR;
    74
    75        /*!
    76         *  ======== RED ========
    77         *  Port mask for a red LED
    78         */
    79        config Bits8 RED = 0x1;             /* platform dependent pin */
    80
    81        /*!
    82         *  ======== GREEN ========
    83         *  Port mask for a green LED
    84         */
    85        config Bits8 GREEN = 0x2;           /* platform dependent pin */
    86
    87        /*!
    88         *  ======== off ========
    89         *  Turn specified LED off
    90         */
    91        @DirectCall
    92        Void off(Bits8 mask);
    93
    94        /*!
    95         *  ======== on ========
    96         *  Turn specified LED on
    97         */
    98        @DirectCall
    99        Void on(Bits8 mask);
   100
   101        /*!
   102         *  ======== toggle ========
   103         *  Toggle the state of specified LED
   104         */
   105        @DirectCall
   106        Void toggle(Bits8 mask);
   107    }


module ti.mcu.msp430.runtime.utils.Stack
index URL

Stack monitoring functions

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides simple stack monitoring operations that enables an application efficiently monitor the system's worst-case stack usage. [ more ... ]
C synopsis target-domain sourced in ti/mcu/msp430/runtime/utils/Stack.xdc
#include <ti/mcu/msp430/runtime/utils/Stack.h>
Functions
Bool | Stack_check// Return non-zero if stack pointer is within allocated stack();
Void | Stack_fill// Fill unused stack with initial value();
Void | Stack_getStatus// Get number of words of unused stack space(Stack_Status *stat);
Int | Stack_getUnused// Get number of words of unused stack space();
Functions common to all target modules
 | Stack_Module_getMask// Returns the diagnostics mask for this module, Stack_Module_hasMask// Test whether this module has a diagnostics mask, Stack_Module_heap// The heap from which this module allocates memory, Stack_Module_id// Get this module's unique id, Stack_Module_setMask// Set the diagnostics mask for this module, Stack_Module_startupDone// Test if this module has completed startup
Typedefs
typedef struct | Stack_Status// Stack status information buffer ...
Constants
extern const Log_Event | Stack_UNUSED// Unused stack space event;
DETAILS
This module provides simple stack monitoring operations that enables an application efficiently monitor the system's worst-case stack usage.
Stack overruns are a common problem in embedded development and they result in intermittent and difficult to reproduce failures. The ability to quickly determine of unexpected behavious is the result of a stack overrun can save hours of debug time.
struct Stack_Status
index URL

Stack status information buffer

C synopsis target-domain
typedef struct Stack_Status {
    Int unused;
    // number of words never used (so far)
    Int used;
    // worst-case number of words used (so far)
    Int curDepth;
    // current number of words on the stack
} Stack_Status;
config Stack_UNUSED // module-wide
index URL

Unused stack space event

C synopsis target-domain
extern const Log_Event Stack_UNUSED;
Stack_check() // module-wide
index URL

Return non-zero if stack pointer is within allocated stack

C synopsis target-domain
Bool Stack_check();
DETAILS
If this function returns 0, the current stack pointer is pointing to a location _outside_ the caller's allocated stack.
Stack_fill() // module-wide
index URL

Fill unused stack with initial value

C synopsis target-domain
Void Stack_fill();
DETAILS
This function is called at startup and may be called at runtime to re-initialize the stack. However, interrupts must be disabled during this process (to prevent corruption of ISR state).
Stack_getStatus() // module-wide
index URL

Get number of words of unused stack space

C synopsis target-domain
Void Stack_getStatus(Stack_Status *stat);
Stack_getUnused() // module-wide
index URL

Get number of words of unused stack space

C synopsis target-domain
Int Stack_getUnused();
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Stack_Module_id();
// Get this module's unique id
Bool Stack_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Stack_Module_heap();
// The heap from which this module allocates memory
Bool Stack_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Stack_Module_getMask();
// Returns the diagnostics mask for this module
Void Stack_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in ti/mcu/msp430/runtime/utils/Stack.xdc
var Stack = xdc.useModule('ti.mcu.msp430.runtime.utils.Stack');
module-wide constants & types
    var obj = new Stack.Status// Stack status information buffer;
        obj.unused// number of words never used (so far) = Int ...
        obj.used// worst-case number of words used (so far) = Int ...
        obj.curDepth// current number of words on the stack = Int ...
module-wide config parameters
     Stack.UNUSED// Unused stack space event = Log.EventDesc {
        mask: Diags.USER1,
        msg: "unused stack space = %d words"
    };
     Stack.common$// Common module configuration parameters = Types.Common$ undefined;
struct Stack.Status
index URL

Stack status information buffer

XDCscript usage meta-domain
var obj = new Stack.Status;
    obj.unused = Int ...
    // number of words never used (so far)
    obj.used = Int ...
    // worst-case number of words used (so far)
    obj.curDepth = Int ...
    // current number of words on the stack
C SYNOPSIS
Stack_Status
config Stack.UNUSED // module-wide
index URL

Unused stack space event

XDCscript usage meta-domain
Stack.UNUSED = Log.EventDesc {
    mask: Diags.USER1,
    msg: "unused stack space = %d words"
};
C SYNOPSIS
Stack_UNUSED
metaonly config Stack.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Stack.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 Thu, 08 Nov 2012 02:15:04 GMT


module ti.mcu.msp430.runtime.utils.Stack

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import xdc.runtime.Log;
    13    import xdc.runtime.Diags;
    14
    15    /*!
    16     *  ======== Stack ========
    17     *  Stack monitoring functions
    18     *
    19     *  This module provides simple stack monitoring operations that enables an
    20     *  application efficiently monitor the system's worst-case stack usage.
    21     *
    22     *  Stack overruns are a common problem in embedded development and they
    23     *  result in intermittent and difficult to reproduce failures.  The ability
    24     *  to quickly determine of unexpected behavious is the result of a stack
    25     *  overrun can save hours of debug time.
    26     */
    27    @ModuleStartup
    28    module Stack
    29    {
    30        /*!
    31         *  ======== Status ========
    32         *  Stack status information buffer
    33         */
    34        struct Status {
    35            Int unused;     /*! number of words never used (so far) */
    36            Int used;       /*! worst-case number of words used (so far) */
    37            Int curDepth;   /*! current number of words on the stack */
    38        }
    39
    40        /*!
    41         *  ======== UNUSED ========
    42         *  Unused stack space event
    43         */
    44        config Log.Event UNUSED = {
    45            mask: Diags.USER1,
    46            msg: "unused stack space = %d words"
    47        };
    48
    49        /*!
    50         *  ======== check ========
    51         *  Return non-zero if stack pointer is within allocated stack
    52         *
    53         *  If this function returns 0, the current stack pointer is pointing
    54         *  to a location _outside_ the caller's allocated stack.
    55         */
    56        @DirectCall
    57        Bool check();
    58
    59        /*!
    60         *  ======== fill ========
    61         *  Fill unused stack with initial value
    62         *
    63         *  This function is called at startup and may be called at runtime
    64         *  to re-initialize the stack.  However, interrupts must be disabled
    65         *  during this process (to prevent corruption of ISR state).
    66         */
    67        Void fill();
    68
    69        /*!
    70         *  ======== getUnused ========
    71         *  Get number of words of unused stack space
    72         */
    73        Int getUnused();
    74
    75        /*!
    76         *  ======== getStatus ========
    77         *  Get number of words of unused stack space
    78         */
    79        Void getStatus(Status *stat);
    80    }


package ti.platforms.app510
index URL

Platform package for the DM510 app510 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the app510 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/app510/package.xdc
requires xdc.platform[1, 0, 1];
package ti.platforms.app510 [1, 0, 0, 1] {
    module Platform;
    // Platform support for the app510
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the app510 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.app510.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:17:50 GMT


package ti.platforms.app510

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires xdc.platform [1,0,1];
    19
    20    /*!
    21     *  ======== ti.platforms.app510 ========
    22     *  Platform package for the DM510 app510 platform.
    23     *
    24     *  This package implements the interfaces (xdc.platform.IPlatform)
    25     *  necessary to build and run executables on the app510 platform.
    26     *
    27     *  @a(Throws)
    28     *  `XDCException` exceptions are thrown for fatal errors. The following error
    29     *  codes are reported in the exception message:
    30     *  @p(dlist)
    31     *      -  `ti.platfoms.app510.LINK_TEMPLATE_ERROR`
    32     *           This error is raised when this platform cannot found the default
    33     *           linker command template `linkcmd.xdt` in the build target's
    34     *           package. When a target does not contain this file, the config
    35     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    36     *  @p
    37     */
    38    package ti.platforms.app510 [1,0,0,1] {
    39        module Platform;
    40    }
    41    /*
    42     *  @(#) ti.platforms.app510; 1, 0, 0, 1,301; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.platforms.app510.Platform

metaonly module ti.platforms.app510.Platform
index URL

Platform support for the app510

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/app510/Platform.xdc
var Platform = xdc.useModule('ti.platforms.app510.Platform');
module-wide constants & types
    values of type Platform.RuntimeEnv//
        const Platform.STDIO;
        const Platform.POSIX;
        const Platform.BIOS;
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "app510",
        boardFamily: "app510",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 180.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320CDM510",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x01000000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.runTime// The runtime environment available to executables = Platform.RuntimeEnv Platform.STDIO;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
enum Platform.RuntimeEnv
index URL
XDCscript usage meta-domain
values of type Platform.RuntimeEnv
    const Platform.STDIO;
    const Platform.POSIX;
    const Platform.BIOS;
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "app510",
    boardFamily: "app510",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 180.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320CDM510",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x01000000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.runTime = Platform.RuntimeEnv Platform.STDIO;
    // The runtime environment available to executables
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.runTime // instance
index URL

The runtime environment available to executables

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.runTime = Platform.RuntimeEnv Platform.STDIO;
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:50 GMT


module ti.platforms.app510.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the app510
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     */
    30
    31    metaonly module Platform inherits xdc.platform.IPlatform
    32    {
    33        enum RuntimeEnv {
    34            STDIO,
    35            POSIX,
    36            BIOS
    37        };
    38
    39        readonly config xdc.platform.IPlatform.Board BOARD = {
    40            id:             "0",
    41            boardName:      "app510",
    42            boardFamily:    "app510",
    43            boardRevision:  null,
    44        };
    45
    46        readonly config xdc.platform.IExeContext.Cpu CPU = {
    47            id:             "0",
    48            clockRate:      180.0,
    49            catalogName:    "ti.catalog.arm",
    50            deviceName:     "TMS320CDM510",
    51            revision:       "1.0",
    52        };
    53
    54    instance:
    55
    56        override readonly config xdc.platform.IPlatform.Memory
    57            externalMemoryMap[string] = [
    58                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x01000000}],
    59            ];
    60
    61        /* default segment for code sections */
    62        override config string codeMemory = "DDR2";
    63
    64        /* default segment for data sections */
    65        override config string dataMemory = "DDR2";
    66
    67        /* default segment for stack sections */
    68        override config string stackMemory = "DDR2";
    69
    70        /*!
    71         *  ======== runTime ========
    72         *  The runtime environment available to executables
    73         */
    74        config RuntimeEnv runTime = STDIO;
    75
    76        /*!
    77         *  ======== singleCore ========
    78         *  no longer used!
    79         * @_nodoc
    80         */
    81        config Bool singleCore = true;
    82    }
    83    /*
    84     *  @(#) ti.platforms.app510; 1, 0, 0, 1,301; 8-17-2012 22:13:34; /db/ztree/library/trees/platform/platform-n27x/src/
    85     */
    86


package ti.platforms.concertoC28
index URL

Platform support for any concerto C28 device

XDCspec declarations sourced in ti/platforms/concertoC28/package.xdc
requires xdc.platform[1, 0, 1];
requires ti.catalog.c2800;
package ti.platforms.concertoC28 [1, 0, 0] {
    module Platform;
    // A generic platform that supports any Stellaris device
}
generated on Thu, 08 Nov 2012 02:17:50 GMT


package ti.platforms.concertoC28

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform [1,0,1];
    14    requires ti.catalog.c2800;
    15
    16    /*!
    17     *  ======== ti.platforms.concertoC28 ========
    18     *  Platform support for any concerto C28 device
    19     */
    20    package ti.platforms.concertoC28 [1,0,0] {
    21        module Platform;
    22    }
    23
    24    /*
    25     *  @(#) ti.platforms.concertoC28; 1, 0, 0,35; 8-17-2012 22:13:37; /db/ztree/library/trees/platform/platform-n27x/src/
    26     */
    27


module ti.platforms.concertoC28.Platform

metaonly module ti.platforms.concertoC28.Platform
index URL

A generic platform that supports any Stellaris device

  • XDCscript usage
  • Individual elements
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way: [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/concertoC28/Platform.xdc
var Platform = xdc.useModule('ti.platforms.concertoC28.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.nameFormat// Encoding of instance creation parameters in the instance's name = String "$(deviceName):$(includeLinkCmdFile):$(clockRate)";
     Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "concertoC28",
        boardFamily: null,
        boardRevision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.CPU// = IExeContext.Cpu {
            id: "0",
            clockRate: 1.0,
            catalogName: "ti.catalog.c2800",
            deviceName: "F28M35x",
            revision: ""
        };
        params.clockRate// The clock rate for this device = Double 60.0;
        params.codeMemory// The default segment for code sections = String null;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String null;
        params.deviceName// The name of an ICpuDataSheet module for the device = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.includeLinkCmdFile// The flag that specifies if the platform should include a linker command file = Bool false;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String null;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way:
  xs xdc.tools.configuro ... -p "ti.platforms.concertoC28:F28M35H52C1"
In package.bld, the platform instance is selected as in:
  Pkg.addExecutable("test", target, "ti.platforms.concertoC28:F28M35H52C1");
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.nameFormat // module-wide
index URL

Encoding of instance creation parameters in the instance's name

XDCscript usage meta-domain
const Platform.nameFormat = String "$(deviceName):$(includeLinkCmdFile):$(clockRate)";
DETAILS
For this platform, the parameters deviceName, includeLinkCmdFile and clockRate can be encoded in the instance name supplied on xdc.tools.configuro command line, for example:
      xs xdc.tools.configuro ... -p ti.platforms.concertoC28:F28M35H52C1:1:150
Optional parameters can be omitted:
      xs xdc.tools.configuro ... -p ti.platforms.concertoC28:F28M35H52C1
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "concertoC28",
    boardFamily: null,
    boardRevision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.CPU = IExeContext.Cpu {
    //
        id: "0",
        clockRate: 1.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "F28M35x",
        revision: ""
    };
    params.clockRate = Double 60.0;
    // The clock rate for this device
    params.codeMemory = String null;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String null;
    // The default segment for data sections
    params.deviceName = String undefined;
    // The name of an ICpuDataSheet module for the device
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.includeLinkCmdFile = Bool false;
    // The flag that specifies if the platform should include a linker command file
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String null;
    // The default segment for stack
config Platform.CPU // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "F28M35x",
    revision: ""
};
config Platform.clockRate // instance
index URL

The clock rate for this device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.clockRate = Double 60.0;
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The name of an ICpuDataSheet module for the device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is required, but it does not have to be set explicitly; it can be encoded in the instance's name.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.includeLinkCmdFile // instance
index URL

The flag that specifies if the platform should include a linker command file

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.includeLinkCmdFile = Bool false;
DETAILS
By default, a user is responsible for adding a linker command file to the project, or to the linker command line. However, if this flag is set, this platform will include a default linker command file for the selected device.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:50 GMT


module ti.platforms.concertoC28.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16    package ti.platforms.concertoC28;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  A generic platform that supports any Stellaris device
    21     *
    22     *  The device to be used by this platform is passed as the platform instance
    23     *  name. On the `xdc.tools.configuro` command line, it is done in the
    24     *  following way:
    25     *  @p(code)
    26     *  xs xdc.tools.configuro ... -p "ti.platforms.concertoC28:F28M35H52C1"
    27     *  @p
    28     *
    29     *  In package.bld, the platform instance is selected as in:
    30     *  @p(code)
    31     *  Pkg.addExecutable("test", target, "ti.platforms.concertoC28:F28M35H52C1");
    32     *  @p
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "concertoC28",
    39            boardFamily:    null,
    40            boardRevision:  null
    41        };
    42
    43        /*!
    44         *  ======== nameFormat ========
    45         *  Encoding of instance creation parameters in the instance's name
    46         *
    47         *  For this platform, the parameters `deviceName`, `includeLinkCmdFile`
    48         *  and `clockRate` can be encoded in the instance name supplied on
    49         *  `xdc.tools.configuro` command line, for example:
    50         *  @p(code)
    51         *      xs xdc.tools.configuro ... -p ti.platforms.concertoC28:F28M35H52C1:1:150
    52         *  @p
    53         *  Optional parameters can be omitted:
    54         *  @p(code)
    55         *      xs xdc.tools.configuro ... -p ti.platforms.concertoC28:F28M35H52C1
    56         *  @p
    57         */
    58        readonly config string nameFormat =
    59            "$(deviceName):$(includeLinkCmdFile):$(clockRate)";
    60
    61    instance:
    62
    63        config xdc.platform.IExeContext.Cpu CPU = {
    64            id:             "0",
    65            clockRate:      1.0,
    66            catalogName:    "ti.catalog.c2800",
    67            deviceName:     "F28M35x",
    68            revision:       "",
    69        };
    70
    71        /*!
    72         *  ======== deviceName ========
    73         *  The name of an `ICpuDataSheet` module for the device
    74         *
    75         *  This parameter is required, but it does not have to be set explicitly;
    76         *  it can be encoded in the instance's name.
    77         */
    78        config string deviceName;
    79
    80        /*!
    81         *  ======== clockRate ========
    82         *  The clock rate for this device.
    83         */
    84        config Double clockRate = 60.0;
    85
    86        override config string codeMemory = null;
    87
    88        override config string dataMemory = null;
    89
    90        override config string stackMemory = null;
    91
    92        /*!
    93         *  ======== includeLinkCmdFile ========
    94         *  The flag that specifies if the platform should include a linker command
    95         *  file.
    96         *
    97         *  By default, a user is responsible for adding a linker command file to
    98         *  the project, or to the linker command line. However, if this flag is
    99         *  set, this platform will include a default linker command file for the
   100         *  selected device.
   101         */
   102        config Bool includeLinkCmdFile = false;
   103    };
   104    /*
   105     *  @(#) ti.platforms.concertoC28; 1, 0, 0,35; 8-17-2012 22:13:37; /db/ztree/library/trees/platform/platform-n27x/src/
   106     */
   107


package ti.platforms.concertoM3
index URL

Platform support for any concerto M3 device

XDCspec declarations sourced in ti/platforms/concertoM3/package.xdc
requires xdc.platform[1, 0, 1];
requires ti.catalog.arm.cortexm3;
package ti.platforms.concertoM3 [1, 0, 0] {
    module Platform;
    // A generic platform that supports any Stellaris device
}
generated on Thu, 08 Nov 2012 02:17:50 GMT


package ti.platforms.concertoM3

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform [1,0,1];
    14    requires ti.catalog.arm.cortexm3;
    15
    16    /*!
    17     *  ======== ti.platforms.concertoM3 ========
    18     *  Platform support for any concerto M3 device
    19     */
    20    package ti.platforms.concertoM3 [1,0,0] {
    21        module Platform;
    22    }
    23
    24    /*
    25     *  @(#) ti.platforms.concertoM3; 1, 0, 0,35; 8-17-2012 22:13:39; /db/ztree/library/trees/platform/platform-n27x/src/
    26     */
    27


module ti.platforms.concertoM3.Platform

metaonly module ti.platforms.concertoM3.Platform
index URL

A generic platform that supports any Stellaris device

  • XDCscript usage
  • Individual elements
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way: [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/concertoM3/Platform.xdc
var Platform = xdc.useModule('ti.platforms.concertoM3.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.nameFormat// Encoding of instance creation parameters in the instance's name = String "$(deviceName):$(includeLinkCmdFile)";
     Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "concertoM3",
        boardFamily: null,
        boardRevision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.CPU// = IExeContext.Cpu {
            id: "0",
            clockRate: 1.0,
            catalogName: "ti.catalog.arm.cortexm3",
            deviceName: "F28M35x",
            revision: ""
        };
        params.clockRate// The clock rate for this device = Double undefined;
        params.codeMemory// The default segment for code sections = String null;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String null;
        params.deviceName// The name of an ICpuDataSheet module for the device = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.includeLinkCmdFile// The flag that specifies if the platform should include a linker command file = Bool false;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String null;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way:
  xs xdc.tools.configuro ... -p "ti.platforms.concertoM3:LM3S8971"
In package.bld, the platform instance is selected as in:
  Pkg.addExecutable("test", target, "ti.platforms.concertoM3:LM3S8971");
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.nameFormat // module-wide
index URL

Encoding of instance creation parameters in the instance's name

XDCscript usage meta-domain
const Platform.nameFormat = String "$(deviceName):$(includeLinkCmdFile)";
DETAILS
For this platform, the parameters deviceName and includeLinkCmdFile can be encoded in the instance name supplied on xdc.tools.configuro command line, for example:
      xs xdc.tools.configuro ... -p ti.platforms.concertoM3:LM3S8971:1
Optional parameters can be omitted:
      xs xdc.tools.configuro ... -p ti.platforms.concertoM3:LM3S8971
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "concertoM3",
    boardFamily: null,
    boardRevision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.CPU = IExeContext.Cpu {
    //
        id: "0",
        clockRate: 1.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "F28M35x",
        revision: ""
    };
    params.clockRate = Double undefined;
    // The clock rate for this device
    params.codeMemory = String null;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String null;
    // The default segment for data sections
    params.deviceName = String undefined;
    // The name of an ICpuDataSheet module for the device
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.includeLinkCmdFile = Bool false;
    // The flag that specifies if the platform should include a linker command file
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String null;
    // The default segment for stack
config Platform.CPU // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "F28M35x",
    revision: ""
};
config Platform.clockRate // instance
index URL

The clock rate for this device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.clockRate = Double undefined;
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The name of an ICpuDataSheet module for the device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is required, but it does not have to be set explicitly; it can be encoded in the instance's name.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.includeLinkCmdFile // instance
index URL

The flag that specifies if the platform should include a linker command file

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.includeLinkCmdFile = Bool false;
DETAILS
By default, a user is responsible for adding a linker command file to the project, or to the linker command line. However, if this flag is set, this platform will include a default linker command file for the selected device.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:50 GMT


module ti.platforms.concertoM3.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16    package ti.platforms.concertoM3;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  A generic platform that supports any Stellaris device
    21     *
    22     *  The device to be used by this platform is passed as the platform instance
    23     *  name. On the `xdc.tools.configuro` command line, it is done in the
    24     *  following way:
    25     *  @p(code)
    26     *  xs xdc.tools.configuro ... -p "ti.platforms.concertoM3:LM3S8971"
    27     *  @p
    28     *
    29     *  In package.bld, the platform instance is selected as in:
    30     *  @p(code)
    31     *  Pkg.addExecutable("test", target, "ti.platforms.concertoM3:LM3S8971");
    32     *  @p
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "concertoM3",
    39            boardFamily:    null,
    40            boardRevision:  null
    41        };
    42
    43        /*!
    44         *  ======== nameFormat ========
    45         *  Encoding of instance creation parameters in the instance's name
    46         *
    47         *  For this platform, the parameters `deviceName` and `includeLinkCmdFile`
    48         *  can be encoded in the instance name supplied on `xdc.tools.configuro`
    49         *  command line, for example:
    50         *  @p(code)
    51         *      xs xdc.tools.configuro ... -p ti.platforms.concertoM3:LM3S8971:1
    52         *  @p
    53         *  Optional parameters can be omitted:
    54         *  @p(code)
    55         *      xs xdc.tools.configuro ... -p ti.platforms.concertoM3:LM3S8971
    56         *  @p
    57         */
    58         readonly config string nameFormat = "$(deviceName):$(includeLinkCmdFile)";
    59
    60    instance:
    61
    62        config xdc.platform.IExeContext.Cpu CPU = {
    63            id:             "0",
    64            clockRate:      1.0,
    65            catalogName:    "ti.catalog.arm.cortexm3",
    66            deviceName:     "F28M35x",
    67            revision:       "",
    68        };
    69
    70        /*!
    71         *  ======== deviceName ========
    72         *  The name of an `ICpuDataSheet` module for the device
    73         *
    74         *  This parameter is required, but it does not have to be set explicitly;
    75         *  it can be encoded in the instance's name.
    76         */
    77        config string deviceName;
    78
    79        /*!
    80         *  ======== clockRate ========
    81         *  The clock rate for this device.
    82         */
    83        config Double clockRate;
    84
    85        override config string codeMemory = null;
    86
    87        override config string dataMemory = null;
    88
    89        override config string stackMemory = null;
    90
    91        /*!
    92         *  ======== includeLinkCmdFile ========
    93         *  The flag that specifies if the platform should include a linker command
    94         *  file.
    95         *
    96         *  By default, a user is responsible for adding a linker command file to
    97         *  the project, or to the linker command line. However, if this flag is
    98         *  set, this platform will include a default linker command file for the
    99         *  selected device.
   100         */
   101        config Bool includeLinkCmdFile = false;
   102    };
   103    /*
   104     *  @(#) ti.platforms.concertoM3; 1, 0, 0,35; 8-17-2012 22:13:39; /db/ztree/library/trees/platform/platform-n27x/src/
   105     */
   106


package ti.platforms.control28027
index URL

Platform package for the 28027 control card

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the 28027 controlCARD platform.
XDCspec declarations sourced in ti/platforms/control28027/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.control28027 [1, 0, 0] {
    module Platform;
}
generated on Thu, 08 Nov 2012 02:17:51 GMT


package ti.platforms.control28027

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c2800;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.control28027 ========
    18     *  Platform package for the 28027 control card.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the 28027 controlCARD platform.
    22     */
    23    package ti.platforms.control28027 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.control28027; 1, 0, 0,140; 8-17-2012 22:13:42; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.control28027.Platform

metaonly module ti.platforms.control28027.Platform
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/control28027/Platform.xdc
var Platform = xdc.useModule('ti.platforms.control28027.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "control28027",
        boardFamily: "control28027",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 60.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C28027",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "LSARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "MSARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "control28027",
    boardFamily: "control28027",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 60.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C28027",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "LSARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "MSARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "LSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "MSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:51 GMT


module ti.platforms.control28027.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  This module implements xdc.IPlatform and defines configuration
    16     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    17     *
    18     *  The configuration parameters are initialized in this package's
    19     *  configuration script (package.cfg) and "bound" to the TCOM object
    20     *  model.  Once they are part of the model, these parameters are
    21     *  queried by a program's configuration script.
    22     *
    23     *  This particular platform has a single Cpu, and therefore, only
    24     *  declares a single CPU configuration object.  Multi-CPU platforms
    25     *  would declare multiple Cpu configuration parameters (one per
    26     *  platform CPU).
    27     *
    28     */
    29
    30    package ti.platforms.control28027;
    31
    32    metaonly module Platform inherits xdc.platform.IPlatform
    33    {
    34        readonly config xdc.platform.IPlatform.Board BOARD = {
    35            id:             "0",
    36            boardName:      "control28027",
    37            boardFamily:    "control28027",
    38            boardRevision:  null
    39        };
    40
    41        readonly config xdc.platform.IExeContext.Cpu CPU = {
    42            id:             "0",
    43            clockRate:      60.0,
    44            catalogName:    "ti.catalog.c2800",
    45            deviceName:     "TMS320C28027",
    46            revision:       null
    47        };
    48
    49    instance:
    50
    51        override config string codeMemory = "FLASH";
    52
    53        override config string dataMemory = "LSARAM";
    54
    55        override config string stackMemory = "MSARAM";
    56    };
    57    /*
    58     *  @(#) ti.platforms.control28027; 1, 0, 0,140; 8-17-2012 22:13:42; /db/ztree/library/trees/platform/platform-n27x/src/
    59     */
    60


package ti.platforms.control28035
index URL

Platform package for the 28035 control card

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the 28035 controlCARD platform.
XDCspec declarations sourced in ti/platforms/control28035/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.control28035 [1, 0, 0] {
    module Platform;
}
generated on Thu, 08 Nov 2012 02:17:51 GMT


package ti.platforms.control28035

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c2800;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.control28035 ========
    18     *  Platform package for the 28035 control card.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the 28035 controlCARD platform.
    22     */
    23    package ti.platforms.control28035 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.control28035; 1, 0, 0,132; 8-17-2012 22:13:44; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.control28035.Platform

metaonly module ti.platforms.control28035.Platform
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/control28035/Platform.xdc
var Platform = xdc.useModule('ti.platforms.control28035.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "control28035",
        boardFamily: "control28035",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 60.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C28035",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "LSARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "MSARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "control28035",
    boardFamily: "control28035",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 60.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C28035",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "LSARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "MSARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "LSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "MSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:51 GMT


module ti.platforms.control28035.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  This module implements xdc.IPlatform and defines configuration
    16     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    17     *
    18     *  The configuration parameters are initialized in this package's
    19     *  configuration script (package.cfg) and "bound" to the TCOM object
    20     *  model.  Once they are part of the model, these parameters are
    21     *  queried by a program's configuration script.
    22     *
    23     *  This particular platform has a single Cpu, and therefore, only
    24     *  declares a single CPU configuration object.  Multi-CPU platforms
    25     *  would declare multiple Cpu configuration parameters (one per
    26     *  platform CPU).
    27     *
    28     */
    29
    30    package ti.platforms.control28035;
    31
    32    metaonly module Platform inherits xdc.platform.IPlatform
    33    {
    34        readonly config xdc.platform.IPlatform.Board BOARD = {
    35            id:             "0",
    36            boardName:      "control28035",
    37            boardFamily:    "control28035",
    38            boardRevision:  null
    39        };
    40
    41        readonly config xdc.platform.IExeContext.Cpu CPU = {
    42            id:             "0",
    43            clockRate:      60.0,
    44            catalogName:    "ti.catalog.c2800",
    45            deviceName:     "TMS320C28035",
    46            revision:       null
    47        };
    48
    49    instance:
    50
    51        override config string codeMemory = "FLASH";
    52
    53        override config string dataMemory = "LSARAM";
    54
    55        override config string stackMemory = "MSARAM";
    56    };
    57    /*
    58     *  @(#) ti.platforms.control28035; 1, 0, 0,132; 8-17-2012 22:13:44; /db/ztree/library/trees/platform/platform-n27x/src/
    59     */
    60


package ti.platforms.control28055
index URL

Platform package for the 28055 control card and control stick

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the 28055 controlCARD and controlSTICK platform.
XDCspec declarations sourced in ti/platforms/control28055/package.xdc
package ti.platforms.control28055 {
}
generated on Thu, 08 Nov 2012 02:17:51 GMT


package ti.platforms.control28055

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ti.platforms.control28055 ========
    15     *  Platform package for the 28055 control card and control stick.
    16     *
    17     *  This package implements the interfaces (xdc.platform.IPlatform)
    18     *  necessary to build and run executables on the 28055 controlCARD and
    19     *  controlSTICK platform.
    20     */
    21    package ti.platforms.control28055 {
    22    }
    23    /*
    24     *  @(#) ti.platforms.control28055; 1,0,0,11; 8-17-2012 22:13:46; /db/ztree/library/trees/platform/platform-n27x/src/
    25     */
    26


package ti.platforms.control28069
index URL

Platform package for the 28069 control card and control stick

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the 28069 controlCARD and controlSTICK platform.
XDCspec declarations sourced in ti/platforms/control28069/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.control28069 [1, 0, 0] {
    module Platform;
}
generated on Thu, 08 Nov 2012 02:17:52 GMT


package ti.platforms.control28069

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c2800;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.control28069 ========
    18     *  Platform package for the 28069 control card and control stick.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the 28069 controlCARD and
    22     *  controlSTICK platform.
    23     */
    24    package ti.platforms.control28069 [1,0,0] {
    25        module Platform;
    26    }
    27    /*
    28     *  @(#) ti.platforms.control28069; 1, 0, 0,68; 8-17-2012 22:13:46; /db/ztree/library/trees/platform/platform-n27x/src/
    29     */
    30


module ti.platforms.control28069.Platform

metaonly module ti.platforms.control28069.Platform
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/control28069/Platform.xdc
var Platform = xdc.useModule('ti.platforms.control28069.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "control28069",
        boardFamily: "control28069",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 80.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320F28069",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L4SARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L03DPSARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "control28069",
    boardFamily: "control28069",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 80.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320F28069",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L4SARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L03DPSARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L4SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L03DPSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:52 GMT


module ti.platforms.control28069.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  This module implements xdc.IPlatform and defines configuration
    16     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    17     *
    18     *  The configuration parameters are initialized in this package's
    19     *  configuration script (package.cfg) and "bound" to the TCOM object
    20     *  model.  Once they are part of the model, these parameters are
    21     *  queried by a program's configuration script.
    22     *
    23     *  This particular platform has a single Cpu, and therefore, only
    24     *  declares a single CPU configuration object.  Multi-CPU platforms
    25     *  would declare multiple Cpu configuration parameters (one per
    26     *  platform CPU).
    27     *
    28     */
    29
    30    package ti.platforms.control28069;
    31
    32    metaonly module Platform inherits xdc.platform.IPlatform
    33    {
    34        readonly config xdc.platform.IPlatform.Board BOARD = {
    35            id:             "0",
    36            boardName:      "control28069",
    37            boardFamily:    "control28069",
    38            boardRevision:  null
    39        };
    40
    41        readonly config xdc.platform.IExeContext.Cpu CPU = {
    42            id:             "0",
    43            clockRate:      80.0,
    44            catalogName:    "ti.catalog.c2800",
    45            deviceName:     "TMS320F28069",
    46            revision:       null
    47        };
    48
    49    instance:
    50
    51        override config string codeMemory = "FLASH";
    52
    53        override config string dataMemory = "L4SARAM";
    54
    55        override config string stackMemory = "L03DPSARAM";
    56    };
    57    /*
    58     *  @(#) ti.platforms.control28069; 1, 0, 0,68; 8-17-2012 22:13:46; /db/ztree/library/trees/platform/platform-n27x/src/
    59     */
    60


package ti.platforms.control28335
index URL

Platform package for the 28335 control card

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the 28335 controlCARD platform.
XDCspec declarations sourced in ti/platforms/control28335/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.control28335 [1, 0, 0] {
    module Platform;
}
generated on Thu, 08 Nov 2012 02:17:52 GMT


package ti.platforms.control28335

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c2800;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.control28335 ========
    23     *  Platform package for the 28335 control card.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the 28335 controlCARD platform.
    27     */
    28    package ti.platforms.control28335 [1,0,0] {
    29        module Platform;
    30    }
    31    /*
    32     *  @(#) ti.platforms.control28335; 1, 0, 0,184; 8-17-2012 22:13:49; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.platforms.control28335.Platform

metaonly module ti.platforms.control28335.Platform
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/control28335/Platform.xdc
var Platform = xdc.useModule('ti.platforms.control28335.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "control28335",
        boardFamily: "control28335",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C28335",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L47SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L03SARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L03SARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "control28335",
    boardFamily: "control28335",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C28335",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L47SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L03SARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L03SARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L47SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L03SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L03SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:52 GMT


module ti.platforms.control28335.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  This module implements xdc.IPlatform and defines configuration
    16     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    17     *
    18     *  The configuration parameters are initialized in this package's
    19     *  configuration script (package.cfg) and "bound" to the TCOM object
    20     *  model.  Once they are part of the model, these parameters are
    21     *  queried by a program's configuration script.
    22     *
    23     *  This particular platform has a single Cpu, and therefore, only
    24     *  declares a single CPU configuration object.  Multi-CPU platforms
    25     *  would declare multiple Cpu configuration parameters (one per
    26     *  platform CPU).
    27     *
    28     */
    29
    30    package ti.platforms.control28335;
    31
    32    metaonly module Platform inherits xdc.platform.IPlatform
    33    {
    34        readonly config xdc.platform.IPlatform.Board BOARD = {
    35            id:             "0",
    36            boardName:      "control28335",
    37            boardFamily:    "control28335",
    38            boardRevision:  null
    39        };
    40
    41        readonly config xdc.platform.IExeContext.Cpu CPU = {
    42            id:             "0",
    43            clockRate:      150.0,
    44            catalogName:    "ti.catalog.c2800",
    45            deviceName:     "TMS320C28335",
    46            revision:       null
    47        };
    48
    49    instance:
    50
    51        override config string codeMemory = "L47SARAM";
    52
    53        override config string dataMemory = "L03SARAM";
    54
    55        override config string stackMemory = "L03SARAM";
    56    };
    57    /*
    58     *  @(#) ti.platforms.control28335; 1, 0, 0,184; 8-17-2012 22:13:49; /db/ztree/library/trees/platform/platform-n27x/src/
    59     */
    60


package ti.platforms.control28346
index URL

Platform package for the 28346 control card

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the 28346 controlCARD platform.
XDCspec declarations sourced in ti/platforms/control28346/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.control28346 [1, 0, 0] {
    module Platform;
}
generated on Thu, 08 Nov 2012 02:17:52 GMT


package ti.platforms.control28346

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c2800;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.control28346 ========
    18     *  Platform package for the 28346 control card.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the 28346 controlCARD platform.
    22     */
    23    package ti.platforms.control28346 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.control28346; 1, 0, 0,139; 8-17-2012 22:13:51; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.control28346.Platform

metaonly module ti.platforms.control28346.Platform
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/control28346/Platform.xdc
var Platform = xdc.useModule('ti.platforms.control28346.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "control28346",
        boardFamily: "control28346",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 300.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C28346",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L47SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L03SARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    name: "SRAM",
                    base: 0x200000,
                    len: 0x020000,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L03SARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "control28346",
    boardFamily: "control28346",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 300.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C28346",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L47SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L03SARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SRAM",
            {
                name: "SRAM",
                base: 0x200000,
                len: 0x020000,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L03SARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L47SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L03SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            name: "SRAM",
            base: 0x200000,
            len: 0x020000,
            page: 0,
            space: "code/data"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L03SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:52 GMT


module ti.platforms.control28346.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  This module implements xdc.IPlatform and defines configuration
    16     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    17     *
    18     *  The configuration parameters are initialized in this package's
    19     *  configuration script (package.cfg) and "bound" to the TCOM object
    20     *  model.  Once they are part of the model, these parameters are
    21     *  queried by a program's configuration script.
    22     *
    23     *  This particular platform has a single Cpu, and therefore, only
    24     *  declares a single CPU configuration object.  Multi-CPU platforms
    25     *  would declare multiple Cpu configuration parameters (one per
    26     *  platform CPU).
    27     *
    28     */
    29
    30    package ti.platforms.control28346;
    31
    32    metaonly module Platform inherits xdc.platform.IPlatform
    33    {
    34        readonly config xdc.platform.IPlatform.Board BOARD = {
    35            id:             "0",
    36            boardName:      "control28346",
    37            boardFamily:    "control28346",
    38            boardRevision:  null
    39        };
    40
    41        readonly config xdc.platform.IExeContext.Cpu CPU = {
    42            id:             "0",
    43            clockRate:      300.0,
    44            catalogName:    "ti.catalog.c2800",
    45            deviceName:     "TMS320C28346",
    46            revision:       null
    47        };
    48
    49    instance:
    50
    51        override readonly config xdc.platform.IPlatform.MemoryMap
    52            externalMemoryMap = [
    53                ["SRAM",
    54                    {
    55                        name: "SRAM",
    56                        base: 0x200000,
    57                        len:  0x020000,
    58                        page: 0,
    59                        space: "code/data",
    60                    }
    61                ],
    62            ];
    63
    64        override config string codeMemory = "L47SARAM";
    65
    66        override config string dataMemory = "L03SARAM";
    67
    68        override config string stackMemory = "L03SARAM";
    69    };
    70    /*
    71     *  @(#) ti.platforms.control28346; 1, 0, 0,139; 8-17-2012 22:13:51; /db/ztree/library/trees/platform/platform-n27x/src/
    72     */
    73


package ti.platforms.dsk5402
index URL

Platform package for the dsk5402 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dsk5402 platform.
XDCspec declarations sourced in ti/platforms/dsk5402/package.xdc
requires ti.catalog.c5400;
requires xdc.platform[1, 0, 1];
package ti.platforms.dsk5402 [1, 0, 0] {
    module Platform;
    // Platform support for the dsk5402
}
generated on Thu, 08 Nov 2012 02:17:53 GMT


package ti.platforms.dsk5402

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5400;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.dsk5402 ========
    18     *  Platform package for the dsk5402 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the dsk5402 platform.
    22     */
    23    package ti.platforms.dsk5402 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.dsk5402; 1, 0, 0,373; 8-17-2012 22:13:54; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.dsk5402.Platform

metaonly module ti.platforms.dsk5402.Platform
index URL

Platform support for the dsk5402

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dsk5402/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dsk5402.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "dsk5402",
        boardFamily: "dsk5402",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 100.0,
        catalogName: "ti.catalog.c5400",
        deviceName: "TMS320C5402",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EPROG";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EDATA";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "EPROG",
                {
                    name: "EPROG",
                    page: 0,
                    base: 0x8000,
                    len: 0x7f80
                }
            ],
            [
                "EDATA",
                {
                    name: "EDATA",
                    page: 1,
                    base: 0x8000,
                    len: 0x7000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EDATA";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dsk5402",
    boardFamily: "dsk5402",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 100.0,
    catalogName: "ti.catalog.c5400",
    deviceName: "TMS320C5402",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EPROG";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EDATA";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "EPROG",
            {
                name: "EPROG",
                page: 0,
                base: 0x8000,
                len: 0x7f80
            }
        ],
        [
            "EDATA",
            {
                name: "EDATA",
                page: 1,
                base: 0x8000,
                len: 0x7000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EDATA";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EPROG";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EDATA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EPROG",
        {
            name: "EPROG",
            page: 0,
            base: 0x8000,
            len: 0x7f80
        }
    ],
    [
        "EDATA",
        {
            name: "EDATA",
            page: 1,
            base: 0x8000,
            len: 0x7000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EDATA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:53 GMT


module ti.platforms.dsk5402.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.dsk5402;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the dsk5402
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "dsk5402",
    41            boardFamily:    "dsk5402",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu   CPU = {
    46            id:             "0",
    47            clockRate:      100.0,
    48            catalogName:    "ti.catalog.c5400",
    49            deviceName:     "TMS320C5402",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override readonly config xdc.platform.IPlatform.Memory
    56            externalMemoryMap[string] = [
    57                ["EPROG", {name: "EPROG", page: 0,  base: 0x8000,  len: 0x7f80}],
    58                ["EDATA", {name: "EDATA", page: 1,  base: 0x8000,  len: 0x7000}],
    59            ];
    60
    61        override config string codeMemory = "EPROG";
    62
    63        override config string dataMemory = "EDATA";
    64
    65        override config string stackMemory = "EDATA";
    66    };
    67    /*
    68     *  @(#) ti.platforms.dsk5402; 1, 0, 0,373; 8-17-2012 22:13:54; /db/ztree/library/trees/platform/platform-n27x/src/
    69     */
    70


package ti.platforms.dsk5416
index URL

Platform package for the dsk5416 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dsk5416 platform.
XDCspec declarations sourced in ti/platforms/dsk5416/package.xdc
requires ti.catalog.c5400;
requires xdc.platform[1, 0, 1];
package ti.platforms.dsk5416 [1, 0, 0] {
    module Platform;
    // Platform support for the dsk5416
}
generated on Thu, 08 Nov 2012 02:17:53 GMT


package ti.platforms.dsk5416

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5400;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.dsk5416 ========
    18     *  Platform package for the dsk5416 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the dsk5416 platform.
    22     */
    23    package ti.platforms.dsk5416 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.dsk5416; 1, 0, 0,373; 8-17-2012 22:13:56; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.dsk5416.Platform

metaonly module ti.platforms.dsk5416.Platform
index URL

Platform support for the dsk5416

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dsk5416/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dsk5416.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "dsk5416",
        boardFamily: "dsk5416",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 160.0,
        catalogName: "ti.catalog.c5400",
        deviceName: "TMS320C5416",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EPROG0";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "D_DARAM03";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "EPROG0",
                {
                    name: "EPROG0",
                    page: 0,
                    base: 0x8000,
                    len: 0x7f80
                }
            ],
            [
                "VECT",
                {
                    name: "VECT",
                    page: 0,
                    base: 0xff80,
                    len: 0x80
                }
            ],
            [
                "EPROG1",
                {
                    name: "EPROG1",
                    page: 1,
                    base: 0x10000,
                    len: 0x8000
                }
            ],
            [
                "EPROG2",
                {
                    name: "EPROG2",
                    page: 1,
                    base: 0x18000,
                    len: 0x8000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "D_DARAM03";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dsk5416",
    boardFamily: "dsk5416",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 160.0,
    catalogName: "ti.catalog.c5400",
    deviceName: "TMS320C5416",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EPROG0";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "D_DARAM03";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "EPROG0",
            {
                name: "EPROG0",
                page: 0,
                base: 0x8000,
                len: 0x7f80
            }
        ],
        [
            "VECT",
            {
                name: "VECT",
                page: 0,
                base: 0xff80,
                len: 0x80
            }
        ],
        [
            "EPROG1",
            {
                name: "EPROG1",
                page: 1,
                base: 0x10000,
                len: 0x8000
            }
        ],
        [
            "EPROG2",
            {
                name: "EPROG2",
                page: 1,
                base: 0x18000,
                len: 0x8000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "D_DARAM03";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EPROG0";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "D_DARAM03";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EPROG0",
        {
            name: "EPROG0",
            page: 0,
            base: 0x8000,
            len: 0x7f80
        }
    ],
    [
        "VECT",
        {
            name: "VECT",
            page: 0,
            base: 0xff80,
            len: 0x80
        }
    ],
    [
        "EPROG1",
        {
            name: "EPROG1",
            page: 1,
            base: 0x10000,
            len: 0x8000
        }
    ],
    [
        "EPROG2",
        {
            name: "EPROG2",
            page: 1,
            base: 0x18000,
            len: 0x8000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "D_DARAM03";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:53 GMT


module ti.platforms.dsk5416.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.dsk5416;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the dsk5416
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "dsk5416",
    41            boardFamily:    "dsk5416",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      160.0,
    48            catalogName:    "ti.catalog.c5400",
    49            deviceName:     "TMS320C5416",
    50            revision:       "",
    51        };
    52
    53    instance:
    54        /*
    55         *  ======== memTab ========
    56         */
    57        override readonly config xdc.platform.IPlatform.Memory
    58            externalMemoryMap[string] = [
    59                ["EPROG0", {name: "EPROG0", page: 0, base: 0x8000,  len: 0x7f80}],
    60                ["VECT",   {name: "VECT",   page: 0, base: 0xff80,  len: 0x80}],
    61                ["EPROG1", {name: "EPROG1", page: 1, base: 0x10000, len: 0x8000}],
    62                ["EPROG2", {name: "EPROG2", page: 1, base: 0x18000, len: 0x8000}],
    63            ];
    64
    65        override config string codeMemory = "EPROG0";
    66
    67        override config string dataMemory = "D_DARAM03";
    68
    69        override config string stackMemory = "D_DARAM03";
    70    };
    71    /*
    72     *  @(#) ti.platforms.dsk5416; 1, 0, 0,373; 8-17-2012 22:13:55; /db/ztree/library/trees/platform/platform-n27x/src/
    73     */
    74


package ti.platforms.dsk5505
index URL

Platform package for the DSK5505 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the DSK5505 platform.
XDCspec declarations sourced in ti/platforms/dsk5505/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.dsk5505 [1, 0, 0] {
    module Platform;
    // Platform support for the dsk5505
}
generated on Thu, 08 Nov 2012 02:17:54 GMT


package ti.platforms.dsk5505

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.dsk5505 ========
    18     *  Platform package for the DSK5505 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the DSK5505 platform.
    22     */
    23    package ti.platforms.dsk5505 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.dsk5505; 1, 0, 0,165; 8-17-2012 22:13:58; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.dsk5505.Platform

metaonly module ti.platforms.dsk5505.Platform
index URL

Platform support for the dsk5505

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dsk5505/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dsk5505.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "dsk5505",
        boardFamily: "dsk5510",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 100.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5505",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dsk5505",
    boardFamily: "dsk5510",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 100.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5505",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:54 GMT


module ti.platforms.dsk5505.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.dsk5505;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the dsk5505
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.xs) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "dsk5505",
    41            boardFamily:    "dsk5510",
    42            boardRevision:  null
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      100.0,
    48            catalogName:    "ti.catalog.c5500",
    49            deviceName:     "TMS320C5505",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override config string codeMemory = "SARAM";
    56
    57        override config string dataMemory = "DARAM";
    58
    59        override config string stackMemory = "DARAM";
    60    };
    61    /*
    62     *  @(#) ti.platforms.dsk5505; 1, 0, 0,165; 8-17-2012 22:13:58; /db/ztree/library/trees/platform/platform-n27x/src/
    63     */
    64


package ti.platforms.dsk5510
index URL

Platform package for the dsk5510 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dsk5510 platform.
XDCspec declarations sourced in ti/platforms/dsk5510/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.dsk5510 [1, 0, 0] {
    module Platform;
    // Platform support for the dsk5510
}
generated on Thu, 08 Nov 2012 02:17:54 GMT


package ti.platforms.dsk5510

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.dsk5510 ========
    18     *  Platform package for the dsk5510 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the dsk5510 platform.
    22     */
    23    package ti.platforms.dsk5510 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.dsk5510; 1, 0, 0,373; 8-17-2012 22:13:59; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.dsk5510.Platform

metaonly module ti.platforms.dsk5510.Platform
index URL

Platform support for the dsk5510

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dsk5510/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dsk5510.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "dsk5510",
        boardFamily: "dsk5510",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5510",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0x050000,
                    len: 0x3b0000
                }
            ],
            [
                "FLASH",
                {
                    name: "FLASH",
                    base: 0x400000,
                    len: 0x080000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dsk5510",
    boardFamily: "dsk5510",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 200.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5510",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0x050000,
                len: 0x3b0000
            }
        ],
        [
            "FLASH",
            {
                name: "FLASH",
                base: 0x400000,
                len: 0x080000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0x050000,
            len: 0x3b0000
        }
    ],
    [
        "FLASH",
        {
            name: "FLASH",
            base: 0x400000,
            len: 0x080000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:54 GMT


module ti.platforms.dsk5510.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.dsk5510;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the dsk5510
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "dsk5510",
    41            boardFamily:    "dsk5510",
    42            boardRevision:  null
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      200.0,
    48            catalogName:    "ti.catalog.c5500",
    49            deviceName:     "TMS320C5510",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override readonly config xdc.platform.IPlatform.MemoryMap
    56            externalMemoryMap = [
    57                ["SDRAM",   {name: "SDRAM", base: 0x050000,   len: 0x3b0000}],
    58                ["FLASH",   {name: "FLASH", base: 0x400000,   len: 0x080000}]
    59            ];
    60
    61        override config string codeMemory = "SARAM";
    62
    63        override config string dataMemory = "DARAM";
    64
    65        override config string stackMemory = "DARAM";
    66    };
    67    /*
    68     *  @(#) ti.platforms.dsk5510; 1, 0, 0,373; 8-17-2012 22:13:59; /db/ztree/library/trees/platform/platform-n27x/src/
    69     */
    70


package ti.platforms.dsk6211
index URL

Platform package for the dsk6211 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dsk6211 platform.
XDCspec declarations sourced in ti/platforms/dsk6211/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.dsk6211 [1, 0, 0] {
    module Platform;
    // Platform support for the dsk6211
}
generated on Thu, 08 Nov 2012 02:17:55 GMT


package ti.platforms.dsk6211

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.dsk6211 ========
    18     *  Platform package for the dsk6211 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the dsk6211 platform.
    22     */
    23    package ti.platforms.dsk6211 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.dsk6211; 1, 0, 0,374; 8-17-2012 22:14:02; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.dsk6211.Platform

metaonly module ti.platforms.dsk6211.Platform
index URL

Platform support for the dsk6211

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dsk6211/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dsk6211.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "dsk6211",
        boardFamily: "dsk6211",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6211",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "IRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0x80000000,
                    len: 0x400000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dsk6211",
    boardFamily: "dsk6211",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6211",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "IRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0x80000000,
                len: 0x400000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0x80000000,
            len: 0x400000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:55 GMT


module ti.platforms.dsk6211.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    package ti.platforms.dsk6211;
    19
    20    /*!
    21     *  ======== Platform ========
    22     *  Platform support for the dsk6211
    23     *
    24     *  This module implements xdc.platform.IPlatform and defines configuration
    25     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    26     *
    27     *  The configuration parameters are initialized in this package's
    28     *  configuration script (package.cfg) and "bound" to the TCOM object
    29     *  model.  Once they are part of the model, these parameters are
    30     *  queried by a program's configuration script.
    31     *
    32     *  This particular platform has a single Cpu, and therefore, only
    33     *  declares a single CPU configuration object.  Multi-CPU platforms
    34     *  would declare multiple Cpu configuration parameters (one per
    35     *  platform CPU).
    36     */
    37    metaonly module Platform inherits xdc.platform.IPlatform
    38    {
    39        readonly config xdc.platform.IPlatform.Board BOARD = {
    40            id:             "0",
    41            boardName:      "dsk6211",
    42            boardFamily:    "dsk6211",
    43            boardRevision:  null,
    44        };
    45
    46        readonly config xdc.platform.IExeContext.Cpu CPU = {
    47            id:             "0",
    48            clockRate:      150.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320C6211",
    51            revision:       "",
    52        };
    53
    54    instance:
    55
    56        override readonly config xdc.platform.IPlatform.Memory
    57            externalMemoryMap[string] = [
    58                ["SDRAM",  {name: "SDRAM",  base: 0x80000000, len: 0x400000}],
    59            ];
    60
    61        override config string codeMemory = "IRAM";
    62
    63        override config string dataMemory = "SDRAM";
    64
    65        override config string stackMemory = "SDRAM";
    66
    67        /*
    68         *  ======== l1PMode ========
    69         *  Define the amount of L1P RAM used for L1 Program Cache.
    70         *
    71         *  Check the device documentation for valid values.
    72         */
    73        config String l1PMode = "32k";
    74
    75        /*
    76         *  ======== l1DMode ========
    77         *  Define the amount of L1D RAM used for L1 Data Cache.
    78         *
    79         *  Check the device documentation for valid values.
    80         */
    81        config String l1DMode = "32k";
    82
    83        /*
    84         *  ======== l2Mode ========
    85         *  Define the amount of L2 RAM used for L2 Cache.
    86         *
    87         *  Check the device documentation for valid values.
    88         */
    89        config String l2Mode = "0k";
    90    };
    91    /*
    92     *  @(#) ti.platforms.dsk6211; 1, 0, 0,374; 8-17-2012 22:14:02; /db/ztree/library/trees/platform/platform-n27x/src/
    93     */
    94


package ti.platforms.dsk6416
index URL

Platform package for the dsk6416 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dsk6416 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/dsk6416/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.dsk6416 [1, 0, 0] {
    module Platform;
    // Platform support for the dsk6416
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dsk6416 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.dsk6416.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:17:55 GMT


package ti.platforms.dsk6416

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.dsk6416 ========
    18     *  Platform package for the dsk6416 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the dsk6416 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.dsk6416.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.dsk6416 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.dsk6416; 1, 0, 0,374; 8-17-2012 22:14:05; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.dsk6416.Platform

metaonly module ti.platforms.dsk6416.Platform
index URL

Platform support for the dsk6416

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dsk6416/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dsk6416.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "dsk6416",
        boardFamily: "dsk6416",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 600.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6416",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "IRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0x80000000,
                    len: 0x01000000
                }
            ]
        ];
        params.ftpath// Installation directory of the Foundational Tools Suite = String undefined;
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dsk6416",
    boardFamily: "dsk6416",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 600.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6416",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "IRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0x80000000,
                len: 0x01000000
            }
        ]
    ];
    params.ftpath = String undefined;
    // Installation directory of the Foundational Tools Suite
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0x80000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.ftpath // instance
index URL

Installation directory of the Foundational Tools Suite

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.ftpath = String computed value;
DETAILS
The underlying simulation engine used to run executables produced using this platform is part of the Target Server / Foundational Tools product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:55 GMT


module ti.platforms.dsk6416.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.dsk6416;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the dsk6416
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "dsk6416",
    41            boardFamily:    "dsk6416",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      600.0,
    48            catalogName:    "ti.catalog.c6000",
    49            deviceName:     "TMS320C6416",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override readonly config xdc.platform.IPlatform.Memory
    56            externalMemoryMap[string] = [
    57                ["SDRAM",  {name: "SDRAM",  base: 0x80000000, len: 0x01000000}],
    58            ];
    59
    60        /*!
    61         *  ======== ftpath ========
    62         *  Installation directory of the Foundational Tools Suite
    63         *
    64         *  The underlying simulation engine used to run executables produced
    65         *  using this platform is part of the Target Server / Foundational Tools
    66         *  product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
    67         */
    68        readonly config String ftpath;
    69
    70        /*
    71         *  ======== sectMap ========
    72         *  Define a placement of compiler generated output sections into
    73         *  memory regions defined in the memTab above.
    74         */
    75        override config string codeMemory = "IRAM";
    76
    77        override config string dataMemory = "SDRAM";
    78
    79        override config string stackMemory = "SDRAM";
    80
    81        /*
    82         *  ======== l1PMode ========
    83         *  Define the amount of L1P RAM used for L1 Program Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l1PMode = "32k";
    88
    89        /*
    90         *  ======== l1DMode ========
    91         *  Define the amount of L1D RAM used for L1 Data Cache.
    92         *
    93         *  Check the device documentation for valid values.
    94         */
    95        config String l1DMode = "32k";
    96
    97        /*
    98         *  ======== l2Mode ========
    99         *  Define the amount of L2 RAM used for L2 Cache.
   100         *
   101         *  Check the device documentation for valid values.
   102         */
   103        config String l2Mode = "0k";
   104    };
   105    /*
   106     *  @(#) ti.platforms.dsk6416; 1, 0, 0,374; 8-17-2012 22:14:04; /db/ztree/library/trees/platform/platform-n27x/src/
   107     */
   108


package ti.platforms.dsk6455
index URL

Platform package for the dsk6455 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dsk6455 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/dsk6455/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.dsk6455 [1, 0, 0] {
    module Platform;
    // Platform support for the dsk6455
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dsk6455 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.dsk6455.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:17:56 GMT


package ti.platforms.dsk6455

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.dsk6455 ========
    23     *  Platform package for the dsk6455 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the dsk6455 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.dsk6455.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.dsk6455 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.dsk6455; 1, 0, 0,359; 8-17-2012 22:14:08; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.dsk6455.Platform

metaonly module ti.platforms.dsk6455.Platform
index URL

Platform support for the dsk6455

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dsk6455/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dsk6455.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "dsk6455",
        boardFamily: "dsk6455",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6455",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "IRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0xE0000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dsk6455",
    boardFamily: "dsk6455",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6455",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "IRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0xE0000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0xE0000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:56 GMT


module ti.platforms.dsk6455.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the dsk6455
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "dsk6455",
    40            boardFamily:    "dsk6455",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      1000,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C6455",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        /*
    55         *  ======== memTab ========
    56         *  Define the dsk6455 memory map
    57         */
    58        override readonly config xdc.platform.IPlatform.Memory
    59            externalMemoryMap[string] = [
    60                ["DDR2", {name: "DDR2", base: 0xE0000000, len: 0x10000000}],
    61            ];
    62
    63        override config string codeMemory = "IRAM";
    64
    65        override config string dataMemory = "DDR2";
    66
    67        override config string stackMemory = "DDR2";
    68
    69        /*
    70         *  ======== l1PMode ========
    71         *  Define the amount of L1P RAM used for L1 Program Cache.
    72         *
    73         *  Check the device documentation for valid values.
    74         */
    75        config String l1PMode = "32k";
    76
    77        /*
    78         *  ======== l1DMode ========
    79         *  Define the amount of L1D RAM used for L1 Data Cache.
    80         *
    81         *  Check the device documentation for valid values.
    82         */
    83        config String l1DMode = "32k";
    84
    85        /*
    86         *  ======== l2Mode ========
    87         *  Define the amount of L2 RAM used for L2 Cache.
    88         *
    89         *  Check the device documentation for valid values.
    90         */
    91        config String l2Mode = "0k";
    92    };
    93    /*
    94     *  @(#) ti.platforms.dsk6455; 1, 0, 0,359; 8-17-2012 22:14:08; /db/ztree/library/trees/platform/platform-n27x/src/
    95     */
    96


package ti.platforms.dsk6711
index URL

Platform package for the DSK6711 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the DSK6711 platform.
XDCspec declarations sourced in ti/platforms/dsk6711/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.dsk6711 [1, 0, 0] {
    module Platform;
    // Platform support for the dsk6711
}
generated on Thu, 08 Nov 2012 02:17:55 GMT


package ti.platforms.dsk6711

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.dsk6711 ========
    18     *  Platform package for the DSK6711 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the DSK6711 platform.
    22     */
    23    package ti.platforms.dsk6711 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.dsk6711; 1, 0, 0,374; 8-17-2012 22:14:10; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.dsk6711.Platform

metaonly module ti.platforms.dsk6711.Platform
index URL

Platform support for the dsk6711

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dsk6711/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dsk6711.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "dsk6711",
        boardFamily: "dsk6711",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6711",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "IRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0x80000000,
                    len: 0x1000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dsk6711",
    boardFamily: "dsk6711",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6711",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "IRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0x80000000,
                len: 0x1000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0x80000000,
            len: 0x1000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:55 GMT


module ti.platforms.dsk6711.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the dsk6711
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "dsk6711",
    40            boardFamily:    "dsk6711",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      150.0,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C6711",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.MemoryMap
    55            externalMemoryMap = [
    56                ["SDRAM",  {name: "SDRAM",  base: 0x80000000, len: 0x1000000}],
    57            ];
    58
    59        override config string codeMemory = "IRAM";
    60
    61        override config string dataMemory = "SDRAM";
    62
    63        override config string stackMemory = "SDRAM";
    64
    65        /*
    66         *  ======== l1PMode ========
    67         *  Define the amount of L1P RAM used for L1 Program Cache.
    68         *
    69         *  Check the device documentation for valid values.
    70         */
    71        config String l1PMode = "32k";
    72
    73        /*
    74         *  ======== l1DMode ========
    75         *  Define the amount of L1D RAM used for L1 Data Cache.
    76         *
    77         *  Check the device documentation for valid values.
    78         */
    79        config String l1DMode = "32k";
    80
    81        /*
    82         *  ======== l2Mode ========
    83         *  Define the amount of L2 RAM used for L2 Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l2Mode = "0k";
    88    };
    89    /*
    90     *  @(#) ti.platforms.dsk6711; 1, 0, 0,374; 8-17-2012 22:14:10; /db/ztree/library/trees/platform/platform-n27x/src/
    91     */
    92


package ti.platforms.dsk6713
index URL

Platform package for the dsk6713 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dsk6713 platform.
XDCspec declarations sourced in ti/platforms/dsk6713/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.dsk6713 [1, 0, 0] {
    module Platform;
    // Platform support for the dsk6713
}
generated on Thu, 08 Nov 2012 02:17:56 GMT


package ti.platforms.dsk6713

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.dsk6713 ========
    18     *  Platform package for the dsk6713 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the dsk6713 platform.
    22     */
    23    package ti.platforms.dsk6713 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.dsk6713; 1, 0, 0,374; 8-17-2012 22:14:12; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.dsk6713.Platform

metaonly module ti.platforms.dsk6713.Platform
index URL

Platform support for the dsk6713

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dsk6713/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dsk6713.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// Board-level properties of this particular platform = IPlatform.Board {
        id: "0",
        boardName: "dsk6713",
        boardFamily: "dsk6713",
        boardRevision: null
    };
    const Platform.CPU// The device on this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 225.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6713",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "IRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// Default mapping of memory names to memory objects = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    comment: "This object defines 8MB for the DSP's off-chip memory",
                    name: "SDRAM",
                    base: 0x80000000,
                    len: 0x00800000,
                    space: "code/data"
                }
            ]
        ];
        params.ftpath// Installation directory of the Foundational Tools Suite = String undefined;
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

Board-level properties of this particular platform

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dsk6713",
    boardFamily: "dsk6713",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The device on this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 225.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6713",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "IRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // Default mapping of memory names to memory objects
        [
            "SDRAM",
            {
                comment: "This object defines 8MB for the DSP's off-chip memory",
                name: "SDRAM",
                base: 0x80000000,
                len: 0x00800000,
                space: "code/data"
            }
        ]
    ];
    params.ftpath = String undefined;
    // Installation directory of the Foundational Tools Suite
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

Default mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            comment: "This object defines 8MB for the DSP's off-chip memory",
            name: "SDRAM",
            base: 0x80000000,
            len: 0x00800000,
            space: "code/data"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.ftpath // instance
index URL

Installation directory of the Foundational Tools Suite

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.ftpath = String computed value;
DETAILS
The underlying simulation engine used to run executables produced using this platform is part of the Target Server / Foundational Tools product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:56 GMT


module ti.platforms.dsk6713.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.dsk6713;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the dsk6713
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  Board-level properties of this particular platform.
    41         */
    42        readonly config xdc.platform.IPlatform.Board BOARD = {
    43            id:             "0",
    44            boardName:      "dsk6713",
    45            boardFamily:    "dsk6713",
    46            boardRevision:  null
    47        };
    48
    49        /*!
    50         *  ======== CPU ========
    51         *  The device on this platform
    52         */
    53        readonly config xdc.platform.IExeContext.Cpu CPU = {
    54            id:             "0",
    55            clockRate:      225.0,
    56            catalogName:    "ti.catalog.c6000",
    57            deviceName:     "TMS320C6713",
    58            revision:       "",
    59        };
    60
    61    instance:
    62
    63        /*!
    64         *  ======== externalMemoryMap ========
    65         *  Default mapping of memory names to memory objects.
    66         */
    67        override readonly config xdc.platform.IPlatform.Memory
    68            externalMemoryMap[string] = [
    69                ["SDRAM", {
    70                    comment:
    71                        "This object defines 8MB for the DSP's off-chip memory",
    72                    name: "SDRAM",
    73                    base: 0x80000000,
    74                    len:  0x00800000,
    75                    space: "code/data"
    76                 }]
    77            ];
    78
    79        /*!
    80         *  ======== ftpath ========
    81         *  Installation directory of the Foundational Tools Suite
    82         *
    83         *  The underlying simulation engine used to run executables produced
    84         *  using this platform is part of the Target Server / Foundational Tools
    85         *  product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
    86         */
    87        readonly config String ftpath;
    88
    89        override config string codeMemory = "IRAM";
    90
    91        override config string dataMemory = "SDRAM";
    92
    93        override config string stackMemory = "SDRAM";
    94
    95        /*
    96         *  ======== l1PMode ========
    97         *  Define the amount of L1P RAM used for L1 Program Cache.
    98         *
    99         *  Check the device documentation for valid values.
   100         */
   101        config String l1PMode = "32k";
   102
   103        /*
   104         *  ======== l1DMode ========
   105         *  Define the amount of L1D RAM used for L1 Data Cache.
   106         *
   107         *  Check the device documentation for valid values.
   108         */
   109        config String l1DMode = "32k";
   110
   111        /*
   112         *  ======== l2Mode ========
   113         *  Define the amount of L2 RAM used for L2 Cache.
   114         *
   115         *  Check the device documentation for valid values.
   116         */
   117        config String l2Mode = "0k";
   118    };
   119    /*
   120     *  @(#) ti.platforms.dsk6713; 1, 0, 0,374; 8-17-2012 22:14:12; /db/ztree/library/trees/platform/platform-n27x/src/
   121     */
   122


package ti.platforms.dskTCI6482
index URL

Platform package for the dskTCI6482 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dskTCI6482 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/dskTCI6482/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.dskTCI6482 [1, 0, 0] {
    module Platform;
    // Platform support for the dskTCI6482
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the dskTCI6482 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.dskTCI6482.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:17:56 GMT


package ti.platforms.dskTCI6482

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.dskTCI6482 ========
    23     *  Platform package for the dskTCI6482 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the dskTCI6482 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.dskTCI6482.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.dskTCI6482 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.dskTCI6482; 1, 0, 0,359; 8-17-2012 22:14:15; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.dskTCI6482.Platform

metaonly module ti.platforms.dskTCI6482.Platform
index URL

Platform support for the dskTCI6482

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/dskTCI6482/Platform.xdc
var Platform = xdc.useModule('ti.platforms.dskTCI6482.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "dskTCI6482",
        boardFamily: "dskTCI6482",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CTCI6482",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR",
                {
                    name: "DDR",
                    base: 0xE0000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "dskTCI6482",
    boardFamily: "dskTCI6482",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CTCI6482",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR",
            {
                name: "DDR",
                base: 0xE0000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR",
        {
            name: "DDR",
            base: 0xE0000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:56 GMT


module ti.platforms.dskTCI6482.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the dskTCI6482
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "dskTCI6482",
    40            boardFamily:    "dskTCI6482",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      1000,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CTCI6482",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        /*
    55         *  ======== externalMemoryMap ========
    56         *  Define the dskTCI6482 external memory map
    57         */
    58        override readonly config xdc.platform.IPlatform.Memory
    59            externalMemoryMap[string] = [
    60                ["DDR", {name: "DDR", base: 0xE0000000, len: 0x10000000}],
    61            ];
    62
    63        override config string codeMemory = "DDR";
    64
    65        override config string dataMemory = "DDR";
    66
    67        override config string stackMemory = "DDR";
    68
    69        /*
    70         *  ======== l1PMode ========
    71         *  Define the amount of L1P RAM used for L1 Program Cache.
    72         *
    73         *  Check the device documentation for valid values.
    74         */
    75        config String l1PMode = "32k";
    76
    77        /*
    78         *  ======== l1DMode ========
    79         *  Define the amount of L1D RAM used for L1 Data Cache.
    80         *
    81         *  Check the device documentation for valid values.
    82         */
    83        config String l1DMode = "32k";
    84
    85        /*
    86         *  ======== l2Mode ========
    87         *  Define the amount of L2 RAM used for L2 Cache.
    88         *
    89         *  Check the device documentation for valid values.
    90         */
    91        config String l2Mode = "0k";
    92    };
    93    /*
    94     *  @(#) ti.platforms.dskTCI6482; 1, 0, 0,359; 8-17-2012 22:14:15; /db/ztree/library/trees/platform/platform-n27x/src/
    95     */
    96


package ti.platforms.evm2530
index URL

Platform package for the evm2530 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm2530 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evm2530/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm2530 [1, 0, 0] {
    module Platform;
    // Platform support for the evm2530
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm2530 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm2530.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:17:57 GMT


package ti.platforms.evm2530

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires ti.catalog.arm;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evm2530 ========
    24     *  Platform package for the evm2530 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evm2530 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evm2530.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evm2530 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evm2530; 1, 0, 0,276; 8-17-2012 22:14:17; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evm2530.Platform

metaonly module ti.platforms.evm2530.Platform
index URL

Platform support for the evm2530

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm2530/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm2530.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm2530",
        boardFamily: "evm2530",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 330,
        catalogName: "ti.catalog.c6000",
        deviceName: "OMAP2530",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 330,
        catalogName: "ti.catalog.arm",
        deviceName: "OMAP2530",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x4000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm2530",
    boardFamily: "evm2530",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 330,
    catalogName: "ti.catalog.c6000",
    deviceName: "OMAP2530",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 330,
    catalogName: "ti.catalog.arm",
    deviceName: "OMAP2530",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x4000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x4000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:57 GMT


module ti.platforms.evm2530.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm2530
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evm2530",
    40            boardFamily:    "evm2530",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu DSP = {
    45            id:             "0",
    46            clockRate:      330,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "OMAP2530",
    49            revision:       "",
    50        };
    51
    52        readonly config xdc.platform.IExeContext.Cpu GPP = {
    53            id:             "1",
    54            clockRate:      330,
    55            catalogName:    "ti.catalog.arm",
    56            deviceName:     "OMAP2530",
    57            revision:       "",
    58        };
    59
    60    instance:
    61
    62        override readonly config xdc.platform.IPlatform.Memory
    63            externalMemoryMap[string] = [
    64                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x4000000}],
    65            ];
    66
    67        override config string dataMemory = "DDR2";
    68
    69        override config string stackMemory = "DDR2";
    70
    71        /*
    72         *  ======== l1PMode ========
    73         *  Define the amount of L1P RAM used for L1 Program Cache.
    74         *
    75         *  Check the device documentation for valid values.
    76         */
    77        config String l1PMode = "32k";
    78
    79        /*
    80         *  ======== l1DMode ========
    81         *  Define the amount of L1D RAM used for L1 Data Cache.
    82         *
    83         *  Check the device documentation for valid values.
    84         */
    85        config String l1DMode = "32k";
    86
    87        /*
    88         *  ======== l2Mode ========
    89         *  Define the amount of L2 RAM used for L2 Cache.
    90         *
    91         *  Check the device documentation for valid values.
    92         */
    93        config String l2Mode = "0k";
    94    };
    95    /*
    96     *  @(#) ti.platforms.evm2530; 1, 0, 0,276; 8-17-2012 22:14:17; /db/ztree/library/trees/platform/platform-n27x/src/
    97     */
    98


package ti.platforms.evm3530
index URL

Platform package for the evm3530 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm3530 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evm3530/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm3530 [1, 0, 0] {
    module Platform;
    // Platform support for the evm3530
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm3530 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm3530.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:17:57 GMT


package ti.platforms.evm3530

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires ti.catalog.arm;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evm3530 ========
    24     *  Platform package for the evm3530 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evm3530 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evm3530.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evm3530 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evm3530; 1, 0, 0,272; 8-17-2012 22:14:19; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evm3530.Platform

metaonly module ti.platforms.evm3530.Platform
index URL

Platform support for the evm3530

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm3530/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm3530.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm3530",
        boardFamily: "evm3530",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 330,
        catalogName: "ti.catalog.c6000",
        deviceName: "OMAP3530",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 330,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "OMAP3530",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x8000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm3530",
    boardFamily: "evm3530",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 330,
    catalogName: "ti.catalog.c6000",
    deviceName: "OMAP3530",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 330,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "OMAP3530",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x8000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x8000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:57 GMT


module ti.platforms.evm3530.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm3530
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evm3530",
    40            boardFamily:    "evm3530",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu DSP = {
    45            id:             "0",
    46            clockRate:      330,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "OMAP3530",
    49            revision:       "",
    50        };
    51
    52        readonly config xdc.platform.IExeContext.Cpu GPP = {
    53            id:             "1",
    54            clockRate:      330,
    55            catalogName:    "ti.catalog.arm.cortexa8",
    56            deviceName:     "OMAP3530",
    57            revision:       "",
    58        };
    59
    60    instance:
    61
    62        override readonly config xdc.platform.IPlatform.Memory
    63            externalMemoryMap[string] = [
    64                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x8000000}],
    65            ];
    66
    67        override config string dataMemory = "DDR2";
    68
    69        override config string stackMemory = "DDR2";
    70
    71        /*
    72         *  ======== l1PMode ========
    73         *  Define the amount of L1P RAM used for L1 Program Cache.
    74         *
    75         *  Check the device documentation for valid values.
    76         */
    77        config String l1PMode = "32k";
    78
    79        /*
    80         *  ======== l1DMode ========
    81         *  Define the amount of L1D RAM used for L1 Data Cache.
    82         *
    83         *  Check the device documentation for valid values.
    84         */
    85        config String l1DMode = "32k";
    86
    87        /*
    88         *  ======== l2Mode ========
    89         *  Define the amount of L2 RAM used for L2 Cache.
    90         *
    91         *  Check the device documentation for valid values.
    92         */
    93        config String l2Mode = "0k";
    94    };
    95    /*
    96     *  @(#) ti.platforms.evm3530; 1, 0, 0,272; 8-17-2012 22:14:19; /db/ztree/library/trees/platform/platform-n27x/src/
    97     */
    98


package ti.platforms.evm5505
index URL

Platform package for the EVM5505 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm5505 platform.
XDCspec declarations sourced in ti/platforms/evm5505/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm5505 [1, 0, 0] {
    module Platform;
    // Platform support for the evm5505
}
generated on Thu, 08 Nov 2012 02:17:58 GMT


package ti.platforms.evm5505

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evm5505 ========
    18     *  Platform package for the EVM5505 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evm5505 platform.
    22     */
    23    package ti.platforms.evm5505 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.evm5505; 1, 0, 0,122; 8-17-2012 22:14:22; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.evm5505.Platform

metaonly module ti.platforms.evm5505.Platform
index URL

Platform support for the evm5505

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm5505/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm5505.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm5505",
        boardFamily: "evm5510",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 100.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5505",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm5505",
    boardFamily: "evm5510",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 100.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5505",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:58 GMT


module ti.platforms.evm5505.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evm5505;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evm5505
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.xs) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evm5505",
    41            boardFamily:    "evm5510",
    42            boardRevision:  null
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      100.0,
    48            catalogName:    "ti.catalog.c5500",
    49            deviceName:     "TMS320C5505",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override config string codeMemory = "SARAM";
    56
    57        override config string dataMemory = "DARAM";
    58
    59        override config string stackMemory = "DARAM";
    60    };
    61    /*
    62     *  @(#) ti.platforms.evm5505; 1, 0, 0,122; 8-17-2012 22:14:22; /db/ztree/library/trees/platform/platform-n27x/src/
    63     */
    64


package ti.platforms.evm5505ext
index URL

Platform package for the EVM5505 platform (with external memory card)

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm5505ext platform.
XDCspec declarations sourced in ti/platforms/evm5505ext/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm5505ext [1, 0, 0] {
    module Platform;
    // Platform support for the evm5505 with daugther memory card
}
generated on Thu, 08 Nov 2012 02:17:58 GMT


package ti.platforms.evm5505ext

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evm5505ext ========
    18     *  Platform package for the EVM5505 platform (with external memory card)
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evm5505ext platform.
    22     */
    23    package ti.platforms.evm5505ext [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.evm5505ext; 1, 0, 0,140; 8-17-2012 22:14:23; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.evm5505ext.Platform

metaonly module ti.platforms.evm5505ext.Platform
index URL

Platform support for the evm5505 with daugther memory card

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm5505ext/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm5505ext.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm5505ext",
        boardFamily: "evm5510",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 100.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5505",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "NAND",
                {
                    name: "NAND",
                    base: 0x800000,
                    len: 0x600000
                }
            ],
            [
                "NOR",
                {
                    name: "NOR",
                    base: 0xe00000,
                    len: 0x100000
                }
            ],
            [
                "SRAM",
                {
                    name: "SRAM",
                    base: 0xf00000,
                    len: 0x100000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm5505ext",
    boardFamily: "evm5510",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 100.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5505",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "NAND",
            {
                name: "NAND",
                base: 0x800000,
                len: 0x600000
            }
        ],
        [
            "NOR",
            {
                name: "NOR",
                base: 0xe00000,
                len: 0x100000
            }
        ],
        [
            "SRAM",
            {
                name: "SRAM",
                base: 0xf00000,
                len: 0x100000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "NAND",
        {
            name: "NAND",
            base: 0x800000,
            len: 0x600000
        }
    ],
    [
        "NOR",
        {
            name: "NOR",
            base: 0xe00000,
            len: 0x100000
        }
    ],
    [
        "SRAM",
        {
            name: "SRAM",
            base: 0xf00000,
            len: 0x100000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:58 GMT


module ti.platforms.evm5505ext.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evm5505ext;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evm5505 with daugther memory card
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.xs) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evm5505ext",
    41            boardFamily:    "evm5510",
    42            boardRevision:  null
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      100.0,
    48            catalogName:    "ti.catalog.c5500",
    49            deviceName:     "TMS320C5505",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override readonly config xdc.platform.IPlatform.MemoryMap
    56            externalMemoryMap = [
    57                ["NAND",   {name: "NAND", base: 0x800000,   len: 0x600000}],
    58                ["NOR",    {name: "NOR",  base: 0xe00000,   len: 0x100000}],
    59                ["SRAM",   {name: "SRAM", base: 0xf00000,   len: 0x100000}]
    60            ];
    61
    62        override config string codeMemory = "SARAM";
    63
    64        override config string dataMemory = "DARAM";
    65
    66        override config string stackMemory = "DARAM";
    67    };
    68    /*
    69     *  @(#) ti.platforms.evm5505ext; 1, 0, 0,140; 8-17-2012 22:14:23; /db/ztree/library/trees/platform/platform-n27x/src/
    70     */
    71


package ti.platforms.evm5509A
index URL

Platform package for the EVM5509A platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the EVM5509A platform.
XDCspec declarations sourced in ti/platforms/evm5509A/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm5509A [1, 0, 0] {
    module Platform;
    // Platform support for the evm5509A
}
generated on Thu, 08 Nov 2012 02:17:58 GMT


package ti.platforms.evm5509A

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evm5509A ========
    18     *  Platform package for the EVM5509A platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the EVM5509A platform.
    22     */
    23    package ti.platforms.evm5509A [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.evm5509A; 1, 0, 0,372; 8-17-2012 22:14:25; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.evm5509A.Platform

metaonly module ti.platforms.evm5509A.Platform
index URL

Platform support for the evm5509A

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm5509A/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm5509A.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm5509A",
        boardFamily: "evm5509",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 120.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5509A",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0x040000,
                    len: 0x3b0000
                }
            ],
            [
                "FLASH",
                {
                    name: "FLASH",
                    base: 0x400000,
                    len: 0x200000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm5509A",
    boardFamily: "evm5509",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 120.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5509A",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0x040000,
                len: 0x3b0000
            }
        ],
        [
            "FLASH",
            {
                name: "FLASH",
                base: 0x400000,
                len: 0x200000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0x040000,
            len: 0x3b0000
        }
    ],
    [
        "FLASH",
        {
            name: "FLASH",
            base: 0x400000,
            len: 0x200000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:58 GMT


module ti.platforms.evm5509A.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evm5509A;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evm5509A
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.xs) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evm5509A",
    41            boardFamily:    "evm5509",
    42            boardRevision:  null
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      120.0,
    48            catalogName:    "ti.catalog.c5500",
    49            deviceName:     "TMS320C5509A",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override readonly config xdc.platform.IPlatform.MemoryMap
    56            externalMemoryMap = [
    57                ["SDRAM",   {name: "SDRAM", base: 0x040000,   len: 0x3b0000}],
    58                ["FLASH",   {name: "FLASH", base: 0x400000,   len: 0x200000}],
    59            ];
    60
    61        override config string codeMemory = "SARAM";
    62
    63        override config string dataMemory = "DARAM";
    64
    65        override config string stackMemory = "DARAM";
    66    };
    67    /*
    68     *  @(#) ti.platforms.evm5509A; 1, 0, 0,372; 8-17-2012 22:14:25; /db/ztree/library/trees/platform/platform-n27x/src/
    69     */
    70


package ti.platforms.evm5515
index URL

Platform package for the EVM5515 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm5515 platform.
XDCspec declarations sourced in ti/platforms/evm5515/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm5515 [1, 0, 0] {
    module Platform;
    // Platform support for the evm5515
}
generated on Thu, 08 Nov 2012 02:17:59 GMT


package ti.platforms.evm5515

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evm5515 ========
    18     *  Platform package for the EVM5515 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evm5515 platform.
    22     */
    23    package ti.platforms.evm5515 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.evm5515; 1, 0, 0,98; 8-17-2012 22:14:28; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.evm5515.Platform

metaonly module ti.platforms.evm5515.Platform
index URL

Platform support for the evm5515

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm5515/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm5515.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm5515",
        boardFamily: "evm5515",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 100.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5515",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "NOR",
                {
                    name: "NOR",
                    base: 0x800000,
                    len: 0x400000
                }
            ],
            [
                "NAND",
                {
                    name: "NAND",
                    base: 0xe00000,
                    len: 0x100000
                }
            ],
            [
                "SRAM",
                {
                    name: "SRAM",
                    base: 0x050000,
                    len: 0x7b0000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm5515",
    boardFamily: "evm5515",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 100.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5515",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "NOR",
            {
                name: "NOR",
                base: 0x800000,
                len: 0x400000
            }
        ],
        [
            "NAND",
            {
                name: "NAND",
                base: 0xe00000,
                len: 0x100000
            }
        ],
        [
            "SRAM",
            {
                name: "SRAM",
                base: 0x050000,
                len: 0x7b0000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "NOR",
        {
            name: "NOR",
            base: 0x800000,
            len: 0x400000
        }
    ],
    [
        "NAND",
        {
            name: "NAND",
            base: 0xe00000,
            len: 0x100000
        }
    ],
    [
        "SRAM",
        {
            name: "SRAM",
            base: 0x050000,
            len: 0x7b0000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:59 GMT


module ti.platforms.evm5515.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evm5515;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evm5515.
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.xs) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evm5515",
    41            boardFamily:    "evm5515",
    42            boardRevision:  null
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      100.0,
    48            catalogName:    "ti.catalog.c5500",
    49            deviceName:     "TMS320C5515",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override readonly config xdc.platform.IPlatform.MemoryMap
    56            externalMemoryMap = [
    57                ["NOR",   {name: "NOR",  base: 0x800000,   len: 0x400000}],
    58                ["NAND",  {name: "NAND", base: 0xe00000,   len: 0x100000}],
    59                ["SRAM",  {name: "SRAM", base: 0x050000,   len: 0x7b0000}]
    60            ];
    61
    62        override config string codeMemory = "SARAM";
    63
    64        override config string dataMemory = "DARAM";
    65
    66        override config string stackMemory = "DARAM";
    67    };
    68    /*
    69     *  @(#) ti.platforms.evm5515; 1, 0, 0,98; 8-17-2012 22:14:28; /db/ztree/library/trees/platform/platform-n27x/src/
    70     */
    71


package ti.platforms.evm5517
index URL

Platform package for the EVM5517 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm5517 platform.
XDCspec declarations sourced in ti/platforms/evm5517/package.xdc
package ti.platforms.evm5517 [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:17:59 GMT


package ti.platforms.evm5517

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ti.platforms.evm5517 ========
    15     *  Platform package for the EVM5517 platform.
    16     *
    17     *  This package implements the interfaces (xdc.platform.IPlatform)
    18     *  necessary to build and run executables on the evm5517 platform.
    19     */
    20    package ti.platforms.evm5517 [1,0,0] {
    21    }
    22    /*
    23     *  @(#) ti.platforms.evm5517; 1, 0, 0,0; 8-17-2012 22:14:28; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


package ti.platforms.evm5525
index URL

Platform package for the EVM5525 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm5525 platform.
XDCspec declarations sourced in ti/platforms/evm5525/package.xdc
package ti.platforms.evm5525 [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:17:59 GMT


package ti.platforms.evm5525

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ti.platforms.evm5525 ========
    15     *  Platform package for the EVM5525 platform.
    16     *
    17     *  This package implements the interfaces (xdc.platform.IPlatform)
    18     *  necessary to build and run executables on the evm5525 platform.
    19     */
    20    package ti.platforms.evm5525 [1,0,0] {
    21    }
    22    /*
    23     *  @(#) ti.platforms.evm5525; 1, 0, 0,30; 8-17-2012 22:14:29; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


package ti.platforms.evm6424
index URL

Platform package for the evm6424 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6424 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6424/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6424 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the evm6424
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6424 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6424.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:17:59 GMT


package ti.platforms.evm6424

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evm6424 ========
    23     *  Platform package for the evm6424 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evm6424 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evm6424.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evm6424 [1,0,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evm6424; 1, 0, 0, 0,333; 8-17-2012 22:14:32; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evm6424.Platform

metaonly module ti.platforms.evm6424.Platform
index URL

Platform support for the evm6424

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm6424/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6424.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6424",
        boardFamily: "evm6424",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 594,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6424",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x08000000
                }
            ],
            [
                "SRAM",
                {
                    name: "SRAM",
                    base: 0x42000000,
                    len: 0x00200000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6424",
    boardFamily: "evm6424",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 594,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6424",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x08000000
            }
        ],
        [
            "SRAM",
            {
                name: "SRAM",
                base: 0x42000000,
                len: 0x00200000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x08000000
        }
    ],
    [
        "SRAM",
        {
            name: "SRAM",
            base: 0x42000000,
            len: 0x00200000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:17:59 GMT


module ti.platforms.evm6424.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm6424
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evm6424",
    40            boardFamily:    "evm6424",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      594,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C6424",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        /*
    55         *  ======== memTab ========
    56         *  Define the evm6424 memory map
    57         */
    58        override readonly config xdc.platform.IPlatform.Memory
    59            externalMemoryMap[string] = [
    60                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x08000000}],
    61                ["SRAM", {name: "SRAM", base: 0x42000000, len: 0x00200000}],
    62            ];
    63
    64        override config string codeMemory = "DDR2";
    65
    66        override config string dataMemory = "DDR2";
    67
    68        override config string stackMemory = "DDR2";
    69
    70        /*
    71         *  ======== l1PMode ========
    72         *  Define the amount of L1P RAM used for L1 Program Cache.
    73         *
    74         *  Check the device documentation for valid values.
    75         */
    76        config String l1PMode = "32k";
    77
    78        /*
    79         *  ======== l1DMode ========
    80         *  Define the amount of L1D RAM used for L1 Data Cache.
    81         *
    82         *  Check the device documentation for valid values.
    83         */
    84        config String l1DMode = "32k";
    85
    86        /*
    87         *  ======== l2Mode ========
    88         *  Define the amount of L2 RAM used for L2 Cache.
    89         *
    90         *  Check the device documentation for valid values.
    91         */
    92        config String l2Mode = "0k";
    93    };
    94    /*
    95     *  @(#) ti.platforms.evm6424; 1, 0, 0, 0,333; 8-17-2012 22:14:32; /db/ztree/library/trees/platform/platform-n27x/src/
    96     */
    97


package ti.platforms.evm6452
index URL

Platform package for the evm6452 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6452 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6452/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6452 [1, 0, 1] {
    module Platform;
    // Platform support for the evm6452
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6452 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6452.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:00 GMT


package ti.platforms.evm6452

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evm6452 ========
    23     *  Platform package for the evm6452 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evm6452 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evm6452.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evm6452 [1,0,1] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evm6452; 1, 0, 1,324; 8-17-2012 22:14:33; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evm6452.Platform

metaonly module ti.platforms.evm6452.Platform
index URL

Platform support for the evm6452

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm6452/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6452.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6452",
        boardFamily: "evm6452",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 891,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6452",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0xE0000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6452",
    boardFamily: "evm6452",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 891,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6452",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0xE0000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0xE0000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:00 GMT


module ti.platforms.evm6452.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm6452
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evm6452",
    40            boardFamily:    "evm6452",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      891,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C6452",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0xE0000000, len: 0x10000000}],
    57            ];
    58
    59        override config string codeMemory = "DDR2";
    60
    61        override config string dataMemory = "DDR2";
    62
    63        override config string stackMemory = "DDR2";
    64
    65        /*
    66         *  ======== l1PMode ========
    67         *  Define the amount of L1P RAM used for L1 Program Cache.
    68         *
    69         *  Check the device documentation for valid values.
    70         */
    71        config String l1PMode = "32k";
    72
    73        /*
    74         *  ======== l1DMode ========
    75         *  Define the amount of L1D RAM used for L1 Data Cache.
    76         *
    77         *  Check the device documentation for valid values.
    78         */
    79        config String l1DMode = "32k";
    80
    81        /*
    82         *  ======== l2Mode ========
    83         *  Define the amount of L2 RAM used for L2 Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l2Mode = "0k";
    88
    89    };
    90    /*
    91     *  @(#) ti.platforms.evm6452; 1, 0, 1,324; 8-17-2012 22:14:33; /db/ztree/library/trees/platform/platform-n27x/src/
    92     */
    93


package ti.platforms.evm6457
index URL

Platform package for the evm6457 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6457 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6457/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6457 [1, 0, 0] {
    module Platform;
    // Platform support for the evm6457
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6457 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6457.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:00 GMT


package ti.platforms.evm6457

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evm6457 ========
    23     *  Platform package for the evm6457 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evm6457 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evm6457.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evm6457 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evm6457; 1, 0, 0,203; 8-17-2012 22:14:36; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evm6457.Platform

metaonly module ti.platforms.evm6457.Platform
index URL

Platform support for the evm6457

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm6457/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6457.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6457",
        boardFamily: "evm6457",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6457",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0xe0000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6457",
    boardFamily: "evm6457",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6457",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0xe0000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0xe0000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:00 GMT


module ti.platforms.evm6457.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm6457
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evm6457",
    40            boardFamily:    "evm6457",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      1000.0,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C6457",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0xe0000000, len: 0x10000000}],
    57            ];
    58        override config string codeMemory = "DDR2";
    59
    60        override config string dataMemory = "DDR2";
    61
    62        override config string stackMemory = "DDR2";
    63
    64        /*
    65         *  ======== l1PMode ========
    66         *  Define the amount of L1P RAM used for L1 Program Cache.
    67         *
    68         *  Check the device documentation for valid values.
    69         */
    70        config String l1PMode = "32k";
    71
    72        /*
    73         *  ======== l1DMode ========
    74         *  Define the amount of L1D RAM used for L1 Data Cache.
    75         *
    76         *  Check the device documentation for valid values.
    77         */
    78        config String l1DMode = "32k";
    79
    80        /*
    81         *  ======== l2Mode ========
    82         *  Define the amount of L2 RAM used for L2 Cache.
    83         *
    84         *  Check the device documentation for valid values.
    85         */
    86        config String l2Mode = "0k";
    87    };
    88    /*
    89     *  @(#) ti.platforms.evm6457; 1, 0, 0,203; 8-17-2012 22:14:36; /db/ztree/library/trees/platform/platform-n27x/src/
    90     */
    91


package ti.platforms.evm6472
index URL

Platform package for the evm6472 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6472 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6472/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6472 [1, 0, 0] {
    module Platform;
    // Platform support for the evm6472
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6472 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6472.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:03 GMT


package ti.platforms.evm6472

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evm6472 ========
    23     *  Platform package for the evm6472 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evm6472 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evm6472.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evm6472 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evm6472; 1, 0, 0,112; 8-17-2012 22:14:39; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evm6472.Platform

metaonly module ti.platforms.evm6472.Platform
index URL

Platform support for the evm6472

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm6472/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6472.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6472",
        boardFamily: "evm6472",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 700,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6472",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "LL2RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "LL2RAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0xe0000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "LL2RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6472",
    boardFamily: "evm6472",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 700,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6472",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "LL2RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "LL2RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0xe0000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "LL2RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "LL2RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "LL2RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0xe0000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "LL2RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:03 GMT


module ti.platforms.evm6472.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm6472
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evm6472",
    40            boardFamily:    "evm6472",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      700,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C6472",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0xe0000000, len: 0x10000000}],
    57            ];
    58
    59        override config string codeMemory = "LL2RAM";
    60
    61        override config string dataMemory = "LL2RAM";
    62
    63        override config string stackMemory = "LL2RAM";
    64
    65        /*
    66         *  ======== l1PMode ========
    67         *  Define the amount of L1P RAM used for L1 Program Cache.
    68         *
    69         *  Check the device documentation for valid values.
    70         */
    71        config String l1PMode = "32k";
    72
    73        /*
    74         *  ======== l1DMode ========
    75         *  Define the amount of L1D RAM used for L1 Data Cache.
    76         *
    77         *  Check the device documentation for valid values.
    78         */
    79        config String l1DMode = "32k";
    80
    81        /*
    82         *  ======== l2Mode ========
    83         *  Define the amount of L2 RAM used for L2 Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l2Mode = "0k";
    88    };
    89    /*
    90     *  @(#) ti.platforms.evm6472; 1, 0, 0,112; 8-17-2012 22:14:38; /db/ztree/library/trees/platform/platform-n27x/src/
    91     */
    92


package ti.platforms.evm6474
index URL

Platform package for the evm6474 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6474 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6474/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6474 [1, 0, 0] {
    module Platform;
    // Platform support for the evm6474
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6474 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6474.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:00 GMT


package ti.platforms.evm6474

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evm6474 ========
    23     *  Platform package for the evm6474 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evm6474 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evm6474.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evm6474 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evm6474; 1, 0, 0,171; 8-17-2012 22:14:41; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evm6474.Platform

metaonly module ti.platforms.evm6474.Platform
index URL

Platform support for the evm6474

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm6474/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6474.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6474",
        boardFamily: "evm6474",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1044,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6474",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x08000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6474",
    boardFamily: "evm6474",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1044,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6474",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x08000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x08000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:00 GMT


module ti.platforms.evm6474.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm6474
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evm6474",
    40            boardFamily:    "evm6474",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      1044,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C6474",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x08000000}],
    57            ];
    58
    59        override config string codeMemory = "DDR2";
    60
    61        override config string dataMemory = "DDR2";
    62
    63        override config string stackMemory = "DDR2";
    64
    65        /*
    66         *  ======== l1PMode ========
    67         *  Define the amount of L1P RAM used for L1 Program Cache.
    68         *
    69         *  Check the device documentation for valid values.
    70         */
    71        config String l1PMode = "32k";
    72
    73        /*
    74         *  ======== l1DMode ========
    75         *  Define the amount of L1D RAM used for L1 Data Cache.
    76         *
    77         *  Check the device documentation for valid values.
    78         */
    79        config String l1DMode = "32k";
    80
    81        /*
    82         *  ======== l2Mode ========
    83         *  Define the amount of L2 RAM used for L2 Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l2Mode = "0k";
    88    };
    89    /*
    90     *  @(#) ti.platforms.evm6474; 1, 0, 0,171; 8-17-2012 22:14:41; /db/ztree/library/trees/platform/platform-n27x/src/
    91     */
    92


package ti.platforms.evm6614
index URL

Platform package for the 6614 EVM

XDCspec declarations sourced in ti/platforms/evm6614/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6614 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the evm6614 Appleton
}
generated on Thu, 08 Nov 2012 02:18:01 GMT


package ti.platforms.evm6614

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evm6614 ========
    23     *  Platform package for the 6614 EVM.
    24     */
    25    package ti.platforms.evm6614 [1,0,0,0] {
    26        module Platform;
    27    }
    28    /*
    29     *  @(#) ti.platforms.evm6614; 1, 0, 0, 0,13; 8-17-2012 22:14:42; /db/ztree/library/trees/platform/platform-n27x/src/
    30     */
    31


module ti.platforms.evm6614.Platform

metaonly module ti.platforms.evm6614.Platform
index URL

Platform support for the evm6614 Appleton

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/evm6614/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6614.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6614",
        boardFamily: "evm6614",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320TCI6614",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L2SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L2SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3",
                {
                    name: "DDR3",
                    base: 0xA0000000,
                    len: 0x20000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L2SRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6614",
    boardFamily: "evm6614",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320TCI6614",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L2SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L2SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3",
            {
                name: "DDR3",
                base: 0xA0000000,
                len: 0x20000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L2SRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3",
        {
            name: "DDR3",
            base: 0xA0000000,
            len: 0x20000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:01 GMT


module ti.platforms.evm6614.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm6614 Appleton
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        readonly config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "evm6614",
    27            boardFamily:    "evm6614",
    28            boardRevision:  null,
    29        };
    30
    31        readonly config xdc.platform.IExeContext.Cpu CPU = {
    32            id:             "0",
    33            clockRate:      1000,
    34            catalogName:    "ti.catalog.c6000",
    35            deviceName:     "TMS320TCI6614",
    36            revision:       "1.0",
    37        };
    38
    39    instance:
    40
    41        override readonly config xdc.platform.IPlatform.Memory
    42            externalMemoryMap[string] = [
    43                ["DDR3", {name: "DDR3", base: 0xA0000000, len: 0x20000000}],
    44        ];
    45
    46        override config string codeMemory  = "L2SRAM";
    47        override config string dataMemory  = "L2SRAM";
    48        override config string stackMemory = "L2SRAM";
    49
    50        /*
    51         *  ======== l1PMode ========
    52         *  Define the amount of L1P RAM used for L1 Program Cache.
    53         *
    54         *  Check the device documentation for valid values.
    55         */
    56        config String l1PMode = "32k";
    57
    58        /*
    59         *  ======== l1DMode ========
    60         *  Define the amount of L1D RAM used for L1 Data Cache.
    61         *
    62         *  Check the device documentation for valid values.
    63         */
    64        config String l1DMode = "32k";
    65
    66        /*
    67         *  ======== l2Mode ========
    68         *  Define the amount of L2 RAM used for L2 Cache.
    69         *
    70         *  Check the device documentation for valid values.
    71         */
    72        config String l2Mode = "0k";
    73    };
    74    /*
    75     *  @(#) ti.platforms.evm6614; 1, 0, 0, 0,13; 8-17-2012 22:14:42; /db/ztree/library/trees/platform/platform-n27x/src/
    76     */
    77


package ti.platforms.evm6657
index URL

Platform package for the 6657 EVM

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6657/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6657 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the evm6657
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform)
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6657.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:01 GMT


package ti.platforms.evm6657

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evm6657 ========
    23     *  Platform package for the 6657 EVM.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *
    27     *  @a(Throws)
    28     *  `XDCException` exceptions are thrown for fatal errors. The following error
    29     *  codes are reported in the exception message:
    30     *  @p(dlist)
    31     *      -  `ti.platfoms.evm6657.LINK_TEMPLATE_ERROR`
    32     *           This error is raised when this platform cannot found the default
    33     *           linker command template `linkcmd.xdt` in the build target's
    34     *           package. When a target does not contain this file, the config
    35     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    36     *  @p
    37     */
    38    package ti.platforms.evm6657 [1,0,0,0] {
    39        module Platform;
    40    }
    41    /*
    42     *  @(#) ti.platforms.evm6657; 1, 0, 0, 0,17; 8-17-2012 22:14:44; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.platforms.evm6657.Platform

metaonly module ti.platforms.evm6657.Platform
index URL

Platform support for the evm6657

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/evm6657/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6657.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6657",
        boardFamily: "evm6657",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6657",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L2SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L2SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3",
                {
                    name: "DDR3",
                    base: 0x80000000,
                    len: 0x20000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L2SRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6657",
    boardFamily: "evm6657",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6657",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L2SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L2SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3",
            {
                name: "DDR3",
                base: 0x80000000,
                len: 0x20000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L2SRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3",
        {
            name: "DDR3",
            base: 0x80000000,
            len: 0x20000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:01 GMT


module ti.platforms.evm6657.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm6657
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        readonly config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "evm6657",
    27            boardFamily:    "evm6657",
    28            boardRevision:  null,
    29        };
    30
    31        readonly config xdc.platform.IExeContext.Cpu CPU = {
    32            id:             "0",
    33            clockRate:      1000,
    34            catalogName:    "ti.catalog.c6000",
    35            deviceName:     "TMS320C6657",
    36            revision:       "1.0",
    37        };
    38
    39    instance:
    40
    41        override readonly config xdc.platform.IPlatform.Memory
    42            externalMemoryMap[string] = [
    43                ["DDR3", {name: "DDR3", base: 0x80000000, len: 0x20000000}],
    44        ];
    45
    46        override config string codeMemory  = "L2SRAM";
    47        override config string dataMemory  = "L2SRAM";
    48        override config string stackMemory = "L2SRAM";
    49
    50        /*
    51         *  ======== l1PMode ========
    52         *  Define the amount of L1P RAM used for L1 Program Cache.
    53         *
    54         *  Check the device documentation for valid values.
    55         */
    56        config String l1PMode = "32k";
    57
    58        /*
    59         *  ======== l1DMode ========
    60         *  Define the amount of L1D RAM used for L1 Data Cache.
    61         *
    62         *  Check the device documentation for valid values.
    63         */
    64        config String l1DMode = "32k";
    65
    66        /*
    67         *  ======== l2Mode ========
    68         *  Define the amount of L2 RAM used for L2 Cache.
    69         *
    70         *  Check the device documentation for valid values.
    71         */
    72        config String l2Mode = "0k";
    73    };
    74    /*
    75     *  @(#) ti.platforms.evm6657; 1, 0, 0, 0,17; 8-17-2012 22:14:44; /db/ztree/library/trees/platform/platform-n27x/src/
    76     */
    77


package ti.platforms.evm6670
index URL

Platform package for the 6670 EVM

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6670/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6670 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the evm6670
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform)
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6670.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:01 GMT


package ti.platforms.evm6670

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evm6670 ========
    23     *  Platform package for the 6670 EVM.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *
    27     *  @a(Throws)
    28     *  `XDCException` exceptions are thrown for fatal errors. The following error
    29     *  codes are reported in the exception message:
    30     *  @p(dlist)
    31     *      -  `ti.platfoms.evm6670.LINK_TEMPLATE_ERROR`
    32     *           This error is raised when this platform cannot found the default
    33     *           linker command template `linkcmd.xdt` in the build target's
    34     *           package. When a target does not contain this file, the config
    35     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    36     *  @p
    37     */
    38    package ti.platforms.evm6670 [1,0,0,0] {
    39        module Platform;
    40    }
    41    /*
    42     *  @(#) ti.platforms.evm6670; 1, 0, 0, 0,66; 8-17-2012 22:14:46; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.platforms.evm6670.Platform

metaonly module ti.platforms.evm6670.Platform
index URL

Platform support for the evm6670

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/evm6670/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6670.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6670",
        boardFamily: "evm6670",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6670",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L2SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L2SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3",
                {
                    name: "DDR3",
                    base: 0x80000000,
                    len: 0x20000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L2SRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6670",
    boardFamily: "evm6670",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6670",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L2SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L2SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3",
            {
                name: "DDR3",
                base: 0x80000000,
                len: 0x20000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L2SRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3",
        {
            name: "DDR3",
            base: 0x80000000,
            len: 0x20000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:01 GMT


module ti.platforms.evm6670.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm6670
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        readonly config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "evm6670",
    27            boardFamily:    "evm6670",
    28            boardRevision:  null,
    29        };
    30
    31        readonly config xdc.platform.IExeContext.Cpu CPU = {
    32            id:             "0",
    33            clockRate:      1000,
    34            catalogName:    "ti.catalog.c6000",
    35            deviceName:     "TMS320C6670",
    36            revision:       "1.0",
    37        };
    38
    39    instance:
    40
    41        override readonly config xdc.platform.IPlatform.Memory
    42            externalMemoryMap[string] = [
    43                ["DDR3", {name: "DDR3", base: 0x80000000, len: 0x20000000}],
    44        ];
    45
    46        override config string codeMemory  = "L2SRAM";
    47        override config string dataMemory  = "L2SRAM";
    48        override config string stackMemory = "L2SRAM";
    49
    50        /*
    51         *  ======== l1PMode ========
    52         *  Define the amount of L1P RAM used for L1 Program Cache.
    53         *
    54         *  Check the device documentation for valid values.
    55         */
    56        config String l1PMode = "32k";
    57
    58        /*
    59         *  ======== l1DMode ========
    60         *  Define the amount of L1D RAM used for L1 Data Cache.
    61         *
    62         *  Check the device documentation for valid values.
    63         */
    64        config String l1DMode = "32k";
    65
    66        /*
    67         *  ======== l2Mode ========
    68         *  Define the amount of L2 RAM used for L2 Cache.
    69         *
    70         *  Check the device documentation for valid values.
    71         */
    72        config String l2Mode = "0k";
    73    };
    74    /*
    75     *  @(#) ti.platforms.evm6670; 1, 0, 0, 0,66; 8-17-2012 22:14:46; /db/ztree/library/trees/platform/platform-n27x/src/
    76     */
    77


package ti.platforms.evm6678
index URL

Platform package for the 6678 EVM

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6678/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6678 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the evm6678
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform)
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6678.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:02 GMT


package ti.platforms.evm6678

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evm6678 ========
    23     *  Platform package for the 6678 EVM.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *
    27     *  @a(Throws)
    28     *  `XDCException` exceptions are thrown for fatal errors. The following error
    29     *  codes are reported in the exception message:
    30     *  @p(dlist)
    31     *      -  `ti.platfoms.evm6678.LINK_TEMPLATE_ERROR`
    32     *           This error is raised when this platform cannot found the default
    33     *           linker command template `linkcmd.xdt` in the build target's
    34     *           package. When a target does not contain this file, the config
    35     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    36     *  @p
    37     */
    38    package ti.platforms.evm6678 [1,0,0,0] {
    39        module Platform;
    40    }
    41    /*
    42     *  @(#) ti.platforms.evm6678; 1, 0, 0, 0,66; 8-17-2012 22:14:49; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.platforms.evm6678.Platform

metaonly module ti.platforms.evm6678.Platform
index URL

Platform support for the evm6678

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/evm6678/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6678.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6678",
        boardFamily: "evm6678",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6678",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L2SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L2SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3",
                {
                    name: "DDR3",
                    base: 0x80000000,
                    len: 0x20000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L2SRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6678",
    boardFamily: "evm6678",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6678",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L2SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L2SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3",
            {
                name: "DDR3",
                base: 0x80000000,
                len: 0x20000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L2SRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3",
        {
            name: "DDR3",
            base: 0x80000000,
            len: 0x20000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:02 GMT


module ti.platforms.evm6678.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evm6678
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        readonly config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "evm6678",
    27            boardFamily:    "evm6678",
    28            boardRevision:  null,
    29        };
    30
    31        readonly config xdc.platform.IExeContext.Cpu CPU = {
    32            id:             "0",
    33            clockRate:      1000,
    34            catalogName:    "ti.catalog.c6000",
    35            deviceName:     "TMS320C6678",
    36            revision:       "1.0",
    37        };
    38
    39    instance:
    40
    41        override readonly config xdc.platform.IPlatform.Memory
    42            externalMemoryMap[string] = [
    43                ["DDR3", {name: "DDR3", base: 0x80000000, len: 0x20000000}],
    44        ];
    45
    46        override config string codeMemory  = "L2SRAM";
    47        override config string dataMemory  = "L2SRAM";
    48        override config string stackMemory = "L2SRAM";
    49
    50        /*
    51         *  ======== l1PMode ========
    52         *  Define the amount of L1P RAM used for L1 Program Cache.
    53         *
    54         *  Check the device documentation for valid values.
    55         */
    56        config String l1PMode = "32k";
    57
    58        /*
    59         *  ======== l1DMode ========
    60         *  Define the amount of L1D RAM used for L1 Data Cache.
    61         *
    62         *  Check the device documentation for valid values.
    63         */
    64        config String l1DMode = "32k";
    65
    66        /*
    67         *  ======== l2Mode ========
    68         *  Define the amount of L2 RAM used for L2 Cache.
    69         *
    70         *  Check the device documentation for valid values.
    71         */
    72        config String l2Mode = "0k";
    73    };
    74    /*
    75     *  @(#) ti.platforms.evm6678; 1, 0, 0, 0,66; 8-17-2012 22:14:48; /db/ztree/library/trees/platform/platform-n27x/src/
    76     */
    77


package ti.platforms.evm6747
index URL

Platform package for the evm6747 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6747 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6747/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6747 [1, 0, 0] {
    module Platform;
    // Platform support for the evm6747
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6747 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6747.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:02 GMT


package ti.platforms.evm6747

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evm6747 ========
    18     *  Platform package for the evm6747 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evm6747 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evm6747.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evm6747 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evm6747; 1, 0, 0,238; 8-17-2012 22:14:52; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evm6747.Platform

metaonly module ti.platforms.evm6747.Platform
index URL

Platform support for the evm6747

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm6747/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6747.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6747",
        boardFamily: "evm6747",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 300.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6747",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SDRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0xC0000000,
                    len: 0x04000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6747",
    boardFamily: "evm6747",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 300.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6747",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SDRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0xC0000000,
                len: 0x04000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0xC0000000,
            len: 0x04000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:02 GMT


module ti.platforms.evm6747.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evm6747;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evm6747
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evm6747",
    41            boardFamily:    "evm6747",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      300.0,
    48            catalogName:    "ti.catalog.c6000",
    49            deviceName:     "TMS320C6747",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override readonly config xdc.platform.IPlatform.Memory
    56            externalMemoryMap[string] = [
    57                ["SDRAM",  {name: "SDRAM",  base: 0xC0000000, len: 0x04000000}],
    58            ];
    59
    60        /*
    61         *  ======== sectMap ========
    62         *  Define a placement of compiler generated output sections into
    63         *  memory regions defined in the memTab above.
    64         */
    65        override config string codeMemory = "SDRAM";
    66
    67        override config string dataMemory = "SDRAM";
    68
    69        override config string stackMemory = "SDRAM";
    70
    71        /*
    72         *  ======== l1PMode ========
    73         *  Define the amount of L1P RAM used for L1 Program Cache.
    74         *
    75         *  Check the device documentation for valid values.
    76         */
    77        config String l1PMode = "32k";
    78
    79        /*
    80         *  ======== l1DMode ========
    81         *  Define the amount of L1D RAM used for L1 Data Cache.
    82         *
    83         *  Check the device documentation for valid values.
    84         */
    85        config String l1DMode = "32k";
    86
    87        /*
    88         *  ======== l2Mode ========
    89         *  Define the amount of L2 RAM used for L2 Cache.
    90         *
    91         *  Check the device documentation for valid values.
    92         */
    93        config String l2Mode = "0k";
    94    };
    95    /*
    96     *  @(#) ti.platforms.evm6747; 1, 0, 0,238; 8-17-2012 22:14:52; /db/ztree/library/trees/platform/platform-n27x/src/
    97     */
    98


package ti.platforms.evm6748
index URL

Platform package for the evm6748 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6748 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evm6748/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evm6748 [1, 0, 0] {
    module Platform;
    // Platform support for the evm6748
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evm6748 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evm6748.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:03 GMT


package ti.platforms.evm6748

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evm6748 ========
    18     *  Platform package for the evm6748 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evm6748 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evm6748.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evm6748 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evm6748; 1, 0, 0,194; 8-17-2012 22:14:53; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evm6748.Platform

metaonly module ti.platforms.evm6748.Platform
index URL

Platform support for the evm6748

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evm6748/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evm6748.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evm6748",
        boardFamily: "evm6748",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 300.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6748",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR",
                {
                    name: "DDR",
                    base: 0xC0000000,
                    len: 0x08000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evm6748",
    boardFamily: "evm6748",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 300.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6748",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR",
            {
                name: "DDR",
                base: 0xC0000000,
                len: 0x08000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR",
        {
            name: "DDR",
            base: 0xC0000000,
            len: 0x08000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:02 GMT


module ti.platforms.evm6748.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evm6748;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evm6748
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evm6748",
    41            boardFamily:    "evm6748",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      300.0,
    48            catalogName:    "ti.catalog.c6000",
    49            deviceName:     "TMS320C6748",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override readonly config xdc.platform.IPlatform.Memory
    56            externalMemoryMap[string] = [
    57                ["DDR",  {name: "DDR",  base: 0xC0000000, len: 0x08000000}],
    58            ];
    59
    60        /*
    61         *  ======== sectMap ========
    62         *  Define a placement of compiler generated output sections into
    63         *  memory regions defined in the memTab above.
    64         */
    65        override config string codeMemory = "DDR";
    66
    67        override config string dataMemory = "DDR";
    68
    69        override config string stackMemory = "DDR";
    70
    71        /*
    72         *  ======== l1PMode ========
    73         *  Define the amount of L1P RAM used for L1 Program Cache.
    74         *
    75         *  Check the device documentation for valid values.
    76         */
    77        config String l1PMode = "32k";
    78
    79        /*
    80         *  ======== l1DMode ========
    81         *  Define the amount of L1D RAM used for L1 Data Cache.
    82         *
    83         *  Check the device documentation for valid values.
    84         */
    85        config String l1DMode = "32k";
    86
    87        /*
    88         *  ======== l2Mode ========
    89         *  Define the amount of L2 RAM used for L2 Cache.
    90         *
    91         *  Check the device documentation for valid values.
    92         */
    93        config String l2Mode = "0k";
    94
    95    };
    96    /*
    97     *  @(#) ti.platforms.evm6748; 1, 0, 0,194; 8-17-2012 22:14:53; /db/ztree/library/trees/platform/platform-n27x/src/
    98     */
    99


package ti.platforms.evmAM3359
index URL

Platform package for the evmAM3359 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmAM3359 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmAM3359/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmAM3359 [1, 0, 0] {
    module Platform;
    // Platform support for the evmAM3359
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmAM3359 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmAM3359.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:03 GMT


package ti.platforms.evmAM3359

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evmAM3359 ========
    24     *  Platform package for the evmAM3359 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evmAM3359 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evmAM3359.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evmAM3359 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evmAM3359; 1, 0, 0,31; 8-17-2012 22:14:56; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evmAM3359.Platform

metaonly module ti.platforms.evmAM3359.Platform
index URL

Platform support for the evmAM3359

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmAM3359/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmAM3359.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmAM3359",
        boardFamily: "evmAM3359",
        boardRevision: null
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 550.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "AM3359",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3",
                {
                    comment: "DDR3 Memory",
                    name: "DDR3",
                    base: 0x80000000,
                    len: 0x04000000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmAM3359",
    boardFamily: "evmAM3359",
    boardRevision: null
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 550.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "AM3359",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3",
            {
                comment: "DDR3 Memory",
                name: "DDR3",
                base: 0x80000000,
                len: 0x04000000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3",
        {
            comment: "DDR3 Memory",
            name: "DDR3",
            base: 0x80000000,
            len: 0x04000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:03 GMT


module ti.platforms.evmAM3359.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmAM3359
    16     *
    17     */
    18
    19    package ti.platforms.evmAM3359;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmAM3359
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        readonly config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "evmAM3359",
    39            boardFamily:    "evmAM3359",
    40            boardRevision:  null
    41        };
    42
    43        /* GPP */
    44        readonly config xdc.platform.IExeContext.Cpu GPP = {
    45            id:             "2",
    46            clockRate:      550.0,  /* Typically set by the HLOS */
    47            catalogName:    "ti.catalog.arm.cortexa8",
    48            deviceName:     "AM3359",
    49            revision:       "1.0"
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR3", {
    57                    comment: "DDR3 Memory",
    58                    name: "DDR3",
    59                    base: 0x80000000,
    60                    len:  0x04000000    /* 64 MB */
    61                }],
    62            ];
    63    };
    64    /*
    65     *  @(#) ti.platforms.evmAM3359; 1, 0, 0,31; 8-17-2012 22:14:56; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


package ti.platforms.evmAM3505
index URL

Platform package for the evmAM3505 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmAM3505 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmAM3505/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmAM3505 [1, 0, 0] {
    module Platform;
    // Platform support for the evmAM3505
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmAM3505 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmAM3505.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:04 GMT


package ti.platforms.evmAM3505

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evmAM3505 ========
    24     *  Platform package for the evmAM3505 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evmAM3505 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evmAM3505.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evmAM3505 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evmAM3505; 1, 0, 0,19; 8-17-2012 22:14:57; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evmAM3505.Platform

metaonly module ti.platforms.evmAM3505.Platform
index URL

Platform support for the evmAM3505

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmAM3505/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmAM3505.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmAM3505",
        boardFamily: "evmAM3505",
        boardRevision: null
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 600.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "AM3505",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3",
                {
                    comment: "DDR3 Memory",
                    name: "DDR3",
                    base: 0x80000000,
                    len: 0x04000000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmAM3505",
    boardFamily: "evmAM3505",
    boardRevision: null
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 600.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "AM3505",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3",
            {
                comment: "DDR3 Memory",
                name: "DDR3",
                base: 0x80000000,
                len: 0x04000000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3",
        {
            comment: "DDR3 Memory",
            name: "DDR3",
            base: 0x80000000,
            len: 0x04000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:04 GMT


module ti.platforms.evmAM3505.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmAM3505
    16     *
    17     */
    18
    19    package ti.platforms.evmAM3505;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmAM3505
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        readonly config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "evmAM3505",
    39            boardFamily:    "evmAM3505",
    40            boardRevision:  null
    41        };
    42
    43        /* GPP */
    44        readonly config xdc.platform.IExeContext.Cpu GPP = {
    45            id:             "2",
    46            clockRate:      600.0,  /* Typically set by the HLOS */
    47            catalogName:    "ti.catalog.arm.cortexa8",
    48            deviceName:     "AM3505",
    49            revision:       "1.0"
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR3", {
    57                    comment: "DDR3 Memory",
    58                    name: "DDR3",
    59                    base: 0x80000000,
    60                    len:  0x04000000    /* 64 MB */
    61                }],
    62            ];
    63    };
    64    /*
    65     *  @(#) ti.platforms.evmAM3505; 1, 0, 0,19; 8-17-2012 22:14:57; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


package ti.platforms.evmAM3517
index URL

Platform package for the evmAM3517 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmAM3517 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmAM3517/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmAM3517 [1, 0, 0] {
    module Platform;
    // Platform support for the evmAM3517
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmAM3517 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmAM3517.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:04 GMT


package ti.platforms.evmAM3517

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evmAM3517 ========
    24     *  Platform package for the evmAM3517 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evmAM3517 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evmAM3517.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evmAM3517 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evmAM3517; 1, 0, 0,19; 8-17-2012 22:15:00; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evmAM3517.Platform

metaonly module ti.platforms.evmAM3517.Platform
index URL

Platform support for the evmAM3517

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmAM3517/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmAM3517.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmAM3517",
        boardFamily: "evmAM3517",
        boardRevision: null
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 600.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "AM3517",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3",
                {
                    comment: "DDR3 Memory",
                    name: "DDR3",
                    base: 0x80000000,
                    len: 0x04000000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmAM3517",
    boardFamily: "evmAM3517",
    boardRevision: null
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 600.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "AM3517",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3",
            {
                comment: "DDR3 Memory",
                name: "DDR3",
                base: 0x80000000,
                len: 0x04000000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3",
        {
            comment: "DDR3 Memory",
            name: "DDR3",
            base: 0x80000000,
            len: 0x04000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:04 GMT


module ti.platforms.evmAM3517.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmAM3517
    16     *
    17     */
    18
    19    package ti.platforms.evmAM3517;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmAM3517
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        readonly config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "evmAM3517",
    39            boardFamily:    "evmAM3517",
    40            boardRevision:  null
    41        };
    42
    43        /* GPP */
    44        readonly config xdc.platform.IExeContext.Cpu GPP = {
    45            id:             "2",
    46            clockRate:      600.0,  /* Typically set by the HLOS */
    47            catalogName:    "ti.catalog.arm.cortexa8",
    48            deviceName:     "AM3517",
    49            revision:       "1.0"
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR3", {
    57                    comment: "DDR3 Memory",
    58                    name: "DDR3",
    59                    base: 0x80000000,
    60                    len:  0x04000000    /* 64 MB */
    61                }],
    62            ];
    63    };
    64    /*
    65     *  @(#) ti.platforms.evmAM3517; 1, 0, 0,19; 8-17-2012 22:15:00; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


package ti.platforms.evmC6A8149
index URL

Platform package for the evmC6A8149 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmC6A8149 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmC6A8149/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires ti.catalog.arp32;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmC6A8149 [1, 0, 0] {
    module Platform;
    // Platform support for the evmC6A8149
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmC6A8149 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmC6A8149.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:05 GMT


package ti.platforms.evmC6A8149

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires ti.catalog.arp32;
    21    requires xdc.platform [1,0,1];
    22
    23    /*!
    24     *  ======== ti.platforms.evmC6A8149 ========
    25     *  Platform package for the evmC6A8149 platform.
    26     *
    27     *  This package implements the interfaces (xdc.platform.IPlatform)
    28     *  necessary to build and run executables on the evmC6A8149 platform.
    29     *
    30     *  @a(Throws)
    31     *  `XDCException` exceptions are thrown for fatal errors. The following error
    32     *  codes are reported in the exception message:
    33     *  @p(dlist)
    34     *      -  `ti.platfoms.evmC6A8149.LINK_TEMPLATE_ERROR`
    35     *           This error is raised when this platform cannot found the default
    36     *           linker command template `linkcmd.xdt` in the build target's
    37     *           package. When a target does not contain this file, the config
    38     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    39     *  @p
    40     */
    41    package ti.platforms.evmC6A8149 [1,0,0] {
    42        module Platform;
    43    }
    44    /*
    45     *  @(#) ti.platforms.evmC6A8149; 1, 0, 0,10; 8-17-2012 22:15:02; /db/ztree/library/trees/platform/platform-n27x/src/
    46     */
    47


module ti.platforms.evmC6A8149.Platform

metaonly module ti.platforms.evmC6A8149.Platform
index URL

Platform support for the evmC6A8149

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmC6A8149/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmC6A8149.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmC6A8149",
        boardFamily: "evmC6A8149",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "2",
        clockRate: 200.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320C6A8149",
        revision: "1.0"
    };
    const Platform.EVE// = IExeContext.Cpu {
        id: "1",
        clockRate: 225.0,
        catalogName: "ti.catalog.arp32",
        deviceName: "TMS320C6A8149",
        revision: ""
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 500.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6A8149",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "3",
        clockRate: 600.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320C6A8149",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3_HOST",
                {
                    comment: "DDR3 Memory reserved for use by the A8",
                    name: "DDR3_HOST",
                    base: 0x80000000,
                    len: 0x0B000000
                }
            ],
            [
                "DDR3_DSP",
                {
                    comment: "DDR3 Memory reserved for use by the C674",
                    name: "DDR3_DSP",
                    base: 0x8B000000,
                    len: 0x02000000
                }
            ],
            [
                "DDR3_SR1",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
                    name: "DDR3_SR1",
                    base: 0x8D000000,
                    len: 0x00C00000
                }
            ],
            [
                "DDR3_HDVPSS",
                {
                    comment: "DDR3 Memory reserved for use by HDVPSS",
                    name: "DDR3_HDVPSS",
                    base: 0x8DC00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_V4L2",
                {
                    comment: "DDR3 Memory reserved for use by V4L2",
                    name: "DDR3_V4L2",
                    base: 0x8DE00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_SR0",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
                    name: "DDR3_SR0",
                    base: 0x8E000000,
                    len: 0x01000000
                }
            ],
            [
                "DDR3_M3",
                {
                    comment: "DDR3 Memory reserved for use by the M3 core",
                    name: "DDR3_M3",
                    base: 0x8F000000,
                    len: 0x01000000
                }
            ],
            [
                "DDR3_EVEVECS",
                {
                    comment: "DDR3 Memory reserved for use by the EVE int vectors",
                    name: "DDR3_EVEVECS",
                    base: 0x90000000,
                    len: 0x00000100
                }
            ],
            [
                "DDR3_EVE",
                {
                    comment: "DDR3 Memory reserved for use by the EVE",
                    name: "DDR3_EVE",
                    base: 0x90000100,
                    len: 0x00FFFF00
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C674 DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmC6A8149",
    boardFamily: "evmC6A8149",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "2",
    clockRate: 200.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "TMS320C6A8149",
    revision: "1.0"
};
config Platform.EVE // module-wide
index URL
XDCscript usage meta-domain
const Platform.EVE = IExeContext.Cpu {
    id: "1",
    clockRate: 225.0,
    catalogName: "ti.catalog.arp32",
    deviceName: "TMS320C6A8149",
    revision: ""
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 500.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6A8149",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "3",
    clockRate: 600.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320C6A8149",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3_HOST",
            {
                comment: "DDR3 Memory reserved for use by the A8",
                name: "DDR3_HOST",
                base: 0x80000000,
                len: 0x0B000000
            }
        ],
        [
            "DDR3_DSP",
            {
                comment: "DDR3 Memory reserved for use by the C674",
                name: "DDR3_DSP",
                base: 0x8B000000,
                len: 0x02000000
            }
        ],
        [
            "DDR3_SR1",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 1",
                name: "DDR3_SR1",
                base: 0x8D000000,
                len: 0x00C00000
            }
        ],
        [
            "DDR3_HDVPSS",
            {
                comment: "DDR3 Memory reserved for use by HDVPSS",
                name: "DDR3_HDVPSS",
                base: 0x8DC00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_V4L2",
            {
                comment: "DDR3 Memory reserved for use by V4L2",
                name: "DDR3_V4L2",
                base: 0x8DE00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_SR0",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 0",
                name: "DDR3_SR0",
                base: 0x8E000000,
                len: 0x01000000
            }
        ],
        [
            "DDR3_M3",
            {
                comment: "DDR3 Memory reserved for use by the M3 core",
                name: "DDR3_M3",
                base: 0x8F000000,
                len: 0x01000000
            }
        ],
        [
            "DDR3_EVEVECS",
            {
                comment: "DDR3 Memory reserved for use by the EVE int vectors",
                name: "DDR3_EVEVECS",
                base: 0x90000000,
                len: 0x00000100
            }
        ],
        [
            "DDR3_EVE",
            {
                comment: "DDR3 Memory reserved for use by the EVE",
                name: "DDR3_EVE",
                base: 0x90000100,
                len: 0x00FFFF00
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3_HOST",
        {
            comment: "DDR3 Memory reserved for use by the A8",
            name: "DDR3_HOST",
            base: 0x80000000,
            len: 0x0B000000
        }
    ],
    [
        "DDR3_DSP",
        {
            comment: "DDR3 Memory reserved for use by the C674",
            name: "DDR3_DSP",
            base: 0x8B000000,
            len: 0x02000000
        }
    ],
    [
        "DDR3_SR1",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 1",
            name: "DDR3_SR1",
            base: 0x8D000000,
            len: 0x00C00000
        }
    ],
    [
        "DDR3_HDVPSS",
        {
            comment: "DDR3 Memory reserved for use by HDVPSS",
            name: "DDR3_HDVPSS",
            base: 0x8DC00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_V4L2",
        {
            comment: "DDR3 Memory reserved for use by V4L2",
            name: "DDR3_V4L2",
            base: 0x8DE00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_SR0",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 0",
            name: "DDR3_SR0",
            base: 0x8E000000,
            len: 0x01000000
        }
    ],
    [
        "DDR3_M3",
        {
            comment: "DDR3 Memory reserved for use by the M3 core",
            name: "DDR3_M3",
            base: 0x8F000000,
            len: 0x01000000
        }
    ],
    [
        "DDR3_EVEVECS",
        {
            comment: "DDR3 Memory reserved for use by the EVE int vectors",
            name: "DDR3_EVEVECS",
            base: 0x90000000,
            len: 0x00000100
        }
    ],
    [
        "DDR3_EVE",
        {
            comment: "DDR3 Memory reserved for use by the EVE",
            name: "DDR3_EVE",
            base: 0x90000100,
            len: 0x00FFFF00
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:05 GMT


module ti.platforms.evmC6A8149.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmC6A8149
    16     *
    17     */
    18
    19    package ti.platforms.evmC6A8149;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmC6A8149
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    34     *  C674 DSP.
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmC6A8149",
    41            boardFamily:    "evmC6A8149",
    42            boardRevision:  null
    43        };
    44
    45        /* C674 GEM */
    46        readonly config xdc.platform.IExeContext.Cpu GEM = {
    47            id:             "0",
    48            clockRate:      500.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320C6A8149",
    51            revision:       ""
    52        };
    53
    54
    55        /* EVE - ARP32 */
    56        readonly config xdc.platform.IExeContext.Cpu EVE = {
    57            id:             "1",
    58            clockRate:      225.0,
    59            catalogName:    "ti.catalog.arp32",
    60            deviceName:     "TMS320C6A8149",
    61            revision:       ""
    62        };
    63
    64        /* M3 Subsystem */
    65        readonly config xdc.platform.IExeContext.Cpu DSS = {
    66            id:             "2",
    67            clockRate:      200.0,
    68            catalogName:    "ti.catalog.arm.cortexm3",
    69            deviceName:     "TMS320C6A8149",
    70            revision:       "1.0"
    71        };
    72
    73        /* GPP */
    74        readonly config xdc.platform.IExeContext.Cpu GPP = {
    75            id:             "3",
    76            clockRate:      600.0,  /* Typically set by the HLOS */
    77            catalogName:    "ti.catalog.arm.cortexa8",
    78            deviceName:     "TMS320C6A8149",
    79            revision:       "1.0"
    80        };
    81
    82    instance:
    83
    84        override readonly config xdc.platform.IPlatform.Memory
    85            externalMemoryMap[string] = [
    86                ["DDR3_HOST", {
    87                    comment: "DDR3 Memory reserved for use by the A8",
    88                    name: "DDR3_HOST",
    89                    base: 0x80000000,
    90                    len:  0x0B000000    /* 176 MB */
    91                }],
    92                ["DDR3_DSP", {
    93                    comment: "DDR3 Memory reserved for use by the C674",
    94                    name: "DDR3_DSP",
    95                    base: 0x8B000000,
    96                    len:  0x02000000    /* 32 MB */
    97                }],
    98                ["DDR3_SR1", {
    99                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
   100                    name: "DDR3_SR1",
   101                    base: 0x8D000000,
   102                    len:  0x00C00000    /* 12 MB */
   103                }],
   104                ["DDR3_HDVPSS", {
   105                    comment: "DDR3 Memory reserved for use by HDVPSS",
   106                    name: "DDR3_HDVPSS",
   107                    base: 0x8DC00000,
   108                    len:  0x00200000    /* 2 MB */
   109                }],
   110                ["DDR3_V4L2", {
   111                    comment: "DDR3 Memory reserved for use by V4L2",
   112                    name: "DDR3_V4L2",
   113                    base: 0x8DE00000,
   114                    len:  0x00200000    /* 2 MB */
   115                }],
   116                ["DDR3_SR0", {
   117                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
   118                    name: "DDR3_SR0",
   119                    base: 0x8E000000,
   120                    len:  0x01000000    /* 16 MB */
   121                }],
   122                ["DDR3_M3", {
   123                    comment: "DDR3 Memory reserved for use by the M3 core",
   124                    name: "DDR3_M3",
   125                    base: 0x8F000000,
   126                    len:  0x01000000    /* 16 MB */
   127                }],
   128                ["DDR3_EVEVECS", {
   129                    comment: "DDR3 Memory reserved for use by the EVE int vectors",
   130                    name: "DDR3_EVEVECS",
   131                    base: 0x90000000,
   132                    len:  0x00000100    /* 256 Bytes */
   133                }],
   134                ["DDR3_EVE", {
   135                    comment: "DDR3 Memory reserved for use by the EVE",
   136                    name: "DDR3_EVE",
   137                    base: 0x90000100,
   138                    len:  0x00FFFF00    /* 16MB - 256 Bytes */
   139                }],
   140            ];
   141
   142        /*
   143         *  ======== l1PMode ========
   144         *  Define the amount of L1P RAM used for L1 Program Cache.
   145         *
   146         *  Check the device documentation for valid values.
   147         */
   148        config String l1PMode = "32k";
   149
   150        /*
   151         *  ======== l1DMode ========
   152         *  Define the amount of L1D RAM used for L1 Data Cache.
   153         *
   154         *  Check the device documentation for valid values.
   155         */
   156        config String l1DMode = "32k";
   157
   158        /*
   159         *  ======== l2Mode ========
   160         *  Define the amount of L2 RAM used for L2 Cache.
   161         *
   162         *  Check the device documentation for valid values.
   163         */
   164        config String l2Mode = "0k";
   165    };
   166    /*
   167     *  @(#) ti.platforms.evmC6A8149; 1, 0, 0,10; 8-17-2012 22:15:02; /db/ztree/library/trees/platform/platform-n27x/src/
   168     */
   169


package ti.platforms.evmC6A8168
index URL

Platform package for the evmC6A8168 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmC6A8168 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmC6A8168/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmC6A8168 [1, 0, 0] {
    module Platform;
    // Platform support for the evmC6A8168
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmC6A8168 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmC6A8168.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:04 GMT


package ti.platforms.evmC6A8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evmC6A8168 ========
    24     *  Platform package for the evmC6A8168 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evmC6A8168 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evmC6A8168.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evmC6A8168 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evmC6A8168; 1, 0, 0,79; 8-17-2012 22:15:06; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evmC6A8168.Platform

metaonly module ti.platforms.evmC6A8168.Platform
index URL

Platform support for the evmC6A8168

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmC6A8168/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmC6A8168.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmC6A8168",
        boardFamily: "evmC6A8168",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 250.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320C6A8168",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 800.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6A8168",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 1000.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320C6A8168",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR3_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR3_RAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3_RAM",
                {
                    comment: "External RAM",
                    name: "DDR3_RAM",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR3_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C674 DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmC6A8168",
    boardFamily: "evmC6A8168",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 250.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "TMS320C6A8168",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 800.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6A8168",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 1000.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320C6A8168",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR3_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR3_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3_RAM",
            {
                comment: "External RAM",
                name: "DDR3_RAM",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR3_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3_RAM",
        {
            comment: "External RAM",
            name: "DDR3_RAM",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:04 GMT


module ti.platforms.evmC6A8168.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmC6A8168
    16     *
    17     */
    18
    19    package ti.platforms.evmC6A8168;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmC6A8168
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    34     *  C674 DSP.
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmC6A8168",
    41            boardFamily:    "evmC6A8168",
    42            boardRevision:  null
    43        };
    44
    45        /* C674 GEM */
    46        readonly config xdc.platform.IExeContext.Cpu GEM = {
    47            id:             "0",
    48            clockRate:      800.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320C6A8168",
    51            revision:       ""
    52        };
    53
    54        /* M3 Subsystem */
    55        readonly config xdc.platform.IExeContext.Cpu DSS = {
    56            id:             "1",
    57            clockRate:      250.0,
    58            catalogName:    "ti.catalog.arm.cortexm3",
    59            deviceName:     "TMS320C6A8168",
    60            revision:       "1.0"
    61        };
    62
    63        /* GPP */
    64        readonly config xdc.platform.IExeContext.Cpu GPP = {
    65            id:             "2",
    66            clockRate:      1000.0,  /* Typically set by the HLOS */
    67            catalogName:    "ti.catalog.arm.cortexa8",
    68            deviceName:     "TMS320C6A8168",
    69            revision:       "1.0"
    70        };
    71
    72    instance:
    73
    74        override readonly config xdc.platform.IPlatform.Memory
    75            externalMemoryMap[string] = [
    76
    77                ["DDR3_RAM", {
    78                    comment: "External RAM",
    79                    name: "DDR3_RAM",
    80                    base: 0x80000000,
    81                    len:  0x10000000
    82                }]
    83
    84            ];
    85
    86        override config string codeMemory = "DDR3_RAM";
    87        override config string dataMemory = "DDR3_RAM";
    88        override config string stackMemory = "DDR3_RAM";
    89
    90        /*
    91         *  ======== l1PMode ========
    92         *  Define the amount of L1P RAM used for L1 Program Cache.
    93         *
    94         *  Check the device documentation for valid values.
    95         */
    96        config String l1PMode = "32k";
    97
    98        /*
    99         *  ======== l1DMode ========
   100         *  Define the amount of L1D RAM used for L1 Data Cache.
   101         *
   102         *  Check the device documentation for valid values.
   103         */
   104        config String l1DMode = "32k";
   105
   106        /*
   107         *  ======== l2Mode ========
   108         *  Define the amount of L2 RAM used for L2 Cache.
   109         *
   110         *  Check the device documentation for valid values.
   111         */
   112        config String l2Mode = "0k";
   113
   114    };
   115    /*
   116     *  @(#) ti.platforms.evmC6A8168; 1, 0, 0,79; 8-17-2012 22:15:05; /db/ztree/library/trees/platform/platform-n27x/src/
   117     */
   118


package ti.platforms.evmDA830
index URL

Platform package for the evmDA830 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDA830 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDA830/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDA830 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDA830
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDA830 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDA830.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:05 GMT


package ti.platforms.evmDA830

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmDA830 ========
    18     *  Platform package for the evmDA830 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evmDA830 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmDA830.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmDA830 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmDA830; 1, 0, 0,175; 8-17-2012 22:15:07; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmDA830.Platform

metaonly module ti.platforms.evmDA830.Platform
index URL

Platform support for the evmDA830

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDA830/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDA830.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDA830",
        boardFamily: "evmDA830",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 300.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320DA830",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 300.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320DA830",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SDRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0xC3000000,
                    len: 0x01000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDA830",
    boardFamily: "evmDA830",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 300.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320DA830",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 300.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320DA830",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SDRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0xC3000000,
                len: 0x01000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0xC3000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:05 GMT


module ti.platforms.evmDA830.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evmDA830;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evmDA830
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmDA830",
    41            boardFamily:    "evmDA830",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu DSP = {
    46            id:             "0",
    47            clockRate:      300.0,
    48            catalogName:    "ti.catalog.c6000",
    49            deviceName:     "TMS320DA830",
    50            revision:       "",
    51        };
    52
    53        readonly config xdc.platform.IExeContext.Cpu GPP = {
    54            id:             "1",
    55            clockRate:      300.0,
    56            catalogName:    "ti.catalog.arm",
    57            deviceName:     "TMS320DA830",
    58            revision:       "1.0",
    59        };
    60
    61    instance:
    62
    63        /*
    64         *  SDRAM is 64MByte but we need to share it with Arm.
    65         *  Reserve 32MB for Arm/Linux (base: 0xC000000)
    66         *  16MB for shared Arm/DSP (base: 0xC2000000)
    67         *  16MB for DSP (base: 0xC3000000)
    68         */
    69        override readonly config xdc.platform.IPlatform.Memory
    70            externalMemoryMap[string] = [
    71                ["SDRAM",  {name: "SDRAM",  base: 0xC3000000, len: 0x01000000}],
    72            ];
    73
    74        /*
    75         *  ======== sectMap ========
    76         *  Define a placement of compiler generated output sections into
    77         *  memory regions defined in the memTab above.
    78         */
    79        override config string codeMemory = "SDRAM";
    80
    81        override config string dataMemory = "SDRAM";
    82
    83        override config string stackMemory = "SDRAM";
    84
    85        /*
    86         *  ======== l1PMode ========
    87         *  Define the amount of L1P RAM used for L1 Program Cache.
    88         *
    89         *  Check the device documentation for valid values.
    90         */
    91        config String l1PMode = "32k";
    92
    93        /*
    94         *  ======== l1DMode ========
    95         *  Define the amount of L1D RAM used for L1 Data Cache.
    96         *
    97         *  Check the device documentation for valid values.
    98         */
    99        config String l1DMode = "32k";
   100
   101        /*
   102         *  ======== l2Mode ========
   103         *  Define the amount of L2 RAM used for L2 Cache.
   104         *
   105         *  Check the device documentation for valid values.
   106         */
   107        config String l2Mode = "0k";
   108    };
   109    /*
   110     *  @(#) ti.platforms.evmDA830; 1, 0, 0,175; 8-17-2012 22:15:07; /db/ztree/library/trees/platform/platform-n27x/src/
   111     */
   112


package ti.platforms.evmDA850
index URL

Platform package for the evmDA850 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDA850 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDA850/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDA850 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDA850
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDA850 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDA850.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:06 GMT


package ti.platforms.evmDA850

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmDA850 ========
    18     *  Platform package for the evmDA850 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evmDA850 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmDA850.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmDA850 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmDA850; 1, 0, 0,90; 8-17-2012 22:15:10; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmDA850.Platform

metaonly module ti.platforms.evmDA850.Platform
index URL

Platform support for the evmDA850

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDA850/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDA850.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDA850",
        boardFamily: "evmDA850",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 400.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320DA850",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 400.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320DA850",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SDRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0xC3000000,
                    len: 0x01000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDA850",
    boardFamily: "evmDA850",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 400.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320DA850",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 400.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320DA850",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SDRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0xC3000000,
                len: 0x01000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0xC3000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:06 GMT


module ti.platforms.evmDA850.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evmDA850;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evmDA850
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmDA850",
    41            boardFamily:    "evmDA850",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu DSP = {
    46            id:             "0",
    47            clockRate:      400.0,
    48            catalogName:    "ti.catalog.c6000",
    49            deviceName:     "TMS320DA850",
    50            revision:       "",
    51        };
    52
    53        readonly config xdc.platform.IExeContext.Cpu GPP = {
    54            id:             "1",
    55            clockRate:      400.0,
    56            catalogName:    "ti.catalog.arm",
    57            deviceName:     "TMS320DA850",
    58            revision:       "1.0",
    59        };
    60
    61    instance:
    62
    63        /*
    64         *  SDRAM is 64MByte but we need to share it with Arm.
    65         *  Reserve 32MB for Arm/Linux (base: 0xC000000)
    66         *  16MB for shared Arm/DSP (base: 0xC2000000)
    67         *  16MB for DSP (base: 0xC3000000)
    68         */
    69        override readonly config xdc.platform.IPlatform.Memory
    70            externalMemoryMap[string] = [
    71                ["SDRAM",  {name: "SDRAM",  base: 0xC3000000, len: 0x01000000}],
    72            ];
    73
    74        /*
    75         *  ======== sectMap ========
    76         *  Define a placement of compiler generated output sections into
    77         *  memory regions defined in the memTab above.
    78         */
    79        override config string codeMemory = "SDRAM";
    80
    81        override config string dataMemory = "SDRAM";
    82
    83        override config string stackMemory = "SDRAM";
    84
    85        /*
    86         *  ======== l1PMode ========
    87         *  Define the amount of L1P RAM used for L1 Program Cache.
    88         *
    89         *  Check the device documentation for valid values.
    90         */
    91        config String l1PMode = "32k";
    92
    93        /*
    94         *  ======== l1DMode ========
    95         *  Define the amount of L1D RAM used for L1 Data Cache.
    96         *
    97         *  Check the device documentation for valid values.
    98         */
    99        config String l1DMode = "32k";
   100
   101        /*
   102         *  ======== l2Mode ========
   103         *  Define the amount of L2 RAM used for L2 Cache.
   104         *
   105         *  Check the device documentation for valid values.
   106         */
   107        config String l2Mode = "0k";
   108
   109    };
   110    /*
   111     *  @(#) ti.platforms.evmDA850; 1, 0, 0,90; 8-17-2012 22:15:10; /db/ztree/library/trees/platform/platform-n27x/src/
   112     */
   113


package ti.platforms.evmDM355
index URL

Platform package for the evmDM355 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM355 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM355/package.xdc
requires ti.catalog.arm;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM355 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDM355
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM355 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM355.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:06 GMT


package ti.platforms.evmDM355

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.arm;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmDM355 ========
    18     *  Platform package for the evmDM355 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    21     *  to build and run executables on the evmDM355 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmDM355.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmDM355 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmDM355; 1, 0, 0,300; 8-17-2012 22:15:11; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmDM355.Platform

metaonly module ti.platforms.evmDM355.Platform
index URL

Platform support for the evmDM355

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM355/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM355.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "evmDM355",
        boardFamily: "evmDM355",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 216.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320DM355",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x8000000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM355",
    boardFamily: "evmDM355",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 216.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320DM355",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x8000000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x8000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:06 GMT


module ti.platforms.evmDM355.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== Platform ========
    19     *  Platform support for the evmDM355
    20     *
    21     *  This module implements xdc.platform.IPlatform and defines configuration
    22     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    23     *
    24     *  The configuration parameters are initialized in this package's
    25     *  configuration script (package.cfg) and "bound" to the TCOM object
    26     *  model.  Once they are part of the model, these parameters are
    27     *  queried by a program's configuration script.
    28     *
    29     *  This particular platform has a single Cpu, and therefore, only
    30     *  declares a single CPU configuration object.  Multi-CPU platforms
    31     *  would declare multiple Cpu configuration parameters (one per
    32     *  platform CPU).
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        /*!
    37         *  ======== BOARD ========
    38         *  This platform's board attributes
    39         */
    40        readonly config xdc.platform.IPlatform.Board BOARD = {
    41            id:             "0",
    42            boardName:      "evmDM355",
    43            boardFamily:    "evmDM355",
    44            boardRevision:  null
    45        };
    46
    47        readonly config xdc.platform.IExeContext.Cpu CPU = {
    48            id:             "0",
    49            clockRate:      216.0,
    50            catalogName:    "ti.catalog.arm",
    51            deviceName:     "TMS320DM355",
    52            revision:       "",
    53        };
    54
    55    instance:
    56
    57        /*
    58         *  ======== memTab ========
    59         *  Define the evmDM355 memory map
    60         */
    61        override readonly config xdc.platform.IPlatform.MemoryMap
    62            externalMemoryMap = [
    63                ["DDR2",  {name: "DDR2",  base: 0x80000000, len: 0x8000000}],
    64            ];
    65
    66        /*
    67         *  ======== sectMap ========
    68         *  Define a placement of compiler generated output sections into
    69         *  memory regions defined in the memTab above.
    70         */
    71        override config string codeMemory = "DDR2";
    72        override config string dataMemory = "DDR2";
    73        override config string stackMemory = "DDR2";
    74    };
    75
    76    /*
    77     *  @(#) ti.platforms.evmDM355; 1, 0, 0,300; 8-17-2012 22:15:11; /db/ztree/library/trees/platform/platform-n27x/src/
    78     */
    79


package ti.platforms.evmDM357
index URL

Platform package for the evmDM357 platform

XDCspec declarations sourced in ti/platforms/evmDM357/package.xdc
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM357 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDM357
}
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM357.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:07 GMT


package ti.platforms.evmDM357

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires xdc.platform [1,0,1];
    19
    20    /*!
    21     *  ======== ti.platforms.evmDM357 ========
    22     *  Platform package for the evmDM357 platform.
    23     *
    24     *  @a(Throws)
    25     *  `XDCException` exceptions are thrown for fatal errors. The following error
    26     *  codes are reported in the exception message:
    27     *  @p(dlist)
    28     *      -  `ti.platfoms.evmDM357.LINK_TEMPLATE_ERROR`
    29     *           This error is raised when this platform cannot found the default
    30     *           linker command template `linkcmd.xdt` in the build target's
    31     *           package. When a target does not contain this file, the config
    32     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    33     *  @p
    34     */
    35    package ti.platforms.evmDM357 [1,0,0] {
    36        module Platform;
    37    }
    38    /*
    39     *  @(#) ti.platforms.evmDM357; 1, 0, 0,238; 8-17-2012 22:15:14; /db/ztree/library/trees/platform/platform-n27x/src/
    40     */
    41


module ti.platforms.evmDM357.Platform

metaonly module ti.platforms.evmDM357.Platform
index URL

Platform support for the evmDM357

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
XDCscript usage meta-domain sourced in ti/platforms/evmDM357/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM357.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDM357",
        boardFamily: "evmDM357",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 540.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320DM357",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 270.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320DM357",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM357",
    boardFamily: "evmDM357",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 540.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320DM357",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 270.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320DM357",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:07 GMT


module ti.platforms.evmDM357.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDM357
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     */
    25
    26    metaonly module Platform inherits xdc.platform.IPlatform
    27    {
    28        readonly config xdc.platform.IPlatform.Board BOARD = {
    29            id:             "0",
    30            boardName:      "evmDM357",
    31            boardFamily:    "evmDM357",
    32            boardRevision:  null,
    33        };
    34
    35        readonly config xdc.platform.IExeContext.Cpu DSP = {
    36            id:             "0",
    37            clockRate:      540.0,
    38            catalogName:    "ti.catalog.c6000",
    39            deviceName:     "TMS320DM357",
    40            revision:       "1.0",
    41        };
    42
    43        readonly config xdc.platform.IExeContext.Cpu GPP = {
    44            id:             "1",
    45            clockRate:      270.0,
    46            catalogName:    "ti.catalog.arm",
    47            deviceName:     "TMS320DM357",
    48            revision:       "1.0",
    49        };
    50
    51    instance:
    52
    53        override readonly config xdc.platform.IPlatform.Memory
    54            externalMemoryMap[string] = [
    55                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x10000000}],
    56            ];
    57
    58        /* default segment for data sections */
    59        override config string dataMemory = "DDR2";
    60        override config string stackMemory = "DDR2";
    61
    62        /* default segment for stack sections */
    63
    64        /*
    65         *  ======== l1PMode ========
    66         *  Define the amount of L1P RAM used for L1 Program Cache.
    67         *
    68         *  Check the device documentation for valid values.
    69         */
    70        config String l1PMode = "32k";
    71
    72        /*
    73         *  ======== l1DMode ========
    74         *  Define the amount of L1D RAM used for L1 Data Cache.
    75         *
    76         *  Check the device documentation for valid values.
    77         */
    78        config String l1DMode = "32k";
    79
    80        /*
    81         *  ======== l2Mode ========
    82         *  Define the amount of L2 RAM used for L2 Cache.
    83         *
    84         *  Check the device documentation for valid values.
    85         */
    86        config String l2Mode = "0k";
    87    }
    88    /*
    89     *  @(#) ti.platforms.evmDM357; 1, 0, 0,238; 8-17-2012 22:15:13; /db/ztree/library/trees/platform/platform-n27x/src/
    90     */
    91


package ti.platforms.evmDM365
index URL

Platform package for the evmDM365 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM365 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM365/package.xdc
requires ti.catalog.arm;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM365 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDM365
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM365 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM365.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:07 GMT


package ti.platforms.evmDM365

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.arm;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmDM365 ========
    18     *  Platform package for the evmDM365 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    21     *  to build and run executables on the evmDM365 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmDM365.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmDM365 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmDM365; 1, 0, 0,226; 8-17-2012 22:15:16; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmDM365.Platform

metaonly module ti.platforms.evmDM365.Platform
index URL

Platform support for the evmDM365

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM365/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM365.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "evmDM365",
        boardFamily: "evmDM365",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 216.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320DM365",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR",
                {
                    name: "DDR",
                    base: 0x80000000,
                    len: 0x1000000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the XDC object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM365",
    boardFamily: "evmDM365",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 216.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320DM365",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR",
            {
                name: "DDR",
                base: 0x80000000,
                len: 0x1000000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR",
        {
            name: "DDR",
            base: 0x80000000,
            len: 0x1000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:07 GMT


module ti.platforms.evmDM365.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== Platform ========
    19     *  Platform support for the evmDM365
    20     *
    21     *  This module implements xdc.platform.IPlatform and defines configuration
    22     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    23     *
    24     *  The configuration parameters are initialized in this package's
    25     *  configuration script (package.cfg) and "bound" to the XDC object
    26     *  model.  Once they are part of the model, these parameters are
    27     *  queried by a program's configuration script.
    28     *
    29     *  This particular platform has a single Cpu, and therefore, only
    30     *  declares a single CPU configuration object.  Multi-CPU platforms
    31     *  would declare multiple Cpu configuration parameters (one per
    32     *  platform CPU).
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        /*!
    37         *  ======== BOARD ========
    38         *  This platform's board attributes
    39         */
    40        readonly config xdc.platform.IPlatform.Board BOARD = {
    41            id:             "0",
    42            boardName:      "evmDM365",
    43            boardFamily:    "evmDM365",
    44            boardRevision:  null
    45        };
    46
    47        readonly config xdc.platform.IExeContext.Cpu CPU = {
    48            id:             "0",
    49            clockRate:      216.0,
    50            catalogName:    "ti.catalog.arm",
    51            deviceName:     "TMS320DM365",
    52            revision:       "",
    53        };
    54
    55    instance:
    56
    57        override readonly config xdc.platform.IPlatform.MemoryMap
    58            externalMemoryMap = [
    59                ["DDR",  {name: "DDR",  base: 0x80000000, len: 0x1000000}],
    60            ];
    61
    62        /*
    63         *  ======== sectMap ========
    64         *  Define a placement of compiler generated output sections into
    65         *  memory regions defined in the memTab above.
    66         */
    67        override config string codeMemory = "DDR";
    68        override config string dataMemory = "DDR";
    69        override config string stackMemory = "DDR";
    70    };
    71    /*
    72     *  @(#) ti.platforms.evmDM365; 1, 0, 0,226; 8-17-2012 22:15:15; /db/ztree/library/trees/platform/platform-n27x/src/
    73     */
    74


package ti.platforms.evmDM420
index URL

Platform package for the DaVinci evmDM420 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM420 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM420/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM420 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDM420
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM420 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM420.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:07 GMT


package ti.platforms.evmDM420

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmDM420 ========
    23     *  Platform package for the DaVinci evmDM420 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmDM420 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmDM420.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmDM420 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmDM420; 1, 0, 0,358; 8-17-2012 22:15:19; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmDM420.Platform

metaonly module ti.platforms.evmDM420.Platform
index URL

Platform support for the evmDM420

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM420/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM420.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDM420",
        boardFamily: "evmDM420",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 486.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM420",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM420",
    boardFamily: "evmDM420",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 486.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM420",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:07 GMT


module ti.platforms.evmDM420.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDM420
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmDM420",
    40            boardFamily:    "evmDM420",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      486.0,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CDM420",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x10000000}],
    57            ];
    58
    59        override config string codeMemory = "DDR2";
    60
    61        override config string dataMemory = "DDR2";
    62
    63        override config string stackMemory = "DDR2";
    64
    65        /*
    66         *  ======== l1PMode ========
    67         *  Define the amount of L1P RAM used for L1 Program Cache.
    68         *
    69         *  Check the device documentation for valid values.
    70         */
    71        config String l1PMode = "32k";
    72
    73        /*
    74         *  ======== l1DMode ========
    75         *  Define the amount of L1D RAM used for L1 Data Cache.
    76         *
    77         *  Check the device documentation for valid values.
    78         */
    79        config String l1DMode = "32k";
    80
    81        /*
    82         *  ======== l2Mode ========
    83         *  Define the amount of L2 RAM used for L2 Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l2Mode = "0k";
    88    };
    89    /*
    90     *  @(#) ti.platforms.evmDM420; 1, 0, 0,358; 8-17-2012 22:15:19; /db/ztree/library/trees/platform/platform-n27x/src/
    91     */
    92


package ti.platforms.evmDM642
index URL

Platform package for the EVMDM642 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the EVMDM642 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM642/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM642 [1, 0, 0] {
    module Platform;
    // This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the EVMDM642 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM642.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:08 GMT


package ti.platforms.evmDM642

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmDM642 ========
    18     *  Platform package for the EVMDM642 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the EVMDM642 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmDM642.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmDM642 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmDM642; 1, 0, 0,373; 8-17-2012 22:15:21; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmDM642.Platform

metaonly module ti.platforms.evmDM642.Platform
index URL

This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc

  • XDCscript usage
  • Individual elements
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM642/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM642.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "evmDM642",
        boardFamily: "evmDM642",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 600.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM642",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SDRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0x80000000,
                    len: 0x2000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM642",
    boardFamily: "evmDM642",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 600.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM642",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SDRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0x80000000,
                len: 0x2000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0x80000000,
            len: 0x2000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:08 GMT


module ti.platforms.evmDM642.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    package ti.platforms.evmDM642;
    19
    20    /*!
    21     *  ======== Platform ========
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.xs) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "evmDM642",
    44            boardFamily:    "evmDM642",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         */
    51        readonly config xdc.platform.IExeContext.Cpu CPU = {
    52            id:             "0",
    53            clockRate:      600.0,
    54            catalogName:    "ti.catalog.c6000",
    55            deviceName:     "TMS320CDM642",
    56            revision:       "",
    57        };
    58
    59    instance:
    60
    61        override readonly config xdc.platform.IPlatform.Memory
    62            externalMemoryMap[string] = [
    63                ["SDRAM", {name: "SDRAM", base: 0x80000000, len: 0x2000000}],
    64            ];
    65
    66        override config string codeMemory = "SDRAM";
    67
    68        override config string dataMemory = "SDRAM";
    69
    70        override config string stackMemory = "SDRAM";
    71
    72        /*
    73         *  ======== l1PMode ========
    74         *  Define the amount of L1P RAM used for L1 Program Cache.
    75         *
    76         *  Check the device documentation for valid values.
    77         */
    78        config String l1PMode = "32k";
    79
    80        /*
    81         *  ======== l1DMode ========
    82         *  Define the amount of L1D RAM used for L1 Data Cache.
    83         *
    84         *  Check the device documentation for valid values.
    85         */
    86        config String l1DMode = "32k";
    87
    88        /*
    89         *  ======== l2Mode ========
    90         *  Define the amount of L2 RAM used for L2 Cache.
    91         *
    92         *  Check the device documentation for valid values.
    93         */
    94        config String l2Mode = "0k";
    95    };
    96    /*
    97     *  @(#) ti.platforms.evmDM642; 1, 0, 0,373; 8-17-2012 22:15:21; /db/ztree/library/trees/platform/platform-n27x/src/
    98     */
    99


package ti.platforms.evmDM6437
index URL

Platform package for the evmDM6437 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM6437 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM6437/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM6437 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDM6437
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM6437 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM6437.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:09 GMT


package ti.platforms.evmDM6437

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmDM6437 ========
    23     *  Platform package for the evmDM6437 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmDM6437 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmDM6437.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmDM6437 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmDM6437; 1, 0, 0,348; 8-17-2012 22:15:22; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmDM6437.Platform

metaonly module ti.platforms.evmDM6437.Platform
index URL

Platform support for the evmDM6437

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM6437/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM6437.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDM6437",
        boardFamily: "evmDM6437",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 594,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM6437",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x8000000
                }
            ],
            [
                "SRAM",
                {
                    name: "SRAM",
                    base: 0x42000000,
                    len: 0x0200000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM6437",
    boardFamily: "evmDM6437",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 594,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM6437",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x8000000
            }
        ],
        [
            "SRAM",
            {
                name: "SRAM",
                base: 0x42000000,
                len: 0x0200000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x8000000
        }
    ],
    [
        "SRAM",
        {
            name: "SRAM",
            base: 0x42000000,
            len: 0x0200000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:09 GMT


module ti.platforms.evmDM6437.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDM6437
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmDM6437",
    40            boardFamily:    "evmDM6437",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      594,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CDM6437",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x8000000}],
    57                ["SRAM", {name: "SRAM", base: 0x42000000, len: 0x0200000}],
    58            ];
    59
    60        override config string codeMemory = "DDR2";
    61
    62        override config string dataMemory = "DDR2";
    63
    64        override config string stackMemory = "DDR2";
    65
    66        /*
    67         *  ======== l1PMode ========
    68         *  Define the amount of L1P RAM used for L1 Program Cache.
    69         *
    70         *  Check the device documentation for valid values.
    71         */
    72        config String l1PMode = "32k";
    73
    74        /*
    75         *  ======== l1DMode ========
    76         *  Define the amount of L1D RAM used for L1 Data Cache.
    77         *
    78         *  Check the device documentation for valid values.
    79         */
    80        config String l1DMode = "32k";
    81
    82        /*
    83         *  ======== l2Mode ========
    84         *  Define the amount of L2 RAM used for L2 Cache.
    85         *
    86         *  Check the device documentation for valid values.
    87         */
    88        config String l2Mode = "0k";
    89    };
    90    /*
    91     *  @(#) ti.platforms.evmDM6437; 1, 0, 0,348; 8-17-2012 22:15:22; /db/ztree/library/trees/platform/platform-n27x/src/
    92     */
    93


package ti.platforms.evmDM6446
index URL

Platform package for the DaVinci evmDM6446 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM6446 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM6446/package.xdc
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM6446 [1, 0, 0, 1] {
    module Platform;
    // Platform support for the evmDM6446
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM6446 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM6446.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:10 GMT


package ti.platforms.evmDM6446

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires xdc.platform [1,0,1];
    19
    20    /*!
    21     *  ======== ti.platforms.evmDM6446 ========
    22     *  Platform package for the DaVinci evmDM6446 platform.
    23     *
    24     *  This package implements the interfaces (xdc.platform.IPlatform)
    25     *  necessary to build and run executables on the evmDM6446 platform.
    26     *
    27     *  @a(Throws)
    28     *  `XDCException` exceptions are thrown for fatal errors. The following error
    29     *  codes are reported in the exception message:
    30     *  @p(dlist)
    31     *      -  `ti.platfoms.evmDM6446.LINK_TEMPLATE_ERROR`
    32     *           This error is raised when this platform cannot found the default
    33     *           linker command template `linkcmd.xdt` in the build target's
    34     *           package. When a target does not contain this file, the config
    35     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    36     *  @p
    37     */
    38    package ti.platforms.evmDM6446 [1,0,0,1] {
    39        module Platform;
    40    }
    41    /*
    42     *  @(#) ti.platforms.evmDM6446; 1, 0, 0, 1,358; 8-17-2012 22:15:24; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.platforms.evmDM6446.Platform

metaonly module ti.platforms.evmDM6446.Platform
index URL

Platform support for the evmDM6446

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM6446/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM6446.Platform');
module-wide constants & types
    values of type Platform.RuntimeEnv//
        const Platform.STDIO;
        const Platform.POSIX;
        const Platform.BIOS;
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDM6446",
        boardFamily: "evmDM6446",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 567.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM6446",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 300.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320CDM6446",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.runTime// The runtime environment available to executables = Platform.RuntimeEnv Platform.STDIO;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
enum Platform.RuntimeEnv
index URL
XDCscript usage meta-domain
values of type Platform.RuntimeEnv
    const Platform.STDIO;
    const Platform.POSIX;
    const Platform.BIOS;
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM6446",
    boardFamily: "evmDM6446",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 567.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM6446",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 300.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320CDM6446",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.runTime = Platform.RuntimeEnv Platform.STDIO;
    // The runtime environment available to executables
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.runTime // instance
index URL

The runtime environment available to executables

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.runTime = Platform.RuntimeEnv Platform.STDIO;
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:10 GMT


module ti.platforms.evmDM6446.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDM6446
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     */
    30
    31    metaonly module Platform inherits xdc.platform.IPlatform
    32    {
    33        enum RuntimeEnv {
    34            STDIO,
    35            POSIX,
    36            BIOS
    37        };
    38
    39        readonly config xdc.platform.IPlatform.Board BOARD = {
    40            id:             "0",
    41            boardName:      "evmDM6446",
    42            boardFamily:    "evmDM6446",
    43            boardRevision:  null,
    44        };
    45
    46        readonly config xdc.platform.IExeContext.Cpu DSP = {
    47            id:             "0",
    48            clockRate:      567.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320CDM6446",
    51            revision:       "1.0",
    52        };
    53
    54        readonly config xdc.platform.IExeContext.Cpu GPP = {
    55            id:             "1",
    56            clockRate:      300.0,
    57            catalogName:    "ti.catalog.arm",
    58            deviceName:     "TMS320CDM6446",
    59            revision:       "1.0",
    60        };
    61
    62    instance:
    63
    64        override readonly config xdc.platform.IPlatform.Memory
    65            externalMemoryMap[string] = [
    66                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x10000000}],
    67            ];
    68
    69        /* default segment for code sections */
    70        override config string codeMemory = "DDR2";
    71
    72        /* default segment for data sections */
    73        override config string dataMemory = "DDR2";
    74
    75        /* default segment for stack sections */
    76        override config string stackMemory = "DDR2";
    77
    78        /*!
    79         *  ======== runTime ========
    80         *  The runtime environment available to executables
    81         */
    82        config RuntimeEnv runTime = STDIO;
    83
    84        /*!
    85         *  ======== singleCore ========
    86         *  no longer used!
    87         * @_nodoc
    88         */
    89        config Bool singleCore = true;
    90
    91        /*
    92         *  ======== l1PMode ========
    93         *  Define the amount of L1P RAM used for L1 Program Cache.
    94         *
    95         *  Check the device documentation for valid values.
    96         */
    97        config String l1PMode = "32k";
    98
    99        /*
   100         *  ======== l1DMode ========
   101         *  Define the amount of L1D RAM used for L1 Data Cache.
   102         *
   103         *  Check the device documentation for valid values.
   104         */
   105        config String l1DMode = "32k";
   106
   107        /*
   108         *  ======== l2Mode ========
   109         *  Define the amount of L2 RAM used for L2 Cache.
   110         *
   111         *  Check the device documentation for valid values.
   112         */
   113        config String l2Mode = "0k";
   114    }
   115    /*
   116     *  @(#) ti.platforms.evmDM6446; 1, 0, 0, 1,358; 8-17-2012 22:15:24; /db/ztree/library/trees/platform/platform-n27x/src/
   117     */
   118


package ti.platforms.evmDM6467
index URL

Platform package for the DaVinci evmDM6467 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM6467 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM6467/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM6467 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the evmDM6467
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM6467 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM6467.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:09 GMT


package ti.platforms.evmDM6467

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmDM6467 ========
    23     *  Platform package for the DaVinci evmDM6467 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmDM6467 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmDM6467.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmDM6467 [1,0,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmDM6467; 1, 0, 0, 0,333; 8-17-2012 22:15:27; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmDM6467.Platform

metaonly module ti.platforms.evmDM6467.Platform
index URL

Platform support for the evmDM6467

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM6467/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM6467.Platform');
module-wide constants & types
    values of type Platform.RuntimeEnv//
        const Platform.STDIO;
        const Platform.POSIX;
        const Platform.BIOS;
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDM6467",
        boardFamily: "evmDM6467",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 594.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM6467",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 297.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320CDM6467",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.runTime// The runtime environment available to executables = Platform.RuntimeEnv Platform.STDIO;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
enum Platform.RuntimeEnv
index URL
XDCscript usage meta-domain
values of type Platform.RuntimeEnv
    const Platform.STDIO;
    const Platform.POSIX;
    const Platform.BIOS;
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM6467",
    boardFamily: "evmDM6467",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 594.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM6467",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 297.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320CDM6467",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.runTime = Platform.RuntimeEnv Platform.STDIO;
    // The runtime environment available to executables
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.runTime // instance
index URL

The runtime environment available to executables

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.runTime = Platform.RuntimeEnv Platform.STDIO;
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:09 GMT


module ti.platforms.evmDM6467.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDM6467
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        enum RuntimeEnv {
    39            STDIO,
    40            POSIX,
    41            BIOS
    42        };
    43
    44        readonly config xdc.platform.IPlatform.Board BOARD = {
    45            id:             "0",
    46            boardName:      "evmDM6467",
    47            boardFamily:    "evmDM6467",
    48            boardRevision:  null,
    49        };
    50
    51        readonly config xdc.platform.IExeContext.Cpu DSP = {
    52            id:             "0",
    53            clockRate:      594.0,
    54            catalogName:    "ti.catalog.c6000",
    55            deviceName:     "TMS320CDM6467",
    56            revision:       "1.0",
    57        };
    58
    59        readonly config xdc.platform.IExeContext.Cpu GPP = {
    60            id:             "1",
    61            clockRate:      297.0,
    62            catalogName:    "ti.catalog.arm",
    63            deviceName:     "TMS320CDM6467",
    64            revision:       "1.0",
    65        };
    66
    67    instance:
    68
    69        /*
    70         *  ======== memTab ========
    71         *  Define the evmDaVinci memory map
    72         */
    73        override readonly config xdc.platform.IPlatform.Memory
    74            externalMemoryMap[string] = [
    75                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x10000000}],
    76            ];
    77
    78        /* default segment for data sections */
    79        override config string dataMemory = "DDR2";
    80
    81        /* default segment for stack sections */
    82        override config string stackMemory = "DDR2";
    83
    84        /*!
    85         *  ======== runTime ========
    86         *  The runtime environment available to executables
    87         */
    88        config RuntimeEnv runTime = STDIO;
    89
    90        /*!
    91         *  ======== singleCore ========
    92         *  no longer used!
    93         * @_nodoc
    94         */
    95        config Bool singleCore = true;
    96
    97        /*
    98         *  ======== l1PMode ========
    99         *  Define the amount of L1P RAM used for L1 Program Cache.
   100         *
   101         *  Check the device documentation for valid values.
   102         */
   103        config String l1PMode = "32k";
   104
   105        /*
   106         *  ======== l1DMode ========
   107         *  Define the amount of L1D RAM used for L1 Data Cache.
   108         *
   109         *  Check the device documentation for valid values.
   110         */
   111        config String l1DMode = "32k";
   112
   113        /*
   114         *  ======== l2Mode ========
   115         *  Define the amount of L2 RAM used for L2 Cache.
   116         *
   117         *  Check the device documentation for valid values.
   118         */
   119        config String l2Mode = "0k";
   120    }
   121    /*
   122     *  @(#) ti.platforms.evmDM6467; 1, 0, 0, 0,333; 8-17-2012 22:15:27; /db/ztree/library/trees/platform/platform-n27x/src/
   123     */
   124


package ti.platforms.evmDM6467T
index URL

Platform package for the DaVinci evmDM6467T platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM6467T platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM6467T/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM6467T [1, 0, 0, 0] {
    module Platform;
    // Platform support for the evmDM6467T
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM6467T platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM6467T.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:10 GMT


package ti.platforms.evmDM6467T

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmDM6467T ========
    23     *  Platform package for the DaVinci evmDM6467T platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmDM6467T platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmDM6467T.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmDM6467T [1,0,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmDM6467T; 1, 0, 0, 0,112; 8-17-2012 22:15:29; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmDM6467T.Platform

metaonly module ti.platforms.evmDM6467T.Platform
index URL

Platform support for the evmDM6467T

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM6467T/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM6467T.Platform');
module-wide constants & types
    values of type Platform.RuntimeEnv//
        const Platform.STDIO;
        const Platform.POSIX;
        const Platform.BIOS;
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDM6467T",
        boardFamily: "evmDM6467T",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 990.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM6467",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 495.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320CDM6467",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.runTime// The runtime environment available to executables = Platform.RuntimeEnv Platform.STDIO;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
enum Platform.RuntimeEnv
index URL
XDCscript usage meta-domain
values of type Platform.RuntimeEnv
    const Platform.STDIO;
    const Platform.POSIX;
    const Platform.BIOS;
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM6467T",
    boardFamily: "evmDM6467T",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 990.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM6467",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 495.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320CDM6467",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.runTime = Platform.RuntimeEnv Platform.STDIO;
    // The runtime environment available to executables
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.runTime // instance
index URL

The runtime environment available to executables

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.runTime = Platform.RuntimeEnv Platform.STDIO;
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:10 GMT


module ti.platforms.evmDM6467T.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDM6467T
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        enum RuntimeEnv {
    39            STDIO,
    40            POSIX,
    41            BIOS
    42        };
    43
    44        readonly config xdc.platform.IPlatform.Board BOARD = {
    45            id:             "0",
    46            boardName:      "evmDM6467T",
    47            boardFamily:    "evmDM6467T",
    48            boardRevision:  null,
    49        };
    50
    51        readonly config xdc.platform.IExeContext.Cpu DSP = {
    52            id:             "0",
    53            clockRate:      990.0,
    54            catalogName:    "ti.catalog.c6000",
    55            deviceName:     "TMS320CDM6467",
    56            revision:       "1.0",
    57        };
    58
    59        readonly config xdc.platform.IExeContext.Cpu GPP = {
    60            id:             "1",
    61            clockRate:      495.0,
    62            catalogName:    "ti.catalog.arm",
    63            deviceName:     "TMS320CDM6467",
    64            revision:       "1.0",
    65        };
    66
    67    instance:
    68
    69        /*
    70         *  ======== memTab ========
    71         *  Define the evmDaVinci memory map
    72         */
    73        override readonly config xdc.platform.IPlatform.Memory
    74            externalMemoryMap[string] = [
    75                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x10000000}],
    76            ];
    77
    78        /* default segment for data sections */
    79        override config string dataMemory = "DDR2";
    80
    81        /* default segment for stack sections */
    82        override config string stackMemory = "DDR2";
    83
    84        /*!
    85         *  ======== runTime ========
    86         *  The runtime environment available to executables
    87         */
    88        config RuntimeEnv runTime = STDIO;
    89
    90        /*!
    91         *  ======== singleCore ========
    92         *  no longer used!
    93         * @_nodoc
    94         */
    95        config Bool singleCore = true;
    96
    97        /*
    98         *  ======== l1PMode ========
    99         *  Define the amount of L1P RAM used for L1 Program Cache.
   100         *
   101         *  Check the device documentation for valid values.
   102         */
   103        config String l1PMode = "32k";
   104
   105        /*
   106         *  ======== l1DMode ========
   107         *  Define the amount of L1D RAM used for L1 Data Cache.
   108         *
   109         *  Check the device documentation for valid values.
   110         */
   111        config String l1DMode = "32k";
   112
   113        /*
   114         *  ======== l2Mode ========
   115         *  Define the amount of L2 RAM used for L2 Cache.
   116         *
   117         *  Check the device documentation for valid values.
   118         */
   119        config String l2Mode = "0k";
   120    }
   121    /*
   122     *  @(#) ti.platforms.evmDM6467T; 1, 0, 0, 0,112; 8-17-2012 22:15:29; /db/ztree/library/trees/platform/platform-n27x/src/
   123     */
   124


package ti.platforms.evmDM648
index URL

Platform package for the evmDM648 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM648 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM648/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM648 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDM648
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM648 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM648.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:08 GMT


package ti.platforms.evmDM648

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmDM648 ========
    23     *  Platform package for the evmDM648 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmDM648 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmDM648.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmDM648 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmDM648; 1, 0, 0,346; 8-17-2012 22:15:31; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmDM648.Platform

metaonly module ti.platforms.evmDM648.Platform
index URL

Platform support for the evmDM648

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM648/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM648.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDM648",
        boardFamily: "evmDM648",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 891,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM648",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0xE0000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM648",
    boardFamily: "evmDM648",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 891,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM648",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0xE0000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0xE0000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:08 GMT


module ti.platforms.evmDM648.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDM648
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmDM648",
    40            boardFamily:    "evmDM648",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      891,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CDM648",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        /*
    55         *  ======== memTab ========
    56         *  Define the evmDM648 memory map
    57         */
    58        override readonly config xdc.platform.IPlatform.Memory
    59            externalMemoryMap[string] = [
    60                ["DDR2", {name: "DDR2", base: 0xE0000000, len: 0x10000000}],
    61            ];
    62
    63        override config string codeMemory = "DDR2";
    64
    65        override config string dataMemory = "DDR2";
    66
    67        override config string stackMemory = "DDR2";
    68
    69        /*
    70         *  ======== l1PMode ========
    71         *  Define the amount of L1P RAM used for L1 Program Cache.
    72         *
    73         *  Check the device documentation for valid values.
    74         */
    75        config String l1PMode = "32k";
    76
    77        /*
    78         *  ======== l1DMode ========
    79         *  Define the amount of L1D RAM used for L1 Data Cache.
    80         *
    81         *  Check the device documentation for valid values.
    82         */
    83        config String l1DMode = "32k";
    84
    85        /*
    86         *  ======== l2Mode ========
    87         *  Define the amount of L2 RAM used for L2 Cache.
    88         *
    89         *  Check the device documentation for valid values.
    90         */
    91        config String l2Mode = "0k";
    92    };
    93    /*
    94     *  @(#) ti.platforms.evmDM648; 1, 0, 0,346; 8-17-2012 22:15:31; /db/ztree/library/trees/platform/platform-n27x/src/
    95     */
    96


package ti.platforms.evmDM8148
index URL

Platform package for the evmDM8148 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM8148 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM8148/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM8148 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDM8148
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM8148 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM8148.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:11 GMT


package ti.platforms.evmDM8148

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evmDM8148 ========
    24     *  Platform package for the evmDM8148 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evmDM8148 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evmDM8148.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evmDM8148 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evmDM8148; 1, 0, 0,78; 8-17-2012 22:15:35; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evmDM8148.Platform

metaonly module ti.platforms.evmDM8148.Platform
index URL

Platform support for the evmDM8148

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM8148/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM8148.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDM8148",
        boardFamily: "evmDM8148",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 200.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320DM8148",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 500.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320DM8148",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 600.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320DM8148",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR3_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR3_RAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3_RAM",
                {
                    comment: "External RAM",
                    name: "DDR3_RAM",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR3_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C674 DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM8148",
    boardFamily: "evmDM8148",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 200.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "TMS320DM8148",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 500.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320DM8148",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 600.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320DM8148",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR3_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR3_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3_RAM",
            {
                comment: "External RAM",
                name: "DDR3_RAM",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR3_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3_RAM",
        {
            comment: "External RAM",
            name: "DDR3_RAM",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:11 GMT


module ti.platforms.evmDM8148.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmDM8148
    16     *
    17     */
    18
    19    package ti.platforms.evmDM8148;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmDM8148
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    34     *  C674 DSP.
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmDM8148",
    41            boardFamily:    "evmDM8148",
    42            boardRevision:  null
    43        };
    44
    45        /* C674 GEM */
    46        readonly config xdc.platform.IExeContext.Cpu GEM = {
    47            id:             "0",
    48            clockRate:      500.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320DM8148",
    51            revision:       ""
    52        };
    53
    54        /* M3 Subsystem */
    55        readonly config xdc.platform.IExeContext.Cpu DSS = {
    56            id:             "1",
    57            clockRate:      200.0,
    58            catalogName:    "ti.catalog.arm.cortexm3",
    59            deviceName:     "TMS320DM8148",
    60            revision:       "1.0"
    61        };
    62
    63        /* GPP */
    64        readonly config xdc.platform.IExeContext.Cpu GPP = {
    65            id:             "2",
    66            clockRate:      600.0,  /* Typically set by the HLOS */
    67            catalogName:    "ti.catalog.arm.cortexa8",
    68            deviceName:     "TMS320DM8148",
    69            revision:       "1.0"
    70        };
    71
    72    instance:
    73
    74        override readonly config xdc.platform.IPlatform.Memory
    75            externalMemoryMap[string] = [
    76
    77                ["DDR3_RAM", {
    78                    comment: "External RAM",
    79                    name: "DDR3_RAM",
    80                    base: 0x80000000,
    81                    len:  0x10000000
    82                }]
    83
    84            ];
    85
    86        override config string codeMemory = "DDR3_RAM";
    87        override config string dataMemory = "DDR3_RAM";
    88        override config string stackMemory = "DDR3_RAM";
    89
    90        /*
    91         *  ======== l1PMode ========
    92         *  Define the amount of L1P RAM used for L1 Program Cache.
    93         *
    94         *  Check the device documentation for valid values.
    95         */
    96        config String l1PMode = "32k";
    97
    98        /*
    99         *  ======== l1DMode ========
   100         *  Define the amount of L1D RAM used for L1 Data Cache.
   101         *
   102         *  Check the device documentation for valid values.
   103         */
   104        config String l1DMode = "32k";
   105
   106        /*
   107         *  ======== l2Mode ========
   108         *  Define the amount of L2 RAM used for L2 Cache.
   109         *
   110         *  Check the device documentation for valid values.
   111         */
   112        config String l2Mode = "0k";
   113
   114    };
   115    /*
   116     *  @(#) ti.platforms.evmDM8148; 1, 0, 0,78; 8-17-2012 22:15:35; /db/ztree/library/trees/platform/platform-n27x/src/
   117     */
   118


package ti.platforms.evmDM8168
index URL

Platform package for the evmDM8168 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM8168 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDM8168/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDM8168 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDM8168
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDM8168 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDM8168.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:11 GMT


package ti.platforms.evmDM8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evmDM8168 ========
    24     *  Platform package for the evmDM8168 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evmDM8168 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evmDM8168.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evmDM8168 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evmDM8168; 1, 0, 0,81; 8-17-2012 22:15:35; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evmDM8168.Platform

metaonly module ti.platforms.evmDM8168.Platform
index URL

Platform support for the evmDM8168

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDM8168/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDM8168.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDM8168",
        boardFamily: "evmDM8168",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 250.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320DM8168",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 800.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320DM8168",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 1000.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320DM8168",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR3_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR3_RAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3_RAM",
                {
                    comment: "External RAM",
                    name: "DDR3_RAM",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR3_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C674 DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDM8168",
    boardFamily: "evmDM8168",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 250.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "TMS320DM8168",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 800.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320DM8168",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 1000.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320DM8168",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR3_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR3_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3_RAM",
            {
                comment: "External RAM",
                name: "DDR3_RAM",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR3_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3_RAM",
        {
            comment: "External RAM",
            name: "DDR3_RAM",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:11 GMT


module ti.platforms.evmDM8168.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmDM8168
    16     *
    17     */
    18
    19    package ti.platforms.evmDM8168;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmDM8168
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    34     *  C674 DSP.
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmDM8168",
    41            boardFamily:    "evmDM8168",
    42            boardRevision:  null
    43        };
    44
    45        /* C674 GEM */
    46        readonly config xdc.platform.IExeContext.Cpu GEM = {
    47            id:             "0",
    48            clockRate:      800.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320DM8168",
    51            revision:       ""
    52        };
    53
    54        /* M3 Subsystem */
    55        readonly config xdc.platform.IExeContext.Cpu DSS = {
    56            id:             "1",
    57            clockRate:      250.0,
    58            catalogName:    "ti.catalog.arm.cortexm3",
    59            deviceName:     "TMS320DM8168",
    60            revision:       "1.0"
    61        };
    62
    63        /* GPP */
    64        readonly config xdc.platform.IExeContext.Cpu GPP = {
    65            id:             "2",
    66            clockRate:      1000.0,  /* Typically set by the HLOS */
    67            catalogName:    "ti.catalog.arm.cortexa8",
    68            deviceName:     "TMS320DM8168",
    69            revision:       "1.0"
    70        };
    71
    72    instance:
    73
    74        override readonly config xdc.platform.IPlatform.Memory
    75            externalMemoryMap[string] = [
    76
    77                ["DDR3_RAM", {
    78                    comment: "External RAM",
    79                    name: "DDR3_RAM",
    80                    base: 0x80000000,
    81                    len:  0x10000000
    82                }]
    83
    84            ];
    85
    86        override config string codeMemory = "DDR3_RAM";
    87        override config string dataMemory = "DDR3_RAM";
    88        override config string stackMemory = "DDR3_RAM";
    89
    90        /*
    91         *  ======== l1PMode ========
    92         *  Define the amount of L1P RAM used for L1 Program Cache.
    93         *
    94         *  Check the device documentation for valid values.
    95         */
    96        config String l1PMode = "32k";
    97
    98        /*
    99         *  ======== l1DMode ========
   100         *  Define the amount of L1D RAM used for L1 Data Cache.
   101         *
   102         *  Check the device documentation for valid values.
   103         */
   104        config String l1DMode = "32k";
   105
   106        /*
   107         *  ======== l2Mode ========
   108         *  Define the amount of L2 RAM used for L2 Cache.
   109         *
   110         *  Check the device documentation for valid values.
   111         */
   112        config String l2Mode = "0k";
   113
   114    };
   115    /*
   116     *  @(#) ti.platforms.evmDM8168; 1, 0, 0,81; 8-17-2012 22:15:35; /db/ztree/library/trees/platform/platform-n27x/src/
   117     */
   118


package ti.platforms.evmDRA416
index URL

Platform package for the evmDRA416 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDRA416 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDRA416/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDRA416 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDRA416
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDRA416 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDRA416.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:11 GMT


package ti.platforms.evmDRA416

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmDRA416 ========
    23     *  Platform package for the evmDRA416 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmDRA416 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmDRA416.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmDRA416 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmDRA416; 1, 0, 0,182; 8-17-2012 22:15:39; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmDRA416.Platform

metaonly module ti.platforms.evmDRA416.Platform
index URL

Platform support for the evmDRA416

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDRA416/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDRA416.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDRA416",
        boardFamily: "evmDRA416",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 519.3216,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDRA416",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EMIFA";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EMIFA";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "EMIFA",
                {
                    name: "EMIFA",
                    base: 0x40000000,
                    len: 0x08000000
                }
            ],
            [
                "NOR_FLASH",
                {
                    name: "NOR_FLASH",
                    base: 0x20000000,
                    len: 0x04000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EMIFA";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDRA416",
    boardFamily: "evmDRA416",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 519.3216,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDRA416",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EMIFA";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EMIFA";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "EMIFA",
            {
                name: "EMIFA",
                base: 0x40000000,
                len: 0x08000000
            }
        ],
        [
            "NOR_FLASH",
            {
                name: "NOR_FLASH",
                base: 0x20000000,
                len: 0x04000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EMIFA";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EMIFA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EMIFA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EMIFA",
        {
            name: "EMIFA",
            base: 0x40000000,
            len: 0x08000000
        }
    ],
    [
        "NOR_FLASH",
        {
            name: "NOR_FLASH",
            base: 0x20000000,
            len: 0x04000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EMIFA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:11 GMT


module ti.platforms.evmDRA416.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDRA416
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmDRA416",
    40            boardFamily:    "evmDRA416",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      519.3216,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CDRA416",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["EMIFA", {name: "EMIFA", base: 0x40000000, len: 0x08000000}],
    57                ["NOR_FLASH",
    58                    {
    59                        name: "NOR_FLASH",
    60                        base: 0x20000000,
    61                        len: 0x04000000
    62                    }
    63                ],
    64            ];
    65
    66        override config string codeMemory = "EMIFA";
    67
    68        override config string dataMemory = "EMIFA";
    69
    70        override config string stackMemory = "EMIFA";
    71
    72        /*
    73         *  ======== l1PMode ========
    74         *  Define the amount of L1P RAM used for L1 Program Cache.
    75         *
    76         *  Check the device documentation for valid values.
    77         */
    78        config String l1PMode = "32k";
    79
    80        /*
    81         *  ======== l1DMode ========
    82         *  Define the amount of L1D RAM used for L1 Data Cache.
    83         *
    84         *  Check the device documentation for valid values.
    85         */
    86        config String l1DMode = "32k";
    87
    88        /*
    89         *  ======== l2Mode ========
    90         *  Define the amount of L2 RAM used for L2 Cache.
    91         *
    92         *  Check the device documentation for valid values.
    93         */
    94        config String l2Mode = "0k";
    95    };
    96    /*
    97     *  @(#) ti.platforms.evmDRA416; 1, 0, 0,182; 8-17-2012 22:15:39; /db/ztree/library/trees/platform/platform-n27x/src/
    98     */
    99


package ti.platforms.evmDRA446
index URL

Platform package for the evmDRA446 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDRA446 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDRA446/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDRA446 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDRA446
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDRA446 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDRA446.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:12 GMT


package ti.platforms.evmDRA446

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmDRA446 ========
    23     *  Platform package for the evmDRA446 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmDRA446 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmDRA446.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmDRA446 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmDRA446; 1, 0, 0,342; 8-17-2012 22:15:40; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmDRA446.Platform

metaonly module ti.platforms.evmDRA446.Platform
index URL

Platform support for the evmDRA446

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDRA446/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDRA446.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDRA446",
        boardFamily: "evmDRA446",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 552,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDRA446",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EMIFA";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EMIFA";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "EMIFA",
                {
                    name: "EMIFA",
                    base: 0x40000000,
                    len: 0x8000000
                }
            ],
            [
                "EMIFB",
                {
                    name: "EMIFB",
                    base: 0x60000000,
                    len: 0x8000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EMIFA";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDRA446",
    boardFamily: "evmDRA446",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 552,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDRA446",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EMIFA";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EMIFA";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "EMIFA",
            {
                name: "EMIFA",
                base: 0x40000000,
                len: 0x8000000
            }
        ],
        [
            "EMIFB",
            {
                name: "EMIFB",
                base: 0x60000000,
                len: 0x8000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EMIFA";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EMIFA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EMIFA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EMIFA",
        {
            name: "EMIFA",
            base: 0x40000000,
            len: 0x8000000
        }
    ],
    [
        "EMIFB",
        {
            name: "EMIFB",
            base: 0x60000000,
            len: 0x8000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EMIFA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:12 GMT


module ti.platforms.evmDRA446.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDRA446
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmDRA446",
    40            boardFamily:    "evmDRA446",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      552,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CDRA446",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["EMIFA", {name: "EMIFA", base: 0x40000000, len: 0x8000000}],
    57                ["EMIFB", {name: "EMIFB", base: 0x60000000, len: 0x8000000}],
    58            ];
    59
    60        override config string codeMemory = "EMIFA";
    61
    62        override config string dataMemory = "EMIFA";
    63
    64        override config string stackMemory = "EMIFA";
    65
    66        /*
    67         *  ======== l1PMode ========
    68         *  Define the amount of L1P RAM used for L1 Program Cache.
    69         *
    70         *  Check the device documentation for valid values.
    71         */
    72        config String l1PMode = "32k";
    73
    74        /*
    75         *  ======== l1DMode ========
    76         *  Define the amount of L1D RAM used for L1 Data Cache.
    77         *
    78         *  Check the device documentation for valid values.
    79         */
    80        config String l1DMode = "32k";
    81
    82        /*
    83         *  ======== l2Mode ========
    84         *  Define the amount of L2 RAM used for L2 Cache.
    85         *
    86         *  Check the device documentation for valid values.
    87         */
    88        config String l2Mode = "0k";
    89    };
    90    /*
    91     *  @(#) ti.platforms.evmDRA446; 1, 0, 0,342; 8-17-2012 22:15:40; /db/ztree/library/trees/platform/platform-n27x/src/
    92     */
    93


package ti.platforms.evmDRA459
index URL

Platform package for the evmDRA459 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDRA459 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmDRA459/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmDRA459 [1, 0, 0] {
    module Platform;
    // Platform support for the evmDRA459
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmDRA459 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmDRA459.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:12 GMT


package ti.platforms.evmDRA459

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmDRA459 ========
    23     *  Platform package for the evmDRA459 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmDRA459 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmDRA459.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmDRA459 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmDRA459; 1, 0, 0,134; 8-17-2012 22:15:42; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmDRA459.Platform

metaonly module ti.platforms.evmDRA459.Platform
index URL

Platform support for the evmDRA459

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmDRA459/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmDRA459.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmDRA459",
        boardFamily: "evmDRA459",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 552,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDRA459",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EMIFA";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EMIFA";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "EMIFA",
                {
                    name: "EMIFA",
                    base: 0x40000000,
                    len: 0x10000000
                }
            ],
            [
                "EMIFB",
                {
                    name: "EMIFB",
                    base: 0x80000000,
                    len: 0x20000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EMIFA";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmDRA459",
    boardFamily: "evmDRA459",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 552,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDRA459",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EMIFA";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EMIFA";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "EMIFA",
            {
                name: "EMIFA",
                base: 0x40000000,
                len: 0x10000000
            }
        ],
        [
            "EMIFB",
            {
                name: "EMIFB",
                base: 0x80000000,
                len: 0x20000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EMIFA";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EMIFA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EMIFA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EMIFA",
        {
            name: "EMIFA",
            base: 0x40000000,
            len: 0x10000000
        }
    ],
    [
        "EMIFB",
        {
            name: "EMIFB",
            base: 0x80000000,
            len: 0x20000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EMIFA";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:12 GMT


module ti.platforms.evmDRA459.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmDRA459
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmDRA459",
    40            boardFamily:    "evmDRA459",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      552,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CDRA459",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["EMIFA", {name: "EMIFA", base: 0x40000000, len: 0x10000000}],
    57                ["EMIFB", {name: "EMIFB", base: 0x80000000, len: 0x20000000}],
    58            ];
    59
    60        override config string codeMemory = "EMIFA";
    61
    62        override config string dataMemory = "EMIFA";
    63
    64        override config string stackMemory = "EMIFA";
    65
    66
    67        /*
    68         *  ======== l1PMode ========
    69         *  Define the amount of L1P RAM used for L1 Program Cache.
    70         *
    71         *  Check the device documentation for valid values.
    72         */
    73        config String l1PMode = "32k";
    74
    75        /*
    76         *  ======== l1DMode ========
    77         *  Define the amount of L1D RAM used for L1 Data Cache.
    78         *
    79         *  Check the device documentation for valid values.
    80         */
    81        config String l1DMode = "32k";
    82
    83        /*
    84         *  ======== l2Mode ========
    85         *  Define the amount of L2 RAM used for L2 Cache.
    86         *
    87         *  Check the device documentation for valid values.
    88         */
    89        config String l2Mode = "0k";
    90    };
    91    /*
    92     *  @(#) ti.platforms.evmDRA459; 1, 0, 0,134; 8-17-2012 22:15:42; /db/ztree/library/trees/platform/platform-n27x/src/
    93     */
    94


package ti.platforms.evmLM3S8962
index URL

Platform package for the evmLM3S8962 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmLM3S8962 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmLM3S8962/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmLM3S8962 [1, 0, 0] {
    module Platform;
    // Platform support for the evmLM3S8962
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmLM3S8962 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmLM3S8962.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:12 GMT


package ti.platforms.evmLM3S8962

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmLM3S8962 ========
    18     *  Platform package for the evmLM3S8962 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evmLM3S8962 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmLM3S8962.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmLM3S8962 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmLM3S8962; 1, 0, 0,135; 8-17-2012 22:15:47; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmLM3S8962.Platform

metaonly module ti.platforms.evmLM3S8962.Platform
index URL

Platform support for the evmLM3S8962

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmLM3S8962/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmLM3S8962.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmLM3S8962",
        boardFamily: "evmLM3S8962",
        boardRevision: null
    };
    const Platform.M3// = IExeContext.Cpu {
        id: "0",
        clockRate: 50.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "LM3S8962",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "IRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "IRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmLM3S8962",
    boardFamily: "evmLM3S8962",
    boardRevision: null
};
config Platform.M3 // module-wide
index URL
XDCscript usage meta-domain
const Platform.M3 = IExeContext.Cpu {
    id: "0",
    clockRate: 50.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "LM3S8962",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "IRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "IRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:12 GMT


module ti.platforms.evmLM3S8962.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmLM3S8962
    16     *
    17     */
    18
    19    package ti.platforms.evmLM3S8962;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmLM3S8962
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has a single Cpu, and therefore, only
    34     *  declares a single CPU configuration object.  Multi-CPU platforms
    35     *  would declare multiple Cpu configuration parameters (one per
    36     *  platform CPU).
    37     */
    38    metaonly module Platform inherits xdc.platform.IPlatform
    39    {
    40        readonly config xdc.platform.IPlatform.Board BOARD = {
    41            id:             "0",
    42            boardName:      "evmLM3S8962",
    43            boardFamily:    "evmLM3S8962",
    44            boardRevision:  null,
    45        };
    46
    47        /* M3 Subsystem */
    48        readonly config xdc.platform.IExeContext.Cpu M3 = {
    49            id:             "0",
    50            clockRate:      50.0,
    51            catalogName:    "ti.catalog.arm.cortexm3",
    52            deviceName:     "LM3S8962",
    53            revision:       "1.0",
    54        };
    55
    56    instance:
    57        override config string codeMemory = "FRAM";
    58        override config string dataMemory = "IRAM";
    59        override config string stackMemory = "IRAM";
    60    };
    61    /*
    62     *  @(#) ti.platforms.evmLM3S8962; 1, 0, 0,135; 8-17-2012 22:15:47; /db/ztree/library/trees/platform/platform-n27x/src/
    63     */
    64


package ti.platforms.evmLM3S9B92
index URL

Platform package for the evmLM3S9B92 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmLM3S9B92 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmLM3S9B92/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmLM3S9B92 [1, 0, 0] {
    module Platform;
    // Platform support for the evmLM3S9B92
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmLM3S9B92 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmLM3S9B92.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:13 GMT


package ti.platforms.evmLM3S9B92

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmLM3S9B92 ========
    18     *  Platform package for the evmLM3S9B92 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evmLM3S9B92 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmLM3S9B92.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmLM3S9B92 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmLM3S9B92; 1, 0, 0,134; 8-17-2012 22:15:48; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmLM3S9B92.Platform

metaonly module ti.platforms.evmLM3S9B92.Platform
index URL

Platform support for the evmLM3S9B92

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmLM3S9B92/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmLM3S9B92.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmLM3S9B92",
        boardFamily: "evmLM3S9B92",
        boardRevision: null
    };
    const Platform.M3// = IExeContext.Cpu {
        id: "0",
        clockRate: 80.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "LM3S9B92",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "IRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "IRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmLM3S9B92",
    boardFamily: "evmLM3S9B92",
    boardRevision: null
};
config Platform.M3 // module-wide
index URL
XDCscript usage meta-domain
const Platform.M3 = IExeContext.Cpu {
    id: "0",
    clockRate: 80.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "LM3S9B92",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "IRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "IRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:13 GMT


module ti.platforms.evmLM3S9B92.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmLM3S9B92
    16     *
    17     */
    18
    19    package ti.platforms.evmLM3S9B92;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmLM3S9B92
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has a single Cpu, and therefore, only
    34     *  declares a single CPU configuration object.  Multi-CPU platforms
    35     *  would declare multiple Cpu configuration parameters (one per
    36     *  platform CPU).
    37     */
    38    metaonly module Platform inherits xdc.platform.IPlatform
    39    {
    40        readonly config xdc.platform.IPlatform.Board BOARD = {
    41            id:             "0",
    42            boardName:      "evmLM3S9B92",
    43            boardFamily:    "evmLM3S9B92",
    44            boardRevision:  null,
    45        };
    46
    47        /* M3 Subsystem */
    48        readonly config xdc.platform.IExeContext.Cpu M3 = {
    49            id:             "0",
    50            clockRate:      80.0,
    51            catalogName:    "ti.catalog.arm.cortexm3",
    52            deviceName:     "LM3S9B92",
    53            revision:       "1.0",
    54        };
    55
    56    instance:
    57        override config string codeMemory = "FRAM";
    58        override config string dataMemory = "IRAM";
    59        override config string stackMemory = "IRAM";
    60    };
    61    /*
    62     *  @(#) ti.platforms.evmLM3S9B92; 1, 0, 0,134; 8-17-2012 22:15:48; /db/ztree/library/trees/platform/platform-n27x/src/
    63     */
    64


package ti.platforms.evmOMAPL137
index URL

Platform package for the evmOMAPL137 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmOMAPL137 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmOMAPL137/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmOMAPL137 [1, 0, 0] {
    module Platform;
    // Platform support for the evmOMAPL137
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmOMAPL137 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmOMAPL137.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:13 GMT


package ti.platforms.evmOMAPL137

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires ti.catalog.arm;
    15    requires xdc.platform [1,0,1];
    16
    17    /*!
    18     *  ======== ti.platforms.evmOMAPL137 ========
    19     *  Platform package for the evmOMAPL137 platform.
    20     *
    21     *  This package implements the interfaces (xdc.platform.IPlatform)
    22     *  necessary to build and run executables on the evmOMAPL137 platform.
    23     *
    24     *  @a(Throws)
    25     *  `XDCException` exceptions are thrown for fatal errors. The following error
    26     *  codes are reported in the exception message:
    27     *  @p(dlist)
    28     *      -  `ti.platfoms.evmOMAPL137.LINK_TEMPLATE_ERROR`
    29     *           This error is raised when this platform cannot found the default
    30     *           linker command template `linkcmd.xdt` in the build target's
    31     *           package. When a target does not contain this file, the config
    32     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    33     *  @p
    34     */
    35    package ti.platforms.evmOMAPL137 [1,0,0] {
    36        module Platform;
    37    }
    38    /*
    39     *  @(#) ti.platforms.evmOMAPL137; 1, 0, 0,161; 8-17-2012 22:15:52; /db/ztree/library/trees/platform/platform-n27x/src/
    40     */
    41


module ti.platforms.evmOMAPL137.Platform

metaonly module ti.platforms.evmOMAPL137.Platform
index URL

Platform support for the evmOMAPL137

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmOMAPL137/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmOMAPL137.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmOMAPL137",
        boardFamily: "evmOMAPL137",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 300.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "OMAPL137",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 300.0,
        catalogName: "ti.catalog.arm",
        deviceName: "OMAPL137",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SDRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0xC3000000,
                    len: 0x01000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmOMAPL137",
    boardFamily: "evmOMAPL137",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 300.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "OMAPL137",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 300.0,
    catalogName: "ti.catalog.arm",
    deviceName: "OMAPL137",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SDRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0xC3000000,
                len: 0x01000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0xC3000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:13 GMT


module ti.platforms.evmOMAPL137.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evmOMAPL137;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evmOMAPL137
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmOMAPL137",
    41            boardFamily:    "evmOMAPL137",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu DSP = {
    46            id:             "0",
    47            clockRate:      300.0,
    48            catalogName:    "ti.catalog.c6000",
    49            deviceName:     "OMAPL137",
    50            revision:       "",
    51        };
    52
    53        readonly config xdc.platform.IExeContext.Cpu GPP = {
    54            id:             "1",
    55            clockRate:      300.0,
    56            catalogName:    "ti.catalog.arm",
    57            deviceName:     "OMAPL137",
    58            revision:       "1.0",
    59        };
    60    instance:
    61
    62        /*
    63         *  SDRAM is 64MByte but we need to share it with Arm.
    64         *  Reserve 32MB for Arm/Linux (base: 0xC000000)
    65         *  16MB for shared Arm/DSP (base: 0xC2000000)
    66         *  16MB for DSP (base: 0xC3000000)
    67         */
    68        override readonly config xdc.platform.IPlatform.Memory
    69            externalMemoryMap[string] = [
    70                ["SDRAM",  {name: "SDRAM",  base: 0xC3000000, len: 0x01000000}],
    71            ];
    72
    73        /*
    74         *  ======== sectMap ========
    75         *  Define a placement of compiler generated output sections into
    76         *  memory regions defined in the memTab above.
    77         */
    78        override config string codeMemory = "SDRAM";
    79
    80        override config string dataMemory = "SDRAM";
    81
    82        override config string stackMemory = "SDRAM";
    83
    84        /*
    85         *  ======== l1PMode ========
    86         *  Define the amount of L1P RAM used for L1 Program Cache.
    87         *
    88         *  Check the device documentation for valid values.
    89         */
    90        config String l1PMode = "32k";
    91
    92        /*
    93         *  ======== l1DMode ========
    94         *  Define the amount of L1D RAM used for L1 Data Cache.
    95         *
    96         *  Check the device documentation for valid values.
    97         */
    98        config String l1DMode = "32k";
    99
   100        /*
   101         *  ======== l2Mode ========
   102         *  Define the amount of L2 RAM used for L2 Cache.
   103         *
   104         *  Check the device documentation for valid values.
   105         */
   106        config String l2Mode = "0k";
   107
   108    };
   109    /*
   110     *  @(#) ti.platforms.evmOMAPL137; 1, 0, 0,161; 8-17-2012 22:15:52; /db/ztree/library/trees/platform/platform-n27x/src/
   111     */
   112


package ti.platforms.evmOMAPL138
index URL

Platform package for the evmOMAPL138 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmOMAPL138 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmOMAPL138/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmOMAPL138 [1, 0, 0] {
    module Platform;
    // Platform support for the evmOMAPL138
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmOMAPL138 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmOMAPL138.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:14 GMT


package ti.platforms.evmOMAPL138

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires ti.catalog.arm;
    15    requires xdc.platform [1,0,1];
    16
    17    /*!
    18     *  ======== ti.platforms.evmOMAPL138 ========
    19     *  Platform package for the evmOMAPL138 platform.
    20     *
    21     *  This package implements the interfaces (xdc.platform.IPlatform)
    22     *  necessary to build and run executables on the evmOMAPL138 platform.
    23     *
    24     *  @a(Throws)
    25     *  `XDCException` exceptions are thrown for fatal errors. The following error
    26     *  codes are reported in the exception message:
    27     *  @p(dlist)
    28     *      -  `ti.platfoms.evmOMAPL138.LINK_TEMPLATE_ERROR`
    29     *           This error is raised when this platform cannot found the default
    30     *           linker command template `linkcmd.xdt` in the build target's
    31     *           package. When a target does not contain this file, the config
    32     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    33     *  @p
    34     */
    35    package ti.platforms.evmOMAPL138 [1,0,0] {
    36        module Platform;
    37    }
    38    /*
    39     *  @(#) ti.platforms.evmOMAPL138; 1, 0, 0,132; 8-17-2012 22:15:54; /db/ztree/library/trees/platform/platform-n27x/src/
    40     */
    41


module ti.platforms.evmOMAPL138.Platform

metaonly module ti.platforms.evmOMAPL138.Platform
index URL

Platform support for the evmOMAPL138

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmOMAPL138/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmOMAPL138.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmOMAPL138",
        boardFamily: "evmOMAPL138",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 300.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "OMAPL138",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 300.0,
        catalogName: "ti.catalog.arm",
        deviceName: "OMAPL138",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR",
                {
                    name: "DDR",
                    base: 0xC3000000,
                    len: 0x01000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmOMAPL138",
    boardFamily: "evmOMAPL138",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 300.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "OMAPL138",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 300.0,
    catalogName: "ti.catalog.arm",
    deviceName: "OMAPL138",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR",
            {
                name: "DDR",
                base: 0xC3000000,
                len: 0x01000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR",
        {
            name: "DDR",
            base: 0xC3000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:14 GMT


module ti.platforms.evmOMAPL138.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evmOMAPL138;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the evmOMAPL138
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmOMAPL138",
    41            boardFamily:    "evmOMAPL138",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu DSP = {
    46            id:             "0",
    47            clockRate:      300.0,
    48            catalogName:    "ti.catalog.c6000",
    49            deviceName:     "OMAPL138",
    50            revision:       "",
    51        };
    52
    53        readonly config xdc.platform.IExeContext.Cpu GPP = {
    54            id:             "1",
    55            clockRate:      300.0,
    56            catalogName:    "ti.catalog.arm",
    57            deviceName:     "OMAPL138",
    58            revision:       "1.0",
    59        };
    60    instance:
    61
    62        /*
    63         *  DDR is 128MByte but we need to share it with Arm.
    64         *  Reserve 32MB for Arm/Linux (base: 0xC000000)
    65         *  16MB for shared Arm/DSP (base: 0xC2000000)
    66         *  16MB for DSP (base: 0xC3000000)
    67         *  64MB for ARM (base: 0xC4000000)
    68         */
    69        override readonly config xdc.platform.IPlatform.Memory
    70            externalMemoryMap[string] = [
    71                ["DDR",  {name: "DDR",  base: 0xC3000000, len: 0x01000000}],
    72            ];
    73
    74        /*
    75         *  ======== sectMap ========
    76         *  Define a placement of compiler generated output sections into
    77         *  memory regions defined in the memTab above.
    78         */
    79        override config string codeMemory = "DDR";
    80
    81        override config string dataMemory = "DDR";
    82
    83        override config string stackMemory = "DDR";
    84
    85        /*
    86         *  ======== l1PMode ========
    87         *  Define the amount of L1P RAM used for L1 Program Cache.
    88         *
    89         *  Check the device documentation for valid values.
    90         */
    91        config String l1PMode = "32k";
    92
    93        /*
    94         *  ======== l1DMode ========
    95         *  Define the amount of L1D RAM used for L1 Data Cache.
    96         *
    97         *  Check the device documentation for valid values.
    98         */
    99        config String l1DMode = "32k";
   100
   101        /*
   102         *  ======== l2Mode ========
   103         *  Define the amount of L2 RAM used for L2 Cache.
   104         *
   105         *  Check the device documentation for valid values.
   106         */
   107        config String l2Mode = "0k";
   108
   109    };
   110    /*
   111     *  @(#) ti.platforms.evmOMAPL138; 1, 0, 0,132; 8-17-2012 22:15:54; /db/ztree/library/trees/platform/platform-n27x/src/
   112     */
   113


package ti.platforms.evmTCI6484
index URL

Platform package for the evmTCI6484 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTCI6484 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTCI6484/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTCI6484 [1, 0, 0] {
    module Platform;
    // Platform support for the evmTCI6484
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTCI6484 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTCI6484.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:14 GMT


package ti.platforms.evmTCI6484

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmTCI6484 ========
    23     *  Platform package for the evmTCI6484 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmTCI6484 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmTCI6484.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmTCI6484 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmTCI6484; 1, 0, 0,197; 8-17-2012 22:15:57; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmTCI6484.Platform

metaonly module ti.platforms.evmTCI6484.Platform
index URL

Platform support for the evmTCI6484

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTCI6484/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTCI6484.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmTCI6484",
        boardFamily: "evmTCI6484",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CTCI6484",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0xe0000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTCI6484",
    boardFamily: "evmTCI6484",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CTCI6484",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0xe0000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0xe0000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:14 GMT


module ti.platforms.evmTCI6484.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmTCI6484
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmTCI6484",
    40            boardFamily:    "evmTCI6484",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      1000.0,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CTCI6484",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0xe0000000, len: 0x10000000}],
    57            ];
    58        override config string codeMemory = "DDR2";
    59
    60        override config string dataMemory = "DDR2";
    61
    62        override config string stackMemory = "DDR2";
    63
    64        /*
    65         *  ======== l1PMode ========
    66         *  Define the amount of L1P RAM used for L1 Program Cache.
    67         *
    68         *  Check the device documentation for valid values.
    69         */
    70        config String l1PMode = "32k";
    71
    72        /*
    73         *  ======== l1DMode ========
    74         *  Define the amount of L1D RAM used for L1 Data Cache.
    75         *
    76         *  Check the device documentation for valid values.
    77         */
    78        config String l1DMode = "32k";
    79
    80        /*
    81         *  ======== l2Mode ========
    82         *  Define the amount of L2 RAM used for L2 Cache.
    83         *
    84         *  Check the device documentation for valid values.
    85         */
    86        config String l2Mode = "0k";
    87
    88    };
    89    /*
    90     *  @(#) ti.platforms.evmTCI6484; 1, 0, 0,197; 8-17-2012 22:15:57; /db/ztree/library/trees/platform/platform-n27x/src/
    91     */
    92


package ti.platforms.evmTCI6486
index URL

Platform package for the evmTCI6486 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTCI6486 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTCI6486/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTCI6486 [1, 0, 0] {
    module Platform;
    // Platform support for the evmTCI6486
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTCI6486 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTCI6486.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:14 GMT


package ti.platforms.evmTCI6486

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmTCI6486 ========
    23     *  Platform package for the evmTCI6486 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmTCI6486 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmTCI6486.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmTCI6486 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmTCI6486; 1, 0, 0,173; 8-17-2012 22:15:58; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmTCI6486.Platform

metaonly module ti.platforms.evmTCI6486.Platform
index URL

Platform support for the evmTCI6486

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTCI6486/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTCI6486.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmTCI6486",
        boardFamily: "evmTCI6486",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 500.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CTCI6486",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0xe0000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTCI6486",
    boardFamily: "evmTCI6486",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 500.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CTCI6486",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0xe0000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0xe0000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:14 GMT


module ti.platforms.evmTCI6486.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmTCI6486
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmTCI6486",
    40            boardFamily:    "evmTCI6486",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      500.0,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CTCI6486",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0xe0000000, len: 0x10000000}],
    57            ];
    58
    59        override config string codeMemory = "DDR2";
    60
    61        override config string dataMemory = "DDR2";
    62
    63        override config string stackMemory = "DDR2";
    64
    65        /*
    66         *  ======== l1PMode ========
    67         *  Define the amount of L1P RAM used for L1 Program Cache.
    68         *
    69         *  Check the device documentation for valid values.
    70         */
    71        config String l1PMode = "32k";
    72
    73        /*
    74         *  ======== l1DMode ========
    75         *  Define the amount of L1D RAM used for L1 Data Cache.
    76         *
    77         *  Check the device documentation for valid values.
    78         */
    79        config String l1DMode = "32k";
    80
    81        /*
    82         *  ======== l2Mode ========
    83         *  Define the amount of L2 RAM used for L2 Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l2Mode = "0k";
    88    };
    89    /*
    90     *  @(#) ti.platforms.evmTCI6486; 1, 0, 0,173; 8-17-2012 22:15:58; /db/ztree/library/trees/platform/platform-n27x/src/
    91     */
    92


package ti.platforms.evmTCI6488
index URL

Platform package for the evmTCI6488 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTCI6488 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTCI6488/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTCI6488 [1, 0, 0] {
    module Platform;
    // Platform support for the evmTCI6488
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTCI6488 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTCI6488.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:15 GMT


package ti.platforms.evmTCI6488

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmTCI6488 ========
    23     *  Platform package for the evmTCI6488 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmTCI6488 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmTCI6488.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmTCI6488 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmTCI6488; 1, 0, 0,340; 8-17-2012 22:16:01; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmTCI6488.Platform

metaonly module ti.platforms.evmTCI6488.Platform
index URL

Platform support for the evmTCI6488

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTCI6488/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTCI6488.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmTCI6488",
        boardFamily: "evmTCI6488",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1044,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CTCI6488",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x08000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTCI6488",
    boardFamily: "evmTCI6488",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1044,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CTCI6488",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x08000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x08000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:15 GMT


module ti.platforms.evmTCI6488.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmTCI6488
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmTCI6488",
    40            boardFamily:    "evmTCI6488",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      1044,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CTCI6488",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x08000000}],
    57            ];
    58
    59        override config string codeMemory = "DDR2";
    60
    61        override config string dataMemory = "DDR2";
    62
    63        override config string stackMemory = "DDR2";
    64
    65        /*
    66         *  ======== l1PMode ========
    67         *  Define the amount of L1P RAM used for L1 Program Cache.
    68         *
    69         *  Check the device documentation for valid values.
    70         */
    71        config String l1PMode = "32k";
    72
    73        /*
    74         *  ======== l1DMode ========
    75         *  Define the amount of L1D RAM used for L1 Data Cache.
    76         *
    77         *  Check the device documentation for valid values.
    78         */
    79        config String l1DMode = "32k";
    80
    81        /*
    82         *  ======== l2Mode ========
    83         *  Define the amount of L2 RAM used for L2 Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l2Mode = "0k";
    88    };
    89    /*
    90     *  @(#) ti.platforms.evmTCI6488; 1, 0, 0,340; 8-17-2012 22:16:01; /db/ztree/library/trees/platform/platform-n27x/src/
    91     */
    92


package ti.platforms.evmTI811X
index URL

Platform package for the evmTI811X platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTI811X platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTI811X/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTI811X [1, 0, 0] {
    module Platform;
    // Platform support for the evmTI811X
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTI811X platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTI811X.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:15 GMT


package ti.platforms.evmTI811X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evmTI811X ========
    24     *  Platform package for the evmTI811X platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evmTI811X platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evmTI811X.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evmTI811X [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evmTI811X; 1, 0, 0,17; 8-17-2012 22:16:03; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evmTI811X.Platform

metaonly module ti.platforms.evmTI811X.Platform
index URL

Platform support for the evmTI811X

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTI811X/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTI811X.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmTI811X",
        boardFamily: "evmTI811X",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 200.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320TI811X",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 500.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320TI811X",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 600.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320TI811X",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3_HOST",
                {
                    comment: "DDR3 Memory reserved for use by the A8",
                    name: "DDR3_HOST",
                    base: 0x80000000,
                    len: 0x0B000000
                }
            ],
            [
                "DDR3_DSP",
                {
                    comment: "DDR3 Memory reserved for use by the C674",
                    name: "DDR3_DSP",
                    base: 0x8B000000,
                    len: 0x02000000
                }
            ],
            [
                "DDR3_SR1",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
                    name: "DDR3_SR1",
                    base: 0x8D000000,
                    len: 0x00C00000
                }
            ],
            [
                "DDR3_HDVPSS",
                {
                    comment: "DDR3 Memory reserved for use by HDVPSS",
                    name: "DDR3_HDVPSS",
                    base: 0x8DC00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_V4L2",
                {
                    comment: "DDR3 Memory reserved for use by V4L2",
                    name: "DDR3_V4L2",
                    base: 0x8DE00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_SR0",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
                    name: "DDR3_SR0",
                    base: 0x8E000000,
                    len: 0x01000000
                }
            ],
            [
                "DDR3_M3",
                {
                    comment: "DDR3 Memory reserved for use by the M3 core",
                    name: "DDR3_M3",
                    base: 0x8F000000,
                    len: 0x01000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C674 DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTI811X",
    boardFamily: "evmTI811X",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 200.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "TMS320TI811X",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 500.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320TI811X",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 600.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320TI811X",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3_HOST",
            {
                comment: "DDR3 Memory reserved for use by the A8",
                name: "DDR3_HOST",
                base: 0x80000000,
                len: 0x0B000000
            }
        ],
        [
            "DDR3_DSP",
            {
                comment: "DDR3 Memory reserved for use by the C674",
                name: "DDR3_DSP",
                base: 0x8B000000,
                len: 0x02000000
            }
        ],
        [
            "DDR3_SR1",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 1",
                name: "DDR3_SR1",
                base: 0x8D000000,
                len: 0x00C00000
            }
        ],
        [
            "DDR3_HDVPSS",
            {
                comment: "DDR3 Memory reserved for use by HDVPSS",
                name: "DDR3_HDVPSS",
                base: 0x8DC00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_V4L2",
            {
                comment: "DDR3 Memory reserved for use by V4L2",
                name: "DDR3_V4L2",
                base: 0x8DE00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_SR0",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 0",
                name: "DDR3_SR0",
                base: 0x8E000000,
                len: 0x01000000
            }
        ],
        [
            "DDR3_M3",
            {
                comment: "DDR3 Memory reserved for use by the M3 core",
                name: "DDR3_M3",
                base: 0x8F000000,
                len: 0x01000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3_HOST",
        {
            comment: "DDR3 Memory reserved for use by the A8",
            name: "DDR3_HOST",
            base: 0x80000000,
            len: 0x0B000000
        }
    ],
    [
        "DDR3_DSP",
        {
            comment: "DDR3 Memory reserved for use by the C674",
            name: "DDR3_DSP",
            base: 0x8B000000,
            len: 0x02000000
        }
    ],
    [
        "DDR3_SR1",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 1",
            name: "DDR3_SR1",
            base: 0x8D000000,
            len: 0x00C00000
        }
    ],
    [
        "DDR3_HDVPSS",
        {
            comment: "DDR3 Memory reserved for use by HDVPSS",
            name: "DDR3_HDVPSS",
            base: 0x8DC00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_V4L2",
        {
            comment: "DDR3 Memory reserved for use by V4L2",
            name: "DDR3_V4L2",
            base: 0x8DE00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_SR0",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 0",
            name: "DDR3_SR0",
            base: 0x8E000000,
            len: 0x01000000
        }
    ],
    [
        "DDR3_M3",
        {
            comment: "DDR3 Memory reserved for use by the M3 core",
            name: "DDR3_M3",
            base: 0x8F000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:15 GMT


module ti.platforms.evmTI811X.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmTI811X
    16     *
    17     */
    18
    19    package ti.platforms.evmTI811X;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmTI811X
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    34     *  C674 DSP.
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmTI811X",
    41            boardFamily:    "evmTI811X",
    42            boardRevision:  null
    43        };
    44
    45        /* C674 GEM */
    46        readonly config xdc.platform.IExeContext.Cpu GEM = {
    47            id:             "0",
    48            clockRate:      500.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320TI811X",
    51            revision:       ""
    52        };
    53
    54        /* M3 Subsystem */
    55        readonly config xdc.platform.IExeContext.Cpu DSS = {
    56            id:             "1",
    57            clockRate:      200.0,
    58            catalogName:    "ti.catalog.arm.cortexm3",
    59            deviceName:     "TMS320TI811X",
    60            revision:       "1.0"
    61        };
    62
    63        /* GPP */
    64        readonly config xdc.platform.IExeContext.Cpu GPP = {
    65            id:             "2",
    66            clockRate:      600.0,  /* Typically set by the HLOS */
    67            catalogName:    "ti.catalog.arm.cortexa8",
    68            deviceName:     "TMS320TI811X",
    69            revision:       "1.0"
    70        };
    71
    72    instance:
    73
    74        override readonly config xdc.platform.IPlatform.Memory
    75            externalMemoryMap[string] = [
    76                ["DDR3_HOST", {
    77                    comment: "DDR3 Memory reserved for use by the A8",
    78                    name: "DDR3_HOST",
    79                    base: 0x80000000,
    80                    len:  0x0B000000    /* 176 MB */
    81                }],
    82                ["DDR3_DSP", {
    83                    comment: "DDR3 Memory reserved for use by the C674",
    84                    name: "DDR3_DSP",
    85                    base: 0x8B000000,
    86                    len:  0x02000000    /* 32 MB */
    87                }],
    88                ["DDR3_SR1", {
    89                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
    90                    name: "DDR3_SR1",
    91                    base: 0x8D000000,
    92                    len:  0x00C00000    /* 12 MB */
    93                }],
    94                ["DDR3_HDVPSS", {
    95                    comment: "DDR3 Memory reserved for use by HDVPSS",
    96                    name: "DDR3_HDVPSS",
    97                    base: 0x8DC00000,
    98                    len:  0x00200000    /* 2 MB */
    99                }],
   100                ["DDR3_V4L2", {
   101                    comment: "DDR3 Memory reserved for use by V4L2",
   102                    name: "DDR3_V4L2",
   103                    base: 0x8DE00000,
   104                    len:  0x00200000    /* 2 MB */
   105                }],
   106                ["DDR3_SR0", {
   107                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
   108                    name: "DDR3_SR0",
   109                    base: 0x8E000000,
   110                    len:  0x01000000    /* 16 MB */
   111                }],
   112                ["DDR3_M3", {
   113                    comment: "DDR3 Memory reserved for use by the M3 core",
   114                    name: "DDR3_M3",
   115                    base: 0x8F000000,
   116                    len:  0x01000000    /* 16 MB */
   117                }],
   118            ];
   119
   120        /*
   121         *  ======== l1PMode ========
   122         *  Define the amount of L1P RAM used for L1 Program Cache.
   123         *
   124         *  Check the device documentation for valid values.
   125         */
   126        config String l1PMode = "32k";
   127
   128        /*
   129         *  ======== l1DMode ========
   130         *  Define the amount of L1D RAM used for L1 Data Cache.
   131         *
   132         *  Check the device documentation for valid values.
   133         */
   134        config String l1DMode = "32k";
   135
   136        /*
   137         *  ======== l2Mode ========
   138         *  Define the amount of L2 RAM used for L2 Cache.
   139         *
   140         *  Check the device documentation for valid values.
   141         */
   142        config String l2Mode = "0k";
   143    };
   144    /*
   145     *  @(#) ti.platforms.evmTI811X; 1, 0, 0,17; 8-17-2012 22:16:03; /db/ztree/library/trees/platform/platform-n27x/src/
   146     */
   147


package ti.platforms.evmTI813X
index URL

Platform package for the evmTI813X platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTI8139 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTI813X/package.xdc
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTI813X [1, 0, 0] {
    module Platform;
    // Platform support for the evmTI813X
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTI8139 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTI813X.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:15 GMT


package ti.platforms.evmTI813X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.arm.cortexm3;
    18    requires ti.catalog.arm.cortexa8;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.evmTI813X ========
    23     *  Platform package for the evmTI813X platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the evmTI8139 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.evmTI813X.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.evmTI813X [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.evmTI813X; 1, 0, 0,17; 8-17-2012 22:16:04; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.evmTI813X.Platform

metaonly module ti.platforms.evmTI813X.Platform
index URL

Platform support for the evmTI813X

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTI813X/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTI813X.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "evmTI813X",
        boardFamily: "evmTI813X",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320TI813X",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 600.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320TI813X",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3_HOST",
                {
                    comment: "DDR3 Memory reserved for use by the A8",
                    name: "DDR3_HOST",
                    base: 0x80000000,
                    len: 0x0D000000
                }
            ],
            [
                "DDR3_SR1",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
                    name: "DDR3_SR1",
                    base: 0x8D000000,
                    len: 0x00C00000
                }
            ],
            [
                "DDR3_HDVPSS",
                {
                    comment: "DDR3 Memory reserved for use by HDVPSS",
                    name: "DDR3_HDVPSS",
                    base: 0x8DC00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_V4L2",
                {
                    comment: "DDR3 Memory reserved for use by V4L2",
                    name: "DDR3_V4L2",
                    base: 0x8DE00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_SR0",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
                    name: "DDR3_SR0",
                    base: 0x8E000000,
                    len: 0x01000000
                }
            ],
            [
                "DDR3_M3",
                {
                    comment: "DDR3 Memory reserved for use by the M3 core",
                    name: "DDR3_M3",
                    base: 0x8F000000,
                    len: 0x01000000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 3 CPU's, a host GPP, and 2 M3's.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTI813X",
    boardFamily: "evmTI813X",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "0",
    clockRate: 200.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "TMS320TI813X",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 600.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320TI813X",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3_HOST",
            {
                comment: "DDR3 Memory reserved for use by the A8",
                name: "DDR3_HOST",
                base: 0x80000000,
                len: 0x0D000000
            }
        ],
        [
            "DDR3_SR1",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 1",
                name: "DDR3_SR1",
                base: 0x8D000000,
                len: 0x00C00000
            }
        ],
        [
            "DDR3_HDVPSS",
            {
                comment: "DDR3 Memory reserved for use by HDVPSS",
                name: "DDR3_HDVPSS",
                base: 0x8DC00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_V4L2",
            {
                comment: "DDR3 Memory reserved for use by V4L2",
                name: "DDR3_V4L2",
                base: 0x8DE00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_SR0",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 0",
                name: "DDR3_SR0",
                base: 0x8E000000,
                len: 0x01000000
            }
        ],
        [
            "DDR3_M3",
            {
                comment: "DDR3 Memory reserved for use by the M3 core",
                name: "DDR3_M3",
                base: 0x8F000000,
                len: 0x01000000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3_HOST",
        {
            comment: "DDR3 Memory reserved for use by the A8",
            name: "DDR3_HOST",
            base: 0x80000000,
            len: 0x0D000000
        }
    ],
    [
        "DDR3_SR1",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 1",
            name: "DDR3_SR1",
            base: 0x8D000000,
            len: 0x00C00000
        }
    ],
    [
        "DDR3_HDVPSS",
        {
            comment: "DDR3 Memory reserved for use by HDVPSS",
            name: "DDR3_HDVPSS",
            base: 0x8DC00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_V4L2",
        {
            comment: "DDR3 Memory reserved for use by V4L2",
            name: "DDR3_V4L2",
            base: 0x8DE00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_SR0",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 0",
            name: "DDR3_SR0",
            base: 0x8E000000,
            len: 0x01000000
        }
    ],
    [
        "DDR3_M3",
        {
            comment: "DDR3 Memory reserved for use by the M3 core",
            name: "DDR3_M3",
            base: 0x8F000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:15 GMT


module ti.platforms.evmTI813X.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmTI813X
    16     *
    17     */
    18
    19    package ti.platforms.evmTI813X;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmTI813X
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has 3 CPU's, a host GPP, and 2 M3's.
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "evmTI813X",
    44            boardFamily:    "evmTI813X",
    45            boardRevision:  null
    46        };
    47
    48        /* M3 Subsystem */
    49        readonly config xdc.platform.IExeContext.Cpu DSS = {
    50            id:             "0",
    51            clockRate:      200.0,
    52            catalogName:    "ti.catalog.arm.cortexm3",
    53            deviceName:     "TMS320TI813X",
    54            revision:       "1.0"
    55        };
    56
    57        /* GPP */
    58        readonly config xdc.platform.IExeContext.Cpu GPP = {
    59            id:             "1",
    60            clockRate:      600.0,  /* Typically set by the HLOS */
    61            catalogName:    "ti.catalog.arm.cortexa8",
    62            deviceName:     "TMS320TI813X",
    63            revision:       "1.0"
    64        };
    65
    66    instance:
    67
    68        override readonly config xdc.platform.IPlatform.Memory
    69            externalMemoryMap[string] = [
    70                ["DDR3_HOST", {
    71                    comment: "DDR3 Memory reserved for use by the A8",
    72                    name: "DDR3_HOST",
    73                    base: 0x80000000,
    74                    len:  0x0D000000    /* 196 MB */
    75                }],
    76                ["DDR3_SR1", {
    77                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
    78                    name: "DDR3_SR1",
    79                    base: 0x8D000000,
    80                    len:  0x00C00000    /* 12 MB */
    81                }],
    82                ["DDR3_HDVPSS", {
    83                    comment: "DDR3 Memory reserved for use by HDVPSS",
    84                    name: "DDR3_HDVPSS",
    85                    base: 0x8DC00000,
    86                    len:  0x00200000    /* 2 MB */
    87                }],
    88                ["DDR3_V4L2", {
    89                    comment: "DDR3 Memory reserved for use by V4L2",
    90                    name: "DDR3_V4L2",
    91                    base: 0x8DE00000,
    92                    len:  0x00200000    /* 2 MB */
    93                }],
    94                ["DDR3_SR0", {
    95                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
    96                    name: "DDR3_SR0",
    97                    base: 0x8E000000,
    98                    len:  0x01000000    /* 16 MB */
    99                }],
   100                ["DDR3_M3", {
   101                    comment: "DDR3 Memory reserved for use by the M3 core",
   102                    name: "DDR3_M3",
   103                    base: 0x8F000000,
   104                    len:  0x01000000    /* 16 MB */
   105                }],
   106            ];
   107
   108    };
   109
   110    /*
   111     *  @(#) ti.platforms.evmTI813X; 1, 0, 0,17; 8-17-2012 22:16:04; /db/ztree/library/trees/platform/platform-n27x/src/
   112     */
   113


package ti.platforms.evmTI814X
index URL

Platform package for the evmTI814X platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTI814X platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTI814X/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTI814X [1, 0, 0] {
    module Platform;
    // Platform support for the evmTI814X
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTI814X platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTI814X.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:16 GMT


package ti.platforms.evmTI814X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evmTI814X ========
    24     *  Platform package for the evmTI814X platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evmTI814X platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evmTI814X.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evmTI814X [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evmTI814X; 1, 0, 0,63; 8-17-2012 22:16:07; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evmTI814X.Platform

metaonly module ti.platforms.evmTI814X.Platform
index URL

Platform support for the evmTI814X

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTI814X/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTI814X.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmTI814X",
        boardFamily: "evmTI814X",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 200.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320TI814X",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 500.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320TI814X",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 600.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320TI814X",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3_HOST",
                {
                    comment: "DDR3 Memory reserved for use by the A8",
                    name: "DDR3_HOST",
                    base: 0x80000000,
                    len: 0x0B000000
                }
            ],
            [
                "DDR3_DSP",
                {
                    comment: "DDR3 Memory reserved for use by the C674",
                    name: "DDR3_DSP",
                    base: 0x8B000000,
                    len: 0x02000000
                }
            ],
            [
                "DDR3_SR1",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
                    name: "DDR3_SR1",
                    base: 0x8D000000,
                    len: 0x00C00000
                }
            ],
            [
                "DDR3_HDVPSS",
                {
                    comment: "DDR3 Memory reserved for use by HDVPSS",
                    name: "DDR3_HDVPSS",
                    base: 0x8DC00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_V4L2",
                {
                    comment: "DDR3 Memory reserved for use by V4L2",
                    name: "DDR3_V4L2",
                    base: 0x8DE00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_SR0",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
                    name: "DDR3_SR0",
                    base: 0x8E000000,
                    len: 0x01000000
                }
            ],
            [
                "DDR3_M3",
                {
                    comment: "DDR3 Memory reserved for use by the M3 core",
                    name: "DDR3_M3",
                    base: 0x8F000000,
                    len: 0x01000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C674 DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTI814X",
    boardFamily: "evmTI814X",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 200.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "TMS320TI814X",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 500.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320TI814X",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 600.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320TI814X",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3_HOST",
            {
                comment: "DDR3 Memory reserved for use by the A8",
                name: "DDR3_HOST",
                base: 0x80000000,
                len: 0x0B000000
            }
        ],
        [
            "DDR3_DSP",
            {
                comment: "DDR3 Memory reserved for use by the C674",
                name: "DDR3_DSP",
                base: 0x8B000000,
                len: 0x02000000
            }
        ],
        [
            "DDR3_SR1",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 1",
                name: "DDR3_SR1",
                base: 0x8D000000,
                len: 0x00C00000
            }
        ],
        [
            "DDR3_HDVPSS",
            {
                comment: "DDR3 Memory reserved for use by HDVPSS",
                name: "DDR3_HDVPSS",
                base: 0x8DC00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_V4L2",
            {
                comment: "DDR3 Memory reserved for use by V4L2",
                name: "DDR3_V4L2",
                base: 0x8DE00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_SR0",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 0",
                name: "DDR3_SR0",
                base: 0x8E000000,
                len: 0x01000000
            }
        ],
        [
            "DDR3_M3",
            {
                comment: "DDR3 Memory reserved for use by the M3 core",
                name: "DDR3_M3",
                base: 0x8F000000,
                len: 0x01000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3_HOST",
        {
            comment: "DDR3 Memory reserved for use by the A8",
            name: "DDR3_HOST",
            base: 0x80000000,
            len: 0x0B000000
        }
    ],
    [
        "DDR3_DSP",
        {
            comment: "DDR3 Memory reserved for use by the C674",
            name: "DDR3_DSP",
            base: 0x8B000000,
            len: 0x02000000
        }
    ],
    [
        "DDR3_SR1",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 1",
            name: "DDR3_SR1",
            base: 0x8D000000,
            len: 0x00C00000
        }
    ],
    [
        "DDR3_HDVPSS",
        {
            comment: "DDR3 Memory reserved for use by HDVPSS",
            name: "DDR3_HDVPSS",
            base: 0x8DC00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_V4L2",
        {
            comment: "DDR3 Memory reserved for use by V4L2",
            name: "DDR3_V4L2",
            base: 0x8DE00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_SR0",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 0",
            name: "DDR3_SR0",
            base: 0x8E000000,
            len: 0x01000000
        }
    ],
    [
        "DDR3_M3",
        {
            comment: "DDR3 Memory reserved for use by the M3 core",
            name: "DDR3_M3",
            base: 0x8F000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:16 GMT


module ti.platforms.evmTI814X.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmTI814X
    16     *
    17     */
    18
    19    package ti.platforms.evmTI814X;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmTI814X
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    34     *  C674 DSP.
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmTI814X",
    41            boardFamily:    "evmTI814X",
    42            boardRevision:  null
    43        };
    44
    45        /* C674 GEM */
    46        readonly config xdc.platform.IExeContext.Cpu GEM = {
    47            id:             "0",
    48            clockRate:      500.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320TI814X",
    51            revision:       ""
    52        };
    53
    54        /* M3 Subsystem */
    55        readonly config xdc.platform.IExeContext.Cpu DSS = {
    56            id:             "1",
    57            clockRate:      200.0,
    58            catalogName:    "ti.catalog.arm.cortexm3",
    59            deviceName:     "TMS320TI814X",
    60            revision:       "1.0"
    61        };
    62
    63        /* GPP */
    64        readonly config xdc.platform.IExeContext.Cpu GPP = {
    65            id:             "2",
    66            clockRate:      600.0,  /* Typically set by the HLOS */
    67            catalogName:    "ti.catalog.arm.cortexa8",
    68            deviceName:     "TMS320TI814X",
    69            revision:       "1.0"
    70        };
    71
    72    instance:
    73
    74        override readonly config xdc.platform.IPlatform.Memory
    75            externalMemoryMap[string] = [
    76                ["DDR3_HOST", {
    77                    comment: "DDR3 Memory reserved for use by the A8",
    78                    name: "DDR3_HOST",
    79                    base: 0x80000000,
    80                    len:  0x0B000000    /* 176 MB */
    81                }],
    82                ["DDR3_DSP", {
    83                    comment: "DDR3 Memory reserved for use by the C674",
    84                    name: "DDR3_DSP",
    85                    base: 0x8B000000,
    86                    len:  0x02000000    /* 32 MB */
    87                }],
    88                ["DDR3_SR1", {
    89                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
    90                    name: "DDR3_SR1",
    91                    base: 0x8D000000,
    92                    len:  0x00C00000    /* 12 MB */
    93                }],
    94                ["DDR3_HDVPSS", {
    95                    comment: "DDR3 Memory reserved for use by HDVPSS",
    96                    name: "DDR3_HDVPSS",
    97                    base: 0x8DC00000,
    98                    len:  0x00200000    /* 2 MB */
    99                }],
   100                ["DDR3_V4L2", {
   101                    comment: "DDR3 Memory reserved for use by V4L2",
   102                    name: "DDR3_V4L2",
   103                    base: 0x8DE00000,
   104                    len:  0x00200000    /* 2 MB */
   105                }],
   106                ["DDR3_SR0", {
   107                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
   108                    name: "DDR3_SR0",
   109                    base: 0x8E000000,
   110                    len:  0x01000000    /* 16 MB */
   111                }],
   112                ["DDR3_M3", {
   113                    comment: "DDR3 Memory reserved for use by the M3 core",
   114                    name: "DDR3_M3",
   115                    base: 0x8F000000,
   116                    len:  0x01000000    /* 16 MB */
   117                }],
   118            ];
   119
   120        /*
   121         *  ======== l1PMode ========
   122         *  Define the amount of L1P RAM used for L1 Program Cache.
   123         *
   124         *  Check the device documentation for valid values.
   125         */
   126        config String l1PMode = "32k";
   127
   128        /*
   129         *  ======== l1DMode ========
   130         *  Define the amount of L1D RAM used for L1 Data Cache.
   131         *
   132         *  Check the device documentation for valid values.
   133         */
   134        config String l1DMode = "32k";
   135
   136        /*
   137         *  ======== l2Mode ========
   138         *  Define the amount of L2 RAM used for L2 Cache.
   139         *
   140         *  Check the device documentation for valid values.
   141         */
   142        config String l2Mode = "0k";
   143    };
   144    /*
   145     *  @(#) ti.platforms.evmTI814X; 1, 0, 0,63; 8-17-2012 22:16:07; /db/ztree/library/trees/platform/platform-n27x/src/
   146     */
   147


package ti.platforms.evmTI816X
index URL

Platform package for the evmTI816X platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTI816X platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTI816X/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTI816X [1, 0, 0] {
    module Platform;
    // Platform support for the evmTI816X
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTI816X platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTI816X.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:16 GMT


package ti.platforms.evmTI816X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.evmTI816X ========
    24     *  Platform package for the evmTI816X platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the evmTI816X platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.evmTI816X.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.evmTI816X [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.evmTI816X; 1, 0, 0,68; 8-17-2012 22:16:09; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.evmTI816X.Platform

metaonly module ti.platforms.evmTI816X.Platform
index URL

Platform support for the evmTI816X

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTI816X/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTI816X.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmTI816X",
        boardFamily: "evmTI816X",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 250.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320TI816X",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 800.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320TI816X",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 1000.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320TI816X",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3_HOST",
                {
                    comment: "DDR3 Memory reserved for use by the A8",
                    name: "DDR3_HOST",
                    base: 0x80000000,
                    len: 0x0B000000
                }
            ],
            [
                "DDR3_DSP",
                {
                    comment: "DDR3 Memory reserved for use by the C674",
                    name: "DDR3_DSP",
                    base: 0x8B000000,
                    len: 0x02000000
                }
            ],
            [
                "DDR3_SR1",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
                    name: "DDR3_SR1",
                    base: 0x8D000000,
                    len: 0x00C00000
                }
            ],
            [
                "DDR3_HDVPSS",
                {
                    comment: "DDR3 Memory reserved for use by HDVPSS",
                    name: "DDR3_HDVPSS",
                    base: 0x8DC00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_V4L2",
                {
                    comment: "DDR3 Memory reserved for use by V4L2",
                    name: "DDR3_V4L2",
                    base: 0x8DE00000,
                    len: 0x00200000
                }
            ],
            [
                "DDR3_SR0",
                {
                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
                    name: "DDR3_SR0",
                    base: 0x8E000000,
                    len: 0x01000000
                }
            ],
            [
                "DDR3_M3",
                {
                    comment: "DDR3 Memory reserved for use by the M3 core",
                    name: "DDR3_M3",
                    base: 0x8F000000,
                    len: 0x01000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C674 DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTI816X",
    boardFamily: "evmTI816X",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 250.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "TMS320TI816X",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 800.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320TI816X",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 1000.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320TI816X",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3_HOST",
            {
                comment: "DDR3 Memory reserved for use by the A8",
                name: "DDR3_HOST",
                base: 0x80000000,
                len: 0x0B000000
            }
        ],
        [
            "DDR3_DSP",
            {
                comment: "DDR3 Memory reserved for use by the C674",
                name: "DDR3_DSP",
                base: 0x8B000000,
                len: 0x02000000
            }
        ],
        [
            "DDR3_SR1",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 1",
                name: "DDR3_SR1",
                base: 0x8D000000,
                len: 0x00C00000
            }
        ],
        [
            "DDR3_HDVPSS",
            {
                comment: "DDR3 Memory reserved for use by HDVPSS",
                name: "DDR3_HDVPSS",
                base: 0x8DC00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_V4L2",
            {
                comment: "DDR3 Memory reserved for use by V4L2",
                name: "DDR3_V4L2",
                base: 0x8DE00000,
                len: 0x00200000
            }
        ],
        [
            "DDR3_SR0",
            {
                comment: "DDR3 Memory reserved for use by SharedRegion 0",
                name: "DDR3_SR0",
                base: 0x8E000000,
                len: 0x01000000
            }
        ],
        [
            "DDR3_M3",
            {
                comment: "DDR3 Memory reserved for use by the M3 core",
                name: "DDR3_M3",
                base: 0x8F000000,
                len: 0x01000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3_HOST",
        {
            comment: "DDR3 Memory reserved for use by the A8",
            name: "DDR3_HOST",
            base: 0x80000000,
            len: 0x0B000000
        }
    ],
    [
        "DDR3_DSP",
        {
            comment: "DDR3 Memory reserved for use by the C674",
            name: "DDR3_DSP",
            base: 0x8B000000,
            len: 0x02000000
        }
    ],
    [
        "DDR3_SR1",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 1",
            name: "DDR3_SR1",
            base: 0x8D000000,
            len: 0x00C00000
        }
    ],
    [
        "DDR3_HDVPSS",
        {
            comment: "DDR3 Memory reserved for use by HDVPSS",
            name: "DDR3_HDVPSS",
            base: 0x8DC00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_V4L2",
        {
            comment: "DDR3 Memory reserved for use by V4L2",
            name: "DDR3_V4L2",
            base: 0x8DE00000,
            len: 0x00200000
        }
    ],
    [
        "DDR3_SR0",
        {
            comment: "DDR3 Memory reserved for use by SharedRegion 0",
            name: "DDR3_SR0",
            base: 0x8E000000,
            len: 0x01000000
        }
    ],
    [
        "DDR3_M3",
        {
            comment: "DDR3 Memory reserved for use by the M3 core",
            name: "DDR3_M3",
            base: 0x8F000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:16 GMT


module ti.platforms.evmTI816X.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for evmTI816X
    16     *
    17     */
    18
    19    package ti.platforms.evmTI816X;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the evmTI816X
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    34     *  C674 DSP.
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "evmTI816X",
    41            boardFamily:    "evmTI816X",
    42            boardRevision:  null
    43        };
    44
    45        /* C674 GEM */
    46        readonly config xdc.platform.IExeContext.Cpu GEM = {
    47            id:             "0",
    48            clockRate:      800.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320TI816X",
    51            revision:       ""
    52        };
    53
    54        /* M3 Subsystem */
    55        readonly config xdc.platform.IExeContext.Cpu DSS = {
    56            id:             "1",
    57            clockRate:      250.0,
    58            catalogName:    "ti.catalog.arm.cortexm3",
    59            deviceName:     "TMS320TI816X",
    60            revision:       "1.0"
    61        };
    62
    63        /* GPP */
    64        readonly config xdc.platform.IExeContext.Cpu GPP = {
    65            id:             "2",
    66            clockRate:      1000.0,  /* Typically set by the HLOS */
    67            catalogName:    "ti.catalog.arm.cortexa8",
    68            deviceName:     "TMS320TI816X",
    69            revision:       "1.0"
    70        };
    71
    72    instance:
    73
    74        override readonly config xdc.platform.IPlatform.Memory
    75            externalMemoryMap[string] = [
    76                ["DDR3_HOST", {
    77                    comment: "DDR3 Memory reserved for use by the A8",
    78                    name: "DDR3_HOST",
    79                    base: 0x80000000,
    80                    len:  0x0B000000    /* 176 MB */
    81                }],
    82                ["DDR3_DSP", {
    83                    comment: "DDR3 Memory reserved for use by the C674",
    84                    name: "DDR3_DSP",
    85                    base: 0x8B000000,
    86                    len:  0x02000000    /* 32 MB */
    87                }],
    88                ["DDR3_SR1", {
    89                    comment: "DDR3 Memory reserved for use by SharedRegion 1",
    90                    name: "DDR3_SR1",
    91                    base: 0x8D000000,
    92                    len:  0x00C00000    /* 12 MB */
    93                }],
    94                ["DDR3_HDVPSS", {
    95                    comment: "DDR3 Memory reserved for use by HDVPSS",
    96                    name: "DDR3_HDVPSS",
    97                    base: 0x8DC00000,
    98                    len:  0x00200000    /* 2 MB */
    99                }],
   100                ["DDR3_V4L2", {
   101                    comment: "DDR3 Memory reserved for use by V4L2",
   102                    name: "DDR3_V4L2",
   103                    base: 0x8DE00000,
   104                    len:  0x00200000    /* 2 MB */
   105                }],
   106                ["DDR3_SR0", {
   107                    comment: "DDR3 Memory reserved for use by SharedRegion 0",
   108                    name: "DDR3_SR0",
   109                    base: 0x8E000000,
   110                    len:  0x01000000    /* 16 MB */
   111                }],
   112                ["DDR3_M3", {
   113                    comment: "DDR3 Memory reserved for use by the M3 core",
   114                    name: "DDR3_M3",
   115                    base: 0x8F000000,
   116                    len:  0x01000000    /* 16 MB */
   117                }],
   118            ];
   119
   120        /*
   121         *  ======== l1PMode ========
   122         *  Define the amount of L1P RAM used for L1 Program Cache.
   123         *
   124         *  Check the device documentation for valid values.
   125         */
   126        config String l1PMode = "32k";
   127
   128        /*
   129         *  ======== l1DMode ========
   130         *  Define the amount of L1D RAM used for L1 Data Cache.
   131         *
   132         *  Check the device documentation for valid values.
   133         */
   134        config String l1DMode = "32k";
   135
   136        /*
   137         *  ======== l2Mode ========
   138         *  Define the amount of L2 RAM used for L2 Cache.
   139         *
   140         *  Check the device documentation for valid values.
   141         */
   142        config String l2Mode = "0k";
   143    };
   144    /*
   145     *  @(#) ti.platforms.evmTI816X; 1, 0, 0,68; 8-17-2012 22:16:09; /db/ztree/library/trees/platform/platform-n27x/src/
   146     */
   147


package ti.platforms.evmTMS570
index URL

Platform package for the evmTMS570 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTMS570 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTMS570/package.xdc
requires ti.catalog.arm.cortexr4;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTMS570 [1, 0, 1, 1] {
    module Platform;
    // Simulation-based Platform support for TI Arm (470x) platforms
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTMS570 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTMS570.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:17 GMT


package ti.platforms.evmTMS570

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.arm.cortexr4;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmTMS570 ========
    18     *  Platform package for the evmTMS570 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evmTMS570 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmTMS570.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmTMS570 [1,0,1,1] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmTMS570; 1, 0, 1, 1,208; 8-17-2012 22:16:10; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmTMS570.Platform

metaonly module ti.platforms.evmTMS570.Platform
index URL

Simulation-based Platform support for TI Arm (470x) platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTMS570/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTMS570.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "evmTMS570",
        boardFamily: "evmTMS570",
        boardRevision: null
    };
    const Platform.CPU// The Cortex R4 core = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.arm.cortexr4",
        deviceName: "TMS570PSF762",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "IRAM";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.flash_lo// Determines which of two flash/iram configurations to use = Bool true;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "IRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTMS570",
    boardFamily: "evmTMS570",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The Cortex R4 core

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.arm.cortexr4",
    deviceName: "TMS570PSF762",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "IRAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.flash_lo = Bool true;
    // Determines which of two flash/iram configurations to use
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "IRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.flash_lo // instance
index URL

Determines which of two flash/iram configurations to use

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.flash_lo = Bool true;
DETAILS
if true, then FLASH memory occupies low memory and IRAM occupies high memory. if false, then FLASH memory occupies high memory and IRAM occupies low memory.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:17 GMT


module ti.platforms.evmTMS570.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evmTMS570;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Simulation-based Platform support for TI Arm (470x) platforms
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  This platform's board attributes
    41         */
    42        readonly config xdc.platform.IPlatform.Board BOARD = {
    43            id:             "0",
    44            boardName:      "evmTMS570",
    45            boardFamily:    "evmTMS570",
    46            boardRevision:  null
    47        };
    48
    49        /*!
    50         *  ======== CPU ========
    51         *  The  Cortex R4 core
    52         */
    53        readonly config xdc.platform.IExeContext.Cpu CPU = {
    54            id:             "0",
    55            clockRate:      150.0,
    56            catalogName:    "ti.catalog.arm.cortexr4",
    57            deviceName:     "TMS570PSF762",
    58            revision:       "",
    59        };
    60
    61    instance:
    62
    63
    64        /*!
    65         *  ======== flash_lo ========
    66         *  Determines which of two flash/iram configurations to use.
    67         *
    68         *  if true, then FLASH memory occupies low memory and IRAM occupies high memory.
    69         *  if false, then FLASH memory occupies high memory and IRAM occupies low memory.
    70         */
    71        config Bool flash_lo = true;
    72
    73        /*!
    74         *  ======== deviceName ========
    75         *  The CPU simulated by this simulator platform.
    76         *
    77         *  This parameter is optional. If it's not set, then the Platform module
    78         *  parameter CPU.deviceName is used.
    79         */
    80        config string deviceName;
    81
    82        override config string codeMemory = "FLASH";
    83        override config string dataMemory = "IRAM";
    84        override config string stackMemory = "IRAM";
    85    };
    86    /*
    87     *  @(#) ti.platforms.evmTMS570; 1, 0, 1, 1,208; 8-17-2012 22:16:10; /db/ztree/library/trees/platform/platform-n27x/src/
    88     */
    89


package ti.platforms.evmTMS570LS20216
index URL

Platform package for the evmTMS570 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTMS570 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTMS570LS20216/package.xdc
requires ti.catalog.arm.cortexr4;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTMS570LS20216 [1, 0, 1, 1] {
    module Platform;
    // Simulation-based Platform support for TI Arm (470x) platforms
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTMS570 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTMS570.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:17 GMT


package ti.platforms.evmTMS570LS20216

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.arm.cortexr4;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmTMS570LS20216 ========
    18     *  Platform package for the evmTMS570 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evmTMS570 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmTMS570.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmTMS570LS20216 [1,0,1,1] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmTMS570LS20216; 1, 0, 1, 1,109; 8-17-2012 22:16:13; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmTMS570LS20216.Platform

metaonly module ti.platforms.evmTMS570LS20216.Platform
index URL

Simulation-based Platform support for TI Arm (470x) platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTMS570LS20216/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTMS570LS20216.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "evmTMS570LS20216",
        boardFamily: "evmTMS570",
        boardRevision: null
    };
    const Platform.CPU// The Cortex R4 core = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.arm.cortexr4",
        deviceName: "TMS570LS20216",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "IRAM";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.flash_lo// Determines which of two flash/iram configurations to use = Bool true;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "IRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTMS570LS20216",
    boardFamily: "evmTMS570",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The Cortex R4 core

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.arm.cortexr4",
    deviceName: "TMS570LS20216",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "IRAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.flash_lo = Bool true;
    // Determines which of two flash/iram configurations to use
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "IRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.flash_lo // instance
index URL

Determines which of two flash/iram configurations to use

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.flash_lo = Bool true;
DETAILS
if true, then FLASH memory occupies low memory and IRAM occupies high memory. if false, then FLASH memory occupies high memory and IRAM occupies low memory.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:17 GMT


module ti.platforms.evmTMS570LS20216.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evmTMS570LS20216;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Simulation-based Platform support for TI Arm (470x) platforms
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  This platform's board attributes
    41         */
    42        readonly config xdc.platform.IPlatform.Board BOARD = {
    43            id:             "0",
    44            boardName:      "evmTMS570LS20216",
    45            boardFamily:    "evmTMS570",
    46            boardRevision:  null
    47        };
    48
    49        /*!
    50         *  ======== CPU ========
    51         *  The  Cortex R4 core
    52         */
    53        readonly config xdc.platform.IExeContext.Cpu CPU = {
    54            id:             "0",
    55            clockRate:      150.0,
    56            catalogName:    "ti.catalog.arm.cortexr4",
    57            deviceName:     "TMS570LS20216",
    58            revision:       "",
    59        };
    60
    61    instance:
    62
    63        /*!
    64         *  ======== flash_lo ========
    65         *  Determines which of two flash/iram configurations to use.
    66         *
    67         *  if true, then FLASH memory occupies low memory and IRAM occupies high memory.
    68         *  if false, then FLASH memory occupies high memory and IRAM occupies low memory.
    69         */
    70        config Bool flash_lo = true;
    71
    72        /*!
    73         *  ======== deviceName ========
    74         *  The CPU simulated by this simulator platform.
    75         *
    76         *  This parameter is optional. If it's not set, then the Platform module
    77         *  parameter CPU.deviceName is used.
    78         */
    79        config string deviceName;
    80
    81        override config string codeMemory = "FLASH";
    82        override config string dataMemory = "IRAM";
    83        override config string stackMemory = "IRAM";
    84    };
    85    /*
    86     *  @(#) ti.platforms.evmTMS570LS20216; 1, 0, 1, 1,109; 8-17-2012 22:16:13; /db/ztree/library/trees/platform/platform-n27x/src/
    87     */
    88


package ti.platforms.evmTMS570PSF762
index URL

Platform package for the evmTMS570 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTMS570 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTMS570PSF762/package.xdc
requires ti.catalog.arm.cortexr4;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTMS570PSF762 [1, 0, 1, 1] {
    module Platform;
    // Simulation-based Platform support for TI Arm (470x) platforms
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTMS570 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTMS570.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:17 GMT


package ti.platforms.evmTMS570PSF762

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.arm.cortexr4;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.evmTMS570 ========
    18     *  Platform package for the evmTMS570 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the evmTMS570 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.evmTMS570.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.evmTMS570PSF762 [1,0,1,1] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.evmTMS570PSF762; 1, 0, 1, 1,109; 8-17-2012 22:16:15; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.evmTMS570PSF762.Platform

metaonly module ti.platforms.evmTMS570PSF762.Platform
index URL

Simulation-based Platform support for TI Arm (470x) platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTMS570PSF762/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTMS570PSF762.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "evmTMS570PSF762",
        boardFamily: "evmTMS570",
        boardRevision: null
    };
    const Platform.CPU// The Cortex R4 core = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.arm.cortexr4",
        deviceName: "TMS570PSF762",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "IRAM";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.flash_lo// Determines which of two flash/iram configurations to use = Bool true;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "IRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTMS570PSF762",
    boardFamily: "evmTMS570",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The Cortex R4 core

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.arm.cortexr4",
    deviceName: "TMS570PSF762",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "IRAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.flash_lo = Bool true;
    // Determines which of two flash/iram configurations to use
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "IRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.flash_lo // instance
index URL

Determines which of two flash/iram configurations to use

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.flash_lo = Bool true;
DETAILS
if true, then FLASH memory occupies low memory and IRAM occupies high memory. if false, then FLASH memory occupies high memory and IRAM occupies low memory.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:17 GMT


module ti.platforms.evmTMS570PSF762.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.evmTMS570PSF762;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Simulation-based Platform support for TI Arm (470x) platforms
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  This platform's board attributes
    41         */
    42        readonly config xdc.platform.IPlatform.Board BOARD = {
    43            id:             "0",
    44            boardName:      "evmTMS570PSF762",
    45            boardFamily:    "evmTMS570",
    46            boardRevision:  null
    47        };
    48
    49        /*!
    50         *  ======== CPU ========
    51         *  The  Cortex R4 core
    52         */
    53        readonly config xdc.platform.IExeContext.Cpu CPU = {
    54            id:             "0",
    55            clockRate:      150.0,
    56            catalogName:    "ti.catalog.arm.cortexr4",
    57            deviceName:     "TMS570PSF762",
    58            revision:       "",
    59        };
    60
    61    instance:
    62
    63        /*!
    64         *  ======== flash_lo ========
    65         *  Determines which of two flash/iram configurations to use.
    66         *
    67         *  if true, then FLASH memory occupies low memory and IRAM occupies high memory.
    68         *  if false, then FLASH memory occupies high memory and IRAM occupies low memory.
    69         */
    70        config Bool flash_lo = true;
    71
    72        /*!
    73         *  ======== deviceName ========
    74         *  The CPU simulated by this simulator platform.
    75         *
    76         *  This parameter is optional. If it's not set, then the Platform module
    77         *  parameter CPU.deviceName is used.
    78         */
    79        config string deviceName;
    80
    81        override config string codeMemory = "FLASH";
    82        override config string dataMemory = "IRAM";
    83        override config string stackMemory = "IRAM";
    84    };
    85    /*
    86     *  @(#) ti.platforms.evmTMS570PSF762; 1, 0, 1, 1,109; 8-17-2012 22:16:15; /db/ztree/library/trees/platform/platform-n27x/src/
    87     */
    88


package ti.platforms.evmTNETV107X
index URL

Platform package for the DaVinci evmTNETV107X platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTNETV107X platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTNETV107X/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.evmTNETV107X [1, 0, 0, 1] {
    module Platform;
    // Platform support for the evmTNETV107X
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTNETV107X platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTNETV107X.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:18 GMT


package ti.platforms.evmTNETV107X

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     */
    16
    17    requires ti.catalog.c6000;
    18    requires xdc.platform [1,0,1];
    19
    20    /*!
    21     *  ======== ti.platforms.evmTNETV107X ========
    22     *  Platform package for the DaVinci evmTNETV107X platform.
    23     *
    24     *  This package implements the interfaces (xdc.platform.IPlatform)
    25     *  necessary to build and run executables on the evmTNETV107X platform.
    26     *
    27     *  @a(Throws)
    28     *  `XDCException` exceptions are thrown for fatal errors. The following error
    29     *  codes are reported in the exception message:
    30     *  @p(dlist)
    31     *      -  `ti.platfoms.evmTNETV107X.LINK_TEMPLATE_ERROR`
    32     *           This error is raised when this platform cannot found the default
    33     *           linker command template `linkcmd.xdt` in the build target's
    34     *           package. When a target does not contain this file, the config
    35     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    36     *  @p
    37     */
    38    package ti.platforms.evmTNETV107X [1,0,0,1] {
    39        module Platform;
    40    }
    41    /*
    42     *  @(#) ti.platforms.evmTNETV107X; 1, 0, 0, 1,109; 8-17-2012 22:16:17; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.platforms.evmTNETV107X.Platform

metaonly module ti.platforms.evmTNETV107X.Platform
index URL

Platform support for the evmTNETV107X

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTNETV107X/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTNETV107X.Platform');
module-wide constants & types
    values of type Platform.RuntimeEnv//
        const Platform.STDIO;
        const Platform.POSIX;
        const Platform.BIOS;
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmTNETV107X",
        boardFamily: "evmTNETV107X",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 400.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TNETV107X",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 400.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TNETV107X",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.runTime// The runtime environment available to executables = Platform.RuntimeEnv Platform.STDIO;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
enum Platform.RuntimeEnv
index URL
XDCscript usage meta-domain
values of type Platform.RuntimeEnv
    const Platform.STDIO;
    const Platform.POSIX;
    const Platform.BIOS;
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTNETV107X",
    boardFamily: "evmTNETV107X",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 400.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TNETV107X",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 400.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TNETV107X",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.runTime = Platform.RuntimeEnv Platform.STDIO;
    // The runtime environment available to executables
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.runTime // instance
index URL

The runtime environment available to executables

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.runTime = Platform.RuntimeEnv Platform.STDIO;
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:18 GMT


module ti.platforms.evmTNETV107X.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmTNETV107X
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     */
    30
    31    metaonly module Platform inherits xdc.platform.IPlatform
    32    {
    33        enum RuntimeEnv {
    34            STDIO,
    35            POSIX,
    36            BIOS
    37        };
    38
    39        readonly config xdc.platform.IPlatform.Board BOARD = {
    40            id:             "0",
    41            boardName:      "evmTNETV107X",
    42            boardFamily:    "evmTNETV107X",
    43            boardRevision:  null,
    44        };
    45
    46        readonly config xdc.platform.IExeContext.Cpu DSP = {
    47            id:             "0",
    48            clockRate:      400.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TNETV107X",
    51            revision:       "1.0",
    52        };
    53
    54        readonly config xdc.platform.IExeContext.Cpu GPP = {
    55            id:             "1",
    56            clockRate:      400.0,
    57            catalogName:    "ti.catalog.arm",
    58            deviceName:     "TNETV107X",
    59            revision:       "1.0",
    60        };
    61
    62    instance:
    63
    64        override readonly config xdc.platform.IPlatform.Memory
    65            externalMemoryMap[string] = [
    66                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x10000000}],
    67            ];
    68
    69        /* default segment for code sections */
    70        override config string codeMemory = "DDR2";
    71
    72        /* default segment for data sections */
    73        override config string dataMemory = "DDR2";
    74
    75        /* default segment for stack sections */
    76        override config string stackMemory = "DDR2";
    77
    78        /*!
    79         *  ======== runTime ========
    80         *  The runtime environment available to executables
    81         */
    82        config RuntimeEnv runTime = STDIO;
    83
    84        /*!
    85         *  ======== singleCore ========
    86         *  no longer used!
    87         * @_nodoc
    88         */
    89        config Bool singleCore = true;
    90
    91        /*
    92         *  ======== l1PMode ========
    93         *  Define the amount of L1P RAM used for L1 Program Cache.
    94         *
    95         *  Check the device documentation for valid values.
    96         */
    97        config String l1PMode = "32k";
    98
    99        /*
   100         *  ======== l1DMode ========
   101         *  Define the amount of L1D RAM used for L1 Data Cache.
   102         *
   103         *  Check the device documentation for valid values.
   104         */
   105        config String l1DMode = "32k";
   106
   107        /*
   108         *  ======== l2Mode ========
   109         *  Define the amount of L2 RAM used for L2 Cache.
   110         *
   111         *  Check the device documentation for valid values.
   112         */
   113        config String l2Mode = "0k";
   114    }
   115    /*
   116     *  @(#) ti.platforms.evmTNETV107X; 1, 0, 0, 1,109; 8-17-2012 22:16:17; /db/ztree/library/trees/platform/platform-n27x/src/
   117     */
   118


package ti.platforms.evmTNETV2685
index URL

Platform package for the evmTNETV2685 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTNETV2685 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/evmTNETV2685/package.xdc
requires ti.catalog.c6000;
package ti.platforms.evmTNETV2685 [1, 0, 1] {
    module Platform;
    // Platform support for the evmTNETV2685
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the evmTNETV2685 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.evmTNETV2685.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:18 GMT


package ti.platforms.evmTNETV2685

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19
    20    /*!
    21     *  ======== ti.platforms.evmTNETV2685 ========
    22     *  Platform package for the evmTNETV2685 platform.
    23     *
    24     *  This package implements the interfaces (xdc.platform.IPlatform)
    25     *  necessary to build and run executables on the evmTNETV2685 platform.
    26     *
    27     *  @a(Throws)
    28     *  `XDCException` exceptions are thrown for fatal errors. The following error
    29     *  codes are reported in the exception message:
    30     *  @p(dlist)
    31     *      -  `ti.platfoms.evmTNETV2685.LINK_TEMPLATE_ERROR`
    32     *           This error is raised when this platform cannot found the default
    33     *           linker command template `linkcmd.xdt` in the build target's
    34     *           package. When a target does not contain this file, the config
    35     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    36     *  @p
    37     */
    38    package ti.platforms.evmTNETV2685 [1,0,1] {
    39        module Platform;
    40    }
    41    /*
    42     *  @(#) ti.platforms.evmTNETV2685; 1, 0, 1,321; 8-17-2012 22:16:20; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.platforms.evmTNETV2685.Platform

metaonly module ti.platforms.evmTNETV2685.Platform
index URL

Platform support for the evmTNETV2685

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/evmTNETV2685/Platform.xdc
var Platform = xdc.useModule('ti.platforms.evmTNETV2685.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "evmTNETV2685",
        boardFamily: "evmTNETV2685",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 500,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CTNETV2685",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR2";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR2";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0xE0000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR2";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "evmTNETV2685",
    boardFamily: "evmTNETV2685",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 500,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CTNETV2685",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR2";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR2";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0xE0000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR2";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0xE0000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR2";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:18 GMT


module ti.platforms.evmTNETV2685.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the evmTNETV2685
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "evmTNETV2685",
    40            boardFamily:    "evmTNETV2685",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      500,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320CTNETV2685",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["DDR2", {name: "DDR2", base: 0xE0000000, len: 0x10000000}],
    57            ];
    58
    59        override config string codeMemory = "DDR2";
    60
    61        override config string dataMemory = "DDR2";
    62
    63        override config string stackMemory = "DDR2";
    64
    65        /*
    66         *  ======== l1PMode ========
    67         *  Define the amount of L1P RAM used for L1 Program Cache.
    68         *
    69         *  Check the device documentation for valid values.
    70         */
    71        config String l1PMode = "32k";
    72
    73        /*
    74         *  ======== l1DMode ========
    75         *  Define the amount of L1D RAM used for L1 Data Cache.
    76         *
    77         *  Check the device documentation for valid values.
    78         */
    79        config String l1DMode = "32k";
    80
    81        /*
    82         *  ======== l2Mode ========
    83         *  Define the amount of L2 RAM used for L2 Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l2Mode = "0k";
    88    };
    89    /*
    90     *  @(#) ti.platforms.evmTNETV2685; 1, 0, 1,321; 8-17-2012 22:16:20; /db/ztree/library/trees/platform/platform-n27x/src/
    91     */
    92


package ti.platforms.exp430F5438
index URL

Platform package for the exp430F5438 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the exp430F5438 platform.
XDCspec declarations sourced in ti/platforms/exp430F5438/package.xdc
requires ti.catalog.msp430;
requires xdc.platform[1, 0, 1];
package ti.platforms.exp430F5438 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the exp430F5438
}
generated on Thu, 08 Nov 2012 02:18:35 GMT


package ti.platforms.exp430F5438

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    requires ti.catalog.msp430;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.exp430F5438 ========
    17     *  Platform package for the exp430F5438 platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the exp430F5438 platform.
    21     */
    22    package ti.platforms.exp430F5438 [1,0,0,0] {
    23        module Platform;
    24    }


module ti.platforms.exp430F5438.Platform

metaonly module ti.platforms.exp430F5438.Platform
index URL

Platform support for the exp430F5438

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/exp430F5438/Platform.xdc
var Platform = xdc.useModule('ti.platforms.exp430F5438.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "exp430F5438",
        boardFamily: "exp430F5438",
        boardRevision: null
    };
    const Platform.CPU// The CPU supported by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 8.0,
        catalogName: "ti.catalog.msp430",
        deviceName: "MSP430F5438",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "RAM";
        params.deviceName// The CPU supported by this platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "exp430F5438",
    boardFamily: "exp430F5438",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU supported by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 8.0,
    catalogName: "ti.catalog.msp430",
    deviceName: "MSP430F5438",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "RAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU supported by this platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU supported by this platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:35 GMT


module ti.platforms.exp430F5438.Platform

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.exp430F5438;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the exp430F5438
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "exp430F5438",
    44            boardFamily:    "exp430F5438",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         *  The CPU supported by this platform.
    51         *
    52         */
    53        readonly config xdc.platform.IExeContext.Cpu CPU = {
    54            id:             "0",
    55            clockRate:      8.0,
    56            catalogName:    "ti.catalog.msp430",
    57            deviceName:     "MSP430F5438",
    58            revision:       "",
    59        };
    60
    61    instance:
    62
    63        /*!
    64         *  ======== deviceName ========
    65         *  The CPU supported by this platform.
    66         *
    67         *  This parameter is optional. If it's not set, then the Platform module
    68         *  parameter CPU.deviceName is used.
    69         */
    70        config string deviceName;
    71
    72        override config string codeMemory = "FLASH";
    73
    74        override config string dataMemory = "RAM";
    75
    76        override config string stackMemory = "RAM";
    77    };


package ti.platforms.exp430F5529
index URL

Platform package for the exp430F5529 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the exp430F5529 platform.
XDCspec declarations sourced in ti/platforms/exp430F5529/package.xdc
requires ti.catalog.msp430;
requires xdc.platform[1, 0, 1];
package ti.platforms.exp430F5529 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the exp430F5529
}
generated on Thu, 08 Nov 2012 02:18:36 GMT


package ti.platforms.exp430F5529

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    requires ti.catalog.msp430;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.exp430F5529 ========
    17     *  Platform package for the exp430F5529 platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the exp430F5529 platform.
    21     */
    22    package ti.platforms.exp430F5529 [1,0,0,0] {
    23        module Platform;
    24    }


module ti.platforms.exp430F5529.Platform

metaonly module ti.platforms.exp430F5529.Platform
index URL

Platform support for the exp430F5529

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/exp430F5529/Platform.xdc
var Platform = xdc.useModule('ti.platforms.exp430F5529.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "exp430F5529",
        boardFamily: "exp430F5529",
        boardRevision: null
    };
    const Platform.CPU// The CPU supported by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 8.0,
        catalogName: "ti.catalog.msp430",
        deviceName: "MSP430F5529",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "RAM";
        params.deviceName// = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.genFullCmdFile// Enable generation of full linker command file = Bool true;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "exp430F5529",
    boardFamily: "exp430F5529",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU supported by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 8.0,
    catalogName: "ti.catalog.msp430",
    deviceName: "MSP430F5529",
    revision: ""
};
DETAILS
See http://www.ti.com/lit/gpn/MSP430F5529 and http://www.ti.com/lit/pdf/slau208 for complete details.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "RAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    //
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.genFullCmdFile = Bool true;
    // Enable generation of full linker command file
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.genFullCmdFile // instance
index URL

Enable generation of full linker command file

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.genFullCmdFile = Bool true;
DETAILS
If set to true, the platform will generate the complete linker command file rather than require the user to supply one on the link line.
If an instance of this platform is created with the name "genFullCmdFile", this genFullCmdFile will be set to true. This enables one to easily create a platform instance for which this parameter is true.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:36 GMT


module ti.platforms.exp430F5529.Platform

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.exp430F5529;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the exp430F5529
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  This particular platform has a single Cpu, and therefore, only
    26     *  declares a single CPU configuration object.  Multi-CPU platforms
    27     *  would declare multiple Cpu configuration parameters (one per
    28     *  platform CPU).
    29     */
    30    metaonly module Platform inherits xdc.platform.IPlatform
    31    {
    32        /*!
    33         *  ======== BOARD ========
    34         *  This platform's board attributes
    35         */
    36        readonly config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "exp430F5529",
    39            boardFamily:    "exp430F5529",
    40            boardRevision:  null
    41        };
    42
    43        /*!
    44         *  ======== CPU ========
    45         *  The CPU supported by this platform.
    46         *
    47         *  See {@link http://www.ti.com/lit/gpn/MSP430F5529} and
    48         *  {@link http://www.ti.com/lit/pdf/slau208} for complete details.
    49         */
    50        readonly config xdc.platform.IExeContext.Cpu CPU = {
    51            id:             "0",
    52            clockRate:      8.0,
    53            catalogName:    "ti.catalog.msp430",
    54            deviceName:     "MSP430F5529",
    55            revision:       "",
    56        };
    57
    58    instance:
    59
    60        config String deviceName;
    61
    62        /*!
    63         *  ======== genFullCmdFile ========
    64         *  Enable generation of full linker command file
    65         *
    66         *  If set to `true`, the platform will generate the complete linker
    67         *  command file rather than require the user to supply one on the
    68         *  link line.
    69         *
    70         *  If an instance of this platform is created with the name
    71         *  "`genFullCmdFile`", this `genFullCmdFile` will be set to `true`.
    72         *  This enables one to easily create a platform instance for which this
    73         *  parameter is `true`.
    74         */
    75        config Bool genFullCmdFile = true;
    76
    77        override config String codeMemory = "FLASH";
    78
    79        override config String dataMemory = "RAM";
    80
    81        override config String stackMemory = "RAM";
    82    };


package ti.platforms.expOMAPL138
index URL

Platform package for the expOMAPL138 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the expOMAPL138 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/expOMAPL138/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.expOMAPL138 [1, 0, 0] {
    module Platform;
    // Platform support for the expOMAPL138
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the expOMAPL138 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.expOMAPL138.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:19 GMT


package ti.platforms.expOMAPL138

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.expOMAPL138 ========
    18     *  Platform package for the expOMAPL138 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the expOMAPL138 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.expOMAPL138.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.expOMAPL138 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.expOMAPL138; 1, 0, 0,128; 8-17-2012 22:16:21; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.expOMAPL138.Platform

metaonly module ti.platforms.expOMAPL138.Platform
index URL

Platform support for the expOMAPL138

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/expOMAPL138/Platform.xdc
var Platform = xdc.useModule('ti.platforms.expOMAPL138.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "expOMAPL138",
        boardFamily: "expOMAPL138",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 300.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "OMAPL138",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 300.0,
        catalogName: "ti.catalog.arm",
        deviceName: "OMAPL138",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR",
                {
                    name: "DDR",
                    base: 0xC3000000,
                    len: 0x01000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "expOMAPL138",
    boardFamily: "expOMAPL138",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 300.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "OMAPL138",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 300.0,
    catalogName: "ti.catalog.arm",
    deviceName: "OMAPL138",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR",
            {
                name: "DDR",
                base: 0xC3000000,
                len: 0x01000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR",
        {
            name: "DDR",
            base: 0xC3000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:19 GMT


module ti.platforms.expOMAPL138.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.expOMAPL138;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the expOMAPL138
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "expOMAPL138",
    41            boardFamily:    "expOMAPL138",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu DSP = {
    46            id:             "0",
    47            clockRate:      300.0,
    48            catalogName:    "ti.catalog.c6000",
    49            deviceName:     "OMAPL138",
    50            revision:       "",
    51        };
    52
    53        readonly config xdc.platform.IExeContext.Cpu GPP = {
    54            id:             "1",
    55            clockRate:      300.0,
    56            catalogName:    "ti.catalog.arm",
    57            deviceName:     "OMAPL138",
    58            revision:       "1.0",
    59        };
    60    instance:
    61
    62        /*
    63         *  DDR is 64MByte but we need to share it with Arm.
    64         *  Reserve 32MB for Arm/Linux (base: 0xC000000)
    65         *  16MB for shared Arm/DSP (base: 0xC2000000)
    66         *  16MB for DSP (base: 0xC3000000)
    67         */
    68        override readonly config xdc.platform.IPlatform.Memory
    69            externalMemoryMap[string] = [
    70                ["DDR",  {name: "DDR",  base: 0xC3000000, len: 0x01000000}],
    71            ];
    72
    73        /*
    74         *  ======== sectMap ========
    75         *  Define a placement of compiler generated output sections into
    76         *  memory regions defined in the memTab above.
    77         */
    78        override config string codeMemory = "DDR";
    79
    80        override config string dataMemory = "DDR";
    81
    82        override config string stackMemory = "DDR";
    83
    84        /*
    85         *  ======== l1PMode ========
    86         *  Define the amount of L1P RAM used for L1 Program Cache.
    87         *
    88         *  Check the device documentation for valid values.
    89         */
    90        config String l1PMode = "32k";
    91
    92        /*
    93         *  ======== l1DMode ========
    94         *  Define the amount of L1D RAM used for L1 Data Cache.
    95         *
    96         *  Check the device documentation for valid values.
    97         */
    98        config String l1DMode = "32k";
    99
   100        /*
   101         *  ======== l2Mode ========
   102         *  Define the amount of L2 RAM used for L2 Cache.
   103         *
   104         *  Check the device documentation for valid values.
   105         */
   106        config String l2Mode = "0k";
   107    };
   108    /*
   109     *  @(#) ti.platforms.expOMAPL138; 1, 0, 0,128; 8-17-2012 22:16:21; /db/ztree/library/trees/platform/platform-n27x/src/
   110     */
   111


package ti.platforms.ez430_chronos
index URL

Platform package for the ez430_chronos platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the ez430_chronos platform.
XDCspec declarations sourced in ti/platforms/ez430_chronos/package.xdc
requires ti.catalog.msp430;
requires xdc.platform[1, 0, 1];
package ti.platforms.ez430_chronos [1, 0, 0, 0] {
    module Platform;
    // Platform support for the ez430_chronos
}
generated on Thu, 08 Nov 2012 02:18:35 GMT


package ti.platforms.ez430_chronos

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    requires ti.catalog.msp430;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.ez430_chronos ========
    17     *  Platform package for the ez430_chronos platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the ez430_chronos platform.
    21     */
    22    package ti.platforms.ez430_chronos [1,0,0,0] {
    23        module Platform;
    24    }


module ti.platforms.ez430_chronos.Platform

metaonly module ti.platforms.ez430_chronos.Platform
index URL

Platform support for the ez430_chronos

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/ez430_chronos/Platform.xdc
var Platform = xdc.useModule('ti.platforms.ez430_chronos.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "ez430_chronos",
        boardFamily: "ez430",
        boardRevision: null
    };
    const Platform.CPU// The CPU supported by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 8.0,
        catalogName: "ti.catalog.msp430",
        deviceName: "CC430F6137",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "RAM";
        params.deviceName// = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.genFullCmdFile// Enable generation of full linker command file = Bool true;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "ez430_chronos",
    boardFamily: "ez430",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU supported by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 8.0,
    catalogName: "ti.catalog.msp430",
    deviceName: "CC430F6137",
    revision: ""
};
DETAILS
See http://www.ti.com/lit/gpn/CC430F6137 and http://www.ti.com/lit/pdf/slau259 for complete details.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "RAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    //
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.genFullCmdFile = Bool true;
    // Enable generation of full linker command file
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.genFullCmdFile // instance
index URL

Enable generation of full linker command file

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.genFullCmdFile = Bool true;
DETAILS
If set to true, the platform will generate the complete linker command file rather than require the user to supply one on the link line.
If an instance of this platform is created with the name "genFullCmdFile", this genFullCmdFile will be set to true. This enables one to easily create a platform instance for which this parameter is true.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:35 GMT


module ti.platforms.ez430_chronos.Platform

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.ez430_chronos;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the ez430_chronos
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  This particular platform has a single Cpu, and therefore, only
    26     *  declares a single CPU configuration object.  Multi-CPU platforms
    27     *  would declare multiple Cpu configuration parameters (one per
    28     *  platform CPU).
    29     */
    30    metaonly module Platform inherits xdc.platform.IPlatform
    31    {
    32        /*!
    33         *  ======== BOARD ========
    34         *  This platform's board attributes
    35         */
    36        readonly config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "ez430_chronos",
    39            boardFamily:    "ez430",
    40            boardRevision:  null
    41        };
    42
    43        /*!
    44         *  ======== CPU ========
    45         *  The CPU supported by this platform.
    46         *
    47         *  See {@link http://www.ti.com/lit/gpn/CC430F6137} and
    48         *  {@link http://www.ti.com/lit/pdf/slau259} for complete details.
    49         */
    50        readonly config xdc.platform.IExeContext.Cpu CPU = {
    51            id:             "0",
    52            clockRate:      8.0,
    53            catalogName:    "ti.catalog.msp430",
    54            deviceName:     "CC430F6137",
    55            revision:       "",
    56        };
    57
    58    instance:
    59
    60        config String deviceName;
    61
    62        /*!
    63         *  ======== genFullCmdFile ========
    64         *  Enable generation of full linker command file
    65         *
    66         *  If set to `true`, the platform will generate the complete linker
    67         *  command file rather than require the user to supply one on the
    68         *  link line.
    69         *
    70         *  If an instance of this platform is created with the name
    71         *  "`genFullCmdFile`", this `genFullCmdFile` will be set to `true`.
    72         *  This enables one to easily create a platform instance for which this
    73         *  parameter is `true`.
    74         */
    75        config Bool genFullCmdFile = true;
    76
    77        override config String codeMemory = "FLASH";
    78
    79        override config String dataMemory = "RAM";
    80
    81        override config String stackMemory = "RAM";
    82    };


package ti.platforms.ez430_rf2500
index URL

Platform package for the eZ430-RF2500 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the eZ430-RF2500 platform.
XDCspec declarations sourced in ti/platforms/ez430_rf2500/package.xdc
requires ti.catalog.msp430;
requires xdc.platform[1, 0, 1];
package ti.platforms.ez430_rf2500 [1, 0, 0, 1] {
    module Platform;
    // Platform support for the eZ430-RF2500 target board
}
generated on Thu, 08 Nov 2012 02:18:35 GMT


package ti.platforms.ez430_rf2500

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    requires ti.catalog.msp430;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.ez430_rf2500 ========
    17     *  Platform package for the eZ430-RF2500 platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the eZ430-RF2500 platform.
    21     */
    22    package ti.platforms.ez430_rf2500 [1,0,0,1] {
    23        module Platform;
    24    }


module ti.platforms.ez430_rf2500.Platform

metaonly module ti.platforms.ez430_rf2500.Platform
index URL

Platform support for the eZ430-RF2500 target board

  • XDCscript usage
  • Individual elements
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
XDCscript usage meta-domain sourced in ti/platforms/ez430_rf2500/Platform.xdc
var Platform = xdc.useModule('ti.platforms.ez430_rf2500.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "ez430_rf2500",
        boardFamily: "ez430",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 1.0,
        catalogName: "ti.catalog.msp430",
        deviceName: "MSP430F2274",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "RAM";
        params.dssPath// Path to the Debug Script Server (DSS) product = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "ez430_rf2500",
    boardFamily: "ez430",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1.0,
    catalogName: "ti.catalog.msp430",
    deviceName: "MSP430F2274",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "RAM";
    // The default segment for data sections
    params.dssPath = String undefined;
    // Path to the Debug Script Server (DSS) product
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.dssPath // instance
index URL

Path to the Debug Script Server (DSS) product

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dssPath = String undefined;
DETAILS
This platform uses the DSS support delivered as part of Code Composer Studio or as a standalone product. dssPath must be set to an absolute path to the installation directory of DSS.
For example, if you've installed Code Composer Essentials 3.1 in the default installation directory, dssPath should be set to "C:/Program Files/Texas Instruments/CC Essentials v3.1/DebugServer".
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:35 GMT


module ti.platforms.ez430_rf2500.Platform

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    /*!
    17     *  ======== Platform ========
    18     *  Platform support for the eZ430-RF2500 target board
    19     *
    20     *  This particular platform has a single Cpu, and therefore, only
    21     *  declares a single CPU configuration object.  Multi-CPU platforms
    22     *  would declare multiple Cpu configuration parameters (one per
    23     *  platform CPU).
    24     */
    25    metaonly module Platform inherits xdc.platform.IPlatform
    26    {
    27        /*!
    28         *  ======== BOARD ========
    29         *  This platform's board attributes
    30         */
    31        readonly config xdc.platform.IPlatform.Board BOARD = {
    32            id:             "0",
    33            boardName:      "ez430_rf2500",
    34            boardFamily:    "ez430",
    35            boardRevision:  null
    36        };
    37
    38        /*!
    39         *  ======== CPU ========
    40         *  The CPU simulated by this platform.
    41         */
    42        readonly config xdc.platform.IExeContext.Cpu CPU = {
    43            id:             "0",
    44            clockRate:      1.0,
    45            catalogName:    "ti.catalog.msp430",
    46            deviceName:     "MSP430F2274",
    47            revision:       "",
    48        };
    49
    50    instance:
    51        /*!
    52         *  ======== dssPath ========
    53         *  Path to the Debug Script Server (DSS) product
    54         *
    55         *  This platform uses the DSS support delivered as part of Code
    56         *  Composer Studio or as a standalone product.  `dssPath` must be set
    57         *  to an absolute path to the installation directory of DSS.
    58         *
    59         *  For example, if you've installed Code Composer Essentials 3.1 in
    60         *  the default installation directory, `dssPath` should be set to
    61         *  `"C:/Program Files/Texas Instruments/CC Essentials v3.1/DebugServer"`.
    62         */
    63        config String dssPath;
    64
    65        override config String codeMemory = "FLASH";
    66
    67        override config String dataMemory = "RAM";
    68
    69        override config String stackMemory = "RAM";
    70    };


package ti.platforms.ezdsp2808
index URL

Platform package for the eZdsp2808 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the eZdsp2808 platform.
XDCspec declarations sourced in ti/platforms/ezdsp2808/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.ezdsp2808 [1, 0, 0] {
    module Platform;
}
generated on Thu, 08 Nov 2012 02:18:19 GMT


package ti.platforms.ezdsp2808

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c2800;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.ezdsp2808 ========
    23     *  Platform package for the eZdsp2808 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the eZdsp2808 platform.
    27     */
    28    package ti.platforms.ezdsp2808 [1,0,0] {
    29        module Platform;
    30    }
    31    /*
    32     *  @(#) ti.platforms.ezdsp2808; 1, 0, 0,370; 8-17-2012 22:16:24; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.platforms.ezdsp2808.Platform

metaonly module ti.platforms.ezdsp2808.Platform
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/ezdsp2808/Platform.xdc
var Platform = xdc.useModule('ti.platforms.ezdsp2808.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "ezdsp2808",
        boardFamily: "ezdsp2808",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 100.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C2808",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "H0SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "LSARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "MSARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "ezdsp2808",
    boardFamily: "ezdsp2808",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 100.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C2808",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "H0SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "LSARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "MSARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "H0SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "LSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "MSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:19 GMT


module ti.platforms.ezdsp2808.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  This module implements xdc.IPlatform and defines configuration
    16     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    17     *
    18     *  The configuration parameters are initialized in this package's
    19     *  configuration script (package.cfg) and "bound" to the TCOM object
    20     *  model.  Once they are part of the model, these parameters are
    21     *  queried by a program's configuration script.
    22     *
    23     *  This particular platform has a single Cpu, and therefore, only
    24     *  declares a single CPU configuration object.  Multi-CPU platforms
    25     *  would declare multiple Cpu configuration parameters (one per
    26     *  platform CPU).
    27     */
    28
    29    package ti.platforms.ezdsp2808;
    30
    31    metaonly module Platform inherits xdc.platform.IPlatform
    32    {
    33        readonly config xdc.platform.IPlatform.Board BOARD = {
    34            id:             "0",
    35            boardName:      "ezdsp2808",
    36            boardFamily:    "ezdsp2808",
    37            boardRevision:  null
    38        };
    39
    40        readonly config xdc.platform.IExeContext.Cpu   CPU = {
    41            id:             "0",
    42            clockRate:      100.0,
    43            catalogName:    "ti.catalog.c2800",
    44            deviceName:     "TMS320C2808",
    45            revision:       null
    46        };
    47
    48    instance:
    49
    50        override config string codeMemory = "H0SARAM";
    51
    52        override config string dataMemory = "LSARAM";
    53
    54        override config string stackMemory = "MSARAM";
    55    };
    56    /*
    57     *  @(#) ti.platforms.ezdsp2808; 1, 0, 0,370; 8-17-2012 22:16:24; /db/ztree/library/trees/platform/platform-n27x/src/
    58     */
    59


package ti.platforms.ezdsp2812
index URL

Platform package for the eZdsp2812 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the eZdsp2812 platform.
XDCspec declarations sourced in ti/platforms/ezdsp2812/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.ezdsp2812 [1, 0, 0] {
    module Platform;
}
generated on Thu, 08 Nov 2012 02:18:19 GMT


package ti.platforms.ezdsp2812

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c2800;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.ezdsp2812 ========
    18     *  Platform package for the eZdsp2812 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the eZdsp2812 platform.
    22     */
    23    package ti.platforms.ezdsp2812 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.ezdsp2812; 1, 0, 0,370; 8-17-2012 22:16:26; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.ezdsp2812.Platform

metaonly module ti.platforms.ezdsp2812.Platform
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/ezdsp2812/Platform.xdc
var Platform = xdc.useModule('ti.platforms.ezdsp2812.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "ezdsp2812",
        boardFamily: "ezdsp2812",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C2812",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    name: "SRAM",
                    base: 0x100000,
                    len: 0x10000,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "LSARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "ezdsp2812",
    boardFamily: "ezdsp2812",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C2812",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SRAM",
            {
                name: "SRAM",
                base: 0x100000,
                len: 0x10000,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "LSARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            name: "SRAM",
            base: 0x100000,
            len: 0x10000,
            page: 0,
            space: "code/data"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "LSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:19 GMT


module ti.platforms.ezdsp2812.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  This module implements xdc.IPlatform and defines configuration
    16     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    17     *
    18     *  The configuration parameters are initialized in this package's
    19     *  configuration script (package.cfg) and "bound" to the TCOM object
    20     *  model.  Once they are part of the model, these parameters are
    21     *  queried by a program's configuration script.
    22     *
    23     *  This particular platform has a single Cpu, and therefore, only
    24     *  declares a single CPU configuration object.  Multi-CPU platforms
    25     *  would declare multiple Cpu configuration parameters (one per
    26     *  platform CPU).
    27     *
    28     */
    29
    30    package ti.platforms.ezdsp2812;
    31
    32    metaonly module Platform inherits xdc.platform.IPlatform
    33    {
    34        readonly config xdc.platform.IPlatform.Board BOARD = {
    35            id:             "0",
    36            boardName:      "ezdsp2812",
    37            boardFamily:    "ezdsp2812",
    38            boardRevision:  null
    39        };
    40
    41        readonly config xdc.platform.IExeContext.Cpu   CPU = {
    42            id:             "0",
    43            clockRate:      150.0,
    44            catalogName:    "ti.catalog.c2800",
    45            deviceName:     "TMS320C2812",
    46            revision:       null
    47        };
    48
    49    instance:
    50
    51        override readonly config xdc.platform.IPlatform.MemoryMap
    52            externalMemoryMap = [
    53                ["SRAM",
    54                    {
    55                        name: "SRAM",
    56                        base: 0x100000,
    57                        len: 0x10000,
    58                        page: 0,
    59                        space: "code/data"
    60                    }
    61                ],
    62            ];
    63
    64        override config string codeMemory = "SRAM";
    65
    66        override config string dataMemory = "SRAM";
    67
    68        override config string stackMemory = "LSARAM";
    69    };
    70    /*
    71     *  @(#) ti.platforms.ezdsp2812; 1, 0, 0,370; 8-17-2012 22:16:26; /db/ztree/library/trees/platform/platform-n27x/src/
    72     */
    73


package ti.platforms.ezdsp28235
index URL

Platform package for the eZdsp28235 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the eZdsp28235 platform.
XDCspec declarations sourced in ti/platforms/ezdsp28235/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.ezdsp28235 [1, 0, 0] {
    module Platform;
}
generated on Thu, 08 Nov 2012 02:18:20 GMT


package ti.platforms.ezdsp28235

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c2800;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.ezdsp28235 ========
    18     *  Platform package for the eZdsp28235 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the eZdsp28235 platform.
    22     */
    23    package ti.platforms.ezdsp28235 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.ezdsp28235; 1, 0, 0,271; 8-17-2012 22:16:28; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.ezdsp28235.Platform

metaonly module ti.platforms.ezdsp28235.Platform
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/ezdsp28235/Platform.xdc
var Platform = xdc.useModule('ti.platforms.ezdsp28235.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "ezdsp28235",
        boardFamily: "ezdsp28235",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C28235",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    name: "SRAM",
                    base: 0x200000,
                    len: 0x020000,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L03SARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "ezdsp28235",
    boardFamily: "ezdsp28235",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C28235",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SRAM",
            {
                name: "SRAM",
                base: 0x200000,
                len: 0x020000,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L03SARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            name: "SRAM",
            base: 0x200000,
            len: 0x020000,
            page: 0,
            space: "code/data"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L03SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:20 GMT


module ti.platforms.ezdsp28235.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  This module implements xdc.IPlatform and defines configuration
    16     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    17     *
    18     *  The configuration parameters are initialized in this package's
    19     *  configuration script (package.cfg) and "bound" to the TCOM object
    20     *  model.  Once they are part of the model, these parameters are
    21     *  queried by a program's configuration script.
    22     *
    23     *  This particular platform has a single Cpu, and therefore, only
    24     *  declares a single CPU configuration object.  Multi-CPU platforms
    25     *  would declare multiple Cpu configuration parameters (one per
    26     *  platform CPU).
    27     *
    28     */
    29
    30    package ti.platforms.ezdsp28235;
    31
    32    metaonly module Platform inherits xdc.platform.IPlatform
    33    {
    34        readonly config xdc.platform.IPlatform.Board BOARD = {
    35            id:             "0",
    36            boardName:      "ezdsp28235",
    37            boardFamily:    "ezdsp28235",
    38            boardRevision:  null
    39        };
    40
    41        readonly config xdc.platform.IExeContext.Cpu   CPU = {
    42            id:             "0",
    43            clockRate:      150.0,
    44            catalogName:    "ti.catalog.c2800",
    45            deviceName:     "TMS320C28235",
    46            revision:       null
    47        };
    48
    49    instance:
    50
    51        override readonly config xdc.platform.IPlatform.MemoryMap
    52            externalMemoryMap = [
    53                ["SRAM",
    54                    {
    55                        name: "SRAM",
    56                        base: 0x200000,
    57                        len:  0x020000,
    58                        page: 0,
    59                        space: "code/data",
    60                    }
    61                ],
    62            ];
    63
    64        override config string codeMemory = "SRAM";
    65
    66        override config string dataMemory = "SRAM";
    67
    68        override config string stackMemory = "L03SARAM";
    69
    70    };
    71    /*
    72     *  @(#) ti.platforms.ezdsp28235; 1, 0, 0,271; 8-17-2012 22:16:28; /db/ztree/library/trees/platform/platform-n27x/src/
    73     */
    74


package ti.platforms.ezdsp28335
index URL

Platform package for the eZdsp28335 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the eZdsp28335 platform.
XDCspec declarations sourced in ti/platforms/ezdsp28335/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.ezdsp28335 [1, 0, 0] {
    module Platform;
}
generated on Thu, 08 Nov 2012 02:18:20 GMT


package ti.platforms.ezdsp28335

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c2800;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.ezdsp28335 ========
    18     *  Platform package for the eZdsp28335 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the eZdsp28335 platform.
    22     */
    23    package ti.platforms.ezdsp28335 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.ezdsp28335; 1, 0, 0,313; 8-17-2012 22:16:29; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.ezdsp28335.Platform

metaonly module ti.platforms.ezdsp28335.Platform
index URL
  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/ezdsp28335/Platform.xdc
var Platform = xdc.useModule('ti.platforms.ezdsp28335.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "ezdsp28335",
        boardFamily: "ezdsp28335",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C28335",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    name: "SRAM",
                    base: 0x200000,
                    len: 0x020000,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L03SARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "ezdsp28335",
    boardFamily: "ezdsp28335",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C28335",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SRAM",
            {
                name: "SRAM",
                base: 0x200000,
                len: 0x020000,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L03SARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            name: "SRAM",
            base: 0x200000,
            len: 0x020000,
            page: 0,
            space: "code/data"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L03SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:20 GMT


module ti.platforms.ezdsp28335.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  This module implements xdc.IPlatform and defines configuration
    16     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    17     *
    18     *  The configuration parameters are initialized in this package's
    19     *  configuration script (package.cfg) and "bound" to the TCOM object
    20     *  model.  Once they are part of the model, these parameters are
    21     *  queried by a program's configuration script.
    22     *
    23     *  This particular platform has a single Cpu, and therefore, only
    24     *  declares a single CPU configuration object.  Multi-CPU platforms
    25     *  would declare multiple Cpu configuration parameters (one per
    26     *  platform CPU).
    27     *
    28     */
    29
    30    package ti.platforms.ezdsp28335;
    31
    32    metaonly module Platform inherits xdc.platform.IPlatform
    33    {
    34        readonly config xdc.platform.IPlatform.Board BOARD = {
    35            id:             "0",
    36            boardName:      "ezdsp28335",
    37            boardFamily:    "ezdsp28335",
    38            boardRevision:  null
    39        };
    40
    41        readonly config xdc.platform.IExeContext.Cpu CPU = {
    42            id:             "0",
    43            clockRate:      150.0,
    44            catalogName:    "ti.catalog.c2800",
    45            deviceName:     "TMS320C28335",
    46            revision:       null
    47        };
    48
    49    instance:
    50
    51        override readonly config xdc.platform.IPlatform.MemoryMap
    52            externalMemoryMap = [
    53                ["SRAM",
    54                    {
    55                        name: "SRAM",
    56                        base: 0x200000,
    57                        len:  0x020000,
    58                        page: 0,
    59                        space: "code/data",
    60                    }
    61                ],
    62            ];
    63
    64        override config string codeMemory = "SRAM";
    65
    66        override config string dataMemory = "SRAM";
    67
    68        override config string stackMemory = "L03SARAM";
    69
    70    };
    71    /*
    72     *  @(#) ti.platforms.ezdsp28335; 1, 0, 0,313; 8-17-2012 22:16:29; /db/ztree/library/trees/platform/platform-n27x/src/
    73     */
    74


package ti.platforms.ezdsp5502
index URL

Platform package for the ezdsp5502 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the ezdsp5502 platform.
XDCspec declarations sourced in ti/platforms/ezdsp5502/package.xdc
package ti.platforms.ezdsp5502 [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:18:20 GMT


package ti.platforms.ezdsp5502

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ti.platforms.ezdsp5502 ========
    15     *  Platform package for the ezdsp5502 platform.
    16     *
    17     *  This package implements the interfaces (xdc.platform.IPlatform)
    18     *  necessary to build and run executables on the ezdsp5502 platform.
    19     */
    20    package ti.platforms.ezdsp5502 [1,0,0] {
    21    }
    22    /*
    23     *  @(#) ti.platforms.ezdsp5502; 1, 0, 0,30; 8-17-2012 22:16:31; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


package ti.platforms.ezdsp5505
index URL

Platform package for the ezdsp5505 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the ezdsp5505 platform.
XDCspec declarations sourced in ti/platforms/ezdsp5505/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.ezdsp5505 [1, 0, 0] {
    module Platform;
    // Platform support for the ezdsp5505
}
generated on Thu, 08 Nov 2012 02:18:20 GMT


package ti.platforms.ezdsp5505

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.ezdsp5505 ========
    18     *  Platform package for the ezdsp5505 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the ezdsp5505 platform.
    22     */
    23    package ti.platforms.ezdsp5505 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.ezdsp5505; 1, 0, 0,136; 8-17-2012 22:16:34; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.ezdsp5505.Platform

metaonly module ti.platforms.ezdsp5505.Platform
index URL

Platform support for the ezdsp5505

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/ezdsp5505/Platform.xdc
var Platform = xdc.useModule('ti.platforms.ezdsp5505.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "ezdsp5505",
        boardFamily: "evm5510",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 100.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5505",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "ezdsp5505",
    boardFamily: "evm5510",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 100.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5505",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:20 GMT


module ti.platforms.ezdsp5505.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.ezdsp5505;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the ezdsp5505
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.xs) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "ezdsp5505",
    41            boardFamily:    "evm5510",
    42            boardRevision:  null
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      100.0,
    48            catalogName:    "ti.catalog.c5500",
    49            deviceName:     "TMS320C5505",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override config string codeMemory = "SARAM";
    56
    57        override config string dataMemory = "DARAM";
    58
    59        override config string stackMemory = "DARAM";
    60    };
    61    /*
    62     *  @(#) ti.platforms.ezdsp5505; 1, 0, 0,136; 8-17-2012 22:16:33; /db/ztree/library/trees/platform/platform-n27x/src/
    63     */
    64


package ti.platforms.ezdsp5535
index URL

Platform package for the ezdsp5535 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the ezdsp5535 platform.
XDCspec declarations sourced in ti/platforms/ezdsp5535/package.xdc
package ti.platforms.ezdsp5535 [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:18:21 GMT


package ti.platforms.ezdsp5535

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ti.platforms.ezdsp5535 ========
    15     *  Platform package for the ezdsp5535 platform.
    16     *
    17     *  This package implements the interfaces (xdc.platform.IPlatform)
    18     *  necessary to build and run executables on the ezdsp5535 platform.
    19     */
    20    package ti.platforms.ezdsp5535 [1,0,0] {
    21    }
    22    /*
    23     *  @(#) ti.platforms.ezdsp5535; 1, 0, 0,30; 8-17-2012 22:16:33; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


package ti.platforms.gccLM3S9B90RAM
index URL

Platform package for the gccLM3S9B90RAM platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the gccLM3S9B90RAM platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/gccLM3S9B90RAM/package.xdc
requires ti.catalog.arm.cortexm3;
requires xdc.platform[1, 0, 1];
package ti.platforms.gccLM3S9B90RAM [1, 0, 1, 1] {
    module Platform;
    // Platform support with GCC for an LM3S9B90 using RAM only
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the gccLM3S9B90RAM platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.gccLM3S9B90RAM.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:21 GMT


package ti.platforms.gccLM3S9B90RAM

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.arm.cortexm3;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.gccLM3S9B90RAM ========
    18     *  Platform package for the gccLM3S9B90RAM platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the gccLM3S9B90RAM platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.gccLM3S9B90RAM.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.gccLM3S9B90RAM [1,0,1,1] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.gccLM3S9B90RAM; 1, 0, 1, 1,25; 8-17-2012 22:16:35; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.gccLM3S9B90RAM.Platform

metaonly module ti.platforms.gccLM3S9B90RAM.Platform
index URL

Platform support with GCC for an LM3S9B90 using RAM only

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/gccLM3S9B90RAM/Platform.xdc
var Platform = xdc.useModule('ti.platforms.gccLM3S9B90RAM.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "gccLM3S9B90RAM",
        boardFamily: "gccLM3S9B90RAM",
        boardRevision: null
    };
    const Platform.CPU// The Cortex M3 core = IExeContext.Cpu {
        id: "0",
        clockRate: 80.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "LM3S9B90",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "gccLM3S9B90RAM",
    boardFamily: "gccLM3S9B90RAM",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The Cortex M3 core

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 80.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "LM3S9B90",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:21 GMT


module ti.platforms.gccLM3S9B90RAM.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.gccLM3S9B90RAM;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support with GCC for an LM3S9B90 using RAM only
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  This platform's board attributes
    41         */
    42        readonly config xdc.platform.IPlatform.Board BOARD = {
    43            id:             "0",
    44            boardName:      "gccLM3S9B90RAM",
    45            boardFamily:    "gccLM3S9B90RAM",
    46            boardRevision:  null
    47        };
    48
    49        /*!
    50         *  ======== CPU ========
    51         *  The  Cortex M3 core
    52         */
    53        readonly config xdc.platform.IExeContext.Cpu CPU = {
    54            id:             "0",
    55            clockRate:      80.0,
    56            catalogName:    "ti.catalog.arm.cortexm3",
    57            deviceName:     "LM3S9B90",
    58            revision:       "",
    59        };
    60
    61    instance:
    62
    63    };
    64    /*
    65     *  @(#) ti.platforms.gccLM3S9B90RAM; 1, 0, 1, 1,25; 8-17-2012 22:16:35; /db/ztree/library/trees/platform/platform-n27x/src/
    66     */
    67


package ti.platforms.generic
index URL

Platform package for the generic platform

  • DETAILS
  • THROWS
  • EXAMPLES
  • SEE
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on a "generic" platform; a platform specified by: [ more ... ]
XDCspec declarations sourced in ti/platforms/generic/package.xdc
requires xdc.platform[1, 0, 1];
package ti.platforms.generic [1, 0, 0, 1] {
    module Platform;
    // A generic platform that supports any HW platform
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on a "generic" platform; a platform specified by:
  • device name; e.g., "TMS320C2812"
  • catalog name; the name of a package containing the device named above
  • clock rate; the clock rate in MHz of the CPU
  • external memory map; an array of memory blocks external to the device
For a complate list of parameters that can be specified when creating a platform instance see the instance configuration parameters specified by ti.platforms.generic.Platform. This list, of course, includes all the instance config parameters specified by the xdc.platform.IPlatform interface.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.generic.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
EXAMPLES
Example 1: Suppose you need to create an application for a HW platform that uses the TMS320C2812 running at 150 MHz. You can use this package (in lieu of one specifically created for the HW platform) by defining a named instance of this package's Platform module. Add the following statements to your config.bld file to add the platform instance named "ti.platforms.generic:C28".
      Build.platformTable["ti.platforms.generic:C28"] = {
          clockRate:   150,
          catalogName: "ti.catalog.c2800",
          deviceName:  "TMS320C2812"
      };
With this name defined, it is now possible to configure an application using the platform instance name "ti.platforms.generic:C28". For example, if you are using xdc.tools.configuro to configure your application, the string "ti.platforms.generic:C28" can now be used to identify your platform:
      xs xdc.tools.configuro -b config.bld -p ti.platforms.generic:C28 ...
Example 2: The following example illustrates how to specify a platform instance with memory regions external to the specified device. In this case, we define a platform using a TMS320C6416 running at 600 MHz on a board with two external SDRAM memory blocks.
      Build.platformTable["ti.platforms.generic:C64"] = {
          clockRate:          600,
          catalogName:        "ti.catalog.c6000",
          deviceName:         "TMS320C6416",
          externalMemoryMap : [
              ["SDRAM1", {
                  name: "SDRAM1",
                  base: 0x80000000, len: 0x1000000, space: "code/data"
              }],
              ["SDRAM2", {
                  name: "SDRAM2",
                  base: 0x90000000, len: 0x1000000, space: "code/data"
              }],
          ]
      }
The externalMemoryMap attribute is a map of string names to xdc.platform.IPlatform.Memory structures.
SEE
ti.platforms.generic.Platform, xdc.bld.BuildEnvironment.platformTable, xdc.platform.IPlatform
generated on Thu, 08 Nov 2012 02:18:21 GMT


package ti.platforms.generic

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.generic ========
    17     *  Platform package for the generic platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on a "generic" platform; a
    21     *  platform specified by:
    22     *  @p(blist)
    23     *      - device name; e.g., "TMS320C2812"
    24     *      - catalog name; the name of a package containing the device named above
    25     *      - clock rate; the clock rate in MHz of the CPU
    26     *      - external memory map; an array of memory blocks external to the device
    27     *  @p
    28     *  For a complate list of parameters that can be specified when creating a
    29     *  platform instance see the instance configuration parameters specified
    30     *  by `{@link ti.platforms.generic.Platform}`.  This list, of course,
    31     *  includes all the instance config parameters specified by the
    32     *  `{@link xdc.platform.IPlatform}` interface.
    33     *
    34     *
    35     *  @a(Throws)
    36     *  `XDCException` exceptions are thrown for fatal errors. The following error
    37     *  codes are reported in the exception message:
    38     *  @p(dlist)
    39     *      -  `ti.platfoms.generic.LINK_TEMPLATE_ERROR`
    40     *           This error is raised when this platform cannot found the default
    41     *           linker command template `linkcmd.xdt` in the build target's
    42     *           package. When a target does not contain this file, the config
    43     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    44     *  @p
    45     *
    46     *  @a(EXAMPLES)
    47     *  Example 1: Suppose you need to create an application for a HW platform
    48     *  that uses the TMS320C2812 running at 150 MHz.  You can use this package
    49     *  (in lieu of one specifically created for the HW platform) by defining a
    50     *  named instance of this package's Platform module.  Add the following
    51     *  statements to your `config.bld` file to add the platform instance named
    52     *  "ti.platforms.generic:C28".
    53     *  @p(code)
    54     *      Build.platformTable["ti.platforms.generic:C28"] = {
    55     *          clockRate:   150,
    56     *          catalogName: "ti.catalog.c2800",
    57     *          deviceName:  "TMS320C2812"
    58     *      };
    59     *  @p
    60     *  With this name defined, it is now possible to configure an application
    61     *  using the platform instance name "ti.platforms.generic:C28".  For example,
    62     *  if you are using `{@link xdc.tools.configuro}` to configure your
    63     *  application, the string "ti.platforms.generic:C28" can now be used to
    64     *  identify your platform:
    65     *  @p(code)
    66     *      xs xdc.tools.configuro -b config.bld -p ti.platforms.generic:C28 ...
    67     *  @p
    68     *
    69     *  @p(html)
    70     *  <hr/>
    71     *  @p
    72     *
    73     *  Example 2: The following example illustrates how to specify a platform
    74     *  instance with memory regions external to the specified device.  In this
    75     *  case, we define a platform using a TMS320C6416 running at 600 MHz on a
    76     *  board with two external SDRAM memory blocks.
    77     *  @p(code)
    78     *      Build.platformTable["ti.platforms.generic:C64"] = {
    79     *          clockRate:          600,
    80     *          catalogName:        "ti.catalog.c6000",
    81     *          deviceName:         "TMS320C6416",
    82     *          externalMemoryMap : [
    83     *              ["SDRAM1", {
    84     *                  name: "SDRAM1",
    85     *                  base: 0x80000000, len: 0x1000000, space: "code/data"
    86     *              }],
    87     *              ["SDRAM2", {
    88     *                  name: "SDRAM2",
    89     *                  base: 0x90000000, len: 0x1000000, space: "code/data"
    90     *              }],
    91     *          ]
    92     *      }
    93     *  @p
    94     *
    95     *  The `externalMemoryMap` attribute is a map of string names to
    96     *  `{@link xdc.platform.IPlatform#Memory}` structures.
    97     *
    98     *  @see ti.platforms.generic.Platform
    99     *  @see xdc.bld.BuildEnvironment#platformTable
   100     *  @see xdc.platform.IPlatform
   101     */
   102    package ti.platforms.generic [1,0,0,1] {
   103        module Platform;
   104    }
   105    /*
   106     *  @(#) ti.platforms.generic; 1, 0, 0, 1,369; 8-17-2012 22:16:37; /db/ztree/library/trees/platform/platform-n27x/src/
   107     */
   108


module ti.platforms.generic.Platform

metaonly module ti.platforms.generic.Platform
index URL

A generic platform that supports any HW platform

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/generic/Platform.xdc
var Platform = xdc.useModule('ti.platforms.generic.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
     Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "generic",
        boardFamily: null,
        boardRevision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.CPU// = IExeContext.Cpu {
            id: "0",
            clockRate: 0,
            catalogName: null,
            deviceName: null,
            revision: ""
        };
        params.catalogName// The name of the package that contains the module 'deviceName' = String undefined;
        params.clockRate// The clock rate in MHz for the simulated device = Double undefined;
        params.codeMemory// The default segment for code sections = String null;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String null;
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String null;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "generic",
    boardFamily: null,
    boardRevision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.CPU = IExeContext.Cpu {
    //
        id: "0",
        clockRate: 0,
        catalogName: null,
        deviceName: null,
        revision: ""
    };
    params.catalogName = String undefined;
    // The name of the package that contains the module 'deviceName'
    params.clockRate = Double undefined;
    // The clock rate in MHz for the simulated device
    params.codeMemory = String null;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String null;
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String null;
    // The default segment for stack
config Platform.CPU // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 0,
    catalogName: null,
    deviceName: null,
    revision: ""
};
config Platform.catalogName // instance
index URL

The name of the package that contains the module 'deviceName'

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.catalogName = String undefined;
DETAILS
This parameter is required.
config Platform.clockRate // instance
index URL

The clock rate in MHz for the simulated device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.clockRate = Double undefined;
DETAILS
This parameter is required. There are no checks if the simulated device supports the given clock rate.
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is required.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:21 GMT


module ti.platforms.generic.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.generic;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  A generic platform that supports any HW platform
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "generic",
    41            boardFamily:    null,
    42            boardRevision:  null
    43        };
    44
    45    instance:
    46
    47        config xdc.platform.IExeContext.Cpu CPU = {
    48            id:             "0",
    49            clockRate:      0,
    50            catalogName:    null,
    51            deviceName:     null,
    52            revision:       "",
    53        };
    54
    55        /*!
    56         *  ======== deviceName ========
    57         *  The CPU simulated by this simulator platform.
    58         *
    59         *  This parameter is required.
    60         */
    61        config string deviceName;
    62
    63        /*!
    64         *  ======== catalogName ========
    65         *  The name of the package that contains the module 'deviceName'.
    66         *
    67         *  This parameter is required.
    68         */
    69        config string catalogName;
    70
    71        /*!
    72         *  ======== clockRate ========
    73         *  The clock rate in MHz for the simulated device.
    74         *
    75         *  This parameter is required. There are no checks if the simulated device
    76         *  supports the given clock rate.
    77         */
    78        config Double clockRate;
    79
    80        override config string codeMemory = null;
    81
    82        override config string dataMemory = null;
    83
    84        override config string stackMemory = null;
    85
    86        /*
    87         *  ======== l1PMode ========
    88         *  Define the amount of L1P RAM used for L1 Program Cache on C6000 devices.
    89         *
    90         *  Check the device documentation for valid values.
    91         */
    92        config String l1PMode = "32k";
    93
    94        /*
    95         *  ======== l1DMode ========
    96         *  Define the amount of L1D RAM used for L1 Data Cache on C6000 devices.
    97         *
    98         *  Check the device documentation for valid values.
    99         */
   100        config String l1DMode = "32k";
   101
   102        /*
   103         *  ======== l2Mode ========
   104         *  Define the amount of L2 RAM used for L2 Cache on C6000 devices.
   105         *
   106         *  Check the device documentation for valid values.
   107         */
   108        config String l2Mode = "0k";
   109    };
   110    /*
   111     *  @(#) ti.platforms.generic; 1, 0, 0, 1,369; 8-17-2012 22:16:37; /db/ztree/library/trees/platform/platform-n27x/src/
   112     */
   113


package ti.platforms.h2omap1610
index URL

Platform package for the h2omap1610 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the h2omap1610 platform.
XDCspec declarations sourced in ti/platforms/h2omap1610/package.xdc
requires ti.catalog.c5500;
package ti.platforms.h2omap1610 [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:18:21 GMT


package ti.platforms.h2omap1610

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== ti.platforms.h2omap1610 ========
    22     *  Platform package for the h2omap1610 platform.
    23     *
    24     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    25     *  to build and run executables on the h2omap1610 platform.
    26     */
    27    package ti.platforms.h2omap1610 [1,0,0] {
    28    //    module Platform;
    29    }
    30    /*
    31     *  @(#) ti.platforms.h2omap1610; 1, 0, 0,368; 8-17-2012 22:16:38; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


package ti.platforms.h3omap1710
index URL

Platform package for the h3omap1710 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the h3omap1710 platform.
XDCspec declarations sourced in ti/platforms/h3omap1710/package.xdc
requires ti.catalog.c5500;
package ti.platforms.h3omap1710 [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:18:22 GMT


package ti.platforms.h3omap1710

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== ti.platforms.h3omap1710 ========
    22     *  Platform package for the h3omap1710 platform.
    23     *
    24     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    25     *  to build and run executables on the h3omap1710 platform.
    26     */
    27    package ti.platforms.h3omap1710 [1,0,0] {
    28    //    module Platform;
    29    }
    30    /*
    31     *  @(#) ti.platforms.h3omap1710; 1, 0, 0,368; 8-17-2012 22:16:40; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


package ti.platforms.h4omap2420
index URL

Platform package for the h4omap2420 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the h4omap2420 platform.
XDCspec declarations sourced in ti/platforms/h4omap2420/package.xdc
requires ti.catalog.c5500;
package ti.platforms.h4omap2420 [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:18:22 GMT


package ti.platforms.h4omap2420

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== ti.platforms.h4omap2420 ========
    22     *  Platform package for the h4omap2420 platform.
    23     *
    24     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    25     *  to build and run executables on the h4omap2420 platform.
    26     */
    27    package ti.platforms.h4omap2420 [1,0,0] {
    28    //    module Platform;
    29    }
    30    /*
    31     *  @(#) ti.platforms.h4omap2420; 1, 0, 0,368; 8-17-2012 22:16:41; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


package ti.platforms.innovator1510
index URL

Platform package for the innovator1510 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the innovator1510 platform.
XDCspec declarations sourced in ti/platforms/innovator1510/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.innovator1510 [1, 0, 0] {
    module Platform;
    // Platform support for the innovator1510
}
generated on Thu, 08 Nov 2012 02:18:22 GMT


package ti.platforms.innovator1510

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.innovator1510 ========
    18     *  Platform package for the innovator1510 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    21     *  to build and run executables on the innovator1510 platform.
    22     */
    23    package ti.platforms.innovator1510 [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.innovator1510; 1, 0, 0,368; 8-17-2012 22:16:44; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.innovator1510.Platform

metaonly module ti.platforms.innovator1510.Platform
index URL

Platform support for the innovator1510

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/innovator1510/Platform.xdc
var Platform = xdc.useModule('ti.platforms.innovator1510.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "innovator1510",
        boardFamily: "innovator1510",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 120.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C1510",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "innovator1510",
    boardFamily: "innovator1510",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 120.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C1510",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:22 GMT


module ti.platforms.innovator1510.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.innovator1510;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the innovator1510
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "innovator1510",
    41            boardFamily:    "innovator1510",
    42            boardRevision:  null
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      120.0,
    48            catalogName:    "ti.catalog.c5500",
    49            deviceName:     "TMS320C1510",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override config string codeMemory = "SARAM";
    56
    57        override config string dataMemory = "DARAM";
    58
    59        override config string stackMemory = "DARAM";
    60    };
    61    /*
    62     *  @(#) ti.platforms.innovator1510; 1, 0, 0,368; 8-17-2012 22:16:44; /db/ztree/library/trees/platform/platform-n27x/src/
    63     */
    64


package ti.platforms.load6x
index URL

Platform package for the load6x platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim6xxx platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/load6x/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.load6x [1, 0, 1, 1] {
    module Platform;
    // Simulation-based Platform support for 6xxx platforms
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim6xxx platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.load6x.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:22 GMT


package ti.platforms.load6x

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires ti.catalog.c6000;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.load6x ========
    17     *  Platform package for the load6x platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the sim6xxx platform.
    21     *
    22     *  @a(Throws)
    23     *  `XDCException` exceptions are thrown for fatal errors. The following error
    24     *  codes are reported in the exception message:
    25     *  @p(dlist)
    26     *      -  `ti.platfoms.load6x.LINK_TEMPLATE_ERROR`
    27     *           This error is raised when this platform cannot found the default
    28     *           linker command template `linkcmd.xdt` in the build target's
    29     *           package. When a target does not contain this file, the config
    30     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    31     *  @p
    32     */
    33    package ti.platforms.load6x [1,0,1,1] {
    34        module Platform;
    35    }
    36    /*
    37     *  @(#) ti.platforms.load6x; 1, 0, 1, 1,116; 8-17-2012 22:16:46; /db/ztree/library/trees/platform/platform-n27x/src/
    38     */
    39


module ti.platforms.load6x.Platform

metaonly module ti.platforms.load6x.Platform
index URL

Simulation-based Platform support for 6xxx platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/load6x/Platform.xdc
var Platform = xdc.useModule('ti.platforms.load6x.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "sim6xxx",
        boardFamily: "sim6xxx",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 600.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6416",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "IRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EXT3";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "EXT0",
                {
                    name: "EXT0",
                    base: 0x00400000,
                    len: 0x00400000
                }
            ],
            [
                "EXT1",
                {
                    name: "EXT1",
                    base: 0x01000000,
                    len: 0x00800000
                }
            ],
            [
                "EXT2",
                {
                    name: "EXT2",
                    base: 0x02000000,
                    len: 0x01000000
                }
            ],
            [
                "EXT3",
                {
                    name: "EXT3",
                    base: 0x03000000,
                    len: 0x01000000
                }
            ],
            [
                "BMEM",
                {
                    name: "BMEM",
                    base: 0x80000000,
                    len: 0x00010000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "BMEM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sim6xxx",
    boardFamily: "sim6xxx",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 600.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6416",
    revision: ""
};
DETAILS
The device simulated is determined by the platform instance name or if this does not name a ti.catalog.c6000 module, we simulate a TMS320C6416.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "IRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EXT3";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "EXT0",
            {
                name: "EXT0",
                base: 0x00400000,
                len: 0x00400000
            }
        ],
        [
            "EXT1",
            {
                name: "EXT1",
                base: 0x01000000,
                len: 0x00800000
            }
        ],
        [
            "EXT2",
            {
                name: "EXT2",
                base: 0x02000000,
                len: 0x01000000
            }
        ],
        [
            "EXT3",
            {
                name: "EXT3",
                base: 0x03000000,
                len: 0x01000000
            }
        ],
        [
            "BMEM",
            {
                name: "BMEM",
                base: 0x80000000,
                len: 0x00010000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "BMEM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EXT3";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EXT0",
        {
            name: "EXT0",
            base: 0x00400000,
            len: 0x00400000
        }
    ],
    [
        "EXT1",
        {
            name: "EXT1",
            base: 0x01000000,
            len: 0x00800000
        }
    ],
    [
        "EXT2",
        {
            name: "EXT2",
            base: 0x02000000,
            len: 0x01000000
        }
    ],
    [
        "EXT3",
        {
            name: "EXT3",
            base: 0x03000000,
            len: 0x01000000
        }
    ],
    [
        "BMEM",
        {
            name: "BMEM",
            base: 0x80000000,
            len: 0x00010000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "BMEM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:22 GMT


module ti.platforms.load6x.Platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.load6x;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Simulation-based Platform support for 6xxx platforms
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "sim6xxx",
    44            boardFamily:    "sim6xxx",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         *  The CPU simulated by this platform.
    51         *
    52         *  The device simulated is determined by the platform instance name
    53         *  or if this does not name a ti.catalog.c6000 module, we simulate
    54         *  a TMS320C6416.
    55         */
    56        readonly config xdc.platform.IExeContext.Cpu CPU = {
    57            id:             "0",
    58            clockRate:      600.0,
    59            catalogName:    "ti.catalog.c6000",
    60            deviceName:     "TMS320C6416",
    61            revision:       "",
    62        };
    63
    64    instance:
    65
    66        /*!
    67         *  ======== deviceName ========
    68         *  The CPU simulated by this simulator platform.
    69         *
    70         *  This parameter is optional. If it's not set, then the Platform module
    71         *  parameter CPU.deviceName is used.
    72         */
    73        config string deviceName;
    74
    75        override readonly config xdc.platform.IPlatform.Memory
    76            externalMemoryMap[string] = [
    77                //["IRAM", {name: "IRAM", base: 0x00000200, len: 0x0000FE00}],
    78                ["EXT0", {name: "EXT0", base: 0x00400000, len: 0x00400000}],
    79                ["EXT1", {name: "EXT1", base: 0x01000000, len: 0x00800000}],
    80                ["EXT2", {name: "EXT2", base: 0x02000000, len: 0x01000000}],
    81                ["EXT3", {name: "EXT3", base: 0x03000000, len: 0x01000000}],
    82                ["BMEM", {name: "BMEM", base: 0x80000000, len: 0x00010000}],
    83            ];
    84
    85        override config string codeMemory = "IRAM";
    86
    87        override config string dataMemory = "EXT3";
    88
    89        override config string stackMemory = "BMEM";
    90
    91        /*
    92         *  ======== l1PMode ========
    93         *  Define the amount of L1P RAM used for L1 Program Cache.
    94         *
    95         *  Check the device documentation for valid values.
    96         */
    97        config String l1PMode = "32k";
    98
    99        /*
   100         *  ======== l1DMode ========
   101         *  Define the amount of L1D RAM used for L1 Data Cache.
   102         *
   103         *  Check the device documentation for valid values.
   104         */
   105        config String l1DMode = "32k";
   106
   107        /*
   108         *  ======== l2Mode ========
   109         *  Define the amount of L2 RAM used for L2 Cache.
   110         *
   111         *  Check the device documentation for valid values.
   112         */
   113        config String l2Mode = "0k";
   114    };
   115    /*
   116     *  @(#) ti.platforms.load6x; 1, 0, 1, 1,116; 8-17-2012 22:16:46; /db/ztree/library/trees/platform/platform-n27x/src/
   117     */
   118


package ti.platforms.msp430
index URL

Platform support for any MSP430 device

XDCspec declarations sourced in ti/platforms/msp430/package.xdc
requires xdc.platform[1, 0, 1];
requires ti.catalog.msp430;
package ti.platforms.msp430 [1, 0, 0] {
    module Platform;
    // A generic platform that supports any MSP430 device
}
generated on Thu, 08 Nov 2012 02:18:36 GMT


package ti.platforms.msp430

     1    requires xdc.platform [1,0,1];
     2    requires ti.catalog.msp430;
     3
     4    /*!
     5     *  ======== ti.platforms.msp430 ========
     6     *  Platform support for any MSP430 device
     7     */
     8    package ti.platforms.msp430 [1,0,0] {
     9        module Platform;
    10    }


module ti.platforms.msp430.Platform

metaonly module ti.platforms.msp430.Platform
index URL

A generic platform that supports any MSP430 device

  • XDCscript usage
  • Individual elements
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way: [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/msp430/Platform.xdc
var Platform = xdc.useModule('ti.platforms.msp430.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.nameFormat// Encoding of instance creation parameters in the instance's name = String "$(deviceName):$(includeLinkCmdFile)";
     Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "msp430",
        boardFamily: null,
        boardRevision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.CPU// = IExeContext.Cpu {
            id: "0",
            clockRate: 1.0,
            catalogName: "ti.catalog.msp430",
            deviceName: "MSP430",
            revision: ""
        };
        params.clockRate// The clock rate for this device = Double 1.0;
        params.codeMemory// The default segment for code sections = String null;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String null;
        params.deviceName// The name of an ICpuDataSheet module for the device = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.includeLinkCmdFile// The flag that specifies if the platform should include a linker command file = Bool false;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String null;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way:
  xs xdc.tools.configuro ... -p "ti.platforms.msp430:MSP430F2274"
In package.bld, the platform instance is selected as in:
  Pkg.addExecutable("test", target, "ti.platforms.msp430:MSP430F5438");
  @
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.nameFormat // module-wide
index URL

Encoding of instance creation parameters in the instance's name

XDCscript usage meta-domain
const Platform.nameFormat = String "$(deviceName):$(includeLinkCmdFile)";
DETAILS
For this platform, the parameters deviceName and includeLinkCmdFile can be encoded in the instance name supplied on xdc.tools.configuro command line, for example:
      xs xdc.tools.configuro ... -p ti.platforms.MSP430:MSP430F5438:1
Optional parameters can be omitted:
      xs xdc.tools.configuro ... -p ti.platforms.MSP430:MSP430F5438
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "msp430",
    boardFamily: null,
    boardRevision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.CPU = IExeContext.Cpu {
    //
        id: "0",
        clockRate: 1.0,
        catalogName: "ti.catalog.msp430",
        deviceName: "MSP430",
        revision: ""
    };
    params.clockRate = Double 1.0;
    // The clock rate for this device
    params.codeMemory = String null;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String null;
    // The default segment for data sections
    params.deviceName = String undefined;
    // The name of an ICpuDataSheet module for the device
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.includeLinkCmdFile = Bool false;
    // The flag that specifies if the platform should include a linker command file
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String null;
    // The default segment for stack
config Platform.CPU // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1.0,
    catalogName: "ti.catalog.msp430",
    deviceName: "MSP430",
    revision: ""
};
config Platform.clockRate // instance
index URL

The clock rate for this device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.clockRate = Double 1.0;
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The name of an ICpuDataSheet module for the device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional; the device name name also be specified in the name of the the instance.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.includeLinkCmdFile // instance
index URL

The flag that specifies if the platform should include a linker command file

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.includeLinkCmdFile = Bool false;
DETAILS
By default, a user is responsible for adding a linker command file to the project, or to the linker command line. However, if this flag is set, this platform will include a default linker command file for the selected device.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:36 GMT


module ti.platforms.msp430.Platform

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15    package ti.platforms.msp430;
    16
    17    /*!
    18     *  ======== Platform ========
    19     *  A generic platform that supports any MSP430 device
    20     *
    21     *  The device to be used by this platform is passed as the platform instance
    22     *  name. On the `xdc.tools.configuro` command line, it is done in the
    23     *  following way:
    24     *  @p(code)
    25     *  xs xdc.tools.configuro ... -p "ti.platforms.msp430:MSP430F2274"
    26     *  @p
    27     *
    28     *  In package.bld, the platform instance is selected as in:
    29     *  @p(code)
    30     *  Pkg.addExecutable("test", target, "ti.platforms.msp430:MSP430F5438");
    31     *  @
    32     */
    33    metaonly module Platform inherits xdc.platform.IPlatform
    34    {
    35        config xdc.platform.IPlatform.Board BOARD = {
    36            id:             "0",
    37            boardName:      "msp430",
    38            boardFamily:    null,
    39            boardRevision:  null
    40        };
    41
    42        /*!
    43         *  ======== nameFormat ========
    44         *  Encoding of instance creation parameters in the instance's name
    45         *
    46         *  For this platform, the parameters `deviceName` and `includeLinkCmdFile`
    47         *  can be encoded in the instance name supplied on `xdc.tools.configuro`
    48         *  command line, for example:
    49         *  @p(code)
    50         *      xs xdc.tools.configuro ... -p ti.platforms.MSP430:MSP430F5438:1
    51         *  @p
    52         *  Optional parameters can be omitted:
    53         *  @p(code)
    54         *      xs xdc.tools.configuro ... -p ti.platforms.MSP430:MSP430F5438
    55         *  @p
    56         */
    57         readonly config string nameFormat = "$(deviceName):$(includeLinkCmdFile)";
    58
    59    instance:
    60
    61        config xdc.platform.IExeContext.Cpu CPU = {
    62            id:             "0",
    63            clockRate:      1.0,
    64            catalogName:    "ti.catalog.msp430",
    65            deviceName:     "MSP430",
    66            revision:       "",
    67        };
    68
    69        /*!
    70         *  ======== deviceName ========
    71         *  The name of an `ICpuDataSheet` module for the device
    72         *
    73         *  This parameter is optional; the device name name also be specified
    74         *  in the name of the the instance.
    75         */
    76        config string deviceName;
    77
    78        /*!
    79         *  ======== clockRate ========
    80         *  The clock rate for this device.
    81         */
    82        config Double clockRate = 1.0;
    83
    84        override config string codeMemory = null;
    85
    86        override config string dataMemory = null;
    87
    88        override config string stackMemory = null;
    89
    90        /*!
    91         *  ======== includeLinkCmdFile ========
    92         *  The flag that specifies if the platform should include a linker command
    93         *  file.
    94         *
    95         *  By default, a user is responsible for adding a linker command file to
    96         *  the project, or to the linker command line. However, if this flag is
    97         *  set, this platform will include a default linker command file for the
    98         *  selected device.
    99         */
   100        config Bool includeLinkCmdFile = false;
   101    };
   102


package ti.platforms.osk5912
index URL

Platform package for the osk5912 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the osk5912 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/osk5912/package.xdc
requires ti.catalog.c5500;
package ti.platforms.osk5912 [1, 0, 1, 0] {
    module Platform;
    // Platform support for the osk5912
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the osk5912 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.osk5912.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:23 GMT


package ti.platforms.osk5912

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14
    15    /*!
    16     *  ======== ti.platforms.osk5912 ========
    17     *  Platform package for the osk5912 platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    20     *  to build and run executables on the osk5912 platform.
    21     *
    22     *  @a(Throws)
    23     *  `XDCException` exceptions are thrown for fatal errors. The following error
    24     *  codes are reported in the exception message:
    25     *  @p(dlist)
    26     *      -  `ti.platfoms.osk5912.LINK_TEMPLATE_ERROR`
    27     *           This error is raised when this platform cannot found the default
    28     *           linker command template `linkcmd.xdt` in the build target's
    29     *           package. When a target does not contain this file, the config
    30     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    31     *  @p
    32     */
    33    package ti.platforms.osk5912 [1,0,1,0] {
    34        module Platform;
    35    }
    36    /*
    37     *  @(#) ti.platforms.osk5912; 1, 0, 1, 0,368; 8-17-2012 22:16:47; /db/ztree/library/trees/platform/platform-n27x/src/
    38     */
    39


module ti.platforms.osk5912.Platform

metaonly module ti.platforms.osk5912.Platform
index URL

Platform support for the osk5912

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/osk5912/Platform.xdc
var Platform = xdc.useModule('ti.platforms.osk5912.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "osk5912",
        boardFamily: "osk5912",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 192.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5912",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        id: "0",
        clockRate: 192.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320C5912",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [ ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "osk5912",
    boardFamily: "osk5912",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 192.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5912",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    id: "0",
    clockRate: 192.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320C5912",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [ ];
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [ ];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:23 GMT


module ti.platforms.osk5912.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the osk5912
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     */
    30
    31    metaonly module Platform inherits xdc.platform.IPlatform
    32    {
    33        readonly config xdc.platform.IPlatform.Board BOARD = {
    34            id:             "0",
    35            boardName:      "osk5912",
    36            boardFamily:    "osk5912",
    37            boardRevision:  null,
    38        };
    39
    40        readonly config xdc.platform.IExeContext.Cpu DSP = {
    41            id:             "0",
    42            clockRate:      192.0,
    43            catalogName:    "ti.catalog.c5500",
    44            deviceName:     "TMS320C5912",
    45            revision:       "1.0",
    46        };
    47
    48        readonly config xdc.platform.IExeContext.Cpu GPP = {
    49            id:             "1",
    50            id:             "0",
    51            clockRate:      192.0,
    52            catalogName:    "ti.catalog.arm",
    53            deviceName:     "TMS320C5912",
    54            revision:       "1.0",
    55        };
    56
    57    instance:
    58
    59        /*
    60         *  ======== memTab ========
    61         *  Define the osk5912 memory map
    62         */
    63        override readonly config xdc.platform.IPlatform.MemoryMap
    64            externalMemoryMap = [];
    65    }
    66    /*
    67     *  @(#) ti.platforms.osk5912; 1, 0, 1, 0,368; 8-17-2012 22:16:47; /db/ztree/library/trees/platform/platform-n27x/src/
    68     */
    69


package ti.platforms.padk6727
index URL

Platform package for the PADK6727 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the PADK6727 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/padk6727/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.padk6727 [1, 0, 0] {
    module Platform;
    // This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the PADK6727 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.padk6727.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:23 GMT


package ti.platforms.padk6727

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.padk6727 ========
    18     *  Platform package for the PADK6727 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the PADK6727 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.padk6727.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.padk6727 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.padk6727; 1, 0, 0,369; 8-17-2012 22:16:50; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.padk6727.Platform

metaonly module ti.platforms.padk6727.Platform
index URL

This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc

  • XDCscript usage
  • Individual elements
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/padk6727/Platform.xdc
var Platform = xdc.useModule('ti.platforms.padk6727.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "padk6727",
        boardFamily: "padk6727",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 300.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6727",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SDRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0x80000000,
                    len: 0x08000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
The configuration parameters are initialized in this package's configuration script (package.xs) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "padk6727",
    boardFamily: "padk6727",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 300.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6727",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SDRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0x80000000,
                len: 0x08000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0x80000000,
            len: 0x08000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:23 GMT


module ti.platforms.padk6727.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    package ti.platforms.padk6727;
    19
    20    /*!
    21     *  ======== Platform ========
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.xs) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "padk6727",
    44            boardFamily:    "padk6727",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         */
    51        readonly config xdc.platform.IExeContext.Cpu CPU = {
    52            id:             "0",
    53            clockRate:      300.0,
    54            catalogName:    "ti.catalog.c6000",
    55            deviceName:     "TMS320C6727",
    56            revision:       "",
    57        };
    58
    59    instance:
    60
    61        override readonly config xdc.platform.IPlatform.Memory
    62            externalMemoryMap[string] = [
    63                ["SDRAM", {name: "SDRAM", base: 0x80000000, len: 0x08000000}],
    64            ];
    65
    66        override config string codeMemory = "SDRAM";
    67
    68        override config string dataMemory = "SDRAM";
    69
    70        override config string stackMemory = "SDRAM";
    71
    72        /*
    73         *  ======== l1PMode ========
    74         *  Define the amount of L1P RAM used for L1 Program Cache.
    75         *
    76         *  Check the device documentation for valid values.
    77         */
    78        config String l1PMode = "32k";
    79
    80        /*
    81         *  ======== l1DMode ========
    82         *  Define the amount of L1D RAM used for L1 Data Cache.
    83         *
    84         *  Check the device documentation for valid values.
    85         */
    86        config String l1DMode = "32k";
    87
    88        /*
    89         *  ======== l2Mode ========
    90         *  Define the amount of L2 RAM used for L2 Cache.
    91         *
    92         *  Check the device documentation for valid values.
    93         */
    94        config String l2Mode = "0k";
    95    };
    96    /*
    97     *  @(#) ti.platforms.padk6727; 1, 0, 0,369; 8-17-2012 22:16:50; /db/ztree/library/trees/platform/platform-n27x/src/
    98     */
    99


package ti.platforms.sdbTitan
index URL

Platform package for the Titan (TNETV1050) board

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Titan SDB board.
XDCspec declarations sourced in ti/platforms/sdbTitan/package.xdc
requires ti.catalog.c5500;
package ti.platforms.sdbTitan [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:18:25 GMT


package ti.platforms.sdbTitan

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c5500;
    19
    20    /*!
    21     *  ======== ti.platforms.sdbTitan ========
    22     *  Platform package for the Titan (TNETV1050) board.
    23     *
    24     *  This package implements the interfaces (xdc.platform.IPlatform) necessary
    25     *  to build and run executables on the Titan SDB board.
    26     */
    27    package ti.platforms.sdbTitan [1,0,0] {
    28    //    module Platform;
    29    }
    30    /*
    31     *  @(#) ti.platforms.sdbTitan; 1, 0, 0,368; 8-17-2012 22:16:52; /db/ztree/library/trees/platform/platform-n27x/src/
    32     */
    33


package ti.platforms.sdp2430
index URL

Platform package for the sdp2430 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sdp2430 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/sdp2430/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.sdp2430 [1, 0, 0] {
    module Platform;
    // Platform support for the sdp2430
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sdp2430 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.sdp2430.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:24 GMT


package ti.platforms.sdp2430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.sdp2430 ========
    23     *  Platform package for the sdp2430 platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the sdp2430 platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.sdp2430.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.sdp2430 [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.sdp2430; 1, 0, 0,354; 8-17-2012 22:16:53; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.sdp2430.Platform

metaonly module ti.platforms.sdp2430.Platform
index URL

Platform support for the sdp2430

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sdp2430/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sdp2430.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "sdp2430",
        boardFamily: "sdp2430",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 330,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C2430",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 330,
        catalogName: "ti.catalog.arm",
        deviceName: "OMAP2430",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR",
                {
                    name: "DDR",
                    base: 0x80000000,
                    len: 0x8000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sdp2430",
    boardFamily: "sdp2430",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 330,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C2430",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 330,
    catalogName: "ti.catalog.arm",
    deviceName: "OMAP2430",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR",
            {
                name: "DDR",
                base: 0x80000000,
                len: 0x8000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR",
        {
            name: "DDR",
            base: 0x80000000,
            len: 0x8000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:24 GMT


module ti.platforms.sdp2430.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the sdp2430
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "sdp2430",
    40            boardFamily:    "sdp2430",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu DSP = {
    45            id:             "0",
    46            clockRate:      330,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C2430",
    49            revision:       "",
    50        };
    51
    52        readonly config xdc.platform.IExeContext.Cpu GPP = {
    53            id:             "1",
    54            clockRate:      330,
    55            catalogName:    "ti.catalog.arm",
    56            deviceName:     "OMAP2430",
    57            revision:       "1.0",
    58        };
    59
    60    instance:
    61
    62        override readonly config xdc.platform.IPlatform.Memory
    63            externalMemoryMap[string] = [
    64                ["DDR", {name: "DDR", base: 0x80000000, len: 0x8000000}],
    65            ];
    66
    67        override config string dataMemory = "DDR";
    68
    69        override config string stackMemory = "DDR";
    70
    71        /*
    72         *  ======== l1PMode ========
    73         *  Define the amount of L1P RAM used for L1 Program Cache.
    74         *
    75         *  Check the device documentation for valid values.
    76         */
    77        config String l1PMode = "32k";
    78
    79        /*
    80         *  ======== l1DMode ========
    81         *  Define the amount of L1D RAM used for L1 Data Cache.
    82         *
    83         *  Check the device documentation for valid values.
    84         */
    85        config String l1DMode = "32k";
    86
    87        /*
    88         *  ======== l2Mode ========
    89         *  Define the amount of L2 RAM used for L2 Cache.
    90         *
    91         *  Check the device documentation for valid values.
    92         */
    93        config String l2Mode = "0k";
    94    };
    95    /*
    96     *  @(#) ti.platforms.sdp2430; 1, 0, 0,354; 8-17-2012 22:16:53; /db/ztree/library/trees/platform/platform-n27x/src/
    97     */
    98


package ti.platforms.sdp3430
index URL

Platform package for the sdp3430 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sdp3430 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/sdp3430/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.sdp3430 [1, 0, 0] {
    module Platform;
    // Platform support for the sdp3430
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sdp3430 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.sdp3430.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:24 GMT


package ti.platforms.sdp3430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.sdp3430 ========
    24     *  Platform package for the sdp3430 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the sdp3430 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.sdp3430.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.sdp3430 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.sdp3430; 1, 0, 0,339; 8-17-2012 22:16:56; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.sdp3430.Platform

metaonly module ti.platforms.sdp3430.Platform
index URL

Platform support for the sdp3430

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sdp3430/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sdp3430.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "sdp3430",
        boardFamily: "sdp3430",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 312.4,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C3430",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "1",
        clockRate: 476.25,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320C3430",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SDRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0x80000000,
                    len: 0x8000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sdp3430",
    boardFamily: "sdp3430",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 312.4,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C3430",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "1",
    clockRate: 476.25,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320C3430",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SDRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0x80000000,
                len: 0x8000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0x80000000,
            len: 0x8000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:24 GMT


module ti.platforms.sdp3430.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the sdp3430
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "sdp3430",
    40            boardFamily:    "sdp3430",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu DSP = {
    45            id:             "0",
    46            clockRate:      312.4,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C3430",
    49            revision:       "",
    50        };
    51
    52        readonly config xdc.platform.IExeContext.Cpu GPP = {
    53            id:             "1",
    54            clockRate:      476.25,
    55            catalogName:    "ti.catalog.arm.cortexa8",
    56            deviceName:     "TMS320C3430",
    57            revision:       "1.0",
    58        };
    59
    60    instance:
    61
    62        override readonly config xdc.platform.IPlatform.Memory
    63            externalMemoryMap[string] = [
    64                ["SDRAM", {name: "SDRAM", base: 0x80000000, len: 0x8000000}],
    65            ];
    66
    67        override config string codeMemory = "SDRAM";
    68
    69        override config string dataMemory = "SDRAM";
    70
    71        override config string stackMemory = "SDRAM";
    72
    73        /*
    74         *  ======== l1PMode ========
    75         *  Define the amount of L1P RAM used for L1 Program Cache.
    76         *
    77         *  Check the device documentation for valid values.
    78         */
    79        config String l1PMode = "32k";
    80
    81        /*
    82         *  ======== l1DMode ========
    83         *  Define the amount of L1D RAM used for L1 Data Cache.
    84         *
    85         *  Check the device documentation for valid values.
    86         */
    87        config String l1DMode = "32k";
    88
    89        /*
    90         *  ======== l2Mode ========
    91         *  Define the amount of L2 RAM used for L2 Cache.
    92         *
    93         *  Check the device documentation for valid values.
    94         */
    95        config String l2Mode = "0k";
    96    };
    97    /*
    98     *  @(#) ti.platforms.sdp3430; 1, 0, 0,339; 8-17-2012 22:16:56; /db/ztree/library/trees/platform/platform-n27x/src/
    99     */
   100


package ti.platforms.sdp4430
index URL

Platform package for the OMAP4430 SDP

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the OMAP4430 SDP platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/sdp4430/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa9;
requires xdc.platform[1, 0, 1];
package ti.platforms.sdp4430 [1, 0, 0, 0] {
    module Platform;
    // Platform support for OMAP4430
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the OMAP4430 SDP platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platforms.sdp4430.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:24 GMT


package ti.platforms.sdp4430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa9;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.sdp4430 ========
    24     *  Platform package for the OMAP4430 SDP.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the OMAP4430 SDP platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platforms.sdp4430.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.sdp4430 [1,0,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.sdp4430; 1, 0, 0, 0,86; 8-17-2012 22:16:58; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.sdp4430.Platform

metaonly module ti.platforms.sdp4430.Platform
index URL

Platform support for OMAP4430

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sdp4430/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sdp4430.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "sdp4430",
        boardFamily: "sdp4430",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 200.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "OMAP4430",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 466,
        catalogName: "ti.catalog.c6000",
        deviceName: "OMAP4430",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 720.0,
        catalogName: "ti.catalog.arm.cortexa9",
        deviceName: "OMAP4430",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EXT_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EXT_RAM";
        params.externalMemoryMap// Memory regions as defined in the OMAP4 Functional Specification = IPlatform.Memory[string] [
            [
                "EXT_RAM",
                {
                    comment: "External RAM",
                    name: "EXT_RAM",
                    base: 0x80000000,
                    len: 0x20000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EXT_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C64T DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sdp4430",
    boardFamily: "sdp4430",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 200.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "OMAP4430",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 466,
    catalogName: "ti.catalog.c6000",
    deviceName: "OMAP4430",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 720.0,
    catalogName: "ti.catalog.arm.cortexa9",
    deviceName: "OMAP4430",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EXT_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EXT_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // Memory regions as defined in the OMAP4 Functional Specification
        [
            "EXT_RAM",
            {
                comment: "External RAM",
                name: "EXT_RAM",
                base: 0x80000000,
                len: 0x20000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EXT_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

Memory regions as defined in the OMAP4 Functional Specification

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EXT_RAM",
        {
            comment: "External RAM",
            name: "EXT_RAM",
            base: 0x80000000,
            len: 0x20000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:24 GMT


module ti.platforms.sdp4430.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for sdp4430
    16     *
    17     */
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for OMAP4430
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    32     *  C64T DSP.
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        readonly config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "sdp4430",
    39            boardFamily:    "sdp4430",
    40            boardRevision:  null,
    41        };
    42
    43        readonly config xdc.platform.IExeContext.Cpu GEM = {
    44            id:             "0",
    45            clockRate:      466,
    46            catalogName:    "ti.catalog.c6000",
    47            deviceName:     "OMAP4430",
    48            revision:       "1.0",
    49        };
    50
    51        /* M3 Subsystem */
    52        readonly config xdc.platform.IExeContext.Cpu DSS = {
    53            id:             "1",
    54            clockRate:      200.0,
    55            catalogName:    "ti.catalog.arm.cortexm3",
    56            deviceName:     "OMAP4430",
    57            revision:       "1.0",
    58        };
    59
    60        /* GPP */
    61        readonly config xdc.platform.IExeContext.Cpu GPP = {
    62            id:             "2",
    63            clockRate:      720.0,  /* Typically set by the HLOS */
    64            catalogName:    "ti.catalog.arm.cortexa9",
    65            deviceName:     "OMAP4430",
    66            revision:       "1.0"
    67        };
    68
    69    instance:
    70
    71        /*!
    72         *  ======== externalMemoryMap ========
    73         *  Memory regions as defined in the OMAP4 Functional Specification
    74         */
    75
    76        override readonly config xdc.platform.IPlatform.Memory
    77            externalMemoryMap[string] = [
    78
    79                ["EXT_RAM", {
    80                    comment: "External RAM",
    81                    name: "EXT_RAM",
    82                    base: 0x80000000,
    83                    len:  0x20000000
    84                }],
    85
    86            ];
    87
    88        override config string codeMemory  = "EXT_RAM";
    89        override config string dataMemory  = "EXT_RAM";
    90        override config string stackMemory = "EXT_RAM";
    91
    92        /*
    93         *  ======== l1PMode ========
    94         *  Define the amount of L1P RAM used for L1 Program Cache.
    95         *
    96         *  Check the device documentation for valid values.
    97         */
    98        config String l1PMode = "32k";
    99
   100        /*
   101         *  ======== l1DMode ========
   102         *  Define the amount of L1D RAM used for L1 Data Cache.
   103         *
   104         *  Check the device documentation for valid values.
   105         */
   106        config String l1DMode = "32k";
   107
   108        /*
   109         *  ======== l2Mode ========
   110         *  Define the amount of L2 RAM used for L2 Cache.
   111         *
   112         *  Check the device documentation for valid values.
   113         */
   114        config String l2Mode = "0k";
   115    };
   116    /*
   117     *  @(#) ti.platforms.sdp4430; 1, 0, 0, 0,86; 8-17-2012 22:16:58; /db/ztree/library/trees/platform/platform-n27x/src/
   118     */
   119


package ti.platforms.sdp5430
index URL

Platform package for the OMAP5430 SDP

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the OMAP5430 SDP platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/sdp5430/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa9;
requires xdc.platform[1, 0, 1];
package ti.platforms.sdp5430 [1, 0, 0, 0] {
    module Platform;
    // Platform support for OMAP5430
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the OMAP5430 SDP platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platforms.sdp5430.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:25 GMT


package ti.platforms.sdp5430

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa9;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.sdp5430 ========
    24     *  Platform package for the OMAP5430 SDP.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the OMAP5430 SDP platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platforms.sdp5430.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.sdp5430 [1,0,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.sdp5430; 1, 0, 0, 0,18; 8-17-2012 22:17:00; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.sdp5430.Platform

metaonly module ti.platforms.sdp5430.Platform
index URL

Platform support for OMAP5430

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sdp5430/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sdp5430.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "sdp5430",
        boardFamily: "sdp5430",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 212.8,
        catalogName: "ti.catalog.arm.cortexm4",
        deviceName: "OMAP5430",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 466,
        catalogName: "ti.catalog.c6000",
        deviceName: "OMAP5430",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 800.0,
        catalogName: "ti.catalog.arm.cortexa15",
        deviceName: "OMAP5430",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EXT_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EXT_RAM";
        params.externalMemoryMap// Memory regions as defined in the OMAP4 Functional Specification = IPlatform.Memory[string] [
            [
                "EXT_RAM",
                {
                    comment: "External RAM",
                    name: "EXT_RAM",
                    base: 0x80000000,
                    len: 0x20000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EXT_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C64T DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sdp5430",
    boardFamily: "sdp5430",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 212.8,
    catalogName: "ti.catalog.arm.cortexm4",
    deviceName: "OMAP5430",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 466,
    catalogName: "ti.catalog.c6000",
    deviceName: "OMAP5430",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 800.0,
    catalogName: "ti.catalog.arm.cortexa15",
    deviceName: "OMAP5430",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EXT_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EXT_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // Memory regions as defined in the OMAP4 Functional Specification
        [
            "EXT_RAM",
            {
                comment: "External RAM",
                name: "EXT_RAM",
                base: 0x80000000,
                len: 0x20000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EXT_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

Memory regions as defined in the OMAP4 Functional Specification

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EXT_RAM",
        {
            comment: "External RAM",
            name: "EXT_RAM",
            base: 0x80000000,
            len: 0x20000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:25 GMT


module ti.platforms.sdp5430.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for sdp5430
    16     *
    17     */
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for OMAP5430
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    32     *  C64T DSP.
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        readonly config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "sdp5430",
    39            boardFamily:    "sdp5430",
    40            boardRevision:  null,
    41        };
    42
    43        readonly config xdc.platform.IExeContext.Cpu GEM = {
    44            id:             "0",
    45            clockRate:      466,
    46            catalogName:    "ti.catalog.c6000",
    47            deviceName:     "OMAP5430",
    48            revision:       "1.0",
    49        };
    50
    51        /* Benelli M4 Subsystem */
    52        readonly config xdc.platform.IExeContext.Cpu DSS = {
    53            id:             "1",
    54            clockRate:      212.8,
    55            catalogName:    "ti.catalog.arm.cortexm4",
    56            deviceName:     "OMAP5430",
    57            revision:       "1.0",
    58        };
    59
    60        /* GPP */
    61        readonly config xdc.platform.IExeContext.Cpu GPP = {
    62            id:             "2",
    63            clockRate:      800.0,  /* Typically set by the HLOS */
    64            catalogName:    "ti.catalog.arm.cortexa15",
    65            deviceName:     "OMAP5430",
    66            revision:       "1.0"
    67        };
    68
    69    instance:
    70
    71        /*!
    72         *  ======== externalMemoryMap ========
    73         *  Memory regions as defined in the OMAP4 Functional Specification
    74         */
    75
    76        override readonly config xdc.platform.IPlatform.Memory
    77            externalMemoryMap[string] = [
    78
    79                ["EXT_RAM", {
    80                    comment: "External RAM",
    81                    name: "EXT_RAM",
    82                    base: 0x80000000,
    83                    len:  0x20000000
    84                }],
    85
    86            ];
    87
    88        override config string codeMemory  = "EXT_RAM";
    89        override config string dataMemory  = "EXT_RAM";
    90        override config string stackMemory = "EXT_RAM";
    91
    92        /*
    93         *  ======== l1PMode ========
    94         *  Define the amount of L1P RAM used for L1 Program Cache.
    95         *
    96         *  Check the device documentation for valid values.
    97         */
    98        config String l1PMode = "32k";
    99
   100        /*
   101         *  ======== l1DMode ========
   102         *  Define the amount of L1D RAM used for L1 Data Cache.
   103         *
   104         *  Check the device documentation for valid values.
   105         */
   106        config String l1DMode = "32k";
   107
   108        /*
   109         *  ======== l2Mode ========
   110         *  Define the amount of L2 RAM used for L2 Cache.
   111         *
   112         *  Check the device documentation for valid values.
   113         */
   114        config String l2Mode = "0k";
   115    };
   116    /*
   117     *  @(#) ti.platforms.sdp5430; 1, 0, 0, 0,18; 8-17-2012 22:16:59; /db/ztree/library/trees/platform/platform-n27x/src/
   118     */
   119


package ti.platforms.sim2810
index URL

Platform package for the sim28xx platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim2810 platform.
XDCspec declarations sourced in ti/platforms/sim2810/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.sim2810 [1, 0, 0] {
    module Platform;
    // Simulation-based Platform support for 2810 platforms
}
generated on Thu, 08 Nov 2012 02:18:25 GMT


package ti.platforms.sim2810

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c2800;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.sim2810 ========
    23     *  Platform package for the sim28xx platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the sim2810 platform.
    27     */
    28    package ti.platforms.sim2810 [1,0,0] {
    29        module Platform;
    30    }
    31    /*
    32     *  @(#) ti.platforms.sim2810; 1, 0, 0,369; 8-17-2012 22:17:02; /db/ztree/library/trees/platform/platform-n27x/src/
    33     */
    34


module ti.platforms.sim2810.Platform

metaonly module ti.platforms.sim2810.Platform
index URL

Simulation-based Platform support for 2810 platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sim2810/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sim2810.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "sim2810",
        boardFamily: "sim2810",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C2810",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "H0SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "LSARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "MSARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sim2810",
    boardFamily: "sim2810",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C2810",
    revision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "H0SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "LSARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "MSARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "H0SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "LSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "MSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:25 GMT


module ti.platforms.sim2810.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.sim2810;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Simulation-based Platform support for 2810 platforms
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  This platform's board attributes
    41         */
    42        readonly config xdc.platform.IPlatform.Board BOARD = {
    43            id:             "0",
    44            boardName:      "sim2810",
    45            boardFamily:    "sim2810",
    46            boardRevision:  null
    47        };
    48
    49        /*!
    50         *  ======== CPU ========
    51         *  The CPU simulated by this platform.
    52         *
    53         */
    54        readonly config xdc.platform.IExeContext.Cpu   CPU = {
    55            id:             "0",
    56            clockRate:      150.0,
    57            catalogName:    "ti.catalog.c2800",
    58            deviceName:     "TMS320C2810",
    59            revision:       null,
    60        };
    61
    62    instance:
    63
    64        override config string codeMemory = "H0SARAM";
    65
    66        override config string dataMemory = "LSARAM";
    67
    68        override config string stackMemory = "MSARAM";
    69    };
    70    /*
    71     *  @(#) ti.platforms.sim2810; 1, 0, 0,369; 8-17-2012 22:17:02; /db/ztree/library/trees/platform/platform-n27x/src/
    72     */
    73


package ti.platforms.sim28xx
index URL

Platform package for the sim28xx platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim28xx platform.
XDCspec declarations sourced in ti/platforms/sim28xx/package.xdc
requires ti.catalog.c2800;
requires xdc.platform[1, 0, 1];
package ti.platforms.sim28xx [1, 0, 1, 1] {
    module Platform;
    // Simulation-based Platform support for 28xx platforms
}
generated on Thu, 08 Nov 2012 02:18:25 GMT


package ti.platforms.sim28xx

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires ti.catalog.c2800;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.sim28xx ========
    17     *  Platform package for the sim28xx platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the sim28xx platform.
    21     */
    22    package ti.platforms.sim28xx [1,0,1,1] {
    23        module Platform;
    24    }
    25    /*
    26     *  @(#) ti.platforms.sim28xx; 1, 0, 1, 1,116; 8-17-2012 22:17:04; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.platforms.sim28xx.Platform

metaonly module ti.platforms.sim28xx.Platform
index URL

Simulation-based Platform support for 28xx platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sim28xx/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sim28xx.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "sim28xx",
        boardFamily: "sim28xx",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 150.0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C2812",
        revision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SRAM";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SRAM",
                {
                    name: "SRAM",
                    base: 0x100000,
                    len: 0x10000,
                    page: 0,
                    space: "code/data"
                }
            ]
        ];
        params.ftpath// Installation directory of the Foundational Tools Suite = String undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "LSARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sim28xx",
    boardFamily: "sim28xx",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 150.0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C2812",
    revision: null
};
DETAILS
The device simulated is determined by the platform instance name or if this does not name a ti.catalog.c2800 module, then we simulate a TMS320C2812.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SRAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SRAM",
            {
                name: "SRAM",
                base: 0x100000,
                len: 0x10000,
                page: 0,
                space: "code/data"
            }
        ]
    ];
    params.ftpath = String undefined;
    // Installation directory of the Foundational Tools Suite
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "LSARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SRAM",
        {
            name: "SRAM",
            base: 0x100000,
            len: 0x10000,
            page: 0,
            space: "code/data"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.ftpath // instance
index URL

Installation directory of the Foundational Tools Suite

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.ftpath = String computed value;
DETAILS
The underlying simulation engine used to run executables produced using this platform is part of the Target Server / Foundational Tools product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "LSARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:25 GMT


module ti.platforms.sim28xx.Platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.sim28xx;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Simulation-based Platform support for 28xx platforms
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "sim28xx",
    44            boardFamily:    "sim28xx",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         *  The CPU simulated by this platform.
    51         *
    52         *  The device simulated is determined by the platform instance name
    53         *  or if this does not name a ti.catalog.c2800 module, then we
    54         *  simulate a TMS320C2812.
    55         */
    56        readonly config xdc.platform.IExeContext.Cpu   CPU = {
    57            id:             "0",
    58            clockRate:      150.0,
    59            catalogName:    "ti.catalog.c2800",
    60            deviceName:     "TMS320C2812",
    61            revision:       null,
    62        };
    63
    64    instance:
    65
    66        /*!
    67         *  ======== deviceName ========
    68         *  The CPU simulated by this simulator platform.
    69         *
    70         *  This parameter is optional. If it's not set, then the Platform module
    71         *  parameter CPU.deviceName is used.
    72         */
    73        config string deviceName;
    74
    75        override readonly config xdc.platform.IPlatform.Memory externalMemoryMap[string] = [
    76        /* The base address and length of SRAM on ezdsp2812.
    77         */
    78            ["SRAM",
    79                {
    80                    name: "SRAM",
    81                    base: 0x100000,
    82                    len:  0x10000,
    83                    page: 0,
    84                    space: "code/data"
    85                }
    86            ],
    87        ];
    88
    89        /*!
    90         *  ======== ftpath ========
    91         *  Installation directory of the Foundational Tools Suite
    92         *
    93         *  The underlying simulation engine used to run executables produced
    94         *  using this platform is part of the Target Server / Foundational Tools
    95         *  product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
    96         */
    97        readonly config String ftpath;
    98
    99        override config string codeMemory = "SRAM";
   100
   101        override config string dataMemory = "SRAM";
   102
   103        override config string stackMemory = "LSARAM";
   104    };
   105    /*
   106     *  @(#) ti.platforms.sim28xx; 1, 0, 1, 1,116; 8-17-2012 22:17:04; /db/ztree/library/trees/platform/platform-n27x/src/
   107     */
   108


package ti.platforms.sim470xx
index URL

Platform package for the sim470xx platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim470xx platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/sim470xx/package.xdc
requires ti.catalog.arm;
requires xdc.platform[1, 0, 1];
package ti.platforms.sim470xx [1, 0, 1, 1] {
    module Platform;
    // Simulation-based Platform support for TI Arm (470x) platforms
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim470xx platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.sim470xx.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:26 GMT


package ti.platforms.sim470xx

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires ti.catalog.arm;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.sim470xx ========
    17     *  Platform package for the sim470xx platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the sim470xx platform.
    21     *
    22     *  @a(Throws)
    23     *  `XDCException` exceptions are thrown for fatal errors. The following error
    24     *  codes are reported in the exception message:
    25     *  @p(dlist)
    26     *      -  `ti.platfoms.sim470xx.LINK_TEMPLATE_ERROR`
    27     *           This error is raised when this platform cannot found the default
    28     *           linker command template `linkcmd.xdt` in the build target's
    29     *           package. When a target does not contain this file, the config
    30     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    31     *  @p
    32     */
    33    package ti.platforms.sim470xx [1,0,1,1] {
    34        module Platform;
    35    }
    36
    37    /*
    38     *  @(#) ti.platforms.sim470xx; 1, 0, 1, 1,116; 8-17-2012 22:17:06; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.sim470xx.Platform

metaonly module ti.platforms.sim470xx.Platform
index URL

Simulation-based Platform support for TI Arm (470x) platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sim470xx/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sim470xx.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "sim470xx",
        boardFamily: "sim470xx",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 600.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS470R10",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "P_MEM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "D_MEM";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "D_MEM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sim470xx",
    boardFamily: "sim470xx",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 600.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS470R10",
    revision: ""
};
DETAILS
The device simulated is determined by the platform instance name or if this does not name a ti.catalog.arm module, then we we simulate a TMS470.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "P_MEM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "D_MEM";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "D_MEM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "P_MEM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "D_MEM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "D_MEM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:26 GMT


module ti.platforms.sim470xx.Platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.sim470xx;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Simulation-based Platform support for TI Arm (470x) platforms
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "sim470xx",
    44            boardFamily:    "sim470xx",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         *  The CPU simulated by this platform.
    51         *
    52         *  The device simulated is determined by the platform instance name
    53         *  or if this does not name a ti.catalog.arm module, then we
    54         *  we simulate a TMS470.
    55         */
    56        readonly config xdc.platform.IExeContext.Cpu CPU = {
    57            id:             "0",
    58            clockRate:      600.0,
    59            catalogName:    "ti.catalog.arm",
    60            deviceName:     "TMS470R10",
    61            revision:       "",
    62        };
    63
    64    instance:
    65
    66        /*!
    67         *  ======== deviceName ========
    68         *  The CPU simulated by this simulator platform.
    69         *
    70         *  This parameter is optional. If it's not set, then the Platform module
    71         *  parameter CPU.deviceName is used.
    72         */
    73        config string deviceName;
    74
    75        override config string codeMemory = "P_MEM";
    76
    77        override config string dataMemory = "D_MEM";
    78
    79        override config string stackMemory = "D_MEM";
    80    };
    81    /*
    82     *  @(#) ti.platforms.sim470xx; 1, 0, 1, 1,116; 8-17-2012 22:17:06; /db/ztree/library/trees/platform/platform-n27x/src/
    83     */
    84


package ti.platforms.sim54xx
index URL

Platform package for the sim54xx platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim54xx platform.
XDCspec declarations sourced in ti/platforms/sim54xx/package.xdc
requires ti.catalog.c5400;
requires xdc.platform[1, 0, 1];
package ti.platforms.sim54xx [1, 0, 1, 1] {
    module Platform;
    // Simulation-based Platform support for 54xx platforms
}
generated on Thu, 08 Nov 2012 02:18:26 GMT


package ti.platforms.sim54xx

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires ti.catalog.c5400;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.sim54xx ========
    17     *  Platform package for the sim54xx platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the sim54xx platform.
    21     */
    22    package ti.platforms.sim54xx [1,0,1,1] {
    23        module Platform;
    24    }
    25    /*
    26     *  @(#) ti.platforms.sim54xx; 1, 0, 1, 1,116; 8-17-2012 22:17:10; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.platforms.sim54xx.Platform

metaonly module ti.platforms.sim54xx.Platform
index URL

Simulation-based Platform support for 54xx platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sim54xx/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sim54xx.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "sim54xx",
        boardFamily: "sim54xx",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 100.0,
        catalogName: "ti.catalog.c5400",
        deviceName: "TMS320C5416",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EPROG0";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "D_DARAM03";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.pmst// The value of the register PMST = Bits32 0xffe0;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "D_DARAM03";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sim54xx",
    boardFamily: "sim54xx",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 100.0,
    catalogName: "ti.catalog.c5400",
    deviceName: "TMS320C5416",
    revision: ""
};
DETAILS
The device simulated is determined by the platform instance name or if this does not name a ti.catalog.c5400 module, then we simulate a TMS320C5416.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EPROG0";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "D_DARAM03";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.pmst = Bits32 0xffe0;
    // The value of the register PMST
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "D_DARAM03";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EPROG0";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "D_DARAM03";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.pmst // instance
index URL

The value of the register PMST

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.pmst = Bits32 0xffe0;
DETAILS
This parameter determines memory map. If the configuration parameters ti.platforms.sim54xx.Platform.externalMemoryMap or ti.platforms.sim54xx.Platform.customMemoryMap are set, the memory addresses and sizes must fit within address spaces defined by pmst. Complete description of the PMST register and the memory maps for 54xx based devices and platforms is available in datasheets for 54xx devices.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "D_DARAM03";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:26 GMT


module ti.platforms.sim54xx.Platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.sim54xx;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Simulation-based Platform support for 54xx platforms
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "sim54xx",
    44            boardFamily:    "sim54xx",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         *  The CPU simulated by this platform.
    51         *
    52         *  The device simulated is determined by the platform instance name
    53         *  or if this does not name a ti.catalog.c5400 module, then we
    54         *  simulate a TMS320C5416.
    55         */
    56        readonly config xdc.platform.IExeContext.Cpu   CPU = {
    57            id:             "0",
    58            clockRate:      100.0,
    59            catalogName:    "ti.catalog.c5400",
    60            deviceName:     "TMS320C5416",
    61            revision:       "",
    62        };
    63
    64    instance:
    65
    66        /*!
    67         *  ======== deviceName ========
    68         *  The CPU simulated by this simulator platform.
    69         *
    70         *  This parameter is optional. If it's not set, then the Platform module
    71         *  parameter CPU.deviceName is used.
    72         */
    73        config string deviceName;
    74
    75        override config string codeMemory = "EPROG0";
    76
    77        override config string dataMemory = "D_DARAM03";
    78
    79        override config string stackMemory = "D_DARAM03";
    80
    81        /*!
    82         *  ======== pmst ========
    83         *  The value of the register PMST.
    84         *
    85         *  This parameter determines memory map. If the configuration parameters
    86         *  `{@link ti.platforms.sim54xx.Platform#externalMemoryMap}` or
    87         *  `{@link ti.platforms.sim54xx.Platform#customMemoryMap}` are set, the
    88         *  memory addresses and sizes must fit within address spaces defined by
    89         *  `pmst`. Complete description of the PMST register and the memory maps
    90         *  for 54xx based devices and platforms is available in datasheets for
    91         *  54xx devices.
    92         */
    93        config Bits32 pmst = 0xffe0;
    94    };
    95    /*
    96     *  @(#) ti.platforms.sim54xx; 1, 0, 1, 1,116; 8-17-2012 22:17:10; /db/ztree/library/trees/platform/platform-n27x/src/
    97     */
    98


package ti.platforms.sim55xx
index URL

Platform package for the sim55xx platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim55xx platform.
XDCspec declarations sourced in ti/platforms/sim55xx/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.sim55xx [1, 0, 1, 1] {
    module Platform;
    // A simulation platform for C55xx-based platforms
}
generated on Thu, 08 Nov 2012 02:18:26 GMT


package ti.platforms.sim55xx

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires ti.catalog.c5500;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.sim55xx ========
    17     *  Platform package for the sim55xx platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the sim55xx platform.
    21     */
    22    package ti.platforms.sim55xx [1,0,1,1] {
    23        module Platform;
    24    }
    25    /*
    26     *  @(#) ti.platforms.sim55xx; 1, 0, 1, 1,116; 8-17-2012 22:17:12; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.platforms.sim55xx.Platform

metaonly module ti.platforms.sim55xx.Platform
index URL

A simulation platform for C55xx-based platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sim55xx/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sim55xx.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "sim55xx",
        boardFamily: "sim55xx",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5510",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.ftpath// Installation directory of the Foundational Tools Suite = String undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.st3_55// The value of the MP/MC bit in the register ST3_55 = Bool true;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sim55xx",
    boardFamily: "sim55xx",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 200.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5510",
    revision: ""
};
DETAILS
The device simulated is determined by the platform instance name or if this does not name a ti.catalog.c5500 module, then we simulate a TMS320C5510.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.ftpath = String undefined;
    // Installation directory of the Foundational Tools Suite
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.st3_55 = Bool true;
    // The value of the MP/MC bit in the register ST3_55
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.ftpath // instance
index URL

Installation directory of the Foundational Tools Suite

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.ftpath = String computed value;
DETAILS
The underlying simulation engine used to run executables produced using this platform is part of the Target Server / Foundational Tools product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.st3_55 // instance
index URL

The value of the MP/MC bit in the register ST3_55

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.st3_55 = Bool true;
DETAILS
This parameter determines memory map. If the configuration parameter ti.platforms.sim55xx.Platform.customMemoryMap is set, the memory addresses and sizes must fit within address spaces defined by st3_55. Complete description of the ST3_55 register and the memory maps for 55xx based devices and platforms is available in device datasheets.
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:26 GMT


module ti.platforms.sim55xx.Platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.sim55xx;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  A simulation platform for C55xx-based platforms
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "sim55xx",
    44            boardFamily:    "sim55xx",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         *  The CPU simulated by this platform.
    51         *
    52         *  The device simulated is determined by the platform instance name
    53         *  or if this does not name a ti.catalog.c5500 module, then we
    54         *  simulate a TMS320C5510.
    55         */
    56        readonly config xdc.platform.IExeContext.Cpu CPU = {
    57            id:             "0",
    58            clockRate:      200.0,
    59            catalogName:    "ti.catalog.c5500",
    60            deviceName:     "TMS320C5510",
    61            revision:       "",
    62        };
    63
    64    instance:
    65
    66        /*!
    67         *  ======== deviceName ========
    68         *  The CPU simulated by this simulator platform.
    69         *
    70         *  This parameter is optional. If it's not set, then the Platform module
    71         *  parameter CPU.deviceName is used.
    72         */
    73        config string deviceName;
    74
    75        /*!
    76         *  ======== ftpath ========
    77         *  Installation directory of the Foundational Tools Suite
    78         *
    79         *  The underlying simulation engine used to run executables produced
    80         *  using this platform is part of the Target Server / Foundational Tools
    81         *  product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
    82         */
    83        readonly config String ftpath;
    84
    85        override config string codeMemory = "SARAM";
    86
    87        override config string dataMemory = "DARAM";
    88
    89        override config string stackMemory = "DARAM";
    90
    91        /*!
    92         *  ======== st3_55 ========
    93         *  The value of the MP/MC bit in the register ST3_55.
    94         *
    95         *  This parameter determines memory map. If the configuration parameter
    96         *  `{@link ti.platforms.sim55xx.Platform#customMemoryMap}` is set, the
    97         *  memory addresses and sizes must fit within address spaces defined by
    98         *  `st3_55`. Complete description of the ST3_55 register and the memory
    99         *  maps for 55xx based devices and platforms is available in device
   100         *  datasheets.
   101         */
   102        config Bool st3_55 = true;
   103    };
   104    /*
   105     *  @(#) ti.platforms.sim55xx; 1, 0, 1, 1,116; 8-17-2012 22:17:12; /db/ztree/library/trees/platform/platform-n27x/src/
   106     */
   107


package ti.platforms.sim62xx
index URL

Platform package for the sim62xx platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim62xx platform.
XDCspec declarations sourced in ti/platforms/sim62xx/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.sim62xx [1, 0, 0] {
    module Platform;
    // Platform support for the sim62xx
}
generated on Thu, 08 Nov 2012 02:18:27 GMT


package ti.platforms.sim62xx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.sim62xx ========
    18     *  Platform package for the sim62xx platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the sim62xx platform.
    22     */
    23    package ti.platforms.sim62xx [1,0,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.sim62xx; 1, 0, 0,369; 8-17-2012 22:17:14; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.sim62xx.Platform

metaonly module ti.platforms.sim62xx.Platform
index URL

Platform support for the sim62xx

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sim62xx/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sim62xx.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "sim62xx",
        boardFamily: "sim62xx",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6204",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "IPRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM0";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SBSRAM",
                {
                    name: "SBSRAM",
                    base: 0x0400000,
                    len: 0x040000
                }
            ],
            [
                "SDRAM0",
                {
                    name: "SDRAM0",
                    base: 0x2000000,
                    len: 0x400000
                }
            ],
            [
                "SDRAM1",
                {
                    name: "SDRAM1",
                    base: 0x3000000,
                    len: 0x400000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM0";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sim62xx",
    boardFamily: "sim62xx",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 200.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6204",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "IPRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM0";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SBSRAM",
            {
                name: "SBSRAM",
                base: 0x0400000,
                len: 0x040000
            }
        ],
        [
            "SDRAM0",
            {
                name: "SDRAM0",
                base: 0x2000000,
                len: 0x400000
            }
        ],
        [
            "SDRAM1",
            {
                name: "SDRAM1",
                base: 0x3000000,
                len: 0x400000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM0";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "IPRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM0";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SBSRAM",
        {
            name: "SBSRAM",
            base: 0x0400000,
            len: 0x040000
        }
    ],
    [
        "SDRAM0",
        {
            name: "SDRAM0",
            base: 0x2000000,
            len: 0x400000
        }
    ],
    [
        "SDRAM1",
        {
            name: "SDRAM1",
            base: 0x3000000,
            len: 0x400000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM0";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:27 GMT


module ti.platforms.sim62xx.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the sim62xx
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        readonly config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "sim62xx",
    40            boardFamily:    "sim62xx",
    41            boardRevision:  null,
    42        };
    43
    44        readonly config xdc.platform.IExeContext.Cpu CPU = {
    45            id:             "0",
    46            clockRate:      200.0,
    47            catalogName:    "ti.catalog.c6000",
    48            deviceName:     "TMS320C6204",
    49            revision:       "",
    50        };
    51
    52    instance:
    53
    54        override readonly config xdc.platform.IPlatform.Memory
    55            externalMemoryMap[string] = [
    56                ["SBSRAM",  {name: "SBSRAM",  base: 0x0400000, len: 0x040000}],
    57                ["SDRAM0",  {name: "SDRAM0",  base: 0x2000000, len: 0x400000}],
    58                ["SDRAM1",  {name: "SDRAM1",  base: 0x3000000, len: 0x400000}],
    59            ];
    60
    61        override config string codeMemory = "IPRAM";
    62
    63        override config string dataMemory = "SDRAM0";
    64
    65        override config string stackMemory = "SDRAM0";
    66
    67        /*
    68         *  ======== l1PMode ========
    69         *  Define the amount of L1P RAM used for L1 Program Cache.
    70         *
    71         *  Check the device documentation for valid values.
    72         */
    73        config String l1PMode = "32k";
    74
    75        /*
    76         *  ======== l1DMode ========
    77         *  Define the amount of L1D RAM used for L1 Data Cache.
    78         *
    79         *  Check the device documentation for valid values.
    80         */
    81        config String l1DMode = "32k";
    82
    83        /*
    84         *  ======== l2Mode ========
    85         *  Define the amount of L2 RAM used for L2 Cache.
    86         *
    87         *  Check the device documentation for valid values.
    88         */
    89        config String l2Mode = "0k";
    90    };
    91    /*
    92     *  @(#) ti.platforms.sim62xx; 1, 0, 0,369; 8-17-2012 22:17:14; /db/ztree/library/trees/platform/platform-n27x/src/
    93     */
    94


package ti.platforms.sim64Pxx
index URL

Platform package for the sim64Pxx platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim64Pxx platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/sim64Pxx/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.sim64Pxx [1, 0, 0] {
    module Platform;
    // Platform support for the sim64Pxx
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim64Pxx platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.sim64Pxx.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:27 GMT


package ti.platforms.sim64Pxx

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.sim64Pxx ========
    23     *  Platform package for the sim64Pxx platform.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the sim64Pxx platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.sim64Pxx.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.sim64Pxx [1,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.sim64Pxx; 1, 0, 0,369; 8-17-2012 22:17:17; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.sim64Pxx.Platform

metaonly module ti.platforms.sim64Pxx.Platform
index URL

Platform support for the sim64Pxx

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sim64Pxx/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sim64Pxx.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "sim64Pxx",
        boardFamily: "sim64Pxx",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CTCI6482",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR",
                {
                    name: "DDR",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.ftpath// Installation directory of the Foundational Tools Suite = String undefined;
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sim64Pxx",
    boardFamily: "sim64Pxx",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CTCI6482",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR",
            {
                name: "DDR",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.ftpath = String undefined;
    // Installation directory of the Foundational Tools Suite
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR",
        {
            name: "DDR",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.ftpath // instance
index URL

Installation directory of the Foundational Tools Suite

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.ftpath = String computed value;
DETAILS
The underlying simulation engine used to run executables produced using this platform is part of the Target Server / Foundational Tools product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:27 GMT


module ti.platforms.sim64Pxx.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    package ti.platforms.sim64Pxx;
    19
    20    /*!
    21     *  ======== Platform ========
    22     *  Platform support for the sim64Pxx
    23     *
    24     *  This module implements xdc.platform.IPlatform and defines configuration
    25     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    26     *
    27     *  The configuration parameters are initialized in this package's
    28     *  configuration script (package.cfg) and "bound" to the TCOM object
    29     *  model.  Once they are part of the model, these parameters are
    30     *  queried by a program's configuration script.
    31     *
    32     *  This particular platform has a single Cpu, and therefore, only
    33     *  declares a single CPU configuration object.  Multi-CPU platforms
    34     *  would declare multiple Cpu configuration parameters (one per
    35     *  platform CPU).
    36     */
    37    metaonly module Platform inherits xdc.platform.IPlatform
    38    {
    39        readonly config xdc.platform.IPlatform.Board BOARD = {
    40            id:             "0",
    41            boardName:      "sim64Pxx",
    42            boardFamily:    "sim64Pxx",
    43            boardRevision:  null,
    44        };
    45
    46        readonly config xdc.platform.IExeContext.Cpu CPU = {
    47            id:             "0",
    48            clockRate:      1000,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320CTCI6482",
    51            revision:       "",
    52        };
    53
    54    instance:
    55
    56        override readonly config xdc.platform.IPlatform.Memory
    57            externalMemoryMap[string] = [
    58                ["DDR", {name: "DDR", base: 0x80000000, len: 0x10000000}],
    59            ];
    60
    61        /*!
    62         *  ======== deviceName ========
    63         *  The CPU simulated by this simulator platform.
    64         *
    65         *  This parameter is optional. If it's not set, then the Platform module
    66         *  parameter CPU.deviceName is used.
    67         */
    68        config string deviceName;
    69
    70        /*!
    71         *  ======== ftpath ========
    72         *  Installation directory of the Foundational Tools Suite
    73         *
    74         *  The underlying simulation engine used to run executables produced
    75         *  using this platform is part of the Target Server / Foundational Tools
    76         *  product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
    77         */
    78        readonly config String ftpath;
    79
    80        override config string codeMemory = "DDR";
    81
    82        override config string dataMemory = "DDR";
    83
    84        override config string stackMemory = "DDR";
    85
    86        /*
    87         *  ======== l1PMode ========
    88         *  Define the amount of L1P RAM used for L1 Program Cache.
    89         *
    90         *  Check the device documentation for valid values.
    91         */
    92        config String l1PMode = "32k";
    93
    94        /*
    95         *  ======== l1DMode ========
    96         *  Define the amount of L1D RAM used for L1 Data Cache.
    97         *
    98         *  Check the device documentation for valid values.
    99         */
   100        config String l1DMode = "32k";
   101
   102        /*
   103         *  ======== l2Mode ========
   104         *  Define the amount of L2 RAM used for L2 Cache.
   105         *
   106         *  Check the device documentation for valid values.
   107         */
   108        config String l2Mode = "0k";
   109    };
   110    /*
   111     *  @(#) ti.platforms.sim64Pxx; 1, 0, 0,369; 8-17-2012 22:17:17; /db/ztree/library/trees/platform/platform-n27x/src/
   112     */
   113


package ti.platforms.sim6xxx
index URL

Platform package for the sim6xxx platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim6xxx platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/sim6xxx/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.sim6xxx [1, 0, 1, 1] {
    module Platform;
    // Simulation-based Platform support for 6xxx platforms
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the sim6xxx platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.sim6xxx.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:28 GMT


package ti.platforms.sim6xxx

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires ti.catalog.c6000;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.sim6xxx ========
    17     *  Platform package for the sim6xxx platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the sim6xxx platform.
    21     *
    22     *  @a(Throws)
    23     *  `XDCException` exceptions are thrown for fatal errors. The following error
    24     *  codes are reported in the exception message:
    25     *  @p(dlist)
    26     *      -  `ti.platfoms.sim6xxx.LINK_TEMPLATE_ERROR`
    27     *           This error is raised when this platform cannot found the default
    28     *           linker command template `linkcmd.xdt` in the build target's
    29     *           package. When a target does not contain this file, the config
    30     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    31     *  @p
    32     */
    33    package ti.platforms.sim6xxx [1,0,1,1] {
    34        module Platform;
    35    }
    36    /*
    37     *  @(#) ti.platforms.sim6xxx; 1, 0, 1, 1,116; 8-17-2012 22:17:32; /db/ztree/library/trees/platform/platform-n27x/src/
    38     */
    39


module ti.platforms.sim6xxx.Platform

metaonly module ti.platforms.sim6xxx.Platform
index URL

Simulation-based Platform support for 6xxx platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/sim6xxx/Platform.xdc
var Platform = xdc.useModule('ti.platforms.sim6xxx.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "sim6xxx",
        boardFamily: "sim6xxx",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 600.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320C6416",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "IRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SDRAM";
        params.deviceName// The CPU simulated by this simulator platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "SDRAM",
                {
                    name: "SDRAM",
                    base: 0x80000000,
                    len: 0x01000000,
                    space: "code/data"
                }
            ]
        ];
        params.ftpath// Installation directory of the Foundational Tools Suite = String undefined;
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SDRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "sim6xxx",
    boardFamily: "sim6xxx",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 600.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320C6416",
    revision: ""
};
DETAILS
The device simulated is determined by the platform instance name or if this does not name a ti.catalog.c6000 module, we simulate a TMS320C6416.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "IRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SDRAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU simulated by this simulator platform
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "SDRAM",
            {
                name: "SDRAM",
                base: 0x80000000,
                len: 0x01000000,
                space: "code/data"
            }
        ]
    ];
    params.ftpath = String undefined;
    // Installation directory of the Foundational Tools Suite
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SDRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU simulated by this simulator platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "SDRAM",
        {
            name: "SDRAM",
            base: 0x80000000,
            len: 0x01000000,
            space: "code/data"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
This parameter defines the external portion of the platform's memory map.
config Platform.ftpath // instance
index URL

Installation directory of the Foundational Tools Suite

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.ftpath = String undefined;
DETAILS
The underlying simulation engine used to run executables produced using this platform is part of the Target Server / Foundational Tools product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SDRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:28 GMT


module ti.platforms.sim6xxx.Platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.sim6xxx;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Simulation-based Platform support for 6xxx platforms
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "sim6xxx",
    44            boardFamily:    "sim6xxx",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         *  The CPU simulated by this platform.
    51         *
    52         *  The device simulated is determined by the platform instance name
    53         *  or if this does not name a ti.catalog.c6000 module, we simulate
    54         *  a TMS320C6416.
    55         */
    56        readonly config xdc.platform.IExeContext.Cpu CPU = {
    57            id:             "0",
    58            clockRate:      600.0,
    59            catalogName:    "ti.catalog.c6000",
    60            deviceName:     "TMS320C6416",
    61            revision:       "",
    62        };
    63
    64    instance:
    65
    66        /*!
    67         *  ======== externalMemoryMap ========
    68         *  A mapping of memory names to memory objects for external memory.
    69         *
    70         *  This parameter defines the external portion of the platform's memory
    71         *  map.
    72         */
    73        override readonly config xdc.platform.IPlatform.Memory externalMemoryMap[string] = [
    74            ["SDRAM",
    75                {
    76                    name: "SDRAM",
    77                    base: 0x80000000,
    78                    len: 0x01000000,
    79                    space: "code/data",
    80                }
    81            ],
    82        ];
    83
    84        /*!
    85         *  ======== deviceName ========
    86         *  The CPU simulated by this simulator platform.
    87         *
    88         *  This parameter is optional. If it's not set, then the Platform module
    89         *  parameter CPU.deviceName is used.
    90         */
    91        config string deviceName;
    92
    93        /*!
    94         *  ======== ftpath ========
    95         *  Installation directory of the Foundational Tools Suite
    96         *
    97         *  The underlying simulation engine used to run executables produced
    98         *  using this platform is part of the Target Server / Foundational Tools
    99         *  product (http://www.hou.asp.ti.com/asp/sds/eft/projects/Foundation_Tools/Releases/index.html).
   100         */
   101        config String ftpath;
   102
   103        override config string codeMemory = "IRAM";
   104
   105        override config string dataMemory = "SDRAM";
   106
   107        override config string stackMemory = "SDRAM";
   108
   109        /*
   110         *  ======== l1PMode ========
   111         *  Define the amount of L1P RAM used for L1 Program Cache.
   112         *
   113         *  Check the device documentation for valid values.
   114         */
   115        config String l1PMode = "32k";
   116
   117        /*
   118         *  ======== l1DMode ========
   119         *  Define the amount of L1D RAM used for L1 Data Cache.
   120         *
   121         *  Check the device documentation for valid values.
   122         */
   123        config String l1DMode = "32k";
   124
   125        /*
   126         *  ======== l2Mode ========
   127         *  Define the amount of L2 RAM used for L2 Cache.
   128         *
   129         *  Check the device documentation for valid values.
   130         */
   131        config String l2Mode = "0k";
   132    };
   133    /*
   134     *  @(#) ti.platforms.sim6xxx; 1, 0, 1, 1,116; 8-17-2012 22:17:32; /db/ztree/library/trees/platform/platform-n27x/src/
   135     */
   136


package ti.platforms.simARP32
index URL

Platform package for the simARP32 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simARP32 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simARP32/package.xdc
requires ti.catalog.arp32;
requires xdc.platform[1, 0, 1];
package ti.platforms.simARP32 [1, 0, 1, 0] {
    module Platform;
    // Simulation-based Platform support for TI Torrent platforms
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simARP32 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simARP32.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:29 GMT


package ti.platforms.simARP32

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.arp32;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.simARP32 ========
    18     *  Platform package for the simARP32 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the simARP32 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.simARP32.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.simARP32 [1,0,1,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.simARP32; 1, 0, 1, 0,52; 8-17-2012 22:17:33; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.simARP32.Platform

metaonly module ti.platforms.simARP32.Platform
index URL

Simulation-based Platform support for TI Torrent platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/simARP32/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simARP32.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "simARP32",
        boardFamily: "simARP32",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.arp32",
        deviceName: "Arctic",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "ARP32";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DMEM";
        params.externalMemoryMap// Memory regions as defined in the Ducati Functional Specification = IPlatform.Memory[string] [
            [
                "ARP32VECS",
                {
                    comment: "External memory for ARP32 interrupt vectors",
                    name: "ARP32VECS",
                    base: 0x80000000,
                    len: 0x00000100,
                    page: 0,
                    space: "code/data"
                }
            ],
            [
                "ARP32",
                {
                    comment: "External memory for ARP32 use",
                    name: "ARP32",
                    base: 0x80000100,
                    len: 0x0fffff00,
                    page: 1,
                    space: "code/data"
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DMEM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simARP32",
    boardFamily: "simARP32",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 200.0,
    catalogName: "ti.catalog.arp32",
    deviceName: "Arctic",
    revision: "1.0"
};
DETAILS
The device simulated is determined by the platform instance name or if this does not name a ti.catalog.arm module, then we we simulate a TMS470.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "ARP32";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DMEM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // Memory regions as defined in the Ducati Functional Specification
        [
            "ARP32VECS",
            {
                comment: "External memory for ARP32 interrupt vectors",
                name: "ARP32VECS",
                base: 0x80000000,
                len: 0x00000100,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "ARP32",
            {
                comment: "External memory for ARP32 use",
                name: "ARP32",
                base: 0x80000100,
                len: 0x0fffff00,
                page: 1,
                space: "code/data"
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DMEM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "ARP32";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DMEM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

Memory regions as defined in the Ducati Functional Specification

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "ARP32VECS",
        {
            comment: "External memory for ARP32 interrupt vectors",
            name: "ARP32VECS",
            base: 0x80000000,
            len: 0x00000100,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "ARP32",
        {
            comment: "External memory for ARP32 use",
            name: "ARP32",
            base: 0x80000100,
            len: 0x0fffff00,
            page: 1,
            space: "code/data"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DMEM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:29 GMT


module ti.platforms.simARP32.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.simARP32;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Simulation-based Platform support for TI Torrent platforms
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  This platform's board attributes
    41         */
    42        readonly config xdc.platform.IPlatform.Board BOARD = {
    43            id:             "0",
    44            boardName:      "simARP32",
    45            boardFamily:    "simARP32",
    46            boardRevision:  null
    47        };
    48
    49        /*!
    50         *  ======== CPU ========
    51         *  The CPU simulated by this platform.
    52         *
    53         *  The device simulated is determined by the platform instance name
    54         *  or if this does not name a ti.catalog.arm module, then we
    55         *  we simulate a TMS470.
    56         */
    57        readonly config xdc.platform.IExeContext.Cpu CPU = {
    58            id:             "0",
    59            clockRate:      200.0,
    60            catalogName:    "ti.catalog.arp32",
    61            deviceName:     "Arctic",
    62            revision:       "1.0",
    63        };
    64
    65    instance:
    66
    67        /*!
    68         *  ======== externalMemoryMap ========
    69         *  Memory regions as defined in the Ducati Functional Specification
    70         */
    71
    72        override readonly config xdc.platform.IPlatform.Memory
    73            externalMemoryMap[string] = [
    74                ["ARP32VECS", {
    75                    comment: "External memory for ARP32 interrupt vectors",
    76                    name:  "ARP32VECS",
    77                    base:  0x80000000,
    78                    len:   0x00000100,
    79                    page:  0,
    80                    space: "code/data"
    81                }],
    82
    83                ["ARP32", {
    84                    comment: "External memory for ARP32 use",
    85                    name:  "ARP32",
    86                    base:  0x80000100,
    87                    len:   0x0fffff00,
    88                    page:  1,
    89                    space: "code/data"
    90                }]
    91            ];
    92
    93        override config string codeMemory = "ARP32";
    94        override config string dataMemory = "DMEM";
    95        override config string stackMemory = "DMEM";
    96    };
    97    /*
    98     *  @(#) ti.platforms.simARP32; 1, 0, 1, 0,52; 8-17-2012 22:17:32; /db/ztree/library/trees/platform/platform-n27x/src/
    99     */
   100


package ti.platforms.simArctic
index URL

Platform package for the simArctic platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simArctic platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simArctic/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.simArctic [1, 0, 0] {
    module Platform;
    // Platform support for the simArctic
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simArctic platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simArctic.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:28 GMT


package ti.platforms.simArctic

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.simArctic ========
    18     *  Platform package for the simArctic platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the simArctic platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.simArctic.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.simArctic [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.simArctic; 1, 0, 0,60; 8-17-2012 22:17:41; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.simArctic.Platform

metaonly module ti.platforms.simArctic.Platform
index URL

Platform support for the simArctic

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/simArctic/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simArctic.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.ARP32// = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.arp32",
        deviceName: "Arctic",
        revision: ""
    };
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simArctic",
        boardFamily: "simArctic",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "1",
        clockRate: 300.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "Arctic",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "ARP32VECS",
                {
                    comment: "External memory for ARP32 interrupt vectors",
                    name: "ARP32VECS",
                    base: 0x80000000,
                    len: 0x00000100,
                    space: "code/data"
                }
            ],
            [
                "ARP32",
                {
                    comment: "External memory for ARP32 use",
                    name: "ARP32",
                    base: 0x80000100,
                    len: 0x01ffff00,
                    space: "code/data"
                }
            ],
            [
                "DSP",
                {
                    comment: "External memory for DSP use",
                    name: "DSP",
                    base: 0x82000000,
                    len: 0x02000000,
                    space: "code/data"
                }
            ],
            [
                "SHARED",
                {
                    comment: "Shared external memory",
                    name: "SHARED",
                    base: 0x84000000,
                    len: 0x0C000000,
                    space: "code/data"
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.ARP32 // module-wide
index URL
XDCscript usage meta-domain
const Platform.ARP32 = IExeContext.Cpu {
    id: "0",
    clockRate: 200.0,
    catalogName: "ti.catalog.arp32",
    deviceName: "Arctic",
    revision: ""
};
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simArctic",
    boardFamily: "simArctic",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "1",
    clockRate: 300.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "Arctic",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "ARP32VECS",
            {
                comment: "External memory for ARP32 interrupt vectors",
                name: "ARP32VECS",
                base: 0x80000000,
                len: 0x00000100,
                space: "code/data"
            }
        ],
        [
            "ARP32",
            {
                comment: "External memory for ARP32 use",
                name: "ARP32",
                base: 0x80000100,
                len: 0x01ffff00,
                space: "code/data"
            }
        ],
        [
            "DSP",
            {
                comment: "External memory for DSP use",
                name: "DSP",
                base: 0x82000000,
                len: 0x02000000,
                space: "code/data"
            }
        ],
        [
            "SHARED",
            {
                comment: "Shared external memory",
                name: "SHARED",
                base: 0x84000000,
                len: 0x0C000000,
                space: "code/data"
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "ARP32VECS",
        {
            comment: "External memory for ARP32 interrupt vectors",
            name: "ARP32VECS",
            base: 0x80000000,
            len: 0x00000100,
            space: "code/data"
        }
    ],
    [
        "ARP32",
        {
            comment: "External memory for ARP32 use",
            name: "ARP32",
            base: 0x80000100,
            len: 0x01ffff00,
            space: "code/data"
        }
    ],
    [
        "DSP",
        {
            comment: "External memory for DSP use",
            name: "DSP",
            base: 0x82000000,
            len: 0x02000000,
            space: "code/data"
        }
    ],
    [
        "SHARED",
        {
            comment: "Shared external memory",
            name: "SHARED",
            base: 0x84000000,
            len: 0x0C000000,
            space: "code/data"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:28 GMT


module ti.platforms.simArctic.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.simArctic;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the simArctic
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "simArctic",
    41            boardFamily:    "simArctic",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu ARP32 = {
    46            id:             "0",
    47            clockRate:      200.0,
    48            catalogName:    "ti.catalog.arp32",
    49            deviceName:     "Arctic",
    50            revision:       "",
    51        };
    52
    53        readonly config xdc.platform.IExeContext.Cpu DSP = {
    54            id:             "1",
    55            clockRate:      300.0,
    56            catalogName:    "ti.catalog.c6000",
    57            deviceName:     "Arctic",
    58            revision:       "",
    59        };
    60
    61
    62    instance:
    63
    64        /*
    65         *  DDR is 2GByte but we need to share it with the ARP32.
    66         */
    67        override readonly config xdc.platform.IPlatform.Memory
    68            externalMemoryMap[string] = [
    69                ["ARP32VECS", {
    70                    comment: "External memory for ARP32 interrupt vectors",
    71                    name:  "ARP32VECS",
    72                    base:  0x80000000,
    73                    len:   0x00000100,
    74                    space: "code/data"
    75                }],
    76
    77                ["ARP32", {
    78                    comment: "External memory for ARP32 use",
    79                    name:  "ARP32",
    80                    base:  0x80000100,
    81                    len:   0x01ffff00,
    82                    space: "code/data"
    83                }],
    84
    85                ["DSP", {
    86                    comment: "External memory for DSP use",
    87                    name:  "DSP",
    88                    base:  0x82000000,
    89                    len:   0x02000000,
    90                    space: "code/data"
    91                }],
    92
    93                ["SHARED", {
    94                    comment: "Shared external memory",
    95                    name:  "SHARED",
    96                    base:  0x84000000,
    97                    len:   0x0C000000,
    98                    space: "code/data"
    99                }]
   100            ];
   101
   102        /*
   103         *  ======== l1PMode ========
   104         *  Define the amount of L1P RAM used for L1 Program Cache.
   105         *
   106         *  Check the device documentation for valid values.
   107         */
   108        config String l1PMode = "32k";
   109
   110        /*
   111         *  ======== l1DMode ========
   112         *  Define the amount of L1D RAM used for L1 Data Cache.
   113         *
   114         *  Check the device documentation for valid values.
   115         */
   116        config String l1DMode = "32k";
   117
   118        /*
   119         *  ======== l2Mode ========
   120         *  Define the amount of L2 RAM used for L2 Cache.
   121         *
   122         *  Check the device documentation for valid values.
   123         */
   124        config String l2Mode = "0k";
   125    };
   126    /*
   127     *  @(#) ti.platforms.simArctic; 1, 0, 0,60; 8-17-2012 22:17:41; /db/ztree/library/trees/platform/platform-n27x/src/
   128     */
   129


package ti.platforms.simCM3
index URL

Platform package for the simCM3 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simCM3 platform.
XDCspec declarations sourced in ti/platforms/simCM3/package.xdc
requires ti.catalog.arm.cortexm3;
requires xdc.platform[1, 0, 1];
package ti.platforms.simCM3 [1, 0, 1, 0] {
    module Platform;
    // Simulation-based Platform support for TI Cortex M3 platforms
}
generated on Thu, 08 Nov 2012 02:18:29 GMT


package ti.platforms.simCM3

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.arm.cortexm3;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.simCM3 ========
    18     *  Platform package for the simCM3 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the simCM3 platform.
    22     */
    23    package ti.platforms.simCM3 [1,0,1,0] {
    24        module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.simCM3; 1, 0, 1, 0,209; 8-17-2012 22:17:44; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.simCM3.Platform

metaonly module ti.platforms.simCM3.Platform
index URL

Simulation-based Platform support for TI Cortex M3 platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/simCM3/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simCM3.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "simCM3",
        boardFamily: "simCM3",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "CortexM3",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "Code";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "Code",
                {
                    comment: "Code Memory",
                    name: "Code",
                    base: 0x00000000,
                    len: 0x20000000,
                    space: "code",
                    access: "RWX"
                }
            ],
            [
                "SRAM",
                {
                    comment: "Shared RAM",
                    name: "SRAM",
                    base: 0x20000000,
                    len: 0x20000000,
                    space: "data",
                    access: "RW"
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "SRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simCM3",
    boardFamily: "simCM3",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 200.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "CortexM3",
    revision: "1.0"
};
DETAILS
The device simulated is determined by the platform instance name or if this does not name a ti.catalog.arm module, then we we simulate a TMS470.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "Code";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "Code",
            {
                comment: "Code Memory",
                name: "Code",
                base: 0x00000000,
                len: 0x20000000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "SRAM",
            {
                comment: "Shared RAM",
                name: "SRAM",
                base: 0x20000000,
                len: 0x20000000,
                space: "data",
                access: "RW"
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "SRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "Code";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "Code",
        {
            comment: "Code Memory",
            name: "Code",
            base: 0x00000000,
            len: 0x20000000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "SRAM",
        {
            comment: "Shared RAM",
            name: "SRAM",
            base: 0x20000000,
            len: 0x20000000,
            space: "data",
            access: "RW"
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:29 GMT


module ti.platforms.simCM3.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.simCM3;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Simulation-based Platform support for TI Cortex M3 platforms
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  This platform's board attributes
    41         */
    42        readonly config xdc.platform.IPlatform.Board BOARD = {
    43            id:             "0",
    44            boardName:      "simCM3",
    45            boardFamily:    "simCM3",
    46            boardRevision:  null
    47        };
    48
    49        /*!
    50         *  ======== CPU ========
    51         *  The CPU simulated by this platform.
    52         *
    53         *  The device simulated is determined by the platform instance name
    54         *  or if this does not name a ti.catalog.arm module, then we
    55         *  we simulate a TMS470.
    56         */
    57        readonly config xdc.platform.IExeContext.Cpu CPU = {
    58            id:             "0",
    59            clockRate:      200.0,
    60            catalogName:    "ti.catalog.arm.cortexm3",
    61            deviceName:     "CortexM3",
    62            revision:       "1.0",
    63        };
    64
    65    instance:
    66
    67        override readonly config xdc.platform.IPlatform.Memory
    68            externalMemoryMap[string] = [
    69
    70                ["Code", {
    71                    comment: "Code Memory",
    72                    name:   "Code",
    73                    base:   0x00000000,
    74                    len:    0x20000000,
    75                    space:  "code",
    76                    access: "RWX"
    77                }],
    78
    79                ["SRAM", {
    80                    comment: "Shared RAM",
    81                    name:   "SRAM",
    82                    base:   0x20000000,
    83                    len:    0x20000000,
    84                    space:  "data",
    85                    access: "RW"
    86                }],
    87            ];
    88
    89        override config string codeMemory = "Code";
    90        override config string dataMemory = "SRAM";
    91        override config string stackMemory = "SRAM";
    92    };
    93    /*
    94     *  @(#) ti.platforms.simCM3; 1, 0, 1, 0,209; 8-17-2012 22:17:44; /db/ztree/library/trees/platform/platform-n27x/src/
    95     */
    96


package ti.platforms.simDM420
index URL

Platform package for the simDM420 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDM420 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simDM420/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.simDM420 [1, 0, 0] {
    module Platform;
    // Platform support for the simDM420
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDM420 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simDM420.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:29 GMT


package ti.platforms.simDM420

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.simDM420 ========
    18     *  Platform package for the simDM420 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the simDM420 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.simDM420.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.simDM420 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.simDM420; 1, 0, 0,369; 8-17-2012 22:17:47; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.simDM420.Platform

metaonly module ti.platforms.simDM420.Platform
index URL

Platform support for the simDM420

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/simDM420/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simDM420.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simDM420",
        boardFamily: "simDM420",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 486.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM420",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "IRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "IRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "IRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simDM420",
    boardFamily: "simDM420",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 486.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM420",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "IRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "IRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "IRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "IRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:29 GMT


module ti.platforms.simDM420.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    package ti.platforms.simDM420;
    19
    20    /*!
    21     *  ======== Platform ========
    22     *  Platform support for the simDM420
    23     *
    24     *  This module implements xdc.platform.IPlatform and defines configuration
    25     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    26     *
    27     *  The configuration parameters are initialized in this package's
    28     *  configuration script (package.cfg) and "bound" to the TCOM object
    29     *  model.  Once they are part of the model, these parameters are
    30     *  queried by a program's configuration script.
    31     *
    32     *  This particular platform has a single Cpu, and therefore, only
    33     *  declares a single CPU configuration object.  Multi-CPU platforms
    34     *  would declare multiple Cpu configuration parameters (one per
    35     *  platform CPU).
    36     */
    37    metaonly module Platform inherits xdc.platform.IPlatform
    38    {
    39        readonly config xdc.platform.IPlatform.Board BOARD = {
    40            id:             "0",
    41            boardName:      "simDM420",
    42            boardFamily:    "simDM420",
    43            boardRevision:  null,
    44        };
    45
    46        readonly config xdc.platform.IExeContext.Cpu CPU = {
    47            id:             "0",
    48            clockRate:      486.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320CDM420",
    51            revision:       "",
    52        };
    53
    54    instance:
    55
    56        override config string codeMemory = "IRAM";
    57
    58        override config string dataMemory = "IRAM";
    59
    60        override config string stackMemory = "IRAM";
    61
    62        /*
    63         *  ======== l1PMode ========
    64         *  Define the amount of L1P RAM used for L1 Program Cache.
    65         *
    66         *  Check the device documentation for valid values.
    67         */
    68        config String l1PMode = "32k";
    69
    70        /*
    71         *  ======== l1DMode ========
    72         *  Define the amount of L1D RAM used for L1 Data Cache.
    73         *
    74         *  Check the device documentation for valid values.
    75         */
    76        config String l1DMode = "32k";
    77
    78        /*
    79         *  ======== l2Mode ========
    80         *  Define the amount of L2 RAM used for L2 Cache.
    81         *
    82         *  Check the device documentation for valid values.
    83         */
    84        config String l2Mode = "0k";
    85    };
    86    /*
    87     *  @(#) ti.platforms.simDM420; 1, 0, 0,369; 8-17-2012 22:17:46; /db/ztree/library/trees/platform/platform-n27x/src/
    88     */
    89


package ti.platforms.simDM730
index URL

Platform package for the simDM730 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDM730 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simDM730/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.simDM730 [1, 0, 0] {
    module Platform;
    // Platform support for the simDM730
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDM730 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simDM730.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:30 GMT


package ti.platforms.simDM730

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c6000;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.simDM730 ========
    18     *  Platform package for the simDM730 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the simDM730 platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.simDM730.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.simDM730 [1,0,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.simDM730; 1, 0, 0,124; 8-17-2012 22:17:48; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.simDM730.Platform

metaonly module ti.platforms.simDM730.Platform
index URL

Platform support for the simDM730

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/simDM730/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simDM730.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simDM730",
        boardFamily: "simDM730",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "0",
        clockRate: 250.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320CDM730",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 800.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM730",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EXT_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EXT_RAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "EXT_RAM",
                {
                    comment: "External RAM",
                    name: "EXT_RAM",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EXT_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simDM730",
    boardFamily: "simDM730",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "0",
    clockRate: 250.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320CDM730",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 800.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM730",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EXT_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EXT_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "EXT_RAM",
            {
                comment: "External RAM",
                name: "EXT_RAM",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EXT_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EXT_RAM",
        {
            comment: "External RAM",
            name: "EXT_RAM",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:30 GMT


module ti.platforms.simDM730.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for simDM730
    16     *
    17     */
    18
    19    package ti.platforms.simDM730;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the simDM730
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has a single Cpu, and therefore, only
    34     *  declares a single CPU configuration object.  Multi-CPU platforms
    35     *  would declare multiple Cpu configuration parameters (one per
    36     *  platform CPU).
    37     */
    38    metaonly module Platform inherits xdc.platform.IPlatform
    39    {
    40        readonly config xdc.platform.IPlatform.Board BOARD = {
    41            id:             "0",
    42            boardName:      "simDM730",
    43            boardFamily:    "simDM730",
    44            boardRevision:  null,
    45        };
    46
    47        /* C674 GEM */
    48        readonly config xdc.platform.IExeContext.Cpu GEM = {
    49            id:             "0",
    50            clockRate:      800.0,
    51            catalogName:    "ti.catalog.c6000",
    52            deviceName:     "TMS320CDM730",
    53            revision:       "",
    54        };
    55
    56        /* Ducati Subsystem */
    57        readonly config xdc.platform.IExeContext.Cpu DSS = {
    58            id:             "0",
    59            clockRate:      250.0,
    60            catalogName:    "ti.catalog.arm",
    61            deviceName:     "TMS320CDM730",
    62            revision:       "1.0",
    63        };
    64
    65    instance:
    66
    67        override readonly config xdc.platform.IPlatform.Memory
    68            externalMemoryMap[string] = [
    69
    70                ["EXT_RAM", {
    71                    comment: "External RAM",
    72                    name: "EXT_RAM",
    73                    base: 0x80000000,
    74                    len:  0x10000000
    75                }],
    76
    77            ];
    78
    79        override config string codeMemory = "EXT_RAM";
    80        override config string dataMemory = "EXT_RAM";
    81        override config string stackMemory = "EXT_RAM";
    82
    83        /*
    84         *  ======== l1PMode ========
    85         *  Define the amount of L1P RAM used for L1 Program Cache.
    86         *
    87         *  Check the device documentation for valid values.
    88         */
    89        config String l1PMode = "32k";
    90
    91        /*
    92         *  ======== l1DMode ========
    93         *  Define the amount of L1D RAM used for L1 Data Cache.
    94         *
    95         *  Check the device documentation for valid values.
    96         */
    97        config String l1DMode = "32k";
    98
    99        /*
   100         *  ======== l2Mode ========
   101         *  Define the amount of L2 RAM used for L2 Cache.
   102         *
   103         *  Check the device documentation for valid values.
   104         */
   105        config String l2Mode = "0k";
   106    };
   107    /*
   108     *  @(#) ti.platforms.simDM730; 1, 0, 0,124; 8-17-2012 22:17:48; /db/ztree/library/trees/platform/platform-n27x/src/
   109     */
   110


package ti.platforms.simDM740
index URL

Platform package for the simDM740 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDM740 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simDM740/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.simDM740 [1, 0, 0] {
    module Platform;
    // Platform support for the simDM740
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDM740 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simDM740.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:30 GMT


package ti.platforms.simDM740

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires xdc.platform [1,0,1];
    19
    20    /*!
    21     *  ======== ti.platforms.simDM740 ========
    22     *  Platform package for the simDM740 platform.
    23     *
    24     *  This package implements the interfaces (xdc.platform.IPlatform)
    25     *  necessary to build and run executables on the simDM740 platform.
    26     *
    27     *  @a(Throws)
    28     *  `XDCException` exceptions are thrown for fatal errors. The following error
    29     *  codes are reported in the exception message:
    30     *  @p(dlist)
    31     *      -  `ti.platfoms.simDM740.LINK_TEMPLATE_ERROR`
    32     *           This error is raised when this platform cannot found the default
    33     *           linker command template `linkcmd.xdt` in the build target's
    34     *           package. When a target does not contain this file, the config
    35     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    36     *  @p
    37     */
    38    package ti.platforms.simDM740 [1,0,0] {
    39        module Platform;
    40    }
    41    /*
    42     *  @(#) ti.platforms.simDM740; 1, 0, 0,190; 8-17-2012 22:17:52; /db/ztree/library/trees/platform/platform-n27x/src/
    43     */
    44


module ti.platforms.simDM740.Platform

metaonly module ti.platforms.simDM740.Platform
index URL

Platform support for the simDM740

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/simDM740/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simDM740.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simDM740",
        boardFamily: "simDM740",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 250.0,
        catalogName: "ti.catalog.arm",
        deviceName: "TMS320CDM740",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 800.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CDM740",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EXT_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EXT_RAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "EXT_RAM",
                {
                    comment: "External RAM",
                    name: "EXT_RAM",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EXT_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simDM740",
    boardFamily: "simDM740",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 250.0,
    catalogName: "ti.catalog.arm",
    deviceName: "TMS320CDM740",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 800.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CDM740",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EXT_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EXT_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "EXT_RAM",
            {
                comment: "External RAM",
                name: "EXT_RAM",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EXT_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EXT_RAM",
        {
            comment: "External RAM",
            name: "EXT_RAM",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:30 GMT


module ti.platforms.simDM740.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for simDM740
    16     *
    17     */
    18
    19    package ti.platforms.simDM740;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the simDM740
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has a single Cpu, and therefore, only
    34     *  declares a single CPU configuration object.  Multi-CPU platforms
    35     *  would declare multiple Cpu configuration parameters (one per
    36     *  platform CPU).
    37     */
    38    metaonly module Platform inherits xdc.platform.IPlatform
    39    {
    40        readonly config xdc.platform.IPlatform.Board BOARD = {
    41            id:             "0",
    42            boardName:      "simDM740",
    43            boardFamily:    "simDM740",
    44            boardRevision:  null,
    45        };
    46
    47        /* C674 GEM */
    48        readonly config xdc.platform.IExeContext.Cpu GEM = {
    49            id:             "0",
    50            clockRate:      800.0,
    51            catalogName:    "ti.catalog.c6000",
    52            deviceName:     "TMS320CDM740",
    53            revision:       "",
    54        };
    55
    56        /* Ducati Subsystem */
    57        readonly config xdc.platform.IExeContext.Cpu DSS = {
    58            id:             "1",
    59            clockRate:      250.0,
    60            catalogName:    "ti.catalog.arm",
    61            deviceName:     "TMS320CDM740",
    62            revision:       "1.0",
    63        };
    64
    65    instance:
    66
    67        override readonly config xdc.platform.IPlatform.Memory
    68            externalMemoryMap[string] = [
    69
    70                ["EXT_RAM", {
    71                    comment: "External RAM",
    72                    name: "EXT_RAM",
    73                    base: 0x80000000,
    74                    len:  0x10000000
    75                }],
    76
    77            ];
    78
    79        override config string codeMemory = "EXT_RAM";
    80        override config string dataMemory = "EXT_RAM";
    81        override config string stackMemory = "EXT_RAM";
    82
    83        /*
    84         *  ======== l1PMode ========
    85         *  Define the amount of L1P RAM used for L1 Program Cache.
    86         *
    87         *  Check the device documentation for valid values.
    88         */
    89        config String l1PMode = "32k";
    90
    91        /*
    92         *  ======== l1DMode ========
    93         *  Define the amount of L1D RAM used for L1 Data Cache.
    94         *
    95         *  Check the device documentation for valid values.
    96         */
    97        config String l1DMode = "32k";
    98
    99        /*
   100         *  ======== l2Mode ========
   101         *  Define the amount of L2 RAM used for L2 Cache.
   102         *
   103         *  Check the device documentation for valid values.
   104         */
   105        config String l2Mode = "0k";
   106    };
   107    /*
   108     *  @(#) ti.platforms.simDM740; 1, 0, 0,190; 8-17-2012 22:17:52; /db/ztree/library/trees/platform/platform-n27x/src/
   109     */
   110


package ti.platforms.simDM8168
index URL

Platform package for the simDM8168 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDM8168 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simDM8168/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexa8;
requires xdc.platform[1, 0, 1];
package ti.platforms.simDM8168 [1, 0, 0] {
    module Platform;
    // Platform support for the simDM8168
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDM8168 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simDM8168.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:30 GMT


package ti.platforms.simDM8168

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm3;
    19    requires ti.catalog.arm.cortexa8;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.simDM8168 ========
    24     *  Platform package for the simDM8168 platform.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the simDM8168 platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platfoms.simDM8168.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.simDM8168 [1,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.simDM8168; 1, 0, 0,86; 8-17-2012 22:17:52; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.simDM8168.Platform

metaonly module ti.platforms.simDM8168.Platform
index URL

Platform support for the simDM8168

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/simDM8168/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simDM8168.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simDM8168",
        boardFamily: "simDM8168",
        boardRevision: null
    };
    const Platform.DSS// = IExeContext.Cpu {
        id: "1",
        clockRate: 250.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320DM8168",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 800.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320DM8168",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 1000.0,
        catalogName: "ti.catalog.arm.cortexa8",
        deviceName: "TMS320DM8168",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "DDR3_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DDR3_RAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR3_RAM",
                {
                    comment: "External RAM",
                    name: "DDR3_RAM",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DDR3_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 CPU's, a host GPP, 2 M3's, and a C674 DSP.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simDM8168",
    boardFamily: "simDM8168",
    boardRevision: null
};
config Platform.DSS // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSS = IExeContext.Cpu {
    id: "1",
    clockRate: 250.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "TMS320DM8168",
    revision: "1.0"
};
config Platform.GEM // module-wide
index URL
XDCscript usage meta-domain
const Platform.GEM = IExeContext.Cpu {
    id: "0",
    clockRate: 800.0,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320DM8168",
    revision: ""
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "2",
    clockRate: 1000.0,
    catalogName: "ti.catalog.arm.cortexa8",
    deviceName: "TMS320DM8168",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "DDR3_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DDR3_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR3_RAM",
            {
                comment: "External RAM",
                name: "DDR3_RAM",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DDR3_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR3_RAM",
        {
            comment: "External RAM",
            name: "DDR3_RAM",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DDR3_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:30 GMT


module ti.platforms.simDM8168.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for simDM8168
    16     *
    17     */
    18
    19    package ti.platforms.simDM8168;
    20
    21    /*!
    22     *  ======== Platform ========
    23     *  Platform support for the simDM8168
    24     *
    25     *  This module implements xdc.platform.IPlatform and defines configuration
    26     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    27     *
    28     *  The configuration parameters are initialized in this package's
    29     *  configuration script (package.cfg) and "bound" to the TCOM object
    30     *  model.  Once they are part of the model, these parameters are
    31     *  queried by a program's configuration script.
    32     *
    33     *  This particular platform has 4 CPU's, a host GPP, 2 M3's, and a
    34     *  C674 DSP.
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "simDM8168",
    41            boardFamily:    "simDM8168",
    42            boardRevision:  null
    43        };
    44
    45        /* C674 GEM */
    46        readonly config xdc.platform.IExeContext.Cpu GEM = {
    47            id:             "0",
    48            clockRate:      800.0,
    49            catalogName:    "ti.catalog.c6000",
    50            deviceName:     "TMS320DM8168",
    51            revision:       ""
    52        };
    53
    54        /* M3 Subsystem */
    55        readonly config xdc.platform.IExeContext.Cpu DSS = {
    56            id:             "1",
    57            clockRate:      250.0,
    58            catalogName:    "ti.catalog.arm.cortexm3",
    59            deviceName:     "TMS320DM8168",
    60            revision:       "1.0"
    61        };
    62
    63        /* GPP */
    64        readonly config xdc.platform.IExeContext.Cpu GPP = {
    65            id:             "2",
    66            clockRate:      1000.0,  /* Typically set by the HLOS */
    67            catalogName:    "ti.catalog.arm.cortexa8",
    68            deviceName:     "TMS320DM8168",
    69            revision:       "1.0"
    70        };
    71
    72    instance:
    73
    74        override readonly config xdc.platform.IPlatform.Memory
    75            externalMemoryMap[string] = [
    76
    77                ["DDR3_RAM", {
    78                    comment: "External RAM",
    79                    name: "DDR3_RAM",
    80                    base: 0x80000000,
    81                    len:  0x10000000
    82                }]
    83
    84            ];
    85
    86        override config string codeMemory = "DDR3_RAM";
    87        override config string dataMemory = "DDR3_RAM";
    88        override config string stackMemory = "DDR3_RAM";
    89
    90        /*
    91         *  ======== l1PMode ========
    92         *  Define the amount of L1P RAM used for L1 Program Cache.
    93         *
    94         *  Check the device documentation for valid values.
    95         */
    96        config String l1PMode = "32k";
    97
    98        /*
    99         *  ======== l1DMode ========
   100         *  Define the amount of L1D RAM used for L1 Data Cache.
   101         *
   102         *  Check the device documentation for valid values.
   103         */
   104        config String l1DMode = "32k";
   105
   106        /*
   107         *  ======== l2Mode ========
   108         *  Define the amount of L2 RAM used for L2 Cache.
   109         *
   110         *  Check the device documentation for valid values.
   111         */
   112        config String l2Mode = "0k";
   113    };
   114    /*
   115     *  @(#) ti.platforms.simDM8168; 1, 0, 0,86; 8-17-2012 22:17:52; /db/ztree/library/trees/platform/platform-n27x/src/
   116     */
   117


package ti.platforms.simDucati
index URL

Platform package for the simDucati platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDucati platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simDucati/package.xdc
requires ti.catalog.arm.nda;
requires xdc.platform[1, 0, 1];
package ti.platforms.simDucati [1, 0, 1, 0] {
    module Platform;
    // Simulation-based Platform support for TI Arm (470x) platforms
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simDucati platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simDucati.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:31 GMT


package ti.platforms.simDucati

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.arm.nda;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.simDucati ========
    18     *  Platform package for the simDucati platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the simDucati platform.
    22     *
    23     *  @a(Throws)
    24     *  `XDCException` exceptions are thrown for fatal errors. The following error
    25     *  codes are reported in the exception message:
    26     *  @p(dlist)
    27     *      -  `ti.platfoms.simDucati.LINK_TEMPLATE_ERROR`
    28     *           This error is raised when this platform cannot found the default
    29     *           linker command template `linkcmd.xdt` in the build target's
    30     *           package. When a target does not contain this file, the config
    31     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    32     *  @p
    33     */
    34    package ti.platforms.simDucati [1,0,1,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.simDucati; 1, 0, 1, 0,172; 8-17-2012 22:17:56; /db/ztree/library/trees/platform/platform-n27x/src/
    39     */
    40


module ti.platforms.simDucati.Platform

metaonly module ti.platforms.simDucati.Platform
index URL

Simulation-based Platform support for TI Arm (470x) platforms

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/simDucati/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simDucati.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "simDucati",
        boardFamily: "simDucati",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.arm.nda",
        deviceName: "Ducati",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EXT_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EXT_RAM";
        params.externalMemoryMap// Memory regions as defined in the Ducati Functional Specification = IPlatform.Memory[string] [
            [
                "EXT_RAM",
                {
                    comment: "External RAM",
                    name: "EXT_RAM",
                    base: 0x80000000,
                    len: 0x20000000
                }
            ]
        ];
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EXT_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simDucati",
    boardFamily: "simDucati",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU simulated by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 200.0,
    catalogName: "ti.catalog.arm.nda",
    deviceName: "Ducati",
    revision: "1.0"
};
DETAILS
The device simulated is determined by the platform instance name or if this does not name a ti.catalog.arm module, then we we simulate a TMS470.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EXT_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EXT_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // Memory regions as defined in the Ducati Functional Specification
        [
            "EXT_RAM",
            {
                comment: "External RAM",
                name: "EXT_RAM",
                base: 0x80000000,
                len: 0x20000000
            }
        ]
    ];
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EXT_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

Memory regions as defined in the Ducati Functional Specification

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EXT_RAM",
        {
            comment: "External RAM",
            name: "EXT_RAM",
            base: 0x80000000,
            len: 0x20000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:31 GMT


module ti.platforms.simDucati.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.simDucati;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Simulation-based Platform support for TI Arm (470x) platforms
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        /*!
    39         *  ======== BOARD ========
    40         *  This platform's board attributes
    41         */
    42        readonly config xdc.platform.IPlatform.Board BOARD = {
    43            id:             "0",
    44            boardName:      "simDucati",
    45            boardFamily:    "simDucati",
    46            boardRevision:  null
    47        };
    48
    49        /*!
    50         *  ======== CPU ========
    51         *  The CPU simulated by this platform.
    52         *
    53         *  The device simulated is determined by the platform instance name
    54         *  or if this does not name a ti.catalog.arm module, then we
    55         *  we simulate a TMS470.
    56         */
    57        readonly config xdc.platform.IExeContext.Cpu CPU = {
    58            id:             "0",
    59            clockRate:      200.0,
    60            catalogName:    "ti.catalog.arm.nda",
    61            deviceName:     "Ducati",
    62            revision:       "1.0",
    63        };
    64
    65    instance:
    66
    67        /*!
    68         *  ======== externalMemoryMap ========
    69         *  Memory regions as defined in the Ducati Functional Specification
    70         */
    71
    72        override readonly config xdc.platform.IPlatform.Memory
    73            externalMemoryMap[string] = [
    74
    75                ["EXT_RAM", {
    76                    comment: "External RAM",
    77                    name: "EXT_RAM",
    78                    base: 0x80000000,
    79                    len:  0x20000000
    80                }],
    81
    82            ];
    83
    84        override config string codeMemory = "EXT_RAM";
    85        override config string dataMemory = "EXT_RAM";
    86        override config string stackMemory = "EXT_RAM";
    87    };
    88    /*
    89     *  @(#) ti.platforms.simDucati; 1, 0, 1, 0,172; 8-17-2012 22:17:56; /db/ztree/library/trees/platform/platform-n27x/src/
    90     */
    91


package ti.platforms.simKepler
index URL

Platform package for the Kepler simulator

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Kepler simulator platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simKepler/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.simKepler [1, 0, 0, 0] {
    module Platform;
    // Platform support for the simKepler
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Kepler simulator platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simKepler.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:31 GMT


package ti.platforms.simKepler

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.simKepler ========
    23     *  Platform package for the Kepler simulator.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the Kepler simulator platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.simKepler.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.simKepler [1,0,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.simKepler; 1, 0, 0, 0,21; 8-17-2012 22:17:57; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.simKepler.Platform

metaonly module ti.platforms.simKepler.Platform
index URL

Platform support for the simKepler

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/simKepler/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simKepler.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simKepler",
        boardFamily: "simKepler",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "Kepler",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L2SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L2SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L2SRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simKepler",
    boardFamily: "simKepler",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "Kepler",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L2SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L2SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L2SRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:31 GMT


module ti.platforms.simKepler.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the simKepler
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        readonly config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "simKepler",
    27            boardFamily:    "simKepler",
    28            boardRevision:  null,
    29        };
    30
    31        readonly config xdc.platform.IExeContext.Cpu CPU = {
    32            id:             "0",
    33            clockRate:      1000,
    34            catalogName:    "ti.catalog.c6000",
    35            deviceName:     "Kepler",
    36            revision:       "1.0",
    37        };
    38
    39    instance:
    40
    41        override readonly config xdc.platform.IPlatform.Memory
    42            externalMemoryMap[string] = [
    43                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x10000000}],
    44        ];
    45
    46        override config string codeMemory  = "L2SRAM";
    47        override config string dataMemory  = "L2SRAM";
    48        override config string stackMemory = "L2SRAM";
    49
    50        /*
    51         *  ======== l1PMode ========
    52         *  Define the amount of L1P RAM used for L1 Program Cache.
    53         *
    54         *  Check the device documentation for valid values.
    55         */
    56        config String l1PMode = "32k";
    57
    58        /*
    59         *  ======== l1DMode ========
    60         *  Define the amount of L1D RAM used for L1 Data Cache.
    61         *
    62         *  Check the device documentation for valid values.
    63         */
    64        config String l1DMode = "32k";
    65
    66        /*
    67         *  ======== l2Mode ========
    68         *  Define the amount of L2 RAM used for L2 Cache.
    69         *
    70         *  Check the device documentation for valid values.
    71         */
    72        config String l2Mode = "0k";
    73
    74    };
    75    /*
    76     *  @(#) ti.platforms.simKepler; 1, 0, 0, 0,21; 8-17-2012 22:17:57; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


package ti.platforms.simTCI6498
index URL

Platform package for the TCI6498 simulator

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Tesla simulator platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simTCI6498/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.simTCI6498 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the simTCI6498
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Tesla simulator platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simTCI6498.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:32 GMT


package ti.platforms.simTCI6498

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.simTCI6498 ========
    23     *  Platform package for the TCI6498 simulator.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the Tesla simulator platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.simTCI6498.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.simTCI6498 [1,0,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.simTCI6498; 1, 0, 0, 0,137; 8-17-2012 22:18:01; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.simTCI6498.Platform

metaonly module ti.platforms.simTCI6498.Platform
index URL

Platform support for the simTCI6498

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/simTCI6498/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simTCI6498.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simTCI6498",
        boardFamily: "simTCI6498",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320CTCI6498",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L2SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L2SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L2SRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simTCI6498",
    boardFamily: "simTCI6498",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320CTCI6498",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L2SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L2SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L2SRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:32 GMT


module ti.platforms.simTCI6498.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the simTCI6498
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        readonly config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "simTCI6498",
    27            boardFamily:    "simTCI6498",
    28            boardRevision:  null,
    29        };
    30
    31        readonly config xdc.platform.IExeContext.Cpu CPU = {
    32            id:             "0",
    33            clockRate:      1000,
    34            catalogName:    "ti.catalog.c6000",
    35            deviceName:     "TMS320CTCI6498",
    36            revision:       "1.0",
    37        };
    38
    39    instance:
    40
    41        override config string codeMemory  = "L2SRAM";
    42        override config string dataMemory  = "L2SRAM";
    43        override config string stackMemory = "L2SRAM";
    44
    45        /*
    46         *  ======== l1PMode ========
    47         *  Define the amount of L1P RAM used for L1 Program Cache.
    48         *
    49         *  Check the device documentation for valid values.
    50         */
    51        config String l1PMode = "32k";
    52
    53        /*
    54         *  ======== l1DMode ========
    55         *  Define the amount of L1D RAM used for L1 Data Cache.
    56         *
    57         *  Check the device documentation for valid values.
    58         */
    59        config String l1DMode = "32k";
    60
    61        /*
    62         *  ======== l2Mode ========
    63         *  Define the amount of L2 RAM used for L2 Cache.
    64         *
    65         *  Check the device documentation for valid values.
    66         */
    67        config String l2Mode = "0k";
    68    };
    69    /*
    70     *  @(#) ti.platforms.simTCI6498; 1, 0, 0, 0,137; 8-17-2012 22:18:01; /db/ztree/library/trees/platform/platform-n27x/src/
    71     */
    72


package ti.platforms.simTCI6608
index URL

Platform package for the TCI6608 simulator

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Tesla simulator platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simTCI6608/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.simTCI6608 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the simTCI6608
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Tesla simulator platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simTCI6608.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:33 GMT


package ti.platforms.simTCI6608

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.simTCI6608 ========
    23     *  Platform package for the TCI6608 simulator.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the Tesla simulator platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.simTCI6608.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.simTCI6608 [1,0,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.simTCI6608; 1, 0, 0, 0,76; 8-17-2012 22:18:01; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.simTCI6608.Platform

metaonly module ti.platforms.simTCI6608.Platform
index URL

Platform support for the simTCI6608

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/simTCI6608/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simTCI6608.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simTCI6608",
        boardFamily: "simTCI6608",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320TCI6608",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L2SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L2SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L2SRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simTCI6608",
    boardFamily: "simTCI6608",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320TCI6608",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L2SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L2SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L2SRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:33 GMT


module ti.platforms.simTCI6608.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the simTCI6608
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        readonly config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "simTCI6608",
    27            boardFamily:    "simTCI6608",
    28            boardRevision:  null,
    29        };
    30
    31        readonly config xdc.platform.IExeContext.Cpu CPU = {
    32            id:             "0",
    33            clockRate:      1000,
    34            catalogName:    "ti.catalog.c6000",
    35            deviceName:     "TMS320TCI6608",
    36            revision:       "1.0",
    37        };
    38
    39    instance:
    40
    41        override readonly config xdc.platform.IPlatform.Memory
    42            externalMemoryMap[string] = [
    43                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x10000000}],
    44        ];
    45
    46        override config string codeMemory  = "L2SRAM";
    47        override config string dataMemory  = "L2SRAM";
    48        override config string stackMemory = "L2SRAM";
    49
    50        /*
    51         *  ======== l1PMode ========
    52         *  Define the amount of L1P RAM used for L1 Program Cache.
    53         *
    54         *  Check the device documentation for valid values.
    55         */
    56        config String l1PMode = "32k";
    57
    58        /*
    59         *  ======== l1DMode ========
    60         *  Define the amount of L1D RAM used for L1 Data Cache.
    61         *
    62         *  Check the device documentation for valid values.
    63         */
    64        config String l1DMode = "32k";
    65
    66        /*
    67         *  ======== l2Mode ========
    68         *  Define the amount of L2 RAM used for L2 Cache.
    69         *
    70         *  Check the device documentation for valid values.
    71         */
    72        config String l2Mode = "0k";
    73    };
    74    /*
    75     *  @(#) ti.platforms.simTCI6608; 1, 0, 0, 0,76; 8-17-2012 22:18:01; /db/ztree/library/trees/platform/platform-n27x/src/
    76     */
    77


package ti.platforms.simTCI6616
index URL

Platform package for the TCI6616 simulator

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Tesla simulator platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simTCI6616/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.simTCI6616 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the simTCI6616
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Tesla simulator platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simTCI6616.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:32 GMT


package ti.platforms.simTCI6616

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.simTCI6616 ========
    23     *  Platform package for the TCI6616 simulator.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the Tesla simulator platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.simTCI6616.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.simTCI6616 [1,0,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.simTCI6616; 1, 0, 0, 0,80; 8-17-2012 22:18:05; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.simTCI6616.Platform

metaonly module ti.platforms.simTCI6616.Platform
index URL

Platform support for the simTCI6616

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/simTCI6616/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simTCI6616.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simTCI6616",
        boardFamily: "simTCI6616",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320TCI6616",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "L2SRAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "L2SRAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] [
            [
                "DDR2",
                {
                    name: "DDR2",
                    base: 0x80000000,
                    len: 0x10000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "L2SRAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simTCI6616",
    boardFamily: "simTCI6616",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "TMS320TCI6616",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "L2SRAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "L2SRAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // A mapping of memory names to memory objects for external memory
        [
            "DDR2",
            {
                name: "DDR2",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "L2SRAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "DDR2",
        {
            name: "DDR2",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "L2SRAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:32 GMT


module ti.platforms.simTCI6616.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the simTCI6616
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        readonly config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "simTCI6616",
    27            boardFamily:    "simTCI6616",
    28            boardRevision:  null,
    29        };
    30
    31        readonly config xdc.platform.IExeContext.Cpu CPU = {
    32            id:             "0",
    33            clockRate:      1000,
    34            catalogName:    "ti.catalog.c6000",
    35            deviceName:     "TMS320TCI6616",
    36            revision:       "1.0",
    37        };
    38
    39    instance:
    40
    41        override readonly config xdc.platform.IPlatform.Memory
    42            externalMemoryMap[string] = [
    43                ["DDR2", {name: "DDR2", base: 0x80000000, len: 0x10000000}],
    44        ];
    45
    46        override config string codeMemory  = "L2SRAM";
    47        override config string dataMemory  = "L2SRAM";
    48        override config string stackMemory = "L2SRAM";
    49
    50        /*
    51         *  ======== l1PMode ========
    52         *  Define the amount of L1P RAM used for L1 Program Cache.
    53         *
    54         *  Check the device documentation for valid values.
    55         */
    56        config String l1PMode = "32k";
    57
    58        /*
    59         *  ======== l1DMode ========
    60         *  Define the amount of L1D RAM used for L1 Data Cache.
    61         *
    62         *  Check the device documentation for valid values.
    63         */
    64        config String l1DMode = "32k";
    65
    66        /*
    67         *  ======== l2Mode ========
    68         *  Define the amount of L2 RAM used for L2 Cache.
    69         *
    70         *  Check the device documentation for valid values.
    71         */
    72        config String l2Mode = "0k";
    73
    74    };
    75    /*
    76     *  @(#) ti.platforms.simTCI6616; 1, 0, 0, 0,80; 8-17-2012 22:18:04; /db/ztree/library/trees/platform/platform-n27x/src/
    77     */
    78


package ti.platforms.simTesla
index URL

Platform package for the Tesla functional simulator

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Tesla simulator platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simTesla/package.xdc
requires ti.catalog.c6000;
requires xdc.platform[1, 0, 1];
package ti.platforms.simTesla [1, 0, 0, 0] {
    module Platform;
    // Platform support for the simTesla
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Tesla simulator platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simTesla.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:32 GMT


package ti.platforms.simTesla

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires ti.catalog.c6000;
    19    requires xdc.platform [1,0,1];
    20
    21    /*!
    22     *  ======== ti.platforms.simTesla ========
    23     *  Platform package for the Tesla functional simulator.
    24     *
    25     *  This package implements the interfaces (xdc.platform.IPlatform)
    26     *  necessary to build and run executables on the Tesla simulator platform.
    27     *
    28     *  @a(Throws)
    29     *  `XDCException` exceptions are thrown for fatal errors. The following error
    30     *  codes are reported in the exception message:
    31     *  @p(dlist)
    32     *      -  `ti.platfoms.simTesla.LINK_TEMPLATE_ERROR`
    33     *           This error is raised when this platform cannot found the default
    34     *           linker command template `linkcmd.xdt` in the build target's
    35     *           package. When a target does not contain this file, the config
    36     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    37     *  @p
    38     */
    39    package ti.platforms.simTesla [1,0,0,0] {
    40        module Platform;
    41    }
    42    /*
    43     *  @(#) ti.platforms.simTesla; 1, 0, 0, 0,141; 8-17-2012 22:18:06; /db/ztree/library/trees/platform/platform-n27x/src/
    44     */
    45


module ti.platforms.simTesla.Platform

metaonly module ti.platforms.simTesla.Platform
index URL

Platform support for the simTesla

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/platforms/simTesla/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simTesla.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simTesla",
        boardFamily: "simTesla",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 466,
        catalogName: "ti.catalog.c6000",
        deviceName: "OMAP4430",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "EXT_RAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "EXT_RAM";
        params.externalMemoryMap// Memory regions as defined in the Tesla Functional Specification = IPlatform.Memory[string] [
            [
                "EXT_RAM",
                {
                    comment: "External RAM",
                    name: "EXT_RAM",
                    base: 0x20000000,
                    len: 0x01000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "EXT_RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simTesla",
    boardFamily: "simTesla",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 466,
    catalogName: "ti.catalog.c6000",
    deviceName: "OMAP4430",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "EXT_RAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "EXT_RAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // Memory regions as defined in the Tesla Functional Specification
        [
            "EXT_RAM",
            {
                comment: "External RAM",
                name: "EXT_RAM",
                base: 0x20000000,
                len: 0x01000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "EXT_RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

Memory regions as defined in the Tesla Functional Specification

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EXT_RAM",
        {
            comment: "External RAM",
            name: "EXT_RAM",
            base: 0x20000000,
            len: 0x01000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "EXT_RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:31 GMT


module ti.platforms.simTesla.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the simTesla
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        readonly config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "simTesla",
    27            boardFamily:    "simTesla",
    28            boardRevision:  null,
    29        };
    30
    31        readonly config xdc.platform.IExeContext.Cpu CPU = {
    32            id:             "0",
    33            clockRate:      466,
    34            catalogName:    "ti.catalog.c6000",
    35            deviceName:     "OMAP4430",
    36            revision:       "1.0",
    37        };
    38
    39    instance:
    40
    41        /*!
    42         *  ======== externalMemoryMap ========
    43         *  Memory regions as defined in the Tesla Functional Specification
    44         */
    45
    46        override readonly config xdc.platform.IPlatform.Memory
    47            externalMemoryMap[string] = [
    48
    49                ["EXT_RAM", {
    50                    comment: "External RAM",
    51                    name: "EXT_RAM",
    52                    base: 0x20000000,
    53                    len:  0x01000000
    54                }],
    55
    56            ];
    57
    58
    59        override config string codeMemory  = "EXT_RAM";
    60        override config string dataMemory  = "EXT_RAM";
    61        override config string stackMemory = "EXT_RAM";
    62
    63        /*
    64         *  ======== l1PMode ========
    65         *  Define the amount of L1P RAM used for L1 Program Cache.
    66         *
    67         *  Check the device documentation for valid values.
    68         */
    69        config String l1PMode = "32k";
    70
    71        /*
    72         *  ======== l1DMode ========
    73         *  Define the amount of L1D RAM used for L1 Data Cache.
    74         *
    75         *  Check the device documentation for valid values.
    76         */
    77        config String l1DMode = "32k";
    78
    79        /*
    80         *  ======== l2Mode ========
    81         *  Define the amount of L2 RAM used for L2 Cache.
    82         *
    83         *  Check the device documentation for valid values.
    84         */
    85        config String l2Mode = "0k";
    86    };
    87    /*
    88     *  @(#) ti.platforms.simTesla; 1, 0, 0, 0,141; 8-17-2012 22:18:06; /db/ztree/library/trees/platform/platform-n27x/src/
    89     */
    90


package ti.platforms.simVayu
index URL

Platform package for the Vayu SDP

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Vayu SDP platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simVayu/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm4;
requires ti.catalog.arm.cortexa15;
requires xdc.platform[1, 0, 1];
package ti.platforms.simVayu [1, 0, 0, 0] {
    module Platform;
    // Platform support for simVayu
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the Vayu SDP platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platforms.simVayu.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
generated on Thu, 08 Nov 2012 02:18:33 GMT


package ti.platforms.simVayu

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17    requires ti.catalog.c6000;
    18    requires ti.catalog.arm.cortexm4;
    19    requires ti.catalog.arm.cortexa15;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.simVayu ========
    24     *  Platform package for the Vayu SDP.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the Vayu SDP platform.
    28     *
    29     *  @a(Throws)
    30     *  `XDCException` exceptions are thrown for fatal errors. The following error
    31     *  codes are reported in the exception message:
    32     *  @p(dlist)
    33     *      -  `ti.platforms.simVayu.LINK_TEMPLATE_ERROR`
    34     *           This error is raised when this platform cannot found the default
    35     *           linker command template `linkcmd.xdt` in the build target's
    36     *           package. When a target does not contain this file, the config
    37     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    38     *  @p
    39     */
    40    package ti.platforms.simVayu [1,0,0,0] {
    41        module Platform;
    42    }
    43    /*
    44     *  @(#) ti.platforms.simVayu; 1, 0, 0, 0,10; 8-17-2012 22:18:10; /db/ztree/library/trees/platform/platform-n27x/src/
    45     */
    46


module ti.platforms.simVayu.Platform

metaonly module ti.platforms.simVayu.Platform
index URL

Platform support for simVayu

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/simVayu/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simVayu.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "simVayu",
        boardFamily: "simVayu",
        boardRevision: null
    };
    const Platform.DSP// = IExeContext.Cpu {
        id: "0",
        clockRate: 1000,
        catalogName: "ti.catalog.c6000",
        deviceName: "Vayu",
        revision: "1.0"
    };
    const Platform.EVE// = IExeContext.Cpu {
        id: "2",
        clockRate: 200.0,
        catalogName: "ti.catalog.arp32",
        deviceName: "Vayu",
        revision: "1.0"
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "3",
        clockRate: 800.0,
        catalogName: "ti.catalog.arm.cortexa15",
        deviceName: "Vayu",
        revision: "1.0"
    };
    const Platform.M4// = IExeContext.Cpu {
        id: "1",
        clockRate: 266.0,
        catalogName: "ti.catalog.arm.cortexm4",
        deviceName: "Vayu",
        revision: "1.0"
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String undefined;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String undefined;
        params.externalMemoryMap// Memory regions as defined in the Vayu Simulator Specification = IPlatform.Memory[string] [
            [
                "EXT_RAM_EVE_VECS",
                {
                    comment: "External RAM Memory reserved for use by EVE .vecs",
                    name: "EXT_RAM_EVE_VECS",
                    base: 0x80000000,
                    len: 0x00000100
                }
            ],
            [
                "EXT_RAM_EVE",
                {
                    comment: "External RAM Memory reserved for use by the EVE",
                    name: "EXT_RAM_EVE",
                    base: 0x80000100,
                    len: 0x07ffff00
                }
            ],
            [
                "EXT_RAM_DSP",
                {
                    comment: "External RAM Memory reserved for use by the C66x",
                    name: "EXT_RAM_DSP",
                    base: 0x88000000,
                    len: 0x02000000
                }
            ],
            [
                "EXT_RAM_M4",
                {
                    comment: "External RAM Memory reserved for use by the M4 core",
                    name: "EXT_RAM_M4",
                    base: 0x8A000000,
                    len: 0x20000000
                }
            ],
            [
                "EXT_RAM_A15",
                {
                    comment: "External RAM Memory reserved for use by the A15 core",
                    name: "EXT_RAM_A15",
                    base: 0xC0000000,
                    len: 0x20000000
                }
            ]
        ];
        params.l1DMode// = String "32k";
        params.l1PMode// = String "32k";
        params.l2Mode// = String "0k";
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String undefined;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has 4 EVE's, 2 M4's, and 2 C66x DSP's.
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "simVayu",
    boardFamily: "simVayu",
    boardRevision: null
};
config Platform.DSP // module-wide
index URL
XDCscript usage meta-domain
const Platform.DSP = IExeContext.Cpu {
    id: "0",
    clockRate: 1000,
    catalogName: "ti.catalog.c6000",
    deviceName: "Vayu",
    revision: "1.0"
};
config Platform.EVE // module-wide
index URL
XDCscript usage meta-domain
const Platform.EVE = IExeContext.Cpu {
    id: "2",
    clockRate: 200.0,
    catalogName: "ti.catalog.arp32",
    deviceName: "Vayu",
    revision: "1.0"
};
config Platform.GPP // module-wide
index URL
XDCscript usage meta-domain
const Platform.GPP = IExeContext.Cpu {
    id: "3",
    clockRate: 800.0,
    catalogName: "ti.catalog.arm.cortexa15",
    deviceName: "Vayu",
    revision: "1.0"
};
config Platform.M4 // module-wide
index URL
XDCscript usage meta-domain
const Platform.M4 = IExeContext.Cpu {
    id: "1",
    clockRate: 266.0,
    catalogName: "ti.catalog.arm.cortexm4",
    deviceName: "Vayu",
    revision: "1.0"
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String undefined;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String undefined;
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // Memory regions as defined in the Vayu Simulator Specification
        [
            "EXT_RAM_EVE_VECS",
            {
                comment: "External RAM Memory reserved for use by EVE .vecs",
                name: "EXT_RAM_EVE_VECS",
                base: 0x80000000,
                len: 0x00000100
            }
        ],
        [
            "EXT_RAM_EVE",
            {
                comment: "External RAM Memory reserved for use by the EVE",
                name: "EXT_RAM_EVE",
                base: 0x80000100,
                len: 0x07ffff00
            }
        ],
        [
            "EXT_RAM_DSP",
            {
                comment: "External RAM Memory reserved for use by the C66x",
                name: "EXT_RAM_DSP",
                base: 0x88000000,
                len: 0x02000000
            }
        ],
        [
            "EXT_RAM_M4",
            {
                comment: "External RAM Memory reserved for use by the M4 core",
                name: "EXT_RAM_M4",
                base: 0x8A000000,
                len: 0x20000000
            }
        ],
        [
            "EXT_RAM_A15",
            {
                comment: "External RAM Memory reserved for use by the A15 core",
                name: "EXT_RAM_A15",
                base: 0xC0000000,
                len: 0x20000000
            }
        ]
    ];
    params.l1DMode = String "32k";
    //
    params.l1PMode = String "32k";
    //
    params.l2Mode = String "0k";
    //
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String undefined;
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

Memory regions as defined in the Vayu Simulator Specification

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] [
    [
        "EXT_RAM_EVE_VECS",
        {
            comment: "External RAM Memory reserved for use by EVE .vecs",
            name: "EXT_RAM_EVE_VECS",
            base: 0x80000000,
            len: 0x00000100
        }
    ],
    [
        "EXT_RAM_EVE",
        {
            comment: "External RAM Memory reserved for use by the EVE",
            name: "EXT_RAM_EVE",
            base: 0x80000100,
            len: 0x07ffff00
        }
    ],
    [
        "EXT_RAM_DSP",
        {
            comment: "External RAM Memory reserved for use by the C66x",
            name: "EXT_RAM_DSP",
            base: 0x88000000,
            len: 0x02000000
        }
    ],
    [
        "EXT_RAM_M4",
        {
            comment: "External RAM Memory reserved for use by the M4 core",
            name: "EXT_RAM_M4",
            base: 0x8A000000,
            len: 0x20000000
        }
    ],
    [
        "EXT_RAM_A15",
        {
            comment: "External RAM Memory reserved for use by the A15 core",
            name: "EXT_RAM_A15",
            base: 0xC0000000,
            len: 0x20000000
        }
    ]
];
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.l1DMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1DMode = String "32k";
config Platform.l1PMode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l1PMode = String "32k";
config Platform.l2Mode // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.l2Mode = String "0k";
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String undefined;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:33 GMT


module ti.platforms.simVayu.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     *  Platform support for simVayu
    16     *
    17     */
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for simVayu
    22     *
    23     *  This module implements xdc.platform.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has 4 EVE's, 2 M4's, and 2 C66x DSP's.
    32     */
    33    metaonly module Platform inherits xdc.platform.IPlatform
    34    {
    35        readonly config xdc.platform.IPlatform.Board BOARD = {
    36            id:                 "0",
    37            boardName:      "simVayu",
    38            boardFamily:    "simVayu",
    39            boardRevision:  null,
    40        };
    41
    42        readonly config xdc.platform.IExeContext.Cpu DSP = {
    43            id:                 "0",
    44            clockRate:      1000,
    45            catalogName:    "ti.catalog.c6000",
    46            deviceName:     "Vayu",
    47            revision:       "1.0",
    48        };
    49
    50        /* Benelli M4 Subsystem */
    51        readonly config xdc.platform.IExeContext.Cpu M4 = {
    52            id:             "1",
    53            clockRate:      266.0,
    54            catalogName:    "ti.catalog.arm.cortexm4",
    55            deviceName:     "Vayu",
    56            revision:       "1.0",
    57        };
    58
    59        /* EVE */
    60        readonly config xdc.platform.IExeContext.Cpu EVE = {
    61            id:             "2",
    62            clockRate:      200.0,
    63            catalogName:    "ti.catalog.arp32",
    64            deviceName:     "Vayu",
    65            revision:       "1.0"
    66        };
    67
    68        /* GPP */
    69        readonly config xdc.platform.IExeContext.Cpu GPP = {
    70            id:             "3",
    71            clockRate:      800.0,  /* Typically set by the HLOS */
    72            catalogName:    "ti.catalog.arm.cortexa15",
    73            deviceName:     "Vayu",
    74            revision:       "1.0"
    75        };
    76
    77    instance:
    78
    79        /*!
    80         *  ======== externalMemoryMap ========
    81         *  Memory regions as defined in the Vayu Simulator Specification
    82         */
    83
    84        override readonly config xdc.platform.IPlatform.Memory
    85            externalMemoryMap[string] = [
    86                ["EXT_RAM_EVE_VECS", {
    87                    comment: "External RAM Memory reserved for use by EVE .vecs",
    88                    name: "EXT_RAM_EVE_VECS",
    89                    base: 0x80000000,
    90                    len:  0x00000100    /* Reserve first 0x100 for .vecs */
    91                }],
    92                ["EXT_RAM_EVE", {
    93                    comment: "External RAM Memory reserved for use by the EVE",
    94                    name: "EXT_RAM_EVE",
    95                    base: 0x80000100,
    96                    len:  0x07ffff00    /* ~128 MB */
    97                }],
    98                ["EXT_RAM_DSP", {
    99                    comment: "External RAM Memory reserved for use by the C66x",
   100                    name: "EXT_RAM_DSP",
   101                    base: 0x88000000,
   102                    len:  0x02000000    /* 32 MB */
   103                }],
   104                ["EXT_RAM_M4", {
   105                    comment: "External RAM Memory reserved for use by the M4 core",
   106                    name: "EXT_RAM_M4",
   107                    base: 0x8A000000,
   108                    len:  0x20000000    /* 512 MB */
   109                }],
   110                ["EXT_RAM_A15", {
   111                    comment: "External RAM Memory reserved for use by the A15 core",
   112                    name: "EXT_RAM_A15",
   113                    base: 0xC0000000,
   114                    len:  0x20000000    /* 512 MB */
   115                }]
   116            ];
   117
   118        /*
   119         *  ======== l1PMode ========
   120         *  Define the amount of L1P RAM used for L1 Program Cache.
   121         *
   122         *  Check the device documentation for valid values.
   123         */
   124        config String l1PMode = "32k";
   125
   126        /*
   127         *  ======== l1DMode ========
   128         *  Define the amount of L1D RAM used for L1 Data Cache.
   129         *
   130         *  Check the device documentation for valid values.
   131         */
   132        config String l1DMode = "32k";
   133
   134        /*
   135         *  ======== l2Mode ========
   136         *  Define the amount of L2 RAM used for L2 Cache.
   137         *
   138         *  Check the device documentation for valid values.
   139         */
   140        config String l2Mode = "0k";
   141    };
   142    /*
   143     *  @(#) ti.platforms.simVayu; 1, 0, 0, 0,10; 8-17-2012 22:18:10; /db/ztree/library/trees/platform/platform-n27x/src/
   144     */
   145


package ti.platforms.stellaris
index URL

Platform support for any Stellaris device

XDCspec declarations sourced in ti/platforms/stellaris/package.xdc
requires xdc.platform[1, 0, 1];
requires ti.catalog.arm.cortexm3;
requires ti.catalog.arm.cortexm4;
package ti.platforms.stellaris [1, 0, 0] {
    module Platform;
    // A generic platform that supports any Stellaris device
}
generated on Thu, 08 Nov 2012 02:18:34 GMT


package ti.platforms.stellaris

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.platform [1,0,1];
    14    requires ti.catalog.arm.cortexm3;
    15    requires ti.catalog.arm.cortexm4;
    16
    17    /*!
    18     *  ======== ti.platforms.stellaris ========
    19     *  Platform support for any Stellaris device
    20     */
    21    package ti.platforms.stellaris [1,0,0] {
    22        module Platform;
    23    }
    24
    25    /*
    26     *  @(#) ti.platforms.stellaris; 1, 0, 0,57; 8-17-2012 22:18:11; /db/ztree/library/trees/platform/platform-n27x/src/
    27     */
    28


module ti.platforms.stellaris.Platform

metaonly module ti.platforms.stellaris.Platform
index URL

A generic platform that supports any Stellaris device

  • XDCscript usage
  • Individual elements
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way: [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/stellaris/Platform.xdc
var Platform = xdc.useModule('ti.platforms.stellaris.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.nameFormat// Encoding of instance creation parameters in the instance's name = String "$(deviceName):$(includeLinkCmdFile)";
     Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "stellaris",
        boardFamily: null,
        boardRevision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.M3// = IExeContext.Cpu {
            id: "0",
            clockRate: 1.0,
            catalogName: "ti.catalog.arm.cortexm3",
            deviceName: "Stellaris",
            revision: ""
        };
        params.M4// = IExeContext.Cpu {
            id: "0",
            clockRate: 1.0,
            catalogName: "ti.catalog.arm.cortexm4",
            deviceName: "Stellaris",
            revision: ""
        };
        params.clockRate// The clock rate for this device = Double 20;
        params.codeMemory// The default segment for code sections = String null;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String null;
        params.deviceName// The name of an ICpuDataSheet module for the device = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.includeLinkCmdFile// The flag that specifies if the platform should include a linker command file = Bool false;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String null;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way:
  xs xdc.tools.configuro ... -p "ti.platforms.stellaris:LM3S8971"
In package.bld, the platform instance is selected as in:
  Pkg.addExecutable("test", target, "ti.platforms.stellaris:LM3S8971");
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.nameFormat // module-wide
index URL

Encoding of instance creation parameters in the instance's name

XDCscript usage meta-domain
const Platform.nameFormat = String "$(deviceName):$(includeLinkCmdFile)";
DETAILS
For this platform, the parameters deviceName and includeLinkCmdFile can be encoded in the instance name supplied on xdc.tools.configuro command line, for example:
      xs xdc.tools.configuro ... -p ti.platforms.stellaris:LM3S8971:1
Optional parameters can be omitted:
      xs xdc.tools.configuro ... -p ti.platforms.stellaris:LM3S8971
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "stellaris",
    boardFamily: null,
    boardRevision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.M3 = IExeContext.Cpu {
    //
        id: "0",
        clockRate: 1.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "Stellaris",
        revision: ""
    };
    params.M4 = IExeContext.Cpu {
    //
        id: "0",
        clockRate: 1.0,
        catalogName: "ti.catalog.arm.cortexm4",
        deviceName: "Stellaris",
        revision: ""
    };
    params.clockRate = Double 20;
    // The clock rate for this device
    params.codeMemory = String null;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String null;
    // The default segment for data sections
    params.deviceName = String undefined;
    // The name of an ICpuDataSheet module for the device
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.includeLinkCmdFile = Bool false;
    // The flag that specifies if the platform should include a linker command file
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String null;
    // The default segment for stack
config Platform.M3 // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.M3 = IExeContext.Cpu {
    id: "0",
    clockRate: 1.0,
    catalogName: "ti.catalog.arm.cortexm3",
    deviceName: "Stellaris",
    revision: ""
};
config Platform.M4 // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.M4 = IExeContext.Cpu {
    id: "0",
    clockRate: 1.0,
    catalogName: "ti.catalog.arm.cortexm4",
    deviceName: "Stellaris",
    revision: ""
};
config Platform.clockRate // instance
index URL

The clock rate for this device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.clockRate = Double 20;
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The name of an ICpuDataSheet module for the device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is required, but it does not have to be set explicitly; it can be encoded in the instance's name.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.includeLinkCmdFile // instance
index URL

The flag that specifies if the platform should include a linker command file

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.includeLinkCmdFile = Bool false;
DETAILS
By default, a user is responsible for adding a linker command file to the project, or to the linker command line. However, if this flag is set, this platform will include a default linker command file for the selected device.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:34 GMT


module ti.platforms.stellaris.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16    package ti.platforms.stellaris;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  A generic platform that supports any Stellaris device
    21     *
    22     *  The device to be used by this platform is passed as the platform instance
    23     *  name. On the `xdc.tools.configuro` command line, it is done in the
    24     *  following way:
    25     *  @p(code)
    26     *  xs xdc.tools.configuro ... -p "ti.platforms.stellaris:LM3S8971"
    27     *  @p
    28     *
    29     *  In package.bld, the platform instance is selected as in:
    30     *  @p(code)
    31     *  Pkg.addExecutable("test", target, "ti.platforms.stellaris:LM3S8971");
    32     *  @p
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "stellaris",
    39            boardFamily:    null,
    40            boardRevision:  null
    41        };
    42
    43        /*!
    44         *  ======== nameFormat ========
    45         *  Encoding of instance creation parameters in the instance's name
    46         *
    47         *  For this platform, the parameters `deviceName` and `includeLinkCmdFile`
    48         *  can be encoded in the instance name supplied on `xdc.tools.configuro`
    49         *  command line, for example:
    50         *  @p(code)
    51         *      xs xdc.tools.configuro ... -p ti.platforms.stellaris:LM3S8971:1
    52         *  @p
    53         *  Optional parameters can be omitted:
    54         *  @p(code)
    55         *      xs xdc.tools.configuro ... -p ti.platforms.stellaris:LM3S8971
    56         *  @p
    57         */
    58         readonly config string nameFormat = "$(deviceName):$(includeLinkCmdFile)";
    59
    60    instance:
    61
    62        /*
    63         *  This platform supports either M3 or M4.  M3 or M4 is selected
    64         *  in Platform.xs based on target.isa.
    65         */
    66        config xdc.platform.IExeContext.Cpu M3 = {
    67            id:             "0",
    68            clockRate:      1.0,
    69            catalogName:    "ti.catalog.arm.cortexm3",
    70            deviceName:     "Stellaris",
    71            revision:       "",
    72        };
    73
    74        config xdc.platform.IExeContext.Cpu M4 = {
    75            id:             "0",
    76            clockRate:      1.0,
    77            catalogName:    "ti.catalog.arm.cortexm4",
    78            deviceName:     "Stellaris",
    79            revision:       "",
    80        };
    81
    82        /*!
    83         *  ======== deviceName ========
    84         *  The name of an `ICpuDataSheet` module for the device
    85         *
    86         *  This parameter is required, but it does not have to be set explicitly;
    87         *  it can be encoded in the instance's name.
    88         */
    89        config string deviceName;
    90
    91        /*!
    92         *  ======== clockRate ========
    93         *  The clock rate for this device.
    94         */
    95        config Double clockRate = 20;
    96
    97        override config string codeMemory = null;
    98
    99        override config string dataMemory = null;
   100
   101        override config string stackMemory = null;
   102
   103        /*!
   104         *  ======== includeLinkCmdFile ========
   105         *  The flag that specifies if the platform should include a linker command
   106         *  file.
   107         *
   108         *  By default, a user is responsible for adding a linker command file to
   109         *  the project, or to the linker command line. However, if this flag is
   110         *  set, this platform will include a default linker command file for the
   111         *  selected device.
   112         */
   113        config Bool includeLinkCmdFile = false;
   114    };
   115    /*
   116     *  @(#) ti.platforms.stellaris; 1, 0, 0,57; 8-17-2012 22:18:11; /db/ztree/library/trees/platform/platform-n27x/src/
   117     */
   118


package ti.platforms.teb5561
index URL

Platform package for the TEB 5561 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the TEB 5561 platform.
XDCspec declarations sourced in ti/platforms/teb5561/package.xdc
requires ti.catalog.c5500;
requires xdc.platform[1, 0, 1];
package ti.platforms.teb5561 [1, 0, 0] {
    module Platform;
    // Platform support for the teb5561
}
generated on Thu, 08 Nov 2012 02:18:34 GMT


package ti.platforms.teb5561

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c5500;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.teb5561 ========
    18     *  Platform package for the TEB 5561 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the TEB 5561 platform.
    22     */
    23    package ti.platforms.teb5561 [1,0,0] {
    24       module Platform;
    25    }
    26    /*
    27     *  @(#) ti.platforms.teb5561; 1, 0, 0,368; 8-17-2012 22:18:15; /db/ztree/library/trees/platform/platform-n27x/src/
    28     */
    29


module ti.platforms.teb5561.Platform

metaonly module ti.platforms.teb5561.Platform
index URL

Platform support for the teb5561

  • XDCscript usage
  • Individual elements
This module implements xdc.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/teb5561/Platform.xdc
var Platform = xdc.useModule('ti.platforms.teb5561.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "teb5561",
        boardFamily: "teb5561",
        boardRevision: null
    };
    const Platform.CPU// = IExeContext.Cpu {
        id: "0",
        clockRate: 60.0,
        catalogName: "ti.catalog.c5500",
        deviceName: "TMS320C5561",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "SARAM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DARAM";
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "DARAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "teb5561",
    boardFamily: "teb5561",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL
XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 60.0,
    catalogName: "ti.catalog.c5500",
    deviceName: "TMS320C5561",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "SARAM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DARAM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "DARAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "SARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "DARAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:34 GMT


module ti.platforms.teb5561.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16
    17    package ti.platforms.teb5561;
    18
    19    /*!
    20     *  ======== Platform ========
    21     *  Platform support for the teb5561
    22     *
    23     *  This module implements xdc.IPlatform and defines configuration
    24     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    25     *
    26     *  The configuration parameters are initialized in this package's
    27     *  configuration script (package.cfg) and "bound" to the TCOM object
    28     *  model.  Once they are part of the model, these parameters are
    29     *  queried by a program's configuration script.
    30     *
    31     *  This particular platform has a single Cpu, and therefore, only
    32     *  declares a single CPU configuration object.  Multi-CPU platforms
    33     *  would declare multiple Cpu configuration parameters (one per
    34     *  platform CPU).
    35     */
    36    metaonly module Platform inherits xdc.platform.IPlatform
    37    {
    38        readonly config xdc.platform.IPlatform.Board BOARD = {
    39            id:             "0",
    40            boardName:      "teb5561",
    41            boardFamily:    "teb5561",
    42            boardRevision:  null,
    43        };
    44
    45        readonly config xdc.platform.IExeContext.Cpu CPU = {
    46            id:             "0",
    47            clockRate:      60.0,
    48            catalogName:    "ti.catalog.c5500",
    49            deviceName:     "TMS320C5561",
    50            revision:       "",
    51        };
    52
    53    instance:
    54
    55        override config string codeMemory = "SARAM";
    56
    57        override config string dataMemory = "DARAM";
    58
    59        override config string stackMemory = "DARAM";
    60    };
    61    /*
    62     *  @(#) ti.platforms.teb5561; 1, 0, 0,368; 8-17-2012 22:18:15; /db/ztree/library/trees/platform/platform-n27x/src/
    63     */
    64


package ti.platforms.tms320x28
index URL

Generic 28xx platform support

XDCspec declarations sourced in ti/platforms/tms320x28/package.xdc
requires ti.catalog.c2800;
package ti.platforms.tms320x28 [1, 0, 0] {
    module Platform;
    // A generic platform that supports any TMS320x28 device
}
generated on Thu, 08 Nov 2012 02:18:34 GMT


package ti.platforms.tms320x28

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires ti.catalog.c2800;
    14
    15    /*!
    16     *  ======== ti.platforms.tms320x28 ========
    17     *  Generic 28xx platform support
    18     */
    19    package ti.platforms.tms320x28 [1,0,0] {
    20        module Platform;
    21    }
    22    /*
    23     *  @(#) ti.platforms.tms320x28; 1, 0, 0,64; 8-17-2012 22:18:19; /db/ztree/library/trees/platform/platform-n27x/src/
    24     */
    25


module ti.platforms.tms320x28.Platform

metaonly module ti.platforms.tms320x28.Platform
index URL

A generic platform that supports any TMS320x28 device

  • XDCscript usage
  • Individual elements
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way: [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/tms320x28/Platform.xdc
var Platform = xdc.useModule('ti.platforms.tms320x28.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.nameFormat// Encoding of instance creation parameters in the instance's name = String "$(deviceName):$(includeLinkCmdFile):$(clockRate)";
     Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "tms320x28",
        boardFamily: null,
        boardRevision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.CPU// = IExeContext.Cpu {
            id: "0",
            clockRate: 0,
            catalogName: "ti.catalog.c2800",
            deviceName: "TMS320C2812",
            revision: null
        };
        params.clockRate// The clock rate for this device = Double 0;
        params.codeMemory// The default segment for code sections = String null;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String null;
        params.deviceName// The name of an ICpuDataSheet module for the device = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.includeLinkCmdFile// The flag that specifies if the platform should include a linker command file = Bool false;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String null;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
The device to be used by this platform is passed as the platform instance name. On the xdc.tools.configuro command line, it is done in the following way:
  xs xdc.tools.configuro ... -p "ti.platforms.tms320x28:TMS320C2812"
In package.bld, the platform instance is selected as in:
  Pkg.addExecutable("test", target, "ti.platforms.tms320x28:TMS320C2812");
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.nameFormat // module-wide
index URL

Encoding of instance creation parameters in the instance's name

XDCscript usage meta-domain
const Platform.nameFormat = String "$(deviceName):$(includeLinkCmdFile):$(clockRate)";
DETAILS
For this platform, the parameters deviceName, includeLinkCmdFile and clockRate can be encoded in the instance name supplied on xdc.tools.configuro command line, for example:
      xs xdc.tools.configuro ... -p ti.platforms.tms320x28:TMS320F28035:1:60
Optional parameters can be omitted:
      xs xdc.tools.configuro ... -p ti.platforms.tms320x28:TMS320F28035:60
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "tms320x28",
    boardFamily: null,
    boardRevision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.CPU = IExeContext.Cpu {
    //
        id: "0",
        clockRate: 0,
        catalogName: "ti.catalog.c2800",
        deviceName: "TMS320C2812",
        revision: null
    };
    params.clockRate = Double 0;
    // The clock rate for this device
    params.codeMemory = String null;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String null;
    // The default segment for data sections
    params.deviceName = String undefined;
    // The name of an ICpuDataSheet module for the device
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.includeLinkCmdFile = Bool false;
    // The flag that specifies if the platform should include a linker command file
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String null;
    // The default segment for stack
config Platform.CPU // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 0,
    catalogName: "ti.catalog.c2800",
    deviceName: "TMS320C2812",
    revision: null
};
config Platform.clockRate // instance
index URL

The clock rate for this device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.clockRate = Double 0;
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The name of an ICpuDataSheet module for the device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is required, but it does not have to be set explicitly; it can be encoded in the instance's name.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.includeLinkCmdFile // instance
index URL

The flag that specifies if the platform should include a linker command file

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.includeLinkCmdFile = Bool false;
DETAILS
By default, a user is responsible for adding a linker command file to the project, or to the linker command line. However, if this flag is set, this platform will include a default linker command file for the selected device.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:34 GMT


module ti.platforms.tms320x28.Platform

     1    /*
     2     *  Copyright (c) 2012 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16    package ti.platforms.tms320x28;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  A generic platform that supports any TMS320x28 device
    21     *
    22     *  The device to be used by this platform is passed as the platform instance
    23     *  name. On the `xdc.tools.configuro` command line, it is done in the
    24     *  following way:
    25     *  @p(code)
    26     *  xs xdc.tools.configuro ... -p "ti.platforms.tms320x28:TMS320C2812"
    27     *  @p
    28     *
    29     *  In package.bld, the platform instance is selected as in:
    30     *  @p(code)
    31     *  Pkg.addExecutable("test", target, "ti.platforms.tms320x28:TMS320C2812");
    32     *  @p
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        config xdc.platform.IPlatform.Board BOARD = {
    37            id:             "0",
    38            boardName:      "tms320x28",
    39            boardFamily:    null,
    40            boardRevision:  null
    41        };
    42
    43        /*!
    44         *  ======== nameFormat ========
    45         *  Encoding of instance creation parameters in the instance's name
    46         *
    47         *  For this platform, the parameters `deviceName`, `includeLinkCmdFile`
    48         *  and `clockRate` can be encoded in the instance name supplied on
    49         *  `xdc.tools.configuro` command line, for example:
    50         *  @p(code)
    51         *      xs xdc.tools.configuro ... -p ti.platforms.tms320x28:TMS320F28035:1:60
    52         *  @p
    53         *  Optional parameters can be omitted:
    54         *  @p(code)
    55         *      xs xdc.tools.configuro ... -p ti.platforms.tms320x28:TMS320F28035:60
    56         *  @p
    57         */
    58        readonly config string nameFormat
    59            = "$(deviceName):$(includeLinkCmdFile):$(clockRate)";
    60
    61    instance:
    62
    63        config xdc.platform.IExeContext.Cpu CPU = {
    64            id:             "0",
    65            clockRate:      0,
    66            catalogName:    "ti.catalog.c2800",
    67            deviceName:     "TMS320C2812",
    68            revision:       null,
    69        };
    70
    71        /*!
    72         *  ======== deviceName ========
    73         *  The name of an `ICpuDataSheet` module for the device
    74         *
    75         *  This parameter is required, but it does not have to be set explicitly;
    76         *  it can be encoded in the instance's name.
    77         */
    78        config string deviceName;
    79
    80        /*!
    81         *  ======== clockRate ========
    82         *  The clock rate for this device.
    83         */
    84        config Double clockRate = 0;
    85
    86        override config string codeMemory = null;
    87
    88        override config string dataMemory = null;
    89
    90        override config string stackMemory = null;
    91
    92        /*!
    93         *  ======== includeLinkCmdFile ========
    94         *  The flag that specifies if the platform should include a linker command
    95         *  file.
    96         *
    97         *  By default, a user is responsible for adding a linker command file to
    98         *  the project, or to the linker command line. However, if this flag is
    99         *  set, this platform will include a default linker command file for the
   100         *  selected device.
   101         */
   102        config Bool includeLinkCmdFile = false;
   103    };
   104    /*
   105     *  @(#) ti.platforms.tms320x28; 1, 0, 0,64; 8-17-2012 22:18:19; /db/ztree/library/trees/platform/platform-n27x/src/
   106     */
   107


package ti.platforms.ts430F5529
index URL

Platform package for the ts430F5529 platform

This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the ts430F5529 platform.
XDCspec declarations sourced in ti/platforms/ts430F5529/package.xdc
requires ti.catalog.msp430;
requires xdc.platform[1, 0, 1];
package ti.platforms.ts430F5529 [1, 0, 0, 0] {
    module Platform;
    // Platform support for the ts430F5529
}
generated on Thu, 08 Nov 2012 02:18:36 GMT


package ti.platforms.ts430F5529

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    requires ti.catalog.msp430;
    13    requires xdc.platform [1,0,1];
    14
    15    /*!
    16     *  ======== ti.platforms.ts430F5529 ========
    17     *  Platform package for the ts430F5529 platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on the ts430F5529 platform.
    21     */
    22    package ti.platforms.ts430F5529 [1,0,0,0] {
    23        module Platform;
    24    }


module ti.platforms.ts430F5529.Platform

metaonly module ti.platforms.ts430F5529.Platform
index URL

Platform support for the ts430F5529

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc. [ more ... ]
XDCscript usage meta-domain sourced in ti/platforms/ts430F5529/Platform.xdc
var Platform = xdc.useModule('ti.platforms.ts430F5529.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
    const Platform.BOARD// This platform's board attributes = IPlatform.Board {
        id: "0",
        boardName: "ts430F5529",
        boardFamily: "ts430F5529",
        boardRevision: null
    };
    const Platform.CPU// The CPU supported by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 8.0,
        catalogName: "ti.catalog.msp430",
        deviceName: "MSP430F5529",
        revision: ""
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.codeMemory// The default segment for code sections = String "FLASH";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "RAM";
        params.deviceName// The CPU supported by this platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String "RAM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
DETAILS
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
The configuration parameters are initialized in this package's configuration script (package.cfg) and "bound" to the TCOM object model. Once they are part of the model, these parameters are queried by a program's configuration script.
This particular platform has a single Cpu, and therefore, only declares a single CPU configuration object. Multi-CPU platforms would declare multiple Cpu configuration parameters (one per platform CPU).
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL

This platform's board attributes

XDCscript usage meta-domain
const Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "ts430F5529",
    boardFamily: "ts430F5529",
    boardRevision: null
};
config Platform.CPU // module-wide
index URL

The CPU supported by this platform

XDCscript usage meta-domain
const Platform.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 8.0,
    catalogName: "ti.catalog.msp430",
    deviceName: "MSP430F5529",
    revision: ""
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.codeMemory = String "FLASH";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "RAM";
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU supported by this platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String "RAM";
    // The default segment for stack
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String "FLASH";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU supported by this platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is optional. If it's not set, then the Platform module parameter CPU.deviceName is used.
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String "RAM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:18:36 GMT


module ti.platforms.ts430F5529.Platform

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== Platform.xdc ========
    14     */
    15
    16    package ti.platforms.ts430F5529;
    17
    18    /*!
    19     *  ======== Platform ========
    20     *  Platform support for the ts430F5529
    21     *
    22     *  This module implements xdc.platform.IPlatform and defines configuration
    23     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    24     *
    25     *  The configuration parameters are initialized in this package's
    26     *  configuration script (package.cfg) and "bound" to the TCOM object
    27     *  model.  Once they are part of the model, these parameters are
    28     *  queried by a program's configuration script.
    29     *
    30     *  This particular platform has a single Cpu, and therefore, only
    31     *  declares a single CPU configuration object.  Multi-CPU platforms
    32     *  would declare multiple Cpu configuration parameters (one per
    33     *  platform CPU).
    34     */
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        /*!
    38         *  ======== BOARD ========
    39         *  This platform's board attributes
    40         */
    41        readonly config xdc.platform.IPlatform.Board BOARD = {
    42            id:             "0",
    43            boardName:      "ts430F5529",
    44            boardFamily:    "ts430F5529",
    45            boardRevision:  null
    46        };
    47
    48        /*!
    49         *  ======== CPU ========
    50         *  The CPU supported by this platform.
    51         */
    52        readonly config xdc.platform.IExeContext.Cpu CPU = {
    53            id:             "0",
    54            clockRate:      8.0,
    55            catalogName:    "ti.catalog.msp430",
    56            deviceName:     "MSP430F5529",
    57            revision:       "",
    58        };
    59
    60    instance:
    61
    62        /*!
    63         *  ======== deviceName ========
    64         *  The CPU supported by this platform.
    65         *
    66         *  This parameter is optional. If it's not set, then the Platform module
    67         *  parameter CPU.deviceName is used.
    68         */
    69        config string deviceName;
    70
    71        override config string codeMemory = "FLASH";
    72
    73        override config string dataMemory = "RAM";
    74
    75        override config string stackMemory = "RAM";
    76    };


package ti.sdoarch.standards.pkg
index URL

SDO Architecture Team Package Standard

This package contains the SDO Architecture Team's Package Standard: a set of rules and guidelines used to deploy production quality real-time target content. [ more ... ]
XDCspec declarations sourced in ti/sdoarch/standards/pkg/package.xdc
package ti.sdoarch.standards.pkg [1, 0, 0] {
    interface IVersion;
    // Standard package version number interface
}
DETAILS
This package contains the SDO Architecture Team's Package Standard: a set of rules and guidelines used to deploy production quality real-time target content.
The files in this package are not licensed; i.e., they are in the public domain.
generated on Thu, 08 Nov 2012 02:14:07 GMT


package ti.sdoarch.standards.pkg

     1    /*!
     2     *  ======== ti.sdoarch.standards.pkg ========
     3     *  SDO Architecture Team Package Standard
     4     *
     5     *  This package contains the SDO Architecture Team's Package Standard: a
     6     *  set of rules and guidelines used to deploy production quality real-time
     7     *  target content.
     8     *
     9     *  The files in this package are not licensed; i.e., they are in the public
    10     *  domain.
    11     */
    12    package ti.sdoarch.standards.pkg [1, 0, 0]
    13    {
    14        interface IVersion; /* standardized version information */
    15    }
    16
    17    /* @(#) ti.sdoarch.standards.pkg; 1, 0, 0; Thu, 16 Jul 2009 21:28:29 GMT; /db/ztree/library/trees/ps-b05x/src  */


interface ti.sdoarch.standards.pkg.IVersion
index URL

Standard package version number interface

This interface is part of the SDO Package Standard. Each conformant package that supplies a version number contains a module named Version that implements this interface. In other words, [ more ... ]
XDCspec summary sourced in ti/sdoarch/standards/pkg/IVersion.xdc
interface IVersion { ...
// inherits xdc.runtime.IModule
XDCspec declarations sourced in ti/sdoarch/standards/pkg/IVersion.xdc
package ti.sdoarch.standards.pkg;
interface IVersion {
module-wide constants & types
    const UInt16 MAJOR// Major version number;
    const UInt16 MINOR// Minor version number;
    const UInt16 PATCH// Patch level;
    const UInt16 WIDTH// Minimum width of print fields;
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    metaonly function getString// Returns a string representation of the version(separator);
}
DETAILS
This interface is part of the SDO Package Standard. Each conformant package that supplies a version number contains a module named Version that implements this interface. In other words,
  • the package's package.xdc file declares Version as one of it's modules
  • the package contains a spec for the Version module (named Version.xdc) and a header generated from this spec (named Version.h)
  • the Version.xdc file may optionally be generated from the ti/sdoarch/standards/pkg/Version.xdt template when the package's build script runs.
This interface defines a set of values that are used to
  1. informally communicate the "degree" of change between successive releases of a package,
  2. provide a "key" that enables the producer to unambigeously identify the sources (and tools) used to produce the package, and
  3. enable consumers to easily communicate to producers the version(s) of the package(s) they are using.
const IVersion.MAJOR
index URL

Major version number

XDCspec declarations sourced in ti/sdoarch/standards/pkg/IVersion.xdc
const UInt16 MAJOR;
DETAILS
This number should be changed when major changes in the package occur. Examples include adding new modules, adding substantial new features to the algorithm(s).
const IVersion.MINOR
index URL

Minor version number

XDCspec declarations sourced in ti/sdoarch/standards/pkg/IVersion.xdc
const UInt16 MINOR;
DETAILS
This number should be changed when minor changes in the package occur. Examples include minor changes to the existing APIs, adding minor features to the algorithms(s) including expanding the configuration options.
const IVersion.PATCH
index URL

Patch level

XDCspec declarations sourced in ti/sdoarch/standards/pkg/IVersion.xdc
const UInt16 PATCH;
DETAILS
This number should be changed when bug fixes or performance improvements are introduced. There should be no changes in the APIs in this case.
const IVersion.WIDTH
index URL

Minimum width of print fields

XDCspec declarations sourced in ti/sdoarch/standards/pkg/IVersion.xdc
const UInt16 WIDTH;
DETAILS
When denoting version numbers using '.' to separate fields there is a danger of confusing version "6.1" and version "6.10"; because, in decimal notation 6.1 == 6.10. To avoid this confusion, it is common practice to adopt a fixed minimum field width that's when printing version dimensions (other than MAJOR); e.g., rather than printing "6.1", if WIDTH == 2 then the version would be displayed as "6.01".
metaonly config IVersion.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in ti/sdoarch/standards/pkg/IVersion.xdc
metaonly config Types.Common$ common$;
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.
metaonly IVersion.getString() // module-wide
index URL

Returns a string representation of the version

XDCspec declarations sourced in ti/sdoarch/standards/pkg/IVersion.xdc
metaonly function getString(separator);
DETAILS
This method return a string of the form:
      MAJOR<sep>MINOR<sep>PATCH
where MAJOR, MINOR, and PATCH are the values sepcified in this interface and <sep> is the (optional) argument to this method. If separator is not supplied (or is null), <sep> defaults to '.'.
generated on Thu, 08 Nov 2012 02:14:07 GMT


interface ti.sdoarch.standards.pkg.IVersion

     1    /*!
     2     *  ======== IVersion ========
     3     *  Standard package version number interface
     4     *
     5     *  This interface is part of the SDO Package Standard.  Each conformant
     6     *  package that supplies a version number contains a module named
     7     *  `Version` that implements this interface.  In other words,
     8     *  @p(blist)
     9     *      - the package's `package.xdc` file declares `Version` as one of it's
    10     *        modules
    11     *      - the package contains a spec for the `Version` module (named
    12     *        `Version.xdc`) and a header generated from this spec (named
    13     *        `Version.h`)
    14     *      - the `Version.xdc` file may optionally be generated from the
    15     *        `ti/sdoarch/standards/pkg/Version.xdt` template when the package's
    16     *        build script runs.
    17     *  @p
    18     *
    19     *  This interface defines a set of values that are used to
    20     *  @p(nlist)
    21     *      - informally communicate the "degree" of change between successive
    22     *        releases of a package,
    23     *      - provide a "key" that enables the producer to unambigeously identify
    24     *        the sources (and tools) used to produce the package, and
    25     *      - enable consumers to easily communicate to producers the version(s)
    26     *        of the package(s) they are using.
    27     *  @p
    28     */
    29    interface IVersion {
    30        /*!
    31         *  ======== MAJOR ========
    32         *  Major version number
    33         *
    34         *  This number should be changed when major changes in the package
    35         *  occur. Examples include adding new modules, adding substantial new
    36         *  features to the algorithm(s).
    37         */
    38        const UInt16 MAJOR;
    39
    40        /*!
    41         *  ======== MINOR ========
    42         *  Minor version number
    43         *
    44         *  This number should be changed when minor changes in the package
    45         *  occur. Examples include minor changes to the existing APIs,
    46         *  adding minor features to the algorithms(s) including expanding the
    47         *  configuration options.
    48         */
    49        const UInt16 MINOR;
    50
    51        /*!
    52         *  ======== PATCH ========
    53         *  Patch level
    54         *
    55         *  This number should be changed when bug fixes or performance
    56         *  improvements are introduced. There should be no changes in the APIs
    57         *  in this case.
    58         */
    59        const UInt16 PATCH;
    60
    61        /*!
    62         *  ======== WIDTH ========
    63         *  Minimum width of print fields
    64         *
    65         *  When denoting version numbers using '.' to separate fields
    66         *  there is a danger of confusing version "6.1" and version "6.10";
    67         *  because, in decimal notation 6.1 == 6.10.  To avoid
    68         *  this confusion, it is common practice to adopt a fixed minimum field
    69         *  width that's when printing version dimensions (other than MAJOR);
    70         *  e.g., rather than printing "6.1", if WIDTH == 2 then the version would
    71         *  be displayed as "6.01".
    72         */
    73        const UInt16 WIDTH;
    74
    75        /*!
    76         *  ======== getString ========
    77         *  Returns a string representation of the version
    78         *
    79         *  This method return a string of the form:
    80         *  @p(code)
    81         *      MAJOR<sep>MINOR<sep>PATCH
    82         *  @p
    83         *  where `MAJOR`, `MINOR`, and `PATCH` are
    84         *  the values sepcified in this interface and `<sep>` is the (optional)
    85         *  argument to this method.  If `separator` is not supplied (or is
    86         *  `null`), `<sep>` defaults to `'.'`.
    87         */
    88        function getString(separator);
    89    }
    90
    91    /* @(#) ti.sdoarch.standards.pkg; 1, 0, 0; Thu, 16 Jul 2009 21:28:29 GMT; /db/ztree/library/trees/ps-b05x/src  */


package ti.targets
index URL

Package of targets for TI code generation tools

The modules in this package implement the xdc.bld.ITarget interface; this interface "wraps" the compiler tool-chain with an abstract interface that enables these tools to to be used by the XDC Build Engine.
XDCspec declarations sourced in ti/targets/package.xdc
requires xdc.bld;
package ti.targets [1, 0, 3] {
    interface ITarget;
    // A TI specific extension to the base xdc.bld.ITarget2 interface
    module C28;
    // TI C28 default runtime model (little endian)
    module C28_float;
    // TI C28 large model little endian with floating point support (fpu32)
    module C28_large;
    // TI C28 large model little endian
    module C54;
    // TI C54 default runtime model
    module C54_far;
    // TI C54 far model
    module C55;
    // TI C55 default runtime model
    module C55P_word;
    // TI C55P huge data big endian word mode
    module C55_huge;
    // TI C55 big endian huge data model
    module C55_large;
    // TI C55 large model
    module C62;
    // TI C62 default runtime model (little endian)
    module C62_big_endian;
    // TI C62 big endian
    module C64;
    // TI C64 default runtime model (little endian)
    module C64P;
    // TI C64P default runtime model (little endian)
    module C64P_big_endian;
    // TI C64P big endian
    module C64T;
    // TI C64T default runtime model (little endian)
    module C64T_big_endian;
    // TI C64T big endian
    module C64_big_endian;
    // TI C64 big endian
    module C66;
    // TI C66 little endian (COFF)
    module C66_big_endian;
    // TI C66 big endian (COFF)
    module C67;
    // TI C67 default runtime model (little endian)
    module C674;
    // TI C674 default runtime model (little endian)
    module C674_big_endian;
    // TI C674 big endian
    module C67P;
    // TI C67P default runtime model (little endian)
    module C67_big_endian;
    // TI C67 big endian
    module TMS470;
    // TI TMS470 (Arm) little endian
    module TMS470_big_endian;
    // TI TMS470 (Arm) big endian
}
generated on Thu, 08 Nov 2012 02:14:56 GMT


package ti.targets

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires xdc.bld;
    19
    20    /*!
    21     *  ======== ti.targets ========
    22     *  Package of targets for TI code generation tools
    23     *
    24     *  The modules in this package implement the xdc.bld.ITarget interface; this
    25     *  interface "wraps" the compiler tool-chain with an abstract interface
    26     *  that enables these tools to to be used by the XDC Build Engine.
    27     */
    28    package ti.targets [1,0,3] {
    29        module C62, C62_big_endian;
    30        module C64, C64_big_endian;
    31        module C64P, C64P_big_endian, C674, C674_big_endian;
    32        module C67, C67_big_endian;
    33        module C67P;
    34        module C64T, C64T_big_endian, C66, C66_big_endian;
    35        module C54, C54_far;
    36        module C55, C55_large, C55_huge, C55P_word;
    37        module C28, C28_large, C28_float;
    38        module TMS470, TMS470_big_endian;
    39
    40        interface ITarget;
    41    }
    42    /*
    43     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:25; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    44
    45     */
    46


module ti.targets.C28

metaonly module ti.targets.C28
index URL

TI C28 default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C28.xdc
var C28 = xdc.useModule('ti.targets.C28');
module-wide constants & types
    var obj = new C28.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C28.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C28.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C28.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C28.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C28.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C28.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C28.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C28.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C28.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C28.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C28.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C28.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const C28.ar// Define archiver executable = ITarget2.Command {
        cmd: "ar2000",
        opts: "rq"
    };
    const C28.asm// Define assembler executable = ITarget2.Command {
        cmd: "cl2000 -c",
        opts: "-v28"
    };
    const C28.base// A target that this target is based upon = ITarget.Module computed value;
    const C28.bitsPerChar// The number of bits in a variable of type char = Int 16;
    const C28.cc// Define compiler executable = ITarget2.Command {
        cmd: "cl2000 -c",
        opts: "-v28"
    };
    const C28.isa// CPU Instruction Set Architecture (ISA) = String "28";
    const C28.lnk// Define linker executable = ITarget2.Command {
        cmd: "lnk2000",
        opts: ""
    };
    const C28.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const C28.name// Nickname for this target = String "C28";
    const C28.os// Name of OS required to run programs built for this target = String computed value;
    const C28.rts// Name of a run-time support package to include = String "ti.targets.rts2800";
    const C28.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".switch",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".ebss",
            "data"
        ],
        [
            ".econst",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".esysmem",
            "data"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const C28.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C28.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 2,
            align: 2
        },
        t_Float: {
            size: 2,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 1
        },
        t_Int: {
            size: 1,
            align: 1
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 1,
            align: 1
        },
        t_Int32: {
            size: 2,
            align: 2
        },
        t_Int64: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 2,
            align: 2
        },
        t_LDouble: {
            size: 2,
            align: 2
        },
        t_LLong: {
            size: 4,
            align: 2
        },
        t_Ptr: {
            size: 1,
            align: 1
        },
        t_Short: {
            size: 1,
            align: 1
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const C28.suffix// Suffix appended to all objs, libraries, and executable = String "28";
    const C28.vers// Define the vers command = ITarget2.Command {
        cmd: "cl2000",
        opts: "--compiler_revision"
    };
     C28.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C28.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C28.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C28.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C28.ccOpts// Compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C28.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C28.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C28.execExt// Extension for executables = String undefined;
     C28.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C28.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C28.lnkOpts// Linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts2800.lib"
    };
     C28.pathPrefix// A prefix to the PATH environment variable = String "";
     C28.platform// The default platform name for this target = String undefined;
     C28.platforms// A set of platforms that can support this target = String[] [ ];
     C28.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C28.rootDir// Installation directory for this target's code generation tools = String undefined;
     C28.version// The Compatibility Key associated with this target = String undefined;
     C28.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C28.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C28.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C28.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C28.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C28.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C28.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C28.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C28.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C28.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C28.getVersion// Get a target-specific Compatibility Key string() returns String
     C28.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C28.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C28.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C28.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C28.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C28.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C28.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C28.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C28.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C28.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C28.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C28.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C28.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C28.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C28.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C28.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C28.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C28.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C28.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C28.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C28.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C28.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C28.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C28.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C28.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C28.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C28.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C28.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C28.alignDirectiveSupported = Bool false;
config C28.ar // module-wide
index URL

Define archiver executable

XDCscript usage meta-domain
const C28.ar = ITarget2.Command {
    cmd: "ar2000",
    opts: "rq"
};
DETAILS
Options:
-r
replace file
-q
quiet mode
config C28.asm // module-wide
index URL

Define assembler executable

XDCscript usage meta-domain
const C28.asm = ITarget2.Command {
    cmd: "cl2000 -c",
    opts: "-v28"
};
DETAILS
Options:
-c
no linking
-v28
compile for c28x.
config C28.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C28.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C28.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C28.bitsPerChar = Int 16;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C28.cc // module-wide
index URL

Define compiler executable

XDCscript usage meta-domain
const C28.cc = ITarget2.Command {
    cmd: "cl2000 -c",
    opts: "-v28"
};
DETAILS
Options:
-c
no linking
-v28
compile for c28x.
config C28.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C28.isa = String "28";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C28.lnk // module-wide
index URL

Define linker executable

XDCscript usage meta-domain
const C28.lnk = ITarget2.Command {
    cmd: "lnk2000",
    opts: ""
};
config C28.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C28.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C28.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C28.name = String "C28";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C28.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C28.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C28.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C28.rts = String "ti.targets.rts2800";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C28.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C28.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".switch",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".ebss",
        "data"
    ],
    [
        ".econst",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".esysmem",
        "data"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C28.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C28.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C28.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C28.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 2,
        align: 2
    },
    t_Float: {
        size: 2,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 1
    },
    t_Int: {
        size: 1,
        align: 1
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 1,
        align: 1
    },
    t_Int32: {
        size: 2,
        align: 2
    },
    t_Int64: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 2,
        align: 2
    },
    t_LDouble: {
        size: 2,
        align: 2
    },
    t_LLong: {
        size: 4,
        align: 2
    },
    t_Ptr: {
        size: 1,
        align: 1
    },
    t_Short: {
        size: 1,
        align: 1
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C28.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C28.suffix = String "28";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C28.vers // module-wide
index URL

Define the vers command

XDCscript usage meta-domain
const C28.vers = ITarget2.Command {
    cmd: "cl2000",
    opts: "--compiler_revision"
};
config C28.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C28.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C28.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C28.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C28.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C28.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C28.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C28.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C28.ccOpts // module-wide
index URL

Compiler options

XDCscript usage meta-domain
C28.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C28.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C28.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C28.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C28.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C28.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C28.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C28.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C28.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C28.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C28.includeOpts = String "-I$(rootDir)/include";
config C28.lnkOpts // module-wide
index URL

Linker options

XDCscript usage meta-domain
C28.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts2800.lib"
};
DETAILS
Options:
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C28.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C28.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C28.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C28.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C28.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C28.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C28.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C28.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C28.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C28.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C28.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C28.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C28.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C28.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C28.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C28.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C28.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C28.asmName(String CName) returns String
C28.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C28.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C28.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C28.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C28.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C28.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C28.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C28.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C28.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C28.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C28.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C28.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C28.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C28.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C28.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C28.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C28.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C28.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C28.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C28.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C28.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C28.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:50 GMT


module ti.targets.C28

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C28.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C28 ========
    20     *  TI C28 default runtime model (little endian)
    21     */
    22    metaonly module C28 inherits ti.targets.ITarget {
    23        override readonly config string name                = "C28";
    24        override readonly config string suffix              = "28";
    25        override readonly config string isa                 = "28";
    26        override readonly config xdc.bld.ITarget.Model model= {endian: "little"};
    27        override readonly config string rts                 = "ti.targets.rts2800";
    28        final override readonly config Bool alignDirectiveSupported = false;
    29
    30        /*!
    31         *  ======== ar ========
    32         *  Define archiver executable
    33         *
    34         *  Options:
    35         *  @p(dlist)
    36         *      -`-r`
    37         *          replace file
    38         *      -`-q`
    39         *          quiet mode
    40         */
    41        override readonly config xdc.bld.ITarget2.Command ar = {
    42            cmd: "ar2000",
    43            opts: "rq"
    44        };
    45
    46        /*!
    47         *  ======== cc ========
    48         *  Define compiler executable
    49         *
    50         *  Options:
    51         *  @p(dlist)
    52         *      -`-c`
    53         *          no linking
    54         *      -`-v28`
    55         *          compile for c28x.
    56         */
    57        override readonly config xdc.bld.ITarget2.Command cc = {
    58            cmd: "cl2000 -c",
    59            opts: "-v28"
    60        };
    61
    62        /*!
    63         *  ======== vers ========
    64         *  Define the vers command
    65         */
    66        override readonly config xdc.bld.ITarget2.Command vers = {
    67            cmd: "cl2000",
    68            opts: "--compiler_revision"
    69        };
    70
    71        /*!
    72         *  ======== asm ========
    73         *  Define assembler executable
    74         *
    75         *  Options:
    76         *  @p(dlist)
    77         *      -`-c`
    78         *          no linking
    79         *      -`-v28`
    80         *          compile for c28x.
    81         *
    82         */
    83        override readonly config xdc.bld.ITarget2.Command asm = {
    84            cmd: "cl2000 -c",
    85            opts: "-v28"
    86        };
    87
    88        /*!
    89         *  Define linker executable
    90         */
    91        override readonly config xdc.bld.ITarget2.Command lnk = {
    92            cmd: "lnk2000",
    93            opts: ""
    94        };
    95
    96        /*!
    97         *  ======== asmOpts ========
    98         *  User configurable assembler options.
    99         *
   100         *  Defaults:
   101         *  @p(dlist)
   102         *      -`-qq`
   103         *          super quiet mode
   104         */
   105        override config xdc.bld.ITarget2.Options asmOpts = {
   106            prefix: "-qq",
   107            suffix: ""
   108        };
   109
   110        /*!
   111         *  ======== ccOpts ========
   112         *  Compiler options
   113         *  @p(dlist)
   114         *      -`-qq`
   115         *          super quiet mode
   116         *      -`-pdsw225`
   117         *          generate a warning for implicitly declared functions; i.e.,
   118         *          functions without prototypes
   119         */
   120        override config xdc.bld.ITarget2.Options ccOpts = {
   121            prefix: "-qq -pdsw225",
   122            suffix: ""
   123        };
   124
   125        /*!
   126         *  ======== lnkOpts ========
   127         *  Linker options
   128         *
   129         *  Options:
   130         *  @p(dlist)
   131         *      -`-q`
   132         *          Quite run
   133         *      -`-u`
   134         *          Place unresolved external symbol into symbol table
   135         *      -`-c`
   136         *          ROM autoinitialization model
   137         *      -`-m`
   138         *          create a map file
   139         *      -`-l`
   140         *          archive library file as linker input
   141         */
   142        override config xdc.bld.ITarget2.Options lnkOpts = {
   143            prefix: "-w -q -u _c_int00",
   144            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts2800.lib"
   145        };
   146
   147        /*  Include search path  */
   148        override config string includeOpts = "-I$(rootDir)/include";
   149
   150        final override readonly config string sectMap[string] = [
   151            [".text", "code"],
   152            [".switch", "code"],
   153            [".data", "data"],
   154            [".cinit", "code"],
   155            [".bss", "data"],
   156            [".ebss", "data"],
   157            [".econst", "code"],
   158            [".const", "code"],
   159            [".stack", "stack"],
   160            [".sysmem", "data"],
   161            [".esysmem", "data"],
   162            [".pinit", "code"],
   163            [".args", "data"],
   164            [".cio", "data"],
   165        ];
   166
   167        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   168            t_IArg          : { size: 2, align: 2 },
   169            t_Char          : { size: 1, align: 1 },
   170            t_Double        : { size: 2, align: 2 },
   171            t_Float         : { size: 2, align: 2 },
   172            t_Fxn           : { size: 2, align: 1 }, /* near */
   173            t_Int           : { size: 1, align: 1 },
   174            t_Int8          : { size: 1, align: 1 },
   175            t_Int16         : { size: 1, align: 1 },
   176            t_Int32         : { size: 2, align: 2 },
   177            t_Int64         : { size: 4, align: 2 },
   178            t_Long          : { size: 2, align: 2 },
   179            t_LDouble       : { size: 2, align: 2 },
   180            t_LLong         : { size: 4, align: 2 },
   181            t_Ptr           : { size: 1, align: 1 },
   182            t_Short         : { size: 1, align: 1 },
   183            t_Size          : { size: 2, align: 2 },
   184        };
   185
   186        override readonly config Int bitsPerChar = 16;
   187    }
   188    /*
   189     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:23; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   190
   191     */
   192


module ti.targets.C28_float

metaonly module ti.targets.C28_float
index URL

TI C28 large model little endian with floating point support (fpu32)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C28_float.xdc
var C28_float = xdc.useModule('ti.targets.C28_float');
module-wide constants & types
    var obj = new C28_float.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C28_float.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C28_float.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C28_float.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C28_float.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C28_float.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C28_float.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C28_float.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C28_float.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C28_float.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C28_float.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C28_float.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C28_float.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const C28_float.ar// Define archiver executable = ITarget2.Command {
        cmd: "ar2000",
        opts: "rq"
    };
    const C28_float.asm// Define assembler executable = ITarget2.Command {
        cmd: "cl2000 -c",
        opts: "-v28 -ml -DLARGE_MODEL=1 --float_support=fpu32"
    };
    const C28_float.base// A target that this target is based upon = ITarget.Module computed value;
    const C28_float.bitsPerChar// The number of bits in a variable of type char = Int 16;
    const C28_float.cc// Define compiler executable = ITarget2.Command {
        cmd: "cl2000 -c",
        opts: "-v28 -DLARGE_MODEL=1 -ml --float_support=fpu32"
    };
    const C28_float.isa// CPU Instruction Set Architecture (ISA) = String "28FP";
    const C28_float.lnk// Define linker executable = ITarget2.Command {
        cmd: "lnk2000",
        opts: ""
    };
    const C28_float.model// Run-time model = ITarget.Model {
        dataModel: "large",
        endian: "little"
    };
    const C28_float.name// Nickname for this target = String "C28_float";
    const C28_float.os// Name of OS required to run programs built for this target = String computed value;
    const C28_float.rts// Name of a run-time support package to include = String "ti.targets.rts2800";
    const C28_float.sectMap// Output section name to segment type mapping = String[string] C28.sectMap;
    const C28_float.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C28_float.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 2,
            align: 2
        },
        t_Float: {
            size: 2,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 1,
            align: 1
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 1,
            align: 1
        },
        t_Int32: {
            size: 2,
            align: 2
        },
        t_Int64: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 2,
            align: 2
        },
        t_LDouble: {
            size: 2,
            align: 2
        },
        t_LLong: {
            size: 4,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 1,
            align: 1
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const C28_float.suffix// Suffix appended to all objs, libraries, and executable = String "28FP";
    const C28_float.vers// Define the vers command = ITarget2.Command {
        cmd: "cl2000",
        opts: "--compiler_revision"
    };
     C28_float.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C28_float.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C28_float.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C28_float.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C28_float.ccOpts// Compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225 -Dfar= ",
        suffix: ""
    };
     C28_float.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "28L"
    ];
     C28_float.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C28_float.execExt// Extension for executables = String undefined;
     C28_float.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C28_float.includeOpts// Default include search path = String "-I$(rootDir)/include";
     C28_float.lnkOpts// Linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts2800_fpu32.lib"
    };
     C28_float.pathPrefix// A prefix to the PATH environment variable = String "";
     C28_float.platform// The default platform name for this target = String undefined;
     C28_float.platforms// A set of platforms that can support this target = String[] [ ];
     C28_float.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C28_float.rootDir// Installation directory for this target's code generation tools = String undefined;
     C28_float.version// The Compatibility Key associated with this target = String undefined;
     C28_float.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C28_float.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C28_float.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C28_float.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C28_float.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C28_float.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C28_float.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C28_float.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C28_float.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C28_float.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C28_float.getVersion// Get a target-specific Compatibility Key string() returns String
     C28_float.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C28_float.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C28_float.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C28_float.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C28_float.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C28_float.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C28_float.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C28_float.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C28_float.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C28_float.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C28_float.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C28_float.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C28_float.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C28_float.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C28_float.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C28_float.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C28_float.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C28_float.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C28_float.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C28_float.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C28_float.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C28_float.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C28_float.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C28_float.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C28_float.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C28_float.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C28_float.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C28_float.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C28_float.alignDirectiveSupported = Bool false;
config C28_float.ar // module-wide
index URL

Define archiver executable

XDCscript usage meta-domain
const C28_float.ar = ITarget2.Command {
    cmd: "ar2000",
    opts: "rq"
};
DETAILS
Options:
-r
replace file
-q
quiet mode
config C28_float.asm // module-wide
index URL

Define assembler executable

XDCscript usage meta-domain
const C28_float.asm = ITarget2.Command {
    cmd: "cl2000 -c",
    opts: "-v28 -ml -DLARGE_MODEL=1 --float_support=fpu32"
};
DETAILS
Options:
-c
no linking
-v28
compile for c28x.
-ml
use large memory model
-DLARGE_MODEL=1
because compiler and BIOS are broken; asembler defines __LARGE_MODEL but BIOS uses LARGE_MODEL
--float_support=fpu32
Enable FPU
config C28_float.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C28_float.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C28_float.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C28_float.bitsPerChar = Int 16;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C28_float.cc // module-wide
index URL

Define compiler executable

XDCscript usage meta-domain
const C28_float.cc = ITarget2.Command {
    cmd: "cl2000 -c",
    opts: "-v28 -DLARGE_MODEL=1 -ml --float_support=fpu32"
};
DETAILS
Options:
-c
no linking
-v28
compile for c28x.
-ml
use large memory model
-DLARGE_MODEL=1
required to use va_arg in large model
--float_support=fpu32
Enable FPU
config C28_float.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C28_float.isa = String "28FP";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C28_float.lnk // module-wide
index URL

Define linker executable

XDCscript usage meta-domain
const C28_float.lnk = ITarget2.Command {
    cmd: "lnk2000",
    opts: ""
};
config C28_float.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C28_float.model = ITarget.Model {
    dataModel: "large",
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C28_float.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C28_float.name = String "C28_float";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C28_float.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C28_float.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C28_float.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C28_float.rts = String "ti.targets.rts2800";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C28_float.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C28_float.sectMap = String[string] C28.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C28_float.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C28_float.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C28_float.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C28_float.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 2,
        align: 2
    },
    t_Float: {
        size: 2,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 1,
        align: 1
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 1,
        align: 1
    },
    t_Int32: {
        size: 2,
        align: 2
    },
    t_Int64: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 2,
        align: 2
    },
    t_LDouble: {
        size: 2,
        align: 2
    },
    t_LLong: {
        size: 4,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 1,
        align: 1
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C28_float.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C28_float.suffix = String "28FP";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C28_float.vers // module-wide
index URL

Define the vers command

XDCscript usage meta-domain
const C28_float.vers = ITarget2.Command {
    cmd: "cl2000",
    opts: "--compiler_revision"
};
config C28_float.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C28_float.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C28_float.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C28_float.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C28_float.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C28_float.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C28_float.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C28_float.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C28_float.ccOpts // module-wide
index URL

Compiler options

XDCscript usage meta-domain
C28_float.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225 -Dfar= ",
    suffix: ""
};
DETAILS
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
-Dfar=
ignore keyword far; this allows one to write code that can be compiled in large model and small model without #ifdef's
config C28_float.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C28_float.compatibleSuffixes = String[] [
    "28L"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C28_float.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C28_float.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C28_float.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C28_float.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C28_float.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C28_float.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C28_float.includeOpts // module-wide
index URL

Default include search path

XDCscript usage meta-domain
C28_float.includeOpts = String "-I$(rootDir)/include";
config C28_float.lnkOpts // module-wide
index URL

Linker options

XDCscript usage meta-domain
C28_float.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts2800_fpu32.lib"
};
DETAILS
Options:
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C28_float.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C28_float.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C28_float.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C28_float.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C28_float.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C28_float.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C28_float.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C28_float.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C28_float.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C28_float.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C28_float.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C28_float.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C28_float.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C28_float.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C28_float.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C28_float.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C28_float.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C28_float.asmName(String CName) returns String
C28_float.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C28_float.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C28_float.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C28_float.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C28_float.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C28_float.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C28_float.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C28_float.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C28_float.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C28_float.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C28_float.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C28_float.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C28_float.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C28_float.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C28_float.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C28_float.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C28_float.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C28_float.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C28_float.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C28_float.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C28_float.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C28_float.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:50 GMT


module ti.targets.C28_float

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C28_float.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C28_float ========
    20     *  TI C28 large model little endian with floating point support (fpu32)
    21     */
    22    metaonly module C28_float inherits ti.targets.ITarget {
    23        override readonly config string name                = "C28_float";
    24        override readonly config string suffix              = "28FP";
    25        override readonly config string isa                 = "28FP";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            dataModel: "large",
    28            endian: "little"
    29        };
    30
    31        override readonly config string rts                 = "ti.targets.rts2800";
    32
    33        /*
    34         *  ======== compatibleSuffixes ========
    35         */
    36        override config String compatibleSuffixes[] = ["28L"];
    37
    38        final override readonly config Bool alignDirectiveSupported = false;
    39
    40        /*!
    41         *  ======== ar ========
    42         *  Define archiver executable
    43         *
    44         *  Options:
    45         *  @p(dlist)
    46         *      -`-r`
    47         *          replace file
    48         *      -`-q`
    49         *          quiet mode
    50         */
    51        override readonly config xdc.bld.ITarget2.Command ar = {
    52            cmd: "ar2000",
    53            opts: "rq"
    54        };
    55
    56
    57        /*!
    58         *  ======== cc ========
    59         *  Define compiler executable
    60         *
    61         *  Options:
    62         *  @p(dlist)
    63         *      -`-c`
    64         *          no linking
    65         *      -`-v28`
    66         *          compile for c28x.
    67         *      -`-ml`
    68         *          use large memory model
    69         *      -`-DLARGE_MODEL=1`
    70         *          required to use va_arg in large model
    71         *      -`--float_support=fpu32`
    72         *          Enable FPU
    73         */
    74        override readonly config xdc.bld.ITarget2.Command cc = {
    75            cmd: "cl2000 -c",
    76            opts: "-v28 -DLARGE_MODEL=1 -ml --float_support=fpu32"
    77        };
    78
    79        /*!
    80         *  ======== vers ========
    81         *  Define the vers command
    82         */
    83        override readonly config xdc.bld.ITarget2.Command vers = {
    84            cmd: "cl2000",
    85            opts: "--compiler_revision"
    86        };
    87
    88
    89        /*!
    90         *  ======== asm ========
    91         *  Define assembler executable
    92         *
    93         *  Options:
    94         *  @p(dlist)
    95         *      -`-c`
    96         *          no linking
    97         *      -`-v28`
    98         *          compile for c28x.
    99         *      -`-ml`
   100         *          use large memory model
   101         *      -`-DLARGE_MODEL=1`
   102         *          because compiler and BIOS are broken; asembler
   103         *          defines __LARGE_MODEL but BIOS uses LARGE_MODEL
   104         *      -`--float_support=fpu32`
   105         *          Enable FPU
   106         */
   107        override readonly config xdc.bld.ITarget2.Command asm = {
   108            cmd: "cl2000 -c",
   109            opts: "-v28 -ml -DLARGE_MODEL=1 --float_support=fpu32"
   110        };
   111
   112
   113        /*!
   114         *  ======== lnk ========
   115         *  Define linker executable
   116         */
   117        override readonly config xdc.bld.ITarget2.Command lnk = {
   118            cmd: "lnk2000",
   119            opts: ""
   120        };
   121
   122
   123        /*!
   124         *  ======== asmOpts ========
   125         *  User configurable assembler options.
   126         *
   127         *  Defaults:
   128         *  @p(dlist)
   129         *      -`-qq`
   130         *          super quiet mode
   131         */
   132        override config xdc.bld.ITarget2.Options asmOpts = {
   133            prefix: "-qq",
   134            suffix: ""
   135        };
   136
   137        /*!
   138         *  ======== ccOpts ========
   139         *  Compiler options
   140         *  @p(dlist)
   141         *      -`-qq`
   142         *          super quiet mode
   143         *      -`-pdsw225`
   144         *          generate a warning for implicitly declared functions; i.e.,
   145         *          functions without prototypes
   146         *      -`-Dfar= `
   147         *          ignore keyword far; this allows one to write code that can
   148         *          be compiled in large model and small model without #ifdef's
   149         */
   150        override config xdc.bld.ITarget2.Options ccOpts = {
   151            prefix: "-qq -pdsw225 -Dfar= ",
   152            suffix: ""
   153        };
   154
   155
   156        /*!
   157         *  ======== lnkOpts ========
   158         *  Linker options
   159         *
   160         *  Options:
   161         *  @p(dlist)
   162         *      -`-q`
   163         *          Quite run
   164         *      -`-u`
   165         *          Place unresolved external symbol into symbol table
   166         *      -`-c`
   167         *          ROM autoinitialization model
   168         *      -`-m`
   169         *          create a map file
   170         *      -`-l`
   171         *          archive library file as linker input
   172         */
   173        override config xdc.bld.ITarget2.Options lnkOpts = {
   174            prefix: "-w -q -u _c_int00",
   175            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts2800_fpu32.lib"
   176        };
   177
   178        /*!
   179         *  ======== includeOpts ========
   180         *  Default include search path
   181         */
   182        override config string includeOpts = "-I$(rootDir)/include";
   183
   184        final override readonly config string sectMap[string] =
   185            ti.targets.C28.sectMap;
   186
   187        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   188            t_IArg          : { size: 2, align: 2 },
   189            t_Char          : { size: 1, align: 1 },
   190            t_Double        : { size: 2, align: 2 },
   191            t_Float         : { size: 2, align: 2 },
   192            t_Fxn           : { size: 2, align: 2 }, /* far */
   193            t_Int           : { size: 1, align: 1 },
   194            t_Int8          : { size: 1, align: 1 },
   195            t_Int16         : { size: 1, align: 1 },
   196            t_Int32         : { size: 2, align: 2 },
   197            t_Int64         : { size: 4, align: 2 },
   198            t_Long          : { size: 2, align: 2 },
   199            t_LDouble       : { size: 2, align: 2 },
   200            t_LLong         : { size: 4, align: 2 },
   201            t_Ptr           : { size: 2, align: 2 },
   202            t_Short         : { size: 1, align: 1 },
   203            t_Size          : { size: 2, align: 2 },
   204        };
   205
   206        override readonly config Int bitsPerChar = 16;
   207    }
   208    /*
   209     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:23; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   210
   211     */
   212


module ti.targets.C28_large

metaonly module ti.targets.C28_large
index URL

TI C28 large model little endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C28_large.xdc
var C28_large = xdc.useModule('ti.targets.C28_large');
module-wide constants & types
    var obj = new C28_large.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C28_large.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C28_large.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C28_large.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C28_large.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C28_large.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C28_large.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C28_large.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C28_large.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C28_large.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C28_large.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C28_large.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C28_large.alignDirectiveSupported// The compiler supports an align directive = Bool false;
    const C28_large.ar// Define archiver executable = ITarget2.Command {
        cmd: "ar2000",
        opts: "rq"
    };
    const C28_large.asm// Define assembler executable = ITarget2.Command {
        cmd: "cl2000 -c",
        opts: "-v28 -ml -DLARGE_MODEL=1"
    };
    const C28_large.base// A target that this target is based upon = ITarget.Module computed value;
    const C28_large.bitsPerChar// The number of bits in a variable of type char = Int 16;
    const C28_large.cc// Define compiler executable = ITarget2.Command {
        cmd: "cl2000 -c",
        opts: "-v28 -DLARGE_MODEL=1 -ml"
    };
    const C28_large.isa// CPU Instruction Set Architecture (ISA) = String "28";
    const C28_large.lnk// Define linker executable = ITarget2.Command {
        cmd: "lnk2000",
        opts: ""
    };
    const C28_large.model// Run-time model = ITarget.Model {
        dataModel: "large",
        endian: "little"
    };
    const C28_large.name// Nickname for this target = String "C28_large";
    const C28_large.os// Name of OS required to run programs built for this target = String computed value;
    const C28_large.rts// Name of a run-time support package to include = String "ti.targets.rts2800";
    const C28_large.sectMap// Output section name to segment type mapping = String[string] C28.sectMap;
    const C28_large.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C28_large.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 2,
            align: 2
        },
        t_Float: {
            size: 2,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 1,
            align: 1
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 1,
            align: 1
        },
        t_Int32: {
            size: 2,
            align: 2
        },
        t_Int64: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 2,
            align: 2
        },
        t_LDouble: {
            size: 2,
            align: 2
        },
        t_LLong: {
            size: 4,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 1,
            align: 1
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const C28_large.suffix// Suffix appended to all objs, libraries, and executable = String "28L";
    const C28_large.vers// Define the vers command = ITarget2.Command {
        cmd: "cl2000",
        opts: "--compiler_revision"
    };
     C28_large.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C28_large.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C28_large.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C28_large.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C28_large.ccOpts// Compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225 -Dfar= ",
        suffix: ""
    };
     C28_large.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C28_large.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C28_large.execExt// Extension for executables = String undefined;
     C28_large.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C28_large.includeOpts// Default include search path = String "-I$(rootDir)/include";
     C28_large.lnkOpts// Linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts2800_ml.lib"
    };
     C28_large.pathPrefix// A prefix to the PATH environment variable = String "";
     C28_large.platform// The default platform name for this target = String undefined;
     C28_large.platforms// A set of platforms that can support this target = String[] [ ];
     C28_large.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C28_large.rootDir// Installation directory for this target's code generation tools = String undefined;
     C28_large.version// The Compatibility Key associated with this target = String undefined;
     C28_large.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C28_large.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C28_large.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C28_large.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C28_large.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C28_large.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C28_large.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C28_large.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C28_large.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C28_large.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C28_large.getVersion// Get a target-specific Compatibility Key string() returns String
     C28_large.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C28_large.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C28_large.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C28_large.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C28_large.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C28_large.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C28_large.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C28_large.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C28_large.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C28_large.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C28_large.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C28_large.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C28_large.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C28_large.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C28_large.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C28_large.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C28_large.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C28_large.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C28_large.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C28_large.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C28_large.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C28_large.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C28_large.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C28_large.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C28_large.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C28_large.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C28_large.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C28_large.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C28_large.alignDirectiveSupported = Bool false;
config C28_large.ar // module-wide
index URL

Define archiver executable

XDCscript usage meta-domain
const C28_large.ar = ITarget2.Command {
    cmd: "ar2000",
    opts: "rq"
};
DETAILS
Options:
-r
replace file
-q
quiet mode
config C28_large.asm // module-wide
index URL

Define assembler executable

XDCscript usage meta-domain
const C28_large.asm = ITarget2.Command {
    cmd: "cl2000 -c",
    opts: "-v28 -ml -DLARGE_MODEL=1"
};
DETAILS
Options:
-c
no linking
-v28
compile for c28x.
-ml
use large memory model
-DLARGE_MODEL=1
because compiler and BIOS are broken; asembler defines __LARGE_MODEL but BIOS uses LARGE_MODEL
config C28_large.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C28_large.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C28_large.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C28_large.bitsPerChar = Int 16;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C28_large.cc // module-wide
index URL

Define compiler executable

XDCscript usage meta-domain
const C28_large.cc = ITarget2.Command {
    cmd: "cl2000 -c",
    opts: "-v28 -DLARGE_MODEL=1 -ml"
};
DETAILS
Options:
-c
no linking
-v28
compile for c28x.
-ml
use large memory model
-DLARGE_MODEL=1
required to use va_arg in large model
config C28_large.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C28_large.isa = String "28";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C28_large.lnk // module-wide
index URL

Define linker executable

XDCscript usage meta-domain
const C28_large.lnk = ITarget2.Command {
    cmd: "lnk2000",
    opts: ""
};
config C28_large.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C28_large.model = ITarget.Model {
    dataModel: "large",
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C28_large.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C28_large.name = String "C28_large";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C28_large.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C28_large.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C28_large.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C28_large.rts = String "ti.targets.rts2800";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C28_large.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C28_large.sectMap = String[string] C28.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C28_large.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C28_large.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C28_large.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C28_large.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 2,
        align: 2
    },
    t_Float: {
        size: 2,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 1,
        align: 1
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 1,
        align: 1
    },
    t_Int32: {
        size: 2,
        align: 2
    },
    t_Int64: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 2,
        align: 2
    },
    t_LDouble: {
        size: 2,
        align: 2
    },
    t_LLong: {
        size: 4,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 1,
        align: 1
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C28_large.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C28_large.suffix = String "28L";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C28_large.vers // module-wide
index URL

Define the vers command

XDCscript usage meta-domain
const C28_large.vers = ITarget2.Command {
    cmd: "cl2000",
    opts: "--compiler_revision"
};
config C28_large.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C28_large.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C28_large.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C28_large.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C28_large.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C28_large.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C28_large.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C28_large.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C28_large.ccOpts // module-wide
index URL

Compiler options

XDCscript usage meta-domain
C28_large.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225 -Dfar= ",
    suffix: ""
};
DETAILS
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
-Dfar=
ignore keyword far; this allows one to write code that can be compiled in large model and small model without #ifdef's
config C28_large.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C28_large.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C28_large.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C28_large.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C28_large.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C28_large.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C28_large.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C28_large.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C28_large.includeOpts // module-wide
index URL

Default include search path

XDCscript usage meta-domain
C28_large.includeOpts = String "-I$(rootDir)/include";
config C28_large.lnkOpts // module-wide
index URL

Linker options

XDCscript usage meta-domain
C28_large.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts2800_ml.lib"
};
DETAILS
Options:
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C28_large.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C28_large.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C28_large.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C28_large.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C28_large.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C28_large.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C28_large.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C28_large.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C28_large.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C28_large.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C28_large.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C28_large.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C28_large.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C28_large.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C28_large.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C28_large.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C28_large.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C28_large.asmName(String CName) returns String
C28_large.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C28_large.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C28_large.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C28_large.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C28_large.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C28_large.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C28_large.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C28_large.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C28_large.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C28_large.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C28_large.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C28_large.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C28_large.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C28_large.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C28_large.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C28_large.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C28_large.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C28_large.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C28_large.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C28_large.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C28_large.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C28_large.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:50 GMT


module ti.targets.C28_large

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C28_large.xdc ========
    15     *
    16     */
    17
    18
    19    /*!
    20     *  ======== C28_large ========
    21     *  TI C28 large model little endian
    22     */
    23    metaonly module C28_large inherits ti.targets.ITarget {
    24        override readonly config string name                = "C28_large";
    25        override readonly config string suffix              = "28L";
    26        override readonly config string isa                 = "28";
    27        override readonly config xdc.bld.ITarget.Model model    = {dataModel: "large", endian: "little"};
    28        override readonly config string rts                 = "ti.targets.rts2800";
    29        final override readonly config Bool alignDirectiveSupported = false;
    30
    31        /*!
    32         *  ======== ar ========
    33         *  Define archiver executable
    34         *
    35         *  Options:
    36         *  @p(dlist)
    37         *      -`-r`
    38         *          replace file
    39         *      -`-q`
    40         *          quiet mode
    41         */
    42        override readonly config xdc.bld.ITarget2.Command ar = {
    43            cmd: "ar2000",
    44            opts: "rq"
    45        };
    46
    47
    48        /*!
    49         *  ======== cc ========
    50         *  Define compiler executable
    51         *
    52         *  Options:
    53         *  @p(dlist)
    54         *      -`-c`
    55         *          no linking
    56         *      -`-v28`
    57         *          compile for c28x.
    58         *      -`-ml`
    59         *          use large memory model
    60         *      -`-DLARGE_MODEL=1`
    61         *          required to use va_arg in large model
    62         */
    63        override readonly config xdc.bld.ITarget2.Command cc = {
    64            cmd: "cl2000 -c",
    65            opts: "-v28 -DLARGE_MODEL=1 -ml"
    66        };
    67
    68        /*!
    69         *  ======== vers ========
    70         *  Define the vers command
    71         */
    72        override readonly config xdc.bld.ITarget2.Command vers = {
    73            cmd: "cl2000",
    74            opts: "--compiler_revision"
    75        };
    76
    77
    78        /*!
    79         *  ======== asm ========
    80         *  Define assembler executable
    81         *
    82         *  Options:
    83         *  @p(dlist)
    84         *      -`-c`
    85         *          no linking
    86         *      -`-v28`
    87         *          compile for c28x.
    88         *      -`-ml`
    89         *          use large memory model
    90         *      -`-DLARGE_MODEL=1`
    91         *          because compiler and BIOS are broken; asembler
    92         *          defines __LARGE_MODEL but BIOS uses LARGE_MODEL
    93         *
    94         */
    95        override readonly config xdc.bld.ITarget2.Command asm = {
    96            cmd: "cl2000 -c",
    97            opts: "-v28 -ml -DLARGE_MODEL=1"
    98        };
    99
   100
   101        /*!
   102         *  ======== lnk ========
   103         *  Define linker executable
   104         */
   105        override readonly config xdc.bld.ITarget2.Command lnk = {
   106            cmd: "lnk2000",
   107            opts: ""
   108        };
   109
   110
   111        /*!
   112         *  ======== asmOpts ========
   113         *  User configurable assembler options.
   114         *
   115         *  Defaults:
   116         *  @p(dlist)
   117         *      -`-qq`
   118         *          super quiet mode
   119         */
   120        override config xdc.bld.ITarget2.Options asmOpts = {
   121            prefix: "-qq",
   122            suffix: ""
   123        };
   124
   125        /*!
   126         *  ======== ccOpts ========
   127         *  Compiler options
   128         *  @p(dlist)
   129         *      -`-qq`
   130         *          super quiet mode
   131         *      -`-pdsw225`
   132         *          generate a warning for implicitly declared functions; i.e.,
   133         *          functions without prototypes
   134         *      -`-Dfar= `
   135         *          ignore keyword far; this allows one to write code that can
   136         *          be compiled in large model and small model without #ifdef's
   137         */
   138        override config xdc.bld.ITarget2.Options ccOpts = {
   139            prefix: "-qq -pdsw225 -Dfar= ",
   140            suffix: ""
   141        };
   142
   143
   144        /*!
   145         *  ======== lnkOpts ========
   146         *  Linker options
   147         *
   148         *  Options:
   149         *  @p(dlist)
   150         *      -`-q`
   151         *          Quite run
   152         *      -`-u`
   153         *          Place unresolved external symbol into symbol table
   154         *      -`-c`
   155         *          ROM autoinitialization model
   156         *      -`-m`
   157         *          create a map file
   158         *      -`-l`
   159         *          archive library file as linker input
   160         */
   161        override config xdc.bld.ITarget2.Options lnkOpts = {
   162            prefix: "-w -q -u _c_int00",
   163            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts2800_ml.lib"
   164        };
   165
   166        /*!
   167         *  ======== includeOpts ========
   168         *  Default include search path
   169         */
   170        override config string includeOpts = "-I$(rootDir)/include";
   171
   172        final override readonly config string sectMap[string] =
   173            ti.targets.C28.sectMap;
   174
   175        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   176            t_IArg          : { size: 2, align: 2 },
   177            t_Char          : { size: 1, align: 1 },
   178            t_Double        : { size: 2, align: 2 },
   179            t_Float         : { size: 2, align: 2 },
   180            t_Fxn           : { size: 2, align: 2 }, /* far */
   181            t_Int           : { size: 1, align: 1 },
   182            t_Int8          : { size: 1, align: 1 },
   183            t_Int16         : { size: 1, align: 1 },
   184            t_Int32         : { size: 2, align: 2 },
   185            t_Int64         : { size: 4, align: 2 },
   186            t_Long          : { size: 2, align: 2 },
   187            t_LDouble       : { size: 2, align: 2 },
   188            t_LLong         : { size: 4, align: 2 },
   189            t_Ptr           : { size: 2, align: 2 },
   190            t_Short         : { size: 1, align: 1 },
   191            t_Size          : { size: 2, align: 2 },
   192        };
   193
   194        override readonly config Int bitsPerChar = 16;
   195    }
   196    /*
   197     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:23; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   198
   199     */
   200


module ti.targets.C54

metaonly module ti.targets.C54
index URL

TI C54 default runtime model

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C54.xdc
var C54 = xdc.useModule('ti.targets.C54');
module-wide constants & types
    var obj = new C54.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C54.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C54.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C54.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C54.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C54.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C54.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C54.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C54.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C54.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C54.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C54.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C54.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C54.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar500",
        opts: "rq"
    };
    const C54.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl500 -c",
        opts: ""
    };
    const C54.base// A target that this target is based upon = ITarget.Module computed value;
    const C54.bitsPerChar// The number of bits in a variable of type char = Int 16;
    const C54.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl500 -c",
        opts: ""
    };
    const C54.isa// CPU Instruction Set Architecture (ISA) = String "54";
    const C54.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk500",
        opts: ""
    };
    const C54.model// Run-time model = ITarget.Model { };
    const C54.name// Nickname for this target = String "C54";
    const C54.os// Name of OS required to run programs built for this target = String computed value;
    const C54.rts// Name of a run-time support package to include = String "ti.targets.rts5400";
    const C54.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".switch",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const C54.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C54.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 2,
            align: 2
        },
        t_Float: {
            size: 2,
            align: 2
        },
        t_Fxn: {
            size: 1,
            align: 1
        },
        t_Int: {
            size: 1,
            align: 1
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 1,
            align: 1
        },
        t_Int32: {
            size: 2,
            align: 2
        },
        t_Long: {
            size: 2,
            align: 2
        },
        t_LDouble: {
            size: 2,
            align: 2
        },
        t_Ptr: {
            size: 1,
            align: 1
        },
        t_Short: {
            size: 1,
            align: 1
        },
        t_Size: {
            size: 1,
            align: 1
        }
    };
    const C54.suffix// Suffix appended to all objs, libraries, and executable = String "54";
    const C54.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl500",
        opts: "--compiler_revision"
    };
     C54.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C54.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C54.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C54.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     C54.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C54.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C54.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C54.execExt// Extension for executables = String undefined;
     C54.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C54.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C54.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts500.lib"
    };
     C54.pathPrefix// A prefix to the PATH environment variable = String "";
     C54.platform// The default platform name for this target = String undefined;
     C54.platforms// A set of platforms that can support this target = String[] [ ];
     C54.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf"
                }
            }
        ]
    ];
     C54.rootDir// Installation directory for this target's code generation tools = String undefined;
     C54.version// The Compatibility Key associated with this target = String undefined;
     C54.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C54.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C54.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C54.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C54.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C54.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C54.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C54.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C54.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C54.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C54.getVersion// Get a target-specific Compatibility Key string() returns String
     C54.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C54.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C54.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C54.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C54.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C54.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C54.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C54.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C54.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C54.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C54.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C54.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C54.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C54.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C54.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C54.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C54.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C54.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C54.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C54.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C54.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C54.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C54.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C54.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C54.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C54.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C54.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C54.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C54.alignDirectiveSupported = Bool true;
config C54.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C54.ar = ITarget2.Command {
    cmd: "ar500",
    opts: "rq"
};
config C54.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C54.asm = ITarget2.Command {
    cmd: "cl500 -c",
    opts: ""
};
config C54.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C54.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C54.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C54.bitsPerChar = Int 16;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C54.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C54.cc = ITarget2.Command {
    cmd: "cl500 -c",
    opts: ""
};
config C54.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C54.isa = String "54";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C54.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C54.lnk = ITarget2.Command {
    cmd: "lnk500",
    opts: ""
};
config C54.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C54.model = ITarget.Model { };
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C54.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C54.name = String "C54";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C54.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C54.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C54.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C54.rts = String "ti.targets.rts5400";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C54.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C54.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".switch",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C54.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C54.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C54.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C54.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 2,
        align: 2
    },
    t_Float: {
        size: 2,
        align: 2
    },
    t_Fxn: {
        size: 1,
        align: 1
    },
    t_Int: {
        size: 1,
        align: 1
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 1,
        align: 1
    },
    t_Int32: {
        size: 2,
        align: 2
    },
    t_Long: {
        size: 2,
        align: 2
    },
    t_LDouble: {
        size: 2,
        align: 2
    },
    t_Ptr: {
        size: 1,
        align: 1
    },
    t_Short: {
        size: 1,
        align: 1
    },
    t_Size: {
        size: 1,
        align: 1
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C54.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C54.suffix = String "54";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C54.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C54.vers = ITarget2.Command {
    cmd: "cl500",
    opts: "--compiler_revision"
};
config C54.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C54.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C54.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C54.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C54.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C54.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C54.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C54.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C54.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C54.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C54.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C54.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C54.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C54.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C54.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C54.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C54.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C54.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C54.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C54.includeOpts = String "-I$(rootDir)/include";
config C54.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C54.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts500.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C54.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C54.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C54.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C54.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C54.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C54.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C54.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C54.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C54.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C54.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C54.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C54.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C54.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C54.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C54.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C54.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C54.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C54.asmName(String CName) returns String
C54.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C54.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C54.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C54.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C54.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C54.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C54.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C54.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C54.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C54.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C54.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C54.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C54.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C54.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C54.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C54.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C54.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C54.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C54.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C54.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C54.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C54.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:51 GMT


module ti.targets.C54

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C54.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C54 ========
    20     *  TI C54 default runtime model
    21     */
    22    metaonly module C54 inherits ti.targets.ITarget {
    23        override readonly config string name                = "C54";
    24        override readonly config string suffix              = "54";
    25        override readonly config string isa                 = "54";
    26        override readonly config xdc.bld.ITarget.Model model        = {};
    27        override readonly config string rts                 = "ti.targets.rts5400";
    28
    29        override readonly config xdc.bld.ITarget2.Command ar = {
    30            cmd: "ar500",
    31            opts: "rq"
    32        };
    33
    34        override readonly config xdc.bld.ITarget2.Command cc = {
    35            cmd: "cl500 -c",
    36            opts: ""
    37        };
    38
    39        override readonly config xdc.bld.ITarget2.Command vers = {
    40            cmd: "cl500",
    41            opts: "--compiler_revision"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command asm = {
    45            cmd: "cl500 -c",
    46            opts: ""
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command lnk = {
    50            cmd: "lnk500",
    51            opts: ""
    52        };
    53
    54        /*!
    55         *  ======== asmOpts ========
    56         *  User configurable assembler options.
    57         *
    58         *  Defaults:
    59         *  @p(dlist)
    60         *      -`-qq`
    61         *          super quiet mode
    62         */
    63        override config xdc.bld.ITarget2.Options asmOpts = {
    64            prefix: "-qq",
    65            suffix: ""
    66        };
    67
    68        /*!
    69         *  ======== ccOpts ========
    70         *  User configurable compiler options.
    71         *
    72         *  Defaults:
    73         *  @p(dlist)
    74         *      -`-qq`
    75         *          super quiet mode
    76         *      -`-pdsw225`
    77         *          generate a warning for implicitly declared functions; i.e.,
    78         *          functions without prototypes
    79         */
    80        override config xdc.bld.ITarget2.Options ccOpts = {
    81            prefix: "-qq -pdsw225",
    82            suffix: ""
    83        };
    84
    85        /*!
    86         *  ======== ccConfigOpts ========
    87         *  User configurable compiler options for the generated config C file.
    88         */
    89        override config xdc.bld.ITarget2.Options ccConfigOpts = {
    90            prefix: "$(ccOpts.prefix)",
    91            suffix: "$(ccOpts.suffix)"
    92        };
    93
    94        /*!
    95         *  ======== lnkOpts ========
    96         *  User configurable linker options.
    97         *
    98         *  Defaults:
    99         *  @p(dlist)
   100         *      -`-w`
   101         *          Display linker warnings
   102         *      -`-q`
   103         *          Quite run
   104         *      -`-u`
   105         *          Place unresolved external symbol into symbol table
   106         *      -`-c`
   107         *          ROM autoinitialization model
   108         *      -`-m`
   109         *          create a map file
   110         *      -`-l`
   111         *          archive library file as linker input
   112         */
   113        override config xdc.bld.ITarget2.Options lnkOpts = {
   114            prefix: "-w -q -u _c_int00",
   115            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts500.lib"
   116        };
   117
   118        /*!
   119         *  ======== profiles ========
   120         *  Standard options profiles for the TI tool-chain.
   121         */
   122        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   123            ["debug", {
   124                compileOpts: {
   125                    copts: "-g",
   126                    defs:  "-D_DEBUG_=1",
   127                }
   128            }],
   129            ["release", {
   130                compileOpts: {
   131                    copts: "-O2",
   132                },
   133            }],
   134            ["profile", {
   135                compileOpts: {
   136                    copts: "-gp",
   137                },
   138            }],
   139            ["coverage", {
   140                compileOpts: {
   141                    copts: "-gp",
   142                },
   143            }],
   144            ["whole_program", {
   145                compileOpts: {
   146                    copts: "-oe -O2",
   147                },
   148            }],
   149            ["whole_program_debug", {
   150                compileOpts: {
   151                    copts: "-oe --symdebug:dwarf",
   152                },
   153            }],
   154        ];
   155
   156        override config string includeOpts = "-I$(rootDir)/include";
   157
   158        final override readonly config string sectMap[string] = [
   159            [".text", "code"],
   160            [".switch", "code"],
   161            [".cinit", "code"],
   162            [".pinit", "code"],
   163
   164            [".stack", "stack"],
   165            [".bss", "data"],
   166            [".const", "data"],
   167            [".sysmem", "data"],
   168            [".data", "data"],
   169            [".far", "data"],
   170            [".args", "data"],
   171            [".cio", "data"],
   172        ];
   173
   174        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   175            t_IArg          : { size: 2, align: 2 },
   176            t_Char          : { size: 1, align: 1 },
   177            t_Double        : { size: 2, align: 2 },
   178            t_Float         : { size: 2, align: 2 },
   179            t_Fxn           : { size: 1, align: 1 }, /* near */
   180            t_Int           : { size: 1, align: 1 },
   181            t_Int8          : { size: 1, align: 1 },
   182            t_Int16         : { size: 1, align: 1 },
   183            t_Int32         : { size: 2, align: 2 },
   184            t_Long          : { size: 2, align: 2 },
   185            t_LDouble       : { size: 2, align: 2 },
   186            t_Ptr           : { size: 1, align: 1 },
   187            t_Short         : { size: 1, align: 1 },
   188            t_Size          : { size: 1, align: 1 },
   189        };
   190
   191        override readonly config Int bitsPerChar = 16;
   192    };
   193    /*
   194     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:23; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   195
   196     */
   197


module ti.targets.C54_far

metaonly module ti.targets.C54_far
index URL

TI C54 far model

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C54_far.xdc
var C54_far = xdc.useModule('ti.targets.C54_far');
module-wide constants & types
    var obj = new C54_far.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C54_far.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C54_far.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C54_far.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C54_far.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C54_far.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C54_far.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C54_far.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C54_far.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C54_far.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C54_far.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C54_far.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C54_far.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C54_far.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar500",
        opts: "rq"
    };
    const C54_far.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl500 -c",
        opts: "-mf -v548"
    };
    const C54_far.base// A target that this target is based upon = ITarget.Module C54.module;
    const C54_far.bitsPerChar// The number of bits in a variable of type char = Int 16;
    const C54_far.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl500 -c",
        opts: "-mf -v548"
    };
    const C54_far.isa// CPU Instruction Set Architecture (ISA) = String "54";
    const C54_far.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk500",
        opts: ""
    };
    const C54_far.model// Run-time model = ITarget.Model {
        codeModel: "far"
    };
    const C54_far.name// Nickname for this target = String "C54_far";
    const C54_far.os// Name of OS required to run programs built for this target = String computed value;
    const C54_far.rts// Name of a run-time support package to include = String "ti.targets.rts5400";
    const C54_far.sectMap// Output section name to segment type mapping = String[string] C54.sectMap;
    const C54_far.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C54_far.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 2,
            align: 2
        },
        t_Float: {
            size: 2,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 1,
            align: 1
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 1,
            align: 1
        },
        t_Int32: {
            size: 2,
            align: 2
        },
        t_Long: {
            size: 2,
            align: 2
        },
        t_LDouble: {
            size: 2,
            align: 2
        },
        t_Ptr: {
            size: 1,
            align: 1
        },
        t_Short: {
            size: 1,
            align: 1
        },
        t_Size: {
            size: 1,
            align: 1
        }
    };
    const C54_far.suffix// Suffix appended to all objs, libraries, and executable = String "54f";
    const C54_far.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl500",
        opts: "--compiler_revision"
    };
     C54_far.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C54_far.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C54_far.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C54_far.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     C54_far.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C54_far.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C54_far.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C54_far.execExt// Extension for executables = String undefined;
     C54_far.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C54_far.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C54_far.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts500EXT.lib"
    };
     C54_far.pathPrefix// A prefix to the PATH environment variable = String "";
     C54_far.platform// The default platform name for this target = String undefined;
     C54_far.platforms// A set of platforms that can support this target = String[] [ ];
     C54_far.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf"
                }
            }
        ]
    ];
     C54_far.rootDir// Installation directory for this target's code generation tools = String undefined;
     C54_far.version// The Compatibility Key associated with this target = String undefined;
     C54_far.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C54_far.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C54_far.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C54_far.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C54_far.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C54_far.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C54_far.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C54_far.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C54_far.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C54_far.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C54_far.getVersion// Get a target-specific Compatibility Key string() returns String
     C54_far.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C54_far.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C54_far.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C54_far.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C54_far.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C54_far.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C54_far.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C54_far.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C54_far.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C54_far.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C54_far.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C54_far.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C54_far.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C54_far.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C54_far.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C54_far.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C54_far.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C54_far.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C54_far.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C54_far.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C54_far.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C54_far.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C54_far.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C54_far.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C54_far.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C54_far.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C54_far.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C54_far.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C54_far.alignDirectiveSupported = Bool true;
config C54_far.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C54_far.ar = ITarget2.Command {
    cmd: "ar500",
    opts: "rq"
};
config C54_far.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C54_far.asm = ITarget2.Command {
    cmd: "cl500 -c",
    opts: "-mf -v548"
};
config C54_far.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C54_far.base = ITarget.Module C54.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C54_far.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C54_far.bitsPerChar = Int 16;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C54_far.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C54_far.cc = ITarget2.Command {
    cmd: "cl500 -c",
    opts: "-mf -v548"
};
config C54_far.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C54_far.isa = String "54";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C54_far.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C54_far.lnk = ITarget2.Command {
    cmd: "lnk500",
    opts: ""
};
config C54_far.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C54_far.model = ITarget.Model {
    codeModel: "far"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C54_far.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C54_far.name = String "C54_far";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C54_far.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C54_far.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C54_far.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C54_far.rts = String "ti.targets.rts5400";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C54_far.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C54_far.sectMap = String[string] C54.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C54_far.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C54_far.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C54_far.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C54_far.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 2,
        align: 2
    },
    t_Float: {
        size: 2,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 1,
        align: 1
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 1,
        align: 1
    },
    t_Int32: {
        size: 2,
        align: 2
    },
    t_Long: {
        size: 2,
        align: 2
    },
    t_LDouble: {
        size: 2,
        align: 2
    },
    t_Ptr: {
        size: 1,
        align: 1
    },
    t_Short: {
        size: 1,
        align: 1
    },
    t_Size: {
        size: 1,
        align: 1
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C54_far.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C54_far.suffix = String "54f";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C54_far.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C54_far.vers = ITarget2.Command {
    cmd: "cl500",
    opts: "--compiler_revision"
};
config C54_far.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C54_far.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C54_far.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C54_far.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C54_far.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C54_far.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C54_far.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C54_far.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C54_far.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C54_far.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C54_far.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C54_far.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C54_far.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C54_far.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C54_far.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C54_far.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C54_far.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C54_far.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C54_far.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C54_far.includeOpts = String "-I$(rootDir)/include";
config C54_far.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C54_far.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts500EXT.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C54_far.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C54_far.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C54_far.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C54_far.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C54_far.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C54_far.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C54_far.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C54_far.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C54_far.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C54_far.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C54_far.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C54_far.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C54_far.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C54_far.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C54_far.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C54_far.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C54_far.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C54_far.asmName(String CName) returns String
C54_far.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C54_far.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C54_far.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C54_far.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C54_far.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C54_far.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C54_far.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C54_far.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C54_far.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C54_far.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C54_far.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C54_far.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C54_far.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C54_far.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C54_far.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C54_far.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C54_far.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C54_far.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C54_far.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C54_far.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C54_far.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C54_far.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:51 GMT


module ti.targets.C54_far

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C54_far.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C54_far ========
    20     *  TI C54 far model
    21     */
    22    metaonly module C54_far inherits ti.targets.ITarget {
    23        override readonly config string name                = "C54_far";
    24        override readonly config string suffix              = "54f";
    25        override readonly config string isa                 = "54";
    26        override readonly config xdc.bld.ITarget.Model model= {codeModel: "far"};
    27        override readonly config string rts                 = "ti.targets.rts5400";
    28
    29        override readonly config xdc.bld.ITarget.Module base= ti.targets.C54;
    30
    31        override readonly config xdc.bld.ITarget2.Command ar = {
    32            cmd: "ar500",
    33            opts: "rq"
    34        };
    35
    36        override readonly config xdc.bld.ITarget2.Command cc = {
    37            cmd: "cl500 -c",
    38            opts: "-mf -v548"
    39        };
    40
    41        override readonly config xdc.bld.ITarget2.Command vers = {
    42            cmd: "cl500",
    43            opts: "--compiler_revision"
    44        };
    45
    46        override readonly config xdc.bld.ITarget2.Command asm = {
    47            cmd: "cl500 -c",
    48            opts: "-mf -v548"
    49        };
    50
    51        override readonly config xdc.bld.ITarget2.Command lnk = {
    52            cmd: "lnk500",
    53            opts: ""
    54        };
    55
    56        /*!
    57         *  ======== asmOpts ========
    58         *  User configurable assembler options.
    59         *
    60         *  Defaults:
    61         *  @p(dlist)
    62         *      -`-qq`
    63         *          super quiet mode
    64         */
    65        override config xdc.bld.ITarget2.Options asmOpts = {
    66            prefix: "-qq",
    67            suffix: ""
    68        };
    69
    70        /*!
    71         *  ======== ccOpts ========
    72         *  User configurable compiler options.
    73         *
    74         *  Defaults:
    75         *  @p(dlist)
    76         *      -`-qq`
    77         *          super quiet mode
    78         *      -`-pdsw225`
    79         *          generate a warning for implicitly declared functions; i.e.,
    80         *          functions without prototypes
    81         */
    82        override config xdc.bld.ITarget2.Options ccOpts = {
    83            prefix: "-qq -pdsw225",
    84            suffix: ""
    85        };
    86
    87        /*!
    88         *  ======== ccConfigOpts ========
    89         *  User configurable compiler options for the generated config C file.
    90         */
    91        override config xdc.bld.ITarget2.Options ccConfigOpts = {
    92            prefix: "$(ccOpts.prefix)",
    93            suffix: "$(ccOpts.suffix)"
    94        };
    95
    96        /*!
    97         *  ======== lnkOpts ========
    98         *  User configurable linker options.
    99         *
   100         *  Defaults:
   101         *  @p(dlist)
   102         *      -`-w`
   103         *          Display linker warnings
   104         *      -`-q`
   105         *          Quite run
   106         *      -`-u`
   107         *          Place unresolved external symbol into symbol table
   108         *      -`-c`
   109         *          ROM autoinitialization model
   110         *      -`-m`
   111         *          create a map file
   112         *      -`-l`
   113         *          archive library file as linker input
   114         */
   115        override config xdc.bld.ITarget2.Options lnkOpts = {
   116            prefix: "-w -q -u _c_int00",
   117            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts500EXT.lib"
   118        };
   119
   120        /*!
   121         *  ======== profiles ========
   122         *  Standard options profiles for the TI tool-chain.
   123         */
   124        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   125            ["debug", {
   126                compileOpts: {
   127                    copts: "-g",
   128                    defs:  "-D_DEBUG_=1",
   129                }
   130            }],
   131            ["release", {
   132                compileOpts: {
   133                    copts: "-O2",
   134                },
   135            }],
   136            ["profile", {
   137                compileOpts: {
   138                    copts: "-gp",
   139                },
   140            }],
   141            ["coverage", {
   142                compileOpts: {
   143                    copts: "-gp",
   144                },
   145            }],
   146            ["whole_program", {
   147                compileOpts: {
   148                    copts: "-oe -O2",
   149                },
   150            }],
   151            ["whole_program_debug", {
   152                compileOpts: {
   153                    copts: "-oe --symdebug:dwarf",
   154                },
   155            }],
   156        ];
   157
   158        override config string includeOpts = "-I$(rootDir)/include";
   159
   160        final override readonly config string sectMap[string] =
   161            ti.targets.C54.sectMap;
   162
   163        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   164            t_IArg          : { size: 2, align: 2 },
   165            t_Char          : { size: 1, align: 1 },
   166            t_Double        : { size: 2, align: 2 },
   167            t_Float         : { size: 2, align: 2 },
   168            t_Fxn           : { size: 2, align: 2 }, /* far */
   169            t_Int           : { size: 1, align: 1 },
   170            t_Int8          : { size: 1, align: 1 },
   171            t_Int16         : { size: 1, align: 1 },
   172            t_Int32         : { size: 2, align: 2 },
   173            t_Long          : { size: 2, align: 2 },
   174            t_LDouble       : { size: 2, align: 2 },
   175            t_Ptr           : { size: 1, align: 1 },
   176            t_Short         : { size: 1, align: 1 },
   177            t_Size          : { size: 1, align: 1 },
   178        };
   179
   180        override readonly config Int bitsPerChar = 16;
   181    };
   182    /*
   183     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:23; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   184
   185     */
   186


module ti.targets.C55

metaonly module ti.targets.C55
index URL

TI C55 default runtime model

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C55.xdc
var C55 = xdc.useModule('ti.targets.C55');
module-wide constants & types
    var obj = new C55.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C55.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C55.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C55.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C55.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C55.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C55.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C55.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C55.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C55.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C55.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C55.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C55.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C55.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar55",
        opts: "rq"
    };
    const C55.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl55 -c",
        opts: ""
    };
    const C55.base// A target that this target is based upon = ITarget.Module computed value;
    const C55.bitsPerChar// The number of bits in a variable of type char = Int 16;
    const C55.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl55 -c",
        opts: ""
    };
    const C55.isa// CPU Instruction Set Architecture (ISA) = String "55";
    const C55.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk55",
        opts: ""
    };
    const C55.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const C55.name// Nickname for this target = String "C55";
    const C55.os// Name of OS required to run programs built for this target = String computed value;
    const C55.rts// Name of a run-time support package to include = String "ti.targets.rts5500";
    const C55.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".sysstack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".cio",
            "code"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".switch",
            "code"
        ],
        [
            ".sysmem",
            "code"
        ],
        [
            ".far",
            "data"
        ],
        [
            "vectors",
            "data"
        ]
    ];
    const C55.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C55.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 2,
            align: 2
        },
        t_Float: {
            size: 2,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 1,
            align: 1
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 1,
            align: 1
        },
        t_Int32: {
            size: 2,
            align: 2
        },
        t_Int40: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 2,
            align: 2
        },
        t_LDouble: {
            size: 2,
            align: 2
        },
        t_LLong: {
            size: 4,
            align: 2
        },
        t_Ptr: {
            size: 1,
            align: 1
        },
        t_Short: {
            size: 1,
            align: 1
        },
        t_Size: {
            size: 1,
            align: 1
        }
    };
    const C55.suffix// Suffix appended to all objs, libraries, and executable = String "55";
    const C55.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl55",
        opts: "--compiler_revision"
    };
     C55.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C55.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C55.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C55.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C55.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225 -Dfar= ",
        suffix: ""
    };
     C55.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C55.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C55.execExt// Extension for executables = String undefined;
     C55.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C55.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C55.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55.lib"
    };
     C55.pathPrefix// A prefix to the PATH environment variable = String "";
     C55.platform// The default platform name for this target = String undefined;
     C55.platforms// A set of platforms that can support this target = String[] [ ];
     C55.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C55.rootDir// Installation directory for this target's code generation tools = String undefined;
     C55.version// The Compatibility Key associated with this target = String undefined;
     C55.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C55.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C55.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C55.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C55.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C55.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C55.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C55.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C55.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C55.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C55.getVersion// Get a target-specific Compatibility Key string() returns String
     C55.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C55.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C55.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C55.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C55.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C55.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C55.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C55.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C55.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C55.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C55.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C55.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C55.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C55.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C55.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C55.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C55.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C55.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C55.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C55.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C55.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C55.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C55.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C55.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C55.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C55.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C55.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C55.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C55.alignDirectiveSupported = Bool true;
config C55.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C55.ar = ITarget2.Command {
    cmd: "ar55",
    opts: "rq"
};
config C55.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C55.asm = ITarget2.Command {
    cmd: "cl55 -c",
    opts: ""
};
config C55.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C55.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C55.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C55.bitsPerChar = Int 16;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C55.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C55.cc = ITarget2.Command {
    cmd: "cl55 -c",
    opts: ""
};
config C55.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C55.isa = String "55";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C55.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C55.lnk = ITarget2.Command {
    cmd: "lnk55",
    opts: ""
};
config C55.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C55.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C55.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C55.name = String "C55";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C55.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C55.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C55.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C55.rts = String "ti.targets.rts5500";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C55.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C55.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".sysstack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".cio",
        "code"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".switch",
        "code"
    ],
    [
        ".sysmem",
        "code"
    ],
    [
        ".far",
        "data"
    ],
    [
        "vectors",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C55.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C55.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C55.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C55.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 2,
        align: 2
    },
    t_Float: {
        size: 2,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 1,
        align: 1
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 1,
        align: 1
    },
    t_Int32: {
        size: 2,
        align: 2
    },
    t_Int40: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 2,
        align: 2
    },
    t_LDouble: {
        size: 2,
        align: 2
    },
    t_LLong: {
        size: 4,
        align: 2
    },
    t_Ptr: {
        size: 1,
        align: 1
    },
    t_Short: {
        size: 1,
        align: 1
    },
    t_Size: {
        size: 1,
        align: 1
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C55.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C55.suffix = String "55";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C55.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C55.vers = ITarget2.Command {
    cmd: "cl55",
    opts: "--compiler_revision"
};
config C55.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C55.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C55.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C55.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C55.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C55.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C55.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C55.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C55.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C55.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225 -Dfar= ",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
-Dfar=
ignore keyword far; this allows one to write code that can be compiled in large model and small model without #ifdef's
config C55.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C55.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C55.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C55.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C55.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C55.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C55.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C55.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C55.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C55.includeOpts = String "-I$(rootDir)/include";
config C55.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C55.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C55.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C55.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C55.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C55.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C55.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C55.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C55.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C55.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C55.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C55.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C55.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C55.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C55.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C55.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C55.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C55.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C55.asmName(String CName) returns String
C55.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C55.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C55.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C55.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C55.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C55.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C55.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C55.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C55.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C55.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C55.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C55.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C55.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C55.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C55.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C55.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C55.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C55.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C55.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C55.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:51 GMT


module ti.targets.C55

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C55.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C55 ========
    20     *  TI C55 default runtime model
    21     */
    22    metaonly module C55 inherits ti.targets.ITarget {
    23        override readonly config string name                = "C55";
    24        override readonly config string suffix              = "55";
    25        override readonly config string isa                 = "55";
    26        override readonly config xdc.bld.ITarget.Model model= {
    27            endian: "big"
    28        };
    29        override readonly config string rts                 = "ti.targets.rts5500";
    30
    31        override readonly config xdc.bld.ITarget2.Command ar = {
    32            cmd: "ar55",
    33            opts: "rq"
    34        };
    35
    36        override readonly config xdc.bld.ITarget2.Command cc = {
    37            cmd: "cl55 -c",
    38            opts: ""
    39        };
    40
    41        override readonly config xdc.bld.ITarget2.Command vers = {
    42            cmd: "cl55",
    43            opts: "--compiler_revision"
    44        };
    45
    46        override readonly config xdc.bld.ITarget2.Command asm = {
    47            cmd: "cl55 -c",
    48            opts: ""
    49        };
    50
    51        override readonly config xdc.bld.ITarget2.Command lnk = {
    52            cmd: "lnk55",
    53            opts: ""
    54        };
    55
    56        /*!
    57         *  ======== asmOpts ========
    58         *  User configurable assembler options.
    59         *
    60         *  Defaults:
    61         *  @p(dlist)
    62         *      -`-qq`
    63         *          super quiet mode
    64         */
    65        override config xdc.bld.ITarget2.Options asmOpts = {
    66            prefix: "-qq",
    67            suffix: ""
    68        };
    69
    70        /*!
    71         *  ======== ccOpts ========
    72         *  User configurable compiler options.
    73         *
    74         *  Defaults:
    75         *  @p(dlist)
    76         *      -`-qq`
    77         *          super quiet mode
    78         *      -`-pdsw225`
    79         *          generate a warning for implicitly declared functions; i.e.,
    80         *          functions without prototypes
    81         *      -`-Dfar= `
    82         *          ignore keyword far; this allows one to write code that can
    83         *          be compiled in large model and small model without #ifdef's
    84         */
    85        override config xdc.bld.ITarget2.Options ccOpts = {
    86            prefix: "-qq -pdsw225 -Dfar= ",
    87            suffix: ""
    88        };
    89
    90        /*!
    91         *  ======== lnkOpts ========
    92         *  User configurable linker options.
    93         *
    94         *  Defaults:
    95         *  @p(dlist)
    96         *      -`-w`
    97         *          Display linker warnings
    98         *      -`-q`
    99         *          Quite run
   100         *      -`-u`
   101         *          Place unresolved external symbol into symbol table
   102         *      -`-c`
   103         *          ROM autoinitialization model
   104         *      -`-m`
   105         *          create a map file
   106         *      -`-l`
   107         *          archive library file as linker input
   108         */
   109        override config xdc.bld.ITarget2.Options lnkOpts = {
   110            prefix: "-w -q -u _c_int00",
   111            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55.lib"
   112        };
   113
   114        override config string includeOpts = "-I$(rootDir)/include";
   115
   116        final override readonly config string sectMap[string] = [
   117            [".text",     "code"],
   118            [".stack",    "stack"],
   119            [".sysstack", "stack"],
   120            [".bss",      "data"],
   121            [".cinit",    "code"],
   122            [".pinit",    "code"],
   123            [".cio",      "code"],
   124            [".args",     "data"],
   125            [".const",    "data"],
   126            [".data",     "data"],
   127            [".switch",   "code"],
   128            [".sysmem",   "code"],
   129            [".far",      "data"],
   130            ["vectors",   "data"],
   131        ];
   132
   133        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   134            t_IArg          : { size: 2, align: 2 },
   135            t_Char          : { size: 1, align: 1 },
   136            t_Double        : { size: 2, align: 2 },
   137            t_Float         : { size: 2, align: 2 },
   138            t_Fxn           : { size: 2, align: 2 },
   139            t_Int           : { size: 1, align: 1 },
   140            t_Int8          : { size: 1, align: 1 },
   141            t_Int16         : { size: 1, align: 1 },
   142            t_Int32         : { size: 2, align: 2 },
   143            t_Int40         : { size: 4, align: 2 },
   144            t_Long          : { size: 2, align: 2 },
   145            t_LDouble       : { size: 2, align: 2 },
   146            t_LLong         : { size: 4, align: 2 },
   147            t_Ptr           : { size: 1, align: 1 },
   148            t_Short         : { size: 1, align: 1 },
   149            t_Size          : { size: 1, align: 1 },
   150        };
   151
   152        override readonly config Int bitsPerChar = 16;
   153    };
   154    /*
   155     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:23; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   156
   157     */
   158


module ti.targets.C55P_word

metaonly module ti.targets.C55P_word
index URL

TI C55P huge data big endian word mode

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C55P_word.xdc
var C55P_word = xdc.useModule('ti.targets.C55P_word');
module-wide constants & types
    var obj = new C55P_word.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C55P_word.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C55P_word.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C55P_word.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C55P_word.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C55P_word.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C55P_word.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C55P_word.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C55P_word.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C55P_word.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C55P_word.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C55P_word.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C55P_word.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C55P_word.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar55",
        opts: "rq"
    };
    const C55P_word.asm// Required assembler comamand and options = ITarget2.Command {
        cmd: "cl55 -c",
        opts: "--memory_model=huge -vcore+"
    };
    const C55P_word.base// A target that this target is based upon = ITarget.Module computed value;
    const C55P_word.bitsPerChar// The number of bits in a variable of type char = Int C55_huge.bitsPerChar;
    const C55P_word.cc// Required compiler comamand and options = ITarget2.Command {
        cmd: "cl55 -c",
        opts: "--memory_model=huge -vcore+"
    };
    const C55P_word.isa// CPU Instruction Set Architecture (ISA) = String "55P";
    const C55P_word.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk55",
        opts: ""
    };
    const C55P_word.model// Run-time model = ITarget.Model {
        endian: "big",
        dataModel: "huge"
    };
    const C55P_word.name// Nickname for this target = String "C55P_word";
    const C55P_word.os// Name of OS required to run programs built for this target = String computed value;
    const C55P_word.rts// Name of a run-time support package to include = String "ti.targets.rts5500";
    const C55P_word.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".sysstack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".cio",
            "code"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".switch",
            "code"
        ],
        [
            ".sysmem",
            "code"
        ],
        [
            ".far",
            "data"
        ],
        [
            "vectors",
            "data"
        ]
    ];
    const C55P_word.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C55P_word.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C55_huge.stdTypes;
    const C55P_word.suffix// Suffix appended to all objs, libraries, and executable = String "55Pw";
    const C55P_word.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl55",
        opts: "--compiler_revision"
    };
     C55P_word.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C55P_word.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C55P_word.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C55P_word.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C55P_word.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225 -Dfar= ",
        suffix: ""
    };
     C55P_word.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C55P_word.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C55P_word.execExt// Extension for executables = String undefined;
     C55P_word.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C55P_word.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C55P_word.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55ph.lib"
    };
     C55P_word.pathPrefix// A prefix to the PATH environment variable = String "";
     C55P_word.platform// The default platform name for this target = String undefined;
     C55P_word.platforms// A set of platforms that can support this target = String[] [ ];
     C55P_word.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C55P_word.rootDir// Installation directory for this target's code generation tools = String undefined;
     C55P_word.version// The Compatibility Key associated with this target = String undefined;
     C55P_word.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C55P_word.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C55P_word.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C55P_word.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C55P_word.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C55P_word.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C55P_word.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C55P_word.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C55P_word.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C55P_word.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C55P_word.getVersion// Get a target-specific Compatibility Key string() returns String
     C55P_word.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C55P_word.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C55P_word.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C55P_word.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C55P_word.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C55P_word.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C55P_word.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C55P_word.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C55P_word.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C55P_word.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C55P_word.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C55P_word.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C55P_word.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C55P_word.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C55P_word.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C55P_word.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C55P_word.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C55P_word.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C55P_word.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C55P_word.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C55P_word.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C55P_word.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C55P_word.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C55P_word.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C55P_word.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C55P_word.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C55P_word.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C55P_word.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C55P_word.alignDirectiveSupported = Bool true;
config C55P_word.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C55P_word.ar = ITarget2.Command {
    cmd: "ar55",
    opts: "rq"
};
config C55P_word.asm // module-wide
index URL

Required assembler comamand and options

XDCscript usage meta-domain
const C55P_word.asm = ITarget2.Command {
    cmd: "cl55 -c",
    opts: "--memory_model=huge -vcore+"
};
DETAILS
--memory_model=huge
huge model; data pointers are greater than 16-bits
-vcore+
huge model ryujin is only supported on rev 3.5 cores (and above)
config C55P_word.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C55P_word.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C55P_word.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C55P_word.bitsPerChar = Int C55_huge.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C55P_word.cc // module-wide
index URL

Required compiler comamand and options

XDCscript usage meta-domain
const C55P_word.cc = ITarget2.Command {
    cmd: "cl55 -c",
    opts: "--memory_model=huge -vcore+"
};
DETAILS
--memory_model=huge
huge model; data pointers are greater than 16-bits
-vcore+
huge model ryujin is only supported on rev 3.5 cores (and above)
config C55P_word.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C55P_word.isa = String "55P";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C55P_word.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C55P_word.lnk = ITarget2.Command {
    cmd: "lnk55",
    opts: ""
};
config C55P_word.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C55P_word.model = ITarget.Model {
    endian: "big",
    dataModel: "huge"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C55P_word.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C55P_word.name = String "C55P_word";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C55P_word.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C55P_word.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C55P_word.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C55P_word.rts = String "ti.targets.rts5500";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C55P_word.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C55P_word.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".sysstack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".cio",
        "code"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".switch",
        "code"
    ],
    [
        ".sysmem",
        "code"
    ],
    [
        ".far",
        "data"
    ],
    [
        "vectors",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C55P_word.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C55P_word.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C55P_word.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C55P_word.stdTypes = ITarget.StdTypes C55_huge.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C55P_word.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C55P_word.suffix = String "55Pw";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C55P_word.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C55P_word.vers = ITarget2.Command {
    cmd: "cl55",
    opts: "--compiler_revision"
};
config C55P_word.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C55P_word.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C55P_word.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C55P_word.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C55P_word.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C55P_word.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C55P_word.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C55P_word.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C55P_word.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C55P_word.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225 -Dfar= ",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
-Dfar=
ignore keyword far; this allows one to write code that can be compiled in large model and small model without #ifdef's
config C55P_word.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C55P_word.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C55P_word.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C55P_word.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C55P_word.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C55P_word.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C55P_word.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C55P_word.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C55P_word.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C55P_word.includeOpts = String "-I$(rootDir)/include";
config C55P_word.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C55P_word.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55ph.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C55P_word.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C55P_word.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C55P_word.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C55P_word.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C55P_word.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C55P_word.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C55P_word.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C55P_word.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C55P_word.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C55P_word.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C55P_word.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C55P_word.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C55P_word.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C55P_word.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C55P_word.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C55P_word.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55P_word.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C55P_word.asmName(String CName) returns String
C55P_word.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C55P_word.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55P_word.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C55P_word.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C55P_word.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C55P_word.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C55P_word.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C55P_word.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C55P_word.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C55P_word.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C55P_word.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C55P_word.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C55P_word.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C55P_word.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C55P_word.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C55P_word.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C55P_word.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C55P_word.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55P_word.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C55P_word.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C55P_word.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C55P_word.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:51 GMT


module ti.targets.C55P_word

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C55P_word.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C55P_word ========
    20     *  TI C55P huge data big endian word mode
    21     */
    22    metaonly module C55P_word inherits ti.targets.ITarget {
    23        override readonly config string name                = "C55P_word";
    24        override readonly config string suffix              = "55Pw";
    25        override readonly config string isa                 = "55P";
    26        override readonly config string rts                 = "ti.targets.rts5500";
    27
    28        override readonly config xdc.bld.ITarget.Model model = {
    29            endian: "big",
    30            dataModel: "huge"
    31        };
    32
    33        override readonly config xdc.bld.ITarget2.Command ar = {
    34            cmd: "ar55",
    35            opts: "rq"
    36        };
    37
    38        /*!
    39         *  ======== cc ========
    40         *  Required compiler comamand and options
    41         *
    42         *  @p(dlist)
    43         *      -`--memory_model=huge`
    44         *          huge model; data pointers are greater than 16-bits
    45         *      -`-vcore+`
    46         *          huge model ryujin is only supported on rev 3.5 cores (and
    47         *          above)
    48         */
    49        override readonly config xdc.bld.ITarget2.Command cc = {
    50            cmd: "cl55 -c",
    51            opts: "--memory_model=huge -vcore+"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command vers = {
    55            cmd: "cl55",
    56            opts: "--compiler_revision"
    57        };
    58
    59        /*!
    60         *  ======== asm ========
    61         *  Required assembler comamand and options
    62         *
    63         *  @p(dlist)
    64         *      -`--memory_model=huge`
    65         *          huge model; data pointers are greater than 16-bits
    66         *      -`-vcore+`
    67         *          huge model ryujin is only supported on rev 3.5 cores (and
    68         *          above)
    69         */
    70        override readonly config xdc.bld.ITarget2.Command asm = {
    71            cmd: "cl55 -c",
    72            opts: "--memory_model=huge -vcore+"
    73        };
    74
    75        override readonly config xdc.bld.ITarget2.Command lnk = {
    76            cmd: "lnk55",
    77            opts: ""
    78        };
    79
    80        /*!
    81         *  ======== asmOpts ========
    82         *  User configurable assembler options.
    83         *
    84         *  Defaults:
    85         *  @p(dlist)
    86         *      -`-qq`
    87         *          super quiet mode
    88         */
    89        override config xdc.bld.ITarget2.Options asmOpts = {
    90            prefix: "-qq",
    91            suffix: ""
    92        };
    93
    94        /*!
    95         *  ======== ccOpts ========
    96         *  User configurable compiler options.
    97         *
    98         *  Defaults:
    99         *  @p(dlist)
   100         *      -`-qq`
   101         *          super quiet mode
   102         *      -`-pdsw225`
   103         *          generate a warning for implicitly declared functions; i.e.,
   104         *          functions without prototypes
   105         *      -`-Dfar= `
   106         *          ignore keyword far; this allows one to write code that can
   107         *          be compiled in large model and small model without #ifdef's
   108         */
   109        override config xdc.bld.ITarget2.Options ccOpts = {
   110            prefix: "-qq -pdsw225 -Dfar= ",
   111            suffix: ""
   112        };
   113
   114        /*!
   115         *  ======== lnkOpts ========
   116         *  User configurable linker options.
   117         *
   118         *  Defaults:
   119         *  @p(dlist)
   120         *      -`-w`
   121         *          Display linker warnings
   122         *      -`-q`
   123         *          Quite run
   124         *      -`-u`
   125         *          Place unresolved external symbol into symbol table
   126         *      -`-c`
   127         *          ROM autoinitialization model
   128         *      -`-m`
   129         *          create a map file
   130         *      -`-l`
   131         *          archive library file as linker input
   132         */
   133        override config xdc.bld.ITarget2.Options lnkOpts = {
   134            prefix: "-w -q -u _c_int00",
   135            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55ph.lib"
   136        };
   137
   138        override config string includeOpts = "-I$(rootDir)/include";
   139
   140        final override readonly config string sectMap[string] = [
   141            [".text",     "code"],
   142            [".stack",    "stack"],
   143            [".sysstack", "stack"],
   144            [".bss",      "data"],
   145            [".cinit",    "code"],
   146            [".pinit",    "code"],
   147            [".cio",      "code"],
   148            [".args",     "data"],
   149            [".const",    "data"],
   150            [".data",     "data"],
   151            [".switch",   "code"],
   152            [".sysmem",   "code"],
   153            [".far",      "data"],
   154            ["vectors",   "data" ],
   155        ];
   156
   157        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   158            ti.targets.C55_huge.stdTypes;
   159
   160        override readonly config Int bitsPerChar =
   161            ti.targets.C55_huge.bitsPerChar;
   162    };
   163    /*
   164     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   165
   166     */
   167


module ti.targets.C55_huge

metaonly module ti.targets.C55_huge
index URL

TI C55 big endian huge data model

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C55_huge.xdc
var C55_huge = xdc.useModule('ti.targets.C55_huge');
module-wide constants & types
    var obj = new C55_huge.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C55_huge.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C55_huge.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C55_huge.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C55_huge.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C55_huge.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C55_huge.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C55_huge.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C55_huge.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C55_huge.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C55_huge.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C55_huge.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C55_huge.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C55_huge.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar55",
        opts: "rq"
    };
    const C55_huge.asm// Required options: = ITarget2.Command {
        cmd: "cl55 -c",
        opts: "--memory_model=huge -vcore:3"
    };
    const C55_huge.base// A target that this target is based upon = ITarget.Module C55.module;
    const C55_huge.bitsPerChar// The number of bits in a variable of type char = Int 16;
    const C55_huge.cc// Required options: = ITarget2.Command {
        cmd: "cl55 -c",
        opts: "--memory_model=huge -vcore:3"
    };
    const C55_huge.isa// CPU Instruction Set Architecture (ISA) = String "55";
    const C55_huge.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk55",
        opts: ""
    };
    const C55_huge.model// Run-time model = ITarget.Model {
        endian: "big",
        dataModel: "huge"
    };
    const C55_huge.name// Nickname for this target = String "C55_huge";
    const C55_huge.os// Name of OS required to run programs built for this target = String computed value;
    const C55_huge.rts// Name of a run-time support package to include = String "ti.targets.rts5500";
    const C55_huge.sectMap// Output section name to segment type mapping = String[string] C55.sectMap;
    const C55_huge.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C55_huge.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 2,
            align: 2
        },
        t_Float: {
            size: 2,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 1,
            align: 1
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 1,
            align: 1
        },
        t_Int32: {
            size: 2,
            align: 2
        },
        t_Int40: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 2,
            align: 2
        },
        t_LDouble: {
            size: 2,
            align: 2
        },
        t_LLong: {
            size: 4,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 1,
            align: 1
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const C55_huge.suffix// Suffix appended to all objs, libraries, and executable = String "55H";
    const C55_huge.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl55",
        opts: "--compiler_revision"
    };
     C55_huge.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C55_huge.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C55_huge.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C55_huge.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C55_huge.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225 -Dfar= ",
        suffix: ""
    };
     C55_huge.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C55_huge.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C55_huge.execExt// Extension for executables = String undefined;
     C55_huge.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C55_huge.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C55_huge.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55h.lib"
    };
     C55_huge.pathPrefix// A prefix to the PATH environment variable = String "";
     C55_huge.platform// The default platform name for this target = String undefined;
     C55_huge.platforms// A set of platforms that can support this target = String[] [ ];
     C55_huge.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C55_huge.rootDir// Installation directory for this target's code generation tools = String undefined;
     C55_huge.version// The Compatibility Key associated with this target = String undefined;
     C55_huge.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C55_huge.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C55_huge.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C55_huge.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C55_huge.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C55_huge.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C55_huge.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C55_huge.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C55_huge.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C55_huge.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C55_huge.getVersion// Get a target-specific Compatibility Key string() returns String
     C55_huge.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C55_huge.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C55_huge.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C55_huge.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C55_huge.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C55_huge.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C55_huge.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C55_huge.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C55_huge.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C55_huge.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C55_huge.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C55_huge.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C55_huge.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C55_huge.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C55_huge.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C55_huge.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C55_huge.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C55_huge.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C55_huge.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C55_huge.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C55_huge.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C55_huge.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C55_huge.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C55_huge.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C55_huge.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C55_huge.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C55_huge.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C55_huge.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C55_huge.alignDirectiveSupported = Bool true;
config C55_huge.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C55_huge.ar = ITarget2.Command {
    cmd: "ar55",
    opts: "rq"
};
config C55_huge.asm // module-wide
index URL

Required options:

XDCscript usage meta-domain
const C55_huge.asm = ITarget2.Command {
    cmd: "cl55 -c",
    opts: "--memory_model=huge -vcore:3"
};
DETAILS
--memory_model=huge
huge model; data pointers are greater than 16-bits
-vcore:3
huge model is only supported on rev 3 cores (and above)
config C55_huge.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C55_huge.base = ITarget.Module C55.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C55_huge.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C55_huge.bitsPerChar = Int 16;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C55_huge.cc // module-wide
index URL

Required options:

XDCscript usage meta-domain
const C55_huge.cc = ITarget2.Command {
    cmd: "cl55 -c",
    opts: "--memory_model=huge -vcore:3"
};
DETAILS
--memory_model=huge
huge model; data pointers are greater than 16-bits
-vcore:3
huge model is only supported on rev 3 cores (and above)
config C55_huge.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C55_huge.isa = String "55";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C55_huge.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C55_huge.lnk = ITarget2.Command {
    cmd: "lnk55",
    opts: ""
};
config C55_huge.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C55_huge.model = ITarget.Model {
    endian: "big",
    dataModel: "huge"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C55_huge.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C55_huge.name = String "C55_huge";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C55_huge.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C55_huge.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C55_huge.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C55_huge.rts = String "ti.targets.rts5500";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C55_huge.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C55_huge.sectMap = String[string] C55.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C55_huge.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C55_huge.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C55_huge.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C55_huge.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 2,
        align: 2
    },
    t_Float: {
        size: 2,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 1,
        align: 1
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 1,
        align: 1
    },
    t_Int32: {
        size: 2,
        align: 2
    },
    t_Int40: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 2,
        align: 2
    },
    t_LDouble: {
        size: 2,
        align: 2
    },
    t_LLong: {
        size: 4,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 1,
        align: 1
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C55_huge.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C55_huge.suffix = String "55H";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C55_huge.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C55_huge.vers = ITarget2.Command {
    cmd: "cl55",
    opts: "--compiler_revision"
};
config C55_huge.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C55_huge.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C55_huge.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C55_huge.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C55_huge.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C55_huge.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C55_huge.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C55_huge.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C55_huge.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C55_huge.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225 -Dfar= ",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
-Dfar=
ignore keyword far; this allows one to write code that can be compiled in large model and small model without #ifdef's
config C55_huge.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C55_huge.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C55_huge.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C55_huge.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C55_huge.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C55_huge.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C55_huge.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C55_huge.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C55_huge.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C55_huge.includeOpts = String "-I$(rootDir)/include";
config C55_huge.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C55_huge.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55h.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C55_huge.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C55_huge.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C55_huge.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C55_huge.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C55_huge.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C55_huge.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C55_huge.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C55_huge.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C55_huge.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C55_huge.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C55_huge.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C55_huge.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C55_huge.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C55_huge.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C55_huge.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C55_huge.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55_huge.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C55_huge.asmName(String CName) returns String
C55_huge.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C55_huge.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55_huge.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C55_huge.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C55_huge.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C55_huge.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C55_huge.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C55_huge.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C55_huge.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C55_huge.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C55_huge.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C55_huge.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C55_huge.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C55_huge.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C55_huge.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C55_huge.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C55_huge.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C55_huge.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55_huge.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C55_huge.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C55_huge.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C55_huge.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:52 GMT


module ti.targets.C55_huge

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C55_huge.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C55_huge ========
    20     *  TI C55 big endian huge data model
    21     */
    22    metaonly module C55_huge inherits ti.targets.ITarget {
    23        override readonly config string name                = "C55_huge";
    24        override readonly config string suffix              = "55H";
    25        override readonly config string isa                 = "55";
    26        override readonly config xdc.bld.ITarget.Model model= {
    27            endian: "big",
    28            dataModel: "huge"
    29        };
    30        override readonly config string rts                 = "ti.targets.rts5500";
    31
    32        override readonly config xdc.bld.ITarget.Module base= ti.targets.C55;
    33
    34        override readonly config xdc.bld.ITarget2.Command ar = {
    35            cmd: "ar55",
    36            opts: "rq"
    37        };
    38
    39        /*!
    40         *  ======== cc ========
    41         *  Required options:
    42         *  @p(dlist)
    43         *      -`--memory_model=huge`
    44         *          huge model; data pointers are greater than 16-bits
    45         *      -`-vcore:3`
    46         *          huge model is only supported on rev 3 cores (and above)
    47         */
    48        override readonly config xdc.bld.ITarget2.Command cc = {
    49            cmd: "cl55 -c",
    50            opts: "--memory_model=huge -vcore:3"
    51        };
    52
    53        override readonly config xdc.bld.ITarget2.Command vers = {
    54            cmd: "cl55",
    55            opts: "--compiler_revision"
    56        };
    57
    58        /*!
    59         *  ======== asm ========
    60         *  Required options:
    61         *  @p(dlist)
    62         *      -`--memory_model=huge`
    63         *          huge model; data pointers are greater than 16-bits
    64         *      -`-vcore:3`
    65         *          huge model is only supported on rev 3 cores (and above)
    66         */
    67        override readonly config xdc.bld.ITarget2.Command asm = {
    68            cmd: "cl55 -c",
    69            opts: "--memory_model=huge -vcore:3"
    70        };
    71
    72        override readonly config xdc.bld.ITarget2.Command lnk = {
    73            cmd: "lnk55",
    74            opts: ""
    75        };
    76
    77        /*!
    78         *  ======== asmOpts ========
    79         *  User configurable assembler options.
    80         *
    81         *  Defaults:
    82         *  @p(dlist)
    83         *      -`-qq`
    84         *          super quiet mode
    85         */
    86        override config xdc.bld.ITarget2.Options asmOpts = {
    87            prefix: "-qq",
    88            suffix: ""
    89        };
    90
    91        /*!
    92         *  ======== ccOpts ========
    93         *  User configurable compiler options.
    94         *
    95         *  Defaults:
    96         *  @p(dlist)
    97         *      -`-qq`
    98         *          super quiet mode
    99         *      -`-pdsw225`
   100         *          generate a warning for implicitly declared functions; i.e.,
   101         *          functions without prototypes
   102         *      -`-Dfar=`
   103         *          ignore keyword far; this allows one to write code that can
   104         *          be compiled in large model and small model without #ifdef's
   105         */
   106        override config xdc.bld.ITarget2.Options ccOpts = {
   107            prefix: "-qq -pdsw225 -Dfar= ",
   108            suffix: ""
   109        };
   110
   111        /*!
   112         *  ======== lnkOpts ========
   113         *  User configurable linker options.
   114         *
   115         *  Defaults:
   116         *  @p(dlist)
   117         *      -`-w`
   118         *          Display linker warnings
   119         *      -`-q`
   120         *          Quite run
   121         *      -`-u`
   122         *          Place unresolved external symbol into symbol table
   123         *      -`-c`
   124         *          ROM autoinitialization model
   125         *      -`-m`
   126         *          create a map file
   127         *      -`-l`
   128         *          archive library file as linker input
   129         */
   130        override config xdc.bld.ITarget2.Options lnkOpts = {
   131            prefix: "-w -q -u _c_int00",
   132            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55h.lib"
   133        };
   134
   135        override config string includeOpts = "-I$(rootDir)/include";
   136
   137        final override readonly config string sectMap[string] =
   138            ti.targets.C55.sectMap;
   139
   140        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   141            t_IArg          : { size: 2, align: 2 },
   142            t_Char          : { size: 1, align: 1 },
   143            t_Double        : { size: 2, align: 2 },
   144            t_Float         : { size: 2, align: 2 },
   145            t_Fxn           : { size: 2, align: 2 },
   146            t_Int           : { size: 1, align: 1 },
   147            t_Int8          : { size: 1, align: 1 },
   148            t_Int16         : { size: 1, align: 1 },
   149            t_Int32         : { size: 2, align: 2 },
   150            t_Int40         : { size: 4, align: 2 },
   151            t_Long          : { size: 2, align: 2 },
   152            t_LDouble       : { size: 2, align: 2 },
   153            t_LLong         : { size: 4, align: 2 },
   154            t_Ptr           : { size: 2, align: 2 },
   155            t_Short         : { size: 1, align: 1 },
   156            t_Size          : { size: 2, align: 2 },
   157        };
   158
   159        override readonly config Int bitsPerChar = 16;
   160
   161    }
   162    /*
   163     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   164
   165     */
   166


module ti.targets.C55_large

metaonly module ti.targets.C55_large
index URL

TI C55 large model

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C55_large.xdc
var C55_large = xdc.useModule('ti.targets.C55_large');
module-wide constants & types
    var obj = new C55_large.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C55_large.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C55_large.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C55_large.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C55_large.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C55_large.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C55_large.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C55_large.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C55_large.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C55_large.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C55_large.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C55_large.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C55_large.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C55_large.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar55",
        opts: "rq"
    };
    const C55_large.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl55 -c",
        opts: "-ml"
    };
    const C55_large.base// A target that this target is based upon = ITarget.Module C55.module;
    const C55_large.bitsPerChar// The number of bits in a variable of type char = Int 16;
    const C55_large.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl55 -c",
        opts: "-ml"
    };
    const C55_large.isa// CPU Instruction Set Architecture (ISA) = String "55";
    const C55_large.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk55",
        opts: ""
    };
    const C55_large.model// Run-time model = ITarget.Model {
        endian: "big",
        dataModel: "large"
    };
    const C55_large.name// Nickname for this target = String "C55_large";
    const C55_large.os// Name of OS required to run programs built for this target = String computed value;
    const C55_large.rts// Name of a run-time support package to include = String "ti.targets.rts5500";
    const C55_large.sectMap// Output section name to segment type mapping = String[string] C55.sectMap;
    const C55_large.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C55_large.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 2,
            align: 2
        },
        t_Float: {
            size: 2,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 1,
            align: 1
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 1,
            align: 1
        },
        t_Int32: {
            size: 2,
            align: 2
        },
        t_Int40: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 2,
            align: 2
        },
        t_LDouble: {
            size: 2,
            align: 2
        },
        t_LLong: {
            size: 4,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 1,
            align: 1
        },
        t_Size: {
            size: 1,
            align: 1
        }
    };
    const C55_large.suffix// Suffix appended to all objs, libraries, and executable = String "55L";
    const C55_large.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl55",
        opts: "--compiler_revision"
    };
     C55_large.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C55_large.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C55_large.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C55_large.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C55_large.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225 -Dfar= ",
        suffix: ""
    };
     C55_large.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C55_large.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C55_large.execExt// Extension for executables = String undefined;
     C55_large.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C55_large.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C55_large.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55x.lib"
    };
     C55_large.pathPrefix// A prefix to the PATH environment variable = String "";
     C55_large.platform// The default platform name for this target = String undefined;
     C55_large.platforms// A set of platforms that can support this target = String[] [ ];
     C55_large.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C55_large.rootDir// Installation directory for this target's code generation tools = String undefined;
     C55_large.version// The Compatibility Key associated with this target = String undefined;
     C55_large.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C55_large.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C55_large.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C55_large.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C55_large.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C55_large.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C55_large.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C55_large.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C55_large.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C55_large.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C55_large.getVersion// Get a target-specific Compatibility Key string() returns String
     C55_large.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C55_large.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C55_large.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C55_large.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C55_large.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C55_large.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C55_large.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C55_large.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C55_large.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C55_large.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C55_large.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C55_large.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C55_large.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C55_large.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C55_large.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C55_large.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C55_large.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C55_large.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C55_large.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C55_large.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C55_large.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C55_large.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C55_large.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C55_large.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C55_large.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C55_large.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C55_large.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C55_large.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C55_large.alignDirectiveSupported = Bool true;
config C55_large.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C55_large.ar = ITarget2.Command {
    cmd: "ar55",
    opts: "rq"
};
config C55_large.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C55_large.asm = ITarget2.Command {
    cmd: "cl55 -c",
    opts: "-ml"
};
config C55_large.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C55_large.base = ITarget.Module C55.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C55_large.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C55_large.bitsPerChar = Int 16;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C55_large.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C55_large.cc = ITarget2.Command {
    cmd: "cl55 -c",
    opts: "-ml"
};
config C55_large.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C55_large.isa = String "55";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C55_large.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C55_large.lnk = ITarget2.Command {
    cmd: "lnk55",
    opts: ""
};
config C55_large.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C55_large.model = ITarget.Model {
    endian: "big",
    dataModel: "large"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C55_large.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C55_large.name = String "C55_large";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C55_large.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C55_large.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C55_large.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C55_large.rts = String "ti.targets.rts5500";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C55_large.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C55_large.sectMap = String[string] C55.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C55_large.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C55_large.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C55_large.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C55_large.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 2,
        align: 2
    },
    t_Float: {
        size: 2,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 1,
        align: 1
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 1,
        align: 1
    },
    t_Int32: {
        size: 2,
        align: 2
    },
    t_Int40: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 2,
        align: 2
    },
    t_LDouble: {
        size: 2,
        align: 2
    },
    t_LLong: {
        size: 4,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 1,
        align: 1
    },
    t_Size: {
        size: 1,
        align: 1
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C55_large.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C55_large.suffix = String "55L";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C55_large.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C55_large.vers = ITarget2.Command {
    cmd: "cl55",
    opts: "--compiler_revision"
};
config C55_large.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C55_large.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C55_large.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C55_large.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C55_large.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C55_large.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C55_large.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C55_large.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C55_large.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C55_large.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225 -Dfar= ",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
-Dfar=
ignore keyword far; this allows one to write code that can be compiled in large model and small model without #ifdef's
config C55_large.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C55_large.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C55_large.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C55_large.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C55_large.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C55_large.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C55_large.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C55_large.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C55_large.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C55_large.includeOpts = String "-I$(rootDir)/include";
config C55_large.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C55_large.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55x.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C55_large.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C55_large.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C55_large.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C55_large.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C55_large.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C55_large.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C55_large.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C55_large.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C55_large.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C55_large.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C55_large.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C55_large.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C55_large.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C55_large.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C55_large.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C55_large.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55_large.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C55_large.asmName(String CName) returns String
C55_large.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C55_large.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55_large.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C55_large.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C55_large.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C55_large.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C55_large.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C55_large.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C55_large.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C55_large.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C55_large.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C55_large.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C55_large.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C55_large.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C55_large.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C55_large.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C55_large.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C55_large.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C55_large.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C55_large.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C55_large.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C55_large.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:52 GMT


module ti.targets.C55_large

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C55_large.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C55_large ========
    20     *  TI C55 large model
    21     */
    22    metaonly module C55_large inherits ti.targets.ITarget {
    23        override readonly config string name                = "C55_large";
    24        override readonly config string suffix              = "55L";
    25        override readonly config string isa                 = "55";
    26        override readonly config xdc.bld.ITarget.Model model= {
    27            endian: "big",
    28            dataModel: "large"
    29        };
    30        override readonly config string rts                 = "ti.targets.rts5500";
    31
    32        override readonly config xdc.bld.ITarget.Module base= ti.targets.C55;
    33
    34        override readonly config xdc.bld.ITarget2.Command ar = {
    35            cmd: "ar55",
    36            opts: "rq"
    37        };
    38
    39        override readonly config xdc.bld.ITarget2.Command cc = {
    40            cmd: "cl55 -c",
    41            opts: "-ml"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command vers = {
    45            cmd: "cl55",
    46            opts: "--compiler_revision"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command asm = {
    50            cmd: "cl55 -c",
    51            opts: "-ml"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command lnk = {
    55            cmd: "lnk55",
    56            opts: ""
    57        };
    58
    59        /*!
    60         *  ======== asmOpts ========
    61         *  User configurable assembler options.
    62         *
    63         *  Defaults:
    64         *  @p(dlist)
    65         *      -`-qq`
    66         *          super quiet mode
    67         */
    68        override config xdc.bld.ITarget2.Options asmOpts = {
    69            prefix: "-qq",
    70            suffix: ""
    71        };
    72
    73        /*!
    74         *  ======== ccOpts ========
    75         *  User configurable compiler options.
    76         *
    77         *  Defaults:
    78         *  @p(dlist)
    79         *      -`-qq`
    80         *          super quiet mode
    81         *      -`-pdsw225`
    82         *          generate a warning for implicitly declared functions; i.e.,
    83         *          functions without prototypes
    84         *      -`-Dfar= `
    85         *          ignore keyword far; this allows one to write code that can
    86         *          be compiled in large model and small model without #ifdef's
    87         */
    88        override config xdc.bld.ITarget2.Options ccOpts = {
    89            prefix: "-qq -pdsw225 -Dfar= ",
    90            suffix: ""
    91        };
    92
    93        /*!
    94         *  ======== lnkOpts ========
    95         *  User configurable linker options.
    96         *
    97         *  Defaults:
    98         *  @p(dlist)
    99         *      -`-w`
   100         *          Display linker warnings
   101         *      -`-q`
   102         *          Quite run
   103         *      -`-u`
   104         *          Place unresolved external symbol into symbol table
   105         *      -`-c`
   106         *          ROM autoinitialization model
   107         *      -`-m`
   108         *          create a map file
   109         *      -`-l`
   110         *          archive library file as linker input
   111         */
   112        override config xdc.bld.ITarget2.Options lnkOpts = {
   113            prefix: "-w -q -u _c_int00",
   114            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55x.lib"
   115        };
   116
   117        override config string includeOpts = "-I$(rootDir)/include";
   118
   119        final override readonly config string sectMap[string] =
   120            ti.targets.C55.sectMap;
   121
   122        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   123            t_IArg          : { size: 2, align: 2 },
   124            t_Char          : { size: 1, align: 1 },
   125            t_Double        : { size: 2, align: 2 },
   126            t_Float         : { size: 2, align: 2 },
   127            t_Fxn           : { size: 2, align: 2 },
   128            t_Int           : { size: 1, align: 1 },
   129            t_Int8          : { size: 1, align: 1 },
   130            t_Int16         : { size: 1, align: 1 },
   131            t_Int32         : { size: 2, align: 2 },
   132            t_Int40         : { size: 4, align: 2 },
   133            t_Long          : { size: 2, align: 2 },
   134            t_LDouble       : { size: 2, align: 2 },
   135            t_LLong         : { size: 4, align: 2 },
   136            t_Ptr           : { size: 2, align: 2 },
   137            t_Short         : { size: 1, align: 1 },
   138            t_Size          : { size: 1, align: 1 },
   139        };
   140
   141        override readonly config Int bitsPerChar = 16;
   142    }
   143    /*
   144     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   145
   146     */
   147


module ti.targets.C62

metaonly module ti.targets.C62
index URL

TI C62 default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C62.xdc
var C62 = xdc.useModule('ti.targets.C62');
module-wide constants & types
    var obj = new C62.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C62.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C62.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C62.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C62.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C62.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C62.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C62.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C62.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C62.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C62.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C62.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C62.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C62.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C62.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: ""
    };
    const C62.base// A target that this target is based upon = ITarget.Module computed value;
    const C62.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const C62.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: ""
    };
    const C62.isa// CPU Instruction Set Architecture (ISA) = String "62";
    const C62.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C62.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const C62.name// Nickname for this target = String "C62";
    const C62.os// Name of OS required to run programs built for this target = String computed value;
    const C62.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C62.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const C62.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C62.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int40: {
            size: 8,
            align: 8
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 8,
            align: 8
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const C62.suffix// Suffix appended to all objs, libraries, and executable = String "62";
    const C62.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C62.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C62.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C62.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C62.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C62.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C62.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C62.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C62.execExt// Extension for executables = String undefined;
     C62.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C62.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C62.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6200.lib"
    };
     C62.pathPrefix// A prefix to the PATH environment variable = String "";
     C62.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320C6211";
     C62.platforms// A set of platforms that can support this target = String[] [ ];
     C62.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C62.rootDir// Installation directory for this target's code generation tools = String undefined;
     C62.version// The Compatibility Key associated with this target = String undefined;
     C62.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C62.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C62.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C62.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C62.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C62.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C62.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C62.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C62.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C62.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C62.getVersion// Get a target-specific Compatibility Key string() returns String
     C62.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C62.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C62.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C62.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C62.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C62.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C62.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C62.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C62.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C62.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C62.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C62.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C62.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C62.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C62.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C62.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C62.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C62.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C62.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C62.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C62.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C62.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C62.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C62.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C62.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C62.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C62.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C62.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C62.alignDirectiveSupported = Bool true;
config C62.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C62.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C62.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C62.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: ""
};
config C62.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C62.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C62.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C62.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C62.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C62.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: ""
};
config C62.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C62.isa = String "62";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C62.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C62.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C62.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C62.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C62.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C62.name = String "C62";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C62.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C62.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C62.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C62.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C62.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C62.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C62.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C62.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C62.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C62.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int40: {
        size: 8,
        align: 8
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 8,
        align: 8
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C62.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C62.suffix = String "62";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C62.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C62.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C62.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C62.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C62.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C62.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C62.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C62.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C62.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C62.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C62.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C62.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C62.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C62.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C62.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C62.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C62.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C62.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C62.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C62.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C62.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C62.includeOpts = String "-I$(rootDir)/include";
config C62.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C62.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6200.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C62.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C62.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C62.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C62.platform = String "ti.platforms.sim6xxx:TMS320C6211";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C62.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C62.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C62.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C62.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C62.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C62.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C62.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C62.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C62.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C62.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C62.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C62.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C62.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C62.asmName(String CName) returns String
C62.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C62.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C62.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C62.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C62.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C62.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C62.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C62.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C62.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C62.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C62.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C62.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C62.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C62.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C62.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C62.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C62.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C62.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C62.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C62.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C62.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C62.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:52 GMT


module ti.targets.C62

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C62.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== C62 ========
    19     *  TI C62 default runtime model (little endian)
    20     */
    21    metaonly module C62 inherits ti.targets.ITarget {
    22        override readonly config string name            = "C62";
    23        override readonly config string suffix          = "62";
    24        override readonly config string isa             = "62";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little"
    27        };
    28        override readonly config string rts = "ti.targets.rts6000";
    29        override config string platform     = "ti.platforms.sim6xxx:TMS320C6211";
    30
    31        override readonly config xdc.bld.ITarget2.Command ar = {
    32            cmd: "ar6x",
    33            opts: "rq"
    34        };
    35
    36        override readonly config xdc.bld.ITarget2.Command cc = {
    37            cmd: "cl6x -c",
    38            opts: ""
    39        };
    40
    41        override readonly config xdc.bld.ITarget2.Command asm = {
    42            cmd: "cl6x -c",
    43            opts: ""
    44        };
    45
    46        override readonly config xdc.bld.ITarget2.Command lnk = {
    47            cmd: "lnk6x",
    48            opts: ""
    49        };
    50
    51        override readonly config xdc.bld.ITarget2.Command vers = {
    52            cmd: "cl6x",
    53            opts: "--compiler_revision"
    54        };
    55
    56        /*!
    57         *  ======== asmOpts ========
    58         *  User configurable assembler options.
    59         *
    60         *  Defaults:
    61         *  @p(dlist)
    62         *      -`-qq`
    63         *          super quiet mode
    64         */
    65        override config xdc.bld.ITarget2.Options asmOpts = {
    66            prefix: "-qq",
    67            suffix: ""
    68        };
    69
    70        /*!
    71         *  ======== ccOpts ========
    72         *  User configurable compiler options.
    73         *
    74         *  Defaults:
    75         *  @p(dlist)
    76         *      -`-qq`
    77         *          super quiet mode
    78         *      -`-pdsw225`
    79         *          generate a warning for implicitly declared functions; i.e.,
    80         *          functions without prototypes
    81         */
    82        override config xdc.bld.ITarget2.Options ccOpts = {
    83            prefix: "-qq -pdsw225",
    84            suffix: ""
    85        };
    86
    87        /*!
    88         *  ======== lnkOpts ========
    89         *  User configurable linker options.
    90         *
    91         *  Defaults:
    92         *  @p(dlist)
    93         *      -`-w`
    94         *          Display linker warnings
    95         *      -`-q`
    96         *          Quite run
    97         *      -`-u`
    98         *          Place unresolved external symbol into symbol table
    99         *      -`-c`
   100         *          ROM autoinitialization model
   101         *      -`-m`
   102         *          create a map file
   103         *      -`-l`
   104         *          archive library file as linker input
   105         */
   106        override config xdc.bld.ITarget2.Options lnkOpts = {
   107            prefix: "-w -q -u _c_int00",
   108            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6200.lib"
   109        };
   110
   111        override config string includeOpts = "-I$(rootDir)/include";
   112
   113        final override readonly config string sectMap[string] = [
   114            [".text", "code"],
   115            [".stack", "stack"],
   116            [".bss", "data"],
   117            [".cinit", "data"],
   118            [".pinit", "data"],
   119            [".const", "data"],
   120            [".data", "data"],
   121            [".switch", "data"],
   122            [".sysmem", "data"],
   123            [".far", "data"],
   124            [".args", "data"],
   125            [".cio", "data"],
   126        ];
   127
   128        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   129            t_IArg          : { size: 4, align: 4 },
   130            t_Char          : { size: 1, align: 1 },
   131            t_Double        : { size: 8, align: 8 },
   132            t_Float         : { size: 4, align: 4 },
   133            t_Fxn           : { size: 4, align: 4 },
   134            t_Int           : { size: 4, align: 4 },
   135            t_Int8          : { size: 1, align: 1 },
   136            t_Int16         : { size: 2, align: 2 },
   137            t_Int32         : { size: 4, align: 4 },
   138            t_Int40         : { size: 8, align: 8 },
   139            t_Int64         : { size: 8, align: 8 },
   140            t_Long          : { size: 8, align: 8 },
   141            t_LDouble       : { size: 8, align: 8 },
   142            t_LLong         : { size: 8, align: 8 },
   143            t_Ptr           : { size: 4, align: 4 },
   144            t_Short         : { size: 2, align: 2 },
   145            t_Size          : { size: 4, align: 4 },
   146        };
   147
   148        override readonly config Int bitsPerChar = 8;
   149    }
   150
   151    /*
   152     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   153
   154     */
   155


module ti.targets.C62_big_endian

metaonly module ti.targets.C62_big_endian
index URL

TI C62 big endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C62_big_endian.xdc
var C62_big_endian = xdc.useModule('ti.targets.C62_big_endian');
module-wide constants & types
    var obj = new C62_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C62_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C62_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C62_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C62_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C62_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C62_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C62_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C62_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C62_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C62_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C62_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C62_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C62_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C62_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me"
    };
    const C62_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C62_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C62_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me"
    };
    const C62_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "62";
    const C62_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C62_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const C62_big_endian.name// Nickname for this target = String "C62_big_endian";
    const C62_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C62_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C62_big_endian.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C62_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C62_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C62_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "62e";
    const C62_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C62_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C62_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C62_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C62_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C62_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C62_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C62_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C62_big_endian.execExt// Extension for executables = String undefined;
     C62_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C62_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C62_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6200e.lib"
    };
     C62_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C62_big_endian.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320C6211";
     C62_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C62_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C62_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C62_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C62_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C62_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C62_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C62_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C62_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C62_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C62_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C62_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C62_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C62_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C62_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C62_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C62_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C62_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C62_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C62_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C62_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C62_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C62_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C62_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C62_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C62_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C62_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C62_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C62_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C62_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C62_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C62_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C62_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C62_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C62_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C62_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C62_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C62_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C62_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C62_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C62_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C62_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C62_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C62_big_endian.alignDirectiveSupported = Bool true;
config C62_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C62_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C62_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C62_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me"
};
config C62_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C62_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C62_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C62_big_endian.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C62_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C62_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me"
};
config C62_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C62_big_endian.isa = String "62";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C62_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C62_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C62_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C62_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C62_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C62_big_endian.name = String "C62_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C62_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C62_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C62_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C62_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C62_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C62_big_endian.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C62_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C62_big_endian.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C62_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C62_big_endian.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C62_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C62_big_endian.suffix = String "62e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C62_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C62_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C62_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C62_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C62_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C62_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C62_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C62_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C62_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C62_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C62_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C62_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C62_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C62_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C62_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C62_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C62_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C62_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C62_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C62_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C62_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C62_big_endian.includeOpts = String "-I$(rootDir)/include";
config C62_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C62_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6200e.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C62_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C62_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C62_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C62_big_endian.platform = String "ti.platforms.sim6xxx:TMS320C6211";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C62_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C62_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C62_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C62_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C62_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C62_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C62_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C62_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C62_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C62_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C62_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C62_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C62_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C62_big_endian.asmName(String CName) returns String
C62_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C62_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C62_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C62_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C62_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C62_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C62_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C62_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C62_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C62_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C62_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C62_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C62_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C62_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C62_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C62_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C62_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C62_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C62_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C62_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C62_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C62_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:52 GMT


module ti.targets.C62_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C62_big_endian.xdc ========
    14     *
    15     */
    16
    17
    18    /*!
    19     *  ======== C62_big_endian ========
    20     *  TI C62 big endian
    21     */
    22    metaonly module C62_big_endian inherits ti.targets.ITarget {
    23        override readonly config string name            = "C62_big_endian";
    24        override readonly config string suffix          = "62e";
    25        override readonly config string isa             = "62";
    26        override readonly config xdc.bld.ITarget.Model model = {endian: "big"};
    27        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    28
    29        override readonly config string rts = "ti.targets.rts6000";
    30        override config string platform     = "ti.platforms.sim6xxx:TMS320C6211";
    31
    32        override readonly config xdc.bld.ITarget2.Command ar = {
    33            cmd: "ar6x",
    34            opts: "rq"
    35        };
    36
    37        override readonly config xdc.bld.ITarget2.Command cc = {
    38            cmd: "cl6x -c",
    39            opts: "-me"
    40        };
    41
    42            override readonly config xdc.bld.ITarget2.Command vers = {
    43            cmd: "cl6x",
    44            opts: "--compiler_revision"
    45        };
    46
    47        override readonly config xdc.bld.ITarget2.Command asm = {
    48            cmd: "cl6x -c",
    49            opts: "-me"
    50        };
    51
    52        override readonly config xdc.bld.ITarget2.Command lnk = {
    53            cmd: "lnk6x",
    54            opts: ""
    55        };
    56
    57        /*!
    58         *  ======== asmOpts ========
    59         *  User configurable assembler options.
    60         *
    61         *  Defaults:
    62         *  @p(dlist)
    63         *      -`-qq`
    64         *          super quiet mode
    65         */
    66        override config xdc.bld.ITarget2.Options asmOpts = {
    67            prefix: "-qq",
    68            suffix: ""
    69        };
    70
    71        /*!
    72         *  ======== ccOpts ========
    73         *  User configurable compiler options.
    74         *
    75         *  Defaults:
    76         *  @p(dlist)
    77         *      -`-qq`
    78         *          super quiet mode
    79         *      -`-pdsw225`
    80         *          generate a warning for implicitly declared functions; i.e.,
    81         *          functions without prototypes
    82         */
    83        override config xdc.bld.ITarget2.Options ccOpts = {
    84            prefix: "-qq -pdsw225",
    85            suffix: ""
    86        };
    87
    88        /*!
    89         *  ======== lnkOpts ========
    90         *  User configurable linker options.
    91         *
    92         *  Defaults:
    93         *  @p(dlist)
    94         *      -`-w`
    95         *          Display linker warnings
    96         *      -`-q`
    97         *          Quite run
    98         *      -`-u`
    99         *          Place unresolved external symbol into symbol table
   100         *      -`-c`
   101         *          ROM autoinitialization model
   102         *      -`-m`
   103         *          create a map file
   104         *      -`-l`
   105         *          archive library file as linker input
   106         */
   107        override config xdc.bld.ITarget2.Options lnkOpts = {
   108            prefix: "-w -q -u _c_int00",
   109            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6200e.lib"
   110        };
   111
   112        override config string includeOpts = "-I$(rootDir)/include";
   113
   114        final override readonly config string sectMap[string] =
   115            ti.targets.C62.sectMap;
   116
   117        override readonly config xdc.bld.ITarget.StdTypes stdTypes = C62.stdTypes;
   118
   119        override readonly config Int bitsPerChar = C62.bitsPerChar;
   120    };
   121    /*
   122     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   123
   124     */
   125


module ti.targets.C64

metaonly module ti.targets.C64
index URL

TI C64 default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C64.xdc
var C64 = xdc.useModule('ti.targets.C64');
module-wide constants & types
    var obj = new C64.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6400"
    };
    const C64.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C64.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6400"
    };
    const C64.isa// CPU Instruction Set Architecture (ISA) = String "64";
    const C64.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C64.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const C64.name// Nickname for this target = String "C64";
    const C64.os// Name of OS required to run programs built for this target = String computed value;
    const C64.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C64.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C64.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C64.suffix// Suffix appended to all objs, libraries, and executable = String "64";
    const C64.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C64.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "62"
    ];
     C64.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64.execExt// Extension for executables = String undefined;
     C64.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6400.lib"
    };
     C64.pathPrefix// A prefix to the PATH environment variable = String "";
     C64.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320C6416";
     C64.platforms// A set of platforms that can support this target = String[] [ ];
     C64.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64.version// The Compatibility Key associated with this target = String undefined;
     C64.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64.getVersion// Get a target-specific Compatibility Key string() returns String
     C64.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64.alignDirectiveSupported = Bool true;
config C64.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6400"
};
config C64.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6400"
};
config C64.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64.isa = String "64";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C64.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64.name = String "C64";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C64.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64.suffix = String "64";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C64.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64.compatibleSuffixes = String[] [
    "62"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64.includeOpts = String "-I$(rootDir)/include";
config C64.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6400.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64.platform = String "ti.platforms.sim6xxx:TMS320C6416";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C64.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64.asmName(String CName) returns String
C64.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:53 GMT


module ti.targets.C64

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C64.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C64 ========
    20     *  TI C64 default runtime model (little endian)
    21     */
    22    metaonly module C64 inherits ti.targets.ITarget {
    23        override readonly config string name                 = "C64";
    24        override readonly config string suffix               = "64";
    25        override readonly config string isa                  = "64";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "little"
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        override readonly config string rts = "ti.targets.rts6000";
    32        override config string platform     = "ti.platforms.sim6xxx:TMS320C6416";
    33
    34        /*
    35         *  ======== compatibleSuffixes ========
    36         */
    37        override config String compatibleSuffixes[] = ["62"];
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-mv6400"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-mv6400"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: ""
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== lnkOpts ========
    97         *  User configurable linker options.
    98         *
    99         *  Defaults:
   100         *  @p(dlist)
   101         *      -`-w`
   102         *          Display linker warnings
   103         *      -`-q`
   104         *          Quite run
   105         *      -`-u`
   106         *          Place unresolved external symbol into symbol table
   107         *      -`-c`
   108         *          ROM autoinitialization model
   109         *      -`-m`
   110         *          create a map file
   111         *      -`-l`
   112         *          archive library file as linker input
   113         */
   114        override config xdc.bld.ITarget2.Options lnkOpts = {
   115            prefix: "-w -q -u _c_int00",
   116            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6400.lib"
   117        };
   118
   119        override config string includeOpts = "-I$(rootDir)/include";
   120
   121        final override readonly config string sectMap[string] =
   122            ti.targets.C62.sectMap;
   123
   124        override readonly config xdc.bld.ITarget.StdTypes stdTypes = C62.stdTypes;
   125
   126        override readonly config Int bitsPerChar = C62.bitsPerChar;
   127    };
   128    /*
   129     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   130
   131     */
   132


module ti.targets.C64P

metaonly module ti.targets.C64P
index URL

TI C64P default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C64P.xdc
var C64P = xdc.useModule('ti.targets.C64P');
module-wide constants & types
    var obj = new C64P.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64P.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64P.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64P.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64P.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64P.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64P.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64P.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64P.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64P.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64P.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64P.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64P.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64P.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64P.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv64p"
    };
    const C64P.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64P.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C64P.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv64p"
    };
    const C64P.isa// CPU Instruction Set Architecture (ISA) = String "64P";
    const C64P.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C64P.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const C64P.name// Nickname for this target = String "C64P";
    const C64P.os// Name of OS required to run programs built for this target = String computed value;
    const C64P.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64P.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C64P.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C64P.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C64P.suffix// Suffix appended to all objs, libraries, and executable = String "64P";
    const C64P.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64P.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64P.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64P.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64P.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C64P.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64P.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "64",
        "62"
    ];
     C64P.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64P.execExt// Extension for executables = String undefined;
     C64P.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64P.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64P.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64plus.lib"
    };
     C64P.pathPrefix// A prefix to the PATH environment variable = String "";
     C64P.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320CDM420";
     C64P.platforms// A set of platforms that can support this target = String[] [ ];
     C64P.profiles// The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64P.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64P.version// The Compatibility Key associated with this target = String undefined;
     C64P.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64P.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64P.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64P.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64P.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64P.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64P.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64P.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64P.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64P.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64P.getVersion// Get a target-specific Compatibility Key string() returns String
     C64P.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64P.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64P.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64P.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64P.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64P.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64P.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64P.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64P.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64P.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64P.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64P.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64P.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64P.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64P.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64P.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64P.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64P.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64P.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64P.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64P.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64P.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64P.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64P.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64P.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64P.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64P.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64P.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64P.alignDirectiveSupported = Bool true;
config C64P.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64P.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64P.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64P.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv64p"
};
config C64P.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64P.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64P.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64P.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64P.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64P.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv64p"
};
config C64P.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64P.isa = String "64P";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64P.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64P.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C64P.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64P.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64P.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64P.name = String "C64P";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64P.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64P.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64P.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64P.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64P.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64P.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64P.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C64P.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64P.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64P.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64P.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64P.suffix = String "64P";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64P.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64P.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64P.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64P.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64P.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64P.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64P.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64P.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64P.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64P.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C64P.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64P.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64P.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64P.compatibleSuffixes = String[] [
    "64",
    "62"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64P.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64P.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64P.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64P.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64P.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64P.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64P.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64P.includeOpts = String "-I$(rootDir)/include";
config C64P.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64P.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64plus.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64P.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64P.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64P.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64P.platform = String "ti.platforms.sim6xxx:TMS320CDM420";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64P.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64P.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64P.profiles // module-wide
index URL

The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line

XDCscript usage meta-domain
C64P.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64P.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64P.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64P.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64P.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64P.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64P.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64P.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64P.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64P.asmName(String CName) returns String
C64P.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64P.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64P.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64P.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64P.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64P.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64P.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64P.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64P.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64P.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64P.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64P.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64P.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64P.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64P.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64P.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64P.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64P.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64P.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64P.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:53 GMT


module ti.targets.C64P

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C64P.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== C64P ========
    19     *  TI C64P default runtime model (little endian)
    20     */
    21    metaonly module C64P inherits ti.targets.ITarget {
    22        override readonly config string name                 = "C64P";
    23        override readonly config string suffix               = "64P";
    24        override readonly config string isa                  = "64P";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little"
    27        };
    28        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    29
    30        override readonly config string rts = "ti.targets.rts6000";
    31        override config string platform     = "ti.platforms.sim6xxx:TMS320CDM420";
    32
    33        /*
    34         *  ======== compatibleSuffixes ========
    35         */
    36        override config String compatibleSuffixes[] = ["64", "62"];
    37
    38        override readonly config xdc.bld.ITarget2.Command ar = {
    39            cmd: "ar6x",
    40            opts: "rq"
    41        };
    42
    43        override readonly config xdc.bld.ITarget2.Command cc = {
    44            cmd: "cl6x -c",
    45            opts: "-mv64p"
    46        };
    47
    48        override readonly config xdc.bld.ITarget2.Command vers = {
    49            cmd: "cl6x",
    50            opts: "--compiler_revision"
    51        };
    52
    53        override readonly config xdc.bld.ITarget2.Command asm = {
    54            cmd: "cl6x -c",
    55            opts: "-mv64p"
    56        };
    57
    58        override readonly config xdc.bld.ITarget2.Command lnk = {
    59            cmd: "lnk6x",
    60            opts: ""
    61        };
    62
    63        /*!
    64         *  ======== profiles ========
    65         *  The options in "profile" and "coverage" profiles are supported only
    66         *  for the compiler version 6.1 and newer, for this target. If the target
    67         *  is used with the compiler version 6.0, these options are removed
    68         *  from the command line.
    69         */
    70        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    71            ["debug", {
    72                compileOpts: {
    73                    copts: "--symdebug:dwarf",
    74                    defs:  "-D_DEBUG_=1",
    75                }
    76            }],
    77            ["release", {
    78                compileOpts: {
    79                    copts: "-O2",
    80                },
    81            }],
    82            ["profile", {
    83                compileOpts: {
    84                    copts: "--gen_profile_info",
    85                },
    86            }],
    87            ["coverage", {
    88                compileOpts: {
    89                    copts: "--gen_profile_info",
    90                },
    91            }],
    92            ["whole_program", {
    93                compileOpts: {
    94                    copts: "-oe -O2 -mo",
    95                },
    96            }],
    97            ["whole_program_debug", {
    98                compileOpts: {
    99                    copts: "-oe --symdebug:dwarf -mo",
   100                },
   101            }],
   102        ];
   103
   104        /*!
   105         *  ======== asmOpts ========
   106         *  User configurable assembler options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-qq`
   111         *          super quiet mode
   112         */
   113        override config xdc.bld.ITarget2.Options asmOpts = {
   114            prefix: "-qq",
   115            suffix: ""
   116        };
   117
   118        /*!
   119         *  ======== ccOpts ========
   120         *  User configurable compiler options.
   121         *
   122         *  Defaults:
   123         *  @p(dlist)
   124         *      -`-qq`
   125         *          super quiet mode
   126         *      -`-pdsw225`
   127         *          generate a warning for implicitly declared functions; i.e.,
   128         *          functions without prototypes
   129         */
   130        override config xdc.bld.ITarget2.Options ccOpts = {
   131            prefix: "-qq -pdsw225",
   132            suffix: ""
   133        };
   134
   135        /*!
   136         *  ======== ccConfigOpts ========
   137         *  User configurable compiler options for the generated config C file.
   138         *
   139         *  -mo places all functions into subsections
   140         *  --no_compress helps with compile time with no real difference in
   141         *  code size since the generated config.c is mostly data and small
   142         *  function stubs.
   143         */
   144        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   145            prefix: "$(ccOpts.prefix) -mo --no_compress",
   146            suffix: "$(ccOpts.suffix)"
   147        };
   148
   149        /*!
   150         *  ======== lnkOpts ========
   151         *  User configurable linker options.
   152         *
   153         *  Defaults:
   154         *  @p(dlist)
   155         *      -`-w`
   156         *          Display linker warnings
   157         *      -`-q`
   158         *          Quite run
   159         *      -`-u`
   160         *          Place unresolved external symbol into symbol table
   161         *      -`-c`
   162         *          ROM autoinitialization model
   163         *      -`-m`
   164         *          create a map file
   165         *      -`-l`
   166         *          archive library file as linker input
   167         */
   168        override config xdc.bld.ITarget2.Options lnkOpts = {
   169            prefix: "-w -q -u _c_int00",
   170            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64plus.lib"
   171        };
   172
   173        override config string includeOpts = "-I$(rootDir)/include";
   174
   175        final override readonly config string sectMap[string] =
   176            ti.targets.C62.sectMap;
   177
   178        override readonly config xdc.bld.ITarget.StdTypes stdTypes = C62.stdTypes;
   179
   180        override readonly config Int bitsPerChar = C62.bitsPerChar;
   181    }
   182    /*
   183     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   184
   185     */
   186


module ti.targets.C64P_big_endian

metaonly module ti.targets.C64P_big_endian
index URL

TI C64P big endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C64P_big_endian.xdc
var C64P_big_endian = xdc.useModule('ti.targets.C64P_big_endian');
module-wide constants & types
    var obj = new C64P_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64P_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64P_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64P_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64P_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64P_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64P_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64P_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64P_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64P_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64P_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64P_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64P_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64P_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64P_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv64p"
    };
    const C64P_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64P_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C64P_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv64p"
    };
    const C64P_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "64P";
    const C64P_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C64P_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const C64P_big_endian.name// Nickname for this target = String "C64P_big_endian";
    const C64P_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C64P_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64P_big_endian.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C64P_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C64P_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C64P_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "64Pe";
    const C64P_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64P_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64P_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64P_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64P_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C64P_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64P_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "64e",
        "62e"
    ];
     C64P_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64P_big_endian.execExt// Extension for executables = String undefined;
     C64P_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64P_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64P_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64pluse.lib"
    };
     C64P_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C64P_big_endian.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320CDM420";
     C64P_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C64P_big_endian.profiles// The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64P_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64P_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C64P_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64P_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64P_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64P_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64P_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64P_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64P_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64P_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64P_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64P_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64P_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C64P_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64P_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64P_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64P_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64P_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64P_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64P_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64P_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64P_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64P_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64P_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64P_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64P_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64P_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64P_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64P_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64P_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64P_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64P_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64P_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64P_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64P_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64P_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64P_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64P_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64P_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64P_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64P_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64P_big_endian.alignDirectiveSupported = Bool true;
config C64P_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64P_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64P_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64P_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv64p"
};
config C64P_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64P_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64P_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64P_big_endian.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64P_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64P_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv64p"
};
config C64P_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64P_big_endian.isa = String "64P";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64P_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64P_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C64P_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64P_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64P_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64P_big_endian.name = String "C64P_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64P_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64P_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64P_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64P_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64P_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64P_big_endian.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64P_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C64P_big_endian.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64P_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64P_big_endian.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64P_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64P_big_endian.suffix = String "64Pe";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64P_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64P_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64P_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64P_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64P_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64P_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64P_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64P_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64P_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64P_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs
config C64P_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64P_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64P_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64P_big_endian.compatibleSuffixes = String[] [
    "64e",
    "62e"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64P_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64P_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64P_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64P_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64P_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64P_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64P_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64P_big_endian.includeOpts = String "-I$(rootDir)/include";
config C64P_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64P_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64pluse.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64P_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64P_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64P_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64P_big_endian.platform = String "ti.platforms.sim6xxx:TMS320CDM420";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64P_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64P_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64P_big_endian.profiles // module-wide
index URL

The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line

XDCscript usage meta-domain
C64P_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64P_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64P_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64P_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64P_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64P_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64P_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64P_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64P_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64P_big_endian.asmName(String CName) returns String
C64P_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64P_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64P_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64P_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64P_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64P_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64P_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64P_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64P_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64P_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64P_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64P_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64P_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64P_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64P_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64P_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64P_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:53 GMT


module ti.targets.C64P_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C64P_big_endian.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C64P_big_endian ========
    20     *  TI C64P big endian
    21     */
    22    metaonly module C64P_big_endian inherits ti.targets.ITarget {
    23        override readonly config string name                 = "C64P_big_endian";
    24        override readonly config string suffix               = "64Pe";
    25        override readonly config string isa                  = "64P";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "big"
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        override readonly config string rts = "ti.targets.rts6000";
    32        override config string platform     = "ti.platforms.sim6xxx:TMS320CDM420";
    33
    34        /*
    35         *  ======== compatibleSuffixes ========
    36         */
    37        override config String compatibleSuffixes[] = ["64e", "62e"];
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-me -mv64p"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-me -mv64p"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: ""
    62        };
    63
    64        /*!
    65         *  ======== profiles ========
    66         *  The options in "profile" and "coverage" profiles are supported only
    67         *  for the compiler version 6.1 and newer, for this target. If the target
    68         *  is used with the compiler version 6.0, these options are removed
    69         *  from the command line.
    70         */
    71        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    72            ["debug", {
    73                compileOpts: {
    74                    copts: "--symdebug:dwarf",
    75                    defs:  "-D_DEBUG_=1",
    76                }
    77            }],
    78            ["release", {
    79                compileOpts: {
    80                    copts: "-O2",
    81                },
    82            }],
    83            ["profile", {
    84                compileOpts: {
    85                    copts: "--gen_profile_info",
    86                },
    87            }],
    88            ["coverage", {
    89                compileOpts: {
    90                    copts: "--gen_profile_info",
    91                },
    92            }],
    93            ["whole_program", {
    94                compileOpts: {
    95                    copts: "-oe -O2 -mo",
    96                },
    97            }],
    98            ["whole_program_debug", {
    99                compileOpts: {
   100                    copts: "-oe --symdebug:dwarf -mo",
   101                },
   102            }],
   103        ];
   104
   105        /*!
   106         *  ======== asmOpts ========
   107         *  User configurable assembler options.
   108         *
   109         *  Defaults:
   110         *  @p(dlist)
   111         *      -`-qq`
   112         *          super quiet mode
   113         */
   114        override config xdc.bld.ITarget2.Options asmOpts = {
   115            prefix: "-qq",
   116            suffix: ""
   117        };
   118
   119        /*!
   120         *  ======== ccOpts ========
   121         *  User configurable compiler options.
   122         *
   123         *  Defaults:
   124         *  @p(dlist)
   125         *      -`-qq`
   126         *          super quiet mode
   127         *      -`-pdsw225`
   128         *          generate a warning for implicitly declared functions; i.e.,
   129         *          functions without prototypes
   130         */
   131        override config xdc.bld.ITarget2.Options ccOpts = {
   132            prefix: "-qq -pdsw225",
   133            suffix: ""
   134        };
   135
   136        /*!
   137         *  ======== ccConfigOpts ========
   138         *  User configurable compiler options for the generated config C file.
   139         *
   140         *  -mo places all functions into subsections
   141         *  --no_compress helps with compile time with no real difference in
   142         *  code size since the generated config.c is mostly data and small
   143         *  function stubs
   144         */
   145        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   146            prefix: "$(ccOpts.prefix) -mo --no_compress",
   147            suffix: "$(ccOpts.suffix)"
   148        };
   149
   150        /*!
   151         *  ======== lnkOpts ========
   152         *  User configurable linker options.
   153         *
   154         *  Defaults:
   155         *  @p(dlist)
   156         *      -`-w`
   157         *          Display linker warnings
   158         *      -`-q`
   159         *          Quite run
   160         *      -`-u`
   161         *          Place unresolved external symbol into symbol table
   162         *      -`-c`
   163         *          ROM autoinitialization model
   164         *      -`-m`
   165         *          create a map file
   166         *      -`-l`
   167         *          archive library file as linker input
   168         */
   169        override config xdc.bld.ITarget2.Options lnkOpts = {
   170            prefix: "-w -q -u _c_int00",
   171            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64pluse.lib"
   172        };
   173
   174        override config string includeOpts = "-I$(rootDir)/include";
   175
   176        final override readonly config string sectMap[string] =
   177            ti.targets.C62.sectMap;
   178
   179        override readonly config xdc.bld.ITarget.StdTypes stdTypes = C62.stdTypes;
   180
   181        override readonly config Int bitsPerChar = C62.bitsPerChar;
   182    }
   183    /*
   184     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   185
   186     */
   187


module ti.targets.C64T

metaonly module ti.targets.C64T
index URL

TI C64T default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C64T.xdc
var C64T = xdc.useModule('ti.targets.C64T');
module-wide constants & types
    var obj = new C64T.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64T.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64T.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64T.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64T.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64T.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64T.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64T.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64T.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64T.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64T.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64T.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64T.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64T.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64T.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv=tesla --abi=coffabi"
    };
    const C64T.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64T.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C64T.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv=tesla --abi=coffabi"
    };
    const C64T.isa// CPU Instruction Set Architecture (ISA) = String "64T";
    const C64T.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=coffabi"
    };
    const C64T.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const C64T.name// Nickname for this target = String "C64T";
    const C64T.os// Name of OS required to run programs built for this target = String computed value;
    const C64T.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64T.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C64T.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C64T.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C64T.suffix// Suffix appended to all objs, libraries, and executable = String "64T";
    const C64T.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64T.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64T.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64T.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64T.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C64T.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64T.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C64T.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64T.execExt// Extension for executables = String undefined;
     C64T.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64T.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64T.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_le_coff.lib"
    };
     C64T.pathPrefix// A prefix to the PATH environment variable = String "";
     C64T.platform// The default platform name for this target = String "ti.platforms.sdp4430";
     C64T.platforms// A set of platforms that can support this target = String[] [ ];
     C64T.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64T.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64T.version// The Compatibility Key associated with this target = String undefined;
     C64T.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64T.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64T.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64T.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64T.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64T.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64T.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64T.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64T.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64T.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64T.getVersion// Get a target-specific Compatibility Key string() returns String
     C64T.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64T.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64T.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64T.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64T.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64T.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64T.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64T.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64T.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64T.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64T.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64T.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64T.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64T.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64T.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64T.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64T.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64T.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64T.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64T.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64T.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64T.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64T.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64T.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64T.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64T.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64T.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64T.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64T.alignDirectiveSupported = Bool true;
config C64T.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64T.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64T.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64T.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv=tesla --abi=coffabi"
};
config C64T.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64T.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64T.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64T.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64T.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64T.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv=tesla --abi=coffabi"
};
config C64T.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64T.isa = String "64T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64T.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64T.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=coffabi"
};
config C64T.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64T.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64T.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64T.name = String "C64T";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64T.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64T.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64T.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64T.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64T.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64T.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64T.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C64T.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64T.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64T.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64T.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64T.suffix = String "64T";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64T.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64T.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64T.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64T.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64T.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64T.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64T.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64T.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64T.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64T.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C64T.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64T.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64T.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64T.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64T.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64T.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64T.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64T.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64T.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64T.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64T.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64T.includeOpts = String "-I$(rootDir)/include";
config C64T.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64T.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_le_coff.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64T.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64T.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64T.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64T.platform = String "ti.platforms.sdp4430";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64T.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64T.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64T.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C64T.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64T.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64T.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64T.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64T.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64T.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64T.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64T.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64T.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64T.asmName(String CName) returns String
C64T.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64T.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64T.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64T.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64T.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64T.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64T.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64T.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64T.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64T.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64T.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64T.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64T.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64T.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64T.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64T.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64T.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64T.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64T.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64T.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:54 GMT


module ti.targets.C64T

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C64T.xdc ========
    14     *
    15     */
    16
    17    import xdc.bld.ITarget2;
    18
    19    /*!
    20     *  ======== C64T ========
    21     *  TI C64T default runtime model (little endian)
    22     */
    23    metaonly module C64T inherits ti.targets.ITarget {
    24        override readonly config string name                 = "C64T";
    25        override readonly config string suffix               = "64T";
    26        override readonly config string isa                  = "64T";
    27        override readonly config xdc.bld.ITarget.Model model = {
    28            endian: "little"
    29        };
    30        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    31
    32        override readonly config string rts = "ti.targets.rts6000";
    33        override config string platform     = "ti.platforms.sdp4430";
    34        override readonly config string stdInclude = "ti/targets/std.h";
    35
    36        override readonly config ITarget2.Command ar = {
    37            cmd: "ar6x",
    38            opts: "rq"
    39        };
    40
    41        override readonly config ITarget2.Command cc = {
    42            cmd: "cl6x -c",
    43            opts: "-mv=tesla --abi=coffabi"
    44        };
    45
    46        override readonly config ITarget2.Command vers = {
    47            cmd: "cl6x",
    48            opts: "--compiler_revision"
    49        };
    50
    51        override readonly config ITarget2.Command asm = {
    52            cmd: "cl6x -c",
    53            opts: "-mv=tesla --abi=coffabi"
    54        };
    55
    56        override readonly config ITarget2.Command lnk = {
    57            cmd: "lnk6x",
    58            opts: "--abi=coffabi"
    59        };
    60
    61        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    62            ["debug", {
    63                compileOpts: {
    64                    copts: "--symdebug:dwarf",
    65                    defs:  "-D_DEBUG_=1",
    66                }
    67            }],
    68            ["release", {
    69                compileOpts: {
    70                    copts: "-O2",
    71                },
    72            }],
    73            ["profile", {
    74                compileOpts: {
    75                    copts: "--gen_profile_info",
    76                },
    77            }],
    78            ["coverage", {
    79                compileOpts: {
    80                    copts: "--gen_profile_info",
    81                },
    82            }],
    83            ["whole_program", {
    84                compileOpts: {
    85                    copts: "-oe -O2 -mo",
    86                },
    87            }],
    88            ["whole_program_debug", {
    89                compileOpts: {
    90                    copts: "-oe --symdebug:dwarf -mo",
    91                },
    92            }],
    93        ];
    94
    95        /*!
    96         *  ======== asmOpts ========
    97         *  User configurable assembler options.
    98         *
    99         *  Defaults:
   100         *  @p(dlist)
   101         *      -`-qq`
   102         *          super quiet mode
   103         */
   104        override config ITarget2.Options asmOpts = {
   105            prefix: "-qq",
   106            suffix: ""
   107        };
   108
   109        /*!
   110         *  ======== ccOpts ========
   111         *  User configurable compiler options.
   112         *
   113         *  Defaults:
   114         *  @p(dlist)
   115         *      -`-qq`
   116         *          super quiet mode
   117         *      -`-pdsw225`
   118         *          generate a warning for implicitly declared functions; i.e.,
   119         *          functions without prototypes
   120         */
   121        override config ITarget2.Options ccOpts = {
   122            prefix: "-qq -pdsw225",
   123            suffix: ""
   124        };
   125
   126        /*!
   127         *  ======== ccConfigOpts ========
   128         *  User configurable compiler options for the generated config C file.
   129         *
   130         *  -mo places all functions into subsections
   131         *  --no_compress helps with compile time with no real difference in
   132         *  code size since the generated config.c is mostly data and small
   133         *  function stubs.
   134         */
   135        override config ITarget2.Options ccConfigOpts = {
   136            prefix: "$(ccOpts.prefix) -mo --no_compress",
   137            suffix: "$(ccOpts.suffix)"
   138        };
   139
   140        /*!
   141         *  ======== lnkOpts ========
   142         *  User configurable linker options.
   143         *
   144         *  Defaults:
   145         *  @p(dlist)
   146         *      -`-w`
   147         *          Display linker warnings
   148         *      -`-q`
   149         *          Quite run
   150         *      -`-u`
   151         *          Place unresolved external symbol into symbol table
   152         *      -`-c`
   153         *          ROM autoinitialization model
   154         *      -`-m`
   155         *          create a map file
   156         *      -`-l`
   157         *          archive library file as linker input
   158         */
   159        override config ITarget2.Options lnkOpts = {
   160            prefix: "-w -q -u _c_int00",
   161            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_le_coff.lib"
   162        };
   163
   164        override config string includeOpts = "-I$(rootDir)/include";
   165
   166        final override readonly config string sectMap[string] =
   167            ti.targets.C62.sectMap;
   168
   169        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   170            ti.targets.C62.stdTypes;
   171
   172        override readonly config Int bitsPerChar =
   173            ti.targets.C62.bitsPerChar;
   174    }
   175    /*
   176     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   177
   178     */
   179


module ti.targets.C64T_big_endian

metaonly module ti.targets.C64T_big_endian
index URL

TI C64T big endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C64T_big_endian.xdc
var C64T_big_endian = xdc.useModule('ti.targets.C64T_big_endian');
module-wide constants & types
    var obj = new C64T_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64T_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64T_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64T_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64T_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64T_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64T_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64T_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64T_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64T_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64T_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64T_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64T_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64T_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64T_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv=tesla --abi=coffabi"
    };
    const C64T_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64T_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C64T_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv=tesla --abi=coffabi"
    };
    const C64T_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "64T";
    const C64T_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=coffabi"
    };
    const C64T_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const C64T_big_endian.name// Nickname for this target = String "C64T_big_endian";
    const C64T_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C64T_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64T_big_endian.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C64T_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C64T_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C64T_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "64Te";
    const C64T_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64T_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64T_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64T_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64T_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C64T_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64T_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C64T_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64T_big_endian.execExt// Extension for executables = String undefined;
     C64T_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64T_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64T_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_be_coff.lib"
    };
     C64T_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C64T_big_endian.platform// The default platform name for this target = String "ti.platforms.sdp4430";
     C64T_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C64T_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64T_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64T_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C64T_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64T_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64T_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64T_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64T_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64T_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64T_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64T_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64T_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64T_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64T_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C64T_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64T_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64T_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64T_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64T_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64T_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64T_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64T_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64T_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64T_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64T_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64T_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64T_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64T_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64T_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64T_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64T_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64T_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64T_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64T_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64T_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64T_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64T_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64T_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64T_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64T_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64T_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64T_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64T_big_endian.alignDirectiveSupported = Bool true;
config C64T_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64T_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64T_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64T_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv=tesla --abi=coffabi"
};
config C64T_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64T_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64T_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64T_big_endian.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64T_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64T_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv=tesla --abi=coffabi"
};
config C64T_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64T_big_endian.isa = String "64T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64T_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64T_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=coffabi"
};
config C64T_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64T_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64T_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64T_big_endian.name = String "C64T_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64T_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64T_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64T_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64T_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64T_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64T_big_endian.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64T_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C64T_big_endian.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64T_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64T_big_endian.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64T_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64T_big_endian.suffix = String "64Te";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64T_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64T_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64T_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64T_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64T_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64T_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64T_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64T_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64T_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64T_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C64T_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64T_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64T_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64T_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64T_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64T_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64T_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64T_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64T_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64T_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64T_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64T_big_endian.includeOpts = String "-I$(rootDir)/include";
config C64T_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64T_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_be_coff.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64T_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64T_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64T_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64T_big_endian.platform = String "ti.platforms.sdp4430";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64T_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64T_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64T_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C64T_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64T_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64T_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64T_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64T_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64T_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64T_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64T_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64T_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64T_big_endian.asmName(String CName) returns String
C64T_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64T_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64T_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64T_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64T_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64T_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64T_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64T_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64T_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64T_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64T_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64T_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64T_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64T_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64T_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64T_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64T_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:54 GMT


module ti.targets.C64T_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C64T_big_endian.xdc ========
    15     *
    16     */
    17
    18    import xdc.bld.ITarget2;
    19
    20    /*!
    21     *  ======== C64T_big_endian ========
    22     *  TI C64T big endian
    23     */
    24    metaonly module C64T_big_endian inherits ti.targets.ITarget {
    25        override readonly config string name                 = "C64T_big_endian";
    26        override readonly config string suffix               = "64Te";
    27        override readonly config string isa                  = "64T";
    28        override readonly config xdc.bld.ITarget.Model model = {
    29            endian: "big"
    30        };
    31        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    32
    33        override readonly config string rts = "ti.targets.rts6000";
    34        override config string platform     = "ti.platforms.sdp4430";
    35        override readonly config string stdInclude = "ti/targets/std.h";
    36
    37        override readonly config ITarget2.Command ar = {
    38            cmd: "ar6x",
    39            opts: "rq"
    40        };
    41
    42        override readonly config ITarget2.Command cc = {
    43            cmd: "cl6x -c",
    44            opts: "-me -mv=tesla --abi=coffabi"
    45        };
    46
    47        override readonly config ITarget2.Command vers = {
    48            cmd: "cl6x",
    49            opts: "--compiler_revision"
    50        };
    51
    52        override readonly config ITarget2.Command asm = {
    53            cmd: "cl6x -c",
    54            opts: "-me -mv=tesla --abi=coffabi"
    55        };
    56
    57        override readonly config ITarget2.Command lnk = {
    58            cmd: "lnk6x",
    59            opts: "--abi=coffabi"
    60        };
    61
    62        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    63            ["debug", {
    64                compileOpts: {
    65                    copts: "--symdebug:dwarf",
    66                    defs:  "-D_DEBUG_=1",
    67                }
    68            }],
    69            ["release", {
    70                compileOpts: {
    71                    copts: "-O2",
    72                },
    73            }],
    74            ["profile", {
    75                compileOpts: {
    76                    copts: "--gen_profile_info",
    77                },
    78            }],
    79            ["coverage", {
    80                compileOpts: {
    81                    copts: "--gen_profile_info",
    82                },
    83            }],
    84            ["whole_program", {
    85                compileOpts: {
    86                    copts: "-oe -O2 -mo",
    87                },
    88            }],
    89            ["whole_program_debug", {
    90                compileOpts: {
    91                    copts: "-oe --symdebug:dwarf -mo",
    92                },
    93            }],
    94        ];
    95
    96        /*!
    97         *  ======== asmOpts ========
    98         *  User configurable assembler options.
    99         *
   100         *  Defaults:
   101         *  @p(dlist)
   102         *      -`-qq`
   103         *          super quiet mode
   104         */
   105        override config ITarget2.Options asmOpts = {
   106            prefix: "-qq",
   107            suffix: ""
   108        };
   109
   110        /*!
   111         *  ======== ccOpts ========
   112         *  User configurable compiler options.
   113         *
   114         *  Defaults:
   115         *  @p(dlist)
   116         *      -`-qq`
   117         *          super quiet mode
   118         *      -`-pdsw225`
   119         *          generate a warning for implicitly declared functions; i.e.,
   120         *          functions without prototypes
   121         */
   122        override config ITarget2.Options ccOpts = {
   123            prefix: "-qq -pdsw225",
   124            suffix: ""
   125        };
   126
   127        /*!
   128         *  ======== ccConfigOpts ========
   129         *  User configurable compiler options for the generated config C file.
   130         *
   131         *  -mo places all functions into subsections
   132         *  --no_compress helps with compile time with no real difference in
   133         *  code size since the generated config.c is mostly data and small
   134         *  function stubs.
   135         */
   136        override config ITarget2.Options ccConfigOpts = {
   137            prefix: "$(ccOpts.prefix) -mo --no_compress",
   138            suffix: "$(ccOpts.suffix)"
   139        };
   140
   141        /*!
   142         *  ======== lnkOpts ========
   143         *  User configurable linker options.
   144         *
   145         *  Defaults:
   146         *  @p(dlist)
   147         *      -`-w`
   148         *          Display linker warnings
   149         *      -`-q`
   150         *          Quite run
   151         *      -`-u`
   152         *          Place unresolved external symbol into symbol table
   153         *      -`-c`
   154         *          ROM autoinitialization model
   155         *      -`-m`
   156         *          create a map file
   157         *      -`-l`
   158         *          archive library file as linker input
   159         */
   160        override config ITarget2.Options lnkOpts = {
   161            prefix: "-w -q -u _c_int00",
   162            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_be_coff.lib"
   163        };
   164
   165        override config string includeOpts = "-I$(rootDir)/include";
   166
   167        final override readonly config string sectMap[string] =
   168            ti.targets.C62.sectMap;
   169
   170        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   171            ti.targets.C62.stdTypes;
   172
   173        override readonly config Int bitsPerChar =
   174            ti.targets.C62.bitsPerChar;
   175    }
   176    /*
   177     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   178
   179     */
   180


module ti.targets.C64_big_endian

metaonly module ti.targets.C64_big_endian
index URL

TI C64 big endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C64_big_endian.xdc
var C64_big_endian = xdc.useModule('ti.targets.C64_big_endian');
module-wide constants & types
    var obj = new C64_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6400"
    };
    const C64_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C64_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6400"
    };
    const C64_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "64";
    const C64_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C64_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const C64_big_endian.name// Nickname for this target = String "C64_big_endian";
    const C64_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C64_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64_big_endian.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C64_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C64_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C64_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "64e";
    const C64_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C64_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "62e"
    ];
     C64_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64_big_endian.execExt// Extension for executables = String undefined;
     C64_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6400e.lib"
    };
     C64_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C64_big_endian.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320C6416";
     C64_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C64_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C64_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C64_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64_big_endian.alignDirectiveSupported = Bool true;
config C64_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6400"
};
config C64_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64_big_endian.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6400"
};
config C64_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64_big_endian.isa = String "64";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C64_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64_big_endian.name = String "C64_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64_big_endian.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C64_big_endian.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64_big_endian.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64_big_endian.suffix = String "64e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C64_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64_big_endian.compatibleSuffixes = String[] [
    "62e"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64_big_endian.includeOpts = String "-I$(rootDir)/include";
config C64_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6400e.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64_big_endian.platform = String "ti.platforms.sim6xxx:TMS320C6416";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C64_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64_big_endian.asmName(String CName) returns String
C64_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:54 GMT


module ti.targets.C64_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C64_big_endian.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C64_big_endian ========
    20     *  TI C64 big endian
    21     */
    22    metaonly module C64_big_endian inherits ti.targets.ITarget {
    23        override readonly config string name                 = "C64_big_endian";
    24        override readonly config string suffix               = "64e";
    25        override readonly config string isa                  = "64";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "big"
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        override readonly config string rts = "ti.targets.rts6000";
    32        override config string platform     = "ti.platforms.sim6xxx:TMS320C6416";
    33
    34        /*
    35         *  ======== compatibleSuffixes ========
    36         */
    37        override config String compatibleSuffixes[] = ["62e"];
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-me -mv6400"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-me -mv6400"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: ""
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== lnkOpts ========
    97         *  User configurable linker options.
    98         *
    99         *  Defaults:
   100         *  @p(dlist)
   101         *      -`-w`
   102         *          Display linker warnings
   103         *      -`-q`
   104         *          Quite run
   105         *      -`-u`
   106         *          Place unresolved external symbol into symbol table
   107         *      -`-c`
   108         *          ROM autoinitialization model
   109         *      -`-m`
   110         *          create a map file
   111         *      -`-l`
   112         *          archive library file as linker input
   113         */
   114        override config xdc.bld.ITarget2.Options lnkOpts = {
   115            prefix: "-w -q -u _c_int00",
   116            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6400e.lib"
   117        };
   118
   119        override config string includeOpts = "-I$(rootDir)/include";
   120
   121        final override readonly config string sectMap[string] =
   122            ti.targets.C62.sectMap;
   123
   124        override readonly config xdc.bld.ITarget.StdTypes stdTypes = C62.stdTypes;
   125
   126        override readonly config Int bitsPerChar = C62.bitsPerChar;
   127    };
   128    /*
   129     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   130
   131     */
   132


module ti.targets.C66

metaonly module ti.targets.C66
index URL

TI C66 little endian (COFF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C66.xdc
var C66 = xdc.useModule('ti.targets.C66');
module-wide constants & types
    var obj = new C66.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C66.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C66.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C66.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C66.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C66.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C66.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C66.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C66.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C66.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C66.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C66.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C66.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C66.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C66.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6600 --abi=coffabi"
    };
    const C66.base// A target that this target is based upon = ITarget.Module C62.module;
    const C66.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C66.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6600 --abi=coffabi"
    };
    const C66.isa// CPU Instruction Set Architecture (ISA) = String "66";
    const C66.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=coffabi"
    };
    const C66.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const C66.name// Nickname for this target = String "C66";
    const C66.os// Name of OS required to run programs built for this target = String computed value;
    const C66.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C66.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C66.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C66.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C66.suffix// Suffix appended to all objs, libraries, and executable = String "66";
    const C66.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C66.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C66.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C66.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C66.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C66.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C66.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "674",
        "64P"
    ];
     C66.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C66.execExt// Extension for executables = String undefined;
     C66.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C66.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C66.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600_coff.lib"
    };
     C66.pathPrefix// A prefix to the PATH environment variable = String "";
     C66.platform// The default platform name for this target = String "ti.platforms.simTCI6616";
     C66.platforms// A set of platforms that can support this target = String[] [ ];
     C66.profiles// The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C66.rootDir// Installation directory for this target's code generation tools = String undefined;
     C66.version// The Compatibility Key associated with this target = String undefined;
     C66.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C66.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C66.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C66.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C66.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C66.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C66.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C66.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C66.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C66.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C66.getVersion// Get a target-specific Compatibility Key string() returns String
     C66.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C66.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C66.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C66.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C66.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C66.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C66.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C66.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C66.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C66.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C66.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C66.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C66.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C66.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C66.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C66.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C66.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C66.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C66.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C66.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C66.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C66.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C66.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C66.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C66.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C66.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C66.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C66.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C66.alignDirectiveSupported = Bool true;
config C66.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C66.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C66.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C66.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6600 --abi=coffabi"
};
config C66.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C66.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C66.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C66.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C66.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C66.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6600 --abi=coffabi"
};
config C66.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C66.isa = String "66";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C66.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C66.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=coffabi"
};
config C66.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C66.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C66.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C66.name = String "C66";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C66.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C66.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C66.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C66.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C66.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C66.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C66.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C66.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C66.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C66.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C66.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C66.suffix = String "66";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C66.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C66.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C66.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C66.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C66.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C66.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C66.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C66.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C66.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C66.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C66.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C66.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C66.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C66.compatibleSuffixes = String[] [
    "674",
    "64P"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C66.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C66.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C66.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C66.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C66.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C66.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C66.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C66.includeOpts = String "-I$(rootDir)/include";
config C66.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C66.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600_coff.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C66.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C66.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C66.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C66.platform = String "ti.platforms.simTCI6616";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C66.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C66.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C66.profiles // module-wide
index URL

The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line

XDCscript usage meta-domain
C66.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C66.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C66.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C66.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C66.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C66.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C66.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C66.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C66.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C66.asmName(String CName) returns String
C66.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C66.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C66.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C66.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C66.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C66.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C66.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C66.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C66.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C66.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C66.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C66.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C66.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C66.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C66.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C66.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C66.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C66.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C66.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C66.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:54 GMT


module ti.targets.C66

     1    /*
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C66.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== C66 ========
    19     *  TI C66 little endian (COFF)
    20     */
    21    metaonly module C66 inherits ITarget {
    22        override readonly config string name                 = "C66";
    23        override readonly config string suffix               = "66";
    24        override readonly config string isa                  = "66";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27        };
    28        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    29
    30        /*
    31         *  ======== compatibleSuffixes ========
    32         */
    33        override config String compatibleSuffixes[] = ["674", "64P"];
    34
    35        override readonly config string rts = "ti.targets.rts6000";
    36        override config string platform     = "ti.platforms.simTCI6616";
    37
    38        override readonly config xdc.bld.ITarget2.Command ar = {
    39            cmd: "ar6x",
    40            opts: "rq"
    41        };
    42
    43        override readonly config xdc.bld.ITarget2.Command cc = {
    44            cmd: "cl6x -c",
    45            opts: "-mv6600 --abi=coffabi"
    46        };
    47
    48        override readonly config xdc.bld.ITarget2.Command vers = {
    49            cmd: "cl6x",
    50            opts: "--compiler_revision"
    51        };
    52
    53        override readonly config xdc.bld.ITarget2.Command asm = {
    54            cmd: "cl6x -c",
    55            opts: "-mv6600 --abi=coffabi"
    56        };
    57
    58        override readonly config xdc.bld.ITarget2.Command lnk = {
    59            cmd: "lnk6x",
    60            opts: "--abi=coffabi"
    61        };
    62
    63        /*!
    64         *  ======== profiles ========
    65         *  The options in "profile" and "coverage" profiles are supported only
    66         *  for the compiler version 6.1 and newer, for this target. If the target
    67         *  is used with the compiler version 6.0, these options are removed
    68         *  from the command line.
    69         */
    70        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    71            ["debug", {
    72                compileOpts: {
    73                    copts: "--symdebug:dwarf",
    74                    defs:  "-D_DEBUG_=1",
    75                }
    76            }],
    77            ["release", {
    78                compileOpts: {
    79                    copts: "-O2",
    80                },
    81            }],
    82            ["profile", {
    83                compileOpts: {
    84                    copts: "--gen_profile_info",
    85                },
    86            }],
    87            ["coverage", {
    88                compileOpts: {
    89                    copts: "--gen_profile_info",
    90                },
    91            }],
    92            ["whole_program", {
    93                compileOpts: {
    94                    copts: "-oe -O2 -mo",
    95                },
    96            }],
    97            ["whole_program_debug", {
    98                compileOpts: {
    99                    copts: "-oe --symdebug:dwarf -mo",
   100                },
   101            }],
   102        ];
   103
   104        /*!
   105         *  ======== asmOpts ========
   106         *  User configurable assembler options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-qq`
   111         *          super quiet mode
   112         */
   113        override config xdc.bld.ITarget2.Options asmOpts = {
   114            prefix: "-qq",
   115            suffix: ""
   116        };
   117
   118        /*!
   119         *  ======== ccOpts ========
   120         *  User configurable compiler options.
   121         *
   122         *  Defaults:
   123         *  @p(dlist)
   124         *      -`-qq`
   125         *          super quiet mode
   126         *      -`-pdsw225`
   127         *          generate a warning for implicitly declared functions; i.e.,
   128         *          functions without prototypes
   129         */
   130        override config xdc.bld.ITarget2.Options ccOpts = {
   131            prefix: "-qq -pdsw225",
   132            suffix: ""
   133        };
   134
   135        /*!
   136         *  ======== ccConfigOpts ========
   137         *  User configurable compiler options for the generated config C file.
   138         *
   139         *  -mo places all functions into subsections
   140         *  --no_compress helps with compile time with no real difference in
   141         *  code size since the generated config.c is mostly data and small
   142         *  function stubs.
   143         */
   144        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   145            prefix: "$(ccOpts.prefix) -mo",
   146            suffix: "$(ccOpts.suffix)"
   147        };
   148
   149        /*!
   150         *  ======== lnkOpts ========
   151         *  User configurable linker options.
   152         *
   153         *  Defaults:
   154         *  @p(dlist)
   155         *      -`-w`
   156         *          Display linker warnings
   157         *      -`-q`
   158         *          Quite run
   159         *      -`-u`
   160         *          Place unresolved external symbol into symbol table
   161         *      -`-c`
   162         *          ROM autoinitialization model
   163         *      -`-m`
   164         *          create a map file
   165         *      -`-l`
   166         *          archive library file as linker input
   167         */
   168        override config xdc.bld.ITarget2.Options lnkOpts = {
   169            prefix: "-w -q -u _c_int00",
   170            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600_coff.lib"
   171        };
   172
   173        override config string includeOpts = "-I$(rootDir)/include";
   174
   175        final override readonly config string sectMap[string] =
   176            ti.targets.C62.sectMap;
   177
   178        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   179            ti.targets.C62.stdTypes;
   180
   181        override readonly config Int bitsPerChar =
   182            ti.targets.C62.bitsPerChar;
   183    }
   184
   185    /*
   186     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   187
   188     */
   189


module ti.targets.C66_big_endian

metaonly module ti.targets.C66_big_endian
index URL

TI C66 big endian (COFF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C66_big_endian.xdc
var C66_big_endian = xdc.useModule('ti.targets.C66_big_endian');
module-wide constants & types
    var obj = new C66_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C66_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C66_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C66_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C66_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C66_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C66_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C66_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C66_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C66_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C66_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C66_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C66_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C66_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C66_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6600 -me --abi=coffabi"
    };
    const C66_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C66_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C66_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6600 -me --abi=coffabi"
    };
    const C66_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "66";
    const C66_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=coffabi"
    };
    const C66_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const C66_big_endian.name// Nickname for this target = String "C66_big_endian";
    const C66_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C66_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C66_big_endian.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C66_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C66_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C66_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "66e";
    const C66_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C66_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C66_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C66_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C66_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C66_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C66_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "674e",
        "64Pe"
    ];
     C66_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C66_big_endian.execExt// Extension for executables = String undefined;
     C66_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C66_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C66_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600e_coff.lib"
    };
     C66_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C66_big_endian.platform// The default platform name for this target = String "ti.platforms.simTCI6616";
     C66_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C66_big_endian.profiles// The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C66_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C66_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C66_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C66_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C66_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C66_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C66_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C66_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C66_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C66_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C66_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C66_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C66_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C66_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C66_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C66_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C66_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C66_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C66_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C66_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C66_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C66_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C66_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C66_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C66_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C66_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C66_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C66_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C66_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C66_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C66_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C66_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C66_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C66_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C66_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C66_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C66_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C66_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C66_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C66_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C66_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C66_big_endian.alignDirectiveSupported = Bool true;
config C66_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C66_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C66_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C66_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6600 -me --abi=coffabi"
};
config C66_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C66_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C66_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C66_big_endian.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C66_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C66_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6600 -me --abi=coffabi"
};
config C66_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C66_big_endian.isa = String "66";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C66_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C66_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=coffabi"
};
config C66_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C66_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C66_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C66_big_endian.name = String "C66_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C66_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C66_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C66_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C66_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C66_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C66_big_endian.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C66_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C66_big_endian.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C66_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C66_big_endian.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C66_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C66_big_endian.suffix = String "66e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C66_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C66_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C66_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C66_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C66_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C66_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C66_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C66_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C66_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C66_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C66_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C66_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C66_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C66_big_endian.compatibleSuffixes = String[] [
    "674e",
    "64Pe"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C66_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C66_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C66_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C66_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C66_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C66_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C66_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C66_big_endian.includeOpts = String "-I$(rootDir)/include";
config C66_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C66_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600e_coff.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C66_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C66_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C66_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C66_big_endian.platform = String "ti.platforms.simTCI6616";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C66_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C66_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C66_big_endian.profiles // module-wide
index URL

The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line

XDCscript usage meta-domain
C66_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C66_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C66_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C66_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C66_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C66_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C66_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C66_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C66_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C66_big_endian.asmName(String CName) returns String
C66_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C66_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C66_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C66_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C66_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C66_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C66_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C66_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C66_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C66_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C66_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C66_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C66_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C66_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C66_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C66_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C66_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:55 GMT


module ti.targets.C66_big_endian

     1    /*
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C66.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== C66_big_endian ========
    19     *  TI C66 big endian (COFF)
    20     */
    21    metaonly module C66_big_endian inherits ITarget {
    22        override readonly config string name                 = "C66_big_endian";
    23        override readonly config string suffix               = "66e";
    24        override readonly config string isa                  = "66";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "big",
    27        };
    28        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    29
    30        /*
    31         *  ======== compatibleSuffixes ========
    32         */
    33        override config String compatibleSuffixes[] = ["674e", "64Pe"];
    34
    35        override readonly config string rts = "ti.targets.rts6000";
    36        override config string platform     = "ti.platforms.simTCI6616";
    37
    38        override readonly config xdc.bld.ITarget2.Command ar = {
    39            cmd: "ar6x",
    40            opts: "rq"
    41        };
    42
    43        override readonly config xdc.bld.ITarget2.Command cc = {
    44            cmd: "cl6x -c",
    45            opts: "-mv6600 -me --abi=coffabi"
    46        };
    47
    48        override readonly config xdc.bld.ITarget2.Command vers = {
    49            cmd: "cl6x",
    50            opts: "--compiler_revision"
    51        };
    52
    53        override readonly config xdc.bld.ITarget2.Command asm = {
    54            cmd: "cl6x -c",
    55            opts: "-mv6600 -me --abi=coffabi"
    56        };
    57
    58        override readonly config xdc.bld.ITarget2.Command lnk = {
    59            cmd: "lnk6x",
    60            opts: "--abi=coffabi"
    61        };
    62
    63        /*!
    64         *  ======== profiles ========
    65         *  The options in "profile" and "coverage" profiles are supported only
    66         *  for the compiler version 6.1 and newer, for this target. If the target
    67         *  is used with the compiler version 6.0, these options are removed
    68         *  from the command line.
    69         */
    70        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    71            ["debug", {
    72                compileOpts: {
    73                    copts: "--symdebug:dwarf",
    74                    defs:  "-D_DEBUG_=1",
    75                }
    76            }],
    77            ["release", {
    78                compileOpts: {
    79                    copts: "-O2",
    80                },
    81            }],
    82            ["profile", {
    83                compileOpts: {
    84                    copts: "--gen_profile_info",
    85                },
    86            }],
    87            ["coverage", {
    88                compileOpts: {
    89                    copts: "--gen_profile_info",
    90                },
    91            }],
    92            ["whole_program", {
    93                compileOpts: {
    94                    copts: "-oe -O2 -mo",
    95                },
    96            }],
    97            ["whole_program_debug", {
    98                compileOpts: {
    99                    copts: "-oe --symdebug:dwarf -mo",
   100                },
   101            }],
   102        ];
   103
   104        /*!
   105         *  ======== asmOpts ========
   106         *  User configurable assembler options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-qq`
   111         *          super quiet mode
   112         */
   113        override config xdc.bld.ITarget2.Options asmOpts = {
   114            prefix: "-qq",
   115            suffix: ""
   116        };
   117
   118        /*!
   119         *  ======== ccOpts ========
   120         *  User configurable compiler options.
   121         *
   122         *  Defaults:
   123         *  @p(dlist)
   124         *      -`-qq`
   125         *          super quiet mode
   126         *      -`-pdsw225`
   127         *          generate a warning for implicitly declared functions; i.e.,
   128         *          functions without prototypes
   129         */
   130        override config xdc.bld.ITarget2.Options ccOpts = {
   131            prefix: "-qq -pdsw225",
   132            suffix: ""
   133        };
   134
   135        /*!
   136         *  ======== ccConfigOpts ========
   137         *  User configurable compiler options for the generated config C file.
   138         *
   139         *  -mo places all functions into subsections
   140         *  --no_compress helps with compile time with no real difference in
   141         *  code size since the generated config.c is mostly data and small
   142         *  function stubs.
   143         */
   144        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   145            prefix: "$(ccOpts.prefix) -mo",
   146            suffix: "$(ccOpts.suffix)"
   147        };
   148
   149        /*!
   150         *  ======== lnkOpts ========
   151         *  User configurable linker options.
   152         *
   153         *  Defaults:
   154         *  @p(dlist)
   155         *      -`-w`
   156         *          Display linker warnings
   157         *      -`-q`
   158         *          Quite run
   159         *      -`-u`
   160         *          Place unresolved external symbol into symbol table
   161         *      -`-c`
   162         *          ROM autoinitialization model
   163         *      -`-m`
   164         *          create a map file
   165         *      -`-l`
   166         *          archive library file as linker input
   167         */
   168        override config xdc.bld.ITarget2.Options lnkOpts = {
   169            prefix: "-w -q -u _c_int00",
   170            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600e_coff.lib"
   171        };
   172
   173        override config string includeOpts = "-I$(rootDir)/include";
   174
   175        final override readonly config string sectMap[string] =
   176            ti.targets.C62.sectMap;
   177
   178        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   179            ti.targets.C62.stdTypes;
   180
   181        override readonly config Int bitsPerChar =
   182            ti.targets.C62.bitsPerChar;
   183    }
   184
   185    /*
   186     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   187
   188     */
   189


module ti.targets.C67

metaonly module ti.targets.C67
index URL

TI C67 default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C67.xdc
var C67 = xdc.useModule('ti.targets.C67');
module-wide constants & types
    var obj = new C67.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C67.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C67.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C67.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C67.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C67.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C67.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C67.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C67.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C67.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C67.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C67.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C67.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C67.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C67.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6700"
    };
    const C67.base// A target that this target is based upon = ITarget.Module C62.module;
    const C67.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C67.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6700"
    };
    const C67.isa// CPU Instruction Set Architecture (ISA) = String "67";
    const C67.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C67.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const C67.name// Nickname for this target = String "C67";
    const C67.os// Name of OS required to run programs built for this target = String computed value;
    const C67.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C67.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C67.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C67.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C67.suffix// Suffix appended to all objs, libraries, and executable = String "67";
    const C67.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C67.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C67.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C67.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C67.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C67.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C67.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "62"
    ];
     C67.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C67.execExt// Extension for executables = String undefined;
     C67.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C67.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C67.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6700.lib"
    };
     C67.pathPrefix// A prefix to the PATH environment variable = String "";
     C67.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320C6713";
     C67.platforms// A set of platforms that can support this target = String[] [ ];
     C67.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C67.rootDir// Installation directory for this target's code generation tools = String undefined;
     C67.version// The Compatibility Key associated with this target = String undefined;
     C67.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C67.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C67.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C67.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C67.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C67.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C67.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C67.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C67.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C67.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C67.getVersion// Get a target-specific Compatibility Key string() returns String
     C67.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C67.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C67.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C67.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C67.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C67.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C67.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C67.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C67.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C67.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C67.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C67.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C67.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C67.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C67.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C67.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C67.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C67.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C67.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C67.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C67.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C67.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C67.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C67.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C67.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C67.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C67.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C67.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C67.alignDirectiveSupported = Bool true;
config C67.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C67.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C67.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C67.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6700"
};
config C67.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C67.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C67.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C67.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C67.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C67.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6700"
};
config C67.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C67.isa = String "67";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C67.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C67.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C67.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C67.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C67.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C67.name = String "C67";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C67.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C67.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C67.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C67.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C67.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C67.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C67.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C67.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C67.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C67.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C67.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C67.suffix = String "67";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C67.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C67.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C67.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C67.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C67.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C67.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C67.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C67.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C67.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C67.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C67.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C67.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C67.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C67.compatibleSuffixes = String[] [
    "62"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C67.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C67.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C67.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C67.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C67.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C67.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C67.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C67.includeOpts = String "-I$(rootDir)/include";
config C67.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C67.lnkOpts = ITarget2.Options {
    prefix: "-q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6700.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C67.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C67.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C67.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C67.platform = String "ti.platforms.sim6xxx:TMS320C6713";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C67.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C67.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C67.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C67.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C67.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C67.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C67.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C67.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C67.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C67.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C67.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C67.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C67.asmName(String CName) returns String
C67.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C67.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C67.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C67.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C67.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C67.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C67.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C67.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C67.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C67.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C67.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C67.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C67.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C67.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C67.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C67.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C67.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C67.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C67.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C67.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:55 GMT


module ti.targets.C67

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C67.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C67 ========
    20     *  TI C67 default runtime model (little endian)
    21     */
    22    metaonly module C67 inherits ti.targets.ITarget {
    23        override readonly config string name                 = "C67";
    24        override readonly config string suffix               = "67";
    25        override readonly config string isa                  = "67";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "little"
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        override readonly config string rts = "ti.targets.rts6000";
    32        override config string platform     = "ti.platforms.sim6xxx:TMS320C6713";
    33
    34        /*
    35         *  ======== compatibleSuffixes ========
    36         */
    37        override config String compatibleSuffixes[] = ["62"];
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-mv6700"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-mv6700"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: ""
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== lnkOpts ========
    97         *  User configurable linker options.
    98         *
    99         *  Defaults:
   100         *  @p(dlist)
   101         *      -`-w`
   102         *          Display linker warnings
   103         *      -`-q`
   104         *          Quite run
   105         *      -`-u`
   106         *          Place unresolved external symbol into symbol table
   107         *      -`-c`
   108         *          ROM autoinitialization model
   109         *      -`-m`
   110         *          create a map file
   111         *      -`-l`
   112         *          archive library file as linker input
   113         */
   114        override config xdc.bld.ITarget2.Options lnkOpts = {
   115            prefix: "-q -u _c_int00",
   116            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6700.lib"
   117        };
   118
   119        override config string includeOpts = "-I$(rootDir)/include";
   120
   121        final override readonly config string sectMap[string] =
   122            ti.targets.C62.sectMap;
   123
   124        override readonly config xdc.bld.ITarget.StdTypes stdTypes = C62.stdTypes;
   125
   126        override readonly config Int bitsPerChar = C62.bitsPerChar;
   127    }
   128    /*
   129     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   130
   131     */
   132


module ti.targets.C674

metaonly module ti.targets.C674
index URL

TI C674 default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C674.xdc
var C674 = xdc.useModule('ti.targets.C674');
module-wide constants & types
    var obj = new C674.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C674.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C674.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C674.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C674.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C674.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C674.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C674.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C674.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C674.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C674.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C674.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C674.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C674.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C674.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6740"
    };
    const C674.base// A target that this target is based upon = ITarget.Module C62.module;
    const C674.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C674.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6740"
    };
    const C674.isa// CPU Instruction Set Architecture (ISA) = String "674";
    const C674.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C674.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const C674.name// Nickname for this target = String "C674";
    const C674.os// Name of OS required to run programs built for this target = String computed value;
    const C674.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C674.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C674.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C674.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C674.suffix// Suffix appended to all objs, libraries, and executable = String "674";
    const C674.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C674.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C674.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C674.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C674.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C674.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C674.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "64P",
        "64",
        "62"
    ];
     C674.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C674.execExt// Extension for executables = String undefined;
     C674.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C674.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C674.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740.lib"
    };
     C674.pathPrefix// A prefix to the PATH environment variable = String "";
     C674.platform// The default platform name for this target = String "ti.platforms.evmDA830";
     C674.platforms// A set of platforms that can support this target = String[] [ ];
     C674.profiles// The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C674.rootDir// Installation directory for this target's code generation tools = String undefined;
     C674.version// The Compatibility Key associated with this target = String undefined;
     C674.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C674.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C674.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C674.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C674.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C674.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C674.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C674.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C674.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C674.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C674.getVersion// Get a target-specific Compatibility Key string() returns String
     C674.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C674.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C674.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C674.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C674.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C674.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C674.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C674.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C674.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C674.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C674.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C674.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C674.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C674.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C674.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C674.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C674.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C674.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C674.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C674.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C674.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C674.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C674.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C674.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C674.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C674.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C674.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C674.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C674.alignDirectiveSupported = Bool true;
config C674.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C674.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C674.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C674.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6740"
};
config C674.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C674.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C674.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C674.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C674.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C674.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6740"
};
config C674.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C674.isa = String "674";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C674.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C674.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C674.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C674.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C674.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C674.name = String "C674";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C674.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C674.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C674.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C674.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C674.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C674.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C674.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C674.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C674.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C674.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C674.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C674.suffix = String "674";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C674.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C674.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C674.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C674.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C674.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C674.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C674.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C674.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C674.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C674.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C674.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C674.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C674.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C674.compatibleSuffixes = String[] [
    "64P",
    "64",
    "62"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C674.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C674.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C674.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C674.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C674.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C674.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C674.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C674.includeOpts = String "-I$(rootDir)/include";
config C674.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C674.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C674.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C674.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C674.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C674.platform = String "ti.platforms.evmDA830";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C674.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C674.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C674.profiles // module-wide
index URL

The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line

XDCscript usage meta-domain
C674.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C674.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C674.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C674.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C674.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C674.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C674.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C674.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C674.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C674.asmName(String CName) returns String
C674.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C674.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C674.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C674.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C674.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C674.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C674.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C674.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C674.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C674.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C674.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C674.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C674.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C674.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C674.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C674.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C674.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C674.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C674.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C674.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:55 GMT


module ti.targets.C674

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C674.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C674 ========
    20     *  TI C674 default runtime model (little endian)
    21     */
    22    metaonly module C674 inherits ti.targets.ITarget {
    23        override readonly config string name                 = "C674";
    24        override readonly config string suffix               = "674";
    25        override readonly config string isa                  = "674";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "little"
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        /*
    32         *  ======== compatibleSuffixes ========
    33         */
    34        override config String compatibleSuffixes[] = ["64P", "64", "62"];
    35
    36        override readonly config string rts = "ti.targets.rts6000";
    37        override config string platform     = "ti.platforms.evmDA830";
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-mv6740"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-mv6740"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: ""
    62        };
    63
    64        /*!
    65         *  ======== profiles ========
    66         *  The options in "profile" and "coverage" profiles are supported only
    67         *  for the compiler version 6.1 and newer, for this target. If the target
    68         *  is used with the compiler version 6.0, these options are removed
    69         *  from the command line.
    70         */
    71        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    72            ["debug", {
    73                compileOpts: {
    74                    copts: "--symdebug:dwarf",
    75                    defs:  "-D_DEBUG_=1",
    76                }
    77            }],
    78            ["release", {
    79                compileOpts: {
    80                    copts: "-O2",
    81                },
    82            }],
    83            ["profile", {
    84                compileOpts: {
    85                    copts: "--gen_profile_info",
    86                },
    87            }],
    88            ["coverage", {
    89                compileOpts: {
    90                    copts: "--gen_profile_info",
    91                },
    92            }],
    93            ["whole_program", {
    94                compileOpts: {
    95                    copts: "-oe -O2 -mo",
    96                },
    97            }],
    98            ["whole_program_debug", {
    99                compileOpts: {
   100                    copts: "-oe --symdebug:dwarf -mo",
   101                },
   102            }],
   103        ];
   104
   105        /*!
   106         *  ======== asmOpts ========
   107         *  User configurable assembler options.
   108         *
   109         *  Defaults:
   110         *  @p(dlist)
   111         *      -`-qq`
   112         *          super quiet mode
   113         */
   114        override config xdc.bld.ITarget2.Options asmOpts = {
   115            prefix: "-qq",
   116            suffix: ""
   117        };
   118
   119        /*!
   120         *  ======== ccOpts ========
   121         *  User configurable compiler options.
   122         *
   123         *  Defaults:
   124         *  @p(dlist)
   125         *      -`-qq`
   126         *          super quiet mode
   127         *      -`-pdsw225`
   128         *          generate a warning for implicitly declared functions; i.e.,
   129         *          functions without prototypes
   130         */
   131        override config xdc.bld.ITarget2.Options ccOpts = {
   132            prefix: "-qq -pdsw225",
   133            suffix: ""
   134        };
   135
   136        /*!
   137         *  ======== ccConfigOpts ========
   138         *  User configurable compiler options for the generated config C file.
   139         *
   140         *  -mo places all functions into subsections
   141         *  --no_compress helps with compile time with no real difference in
   142         *  code size since the generated config.c is mostly data and small
   143         *  function stubs.
   144         */
   145        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   146            prefix: "$(ccOpts.prefix) -mo --no_compress",
   147            suffix: "$(ccOpts.suffix)"
   148        };
   149
   150        /*!
   151         *  ======== lnkOpts ========
   152         *  User configurable linker options.
   153         *
   154         *  Defaults:
   155         *  @p(dlist)
   156         *      -`-w`
   157         *          Display linker warnings
   158         *      -`-q`
   159         *          Quite run
   160         *      -`-u`
   161         *          Place unresolved external symbol into symbol table
   162         *      -`-c`
   163         *          ROM autoinitialization model
   164         *      -`-m`
   165         *          create a map file
   166         *      -`-l`
   167         *          archive library file as linker input
   168         */
   169        override config xdc.bld.ITarget2.Options lnkOpts = {
   170            prefix: "-w -q -u _c_int00",
   171            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740.lib"
   172        };
   173
   174        override config string includeOpts = "-I$(rootDir)/include";
   175
   176        final override readonly config string sectMap[string] =
   177            ti.targets.C62.sectMap;
   178
   179        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   180            ti.targets.C62.stdTypes;
   181
   182        override readonly config Int bitsPerChar =
   183            ti.targets.C62.bitsPerChar;
   184    }
   185
   186    /*
   187     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   188
   189     */
   190


module ti.targets.C674_big_endian

metaonly module ti.targets.C674_big_endian
index URL

TI C674 big endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C674_big_endian.xdc
var C674_big_endian = xdc.useModule('ti.targets.C674_big_endian');
module-wide constants & types
    var obj = new C674_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C674_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C674_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C674_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C674_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C674_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C674_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C674_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C674_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C674_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C674_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C674_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C674_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C674_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C674_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6740"
    };
    const C674_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C674_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C674_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6740"
    };
    const C674_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "674";
    const C674_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C674_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const C674_big_endian.name// Nickname for this target = String "C674_big_endian";
    const C674_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C674_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C674_big_endian.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C674_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C674_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C674_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "674e";
    const C674_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C674_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C674_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C674_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C674_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C674_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C674_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "64Pe",
        "64e",
        "62e"
    ];
     C674_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C674_big_endian.execExt// Extension for executables = String undefined;
     C674_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C674_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C674_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740e.lib"
    };
     C674_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C674_big_endian.platform// The default platform name for this target = String "ti.platforms.evmDA830";
     C674_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C674_big_endian.profiles// The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C674_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C674_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C674_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C674_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C674_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C674_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C674_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C674_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C674_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C674_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C674_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C674_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C674_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C674_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C674_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C674_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C674_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C674_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C674_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C674_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C674_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C674_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C674_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C674_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C674_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C674_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C674_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C674_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C674_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C674_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C674_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C674_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C674_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C674_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C674_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C674_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C674_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C674_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C674_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C674_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C674_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C674_big_endian.alignDirectiveSupported = Bool true;
config C674_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C674_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C674_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C674_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6740"
};
config C674_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C674_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C674_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C674_big_endian.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C674_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C674_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6740"
};
config C674_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C674_big_endian.isa = String "674";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C674_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C674_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C674_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C674_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C674_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C674_big_endian.name = String "C674_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C674_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C674_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C674_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C674_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C674_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C674_big_endian.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C674_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C674_big_endian.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C674_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C674_big_endian.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C674_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C674_big_endian.suffix = String "674e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C674_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C674_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C674_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C674_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C674_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C674_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C674_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C674_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C674_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C674_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C674_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C674_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C674_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C674_big_endian.compatibleSuffixes = String[] [
    "64Pe",
    "64e",
    "62e"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C674_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C674_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C674_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C674_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C674_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C674_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C674_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C674_big_endian.includeOpts = String "-I$(rootDir)/include";
config C674_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C674_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740e.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C674_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C674_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C674_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C674_big_endian.platform = String "ti.platforms.evmDA830";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C674_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C674_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C674_big_endian.profiles // module-wide
index URL

The options in "profile" and "coverage" profiles are supported only for the compiler version 6.1 and newer, for this target. If the target is used with the compiler version 6.0, these options are removed from the command line

XDCscript usage meta-domain
C674_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C674_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C674_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C674_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C674_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C674_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C674_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C674_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C674_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C674_big_endian.asmName(String CName) returns String
C674_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C674_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C674_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C674_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C674_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C674_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C674_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C674_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C674_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C674_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C674_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C674_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C674_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C674_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C674_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C674_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C674_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:55 GMT


module ti.targets.C674_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C674_big_endian.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C674_big_endian ========
    20     *  TI C674 big endian
    21     */
    22    metaonly module C674_big_endian inherits ti.targets.ITarget {
    23        override readonly config string name                 = "C674_big_endian";
    24        override readonly config string suffix               = "674e";
    25        override readonly config string isa                  = "674";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "big"
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        /*
    32         *  ======== compatibleSuffixes ========
    33         */
    34        override config String compatibleSuffixes[] = ["64Pe", "64e", "62e"];
    35
    36        override readonly config string rts = "ti.targets.rts6000";
    37        override config string platform     = "ti.platforms.evmDA830";
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-me -mv6740"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-me -mv6740"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: ""
    62        };
    63
    64        /*!
    65         *  ======== profiles ========
    66         *  The options in "profile" and "coverage" profiles are supported only
    67         *  for the compiler version 6.1 and newer, for this target. If the target
    68         *  is used with the compiler version 6.0, these options are removed
    69         *  from the command line.
    70         */
    71        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    72            ["debug", {
    73                compileOpts: {
    74                    copts: "--symdebug:dwarf",
    75                    defs:  "-D_DEBUG_=1",
    76                }
    77            }],
    78            ["release", {
    79                compileOpts: {
    80                    copts: "-O2",
    81                },
    82            }],
    83            ["profile", {
    84                compileOpts: {
    85                    copts: "--gen_profile_info",
    86                },
    87            }],
    88            ["coverage", {
    89                compileOpts: {
    90                    copts: "--gen_profile_info",
    91                },
    92            }],
    93            ["whole_program", {
    94                compileOpts: {
    95                    copts: "-oe -O2 -mo",
    96                },
    97            }],
    98            ["whole_program_debug", {
    99                compileOpts: {
   100                    copts: "-oe --symdebug:dwarf -mo",
   101                },
   102            }],
   103        ];
   104
   105        /*!
   106         *  ======== asmOpts ========
   107         *  User configurable assembler options.
   108         *
   109         *  Defaults:
   110         *  @p(dlist)
   111         *      -`-qq`
   112         *          super quiet mode
   113         */
   114        override config xdc.bld.ITarget2.Options asmOpts = {
   115            prefix: "-qq",
   116            suffix: ""
   117        };
   118
   119        /*!
   120         *  ======== ccOpts ========
   121         *  User configurable compiler options.
   122         *
   123         *  Defaults:
   124         *  @p(dlist)
   125         *      -`-qq`
   126         *          super quiet mode
   127         *      -`-pdsw225`
   128         *          generate a warning for implicitly declared functions; i.e.,
   129         *          functions without prototypes
   130         */
   131        override config xdc.bld.ITarget2.Options ccOpts = {
   132            prefix: "-qq -pdsw225",
   133            suffix: ""
   134        };
   135
   136        /*!
   137         *  ======== ccConfigOpts ========
   138         *  User configurable compiler options for the generated config C file.
   139         *
   140         *  -mo places all functions into subsections
   141         *  --no_compress helps with compile time with no real difference in
   142         *  code size since the generated config.c is mostly data and small
   143         *  function stubs.
   144         */
   145        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   146            prefix: "$(ccOpts.prefix) -mo --no_compress",
   147            suffix: "$(ccOpts.suffix)"
   148        };
   149
   150        /*!
   151         *  ======== lnkOpts ========
   152         *  User configurable linker options.
   153         *
   154         *  Defaults:
   155         *  @p(dlist)
   156         *      -`-w`
   157         *          Display linker warnings
   158         *      -`-q`
   159         *          Quite run
   160         *      -`-u`
   161         *          Place unresolved external symbol into symbol table
   162         *      -`-c`
   163         *          ROM autoinitialization model
   164         *      -`-m`
   165         *          create a map file
   166         *      -`-l`
   167         *          archive library file as linker input
   168         */
   169        override config xdc.bld.ITarget2.Options lnkOpts = {
   170            prefix: "-w -q -u _c_int00",
   171            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740e.lib"
   172        };
   173
   174        override config string includeOpts = "-I$(rootDir)/include";
   175
   176        final override readonly config string sectMap[string] =
   177            ti.targets.C62.sectMap;
   178
   179        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   180            ti.targets.C62.stdTypes;
   181
   182        override readonly config Int bitsPerChar =
   183            ti.targets.C62.bitsPerChar;
   184    }
   185    /*
   186     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:24; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   187
   188     */
   189


module ti.targets.C67P

metaonly module ti.targets.C67P
index URL

TI C67P default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C67P.xdc
var C67P = xdc.useModule('ti.targets.C67P');
module-wide constants & types
    var obj = new C67P.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C67P.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C67P.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C67P.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C67P.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C67P.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C67P.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C67P.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C67P.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C67P.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C67P.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C67P.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C67P.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C67P.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C67P.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv67p"
    };
    const C67P.base// A target that this target is based upon = ITarget.Module C62.module;
    const C67P.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C67P.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv67p"
    };
    const C67P.isa// CPU Instruction Set Architecture (ISA) = String "67P";
    const C67P.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C67P.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const C67P.name// Nickname for this target = String "C67P";
    const C67P.os// Name of OS required to run programs built for this target = String computed value;
    const C67P.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C67P.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C67P.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C67P.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C67P.suffix// Suffix appended to all objs, libraries, and executable = String "67P";
    const C67P.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C67P.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C67P.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C67P.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C67P.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C67P.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C67P.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "67",
        "62"
    ];
     C67P.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C67P.execExt// Extension for executables = String undefined;
     C67P.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C67P.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C67P.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts67plus.lib"
    };
     C67P.pathPrefix// A prefix to the PATH environment variable = String "";
     C67P.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320C6727";
     C67P.platforms// A set of platforms that can support this target = String[] [ ];
     C67P.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C67P.rootDir// Installation directory for this target's code generation tools = String undefined;
     C67P.version// The Compatibility Key associated with this target = String undefined;
     C67P.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C67P.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C67P.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C67P.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C67P.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C67P.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C67P.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C67P.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C67P.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C67P.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C67P.getVersion// Get a target-specific Compatibility Key string() returns String
     C67P.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C67P.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C67P.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C67P.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C67P.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C67P.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C67P.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C67P.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C67P.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C67P.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C67P.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C67P.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C67P.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C67P.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C67P.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C67P.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C67P.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C67P.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C67P.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C67P.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C67P.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C67P.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C67P.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C67P.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C67P.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C67P.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C67P.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C67P.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C67P.alignDirectiveSupported = Bool true;
config C67P.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C67P.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C67P.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C67P.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv67p"
};
config C67P.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C67P.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C67P.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C67P.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C67P.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C67P.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv67p"
};
config C67P.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C67P.isa = String "67P";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C67P.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C67P.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C67P.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C67P.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C67P.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C67P.name = String "C67P";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C67P.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C67P.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C67P.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C67P.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C67P.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C67P.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C67P.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C67P.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C67P.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C67P.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C67P.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C67P.suffix = String "67P";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C67P.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C67P.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C67P.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C67P.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C67P.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C67P.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C67P.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C67P.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C67P.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C67P.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C67P.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C67P.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C67P.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C67P.compatibleSuffixes = String[] [
    "67",
    "62"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C67P.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C67P.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C67P.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C67P.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C67P.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C67P.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C67P.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C67P.includeOpts = String "-I$(rootDir)/include";
config C67P.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C67P.lnkOpts = ITarget2.Options {
    prefix: "-q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts67plus.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C67P.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C67P.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C67P.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C67P.platform = String "ti.platforms.sim6xxx:TMS320C6727";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C67P.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C67P.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C67P.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C67P.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C67P.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C67P.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C67P.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C67P.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C67P.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C67P.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C67P.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C67P.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67P.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C67P.asmName(String CName) returns String
C67P.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C67P.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67P.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C67P.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C67P.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C67P.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C67P.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C67P.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C67P.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C67P.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C67P.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C67P.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C67P.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C67P.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C67P.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C67P.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C67P.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C67P.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67P.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C67P.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C67P.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C67P.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:56 GMT


module ti.targets.C67P

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C67P.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C67P ========
    20     *  TI C67P default runtime model (little endian)
    21     */
    22    metaonly module C67P inherits ti.targets.ITarget {
    23        override readonly config string name                 = "C67P";
    24        override readonly config string suffix               = "67P";
    25        override readonly config string isa                  = "67P";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "little"
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        /*
    32         *  ======== compatibleSuffixes ========
    33         */
    34        override config String compatibleSuffixes[] = ["67", "62"];
    35
    36        override readonly config string rts = "ti.targets.rts6000";
    37        override config string platform     = "ti.platforms.sim6xxx:TMS320C6727";
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-mv67p"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-mv67p"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: ""
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== lnkOpts ========
    97         *  User configurable linker options.
    98         *
    99         *  Defaults:
   100         *  @p(dlist)
   101         *      -`-w`
   102         *          Display linker warnings
   103         *      -`-q`
   104         *          Quite run
   105         *      -`-u`
   106         *          Place unresolved external symbol into symbol table
   107         *      -`-c`
   108         *          ROM autoinitialization model
   109         *      -`-m`
   110         *          create a map file
   111         *      -`-l`
   112         *          archive library file as linker input
   113         */
   114        override config xdc.bld.ITarget2.Options lnkOpts = {
   115            prefix: "-q -u _c_int00",
   116            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts67plus.lib"
   117        };
   118
   119        override config string includeOpts = "-I$(rootDir)/include";
   120
   121        final override readonly config string sectMap[string] =
   122            ti.targets.C62.sectMap;
   123
   124        override readonly config xdc.bld.ITarget.StdTypes stdTypes = C62.stdTypes;
   125
   126        override readonly config Int bitsPerChar = C62.bitsPerChar;
   127    }
   128    /*
   129     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:25; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   130
   131     */
   132


module ti.targets.C67_big_endian

metaonly module ti.targets.C67_big_endian
index URL

TI C67 big endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/C67_big_endian.xdc
var C67_big_endian = xdc.useModule('ti.targets.C67_big_endian');
module-wide constants & types
    var obj = new C67_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C67_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C67_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C67_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C67_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C67_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C67_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C67_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C67_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C67_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C67_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C67_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C67_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C67_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C67_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6700"
    };
    const C67_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C67_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C67_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6700"
    };
    const C67_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "67";
    const C67_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: ""
    };
    const C67_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const C67_big_endian.name// Nickname for this target = String "C67_big_endian";
    const C67_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C67_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C67_big_endian.sectMap// Output section name to segment type mapping = String[string] C62.sectMap;
    const C67_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const C67_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes C62.stdTypes;
    const C67_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "67e";
    const C67_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C67_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C67_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C67_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C67_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C67_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C67_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "62e"
    ];
     C67_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C67_big_endian.execExt// Extension for executables = String undefined;
     C67_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C67_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C67_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6700e.lib"
    };
     C67_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C67_big_endian.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320C6713";
     C67_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C67_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C67_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C67_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C67_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C67_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C67_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C67_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C67_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C67_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C67_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C67_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C67_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C67_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C67_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C67_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C67_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C67_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C67_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C67_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C67_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C67_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C67_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C67_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C67_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C67_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C67_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C67_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C67_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C67_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C67_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C67_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C67_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C67_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C67_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C67_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C67_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C67_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C67_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C67_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C67_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C67_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C67_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C67_big_endian.alignDirectiveSupported = Bool true;
config C67_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C67_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C67_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C67_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6700"
};
config C67_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C67_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C67_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C67_big_endian.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C67_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C67_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6700"
};
config C67_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C67_big_endian.isa = String "67";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C67_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C67_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: ""
};
config C67_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C67_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C67_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C67_big_endian.name = String "C67_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C67_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C67_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C67_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C67_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C67_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C67_big_endian.sectMap = String[string] C62.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C67_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const C67_big_endian.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C67_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C67_big_endian.stdTypes = ITarget.StdTypes C62.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C67_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C67_big_endian.suffix = String "67e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C67_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C67_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C67_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C67_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C67_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C67_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C67_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C67_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C67_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C67_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config C67_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C67_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C67_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C67_big_endian.compatibleSuffixes = String[] [
    "62e"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C67_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C67_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C67_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C67_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C67_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C67_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C67_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C67_big_endian.includeOpts = String "-I$(rootDir)/include";
config C67_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C67_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6700e.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C67_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C67_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C67_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C67_big_endian.platform = String "ti.platforms.sim6xxx:TMS320C6713";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C67_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C67_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C67_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C67_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C67_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C67_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C67_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C67_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C67_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C67_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C67_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C67_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C67_big_endian.asmName(String CName) returns String
C67_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C67_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C67_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C67_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C67_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C67_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C67_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C67_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C67_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C67_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C67_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C67_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C67_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C67_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C67_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C67_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C67_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C67_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C67_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C67_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:56 GMT


module ti.targets.C67_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C67_big_endian.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C67_big_endian ========
    20     *  TI C67 big endian
    21     */
    22    metaonly module C67_big_endian inherits ti.targets.ITarget {
    23        override readonly config string name                 = "C67_big_endian";
    24        override readonly config string suffix               = "67e";
    25        override readonly config string isa                  = "67";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "big"
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        override readonly config string rts = "ti.targets.rts6000";
    32        override config string platform     = "ti.platforms.sim6xxx:TMS320C6713";
    33
    34        /*
    35         *  ======== compatibleSuffixes ========
    36         */
    37        override config String compatibleSuffixes[] = ["62e"];
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-me -mv6700"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-me -mv6700"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: ""
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== lnkOpts ========
    97         *  User configurable linker options.
    98         *
    99         *  Defaults:
   100         *  @p(dlist)
   101         *      -`-w`
   102         *          Display linker warnings
   103         *      -`-q`
   104         *          Quite run
   105         *      -`-u`
   106         *          Place unresolved external symbol into symbol table
   107         *      -`-c`
   108         *          ROM autoinitialization model
   109         *      -`-m`
   110         *          create a map file
   111         *      -`-l`
   112         *          archive library file as linker input
   113         */
   114        override config xdc.bld.ITarget2.Options lnkOpts = {
   115            prefix: "-q -u _c_int00",
   116            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6700e.lib"
   117        };
   118
   119        override config string includeOpts = "-I$(rootDir)/include";
   120
   121        final override readonly config string sectMap[string] =
   122            ti.targets.C62.sectMap;
   123
   124        override readonly config xdc.bld.ITarget.StdTypes stdTypes = C62.stdTypes;
   125
   126        override readonly config Int bitsPerChar = C62.bitsPerChar;
   127    };
   128    /*
   129     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:25; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   130
   131     */
   132


interface ti.targets.ITarget

metaonly interface ti.targets.ITarget
index URL

A TI specific extension to the base xdc.bld.ITarget2 interface

XDCspec summary sourced in ti/targets/ITarget.xdc
metaonly interface ITarget { ...
// inherits xdc.bld.ITarget2
    // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/ITarget.xdc
package ti.targets;
metaonly interface ITarget inherits ITarget2 {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    readonly config ITarget2.Command ar// The command used to create an archive;
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    readonly config ITarget.Module base// A target that this target is based upon;
    readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    readonly config ITarget2.Command lnk// The command used to link executables;
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    readonly config String sectMap// Output section name to segment type mapping[string];
    override readonly config String stdInclude// Standard C/C++ types header = "ti/targets/std.h";
    readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 0,
            align: 0
        },
        t_Char: {
            size: 0,
            align: 0
        },
        t_Double: {
            size: 0,
            align: 0
        },
        t_Float: {
            size: 0,
            align: 0
        },
        t_Fxn: {
            size: 0,
            align: 0
        },
        t_Int: {
            size: 0,
            align: 0
        },
        t_Int8: {
            size: 0,
            align: 0
        },
        t_Int16: {
            size: 0,
            align: 0
        },
        t_Int32: {
            size: 0,
            align: 0
        },
        t_Int40: {
            size: 0,
            align: 0
        },
        t_Int64: {
            size: 0,
            align: 0
        },
        t_Long: {
            size: 0,
            align: 0
        },
        t_LDouble: {
            size: 0,
            align: 0
        },
        t_LLong: {
            size: 0,
            align: 0
        },
        t_Ptr: {
            size: 0,
            align: 0
        },
        t_Short: {
            size: 0,
            align: 0
        },
        t_Size: {
            size: 0,
            align: 0
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number;
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
    config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    config String includeOpts// Additional user configurable target-specific include path options;
    config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "",
        suffix: ""
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    config String platform// The default platform name for this target;
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef ITarget.StringArray
index URL
XDCspec declarations sourced in ti/targets/ITarget.xdc
typedef String StringArray[];
struct ITarget.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct ITarget.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct ITarget.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ITarget.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct ITarget.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ITarget.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ITarget.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ITarget.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct ITarget.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ITarget.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ITarget.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct ITarget.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/ITarget.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config ITarget.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/ITarget.xdc
override readonly config Bool alignDirectiveSupported = true;
config ITarget.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config ITarget2.Command ar;
config ITarget.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config ITarget2.Command asm;
config ITarget.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ITarget.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ITarget.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config ITarget2.Command cc;
config ITarget.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ITarget.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config ITarget2.Command lnk;
config ITarget.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ITarget.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ITarget.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ITarget.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ITarget.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config String sectMap[string];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ITarget.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/ITarget.xdc
override readonly config String stdInclude = "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ITarget.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 0,
        align: 0
    },
    t_Char: {
        size: 0,
        align: 0
    },
    t_Double: {
        size: 0,
        align: 0
    },
    t_Float: {
        size: 0,
        align: 0
    },
    t_Fxn: {
        size: 0,
        align: 0
    },
    t_Int: {
        size: 0,
        align: 0
    },
    t_Int8: {
        size: 0,
        align: 0
    },
    t_Int16: {
        size: 0,
        align: 0
    },
    t_Int32: {
        size: 0,
        align: 0
    },
    t_Int40: {
        size: 0,
        align: 0
    },
    t_Int64: {
        size: 0,
        align: 0
    },
    t_Long: {
        size: 0,
        align: 0
    },
    t_LDouble: {
        size: 0,
        align: 0
    },
    t_LLong: {
        size: 0,
        align: 0
    },
    t_Ptr: {
        size: 0,
        align: 0
    },
    t_Short: {
        size: 0,
        align: 0
    },
    t_Size: {
        size: 0,
        align: 0
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config ITarget.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ITarget.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/ITarget.xdc
readonly config ITarget2.Command vers;
config ITarget.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/ITarget.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/ITarget.xdc
config ITarget2.Options asmOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/ITarget.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config ITarget.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in ti/targets/ITarget.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config ITarget.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/ITarget.xdc
config ITarget2.Options ccOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/ITarget.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ITarget.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/ITarget.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config ITarget.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/ITarget.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ITarget.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/ITarget.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config ITarget.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/ITarget.xdc
config String includeOpts;
config ITarget.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/ITarget.xdc
config ITarget2.Options lnkOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/ITarget.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config ITarget.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/ITarget.xdc
config String platform;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ITarget.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/ITarget.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ITarget.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/ITarget.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ITarget.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/ITarget.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ITarget.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/ITarget.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config ITarget.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/ITarget.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
ITarget.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/ITarget.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/ITarget.xdc
String asmName(String CName);
ITarget.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/ITarget.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/ITarget.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ITarget.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/ITarget.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/ITarget.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/ITarget.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
ITarget.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/ITarget.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
ITarget.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/ITarget.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/ITarget.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/ITarget.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/ITarget.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ITarget.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/ITarget.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:49 GMT


interface ti.targets.ITarget

     1    /*
     2     *  Copyright (c) 2009 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== ITarget.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== ITarget ========
    19     *  A TI specific extension to the base `xdc.bld.ITarget2` interface.
    20     */
    21    @TargetHeader("xdc/bld/stddefs.xdt")
    22    metaonly interface ITarget inherits xdc.bld.ITarget2 {
    23
    24        override readonly config string stdInclude = "ti/targets/std.h";
    25
    26        /*!
    27         *  ======== binDir ========
    28         *  This parameter controls the location of the target's commands.
    29         *
    30         *  All build commands returned within a command set
    31         *  (`xdc.bld.ITarget.CommandSet.cmds`) are formed by prefixing `binDir`
    32         *  to this target's Command.cmd specification.  For example, the
    33         *  compile command returned is formed as follows:
    34         *  @p(code)
    35         *      $(binDir)$(cc.cmd)
    36         *  @p
    37         *  where, `$(binDir)` is this target's `binDir` value and `$(cc.cmd)` is
    38         *  the value of this target's `cc.cmd` string.
    39         *
    40         *  If `binDir` is non-empty then it must end with '/'.  If it is empty,
    41         *  the target's commands (compiler, linker, archiver, etc.) will be
    42         *  located along a path constructed from this target's `pathPrefix`.
    43         */
    44        config string binDir = "$(rootDir)/bin/";
    45
    46        /*!
    47         *  ======== pathPrefix ========
    48         *  A prefix to the PATH environment variable
    49         *
    50         *  Each target command is executed with C_DIR set to "" and PATH
    51         *  set as follows:
    52         *  @p(code)
    53         *      $(pathPrefix);$(binDir);$(PATH)
    54         *  @p
    55         *  where, `$(pathPrefix)` and `$(binDir)` are the values of the
    56         *  configuration parameters and `$(PATH)` is the value of the `PATH`
    57         *  environment variable set by the `xdc` command (type 'xdc -n' to
    58         *  see this).
    59         *
    60         *  Embedded ';' characters within `pathPrefix` separate directory
    61         *  names.  On UNIX hosts these ';' characters are convered to an
    62         *  appropriate separator; i.e., ':'.
    63         */
    64        config string pathPrefix = "";
    65
    66        override config String binaryParser = "ti.targets.omf.cof.Coff";
    67
    68        /*!
    69         *  ======== debugGen ========
    70         *  TI Debugger/IDE file generation support.
    71         *
    72         *  The settings below generate CCS project files that enable one
    73         *  to debug (and even rebuild) Executables from within the CCS GUI.
    74         *
    75         *  To avoid unnecessary build time overhead, these files are not always
    76         *  generated; by default, they are only generated for "debug" profiles.
    77         *  The generation of these files is controlled by the
    78         *  `{@link xdc.cfg.Program#gen}` configuration parameter.  To force these
    79         *  files to be generated for a particular executable, add the following
    80         *  line to the executable's program configuration script:
    81         *  @p(code)
    82         *      Program.gen.debuggerFiles = true;
    83         *  @p
    84         *  It is also possible to control the generation via build options; see
    85         *  `{@link xdc.bld.ITarget#DebugGen}`.
    86         *
    87         *  Note: if you are using CCS 2.x, disable CodeMaestro to prevent
    88         *  instabilities when re-loading project files.  CodeMaestro can be
    89         *  disabled via: Options->"Customize ..."->"CodeMaestro Settings"
    90         *
    91         *  To debug an executable:
    92         *  @p(nlist)
    93         *      - load generated project for the executable:
    94         *             package/cfg/<cfg_name>.pjt
    95         *      - load generated GEL script for the executable:
    96         *             package/cfg/<cfg_name>.gel
    97         *      - load prerequisite packages:
    98         *             GEL->"XDC Package"->open_project
    99         *  @p
   100         *  where <cfg_name> is the name of the executable (foo.x62) with the
   101         *  '.' replaced by and '_' (foo_x62).
   102         *
   103         *  Alternatively, one can use the `ccs_start.pl` script in this package
   104         *  to automate the steps above.  In addition, it is possible to
   105         *  associate `ccs_start.bat` (also in this package) with the generated
   106         *  `.pjt` files to automate the above by double-clicking on the `.pjt`
   107         *  file.
   108         *
   109         *  To avoid navigation to the executable via file menus, you can load
   110         *  the executable associated with the project via:
   111         *
   112         *      GEL->"XDC Package"->load_executable
   113         *
   114         *  @a(See Also) `xdc.bld.ITarget` contains addition information about
   115         *  how to create and use these templates.
   116         */
   117        override config xdc.bld.ITarget.DebugGen debugGen = {
   118            execTemplate   : "ti/targets/ccs_exec.xdt",
   119            execPattern    : "$(cfgDir)$(cfgName).pjt",
   120            packageTemplate: "ti/targets/ccs_package.xdt",
   121            packagePattern : "package/$(pkgName).pjt"
   122        };
   123
   124        /*!
   125         *  ======== extensions ========
   126         *  File extensions recognized by TI targets
   127         *
   128         *  @a(TI Specifics)
   129         *  For TI targets, the `typ` string field of an
   130         *  `xdc.bld.ITarget.Extension` structure may be of the form
   131         * `"<cmd>:<langOpt>"` where `<cmd>` is one of `"asm"`, `"c"`, `"cpp"`,
   132         *  and `<langOpt>` is the language option to used to identify the source
   133         *  language of a source file.  This allows one to explicitly control the
   134         *  language flag passed to the compiler based on a source file's
   135         *  extension; in particular, one can define separate source extensions
   136         *  for "linear" and "scheduled" assembly files, or simply cause `".s62"`
   137         *  files to be treated as "linear" assembly rather than "scheduled"
   138         *  assembly.
   139         *
   140         *  For example,
   141         *  @p(code)
   142         *  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
   143         *  @p
   144         *  causes all `".s62"` files to be treated as linear assembly.
   145         *
   146         *  If no ':' appears in the `typ` string, a default will be used:
   147         *  `"-fa"` for `"asm"` files `"-fc"` for `"c"` files, and `"-fp"` for
   148         *  `"cpp"` files.
   149         */
   150        override config xdc.bld.ITarget.Extension extensions[string] =
   151            xdc.bld.ITarget.extensions;
   152
   153        /*!
   154         *  ======== profiles ========
   155         *  Standard options profiles for the TI tool-chain.
   156         */
   157        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   158            ["debug", {
   159                compileOpts: {
   160                    copts: "-g",
   161                    defs:  "-D_DEBUG_=1",
   162                }
   163            }],
   164            ["release", {
   165                compileOpts: {
   166                    copts: "-O2",
   167                },
   168            }],
   169            ["profile", {
   170                compileOpts: {
   171                    copts: "-gp",
   172                },
   173            }],
   174            ["coverage", {
   175                compileOpts: {
   176                    copts: "-gp",
   177                },
   178            }],
   179            ["whole_program", {
   180                compileOpts: {
   181                    copts: "-oe -O2 -mo",
   182                },
   183            }],
   184            ["whole_program_debug", {
   185                compileOpts: {
   186                    copts: "-oe --symdebug:dwarf -mo",
   187                },
   188            }],
   189        ];
   190
   191        /*!
   192         *  ======== versionMap ========
   193         *  Map of TI compiler version numbers to compatibility keys.
   194         *
   195         *  This map translates version string information from the compiler
   196         *  into a compatibility key.  The compatibility key is used to validate
   197         *  consistency among a collection of packages used in a configuration.
   198         *
   199         *  TI compiler strings are formed by parsing the output of the
   200         *  compiler's --compiler_revision option and creating a string of the
   201         *  form:
   202         *  @p(code)
   203         *      <comp>_<ver>
   204         *  @p
   205         *  where `<comp>` is the first word of the output and `<ver>` is the
   206         *  version number that appears on this same line.
   207         *
   208         *  There are two forms of version numbers output by the TI code gen
   209         *  tools; an "old" style that is of the form "<major>.<minor>" and a
   210         *  new style of the form "<major>.<minor>.<update>[.<branch>][<qual>],
   211         *  where <major>, <minor>, <update>, and <branch> are non-negative
   212         *  integers and <qual> is of  the form "[IBAP]<yyddd>", and <yyddd>
   213         *  is the last two digits of the year concatenated with the number of
   214         *  the day.
   215         *
   216         *  If a compiler version is not found in this map the default is
   217         *  "1,0,<major>.<minor>" for old style version numbers, and
   218         *  "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style
   219         *  version numbers.
   220         *
   221         *  The user only needs to extend this table when a significant
   222         *  incompatibility occurs (and this package doesn't know about it) or
   223         *  when two versions of the compiler should be treated as 100%
   224         *  compatible.
   225         *
   226         *  @a(Examples)
   227         *  @p(code)
   228         *      var C62 = xdc.useModule('ti.targets.C62');
   229         *
   230         *      // assert that 4.0 is forward compatible with 4.32
   231         *      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";
   232         *
   233         *      // assert that 4.28 is incompatible with all other compilers
   234         *      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
   235         */
   236        override config string versionMap[string] = [
   237            ["TMS320C6x_4.32", "1,0,4.32,0"],
   238            ["TMS320C55x_2.56", "1,0,2.56,0"],
   239            ["TMS320C54x_3.83", "1,0,3.83,0"],
   240            ["TMS320C2000_3.07", "1,0,3.07,0"],
   241        ];
   242
   243        /*!
   244         *  ======== alignDirectiveSupported ========
   245         *  The compiler supports an align directive.
   246         */
   247        override readonly config Bool alignDirectiveSupported = true;
   248
   249        /*!
   250         *  ======== ccConfigOpts ========
   251         *  User configurable compiler options for the generated config C file.
   252         */
   253        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   254            prefix: "$(ccOpts.prefix) -mo",
   255            suffix: "$(ccOpts.suffix)"
   256        };
   257
   258        /*!
   259         *  ======== asmName ========
   260         *  The function that converts a C name into an assembly name
   261         */
   262        String asmName(String CName);
   263
   264        /*!
   265         *  ======== vers ========
   266         *  The command used to get the tool-chain to return a version number.
   267         */
   268        readonly config xdc.bld.ITarget2.Command vers;
   269
   270        /*!
   271         *  ======== version ========
   272         *  The Compatibility Key associated with this target.
   273         *
   274         *  The first two components of this target Compatibility Key are '1,0'.
   275         *  The rest of the Key represents the compiler version. The third
   276         *  component combines the major and the minor version number in the format
   277         *  Major.Minor. The fourth component is the patch number, and the optional
   278         *  fifth component is the version of an Alpha or Beta release.
   279         *
   280         *  @a(Example)
   281         *  If this target's `rootDir` points to the compiler version 6.0.11, the
   282         *  Compatibility Key is [1,0,6.0,11]. If this target's `rootDir` points to
   283         *  the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
   284         *
   285         */
   286        override metaonly config String version;
   287
   288        /*
   289         *  ======== rawVersion ========
   290         *  The raw version string from the compiler
   291         *
   292         */
   293        //override metaonly config String rawVersion;
   294
   295    }
   296    /*
   297     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:25; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   298
   299     */
   300


module ti.targets.TMS470

metaonly module ti.targets.TMS470
index URL

TI TMS470 (Arm) little endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/TMS470.xdc
var TMS470 = xdc.useModule('ti.targets.TMS470');
module-wide constants & types
    var obj = new TMS470.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new TMS470.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new TMS470.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new TMS470.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new TMS470.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new TMS470.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new TMS470.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new TMS470.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new TMS470.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new TMS470.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new TMS470.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new TMS470.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const TMS470.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const TMS470.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const TMS470.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv4"
    };
    const TMS470.base// A target that this target is based upon = ITarget.Module computed value;
    const TMS470.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const TMS470.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv4"
    };
    const TMS470.isa// CPU Instruction Set Architecture (ISA) = String "470";
    const TMS470.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: ""
    };
    const TMS470.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const TMS470.name// Nickname for this target = String "TMS470";
    const TMS470.os// Name of OS required to run programs built for this target = String computed value;
    const TMS470.rts// Name of a run-time support package to include = String "ti.targets.rts470";
    const TMS470.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const TMS470.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const TMS470.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const TMS470.suffix// Suffix appended to all objs, libraries, and executable = String "470";
    const TMS470.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     TMS470.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     TMS470.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     TMS470.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     TMS470.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     TMS470.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     TMS470.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "7"
    ];
     TMS470.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     TMS470.execExt// Extension for executables = String undefined;
     TMS470.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     TMS470.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     TMS470.linkLib// Default TMS470 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib) = String "rts16e.lib";
     TMS470.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     TMS470.pathPrefix// A prefix to the PATH environment variable = String "";
     TMS470.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     TMS470.platforms// A set of platforms that can support this target = String[] [ ];
     TMS470.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     TMS470.rootDir// Installation directory for this target's code generation tools = String undefined;
     TMS470.version// The Compatibility Key associated with this target = String undefined;
     TMS470.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     TMS470.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     TMS470.asmName// The function that converts a C name into an assembly name(String CName) returns String
     TMS470.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     TMS470.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     TMS470.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     TMS470.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     TMS470.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     TMS470.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     TMS470.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     TMS470.getVersion// Get a target-specific Compatibility Key string() returns String
     TMS470.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     TMS470.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     TMS470.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct TMS470.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new TMS470.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct TMS470.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new TMS470.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct TMS470.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new TMS470.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct TMS470.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new TMS470.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct TMS470.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new TMS470.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct TMS470.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new TMS470.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct TMS470.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new TMS470.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct TMS470.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new TMS470.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct TMS470.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new TMS470.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct TMS470.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new TMS470.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct TMS470.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new TMS470.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct TMS470.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new TMS470.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config TMS470.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const TMS470.alignDirectiveSupported = Bool true;
config TMS470.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const TMS470.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config TMS470.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const TMS470.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv4"
};
config TMS470.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const TMS470.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config TMS470.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const TMS470.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config TMS470.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const TMS470.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv4"
};
config TMS470.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const TMS470.isa = String "470";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config TMS470.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const TMS470.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: ""
};
config TMS470.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const TMS470.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config TMS470.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const TMS470.name = String "TMS470";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config TMS470.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const TMS470.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config TMS470.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const TMS470.rts = String "ti.targets.rts470";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config TMS470.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const TMS470.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config TMS470.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const TMS470.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config TMS470.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const TMS470.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config TMS470.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const TMS470.suffix = String "470";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config TMS470.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const TMS470.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config TMS470.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
TMS470.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config TMS470.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
TMS470.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config TMS470.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
TMS470.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config TMS470.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
TMS470.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config TMS470.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
TMS470.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config TMS470.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
TMS470.compatibleSuffixes = String[] [
    "7"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config TMS470.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
TMS470.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config TMS470.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
TMS470.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config TMS470.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
TMS470.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config TMS470.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
TMS470.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config TMS470.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib)

XDCscript usage meta-domain
TMS470.linkLib = String "rts16e.lib";
config TMS470.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
TMS470.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config TMS470.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
TMS470.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config TMS470.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
TMS470.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config TMS470.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
TMS470.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config TMS470.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
TMS470.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config TMS470.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
TMS470.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config TMS470.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
TMS470.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config TMS470.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
TMS470.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
TMS470.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
TMS470.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
TMS470.asmName(String CName) returns String
TMS470.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
TMS470.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
TMS470.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
TMS470.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
TMS470.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
TMS470.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
TMS470.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
TMS470.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
TMS470.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
TMS470.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
TMS470.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
TMS470.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
TMS470.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
TMS470.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
TMS470.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
TMS470.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
TMS470.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
TMS470.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:56 GMT


module ti.targets.TMS470

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== TMS470.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== TMS470.xdc ========
    19     *  TI TMS470 (Arm) little endian
    20     */
    21    metaonly module TMS470 inherits ti.targets.ITarget {
    22        override readonly config string name             = "TMS470";
    23        override readonly config string suffix           = "470";
    24        override readonly config string isa              = "470";
    25        override readonly config string rts              = "ti.targets.rts470";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "little"
    28        };
    29
    30        override config string platform = "ti.platforms.sim470xx";
    31
    32        /*
    33         *  ======== compatibleSuffixes ========
    34         */
    35        override config String compatibleSuffixes[] = ["7"];
    36
    37        override readonly config xdc.bld.ITarget2.Command ar = {
    38            cmd:  "ar470",
    39            opts: "rq"
    40        };
    41
    42        override readonly config xdc.bld.ITarget2.Command cc = {
    43            cmd:  "cl470 -c",
    44            opts: " -me -mv4"
    45        };
    46
    47        override readonly config xdc.bld.ITarget2.Command vers = {
    48            cmd:  "cl470",
    49            opts: "--compiler_revision"
    50        };
    51
    52        override readonly config xdc.bld.ITarget2.Command asm = {
    53            cmd:  "cl470 -c",
    54            opts: " -me -mv4"
    55        };
    56
    57        override readonly config xdc.bld.ITarget2.Command lnk = {
    58            cmd:  "lnk470",
    59            opts: ""
    60        };
    61
    62        /*!
    63         *  ======== asmOpts ========
    64         *  User configurable assembler options.
    65         *
    66         *  Defaults:
    67         *  @p(dlist)
    68         *      -`-qq`
    69         *          super quiet mode
    70         */
    71        override config xdc.bld.ITarget2.Options asmOpts = {
    72            prefix: "-qq",
    73            suffix: ""
    74        };
    75
    76        /*!
    77         *  ======== ccOpts ========
    78         *  User configurable compiler options.
    79         *
    80         *  Defaults:
    81         *  @p(dlist)
    82         *      -`-qq`
    83         *          super quiet mode
    84         *      -`-pdsw225`
    85         *          generate a warning for implicitly declared functions; i.e.,
    86         *          functions without prototypes
    87         */
    88        override config xdc.bld.ITarget2.Options ccOpts = {
    89            prefix: "-qq -pdsw225",
    90            suffix: ""
    91        };
    92
    93        /*!
    94         *  ======== ccConfigOpts ========
    95         *  User configurable compiler options for the generated config C file.
    96         */
    97        override config xdc.bld.ITarget2.Options ccConfigOpts = {
    98            prefix: "$(ccOpts.prefix) -ms",
    99            suffix: "$(ccOpts.suffix)"
   100        };
   101
   102        /*!
   103         *  ======== linkLib ========
   104         *  Default TMS470 cgtools runtime library to link with
   105         *  (options: rts16e.lib, rts32e.lib)
   106         */
   107        config string linkLib = "rts16e.lib";
   108
   109        /*!
   110         *  ======== profiles ========
   111         *  Standard options profiles for the TI tool-chain.
   112         */
   113        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   114            ["debug", {
   115                compileOpts: {
   116                    copts: "-g",
   117                    defs:  "-D_DEBUG_=1",
   118                }
   119            }],
   120            ["release", {
   121                compileOpts: {
   122                    copts: "-O2",
   123                },
   124            }],
   125            ["profile", {
   126                compileOpts: {
   127                    copts: "--symdebug:profile_coff",
   128                },
   129            }],
   130            ["coverage", {
   131                compileOpts: {
   132                    copts: "--symdebug:profile_coff",
   133                },
   134            }],
   135            ["whole_program", {
   136                compileOpts: {
   137                    copts: "-oe -O2 -ms",
   138                },
   139            }],
   140            ["whole_program_debug", {
   141                compileOpts: {
   142                    copts: "-oe --symdebug:dwarf -ms",
   143                },
   144            }],
   145        ];
   146
   147        /*!
   148         *  ======== lnkOpts ========
   149         *  User configurable linker options.
   150         *
   151         *  Defaults:
   152         *  @p(dlist)
   153         *      -`-w`
   154         *          Display linker warnings
   155         *      -`-q`
   156         *          Quite run
   157         *      -`-u`
   158         *          Place unresolved external symbol into symbol table
   159         *      -`-c`
   160         *          ROM autoinitialization model
   161         *      -`-m`
   162         *          create a map file
   163         */
   164        override config xdc.bld.ITarget2.Options lnkOpts = {
   165            prefix: "-w -q -u _c_int00",
   166            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   167        };
   168
   169        override config string includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
   170
   171        final override readonly config string sectMap[string] = [
   172            [".intvecs", "code"],
   173
   174            [".text", "code"],
   175            [".cinit", "code"],
   176            [".const", "code"],
   177            [".pinit", "code"],
   178
   179            [".bss", "data"],
   180            [".sysmem", "data"],
   181            [".stack", "stack"],
   182            [".args", "data"],
   183        ];
   184
   185        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   186            t_IArg          : { size: 4, align: 4 },
   187            t_Char          : { size: 1, align: 1 },
   188            t_Double        : { size: 8, align: 4 },
   189            t_Float         : { size: 4, align: 4 },
   190            t_Fxn           : { size: 4, align: 4 },
   191            t_Int           : { size: 4, align: 4 },
   192            t_Int8          : { size: 1, align: 1 },
   193            t_Int16         : { size: 2, align: 2 },
   194            t_Int32         : { size: 4, align: 4 },
   195            t_Int64         : { size: 8, align: 4 },
   196            t_Long          : { size: 4, align: 4 },
   197            t_LDouble       : { size: 8, align: 4 },
   198            t_LLong         : { size: 8, align: 4 },
   199            t_Ptr           : { size: 4, align: 4 },
   200            t_Short         : { size: 2, align: 2 },
   201            t_Size          : { size: 4, align: 4 },
   202        };
   203    };
   204    /*
   205     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:25; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   206
   207     */
   208


module ti.targets.TMS470_big_endian

metaonly module ti.targets.TMS470_big_endian
index URL

TI TMS470 (Arm) big endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/TMS470_big_endian.xdc
var TMS470_big_endian = xdc.useModule('ti.targets.TMS470_big_endian');
module-wide constants & types
    var obj = new TMS470_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new TMS470_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new TMS470_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new TMS470_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new TMS470_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new TMS470_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new TMS470_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new TMS470_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new TMS470_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new TMS470_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new TMS470_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new TMS470_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const TMS470_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const TMS470_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const TMS470_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mv4"
    };
    const TMS470_big_endian.base// A target that this target is based upon = ITarget.Module TMS470.module;
    const TMS470_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const TMS470_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mv4"
    };
    const TMS470_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "470";
    const TMS470_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: ""
    };
    const TMS470_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const TMS470_big_endian.name// Nickname for this target = String "TMS470_big_endian";
    const TMS470_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const TMS470_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts470";
    const TMS470_big_endian.sectMap// Output section name to segment type mapping = String[string] TMS470.sectMap;
    const TMS470_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const TMS470_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const TMS470_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "470e";
    const TMS470_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     TMS470_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     TMS470_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     TMS470_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     TMS470_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     TMS470_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     TMS470_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "7e"
    ];
     TMS470_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     TMS470_big_endian.execExt// Extension for executables = String undefined;
     TMS470_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     TMS470_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     TMS470_big_endian.linkLib// Default TMS470 cgtools runtime library to link with (options: rts16.lib, rts32.lib) = String "rts16.lib";
     TMS470_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     TMS470_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     TMS470_big_endian.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     TMS470_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     TMS470_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     TMS470_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     TMS470_big_endian.version// The Compatibility Key associated with this target = String undefined;
     TMS470_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     TMS470_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     TMS470_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     TMS470_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     TMS470_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     TMS470_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     TMS470_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     TMS470_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     TMS470_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     TMS470_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     TMS470_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     TMS470_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     TMS470_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     TMS470_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct TMS470_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new TMS470_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct TMS470_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new TMS470_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct TMS470_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new TMS470_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct TMS470_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new TMS470_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct TMS470_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new TMS470_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct TMS470_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new TMS470_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct TMS470_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new TMS470_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct TMS470_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new TMS470_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct TMS470_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new TMS470_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct TMS470_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new TMS470_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct TMS470_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new TMS470_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct TMS470_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new TMS470_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config TMS470_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const TMS470_big_endian.alignDirectiveSupported = Bool true;
config TMS470_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const TMS470_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config TMS470_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const TMS470_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mv4"
};
config TMS470_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const TMS470_big_endian.base = ITarget.Module TMS470.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config TMS470_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const TMS470_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config TMS470_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const TMS470_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mv4"
};
config TMS470_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const TMS470_big_endian.isa = String "470";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config TMS470_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const TMS470_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: ""
};
config TMS470_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const TMS470_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config TMS470_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const TMS470_big_endian.name = String "TMS470_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config TMS470_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const TMS470_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config TMS470_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const TMS470_big_endian.rts = String "ti.targets.rts470";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config TMS470_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const TMS470_big_endian.sectMap = String[string] TMS470.sectMap;
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config TMS470_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const TMS470_big_endian.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config TMS470_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const TMS470_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config TMS470_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const TMS470_big_endian.suffix = String "470e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config TMS470_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const TMS470_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config TMS470_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
TMS470_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config TMS470_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
TMS470_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config TMS470_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
TMS470_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config TMS470_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
TMS470_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config TMS470_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
TMS470_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config TMS470_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
TMS470_big_endian.compatibleSuffixes = String[] [
    "7e"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config TMS470_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
TMS470_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config TMS470_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
TMS470_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config TMS470_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
TMS470_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config TMS470_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
TMS470_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config TMS470_big_endian.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with (options: rts16.lib, rts32.lib)

XDCscript usage meta-domain
TMS470_big_endian.linkLib = String "rts16.lib";
config TMS470_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
TMS470_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config TMS470_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
TMS470_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config TMS470_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
TMS470_big_endian.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config TMS470_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
TMS470_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config TMS470_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
TMS470_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config TMS470_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
TMS470_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config TMS470_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
TMS470_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config TMS470_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
TMS470_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
TMS470_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
TMS470_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
TMS470_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
TMS470_big_endian.asmName(String CName) returns String
TMS470_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
TMS470_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
TMS470_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
TMS470_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
TMS470_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
TMS470_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
TMS470_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
TMS470_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
TMS470_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
TMS470_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
TMS470_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
TMS470_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
TMS470_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
TMS470_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
TMS470_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
TMS470_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
TMS470_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
TMS470_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
TMS470_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
TMS470_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
TMS470_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
TMS470_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:56 GMT


module ti.targets.TMS470_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS470_big_endian.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS470_big_endian.xdc ========
    20     *  TI TMS470 (Arm) big endian
    21     */
    22    metaonly module TMS470_big_endian inherits ti.targets.ITarget {
    23        override readonly config string name                 ="TMS470_big_endian";
    24        override readonly config string suffix               = "470e";
    25        override readonly config string isa                  = "470";
    26        override readonly config string rts                  = "ti.targets.rts470";
    27        override readonly config xdc.bld.ITarget.Model model = {
    28            endian: "big"
    29        };
    30
    31        override config string platform = "ti.platforms.sim470xx";
    32
    33        /*
    34         *  ======== compatibleSuffixes ========
    35         */
    36        override config String compatibleSuffixes[] = ["7e"];
    37
    38        override readonly config xdc.bld.ITarget.Module base = ti.targets.TMS470;
    39
    40        override readonly config xdc.bld.ITarget2.Command ar = {
    41            cmd:  "ar470",
    42            opts: "rq"
    43        };
    44
    45        override readonly config xdc.bld.ITarget2.Command cc = {
    46            cmd:  "cl470 -c",
    47            opts: "-mv4"
    48        };
    49
    50        override readonly config xdc.bld.ITarget2.Command vers = {
    51            cmd:  "cl470",
    52            opts: "--compiler_revision"
    53        };
    54
    55        override readonly config xdc.bld.ITarget2.Command asm = {
    56            cmd:  "cl470 -c",
    57            opts: "-mv4"
    58        };
    59
    60        override readonly config xdc.bld.ITarget2.Command lnk = {
    61            cmd:  "lnk470",
    62            opts: ""
    63        };
    64
    65        /*!
    66         *  ======== asmOpts ========
    67         *  User configurable assembler options.
    68         *
    69         *  Defaults:
    70         *  @p(dlist)
    71         *      -`-qq`
    72         *          super quiet mode
    73         */
    74        override config xdc.bld.ITarget2.Options asmOpts = {
    75            prefix: "-qq",
    76            suffix: ""
    77        };
    78
    79        /*!
    80         *  ======== ccOpts ========
    81         *  User configurable compiler options.
    82         *
    83         *  Defaults:
    84         *  @p(dlist)
    85         *      -`-qq`
    86         *          super quiet mode
    87         *      -`-pdsw225`
    88         *          generate a warning for implicitly declared functions; i.e.,
    89         *          functions without prototypes
    90         */
    91        override config xdc.bld.ITarget2.Options ccOpts = {
    92            prefix: "-qq -pdsw225",
    93            suffix: ""
    94        };
    95
    96        /*!
    97         *  ======== ccConfigOpts ========
    98         *  User configurable compiler options for the generated config C file.
    99         */
   100        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   101            prefix: "$(ccOpts.prefix) -ms",
   102            suffix: "$(ccOpts.suffix)"
   103        };
   104
   105        /*!
   106         *  ======== profiles ========
   107         *  Standard options profiles for the TI tool-chain.
   108         */
   109        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   110            ["debug", {
   111                compileOpts: {
   112                    copts: "-g",
   113                    defs:  "-D_DEBUG_=1",
   114                }
   115            }],
   116            ["release", {
   117                compileOpts: {
   118                    copts: "-O2",
   119                },
   120            }],
   121            ["profile", {
   122                compileOpts: {
   123                    copts: "--symdebug:profile_coff",
   124                },
   125            }],
   126            ["coverage", {
   127                compileOpts: {
   128                    copts: "--symdebug:profile_coff",
   129                },
   130            }],
   131            ["whole_program", {
   132                compileOpts: {
   133                    copts: "-oe -O2 -ms",
   134                },
   135            }],
   136            ["whole_program_debug", {
   137                compileOpts: {
   138                    copts: "-oe --symdebug:dwarf -ms",
   139                },
   140            }],
   141        ];
   142
   143        /*!
   144         *  ======== linkLib ========
   145         *  Default TMS470 cgtools runtime library to link with
   146         *  (options: rts16.lib, rts32.lib)
   147         */
   148        config string linkLib = "rts16.lib";
   149
   150        /*!
   151         *  ======== lnkOpts ========
   152         *  User configurable linker options.
   153         *
   154         *  Defaults:
   155         *  @p(dlist)
   156         *      -`-w`
   157         *          Display linker warnings
   158         *      -`-q`
   159         *          Quite run
   160         *      -`-u`
   161         *          Place unresolved external symbol into symbol table
   162         *      -`-c`
   163         *          ROM autoinitialization model
   164         *      -`-m`
   165         *          create a map file
   166         */
   167        override config xdc.bld.ITarget2.Options lnkOpts = {
   168            prefix: "-w -q -u _c_int00",
   169            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   170        };
   171
   172        override config string includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
   173
   174        final override readonly config string sectMap[string] =
   175            ti.targets.TMS470.sectMap;
   176
   177        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   178            t_IArg          : { size: 4, align: 4 },
   179            t_Char          : { size: 1, align: 1 },
   180            t_Double        : { size: 8, align: 4 },
   181            t_Float         : { size: 4, align: 4 },
   182            t_Fxn           : { size: 4, align: 4 },
   183            t_Int           : { size: 4, align: 4 },
   184            t_Int8          : { size: 1, align: 1 },
   185            t_Int16         : { size: 2, align: 2 },
   186            t_Int32         : { size: 4, align: 4 },
   187            t_Int64         : { size: 8, align: 4 },
   188            t_Long          : { size: 4, align: 4 },
   189            t_LDouble       : { size: 8, align: 4 },
   190            t_LLong         : { size: 8, align: 4 },
   191            t_Ptr           : { size: 4, align: 4 },
   192            t_Short         : { size: 2, align: 2 },
   193            t_Size          : { size: 4, align: 4 },
   194        };
   195    };
   196    /*
   197     *  @(#) ti.targets; 1, 0, 3,606; 11-4-2012 21:21:25; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   198
   199     */
   200


package ti.targets.arm
index URL

Package of Arm targets for TI code generation tools

XDCspec declarations sourced in ti/targets/arm/package.xdc
requires xdc.bld;
requires ti.targets;
package ti.targets.arm [2, 0, 1, 0] {
    interface IArm;
    // Common settings for all Arm targets
    interface IM3;
    // Cortex M3 little endian thumb2 target
    interface IM3_big_endian;
    // Cortex M3 big endian thumb2 target
    interface IR4;
    // Cortex R4 little endian target
    interface IR4_big_endian;
    // Cortex R4 big endian target
    module Arm11;
    // TI Arm11 little endian
    module Arm11_big_endian;
    // TI Arm11 big endian
    module Arm7;
    // TI Arm7 little endian
    module Arm7_big_endian;
    // TI Arm7 big endian
    module Arm9;
    // TI Arm9 little endian
    module Arm9t;
    // TI Arm9 little endian thumb-mode
    module M3;
    // Cortex M3 little endian thumb2
    module M3_big_endian;
    // Cortex M3 big endian thumb2
    module R4;
    // Cortex R4 little endian thumb2
    module R4_big_endian;
    // Cortex R4 big endian thumb2
    module R4t;
    // Cortex R4 little endian thumb2
    module R4t_big_endian;
    // Cortex R4 big endian thumb2
}
generated on Thu, 08 Nov 2012 02:14:17 GMT


package ti.targets.arm

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires xdc.bld;
    19    requires ti.targets;
    20
    21    /*!
    22     *  ======== ti.targets.arm ========
    23     *  Package of Arm targets for TI code generation tools
    24     *
    25     */
    26    package ti.targets.arm [2,0,1,0] {
    27        interface IArm;
    28        module Arm7, Arm7_big_endian, Arm9, Arm9t;
    29        module Arm11, Arm11_big_endian;
    30        interface IM3, IM3_big_endian;
    31        module M3, M3_big_endian;
    32        interface IR4, IR4_big_endian;
    33        module R4, R4_big_endian;
    34        module R4t, R4t_big_endian;
    35    }
    36    /*
    37     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:27; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    38
    39     */
    40


module ti.targets.arm.Arm11

metaonly module ti.targets.arm.Arm11
index URL

TI Arm11 little endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/Arm11.xdc
var Arm11 = xdc.useModule('ti.targets.arm.Arm11');
module-wide constants & types
    var obj = new Arm11.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm11.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm11.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm11.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm11.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm11.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm11.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm11.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm11.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm11.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm11.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm11.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm11.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm11.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm11.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv6 --abi=ti_arm9_abi"
    };
    const Arm11.base// A target that this target is based upon = ITarget.Module computed value;
    const Arm11.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm11.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv6 --abi=ti_arm9_abi"
    };
    const Arm11.isa// CPU Instruction Set Architecture (ISA) = String "v6";
    const Arm11.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=6 --strict_compatibility=on"
    };
    const Arm11.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const Arm11.name// Nickname for this target = String "Arm11";
    const Arm11.os// Name of OS required to run programs built for this target = String computed value;
    const Arm11.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm11.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const Arm11.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const Arm11.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm11.suffix// Suffix appended to all objs, libraries, and executable = String "11";
    const Arm11.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm11.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm11.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm11.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm11.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     Arm11.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm11.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "470",
        "7",
        "9t",
        "9"
    ];
     Arm11.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm11.execExt// Extension for executables = String undefined;
     Arm11.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm11.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm11.linkLib// Default Arm11 cgtools runtime library to link with = String "rtsv5_A_le_tiarm9.lib";
     Arm11.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm11.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm11.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm11.platforms// A set of platforms that can support this target = String[] [ ];
     Arm11.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm11.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm11.version// The Compatibility Key associated with this target = String undefined;
     Arm11.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm11.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm11.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm11.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm11.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm11.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm11.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm11.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm11.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm11.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm11.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm11.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm11.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm11.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm11.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm11.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm11.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm11.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm11.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm11.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm11.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm11.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm11.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm11.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm11.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm11.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm11.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm11.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm11.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm11.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm11.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm11.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm11.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm11.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm11.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm11.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm11.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm11.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm11.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm11.alignDirectiveSupported = Bool true;
config Arm11.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm11.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm11.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm11.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv6 --abi=ti_arm9_abi"
};
config Arm11.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm11.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm11.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm11.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm11.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm11.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv6 --abi=ti_arm9_abi"
};
config Arm11.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm11.isa = String "v6";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm11.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm11.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=6 --strict_compatibility=on"
};
config Arm11.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm11.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm11.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm11.name = String "Arm11";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm11.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm11.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm11.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm11.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm11.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm11.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm11.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Arm11.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm11.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm11.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm11.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm11.suffix = String "11";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm11.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm11.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm11.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm11.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm11.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm11.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm11.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm11.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm11.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Arm11.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm11.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm11.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm11.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm11.compatibleSuffixes = String[] [
    "470",
    "7",
    "9t",
    "9"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm11.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm11.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm11.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm11.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm11.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm11.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm11.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm11.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm11.linkLib // module-wide
index URL

Default Arm11 cgtools runtime library to link with

XDCscript usage meta-domain
Arm11.linkLib = String "rtsv5_A_le_tiarm9.lib";
config Arm11.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm11.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm11.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm11.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm11.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm11.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm11.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm11.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm11.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm11.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm11.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm11.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm11.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm11.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm11.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm11.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm11.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm11.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm11.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm11.asmName(String CName) returns String
Arm11.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm11.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm11.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm11.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm11.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm11.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm11.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm11.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm11.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm11.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm11.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm11.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm11.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm11.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm11.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm11.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm11.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm11.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm11.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm11.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm11.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm11.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:13 GMT


module ti.targets.arm.Arm11

     1    /*
     2     *  Copyright (c) 2009 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Arm11.xdc ========
    14     *
    15     */
    16
    17    import ti.targets.ITarget;
    18
    19    /*!
    20     *  ======== Arm11.xdc ========
    21     *  TI Arm11 little endian
    22     */
    23    metaonly module Arm11 inherits ti.targets.arm.IArm {
    24        override readonly config string name             = "Arm11";
    25        override readonly config string suffix           = "11";
    26        override readonly config string isa              = "v6";
    27        override readonly config string rts              = "ti.targets.arm.rtsarm";
    28        override readonly config xdc.bld.ITarget.Model model = {
    29            endian: "little"
    30        };
    31
    32        /*
    33         *  ======== compatibleSuffixes ========
    34         */
    35        override config String compatibleSuffixes[] = ["470", "7", "9t", "9"];
    36
    37        override readonly config xdc.bld.ITarget2.Command cc = {
    38            cmd:  "cl470 -c",
    39            opts: " -me -mv6 --abi=ti_arm9_abi"
    40        };
    41
    42        override readonly config xdc.bld.ITarget2.Command asm = {
    43            cmd:  "cl470 -c",
    44            opts: " -me -mv6 --abi=ti_arm9_abi"
    45        };
    46
    47        override readonly config xdc.bld.ITarget2.Command lnk = {
    48            cmd:  "lnk470",
    49            opts: "--silicon_version=6 --strict_compatibility=on"
    50        };
    51
    52        /*!
    53         *  ======== linkLib ========
    54         *  Default Arm11 cgtools runtime library to link with
    55         */
    56        config string linkLib = "rtsv5_A_le_tiarm9.lib";
    57
    58    }
    59    /*
    60     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    61
    62     */
    63


module ti.targets.arm.Arm11_big_endian

metaonly module ti.targets.arm.Arm11_big_endian
index URL

TI Arm11 big endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/Arm11_big_endian.xdc
var Arm11_big_endian = xdc.useModule('ti.targets.arm.Arm11_big_endian');
module-wide constants & types
    var obj = new Arm11_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm11_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm11_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm11_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm11_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm11_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm11_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm11_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm11_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm11_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm11_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm11_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm11_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm11_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm11_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mv6 --abi=ti_arm9_abi"
    };
    const Arm11_big_endian.base// A target that this target is based upon = ITarget.Module Arm11.module;
    const Arm11_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm11_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mv6 --abi=ti_arm9_abi"
    };
    const Arm11_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v6";
    const Arm11_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=6 --strict_compatibility=on"
    };
    const Arm11_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const Arm11_big_endian.name// Nickname for this target = String "Arm11_big_endian";
    const Arm11_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const Arm11_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm11_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const Arm11_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const Arm11_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm11_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "11e";
    const Arm11_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm11_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm11_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm11_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm11_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     Arm11_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm11_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "470e",
        "7e",
        "9e"
    ];
     Arm11_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm11_big_endian.execExt// Extension for executables = String undefined;
     Arm11_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm11_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm11_big_endian.linkLib// Default Arm7 cgtools runtime library to link with (options: rts16.lib, rts32.lib) = String "rtsv5_A_be_tiarm9.lib";
     Arm11_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm11_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm11_big_endian.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm11_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     Arm11_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm11_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm11_big_endian.version// The Compatibility Key associated with this target = String undefined;
     Arm11_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm11_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm11_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm11_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm11_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm11_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm11_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm11_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm11_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm11_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm11_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm11_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm11_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm11_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm11_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm11_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm11_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm11_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm11_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm11_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm11_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm11_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm11_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm11_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm11_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm11_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm11_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm11_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm11_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm11_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm11_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm11_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm11_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm11_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm11_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm11_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm11_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm11_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm11_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm11_big_endian.alignDirectiveSupported = Bool true;
config Arm11_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm11_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm11_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm11_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mv6 --abi=ti_arm9_abi"
};
config Arm11_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm11_big_endian.base = ITarget.Module Arm11.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm11_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm11_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm11_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm11_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mv6 --abi=ti_arm9_abi"
};
config Arm11_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm11_big_endian.isa = String "v6";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm11_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm11_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=6 --strict_compatibility=on"
};
config Arm11_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm11_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm11_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm11_big_endian.name = String "Arm11_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm11_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm11_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm11_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm11_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm11_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm11_big_endian.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm11_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Arm11_big_endian.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm11_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm11_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm11_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm11_big_endian.suffix = String "11e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm11_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm11_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm11_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm11_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm11_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm11_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm11_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm11_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm11_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Arm11_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm11_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm11_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm11_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm11_big_endian.compatibleSuffixes = String[] [
    "470e",
    "7e",
    "9e"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm11_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm11_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm11_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm11_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm11_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm11_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm11_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm11_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm11_big_endian.linkLib // module-wide
index URL

Default Arm7 cgtools runtime library to link with (options: rts16.lib, rts32.lib)

XDCscript usage meta-domain
Arm11_big_endian.linkLib = String "rtsv5_A_be_tiarm9.lib";
config Arm11_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm11_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm11_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm11_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm11_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm11_big_endian.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm11_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm11_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm11_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm11_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm11_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm11_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm11_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm11_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm11_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm11_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm11_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm11_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm11_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm11_big_endian.asmName(String CName) returns String
Arm11_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm11_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm11_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm11_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm11_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm11_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm11_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm11_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm11_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm11_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm11_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm11_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm11_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm11_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm11_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm11_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm11_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm11_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm11_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm11_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm11_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm11_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:14 GMT


module ti.targets.arm.Arm11_big_endian

     1    /*
     2     *  Copyright (c) 2009 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Arm11_big_endian.xdc ========
    14     *
    15     */
    16
    17    import ti.targets.ITarget;
    18
    19    /*!
    20     *  ======== Arm11_big_endian.xdc ========
    21     *  TI Arm11 big endian
    22     */
    23    metaonly module Arm11_big_endian inherits ti.targets.arm.IArm {
    24        override readonly config string name        ="Arm11_big_endian";
    25        override readonly config string suffix      = "11e";
    26        override readonly config string isa         = "v6";
    27        override readonly config string rts         = "ti.targets.arm.rtsarm";
    28        override readonly config xdc.bld.ITarget.Model model = {
    29            endian: "big"
    30        };
    31        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm11;
    32
    33        /*
    34         *  ======== compatibleSuffixes ========
    35         */
    36        override config String compatibleSuffixes[] = ["470e", "7e", "9e"];
    37
    38        override readonly config xdc.bld.ITarget2.Command cc = {
    39            cmd:  "cl470 -c",
    40            opts: "-mv6 --abi=ti_arm9_abi"
    41        };
    42
    43        override readonly config xdc.bld.ITarget2.Command asm = {
    44            cmd:  "cl470 -c",
    45            opts: "-mv6 --abi=ti_arm9_abi"
    46        };
    47
    48        override readonly config xdc.bld.ITarget2.Command lnk = {
    49            cmd:  "lnk470",
    50            opts: "--silicon_version=6 --strict_compatibility=on"
    51        };
    52
    53        /*!
    54         *  ======== linkLib ========
    55         *  Default Arm7 cgtools runtime library to link with
    56         *  (options: rts16.lib, rts32.lib)
    57         */
    58        config string linkLib = "rtsv5_A_be_tiarm9.lib";
    59    }
    60    /*
    61     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    62
    63     */
    64


module ti.targets.arm.Arm7

metaonly module ti.targets.arm.Arm7
index URL

TI Arm7 little endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/Arm7.xdc
var Arm7 = xdc.useModule('ti.targets.arm.Arm7');
module-wide constants & types
    var obj = new Arm7.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm7.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm7.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm7.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm7.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm7.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm7.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm7.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm7.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm7.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm7.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm7.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm7.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm7.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm7.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv4 --abi=ti_arm9_abi"
    };
    const Arm7.base// A target that this target is based upon = ITarget.Module computed value;
    const Arm7.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm7.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv4 --abi=ti_arm9_abi"
    };
    const Arm7.isa// CPU Instruction Set Architecture (ISA) = String "v4T";
    const Arm7.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=4 --strict_compatibility=on"
    };
    const Arm7.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const Arm7.name// Nickname for this target = String "Arm7";
    const Arm7.os// Name of OS required to run programs built for this target = String computed value;
    const Arm7.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm7.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const Arm7.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const Arm7.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm7.suffix// Suffix appended to all objs, libraries, and executable = String "7";
    const Arm7.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm7.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm7.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm7.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm7.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     Arm7.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm7.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "470"
    ];
     Arm7.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm7.execExt// Extension for executables = String undefined;
     Arm7.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm7.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm7.linkLib// Default Arm7 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib) = String "rts32e.lib";
     Arm7.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm7.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm7.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm7.platforms// A set of platforms that can support this target = String[] [ ];
     Arm7.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm7.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm7.version// The Compatibility Key associated with this target = String undefined;
     Arm7.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm7.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm7.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm7.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm7.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm7.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm7.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm7.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm7.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm7.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm7.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm7.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm7.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm7.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm7.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm7.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm7.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm7.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm7.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm7.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm7.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm7.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm7.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm7.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm7.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm7.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm7.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm7.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm7.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm7.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm7.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm7.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm7.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm7.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm7.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm7.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm7.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm7.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm7.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm7.alignDirectiveSupported = Bool true;
config Arm7.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm7.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm7.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm7.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv4 --abi=ti_arm9_abi"
};
config Arm7.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm7.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm7.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm7.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm7.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm7.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv4 --abi=ti_arm9_abi"
};
config Arm7.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm7.isa = String "v4T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm7.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm7.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=4 --strict_compatibility=on"
};
config Arm7.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm7.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm7.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm7.name = String "Arm7";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm7.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm7.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm7.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm7.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm7.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm7.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm7.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Arm7.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm7.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm7.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm7.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm7.suffix = String "7";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm7.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm7.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm7.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm7.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm7.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm7.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm7.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm7.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm7.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Arm7.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm7.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm7.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm7.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm7.compatibleSuffixes = String[] [
    "470"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm7.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm7.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm7.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm7.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm7.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm7.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm7.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm7.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm7.linkLib // module-wide
index URL

Default Arm7 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib)

XDCscript usage meta-domain
Arm7.linkLib = String "rts32e.lib";
config Arm7.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm7.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm7.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm7.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm7.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm7.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm7.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm7.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm7.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm7.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm7.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm7.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm7.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm7.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm7.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm7.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm7.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm7.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm7.asmName(String CName) returns String
Arm7.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm7.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm7.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm7.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm7.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm7.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm7.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm7.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm7.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm7.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm7.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm7.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm7.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm7.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm7.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm7.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm7.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm7.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:14 GMT


module ti.targets.arm.Arm7

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Arm7.xdc ========
    14     *
    15     */
    16
    17    import ti.targets.ITarget;
    18
    19    /*!
    20     *  ======== Arm7.xdc ========
    21     *  TI Arm7 little endian
    22     */
    23    metaonly module Arm7 inherits ti.targets.arm.IArm {
    24        override readonly config string name             = "Arm7";
    25        override readonly config string suffix           = "7";
    26        override readonly config string isa              = "v4T";
    27        override readonly config string rts              = "ti.targets.arm.rtsarm";
    28        override readonly config xdc.bld.ITarget.Model model = {
    29            endian: "little"
    30        };
    31
    32        /*
    33         *  ======== compatibleSuffixes ========
    34         */
    35        override config String compatibleSuffixes[] = ["470"];
    36
    37        override readonly config xdc.bld.ITarget2.Command cc = {
    38            cmd:  "cl470 -c",
    39            opts: " -me -mv4 --abi=ti_arm9_abi"
    40        };
    41
    42        override readonly config xdc.bld.ITarget2.Command asm = {
    43            cmd:  "cl470 -c",
    44            opts: " -me -mv4 --abi=ti_arm9_abi"
    45        };
    46
    47        override readonly config xdc.bld.ITarget2.Command lnk = {
    48            cmd:  "lnk470",
    49            opts: "--silicon_version=4 --strict_compatibility=on"
    50        };
    51
    52        /*!
    53         *  ======== linkLib ========
    54         *  Default Arm7 cgtools runtime library to link with
    55         *  (options: rts16e.lib, rts32e.lib)
    56         */
    57        config string linkLib = "rts32e.lib";
    58
    59    }
    60    /*
    61     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    62
    63     */
    64


module ti.targets.arm.Arm7_big_endian

metaonly module ti.targets.arm.Arm7_big_endian
index URL

TI Arm7 big endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/Arm7_big_endian.xdc
var Arm7_big_endian = xdc.useModule('ti.targets.arm.Arm7_big_endian');
module-wide constants & types
    var obj = new Arm7_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm7_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm7_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm7_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm7_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm7_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm7_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm7_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm7_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm7_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm7_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm7_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm7_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm7_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm7_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mv4 --abi=ti_arm9_abi"
    };
    const Arm7_big_endian.base// A target that this target is based upon = ITarget.Module Arm7.module;
    const Arm7_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm7_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mv4 --abi=ti_arm9_abi"
    };
    const Arm7_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v4T";
    const Arm7_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=4 --strict_compatibility=on"
    };
    const Arm7_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const Arm7_big_endian.name// Nickname for this target = String "Arm7_big_endian";
    const Arm7_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const Arm7_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm7_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const Arm7_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const Arm7_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm7_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "7e";
    const Arm7_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm7_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm7_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm7_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm7_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     Arm7_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm7_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "470e"
    ];
     Arm7_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm7_big_endian.execExt// Extension for executables = String undefined;
     Arm7_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm7_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm7_big_endian.linkLib// Default Arm7 cgtools runtime library to link with (options: rts16.lib, rts32.lib) = String "rts32.lib";
     Arm7_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm7_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm7_big_endian.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm7_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     Arm7_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm7_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm7_big_endian.version// The Compatibility Key associated with this target = String undefined;
     Arm7_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm7_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm7_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm7_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm7_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm7_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm7_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm7_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm7_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm7_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm7_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm7_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm7_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm7_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm7_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm7_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm7_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm7_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm7_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm7_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm7_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm7_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm7_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm7_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm7_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm7_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm7_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm7_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm7_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm7_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm7_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm7_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm7_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm7_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm7_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm7_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm7_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm7_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm7_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm7_big_endian.alignDirectiveSupported = Bool true;
config Arm7_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm7_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm7_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm7_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mv4 --abi=ti_arm9_abi"
};
config Arm7_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm7_big_endian.base = ITarget.Module Arm7.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm7_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm7_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm7_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm7_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mv4 --abi=ti_arm9_abi"
};
config Arm7_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm7_big_endian.isa = String "v4T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm7_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm7_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=4 --strict_compatibility=on"
};
config Arm7_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm7_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm7_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm7_big_endian.name = String "Arm7_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm7_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm7_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm7_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm7_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm7_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm7_big_endian.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm7_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Arm7_big_endian.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm7_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm7_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm7_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm7_big_endian.suffix = String "7e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm7_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm7_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm7_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm7_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm7_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm7_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm7_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm7_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm7_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Arm7_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm7_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm7_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm7_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm7_big_endian.compatibleSuffixes = String[] [
    "470e"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm7_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm7_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm7_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm7_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm7_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm7_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm7_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm7_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm7_big_endian.linkLib // module-wide
index URL

Default Arm7 cgtools runtime library to link with (options: rts16.lib, rts32.lib)

XDCscript usage meta-domain
Arm7_big_endian.linkLib = String "rts32.lib";
config Arm7_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm7_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm7_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm7_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm7_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm7_big_endian.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm7_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm7_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm7_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm7_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm7_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm7_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm7_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm7_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm7_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm7_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm7_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm7_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm7_big_endian.asmName(String CName) returns String
Arm7_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm7_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm7_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm7_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm7_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm7_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm7_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm7_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm7_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm7_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm7_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm7_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm7_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm7_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm7_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm7_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm7_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:14 GMT


module ti.targets.arm.Arm7_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Arm7_big_endian.xdc ========
    14     *
    15     */
    16
    17    import xdc.bld.ITarget2;
    18
    19    /*!
    20     *  ======== Arm7_big_endian.xdc ========
    21     *  TI Arm7 big endian
    22     */
    23    metaonly module Arm7_big_endian inherits ti.targets.arm.IArm {
    24        override readonly config string name        ="Arm7_big_endian";
    25        override readonly config string suffix      = "7e";
    26        override readonly config string isa         = "v4T";
    27        override readonly config string rts         = "ti.targets.arm.rtsarm";
    28        override readonly config xdc.bld.ITarget.Model model = {
    29            endian: "big"
    30        };
    31        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm7;
    32
    33        /*
    34         *  ======== compatibleSuffixes ========
    35         */
    36        override config String compatibleSuffixes[] = ["470e"];
    37
    38        override readonly config ITarget2.Command cc = {
    39            cmd:  "cl470 -c",
    40            opts: "-mv4 --abi=ti_arm9_abi"
    41        };
    42
    43        override readonly config ITarget2.Command asm = {
    44            cmd:  "cl470 -c",
    45            opts: "-mv4 --abi=ti_arm9_abi"
    46        };
    47
    48        override readonly config ITarget2.Command lnk = {
    49            cmd:  "lnk470",
    50            opts: "--silicon_version=4 --strict_compatibility=on"
    51        };
    52
    53        /*!
    54         *  ======== linkLib ========
    55         *  Default Arm7 cgtools runtime library to link with
    56         *  (options: rts16.lib, rts32.lib)
    57         */
    58        config string linkLib = "rts32.lib";
    59    }
    60    /*
    61     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    62
    63     */
    64


module ti.targets.arm.Arm9

metaonly module ti.targets.arm.Arm9
index URL

TI Arm9 little endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/Arm9.xdc
var Arm9 = xdc.useModule('ti.targets.arm.Arm9');
module-wide constants & types
    var obj = new Arm9.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm9.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm9.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm9.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm9.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm9.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm9.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm9.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm9.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm9.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm9.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm9.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm9.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm9.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm9.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-me -mv5e --abi=ti_arm9_abi"
    };
    const Arm9.base// A target that this target is based upon = ITarget.Module TMS470.module;
    const Arm9.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm9.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-me -mv5e --abi=ti_arm9_abi"
    };
    const Arm9.isa// CPU Instruction Set Architecture (ISA) = String "v5T";
    const Arm9.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=5e --strict_compatibility=on"
    };
    const Arm9.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const Arm9.name// Nickname for this target = String "Arm9";
    const Arm9.os// Name of OS required to run programs built for this target = String computed value;
    const Arm9.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm9.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const Arm9.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const Arm9.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm9.suffix// Suffix appended to all objs, libraries, and executable = String "9";
    const Arm9.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm9.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm9.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm9.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm9.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     Arm9.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm9.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "7",
        "470",
        "9t"
    ];
     Arm9.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm9.execExt// Extension for executables = String undefined;
     Arm9.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm9.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm9.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rts32e.lib";
     Arm9.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm9.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm9.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm9.platforms// A set of platforms that can support this target = String[] [ ];
     Arm9.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm9.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm9.version// The Compatibility Key associated with this target = String undefined;
     Arm9.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm9.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm9.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm9.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm9.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm9.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm9.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm9.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm9.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm9.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm9.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm9.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm9.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm9.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm9.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm9.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm9.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm9.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm9.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm9.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm9.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm9.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm9.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm9.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm9.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm9.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm9.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm9.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm9.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm9.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm9.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm9.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm9.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm9.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm9.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm9.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm9.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm9.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm9.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm9.alignDirectiveSupported = Bool true;
config Arm9.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm9.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm9.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm9.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-me -mv5e --abi=ti_arm9_abi"
};
config Arm9.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm9.base = ITarget.Module TMS470.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm9.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm9.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm9.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm9.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-me -mv5e --abi=ti_arm9_abi"
};
config Arm9.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm9.isa = String "v5T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm9.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm9.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=5e --strict_compatibility=on"
};
config Arm9.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm9.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm9.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm9.name = String "Arm9";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm9.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm9.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm9.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm9.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm9.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm9.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm9.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Arm9.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm9.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm9.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm9.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm9.suffix = String "9";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm9.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm9.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm9.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm9.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm9.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm9.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm9.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm9.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm9.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Arm9.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm9.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm9.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm9.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm9.compatibleSuffixes = String[] [
    "7",
    "470",
    "9t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm9.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm9.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm9.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm9.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm9.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm9.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm9.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm9.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm9.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
Arm9.linkLib = String "rts32e.lib";
config Arm9.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm9.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm9.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm9.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm9.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm9.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm9.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm9.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm9.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm9.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm9.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm9.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm9.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm9.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm9.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm9.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm9.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm9.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm9.asmName(String CName) returns String
Arm9.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm9.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm9.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm9.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm9.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm9.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm9.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm9.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm9.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm9.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm9.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm9.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm9.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm9.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm9.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm9.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm9.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm9.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:15 GMT


module ti.targets.arm.Arm9

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Arm9.xdc ========
    15     *  TI Arm9 little endian
    16     */
    17    metaonly module Arm9 inherits ti.targets.arm.IArm {
    18        override readonly config string name        = "Arm9";
    19        override readonly config string suffix      = "9";
    20        override readonly config string isa         = "v5T";
    21        override readonly config string rts         = "ti.targets.arm.rtsarm";
    22
    23        override readonly config xdc.bld.ITarget.Module base = ti.targets.TMS470;
    24
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little"
    27        };
    28
    29        /*
    30         *  ======== compatibleSuffixes ========
    31         */
    32        override config String compatibleSuffixes[] = ["7", "470", "9t"];
    33
    34        override readonly config xdc.bld.ITarget2.Command cc = {
    35            cmd:  "cl470 -c",
    36            opts: "-me -mv5e --abi=ti_arm9_abi"
    37        };
    38
    39        override readonly config xdc.bld.ITarget2.Command asm = {
    40            cmd:  "cl470 -c",
    41            opts: "-me -mv5e --abi=ti_arm9_abi"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command lnk = {
    45            cmd:  "lnk470",
    46            opts: "--silicon_version=5e --strict_compatibility=on"
    47        };
    48
    49        /*!
    50         *  ======== linkLib ========
    51         *  Default TMS470 cgtools runtime library to link with executable
    52         *  (comes from $rootDir/lib)
    53         */
    54        config string linkLib = "rts32e.lib";
    55    }
    56    /*
    57     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    58
    59     */
    60


module ti.targets.arm.Arm9t

metaonly module ti.targets.arm.Arm9t
index URL

TI Arm9 little endian thumb-mode

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/Arm9t.xdc
var Arm9t = xdc.useModule('ti.targets.arm.Arm9t');
module-wide constants & types
    var obj = new Arm9t.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm9t.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm9t.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm9t.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm9t.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm9t.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm9t.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm9t.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm9t.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm9t.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm9t.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm9t.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm9t.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm9t.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm9t.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mt -mv5e --abi=ti_arm9_abi"
    };
    const Arm9t.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const Arm9t.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm9t.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-me -mt -mv5e --abi=ti_arm9_abi"
    };
    const Arm9t.isa// CPU Instruction Set Architecture (ISA) = String "v5T";
    const Arm9t.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=5e --strict_compatibility=on"
    };
    const Arm9t.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb"
    };
    const Arm9t.name// Nickname for this target = String "Arm9t";
    const Arm9t.os// Name of OS required to run programs built for this target = String computed value;
    const Arm9t.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm9t.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const Arm9t.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const Arm9t.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm9t.suffix// Suffix appended to all objs, libraries, and executable = String "9t";
    const Arm9t.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm9t.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm9t.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm9t.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm9t.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     Arm9t.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm9t.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "9",
        "7",
        "470"
    ];
     Arm9t.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm9t.execExt// Extension for executables = String undefined;
     Arm9t.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm9t.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm9t.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rts16e.lib";
     Arm9t.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm9t.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm9t.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm9t.platforms// A set of platforms that can support this target = String[] [ ];
     Arm9t.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm9t.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm9t.version// The Compatibility Key associated with this target = String undefined;
     Arm9t.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm9t.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm9t.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm9t.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm9t.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm9t.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm9t.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm9t.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm9t.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm9t.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm9t.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm9t.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm9t.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm9t.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm9t.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm9t.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm9t.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm9t.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm9t.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm9t.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm9t.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm9t.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm9t.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm9t.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm9t.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm9t.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm9t.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm9t.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm9t.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm9t.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm9t.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm9t.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm9t.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm9t.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm9t.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm9t.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm9t.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm9t.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm9t.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm9t.alignDirectiveSupported = Bool true;
config Arm9t.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm9t.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm9t.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm9t.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mt -mv5e --abi=ti_arm9_abi"
};
config Arm9t.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm9t.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm9t.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm9t.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm9t.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm9t.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-me -mt -mv5e --abi=ti_arm9_abi"
};
config Arm9t.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm9t.isa = String "v5T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm9t.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm9t.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=5e --strict_compatibility=on"
};
config Arm9t.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm9t.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm9t.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm9t.name = String "Arm9t";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm9t.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm9t.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm9t.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm9t.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm9t.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm9t.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm9t.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const Arm9t.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm9t.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm9t.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm9t.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm9t.suffix = String "9t";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm9t.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm9t.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm9t.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm9t.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm9t.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm9t.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm9t.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm9t.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm9t.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
Arm9t.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm9t.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm9t.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm9t.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm9t.compatibleSuffixes = String[] [
    "9",
    "7",
    "470"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm9t.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm9t.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm9t.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm9t.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm9t.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm9t.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm9t.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm9t.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm9t.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
Arm9t.linkLib = String "rts16e.lib";
config Arm9t.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm9t.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm9t.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm9t.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm9t.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm9t.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm9t.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm9t.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm9t.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm9t.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm9t.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm9t.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm9t.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm9t.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm9t.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm9t.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm9t.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm9t.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm9t.asmName(String CName) returns String
Arm9t.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm9t.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm9t.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm9t.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm9t.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm9t.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm9t.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm9t.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm9t.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm9t.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm9t.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm9t.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm9t.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm9t.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm9t.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm9t.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm9t.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:15 GMT


module ti.targets.arm.Arm9t

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Arm9t.xdc ========
    15     *  TI Arm9 little endian thumb-mode
    16     */
    17    metaonly module Arm9t inherits ti.targets.arm.IArm {
    18        override readonly config string name        = "Arm9t";
    19        override readonly config string suffix      = "9t";
    20        override readonly config string isa         = "v5T";
    21        override readonly config string rts         = "ti.targets.arm.rtsarm";
    22
    23        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    24
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27            codeModel: "thumb"
    28        };
    29
    30        /*
    31         *  ======== compatibleSuffixes ========
    32         */
    33        override config String compatibleSuffixes[] = ["9", "7", "470"];
    34
    35        override readonly config xdc.bld.ITarget2.Command cc = {
    36            cmd:  "cl470 -c",
    37            opts: "-me -mt -mv5e --abi=ti_arm9_abi"
    38        };
    39
    40        override readonly config xdc.bld.ITarget2.Command asm = {
    41            cmd:  "cl470 -c",
    42            opts: " -me -mt -mv5e --abi=ti_arm9_abi"
    43        };
    44
    45        override readonly config xdc.bld.ITarget2.Command lnk = {
    46            cmd:  "lnk470",
    47            opts: "--silicon_version=5e --strict_compatibility=on"
    48        };
    49
    50        /*!
    51         *  ======== linkLib ========
    52         *  Default TMS470 cgtools runtime library to link with executable
    53         *  (comes from $rootDir/lib)
    54         */
    55        config string linkLib = "rts16e.lib";
    56    }
    57    /*
    58     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    59
    60     */
    61


interface ti.targets.arm.IArm

metaonly interface ti.targets.arm.IArm
index URL

Common settings for all Arm targets

XDCspec summary sourced in ti/targets/arm/IArm.xdc
metaonly interface IArm { ...
// inherits ti.targets.ITarget
    // inherits xdc.bld.ITarget2
        // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/IArm.xdc
package ti.targets.arm;
metaonly interface IArm inherits ITarget {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    readonly config ITarget.Module base// A target that this target is based upon;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: ""
    };
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    override readonly config String stdInclude// Standard C/C++ types header = "ti/targets/arm/std.h";
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.sim470xx";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IArm.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/IArm.xdc
typedef String StringArray[];
struct IArm.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IArm.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IArm.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IArm.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IArm.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IArm.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IArm.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IArm.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IArm.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IArm.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IArm.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IArm.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IArm.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override readonly config Bool alignDirectiveSupported = true;
config IArm.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IArm.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
readonly config ITarget2.Command asm;
config IArm.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IArm.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IArm.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
readonly config ITarget2.Command cc;
config IArm.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IArm.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: ""
};
config IArm.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IArm.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IArm.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IArm.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IArm.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override readonly config String sectMap[string] = [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IArm.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override readonly config String stdInclude = "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IArm.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IArm.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IArm.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IArm.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IArm.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IArm.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IArm.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IArm.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IArm.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IArm.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IArm.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IArm.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IArm.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IArm.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IArm.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IArm.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config String platform = "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IArm.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IArm.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IArm.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IArm.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IArm.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IArm.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IArm.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
String asmName(String CName);
IArm.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IArm.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IArm.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IArm.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IArm.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IArm.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IArm.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IArm.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IArm.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IArm.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IArm.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IArm.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:12 GMT


interface ti.targets.arm.IArm

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    import ti.targets.ITarget;
    13
    14    /*!
    15     *  ======== IArm.xdc ========
    16     *  Common settings for all Arm targets
    17     */
    18    metaonly interface IArm inherits ti.targets.ITarget {
    19
    20        override readonly config string stdInclude = "ti/targets/arm/std.h";
    21
    22        override config string platform   = "ti.platforms.sim470xx";
    23
    24        override config string includeOpts =
    25            "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    26
    27        override readonly config xdc.bld.ITarget2.Command ar = {
    28            cmd:  "ar470",
    29            opts: "rq"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command vers = {
    33            cmd:  "cl470",
    34            opts: "--compiler_revision"
    35        };
    36
    37        override readonly config xdc.bld.ITarget2.Command lnk = {
    38            cmd:  "lnk470",
    39            opts: ""
    40        };
    41
    42        /*!
    43         *  ======== ccOpts ========
    44         *  User configurable compiler options.
    45         *
    46         *  Defaults:
    47         *  @p(dlist)
    48         *      -`-qq`
    49         *          super quiet mode
    50         *      -`-pdsw225`
    51         *          generate a warning for implicitly declared functions; i.e.,
    52         *          functions without prototypes
    53         */
    54        override config xdc.bld.ITarget2.Options ccOpts = {
    55            prefix: "-qq -pdsw225",
    56            suffix: ""
    57        };
    58
    59        /*!
    60         *  ======== ccConfigOpts ========
    61         *  User configurable compiler options for the generated config C file.
    62         */
    63        override config xdc.bld.ITarget2.Options ccConfigOpts = {
    64            prefix: "$(ccOpts.prefix) -ms",
    65            suffix: "$(ccOpts.suffix)"
    66        };
    67
    68        /*!
    69         *  ======== asmOpts ========
    70         *  User configurable assembler options.
    71         *
    72         *  Defaults:
    73         *  @p(dlist)
    74         *      -`-qq`
    75         *          super quiet mode
    76         */
    77        override config xdc.bld.ITarget2.Options asmOpts = {
    78            prefix: "-qq",
    79            suffix: ""
    80        };
    81
    82        /*!
    83         *  ======== lnkOpts ========
    84         *  User configurable linker options.
    85         *
    86         *  Defaults:
    87         *  @p(dlist)
    88         *      -`-w`
    89         *          Display linker warnings
    90         *      -`-q`
    91         *          Quite run
    92         *      -`-u`
    93         *          Place unresolved external symbol into symbol table
    94         *      -`-c`
    95         *          ROM autoinitialization model
    96         *      -`-m`
    97         *          create a map file
    98         */
    99        override config xdc.bld.ITarget2.Options lnkOpts = {
   100            prefix: "-w -q -u _c_int00",
   101            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   102        };
   103
   104        /*!
   105         *  ======== profiles ========
   106         *  Standard options profiles for the TI tool-chain.
   107         */
   108        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   109            ["debug", {
   110                compileOpts: {
   111                    copts: "--symdebug:dwarf",
   112                    defs:  "-D_DEBUG_=1",
   113                }
   114            }],
   115            ["release", {
   116                compileOpts: {
   117                    copts: "-O2",
   118                },
   119            }],
   120            ["profile", {
   121                compileOpts: {
   122                    copts: "--symdebug:profile_coff",
   123                },
   124            }],
   125            ["coverage", {
   126                compileOpts: {
   127                    copts: "--symdebug:profile_coff",
   128                },
   129            }],
   130            ["whole_program", {
   131                compileOpts: {
   132                    copts: "-oe -O2 -ms",
   133                },
   134            }],
   135            ["whole_program_debug", {
   136                compileOpts: {
   137                    copts: "-oe --symdebug:dwarf -ms",
   138                },
   139            }],
   140        ];
   141
   142        final override readonly config string sectMap[string] = [
   143            [".intvecs", "code"],
   144
   145            [".text", "code"],
   146            [".cinit", "code"],
   147            [".const", "code"],
   148            [".pinit", "code"],
   149
   150            [".bss", "data"],
   151            [".sysmem", "data"],
   152            [".stack", "stack"],
   153            [".args", "data"],
   154        ];
   155
   156        override readonly config Int bitsPerChar = 8;
   157
   158        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   159            t_IArg          : { size: 4, align: 4 },
   160            t_Char          : { size: 1, align: 1 },
   161            t_Double        : { size: 8, align: 4 },
   162            t_Float         : { size: 4, align: 4 },
   163            t_Fxn           : { size: 4, align: 4 },
   164            t_Int           : { size: 4, align: 4 },
   165            t_Int8          : { size: 1, align: 1 },
   166            t_Int16         : { size: 2, align: 2 },
   167            t_Int32         : { size: 4, align: 4 },
   168            t_Int64         : { size: 8, align: 4 },
   169            t_Long          : { size: 4, align: 4 },
   170            t_LDouble       : { size: 8, align: 4 },
   171            t_LLong         : { size: 8, align: 4 },
   172            t_Ptr           : { size: 4, align: 4 },
   173            t_Short         : { size: 2, align: 2 },
   174            t_Size          : { size: 4, align: 4 },
   175        };
   176    }
   177    /*
   178     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   179
   180     */
   181


interface ti.targets.arm.IM3

metaonly interface ti.targets.arm.IM3
index URL

Cortex M3 little endian thumb2 target

XDCspec summary sourced in ti/targets/arm/IM3.xdc
metaonly interface IM3 { ...
// inherits ti.targets.arm.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/IM3.xdc
package ti.targets.arm;
metaonly interface IM3 inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7M";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--silicon_version=7M3 --strict_compatibility=on"
    };
    override readonly config ITarget.Model model// Run-time model = {
        endian: "little",
        codeModel: "thumb2"
    };
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    override readonly config String stdInclude// Standard C/C++ types header = "ti/targets/arm/std.h";
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.simDM8168";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IM3.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/IM3.xdc
typedef String StringArray[];
struct IM3.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IM3.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IM3.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IM3.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IM3.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IM3.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IM3.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IM3.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IM3.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IM3.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IM3.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IM3.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IM3.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config Bool alignDirectiveSupported = true;
config IM3.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IM3.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
readonly config ITarget2.Command asm;
config IM3.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IM3.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IM3.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
readonly config ITarget2.Command cc;
config IM3.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config String isa = "v7M";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IM3.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--silicon_version=7M3 --strict_compatibility=on"
};
config IM3.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config ITarget.Model model = {
    endian: "little",
    codeModel: "thumb2"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IM3.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IM3.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IM3.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IM3.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config String sectMap[string] = [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IM3.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config String stdInclude = "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IM3.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IM3.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IM3.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IM3.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IM3.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IM3.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IM3.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IM3.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IM3.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IM3.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IM3.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IM3.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IM3.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IM3.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IM3.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IM3.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config String platform = "ti.platforms.simDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IM3.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IM3.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IM3.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IM3.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IM3.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IM3.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
String asmName(String CName);
IM3.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IM3.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM3.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM3.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IM3.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IM3.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IM3.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IM3.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IM3.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IM3.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:12 GMT


interface ti.targets.arm.IM3

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IM3.xdc ========
    15     *  Cortex M3 little endian thumb2 target
    16     */
    17    metaonly interface IM3 inherits ti.targets.arm.IArm {
    18        override readonly config string isa         = "v7M";
    19
    20        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.simDM8168";
    23
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "little",
    26            codeModel: "thumb2"
    27        };
    28
    29        override readonly config xdc.bld.ITarget2.Command lnk = {
    30            cmd:  "lnk470",
    31            opts: "--silicon_version=7M3 --strict_compatibility=on"
    32        };
    33    }
    34    /*
    35     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    36
    37     */
    38


interface ti.targets.arm.IM3_big_endian

metaonly interface ti.targets.arm.IM3_big_endian
index URL

Cortex M3 big endian thumb2 target

XDCspec summary sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly interface IM3_big_endian { ...
// inherits ti.targets.arm.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
package ti.targets.arm;
metaonly interface IM3_big_endian inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7M";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
    };
    override readonly config ITarget.Model model// Run-time model = {
        endian: "big",
        codeModel: "thumb2"
    };
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    override readonly config String stdInclude// Standard C/C++ types header = "ti/targets/arm/std.h";
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.simDM8168";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IM3_big_endian.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
typedef String StringArray[];
struct IM3_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IM3_big_endian.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IM3_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IM3_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IM3_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IM3_big_endian.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IM3_big_endian.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IM3_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IM3_big_endian.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IM3_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IM3_big_endian.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IM3_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IM3_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config Bool alignDirectiveSupported = true;
config IM3_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IM3_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
readonly config ITarget2.Command asm;
config IM3_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IM3_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IM3_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
readonly config ITarget2.Command cc;
config IM3_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config String isa = "v7M";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IM3_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
};
config IM3_big_endian.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config ITarget.Model model = {
    endian: "big",
    codeModel: "thumb2"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IM3_big_endian.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IM3_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IM3_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IM3_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config String sectMap[string] = [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IM3_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config String stdInclude = "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IM3_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IM3_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IM3_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IM3_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IM3_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IM3_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IM3_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IM3_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IM3_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IM3_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IM3_big_endian.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IM3_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IM3_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IM3_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IM3_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IM3_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config String platform = "ti.platforms.simDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IM3_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IM3_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IM3_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IM3_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IM3_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IM3_big_endian.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
String asmName(String CName);
IM3_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IM3_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM3_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM3_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IM3_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IM3_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IM3_big_endian.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:12 GMT


interface ti.targets.arm.IM3_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IM3_big_endian.xdc ========
    15     *  Cortex M3 big endian thumb2 target
    16     */
    17    metaonly interface IM3_big_endian inherits ti.targets.arm.IArm {
    18        override readonly config string isa         = "v7M";
    19
    20        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.simDM8168";
    23
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "big",
    26            codeModel: "thumb2"
    27        };
    28
    29        override readonly config xdc.bld.ITarget2.Command lnk = {
    30            cmd:  "lnk470",
    31            opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
    32        };
    33    }
    34
    35    /*
    36     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    37
    38     */
    39


interface ti.targets.arm.IR4

metaonly interface ti.targets.arm.IR4
index URL

Cortex R4 little endian target

XDCspec summary sourced in ti/targets/arm/IR4.xdc
metaonly interface IR4 { ...
// inherits ti.targets.arm.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/IR4.xdc
package ti.targets.arm;
metaonly interface IR4 inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7R";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--silicon_version=7R4 --strict_compatibility=on"
    };
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    override readonly config String stdInclude// Standard C/C++ types header = "ti/targets/arm/std.h";
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.evmTMS570";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IR4.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/IR4.xdc
typedef String StringArray[];
struct IR4.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IR4.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IR4.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IR4.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IR4.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IR4.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IR4.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IR4.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IR4.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IR4.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IR4.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IR4.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IR4.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config Bool alignDirectiveSupported = true;
config IR4.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IR4.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
readonly config ITarget2.Command asm;
config IR4.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IR4.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IR4.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
readonly config ITarget2.Command cc;
config IR4.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config String isa = "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IR4.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--silicon_version=7R4 --strict_compatibility=on"
};
config IR4.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IR4.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IR4.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IR4.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IR4.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config String sectMap[string] = [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IR4.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config String stdInclude = "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IR4.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IR4.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IR4.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IR4.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IR4.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IR4.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IR4.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IR4.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IR4.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IR4.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IR4.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IR4.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IR4.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IR4.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IR4.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IR4.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config String platform = "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IR4.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IR4.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IR4.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IR4.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IR4.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IR4.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
String asmName(String CName);
IR4.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IR4.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IR4.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IR4.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IR4.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IR4.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IR4.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IR4.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IR4.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IR4.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:13 GMT


interface ti.targets.arm.IR4

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IR4.xdc ========
    15     *  Cortex R4 little endian target
    16     */
    17    metaonly interface IR4 inherits ti.targets.arm.IArm {
    18        override readonly config string isa         = "v7R";
    19
    20        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.evmTMS570";
    23
    24        override readonly config xdc.bld.ITarget2.Command lnk = {
    25            cmd:  "lnk470",
    26            opts: "--silicon_version=7R4 --strict_compatibility=on"
    27        };
    28    }
    29    /*
    30     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    31
    32     */
    33


interface ti.targets.arm.IR4_big_endian

metaonly interface ti.targets.arm.IR4_big_endian
index URL

Cortex R4 big endian target

XDCspec summary sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly interface IR4_big_endian { ...
// inherits ti.targets.arm.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
package ti.targets.arm;
metaonly interface IR4_big_endian inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7R";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--be32 --silicon_version=7R4 --strict_compatibility=on"
    };
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    override readonly config String stdInclude// Standard C/C++ types header = "ti/targets/arm/std.h";
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.evmTMS570";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IR4_big_endian.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
typedef String StringArray[];
struct IR4_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IR4_big_endian.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IR4_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IR4_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IR4_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IR4_big_endian.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IR4_big_endian.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IR4_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IR4_big_endian.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IR4_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IR4_big_endian.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IR4_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IR4_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config Bool alignDirectiveSupported = true;
config IR4_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IR4_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
readonly config ITarget2.Command asm;
config IR4_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IR4_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IR4_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
readonly config ITarget2.Command cc;
config IR4_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config String isa = "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IR4_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--be32 --silicon_version=7R4 --strict_compatibility=on"
};
config IR4_big_endian.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IR4_big_endian.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IR4_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IR4_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IR4_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config String sectMap[string] = [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IR4_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config String stdInclude = "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IR4_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IR4_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IR4_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IR4_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IR4_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IR4_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IR4_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IR4_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IR4_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IR4_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IR4_big_endian.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IR4_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IR4_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IR4_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IR4_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IR4_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config String platform = "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IR4_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IR4_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IR4_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IR4_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IR4_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IR4_big_endian.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
String asmName(String CName);
IR4_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IR4_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IR4_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IR4_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IR4_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IR4_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/IR4_big_endian.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:13 GMT


interface ti.targets.arm.IR4_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IR4_big_endian.xdc ========
    15     *  Cortex R4 big endian target
    16     */
    17    metaonly interface IR4_big_endian inherits ti.targets.arm.IArm {
    18        override readonly config string isa         = "v7R";
    19
    20        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.evmTMS570";
    23
    24        override readonly config xdc.bld.ITarget2.Command lnk = {
    25            cmd:  "lnk470",
    26            opts: "--be32 --silicon_version=7R4 --strict_compatibility=on"
    27        };
    28    }
    29    /*
    30     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    31
    32     */
    33


module ti.targets.arm.M3

metaonly module ti.targets.arm.M3
index URL

Cortex M3 little endian thumb2

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/M3.xdc
var M3 = xdc.useModule('ti.targets.arm.M3');
module-wide constants & types
    var obj = new M3.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new M3.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new M3.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new M3.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new M3.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new M3.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new M3.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new M3.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new M3.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new M3.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new M3.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new M3.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const M3.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const M3.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const M3.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7M3 --abi=ti_arm9_abi"
    };
    const M3.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const M3.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const M3.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7M3 --abi=ti_arm9_abi"
    };
    const M3.isa// CPU Instruction Set Architecture (ISA) = String "v7M";
    const M3.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7M3 --strict_compatibility=on"
    };
    const M3.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2"
    };
    const M3.name// Nickname for this target = String "M3";
    const M3.os// Name of OS required to run programs built for this target = String computed value;
    const M3.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const M3.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const M3.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const M3.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const M3.suffix// Suffix appended to all objs, libraries, and executable = String "m3";
    const M3.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     M3.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M3.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     M3.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     M3.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     M3.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     M3.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     M3.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     M3.execExt// Extension for executables = String undefined;
     M3.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     M3.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     M3.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7M3_T_le_tiarm9.lib";
     M3.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     M3.pathPrefix// A prefix to the PATH environment variable = String "";
     M3.platform// The default platform name for this target = String "ti.platforms.simDM8168";
     M3.platforms// A set of platforms that can support this target = String[] [ ];
     M3.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     M3.rootDir// Installation directory for this target's code generation tools = String undefined;
     M3.version// The Compatibility Key associated with this target = String undefined;
     M3.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     M3.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     M3.asmName// The function that converts a C name into an assembly name(String CName) returns String
     M3.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     M3.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     M3.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     M3.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     M3.getVersion// Get a target-specific Compatibility Key string() returns String
     M3.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     M3.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct M3.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new M3.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct M3.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new M3.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct M3.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new M3.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct M3.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new M3.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct M3.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new M3.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct M3.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new M3.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct M3.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new M3.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct M3.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new M3.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct M3.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new M3.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct M3.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new M3.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct M3.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new M3.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct M3.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new M3.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config M3.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const M3.alignDirectiveSupported = Bool true;
config M3.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const M3.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config M3.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const M3.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7M3 --abi=ti_arm9_abi"
};
config M3.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const M3.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config M3.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const M3.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config M3.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const M3.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7M3 --abi=ti_arm9_abi"
};
config M3.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const M3.isa = String "v7M";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config M3.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const M3.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7M3 --strict_compatibility=on"
};
config M3.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const M3.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config M3.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const M3.name = String "M3";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config M3.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const M3.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config M3.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const M3.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config M3.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const M3.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config M3.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const M3.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config M3.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const M3.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config M3.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const M3.suffix = String "m3";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config M3.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const M3.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config M3.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
M3.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M3.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
M3.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config M3.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
M3.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config M3.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
M3.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config M3.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
M3.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config M3.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
M3.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config M3.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
M3.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config M3.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
M3.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config M3.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
M3.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config M3.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
M3.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config M3.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
M3.linkLib = String "rtsv7M3_T_le_tiarm9.lib";
config M3.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
M3.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config M3.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
M3.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config M3.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
M3.platform = String "ti.platforms.simDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config M3.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
M3.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config M3.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
M3.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config M3.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
M3.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config M3.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
M3.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config M3.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
M3.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
M3.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
M3.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
M3.asmName(String CName) returns String
M3.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
M3.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
M3.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
M3.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
M3.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
M3.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
M3.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
M3.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
M3.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
M3.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
M3.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
M3.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
M3.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
M3.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
M3.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
M3.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
M3.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
M3.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:15 GMT


module ti.targets.arm.M3_big_endian

metaonly module ti.targets.arm.M3_big_endian
index URL

Cortex M3 big endian thumb2

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/M3_big_endian.xdc
var M3_big_endian = xdc.useModule('ti.targets.arm.M3_big_endian');
module-wide constants & types
    var obj = new M3_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new M3_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new M3_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new M3_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new M3_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new M3_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new M3_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new M3_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new M3_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new M3_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new M3_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new M3_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const M3_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const M3_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const M3_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=big -mv7M3 --abi=ti_arm9_abi"
    };
    const M3_big_endian.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const M3_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const M3_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=big -mv7M3 --abi=ti_arm9_abi"
    };
    const M3_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v7M";
    const M3_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
    };
    const M3_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        codeModel: "thumb2"
    };
    const M3_big_endian.name// Nickname for this target = String "M3_big_endian";
    const M3_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const M3_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const M3_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const M3_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const M3_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const M3_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "m3e";
    const M3_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     M3_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M3_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     M3_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     M3_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     M3_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     M3_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     M3_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     M3_big_endian.execExt// Extension for executables = String undefined;
     M3_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     M3_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     M3_big_endian.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7M3_T_be_tiarm9.lib";
     M3_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     M3_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     M3_big_endian.platform// The default platform name for this target = String "ti.platforms.simDM8168";
     M3_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     M3_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     M3_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     M3_big_endian.version// The Compatibility Key associated with this target = String undefined;
     M3_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     M3_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     M3_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     M3_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     M3_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     M3_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     M3_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     M3_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     M3_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     M3_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct M3_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new M3_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct M3_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new M3_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct M3_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new M3_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct M3_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new M3_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct M3_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new M3_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct M3_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new M3_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct M3_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new M3_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct M3_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new M3_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct M3_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new M3_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct M3_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new M3_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct M3_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new M3_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct M3_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new M3_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config M3_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const M3_big_endian.alignDirectiveSupported = Bool true;
config M3_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const M3_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config M3_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const M3_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=big -mv7M3 --abi=ti_arm9_abi"
};
config M3_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const M3_big_endian.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config M3_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const M3_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config M3_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const M3_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=big -mv7M3 --abi=ti_arm9_abi"
};
config M3_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const M3_big_endian.isa = String "v7M";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config M3_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const M3_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
};
config M3_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const M3_big_endian.model = ITarget.Model {
    endian: "big",
    codeModel: "thumb2"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config M3_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const M3_big_endian.name = String "M3_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config M3_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const M3_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config M3_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const M3_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config M3_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const M3_big_endian.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config M3_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const M3_big_endian.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config M3_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const M3_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config M3_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const M3_big_endian.suffix = String "m3e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config M3_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const M3_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config M3_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
M3_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M3_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
M3_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config M3_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
M3_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config M3_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
M3_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config M3_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
M3_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config M3_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
M3_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config M3_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
M3_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config M3_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
M3_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config M3_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
M3_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config M3_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
M3_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config M3_big_endian.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
M3_big_endian.linkLib = String "rtsv7M3_T_be_tiarm9.lib";
config M3_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
M3_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config M3_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
M3_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config M3_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
M3_big_endian.platform = String "ti.platforms.simDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config M3_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
M3_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config M3_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
M3_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config M3_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
M3_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config M3_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
M3_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config M3_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
M3_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
M3_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
M3_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
M3_big_endian.asmName(String CName) returns String
M3_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
M3_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
M3_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
M3_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
M3_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
M3_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
M3_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
M3_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
M3_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
M3_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
M3_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
M3_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
M3_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
M3_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
M3_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:16 GMT


module ti.targets.arm.M3_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== M3_big_endian.xdc ========
    15     *  Cortex M3 big endian thumb2
    16     */
    17    metaonly module M3_big_endian inherits ti.targets.arm.IM3_big_endian {
    18        override readonly config string name        = "M3_big_endian";
    19        override readonly config string suffix      = "m3e";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget2.Command cc = {
    23            cmd:  "cl470 -c",
    24            opts: "--endian=big -mv7M3 --abi=ti_arm9_abi"
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command asm = {
    28            cmd:  "cl470 -c",
    29            opts: "--endian=big -mv7M3 --abi=ti_arm9_abi"
    30        };
    31
    32        /*!
    33         *  ======== linkLib ========
    34         *  Default TMS470 cgtools runtime library to link with executable
    35         *  (comes from $rootDir/lib)
    36         */
    37        config string linkLib = "rtsv7M3_T_be_tiarm9.lib";
    38    }
    39    /*
    40     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    41
    42     */
    43


module ti.targets.arm.R4

metaonly module ti.targets.arm.R4
index URL

Cortex R4 little endian thumb2

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/R4.xdc
var R4 = xdc.useModule('ti.targets.arm.R4');
module-wide constants & types
    var obj = new R4.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7R4 --abi=ti_arm9_abi"
    };
    const R4.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7R4 --abi=ti_arm9_abi"
    };
    const R4.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7R4 --strict_compatibility=on"
    };
    const R4.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const R4.name// Nickname for this target = String "R4";
    const R4.os// Name of OS required to run programs built for this target = String computed value;
    const R4.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const R4.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const R4.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4.suffix// Suffix appended to all objs, libraries, and executable = String "r4";
    const R4.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     R4.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4.execExt// Extension for executables = String undefined;
     R4.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_A_le_tiarm9.lib";
     R4.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4.pathPrefix// A prefix to the PATH environment variable = String "";
     R4.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4.platforms// A set of platforms that can support this target = String[] [ ];
     R4.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4.version// The Compatibility Key associated with this target = String undefined;
     R4.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4.getVersion// Get a target-specific Compatibility Key string() returns String
     R4.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4.alignDirectiveSupported = Bool true;
config R4.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7R4 --abi=ti_arm9_abi"
};
config R4.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7R4 --abi=ti_arm9_abi"
};
config R4.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7R4 --strict_compatibility=on"
};
config R4.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4.model = ITarget.Model {
    endian: "little"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4.name = String "R4";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const R4.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4.suffix = String "r4";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
R4.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4.linkLib = String "rtsv7R4_A_le_tiarm9.lib";
config R4.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4.asmName(String CName) returns String
R4.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:16 GMT


module ti.targets.arm.R4t

metaonly module ti.targets.arm.R4t
index URL

Cortex R4 little endian thumb2

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/R4t.xdc
var R4t = xdc.useModule('ti.targets.arm.R4t');
module-wide constants & types
    var obj = new R4t.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4t.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4t.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4t.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4t.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4t.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4t.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4t.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4t.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4t.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4t.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4t.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4t.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4t.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4t.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --endian=little -mv7R4 --abi=ti_arm9_abi"
    };
    const R4t.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4t.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4t.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --endian=little -mv7R4 --abi=ti_arm9_abi"
    };
    const R4t.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4t.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7R4 --strict_compatibility=on"
    };
    const R4t.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2"
    };
    const R4t.name// Nickname for this target = String "R4t";
    const R4t.os// Name of OS required to run programs built for this target = String computed value;
    const R4t.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4t.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const R4t.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const R4t.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4t.suffix// Suffix appended to all objs, libraries, and executable = String "r4t";
    const R4t.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4t.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4t.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4t.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4t.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     R4t.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4t.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4t.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4t.execExt// Extension for executables = String undefined;
     R4t.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4t.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4t.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_T_le_tiarm9.lib";
     R4t.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4t.pathPrefix// A prefix to the PATH environment variable = String "";
     R4t.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4t.platforms// A set of platforms that can support this target = String[] [ ];
     R4t.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4t.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4t.version// The Compatibility Key associated with this target = String undefined;
     R4t.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4t.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4t.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4t.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4t.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4t.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4t.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4t.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4t.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4t.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4t.getVersion// Get a target-specific Compatibility Key string() returns String
     R4t.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4t.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4t.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4t.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4t.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4t.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4t.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4t.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4t.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4t.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4t.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4t.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4t.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4t.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4t.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4t.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4t.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4t.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4t.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4t.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4t.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4t.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4t.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4t.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4t.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4t.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4t.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4t.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4t.alignDirectiveSupported = Bool true;
config R4t.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4t.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4t.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4t.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --endian=little -mv7R4 --abi=ti_arm9_abi"
};
config R4t.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4t.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4t.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4t.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4t.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4t.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --endian=little -mv7R4 --abi=ti_arm9_abi"
};
config R4t.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4t.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4t.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4t.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7R4 --strict_compatibility=on"
};
config R4t.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4t.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4t.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4t.name = String "R4t";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4t.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4t.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4t.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4t.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4t.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4t.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4t.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const R4t.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4t.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4t.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4t.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4t.suffix = String "r4t";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4t.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4t.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4t.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4t.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4t.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4t.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4t.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4t.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4t.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
R4t.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4t.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4t.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4t.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4t.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4t.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4t.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4t.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4t.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4t.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4t.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4t.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4t.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4t.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4t.linkLib = String "rtsv7R4_T_le_tiarm9.lib";
config R4t.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4t.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4t.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4t.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4t.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4t.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4t.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4t.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4t.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4t.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4t.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4t.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4t.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4t.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4t.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4t.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4t.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4t.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4t.asmName(String CName) returns String
R4t.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4t.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4t.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4t.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4t.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4t.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4t.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4t.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4t.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4t.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4t.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4t.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4t.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4t.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4t.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4t.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4t.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4t.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4t.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4t.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:17 GMT


module ti.targets.arm.R4t

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== R4t.xdc ========
    15     *  Cortex R4 little endian thumb2
    16     */
    17    metaonly module R4t inherits ti.targets.arm.IR4 {
    18        override readonly config string name        = "R4t";
    19        override readonly config string suffix      = "r4t";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "little",
    24            codeModel: "thumb2"
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command cc = {
    28            cmd:  "cl470 -c",
    29            opts: "-mt --endian=little -mv7R4 --abi=ti_arm9_abi"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command asm = {
    33            cmd:  "cl470 -c",
    34            opts: "-mt --endian=little -mv7R4 --abi=ti_arm9_abi"
    35        };
    36
    37        /*!
    38         *  ======== linkLib ========
    39         *  Default TMS470 cgtools runtime library to link with executable
    40         *  (comes from $rootDir/lib)
    41         */
    42        config string linkLib = "rtsv7R4_T_le_tiarm9.lib";
    43    }
    44    /*
    45     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:27; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    46
    47     */
    48


module ti.targets.arm.R4t_big_endian

metaonly module ti.targets.arm.R4t_big_endian
index URL

Cortex R4 big endian thumb2

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/R4t_big_endian.xdc
var R4t_big_endian = xdc.useModule('ti.targets.arm.R4t_big_endian');
module-wide constants & types
    var obj = new R4t_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4t_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4t_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4t_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4t_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4t_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4t_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4t_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4t_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4t_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4t_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4t_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4t_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4t_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4t_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --endian=big -mv7R4 --abi=ti_arm9_abi"
    };
    const R4t_big_endian.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4t_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4t_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --endian=big -mv7R4 --abi=ti_arm9_abi"
    };
    const R4t_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4t_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--be32 --silicon_version=7R4 --strict_compatibility=on"
    };
    const R4t_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        codeModel: "thumb2"
    };
    const R4t_big_endian.name// Nickname for this target = String "R4t_big_endian";
    const R4t_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const R4t_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4t_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const R4t_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const R4t_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4t_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "r4te";
    const R4t_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4t_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4t_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4t_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4t_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     R4t_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4t_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4t_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4t_big_endian.execExt// Extension for executables = String undefined;
     R4t_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4t_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4t_big_endian.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_T_be_tiarm9.lib";
     R4t_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4t_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     R4t_big_endian.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4t_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     R4t_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4t_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4t_big_endian.version// The Compatibility Key associated with this target = String undefined;
     R4t_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4t_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4t_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4t_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4t_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4t_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4t_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4t_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4t_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4t_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4t_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     R4t_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4t_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4t_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4t_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4t_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4t_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4t_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4t_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4t_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4t_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4t_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4t_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4t_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4t_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4t_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4t_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4t_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4t_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4t_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4t_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4t_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4t_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4t_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4t_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4t_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4t_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4t_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4t_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4t_big_endian.alignDirectiveSupported = Bool true;
config R4t_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4t_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4t_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4t_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --endian=big -mv7R4 --abi=ti_arm9_abi"
};
config R4t_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4t_big_endian.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4t_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4t_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4t_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4t_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --endian=big -mv7R4 --abi=ti_arm9_abi"
};
config R4t_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4t_big_endian.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4t_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4t_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--be32 --silicon_version=7R4 --strict_compatibility=on"
};
config R4t_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4t_big_endian.model = ITarget.Model {
    endian: "big",
    codeModel: "thumb2"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4t_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4t_big_endian.name = String "R4t_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4t_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4t_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4t_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4t_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4t_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4t_big_endian.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4t_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const R4t_big_endian.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4t_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4t_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4t_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4t_big_endian.suffix = String "r4te";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4t_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4t_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4t_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4t_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4t_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4t_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4t_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4t_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4t_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
R4t_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4t_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4t_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4t_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4t_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4t_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4t_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4t_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4t_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4t_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4t_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4t_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4t_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4t_big_endian.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4t_big_endian.linkLib = String "rtsv7R4_T_be_tiarm9.lib";
config R4t_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4t_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4t_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4t_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4t_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4t_big_endian.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4t_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4t_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4t_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4t_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4t_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4t_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4t_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4t_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4t_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4t_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4t_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4t_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4t_big_endian.asmName(String CName) returns String
R4t_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4t_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4t_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4t_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4t_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4t_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4t_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4t_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4t_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4t_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4t_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4t_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4t_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4t_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4t_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4t_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4t_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:17 GMT


module ti.targets.arm.R4t_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== R4t_big_endian.xdc ========
    15     *  Cortex R4 big endian thumb2
    16     */
    17    metaonly module R4t_big_endian inherits ti.targets.arm.IR4_big_endian {
    18        override readonly config string name        = "R4t_big_endian";
    19        override readonly config string suffix      = "r4te";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "big",
    24            codeModel: "thumb2"
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command cc = {
    28            cmd:  "cl470 -c",
    29            opts: "-mt --endian=big -mv7R4 --abi=ti_arm9_abi"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command asm = {
    33            cmd:  "cl470 -c",
    34            opts: "-mt --endian=big -mv7R4 --abi=ti_arm9_abi"
    35        };
    36
    37        /*!
    38         *  ======== linkLib ========
    39         *  Default TMS470 cgtools runtime library to link with executable
    40         *  (comes from $rootDir/lib)
    41         */
    42        config string linkLib = "rtsv7R4_T_be_tiarm9.lib";
    43    }
    44    /*
    45     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:27; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    46
    47     */
    48


module ti.targets.arm.R4_big_endian

metaonly module ti.targets.arm.R4_big_endian
index URL

Cortex R4 big endian thumb2

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/R4_big_endian.xdc
var R4_big_endian = xdc.useModule('ti.targets.arm.R4_big_endian');
module-wide constants & types
    var obj = new R4_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=big -mv7R4 --abi=ti_arm9_abi"
    };
    const R4_big_endian.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=big -mv7R4 --abi=ti_arm9_abi"
    };
    const R4_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--be32 --silicon_version=7R4 --strict_compatibility=on"
    };
    const R4_big_endian.model// Run-time model = ITarget.Model {
        endian: "big"
    };
    const R4_big_endian.name// Nickname for this target = String "R4_big_endian";
    const R4_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const R4_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const R4_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/std.h";
    const R4_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "r4e";
    const R4_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     R4_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4_big_endian.execExt// Extension for executables = String undefined;
     R4_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4_big_endian.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_A_be_tiarm9.lib";
     R4_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     R4_big_endian.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     R4_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:profile_coff"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4_big_endian.version// The Compatibility Key associated with this target = String undefined;
     R4_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     R4_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4_big_endian.alignDirectiveSupported = Bool true;
config R4_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=big -mv7R4 --abi=ti_arm9_abi"
};
config R4_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4_big_endian.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=big -mv7R4 --abi=ti_arm9_abi"
};
config R4_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4_big_endian.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--be32 --silicon_version=7R4 --strict_compatibility=on"
};
config R4_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4_big_endian.model = ITarget.Model {
    endian: "big"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4_big_endian.name = String "R4_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4_big_endian.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const R4_big_endian.stdInclude = String "ti/targets/arm/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4_big_endian.suffix = String "r4e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
R4_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4_big_endian.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4_big_endian.linkLib = String "rtsv7R4_A_be_tiarm9.lib";
config R4_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4_big_endian.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:profile_coff"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4_big_endian.asmName(String CName) returns String
R4_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:16 GMT


module ti.targets.arm.R4_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== R4_big_endian.xdc ========
    15     *  Cortex R4 big endian thumb2
    16     */
    17    metaonly module R4_big_endian inherits ti.targets.arm.IR4_big_endian {
    18        override readonly config string name        = "R4_big_endian";
    19        override readonly config string suffix      = "r4e";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "big",
    24        };
    25
    26        override readonly config xdc.bld.ITarget2.Command cc = {
    27            cmd:  "cl470 -c",
    28            opts: "--endian=big -mv7R4 --abi=ti_arm9_abi"
    29        };
    30
    31        override readonly config xdc.bld.ITarget2.Command asm = {
    32            cmd:  "cl470 -c",
    33            opts: "--endian=big -mv7R4 --abi=ti_arm9_abi"
    34        };
    35
    36        /*!
    37         *  ======== linkLib ========
    38         *  Default TMS470 cgtools runtime library to link with executable
    39         *  (comes from $rootDir/lib)
    40         */
    41        config string linkLib = "rtsv7R4_A_be_tiarm9.lib";
    42    }
    43    /*
    44     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:27; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    45
    46     */
    47


package ti.targets.arm.elf
index URL

Package of Arm targets for TI code generation tools for ELF

XDCspec declarations sourced in ti/targets/arm/elf/package.xdc
requires xdc.bld;
requires ti.targets;
package ti.targets.arm.elf [1, 0, 0] {
    interface IA8;
    // Cortex A8 little endian target
    interface IArm;
    // Common settings for all Arm targets
    interface IM3;
    // Cortex M3 little endian thumb2 target
    interface IM3_big_endian;
    // Cortex M3 big endian thumb2 target
    interface IM4;
    // Cortex M4 little endian thumb2 target
    interface IR4;
    // Cortex R4 little endian target
    interface IR4_big_endian;
    // Cortex R4 big endian target
    module A8F;
    // Cortex A8 little endian with floating point support (NEON) (ELF)
    module A8Fnv;
    // Cortex A8 little endian with neon & vector floating point support (VFPV3) (NEON) (ELF)
    module A8Ft;
    // Cortex A8 thumb2 little endian with floating point support (NEON) (ELF)
    module A8Fv;
    // Cortex A8 little endian with vector floating point support (VFPV3) (ELF)
    module Arm7;
    // TI Arm7 little endian (ELF)
    module Arm7_big_endian;
    // TI Arm7 big endian (ELF)
    module Arm9;
    // TI Arm9 little endian (ELF)
    module Arm9t;
    // TI Arm9 little endian thumb-mode (ELF)
    module M3;
    // Cortex M3 little endian thumb2 (ELF)
    module M3_big_endian;
    // Cortex M3 big endian thumb2 (ELF)
    module M4;
    // Cortex M4, no floating point unit, little endian thumb2 (ELF)
    module M4F;
    // Cortex M4 with floating point unit, little endian thumb2 (ELF)
    module R4;
    // Cortex R4 little endian thumb2 (ELF)
    module R4F;
    // Cortex R4 little endian with floating point support (vfpv3d16) (ELF)
    module R4F_big_endian;
    // Cortex R4 big endian with floating point support (vfpv3d16) (ELF)
    module R4Ft;
    // Cortex R4 little endian thumb2 with floating point support (vfpv3d16) (ELF)
    module R4Ft_big_endian;
    // Cortex R4 big endian thumb2 with floating point support (vfpv3d16) (ELF)
    module R4_big_endian;
    // Cortex R4 big endian thumb2 (ELF)
    module R4t;
    // Cortex R4 little endian thumb2 (ELF)
    module R4t_big_endian;
    // Cortex R4 big endian thumb2 (ELF)
}
generated on Thu, 08 Nov 2012 02:14:32 GMT


package ti.targets.arm.elf

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires xdc.bld;
    19    requires ti.targets;
    20
    21    /*!
    22     *  ======== ti.targets.arm.elf ========
    23     *  Package of Arm targets for TI code generation tools for ELF
    24     *
    25     */
    26    package ti.targets.arm.elf [1,0,0] {
    27        interface IArm, IR4, IR4_big_endian;
    28        interface IA8, IM3, IM3_big_endian, IM4;
    29        module Arm7, Arm7_big_endian, Arm9, Arm9t;
    30        module M3, M3_big_endian;
    31        module M4, M4F;
    32        module A8F, A8Ft;
    33        module A8Fv, A8Fnv;
    34        module R4, R4_big_endian;
    35        module R4t, R4t_big_endian;
    36        module R4F, R4F_big_endian;
    37        module R4Ft, R4Ft_big_endian;
    38    }
    39    /*
    40     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    41
    42     */
    43


module ti.targets.arm.elf.A8F

metaonly module ti.targets.arm.elf.A8F
index URL

Cortex A8 little endian with floating point support (NEON) (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/A8F.xdc
var A8F = xdc.useModule('ti.targets.arm.elf.A8F');
module-wide constants & types
    var obj = new A8F.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new A8F.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new A8F.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new A8F.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new A8F.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new A8F.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new A8F.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new A8F.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new A8F.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new A8F.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new A8F.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new A8F.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const A8F.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const A8F.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const A8F.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--neon --endian=little -mv7A8 --abi=eabi"
    };
    const A8F.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const A8F.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const A8F.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--neon --endian=little -mv7A8 --abi=eabi"
    };
    const A8F.isa// CPU Instruction Set Architecture (ISA) = String "v7A";
    const A8F.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7A8 --strict_compatibility=on"
    };
    const A8F.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const A8F.name// Nickname for this target = String "A8F";
    const A8F.os// Name of OS required to run programs built for this target = String computed value;
    const A8F.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const A8F.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const A8F.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const A8F.suffix// Suffix appended to all objs, libraries, and executable = String "ea8f";
    const A8F.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     A8F.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     A8F.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     A8F.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     A8F.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     A8F.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     A8F.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "e9",
        "e7",
        "e9t"
    ];
     A8F.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     A8F.execExt// Extension for executables = String undefined;
     A8F.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     A8F.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     A8F.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7A8_A_le_n_eabi.lib";
     A8F.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     A8F.pathPrefix// A prefix to the PATH environment variable = String "";
     A8F.platform// The default platform name for this target = String "ti.platforms.evmDM8168";
     A8F.platforms// A set of platforms that can support this target = String[] [ ];
     A8F.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     A8F.rootDir// Installation directory for this target's code generation tools = String undefined;
     A8F.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     A8F.version// The Compatibility Key associated with this target = String undefined;
     A8F.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     A8F.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     A8F.asmName// The function that converts a C name into an assembly name(String CName) returns String
     A8F.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A8F.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     A8F.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     A8F.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     A8F.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     A8F.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     A8F.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     A8F.getVersion// Get a target-specific Compatibility Key string() returns String
     A8F.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     A8F.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A8F.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct A8F.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new A8F.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct A8F.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new A8F.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct A8F.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new A8F.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct A8F.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new A8F.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct A8F.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new A8F.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct A8F.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new A8F.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct A8F.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new A8F.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct A8F.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new A8F.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct A8F.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new A8F.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct A8F.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new A8F.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct A8F.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new A8F.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct A8F.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new A8F.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config A8F.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const A8F.alignDirectiveSupported = Bool true;
config A8F.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const A8F.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config A8F.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const A8F.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--neon --endian=little -mv7A8 --abi=eabi"
};
config A8F.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const A8F.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config A8F.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const A8F.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config A8F.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const A8F.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--neon --endian=little -mv7A8 --abi=eabi"
};
config A8F.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const A8F.isa = String "v7A";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config A8F.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const A8F.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7A8 --strict_compatibility=on"
};
config A8F.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const A8F.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config A8F.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const A8F.name = String "A8F";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config A8F.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const A8F.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config A8F.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const A8F.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config A8F.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const A8F.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config A8F.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const A8F.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config A8F.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const A8F.suffix = String "ea8f";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config A8F.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const A8F.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config A8F.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
A8F.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config A8F.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
A8F.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config A8F.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
A8F.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config A8F.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
A8F.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config A8F.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
A8F.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config A8F.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
A8F.compatibleSuffixes = String[] [
    "e9",
    "e7",
    "e9t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config A8F.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
A8F.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config A8F.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
A8F.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config A8F.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
A8F.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config A8F.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
A8F.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config A8F.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
A8F.linkLib = String "rtsv7A8_A_le_n_eabi.lib";
config A8F.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
A8F.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config A8F.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
A8F.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config A8F.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
A8F.platform = String "ti.platforms.evmDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config A8F.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
A8F.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config A8F.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
A8F.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config A8F.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
A8F.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config A8F.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
A8F.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config A8F.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
A8F.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config A8F.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
A8F.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
A8F.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
A8F.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8F.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
A8F.asmName(String CName) returns String
A8F.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
A8F.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8F.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
A8F.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
A8F.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
A8F.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A8F.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
A8F.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A8F.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
A8F.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
A8F.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
A8F.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
A8F.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
A8F.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
A8F.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
A8F.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
A8F.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
A8F.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8F.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
A8F.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
A8F.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
A8F.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:26 GMT


module ti.targets.arm.elf.A8F

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== A8F.xdc ========
    14     *  Cortex A8 little endian with floating point support (NEON) (ELF)
    15     */
    16    metaonly module A8F inherits ti.targets.arm.elf.IA8 {
    17        override readonly config string name        = "A8F";
    18        override readonly config string suffix      = "ea8f";
    19        override readonly config string rts         = "ti.targets.arm.rtsarm";
    20
    21        override readonly config xdc.bld.ITarget.Model model = {
    22            endian: "little",
    23            shortEnums: true
    24        };
    25
    26        override readonly config xdc.bld.ITarget2.Command cc = {
    27            cmd:  "cl470 -c",
    28            opts: "--neon --endian=little -mv7A8 --abi=eabi"
    29        };
    30
    31        override readonly config xdc.bld.ITarget2.Command asm = {
    32            cmd:  "cl470 -c",
    33            opts: "--neon --endian=little -mv7A8 --abi=eabi"
    34        };
    35
    36        /*!
    37         *  ======== linkLib ========
    38         *  Default TMS470 cgtools runtime library to link with executable
    39         *  (comes from $rootDir/lib)
    40         */
    41        config string linkLib = "rtsv7A8_A_le_n_eabi.lib";
    42    }
    43    /*
    44     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    45
    46     */
    47


module ti.targets.arm.elf.A8Fnv

metaonly module ti.targets.arm.elf.A8Fnv
index URL

Cortex A8 little endian with neon & vector floating point support (VFPV3) (NEON) (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/A8Fnv.xdc
var A8Fnv = xdc.useModule('ti.targets.arm.elf.A8Fnv');
module-wide constants & types
    var obj = new A8Fnv.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new A8Fnv.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new A8Fnv.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new A8Fnv.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new A8Fnv.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new A8Fnv.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new A8Fnv.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new A8Fnv.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new A8Fnv.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new A8Fnv.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new A8Fnv.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new A8Fnv.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const A8Fnv.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const A8Fnv.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const A8Fnv.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7A8 --abi=eabi --neon --float_support=vfpv3"
    };
    const A8Fnv.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const A8Fnv.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const A8Fnv.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7A8 --abi=eabi --neon --float_support=vfpv3"
    };
    const A8Fnv.isa// CPU Instruction Set Architecture (ISA) = String "v7A";
    const A8Fnv.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7A8 --strict_compatibility=on"
    };
    const A8Fnv.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const A8Fnv.name// Nickname for this target = String "A8Fnv";
    const A8Fnv.os// Name of OS required to run programs built for this target = String computed value;
    const A8Fnv.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const A8Fnv.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const A8Fnv.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const A8Fnv.suffix// Suffix appended to all objs, libraries, and executable = String "ea8fnv";
    const A8Fnv.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     A8Fnv.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     A8Fnv.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     A8Fnv.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     A8Fnv.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     A8Fnv.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     A8Fnv.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "e9",
        "e7",
        "e9t"
    ];
     A8Fnv.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     A8Fnv.execExt// Extension for executables = String undefined;
     A8Fnv.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     A8Fnv.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     A8Fnv.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7A8_A_le_n_v3_eabi.lib";
     A8Fnv.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     A8Fnv.pathPrefix// A prefix to the PATH environment variable = String "";
     A8Fnv.platform// The default platform name for this target = String "ti.platforms.evmDM8168";
     A8Fnv.platforms// A set of platforms that can support this target = String[] [ ];
     A8Fnv.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     A8Fnv.rootDir// Installation directory for this target's code generation tools = String undefined;
     A8Fnv.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     A8Fnv.version// The Compatibility Key associated with this target = String undefined;
     A8Fnv.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     A8Fnv.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     A8Fnv.asmName// The function that converts a C name into an assembly name(String CName) returns String
     A8Fnv.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A8Fnv.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     A8Fnv.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     A8Fnv.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     A8Fnv.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     A8Fnv.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     A8Fnv.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     A8Fnv.getVersion// Get a target-specific Compatibility Key string() returns String
     A8Fnv.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     A8Fnv.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A8Fnv.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct A8Fnv.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new A8Fnv.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct A8Fnv.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new A8Fnv.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct A8Fnv.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new A8Fnv.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct A8Fnv.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new A8Fnv.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct A8Fnv.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new A8Fnv.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct A8Fnv.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new A8Fnv.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct A8Fnv.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new A8Fnv.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct A8Fnv.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new A8Fnv.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct A8Fnv.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new A8Fnv.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct A8Fnv.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new A8Fnv.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct A8Fnv.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new A8Fnv.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct A8Fnv.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new A8Fnv.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config A8Fnv.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const A8Fnv.alignDirectiveSupported = Bool true;
config A8Fnv.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const A8Fnv.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config A8Fnv.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const A8Fnv.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7A8 --abi=eabi --neon --float_support=vfpv3"
};
config A8Fnv.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const A8Fnv.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config A8Fnv.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const A8Fnv.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config A8Fnv.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const A8Fnv.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7A8 --abi=eabi --neon --float_support=vfpv3"
};
config A8Fnv.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const A8Fnv.isa = String "v7A";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config A8Fnv.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const A8Fnv.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7A8 --strict_compatibility=on"
};
config A8Fnv.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const A8Fnv.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config A8Fnv.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const A8Fnv.name = String "A8Fnv";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config A8Fnv.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const A8Fnv.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config A8Fnv.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const A8Fnv.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config A8Fnv.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const A8Fnv.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config A8Fnv.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const A8Fnv.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config A8Fnv.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const A8Fnv.suffix = String "ea8fnv";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config A8Fnv.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const A8Fnv.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config A8Fnv.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
A8Fnv.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config A8Fnv.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
A8Fnv.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config A8Fnv.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
A8Fnv.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config A8Fnv.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
A8Fnv.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config A8Fnv.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
A8Fnv.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config A8Fnv.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
A8Fnv.compatibleSuffixes = String[] [
    "e9",
    "e7",
    "e9t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config A8Fnv.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
A8Fnv.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config A8Fnv.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
A8Fnv.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config A8Fnv.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
A8Fnv.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config A8Fnv.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
A8Fnv.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config A8Fnv.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
A8Fnv.linkLib = String "rtsv7A8_A_le_n_v3_eabi.lib";
config A8Fnv.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
A8Fnv.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config A8Fnv.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
A8Fnv.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config A8Fnv.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
A8Fnv.platform = String "ti.platforms.evmDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config A8Fnv.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
A8Fnv.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config A8Fnv.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
A8Fnv.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config A8Fnv.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
A8Fnv.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config A8Fnv.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
A8Fnv.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config A8Fnv.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
A8Fnv.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config A8Fnv.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
A8Fnv.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
A8Fnv.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
A8Fnv.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8Fnv.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
A8Fnv.asmName(String CName) returns String
A8Fnv.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
A8Fnv.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8Fnv.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
A8Fnv.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
A8Fnv.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
A8Fnv.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A8Fnv.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
A8Fnv.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A8Fnv.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
A8Fnv.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
A8Fnv.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
A8Fnv.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
A8Fnv.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
A8Fnv.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
A8Fnv.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
A8Fnv.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
A8Fnv.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
A8Fnv.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8Fnv.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
A8Fnv.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
A8Fnv.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
A8Fnv.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:26 GMT


module ti.targets.arm.elf.A8Fnv

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== A8Fnv.xdc ========
    14     *  Cortex A8 little endian with neon & vector floating point support
    15     *  (VFPV3) (NEON) (ELF)
    16     */
    17    metaonly module A8Fnv inherits ti.targets.arm.elf.IA8 {
    18        override readonly config string name        = "A8Fnv";
    19        override readonly config string suffix      = "ea8fnv";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "little",
    24            shortEnums: true
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command cc = {
    28            cmd:  "cl470 -c",
    29            opts: "--endian=little -mv7A8 --abi=eabi --neon --float_support=vfpv3"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command asm = {
    33            cmd:  "cl470 -c",
    34            opts: "--endian=little -mv7A8 --abi=eabi --neon --float_support=vfpv3"
    35        };
    36
    37        /*!
    38         *  ======== linkLib ========
    39         *  Default TMS470 cgtools runtime library to link with executable
    40         *  (comes from $rootDir/lib)
    41         */
    42        config string linkLib = "rtsv7A8_A_le_n_v3_eabi.lib";
    43    }
    44    /*
    45     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    46
    47     */
    48


module ti.targets.arm.elf.A8Ft

metaonly module ti.targets.arm.elf.A8Ft
index URL

Cortex A8 thumb2 little endian with floating point support (NEON) (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/A8Ft.xdc
var A8Ft = xdc.useModule('ti.targets.arm.elf.A8Ft');
module-wide constants & types
    var obj = new A8Ft.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new A8Ft.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new A8Ft.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new A8Ft.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new A8Ft.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new A8Ft.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new A8Ft.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new A8Ft.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new A8Ft.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new A8Ft.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new A8Ft.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new A8Ft.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const A8Ft.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const A8Ft.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const A8Ft.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --neon --endian=little -mv7A8 --abi=eabi"
    };
    const A8Ft.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const A8Ft.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const A8Ft.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --neon --endian=little -mv7A8 --abi=eabi"
    };
    const A8Ft.isa// CPU Instruction Set Architecture (ISA) = String "v7A";
    const A8Ft.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7A8 --strict_compatibility=on"
    };
    const A8Ft.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    const A8Ft.name// Nickname for this target = String "A8Ft";
    const A8Ft.os// Name of OS required to run programs built for this target = String computed value;
    const A8Ft.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const A8Ft.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const A8Ft.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const A8Ft.suffix// Suffix appended to all objs, libraries, and executable = String "ea8ft";
    const A8Ft.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     A8Ft.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     A8Ft.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     A8Ft.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     A8Ft.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     A8Ft.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     A8Ft.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "e9",
        "e7",
        "e9t"
    ];
     A8Ft.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     A8Ft.execExt// Extension for executables = String undefined;
     A8Ft.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     A8Ft.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     A8Ft.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7A8_T_le_n_eabi.lib";
     A8Ft.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     A8Ft.pathPrefix// A prefix to the PATH environment variable = String "";
     A8Ft.platform// The default platform name for this target = String "ti.platforms.evmDM8168";
     A8Ft.platforms// A set of platforms that can support this target = String[] [ ];
     A8Ft.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     A8Ft.rootDir// Installation directory for this target's code generation tools = String undefined;
     A8Ft.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     A8Ft.version// The Compatibility Key associated with this target = String undefined;
     A8Ft.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     A8Ft.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     A8Ft.asmName// The function that converts a C name into an assembly name(String CName) returns String
     A8Ft.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A8Ft.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     A8Ft.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     A8Ft.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     A8Ft.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     A8Ft.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     A8Ft.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     A8Ft.getVersion// Get a target-specific Compatibility Key string() returns String
     A8Ft.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     A8Ft.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A8Ft.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct A8Ft.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new A8Ft.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct A8Ft.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new A8Ft.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct A8Ft.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new A8Ft.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct A8Ft.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new A8Ft.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct A8Ft.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new A8Ft.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct A8Ft.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new A8Ft.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct A8Ft.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new A8Ft.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct A8Ft.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new A8Ft.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct A8Ft.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new A8Ft.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct A8Ft.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new A8Ft.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct A8Ft.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new A8Ft.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct A8Ft.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new A8Ft.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config A8Ft.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const A8Ft.alignDirectiveSupported = Bool true;
config A8Ft.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const A8Ft.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config A8Ft.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const A8Ft.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --neon --endian=little -mv7A8 --abi=eabi"
};
config A8Ft.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const A8Ft.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config A8Ft.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const A8Ft.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config A8Ft.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const A8Ft.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --neon --endian=little -mv7A8 --abi=eabi"
};
config A8Ft.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const A8Ft.isa = String "v7A";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config A8Ft.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const A8Ft.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7A8 --strict_compatibility=on"
};
config A8Ft.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const A8Ft.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config A8Ft.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const A8Ft.name = String "A8Ft";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config A8Ft.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const A8Ft.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config A8Ft.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const A8Ft.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config A8Ft.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const A8Ft.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config A8Ft.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const A8Ft.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config A8Ft.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const A8Ft.suffix = String "ea8ft";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config A8Ft.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const A8Ft.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config A8Ft.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
A8Ft.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config A8Ft.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
A8Ft.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config A8Ft.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
A8Ft.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config A8Ft.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
A8Ft.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config A8Ft.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
A8Ft.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config A8Ft.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
A8Ft.compatibleSuffixes = String[] [
    "e9",
    "e7",
    "e9t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config A8Ft.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
A8Ft.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config A8Ft.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
A8Ft.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config A8Ft.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
A8Ft.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config A8Ft.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
A8Ft.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config A8Ft.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
A8Ft.linkLib = String "rtsv7A8_T_le_n_eabi.lib";
config A8Ft.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
A8Ft.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config A8Ft.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
A8Ft.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config A8Ft.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
A8Ft.platform = String "ti.platforms.evmDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config A8Ft.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
A8Ft.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config A8Ft.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
A8Ft.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config A8Ft.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
A8Ft.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config A8Ft.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
A8Ft.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config A8Ft.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
A8Ft.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config A8Ft.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
A8Ft.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
A8Ft.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
A8Ft.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8Ft.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
A8Ft.asmName(String CName) returns String
A8Ft.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
A8Ft.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8Ft.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
A8Ft.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
A8Ft.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
A8Ft.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A8Ft.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
A8Ft.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A8Ft.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
A8Ft.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
A8Ft.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
A8Ft.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
A8Ft.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
A8Ft.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
A8Ft.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
A8Ft.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
A8Ft.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
A8Ft.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8Ft.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
A8Ft.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
A8Ft.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
A8Ft.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:27 GMT


module ti.targets.arm.elf.A8Ft

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== A8Ft.xdc ========
    14     *  Cortex A8 thumb2 little endian with floating point support (NEON) (ELF)
    15     */
    16    metaonly module A8Ft inherits ti.targets.arm.elf.IA8 {
    17        override readonly config string name        = "A8Ft";
    18        override readonly config string suffix      = "ea8ft";
    19        override readonly config string rts         = "ti.targets.arm.rtsarm";
    20
    21        override readonly config xdc.bld.ITarget.Model model = {
    22            endian: "little",
    23            codeModel: "thumb2",
    24            shortEnums: true
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command cc = {
    28            cmd:  "cl470 -c",
    29            opts: "-mt --neon --endian=little -mv7A8 --abi=eabi"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command asm = {
    33            cmd:  "cl470 -c",
    34            opts: "-mt --neon --endian=little -mv7A8 --abi=eabi"
    35        };
    36
    37        /*!
    38         *  ======== linkLib ========
    39         *  Default TMS470 cgtools runtime library to link with executable
    40         *  (comes from $rootDir/lib)
    41         */
    42        config string linkLib = "rtsv7A8_T_le_n_eabi.lib";
    43    }
    44    /*
    45     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    46
    47     */
    48


module ti.targets.arm.elf.A8Fv

metaonly module ti.targets.arm.elf.A8Fv
index URL

Cortex A8 little endian with vector floating point support (VFPV3) (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/A8Fv.xdc
var A8Fv = xdc.useModule('ti.targets.arm.elf.A8Fv');
module-wide constants & types
    var obj = new A8Fv.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new A8Fv.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new A8Fv.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new A8Fv.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new A8Fv.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new A8Fv.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new A8Fv.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new A8Fv.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new A8Fv.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new A8Fv.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new A8Fv.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new A8Fv.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const A8Fv.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const A8Fv.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const A8Fv.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7A8 --abi=eabi --float_support=vfpv3"
    };
    const A8Fv.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const A8Fv.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const A8Fv.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7A8 --abi=eabi --float_support=vfpv3"
    };
    const A8Fv.isa// CPU Instruction Set Architecture (ISA) = String "v7A";
    const A8Fv.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7A8 --strict_compatibility=on"
    };
    const A8Fv.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const A8Fv.name// Nickname for this target = String "A8Fv";
    const A8Fv.os// Name of OS required to run programs built for this target = String computed value;
    const A8Fv.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const A8Fv.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const A8Fv.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const A8Fv.suffix// Suffix appended to all objs, libraries, and executable = String "ea8fv";
    const A8Fv.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     A8Fv.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     A8Fv.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     A8Fv.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     A8Fv.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     A8Fv.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     A8Fv.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "e9",
        "e7",
        "e9t"
    ];
     A8Fv.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     A8Fv.execExt// Extension for executables = String undefined;
     A8Fv.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     A8Fv.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     A8Fv.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7A8_A_le_v3_eabi.lib";
     A8Fv.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     A8Fv.pathPrefix// A prefix to the PATH environment variable = String "";
     A8Fv.platform// The default platform name for this target = String "ti.platforms.evmDM8168";
     A8Fv.platforms// A set of platforms that can support this target = String[] [ ];
     A8Fv.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     A8Fv.rootDir// Installation directory for this target's code generation tools = String undefined;
     A8Fv.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     A8Fv.version// The Compatibility Key associated with this target = String undefined;
     A8Fv.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     A8Fv.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     A8Fv.asmName// The function that converts a C name into an assembly name(String CName) returns String
     A8Fv.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A8Fv.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     A8Fv.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     A8Fv.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     A8Fv.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     A8Fv.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     A8Fv.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     A8Fv.getVersion// Get a target-specific Compatibility Key string() returns String
     A8Fv.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     A8Fv.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     A8Fv.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct A8Fv.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new A8Fv.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct A8Fv.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new A8Fv.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct A8Fv.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new A8Fv.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct A8Fv.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new A8Fv.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct A8Fv.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new A8Fv.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct A8Fv.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new A8Fv.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct A8Fv.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new A8Fv.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct A8Fv.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new A8Fv.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct A8Fv.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new A8Fv.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct A8Fv.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new A8Fv.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct A8Fv.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new A8Fv.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct A8Fv.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new A8Fv.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config A8Fv.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const A8Fv.alignDirectiveSupported = Bool true;
config A8Fv.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const A8Fv.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config A8Fv.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const A8Fv.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7A8 --abi=eabi --float_support=vfpv3"
};
config A8Fv.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const A8Fv.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config A8Fv.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const A8Fv.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config A8Fv.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const A8Fv.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7A8 --abi=eabi --float_support=vfpv3"
};
config A8Fv.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const A8Fv.isa = String "v7A";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config A8Fv.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const A8Fv.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7A8 --strict_compatibility=on"
};
config A8Fv.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const A8Fv.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config A8Fv.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const A8Fv.name = String "A8Fv";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config A8Fv.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const A8Fv.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config A8Fv.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const A8Fv.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config A8Fv.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const A8Fv.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config A8Fv.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const A8Fv.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config A8Fv.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const A8Fv.suffix = String "ea8fv";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config A8Fv.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const A8Fv.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config A8Fv.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
A8Fv.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config A8Fv.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
A8Fv.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config A8Fv.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
A8Fv.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config A8Fv.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
A8Fv.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config A8Fv.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
A8Fv.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config A8Fv.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
A8Fv.compatibleSuffixes = String[] [
    "e9",
    "e7",
    "e9t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config A8Fv.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
A8Fv.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config A8Fv.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
A8Fv.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config A8Fv.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
A8Fv.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config A8Fv.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
A8Fv.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config A8Fv.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
A8Fv.linkLib = String "rtsv7A8_A_le_v3_eabi.lib";
config A8Fv.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
A8Fv.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config A8Fv.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
A8Fv.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config A8Fv.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
A8Fv.platform = String "ti.platforms.evmDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config A8Fv.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
A8Fv.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config A8Fv.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
A8Fv.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config A8Fv.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
A8Fv.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config A8Fv.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
A8Fv.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config A8Fv.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
A8Fv.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config A8Fv.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
A8Fv.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
A8Fv.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
A8Fv.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8Fv.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
A8Fv.asmName(String CName) returns String
A8Fv.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
A8Fv.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8Fv.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
A8Fv.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
A8Fv.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
A8Fv.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A8Fv.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
A8Fv.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
A8Fv.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
A8Fv.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
A8Fv.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
A8Fv.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
A8Fv.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
A8Fv.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
A8Fv.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
A8Fv.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
A8Fv.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
A8Fv.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
A8Fv.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
A8Fv.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
A8Fv.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
A8Fv.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:27 GMT


module ti.targets.arm.elf.A8Fv

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== A8Fv.xdc ========
    14     *  Cortex A8 little endian with vector floating point support
    15     *  (VFPV3) (ELF)
    16     */
    17    metaonly module A8Fv inherits ti.targets.arm.elf.IA8 {
    18        override readonly config string name        = "A8Fv";
    19        override readonly config string suffix      = "ea8fv";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "little",
    24            shortEnums: true
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command cc = {
    28            cmd:  "cl470 -c",
    29            opts: "--endian=little -mv7A8 --abi=eabi --float_support=vfpv3"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command asm = {
    33            cmd:  "cl470 -c",
    34            opts: "--endian=little -mv7A8 --abi=eabi --float_support=vfpv3"
    35        };
    36
    37        /*!
    38         *  ======== linkLib ========
    39         *  Default TMS470 cgtools runtime library to link with executable
    40         *  (comes from $rootDir/lib)
    41         */
    42        config string linkLib = "rtsv7A8_A_le_v3_eabi.lib";
    43    }
    44    /*
    45     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    46
    47     */
    48


module ti.targets.arm.elf.Arm7

metaonly module ti.targets.arm.elf.Arm7
index URL

TI Arm7 little endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/Arm7.xdc
var Arm7 = xdc.useModule('ti.targets.arm.elf.Arm7');
module-wide constants & types
    var obj = new Arm7.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm7.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm7.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm7.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm7.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm7.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm7.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm7.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm7.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm7.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm7.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm7.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm7.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm7.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm7.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv4 --abi=eabi"
    };
    const Arm7.base// A target that this target is based upon = ITarget.Module computed value;
    const Arm7.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm7.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv4 --abi=eabi"
    };
    const Arm7.isa// CPU Instruction Set Architecture (ISA) = String "v4T";
    const Arm7.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=4 --strict_compatibility=on"
    };
    const Arm7.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const Arm7.name// Nickname for this target = String "Arm7";
    const Arm7.os// Name of OS required to run programs built for this target = String computed value;
    const Arm7.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm7.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const Arm7.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm7.suffix// Suffix appended to all objs, libraries, and executable = String "e7";
    const Arm7.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm7.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm7.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm7.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm7.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     Arm7.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm7.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "470"
    ];
     Arm7.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm7.execExt// Extension for executables = String undefined;
     Arm7.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm7.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm7.linkLib// Default Arm7 cgtools runtime library to link with = String "rtsv4_A_le_eabi.lib";
     Arm7.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm7.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm7.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm7.platforms// A set of platforms that can support this target = String[] [ ];
     Arm7.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm7.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm7.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     Arm7.version// The Compatibility Key associated with this target = String undefined;
     Arm7.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm7.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm7.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm7.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm7.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm7.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm7.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm7.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm7.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm7.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm7.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm7.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm7.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm7.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm7.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm7.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm7.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm7.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm7.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm7.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm7.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm7.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm7.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm7.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm7.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm7.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm7.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm7.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm7.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm7.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm7.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm7.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm7.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm7.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm7.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm7.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm7.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm7.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm7.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm7.alignDirectiveSupported = Bool true;
config Arm7.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm7.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm7.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm7.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv4 --abi=eabi"
};
config Arm7.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm7.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm7.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm7.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm7.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm7.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv4 --abi=eabi"
};
config Arm7.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm7.isa = String "v4T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm7.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm7.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=4 --strict_compatibility=on"
};
config Arm7.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm7.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm7.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm7.name = String "Arm7";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm7.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm7.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm7.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm7.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm7.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm7.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm7.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm7.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm7.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm7.suffix = String "e7";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm7.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm7.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm7.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm7.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm7.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm7.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm7.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm7.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm7.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
Arm7.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm7.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm7.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm7.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm7.compatibleSuffixes = String[] [
    "470"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm7.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm7.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm7.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm7.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm7.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm7.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm7.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm7.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm7.linkLib // module-wide
index URL

Default Arm7 cgtools runtime library to link with

XDCscript usage meta-domain
Arm7.linkLib = String "rtsv4_A_le_eabi.lib";
config Arm7.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm7.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm7.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm7.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm7.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm7.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm7.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm7.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm7.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm7.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm7.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm7.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm7.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
Arm7.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm7.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm7.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm7.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm7.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm7.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm7.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm7.asmName(String CName) returns String
Arm7.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm7.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm7.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm7.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm7.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm7.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm7.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm7.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm7.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm7.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm7.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm7.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm7.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm7.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm7.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm7.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm7.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm7.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:27 GMT


module ti.targets.arm.elf.Arm7

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Arm7.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== Arm7.xdc ========
    19     *  TI Arm7 little endian (ELF)
    20     */
    21    metaonly module Arm7 inherits ti.targets.arm.elf.IArm {
    22        override readonly config string name             = "Arm7";
    23        override readonly config string suffix           = "e7";
    24        override readonly config string isa              = "v4T";
    25        override readonly config string rts              = "ti.targets.arm.rtsarm";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "little",
    28            shortEnums: true
    29        };
    30
    31        /*
    32         *  ======== compatibleSuffixes ========
    33         */
    34        override config String compatibleSuffixes[] = ["470"];
    35
    36        override readonly config xdc.bld.ITarget2.Command cc = {
    37            cmd:  "cl470 -c",
    38            opts: " -me -mv4 --abi=eabi"
    39        };
    40
    41        override readonly config xdc.bld.ITarget2.Command asm = {
    42            cmd:  "cl470 -c",
    43            opts: " -me -mv4 --abi=eabi"
    44        };
    45
    46        override readonly config xdc.bld.ITarget2.Command lnk = {
    47            cmd:  "lnk470",
    48            opts: "--silicon_version=4 --strict_compatibility=on"
    49        };
    50
    51        /*!
    52         *  ======== linkLib ========
    53         *  Default Arm7 cgtools runtime library to link with
    54         */
    55        config string linkLib = "rtsv4_A_le_eabi.lib";
    56
    57    }
    58    /*
    59     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    60
    61     */
    62


module ti.targets.arm.elf.Arm7_big_endian

metaonly module ti.targets.arm.elf.Arm7_big_endian
index URL

TI Arm7 big endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/Arm7_big_endian.xdc
var Arm7_big_endian = xdc.useModule('ti.targets.arm.elf.Arm7_big_endian');
module-wide constants & types
    var obj = new Arm7_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm7_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm7_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm7_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm7_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm7_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm7_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm7_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm7_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm7_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm7_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm7_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm7_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm7_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm7_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mv4 --abi=eabi"
    };
    const Arm7_big_endian.base// A target that this target is based upon = ITarget.Module Arm7.module;
    const Arm7_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm7_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mv4 --abi=eabi"
    };
    const Arm7_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v4T";
    const Arm7_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=4 --strict_compatibility=on"
    };
    const Arm7_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        shortEnums: true
    };
    const Arm7_big_endian.name// Nickname for this target = String "Arm7_big_endian";
    const Arm7_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const Arm7_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm7_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const Arm7_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm7_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "e7e";
    const Arm7_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm7_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm7_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm7_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm7_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     Arm7_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm7_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "470e"
    ];
     Arm7_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm7_big_endian.execExt// Extension for executables = String undefined;
     Arm7_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm7_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm7_big_endian.linkLib// Default Arm7 cgtools runtime library to link with = String "rtsv4_A_be_eabi.lib";
     Arm7_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm7_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm7_big_endian.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm7_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     Arm7_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm7_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm7_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     Arm7_big_endian.version// The Compatibility Key associated with this target = String undefined;
     Arm7_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm7_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm7_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm7_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm7_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm7_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm7_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm7_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm7_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm7_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm7_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm7_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm7_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm7_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm7_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm7_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm7_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm7_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm7_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm7_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm7_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm7_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm7_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm7_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm7_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm7_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm7_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm7_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm7_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm7_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm7_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm7_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm7_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm7_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm7_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm7_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm7_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm7_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm7_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm7_big_endian.alignDirectiveSupported = Bool true;
config Arm7_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm7_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm7_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm7_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mv4 --abi=eabi"
};
config Arm7_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm7_big_endian.base = ITarget.Module Arm7.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm7_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm7_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm7_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm7_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mv4 --abi=eabi"
};
config Arm7_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm7_big_endian.isa = String "v4T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm7_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm7_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=4 --strict_compatibility=on"
};
config Arm7_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm7_big_endian.model = ITarget.Model {
    endian: "big",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm7_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm7_big_endian.name = String "Arm7_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm7_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm7_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm7_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm7_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm7_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm7_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm7_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm7_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm7_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm7_big_endian.suffix = String "e7e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm7_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm7_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm7_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm7_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm7_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm7_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm7_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm7_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm7_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
Arm7_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm7_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm7_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm7_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm7_big_endian.compatibleSuffixes = String[] [
    "470e"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm7_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm7_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm7_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm7_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm7_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm7_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm7_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm7_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm7_big_endian.linkLib // module-wide
index URL

Default Arm7 cgtools runtime library to link with

XDCscript usage meta-domain
Arm7_big_endian.linkLib = String "rtsv4_A_be_eabi.lib";
config Arm7_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm7_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm7_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm7_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm7_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm7_big_endian.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm7_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm7_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm7_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm7_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm7_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm7_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm7_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
Arm7_big_endian.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm7_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm7_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm7_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm7_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm7_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm7_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm7_big_endian.asmName(String CName) returns String
Arm7_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm7_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm7_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm7_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm7_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm7_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm7_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm7_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm7_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm7_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm7_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm7_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm7_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm7_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm7_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm7_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm7_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm7_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:28 GMT


module ti.targets.arm.elf.Arm7_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Arm7_big_endian.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== Arm7_big_endian.xdc ========
    19     *  TI Arm7 big endian (ELF)
    20     */
    21    metaonly module Arm7_big_endian inherits ti.targets.arm.elf.IArm {
    22        override readonly config string name        ="Arm7_big_endian";
    23        override readonly config string suffix      = "e7e";
    24        override readonly config string isa         = "v4T";
    25        override readonly config string rts         = "ti.targets.arm.rtsarm";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "big",
    28            shortEnums: true
    29        };
    30        override readonly config xdc.bld.ITarget.Module base
    31            = ti.targets.arm.elf.Arm7;
    32
    33        /*
    34         *  ======== compatibleSuffixes ========
    35         */
    36        override config String compatibleSuffixes[] = ["470e"];
    37
    38        override readonly config xdc.bld.ITarget2.Command cc = {
    39            cmd:  "cl470 -c",
    40            opts: "-mv4 --abi=eabi"
    41        };
    42
    43        override readonly config xdc.bld.ITarget2.Command asm = {
    44            cmd:  "cl470 -c",
    45            opts: "-mv4 --abi=eabi"
    46        };
    47
    48        override readonly config xdc.bld.ITarget2.Command lnk = {
    49            cmd:  "lnk470",
    50            opts: "--silicon_version=4 --strict_compatibility=on"
    51        };
    52
    53        /*!
    54         *  ======== linkLib ========
    55         *  Default Arm7 cgtools runtime library to link with
    56         */
    57        config string linkLib = "rtsv4_A_be_eabi.lib";
    58    }
    59    /*
    60     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    61
    62     */
    63


module ti.targets.arm.elf.Arm9

metaonly module ti.targets.arm.elf.Arm9
index URL

TI Arm9 little endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/Arm9.xdc
var Arm9 = xdc.useModule('ti.targets.arm.elf.Arm9');
module-wide constants & types
    var obj = new Arm9.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm9.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm9.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm9.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm9.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm9.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm9.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm9.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm9.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm9.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm9.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm9.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm9.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm9.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm9.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-me -mv5e --abi=eabi"
    };
    const Arm9.base// A target that this target is based upon = ITarget.Module TMS470.module;
    const Arm9.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm9.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-me -mv5e --abi=eabi"
    };
    const Arm9.isa// CPU Instruction Set Architecture (ISA) = String "v5T";
    const Arm9.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=5e --strict_compatibility=on"
    };
    const Arm9.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const Arm9.name// Nickname for this target = String "Arm9";
    const Arm9.os// Name of OS required to run programs built for this target = String computed value;
    const Arm9.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm9.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const Arm9.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm9.suffix// Suffix appended to all objs, libraries, and executable = String "e9";
    const Arm9.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm9.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm9.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm9.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm9.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     Arm9.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm9.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "7",
        "470",
        "9t"
    ];
     Arm9.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm9.execExt// Extension for executables = String undefined;
     Arm9.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm9.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm9.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv5_A_le_eabi.lib";
     Arm9.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm9.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm9.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm9.platforms// A set of platforms that can support this target = String[] [ ];
     Arm9.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm9.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm9.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     Arm9.version// The Compatibility Key associated with this target = String undefined;
     Arm9.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm9.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm9.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm9.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm9.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm9.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm9.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm9.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm9.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm9.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm9.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm9.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm9.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm9.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm9.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm9.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm9.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm9.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm9.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm9.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm9.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm9.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm9.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm9.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm9.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm9.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm9.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm9.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm9.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm9.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm9.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm9.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm9.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm9.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm9.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm9.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm9.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm9.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm9.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm9.alignDirectiveSupported = Bool true;
config Arm9.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm9.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm9.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm9.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-me -mv5e --abi=eabi"
};
config Arm9.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm9.base = ITarget.Module TMS470.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm9.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm9.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm9.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm9.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-me -mv5e --abi=eabi"
};
config Arm9.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm9.isa = String "v5T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm9.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm9.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=5e --strict_compatibility=on"
};
config Arm9.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm9.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm9.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm9.name = String "Arm9";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm9.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm9.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm9.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm9.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm9.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm9.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm9.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm9.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm9.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm9.suffix = String "e9";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm9.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm9.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm9.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm9.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm9.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm9.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm9.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm9.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm9.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
Arm9.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm9.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm9.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm9.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm9.compatibleSuffixes = String[] [
    "7",
    "470",
    "9t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm9.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm9.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm9.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm9.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm9.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm9.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm9.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm9.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm9.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
Arm9.linkLib = String "rtsv5_A_le_eabi.lib";
config Arm9.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm9.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm9.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm9.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm9.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm9.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm9.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm9.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm9.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm9.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm9.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm9.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm9.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
Arm9.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm9.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm9.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm9.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm9.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm9.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm9.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm9.asmName(String CName) returns String
Arm9.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm9.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm9.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm9.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm9.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm9.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm9.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm9.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm9.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm9.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm9.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm9.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm9.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm9.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm9.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm9.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm9.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm9.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:28 GMT


module ti.targets.arm.elf.Arm9

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Arm9.xdc ========
    15     *  TI Arm9 little endian (ELF)
    16     */
    17    metaonly module Arm9 inherits ti.targets.arm.elf.IArm {
    18        override readonly config string name        = "Arm9";
    19        override readonly config string suffix      = "e9";
    20        override readonly config string isa         = "v5T";
    21        override readonly config string rts         = "ti.targets.arm.rtsarm";
    22
    23        override readonly config xdc.bld.ITarget.Module base = ti.targets.TMS470;
    24
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27            shortEnums: true
    28        };
    29
    30        /*
    31         *  ======== compatibleSuffixes ========
    32         */
    33        override config String compatibleSuffixes[] = ["7", "470", "9t"];
    34
    35        override readonly config xdc.bld.ITarget2.Command cc = {
    36            cmd:  "cl470 -c",
    37            opts: "-me -mv5e --abi=eabi"
    38        };
    39
    40        override readonly config xdc.bld.ITarget2.Command asm = {
    41            cmd:  "cl470 -c",
    42            opts: "-me -mv5e --abi=eabi"
    43        };
    44
    45        override readonly config xdc.bld.ITarget2.Command lnk = {
    46            cmd:  "lnk470",
    47            opts: "--silicon_version=5e --strict_compatibility=on"
    48        };
    49
    50        /*!
    51         *  ======== linkLib ========
    52         *  Default TMS470 cgtools runtime library to link with executable
    53         *  (comes from $rootDir/lib)
    54         */
    55        config string linkLib = "rtsv5_A_le_eabi.lib";
    56    }
    57    /*
    58     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    59
    60     */
    61


module ti.targets.arm.elf.Arm9t

metaonly module ti.targets.arm.elf.Arm9t
index URL

TI Arm9 little endian thumb-mode (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/Arm9t.xdc
var Arm9t = xdc.useModule('ti.targets.arm.elf.Arm9t');
module-wide constants & types
    var obj = new Arm9t.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new Arm9t.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new Arm9t.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new Arm9t.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new Arm9t.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new Arm9t.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new Arm9t.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new Arm9t.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new Arm9t.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new Arm9t.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new Arm9t.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new Arm9t.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const Arm9t.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const Arm9t.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const Arm9t.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mt -mv5e --abi=eabi"
    };
    const Arm9t.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const Arm9t.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const Arm9t.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-me -mt -mv5e --abi=eabi"
    };
    const Arm9t.isa// CPU Instruction Set Architecture (ISA) = String "v5T";
    const Arm9t.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=5e --strict_compatibility=on"
    };
    const Arm9t.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb",
        shortEnums: true
    };
    const Arm9t.name// Nickname for this target = String "Arm9t";
    const Arm9t.os// Name of OS required to run programs built for this target = String computed value;
    const Arm9t.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const Arm9t.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const Arm9t.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const Arm9t.suffix// Suffix appended to all objs, libraries, and executable = String "e9t";
    const Arm9t.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     Arm9t.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     Arm9t.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     Arm9t.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     Arm9t.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     Arm9t.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     Arm9t.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "9",
        "7",
        "470"
    ];
     Arm9t.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     Arm9t.execExt// Extension for executables = String undefined;
     Arm9t.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     Arm9t.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     Arm9t.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv5_T_le_eabi.lib";
     Arm9t.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     Arm9t.pathPrefix// A prefix to the PATH environment variable = String "";
     Arm9t.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     Arm9t.platforms// A set of platforms that can support this target = String[] [ ];
     Arm9t.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     Arm9t.rootDir// Installation directory for this target's code generation tools = String undefined;
     Arm9t.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     Arm9t.version// The Compatibility Key associated with this target = String undefined;
     Arm9t.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     Arm9t.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     Arm9t.asmName// The function that converts a C name into an assembly name(String CName) returns String
     Arm9t.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm9t.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     Arm9t.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     Arm9t.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     Arm9t.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm9t.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     Arm9t.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     Arm9t.getVersion// Get a target-specific Compatibility Key string() returns String
     Arm9t.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     Arm9t.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     Arm9t.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct Arm9t.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new Arm9t.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct Arm9t.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new Arm9t.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct Arm9t.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new Arm9t.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct Arm9t.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new Arm9t.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct Arm9t.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new Arm9t.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct Arm9t.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new Arm9t.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct Arm9t.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new Arm9t.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct Arm9t.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new Arm9t.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct Arm9t.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new Arm9t.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct Arm9t.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new Arm9t.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct Arm9t.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new Arm9t.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct Arm9t.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new Arm9t.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config Arm9t.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const Arm9t.alignDirectiveSupported = Bool true;
config Arm9t.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const Arm9t.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config Arm9t.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const Arm9t.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mt -mv5e --abi=eabi"
};
config Arm9t.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const Arm9t.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config Arm9t.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const Arm9t.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config Arm9t.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const Arm9t.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-me -mt -mv5e --abi=eabi"
};
config Arm9t.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const Arm9t.isa = String "v5T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config Arm9t.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const Arm9t.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=5e --strict_compatibility=on"
};
config Arm9t.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const Arm9t.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config Arm9t.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const Arm9t.name = String "Arm9t";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config Arm9t.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const Arm9t.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config Arm9t.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const Arm9t.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config Arm9t.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const Arm9t.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config Arm9t.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const Arm9t.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config Arm9t.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const Arm9t.suffix = String "e9t";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config Arm9t.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const Arm9t.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config Arm9t.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
Arm9t.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config Arm9t.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
Arm9t.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config Arm9t.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
Arm9t.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config Arm9t.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
Arm9t.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config Arm9t.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
Arm9t.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config Arm9t.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
Arm9t.compatibleSuffixes = String[] [
    "9",
    "7",
    "470"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config Arm9t.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
Arm9t.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config Arm9t.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
Arm9t.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config Arm9t.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
Arm9t.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config Arm9t.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
Arm9t.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config Arm9t.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
Arm9t.linkLib = String "rtsv5_T_le_eabi.lib";
config Arm9t.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
Arm9t.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config Arm9t.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
Arm9t.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config Arm9t.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
Arm9t.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config Arm9t.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
Arm9t.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config Arm9t.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
Arm9t.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config Arm9t.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
Arm9t.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config Arm9t.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
Arm9t.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config Arm9t.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
Arm9t.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config Arm9t.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
Arm9t.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
Arm9t.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
Arm9t.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
Arm9t.asmName(String CName) returns String
Arm9t.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
Arm9t.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
Arm9t.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
Arm9t.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
Arm9t.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm9t.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
Arm9t.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
Arm9t.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
Arm9t.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
Arm9t.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
Arm9t.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
Arm9t.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
Arm9t.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
Arm9t.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
Arm9t.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
Arm9t.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
Arm9t.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
Arm9t.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:28 GMT


module ti.targets.arm.elf.Arm9t

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Arm9t.xdc ========
    15     *  TI Arm9 little endian thumb-mode (ELF)
    16     */
    17    metaonly module Arm9t inherits ti.targets.arm.elf.IArm {
    18        override readonly config string name        = "Arm9t";
    19        override readonly config string suffix      = "e9t";
    20        override readonly config string isa         = "v5T";
    21        override readonly config string rts         = "ti.targets.arm.rtsarm";
    22
    23        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    24
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27            codeModel: "thumb",
    28            shortEnums: true
    29        };
    30
    31        /*
    32         *  ======== compatibleSuffixes ========
    33         */
    34        override config String compatibleSuffixes[] = ["9", "7", "470"];
    35
    36        override readonly config xdc.bld.ITarget2.Command cc = {
    37            cmd:  "cl470 -c",
    38            opts: "-me -mt -mv5e --abi=eabi"
    39        };
    40
    41        override readonly config xdc.bld.ITarget2.Command asm = {
    42            cmd:  "cl470 -c",
    43            opts: " -me -mt -mv5e --abi=eabi"
    44        };
    45
    46        override readonly config xdc.bld.ITarget2.Command lnk = {
    47            cmd:  "lnk470",
    48            opts: "--silicon_version=5e --strict_compatibility=on"
    49        };
    50
    51        /*!
    52         *  ======== linkLib ========
    53         *  Default TMS470 cgtools runtime library to link with executable
    54         *  (comes from $rootDir/lib)
    55         */
    56        config string linkLib = "rtsv5_T_le_eabi.lib";
    57    }
    58    /*
    59     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    60
    61     */
    62


interface ti.targets.arm.elf.IA8

metaonly interface ti.targets.arm.elf.IA8
index URL

Cortex A8 little endian target

XDCspec summary sourced in ti/targets/arm/elf/IA8.xdc
metaonly interface IA8 { ...
// inherits ti.targets.arm.elf.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
package ti.targets.arm.elf;
metaonly interface IA8 inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7A";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--silicon_version=7A8 --strict_compatibility=on"
    };
    override readonly config ITarget.Model model// Run-time model = {
        shortEnums: true
    };
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    override config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[] = [
        "e9",
        "e7",
        "e9t"
    ];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.evmDM8168";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String stdInclude// Standard C/C++ types header = "ti/targets/arm/elf/std.h";
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IA8.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
typedef String StringArray[];
struct IA8.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IA8.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IA8.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IA8.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IA8.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IA8.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IA8.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IA8.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IA8.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IA8.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IA8.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IA8.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IA8.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config Bool alignDirectiveSupported = true;
config IA8.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IA8.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
readonly config ITarget2.Command asm;
config IA8.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IA8.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IA8.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
readonly config ITarget2.Command cc;
config IA8.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config String isa = "v7A";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IA8.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--silicon_version=7A8 --strict_compatibility=on"
};
config IA8.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config ITarget.Model model = {
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IA8.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IA8.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IA8.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IA8.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config String sectMap[string] = [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IA8.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IA8.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IA8.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IA8.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IA8.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IA8.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IA8.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IA8.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IA8.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config String compatibleSuffixes[] = [
    "e9",
    "e7",
    "e9t"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IA8.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IA8.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IA8.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IA8.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IA8.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IA8.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IA8.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config String platform = "ti.platforms.evmDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IA8.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IA8.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IA8.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IA8.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config String stdInclude = "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IA8.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IA8.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IA8.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IA8.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
String asmName(String CName);
IA8.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IA8.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IA8.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IA8.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IA8.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IA8.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IA8.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IA8.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IA8.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IA8.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IA8.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IA8.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:24 GMT


interface ti.targets.arm.elf.IA8

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IA8.xdc ========
    15     *  Cortex A8 little endian target
    16     */
    17    metaonly interface IA8 inherits ti.targets.arm.elf.IArm {
    18        override readonly config string isa         = "v7A";
    19
    20        /*
    21         *  ======== compatibleSuffixes ========
    22         */
    23        override config String compatibleSuffixes[] = ["e9", "e7", "e9t"];
    24
    25        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    26
    27        override config string platform   = "ti.platforms.evmDM8168";
    28
    29        override readonly config xdc.bld.ITarget2.Command lnk = {
    30            cmd:  "lnk470",
    31            opts: "--silicon_version=7A8 --strict_compatibility=on"
    32        };
    33    }
    34    /*
    35     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    36
    37     */
    38


interface ti.targets.arm.elf.IArm

metaonly interface ti.targets.arm.elf.IArm
index URL

Common settings for all Arm targets

XDCspec summary sourced in ti/targets/arm/elf/IArm.xdc
metaonly interface IArm { ...
// inherits ti.targets.ITarget
    // inherits xdc.bld.ITarget2
        // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
package ti.targets.arm.elf;
metaonly interface IArm inherits ITarget {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    readonly config ITarget.Module base// A target that this target is based upon;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: ""
    };
    override readonly config ITarget.Model model// Run-time model = {
        shortEnums: true
    };
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.sim470xx";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String stdInclude// Standard C/C++ types header = "ti/targets/arm/elf/std.h";
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IArm.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
typedef String StringArray[];
struct IArm.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IArm.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IArm.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IArm.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IArm.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IArm.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IArm.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IArm.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IArm.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IArm.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IArm.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IArm.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IArm.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override readonly config Bool alignDirectiveSupported = true;
config IArm.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IArm.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
readonly config ITarget2.Command asm;
config IArm.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IArm.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IArm.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
readonly config ITarget2.Command cc;
config IArm.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IArm.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: ""
};
config IArm.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override readonly config ITarget.Model model = {
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IArm.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IArm.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IArm.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IArm.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override readonly config String sectMap[string] = [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IArm.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IArm.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IArm.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IArm.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IArm.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IArm.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IArm.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IArm.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IArm.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IArm.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IArm.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IArm.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IArm.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IArm.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IArm.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IArm.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config String platform = "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IArm.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IArm.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IArm.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IArm.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config String stdInclude = "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IArm.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IArm.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IArm.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IArm.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
String asmName(String CName);
IArm.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IArm.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IArm.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IArm.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IArm.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IArm.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IArm.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IArm.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IArm.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IArm.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IArm.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IArm.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:24 GMT


interface ti.targets.arm.elf.IArm

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IArm.xdc ========
    15     *  Common settings for all Arm targets
    16     */
    17    metaonly interface IArm inherits ti.targets.ITarget {
    18
    19        override config String stdInclude = "ti/targets/arm/elf/std.h";
    20
    21        override config string platform   = "ti.platforms.sim470xx";
    22
    23        override config string includeOpts =
    24            "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    25
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            shortEnums: true,
    28        };
    29
    30        override readonly config xdc.bld.ITarget2.Command ar = {
    31            cmd:  "ar470",
    32            opts: "rq"
    33        };
    34
    35        override readonly config xdc.bld.ITarget2.Command vers = {
    36            cmd:  "cl470",
    37            opts: "--compiler_revision"
    38        };
    39
    40        override readonly config xdc.bld.ITarget2.Command lnk = {
    41            cmd:  "lnk470",
    42            opts: ""
    43        };
    44
    45        /*!
    46         *  ======== ccOpts ========
    47         *  User configurable compiler options.
    48         *
    49         *  Defaults:
    50         *  @p(dlist)
    51         *      -`-qq`
    52         *          super quiet mode
    53         *      -`-pdsw225`
    54         *          generate a warning for implicitly declared functions; i.e.,
    55         *          functions without prototypes
    56         */
    57        override config xdc.bld.ITarget2.Options ccOpts = {
    58            prefix: "-qq -pdsw225",
    59            suffix: ""
    60        };
    61
    62        /*!
    63         *  ======== ccConfigOpts ========
    64         *  User configurable compiler options for the generated config C file.
    65         *      -`--fp_mode=strict`
    66         *          disable conversion of double-precision computations to
    67         *          single-precision computations when the result is assigned to
    68         *          a single-precision variable.
    69         */
    70        override config xdc.bld.ITarget2.Options ccConfigOpts = {
    71            prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    72            suffix: "$(ccOpts.suffix)"
    73        };
    74
    75        /*!
    76         *  ======== asmOpts ========
    77         *  User configurable assembler options.
    78         *
    79         *  Defaults:
    80         *  @p(dlist)
    81         *      -`-qq`
    82         *          super quiet mode
    83         */
    84        override config xdc.bld.ITarget2.Options asmOpts = {
    85            prefix: "-qq",
    86            suffix: ""
    87        };
    88
    89        /*!
    90         *  ======== lnkOpts ========
    91         *  User configurable linker options.
    92         *
    93         *  Defaults:
    94         *  @p(dlist)
    95         *      -`-w`
    96         *          Display linker warnings
    97         *      -`-q`
    98         *          Quite run
    99         *      -`-u`
   100         *          Place unresolved external symbol into symbol table
   101         *      -`-c`
   102         *          ROM autoinitialization model
   103         *      -`-m`
   104         *          create a map file
   105         */
   106        override config xdc.bld.ITarget2.Options lnkOpts = {
   107            prefix: "-w -q -u _c_int00",
   108            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   109        };
   110
   111        /*!
   112         *  ======== profiles ========
   113         *  Standard options profiles for the TI tool-chain.
   114         */
   115        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   116            ["debug", {
   117                compileOpts: {
   118                    copts: "--symdebug:dwarf",
   119                    defs:  "-D_DEBUG_=1",
   120                }
   121            }],
   122            ["release", {
   123                compileOpts: {
   124                    copts: "-O2",
   125                },
   126            }],
   127            ["profile", {
   128                compileOpts: {
   129                    copts: "--symdebug:dwarf",
   130                },
   131            }],
   132            ["coverage", {
   133                compileOpts: {
   134                    copts: "--symdebug:dwarf",
   135                },
   136            }],
   137            ["whole_program", {
   138                compileOpts: {
   139                    copts: "-oe -O2 -ms",
   140                },
   141            }],
   142            ["whole_program_debug", {
   143                compileOpts: {
   144                    copts: "-oe --symdebug:dwarf -ms",
   145                },
   146            }],
   147        ];
   148
   149        final override readonly config string sectMap[string] = [
   150            [".text", "code"],
   151            [".stack", "stack"],
   152            [".bss", "data"],
   153            [".cinit", "code"],
   154            [".init_array", "code"],
   155            [".const", "code"],
   156            [".data", "data"],
   157            [".rodata", "data"],
   158            [".neardata", "data"],
   159            [".fardata", "data"],
   160            [".switch", "data"],
   161            [".sysmem", "data"],
   162            [".far", "data"],
   163            [".args", "data"],
   164            [".cio", "data"],
   165        ];
   166
   167        override readonly config Int bitsPerChar = 8;
   168
   169        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   170            t_IArg          : { size: 4, align: 4 },
   171            t_Char          : { size: 1, align: 1 },
   172            t_Double        : { size: 8, align: 8 },
   173            t_Float         : { size: 4, align: 4 },
   174            t_Fxn           : { size: 4, align: 4 },
   175            t_Int           : { size: 4, align: 4 },
   176            t_Int8          : { size: 1, align: 1 },
   177            t_Int16         : { size: 2, align: 2 },
   178            t_Int32         : { size: 4, align: 4 },
   179            t_Int64         : { size: 8, align: 8 },
   180            t_Long          : { size: 4, align: 4 },
   181            t_LDouble       : { size: 8, align: 8 },
   182            t_LLong         : { size: 8, align: 8 },
   183            t_Ptr           : { size: 4, align: 4 },
   184            t_Short         : { size: 2, align: 2 },
   185            t_Size          : { size: 4, align: 4 },
   186        };
   187
   188        override config String binaryParser = "ti.targets.omf.elf.Elf32";
   189    }
   190
   191    /*
   192     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   193
   194     */
   195


interface ti.targets.arm.elf.IM3

metaonly interface ti.targets.arm.elf.IM3
index URL

Cortex M3 little endian thumb2 target

XDCspec summary sourced in ti/targets/arm/elf/IM3.xdc
metaonly interface IM3 { ...
// inherits ti.targets.arm.elf.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
package ti.targets.arm.elf;
metaonly interface IM3 inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7M";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--silicon_version=7M3 --strict_compatibility=on"
    };
    override readonly config ITarget.Model model// Run-time model = {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.simDM8168";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String stdInclude// Standard C/C++ types header = "ti/targets/arm/elf/std.h";
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IM3.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
typedef String StringArray[];
struct IM3.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IM3.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IM3.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IM3.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IM3.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IM3.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IM3.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IM3.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IM3.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IM3.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IM3.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IM3.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IM3.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config Bool alignDirectiveSupported = true;
config IM3.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IM3.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
readonly config ITarget2.Command asm;
config IM3.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IM3.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IM3.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
readonly config ITarget2.Command cc;
config IM3.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config String isa = "v7M";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IM3.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--silicon_version=7M3 --strict_compatibility=on"
};
config IM3.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config ITarget.Model model = {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IM3.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IM3.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IM3.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IM3.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config String sectMap[string] = [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IM3.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IM3.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IM3.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IM3.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IM3.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IM3.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IM3.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IM3.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IM3.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IM3.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IM3.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IM3.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IM3.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IM3.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IM3.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IM3.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config String platform = "ti.platforms.simDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IM3.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IM3.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IM3.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IM3.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config String stdInclude = "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IM3.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IM3.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IM3.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
String asmName(String CName);
IM3.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IM3.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM3.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM3.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IM3.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IM3.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IM3.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IM3.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IM3.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:24 GMT


interface ti.targets.arm.elf.IM3

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IM3.xdc ========
    15     *  Cortex M3 little endian thumb2 target
    16     */
    17    metaonly interface IM3 inherits ti.targets.arm.elf.IArm {
    18        override readonly config string isa         = "v7M";
    19
    20        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.simDM8168";
    23
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "little",
    26            codeModel: "thumb2",
    27            shortEnums: true
    28        };
    29
    30        override readonly config xdc.bld.ITarget2.Command lnk = {
    31            cmd:  "lnk470",
    32            opts: "--silicon_version=7M3 --strict_compatibility=on"
    33        };
    34    }
    35    /*
    36     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    37
    38     */
    39


interface ti.targets.arm.elf.IM3_big_endian

metaonly interface ti.targets.arm.elf.IM3_big_endian
index URL

Cortex M3 big endian thumb2 target

XDCspec summary sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly interface IM3_big_endian { ...
// inherits ti.targets.arm.elf.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
package ti.targets.arm.elf;
metaonly interface IM3_big_endian inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7M";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
    };
    override readonly config ITarget.Model model// Run-time model = {
        endian: "big",
        codeModel: "thumb2",
        shortEnums: true
    };
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.simDM8168";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String stdInclude// Standard C/C++ types header = "ti/targets/arm/elf/std.h";
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IM3_big_endian.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
typedef String StringArray[];
struct IM3_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IM3_big_endian.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IM3_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IM3_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IM3_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IM3_big_endian.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IM3_big_endian.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IM3_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IM3_big_endian.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IM3_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IM3_big_endian.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IM3_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IM3_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config Bool alignDirectiveSupported = true;
config IM3_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IM3_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
readonly config ITarget2.Command asm;
config IM3_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IM3_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IM3_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
readonly config ITarget2.Command cc;
config IM3_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config String isa = "v7M";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IM3_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
};
config IM3_big_endian.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config ITarget.Model model = {
    endian: "big",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IM3_big_endian.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IM3_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IM3_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IM3_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config String sectMap[string] = [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IM3_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IM3_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IM3_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IM3_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IM3_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IM3_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IM3_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IM3_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IM3_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IM3_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IM3_big_endian.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IM3_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IM3_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IM3_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IM3_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IM3_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config String platform = "ti.platforms.simDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IM3_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IM3_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IM3_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IM3_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config String stdInclude = "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IM3_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IM3_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IM3_big_endian.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
String asmName(String CName);
IM3_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IM3_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM3_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM3_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IM3_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IM3_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IM3_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM3_big_endian.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:25 GMT


interface ti.targets.arm.elf.IM3_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IM3_big_endian.xdc ========
    15     *  Cortex M3 big endian thumb2 target
    16     */
    17    metaonly interface IM3_big_endian inherits ti.targets.arm.elf.IArm {
    18        override readonly config string isa         = "v7M";
    19
    20        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.simDM8168";
    23
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "big",
    26            codeModel: "thumb2",
    27            shortEnums: true
    28        };
    29
    30        override readonly config xdc.bld.ITarget2.Command lnk = {
    31            cmd:  "lnk470",
    32            opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
    33        };
    34    }
    35
    36    /*
    37     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    38
    39     */
    40


interface ti.targets.arm.elf.IM4

metaonly interface ti.targets.arm.elf.IM4
index URL

Cortex M4 little endian thumb2 target

XDCspec summary sourced in ti/targets/arm/elf/IM4.xdc
metaonly interface IM4 { ...
// inherits ti.targets.arm.elf.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
package ti.targets.arm.elf;
metaonly interface IM4 inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7M4";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--silicon_version=7M4 --strict_compatibility=on"
    };
    override readonly config ITarget.Model model// Run-time model = {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.stellaris:LM4FSXLH5BB:1";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String stdInclude// Standard C/C++ types header = "ti/targets/arm/elf/std.h";
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IM4.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
typedef String StringArray[];
struct IM4.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IM4.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IM4.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IM4.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IM4.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IM4.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IM4.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IM4.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IM4.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IM4.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IM4.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IM4.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IM4.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config Bool alignDirectiveSupported = true;
config IM4.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IM4.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
readonly config ITarget2.Command asm;
config IM4.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IM4.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IM4.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
readonly config ITarget2.Command cc;
config IM4.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config String isa = "v7M4";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IM4.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--silicon_version=7M4 --strict_compatibility=on"
};
config IM4.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config ITarget.Model model = {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IM4.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IM4.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IM4.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IM4.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config String sectMap[string] = [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IM4.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IM4.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IM4.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IM4.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IM4.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IM4.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IM4.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IM4.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IM4.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IM4.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IM4.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IM4.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IM4.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IM4.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IM4.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IM4.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config String platform = "ti.platforms.stellaris:LM4FSXLH5BB:1";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IM4.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IM4.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IM4.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IM4.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config String stdInclude = "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IM4.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IM4.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IM4.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM4.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
String asmName(String CName);
IM4.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM4.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IM4.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM4.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IM4.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IM4.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IM4.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IM4.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IM4.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IM4.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IM4.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IM4.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:25 GMT


interface ti.targets.arm.elf.IM4

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IM4.xdc ========
    15     *  Cortex M4 little endian thumb2 target
    16     */
    17    metaonly interface IM4 inherits ti.targets.arm.elf.IArm {
    18        override readonly config string isa         = "v7M4";
    19
    20        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.stellaris:LM4FSXLH5BB:1";
    23
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "little",
    26            codeModel: "thumb2",
    27            shortEnums: true
    28        };
    29
    30        override readonly config xdc.bld.ITarget2.Command lnk = {
    31            cmd:  "lnk470",
    32            opts: "--silicon_version=7M4 --strict_compatibility=on"
    33        };
    34    }
    35    /*
    36     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    37
    38     */
    39


interface ti.targets.arm.elf.IR4

metaonly interface ti.targets.arm.elf.IR4
index URL

Cortex R4 little endian target

XDCspec summary sourced in ti/targets/arm/elf/IR4.xdc
metaonly interface IR4 { ...
// inherits ti.targets.arm.elf.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
package ti.targets.arm.elf;
metaonly interface IR4 inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7R";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--silicon_version=7R4 --strict_compatibility=on"
    };
    override readonly config ITarget.Model model// Run-time model = {
        shortEnums: true
    };
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.evmTMS570";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String stdInclude// Standard C/C++ types header = "ti/targets/arm/elf/std.h";
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IR4.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
typedef String StringArray[];
struct IR4.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IR4.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IR4.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IR4.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IR4.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IR4.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IR4.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IR4.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IR4.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IR4.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IR4.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IR4.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IR4.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config Bool alignDirectiveSupported = true;
config IR4.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IR4.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
readonly config ITarget2.Command asm;
config IR4.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IR4.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IR4.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
readonly config ITarget2.Command cc;
config IR4.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config String isa = "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IR4.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--silicon_version=7R4 --strict_compatibility=on"
};
config IR4.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config ITarget.Model model = {
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IR4.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IR4.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IR4.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IR4.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config String sectMap[string] = [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IR4.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IR4.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IR4.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IR4.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IR4.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IR4.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IR4.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IR4.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IR4.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IR4.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IR4.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IR4.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IR4.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IR4.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IR4.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IR4.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config String platform = "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IR4.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IR4.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IR4.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IR4.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config String stdInclude = "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IR4.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IR4.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IR4.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
String asmName(String CName);
IR4.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IR4.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IR4.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IR4.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IR4.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IR4.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IR4.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IR4.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IR4.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:25 GMT


interface ti.targets.arm.elf.IR4

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IR4.xdc ========
    15     *  Cortex R4 little endian target
    16     */
    17    metaonly interface IR4 inherits ti.targets.arm.elf.IArm {
    18        override readonly config string isa         = "v7R";
    19
    20        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.evmTMS570";
    23
    24        override readonly config xdc.bld.ITarget2.Command lnk = {
    25            cmd:  "lnk470",
    26            opts: "--silicon_version=7R4 --strict_compatibility=on"
    27        };
    28    }
    29    /*
    30     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:29; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    31
    32     */
    33


interface ti.targets.arm.elf.IR4_big_endian

metaonly interface ti.targets.arm.elf.IR4_big_endian
index URL

Cortex R4 big endian target

XDCspec summary sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly interface IR4_big_endian { ...
// inherits ti.targets.arm.elf.IArm
    // inherits ti.targets.ITarget
        // inherits xdc.bld.ITarget2
            // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
package ti.targets.arm.elf;
metaonly interface IR4_big_endian inherits IArm {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    override readonly config ITarget2.Command ar// The command used to create an archive = {
        cmd: "ar470",
        opts: "rq"
    };
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    override readonly config ITarget.Module base// A target that this target is based upon = Arm9.module;
    override readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    override readonly config String isa// CPU Instruction Set Architecture (ISA) = "v7R";
    override readonly config ITarget2.Command lnk// The command used to link executables = {
        cmd: "lnk470",
        opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
    };
    override readonly config ITarget.Model model// Run-time model = {
        shortEnums: true
    };
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    override readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number = {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    override config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "-qq",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
    override config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    override config String includeOpts// Additional user configurable target-specific include path options = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    override config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    override config String platform// The default platform name for this target = "ti.platforms.evmTMS570";
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String stdInclude// Standard C/C++ types header = "ti/targets/arm/elf/std.h";
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef IR4_big_endian.StringArray
index URL
XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
typedef String StringArray[];
struct IR4_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct IR4_big_endian.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct IR4_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct IR4_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct IR4_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct IR4_big_endian.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct IR4_big_endian.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct IR4_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct IR4_big_endian.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct IR4_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct IR4_big_endian.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct IR4_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config IR4_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config Bool alignDirectiveSupported = true;
config IR4_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config ITarget2.Command ar = {
    cmd: "ar470",
    opts: "rq"
};
config IR4_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
readonly config ITarget2.Command asm;
config IR4_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config ITarget.Module base = Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config IR4_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config IR4_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
readonly config ITarget2.Command cc;
config IR4_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config String isa = "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config IR4_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config ITarget2.Command lnk = {
    cmd: "lnk470",
    opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
};
config IR4_big_endian.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config ITarget.Model model = {
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config IR4_big_endian.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config IR4_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config IR4_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config IR4_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config String sectMap[string] = [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config IR4_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config IR4_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config IR4_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override readonly config ITarget2.Command vers = {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config IR4_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config IR4_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config ITarget2.Options asmOpts = {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config IR4_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config IR4_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config IR4_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config ITarget2.Options ccOpts = {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config IR4_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config IR4_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config IR4_big_endian.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config IR4_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config IR4_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config String includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config IR4_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config ITarget2.Options lnkOpts = {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config IR4_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config IR4_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config String platform = "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config IR4_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config IR4_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config IR4_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config IR4_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config String stdInclude = "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config IR4_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config IR4_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
IR4_big_endian.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
String asmName(String CName);
IR4_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
IR4_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IR4_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
IR4_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
IR4_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
IR4_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
IR4_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/arm/elf/IR4_big_endian.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:26 GMT


interface ti.targets.arm.elf.IR4_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IR4_big_endian.xdc ========
    15     *  Cortex R4 big endian target
    16     */
    17    metaonly interface IR4_big_endian inherits ti.targets.arm.elf.IArm {
    18        override readonly config string isa         = "v7R";
    19
    20        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.evmTMS570";
    23
    24        override readonly config xdc.bld.ITarget2.Command lnk = {
    25            cmd:  "lnk470",
    26            opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
    27        };
    28    }
    29    /*
    30     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    31
    32     */
    33


module ti.targets.arm.elf.M3

metaonly module ti.targets.arm.elf.M3
index URL

Cortex M3 little endian thumb2 (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/M3.xdc
var M3 = xdc.useModule('ti.targets.arm.elf.M3');
module-wide constants & types
    var obj = new M3.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new M3.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new M3.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new M3.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new M3.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new M3.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new M3.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new M3.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new M3.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new M3.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new M3.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new M3.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const M3.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const M3.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const M3.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7M3 --abi=eabi"
    };
    const M3.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const M3.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const M3.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7M3 --abi=eabi"
    };
    const M3.isa// CPU Instruction Set Architecture (ISA) = String "v7M";
    const M3.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7M3 --strict_compatibility=on"
    };
    const M3.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    const M3.name// Nickname for this target = String "M3";
    const M3.os// Name of OS required to run programs built for this target = String computed value;
    const M3.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const M3.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const M3.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const M3.suffix// Suffix appended to all objs, libraries, and executable = String "em3";
    const M3.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     M3.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M3.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     M3.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     M3.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     M3.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     M3.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     M3.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     M3.execExt// Extension for executables = String undefined;
     M3.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     M3.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     M3.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7M3_T_le_eabi.lib";
     M3.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     M3.pathPrefix// A prefix to the PATH environment variable = String "";
     M3.platform// The default platform name for this target = String "ti.platforms.simDM8168";
     M3.platforms// A set of platforms that can support this target = String[] [ ];
     M3.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     M3.rootDir// Installation directory for this target's code generation tools = String undefined;
     M3.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     M3.version// The Compatibility Key associated with this target = String undefined;
     M3.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     M3.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     M3.asmName// The function that converts a C name into an assembly name(String CName) returns String
     M3.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     M3.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     M3.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     M3.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     M3.getVersion// Get a target-specific Compatibility Key string() returns String
     M3.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     M3.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct M3.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new M3.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct M3.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new M3.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct M3.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new M3.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct M3.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new M3.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct M3.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new M3.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct M3.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new M3.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct M3.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new M3.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct M3.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new M3.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct M3.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new M3.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct M3.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new M3.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct M3.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new M3.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct M3.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new M3.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config M3.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const M3.alignDirectiveSupported = Bool true;
config M3.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const M3.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config M3.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const M3.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7M3 --abi=eabi"
};
config M3.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const M3.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config M3.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const M3.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config M3.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const M3.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7M3 --abi=eabi"
};
config M3.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const M3.isa = String "v7M";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config M3.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const M3.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7M3 --strict_compatibility=on"
};
config M3.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const M3.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config M3.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const M3.name = String "M3";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config M3.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const M3.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config M3.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const M3.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config M3.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const M3.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config M3.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const M3.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config M3.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const M3.suffix = String "em3";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config M3.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const M3.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config M3.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
M3.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M3.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
M3.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config M3.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
M3.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config M3.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
M3.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config M3.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
M3.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config M3.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
M3.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config M3.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
M3.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config M3.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
M3.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config M3.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
M3.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config M3.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
M3.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config M3.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
M3.linkLib = String "rtsv7M3_T_le_eabi.lib";
config M3.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
M3.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config M3.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
M3.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config M3.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
M3.platform = String "ti.platforms.simDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config M3.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
M3.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config M3.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
M3.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config M3.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
M3.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config M3.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
M3.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config M3.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
M3.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config M3.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
M3.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
M3.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
M3.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
M3.asmName(String CName) returns String
M3.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
M3.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
M3.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
M3.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
M3.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
M3.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
M3.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
M3.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
M3.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
M3.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
M3.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
M3.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
M3.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
M3.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
M3.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
M3.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
M3.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
M3.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:29 GMT


module ti.targets.arm.elf.M3_big_endian

metaonly module ti.targets.arm.elf.M3_big_endian
index URL

Cortex M3 big endian thumb2 (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/M3_big_endian.xdc
var M3_big_endian = xdc.useModule('ti.targets.arm.elf.M3_big_endian');
module-wide constants & types
    var obj = new M3_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new M3_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new M3_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new M3_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new M3_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new M3_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new M3_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new M3_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new M3_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new M3_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new M3_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new M3_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const M3_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const M3_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const M3_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=big -mv7M3 --abi=eabi"
    };
    const M3_big_endian.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const M3_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const M3_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=big -mv7M3 --abi=eabi"
    };
    const M3_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v7M";
    const M3_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
    };
    const M3_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        codeModel: "thumb2",
        shortEnums: true
    };
    const M3_big_endian.name// Nickname for this target = String "M3_big_endian";
    const M3_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const M3_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const M3_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const M3_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const M3_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "em3e";
    const M3_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     M3_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M3_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     M3_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     M3_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     M3_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     M3_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     M3_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     M3_big_endian.execExt// Extension for executables = String undefined;
     M3_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     M3_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     M3_big_endian.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7M3_T_be_eabi.lib";
     M3_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     M3_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     M3_big_endian.platform// The default platform name for this target = String "ti.platforms.simDM8168";
     M3_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     M3_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     M3_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     M3_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     M3_big_endian.version// The Compatibility Key associated with this target = String undefined;
     M3_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     M3_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     M3_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     M3_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     M3_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     M3_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     M3_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     M3_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     M3_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     M3_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     M3_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M3_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct M3_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new M3_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct M3_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new M3_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct M3_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new M3_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct M3_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new M3_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct M3_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new M3_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct M3_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new M3_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct M3_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new M3_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct M3_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new M3_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct M3_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new M3_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct M3_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new M3_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct M3_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new M3_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct M3_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new M3_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config M3_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const M3_big_endian.alignDirectiveSupported = Bool true;
config M3_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const M3_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config M3_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const M3_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=big -mv7M3 --abi=eabi"
};
config M3_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const M3_big_endian.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config M3_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const M3_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config M3_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const M3_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=big -mv7M3 --abi=eabi"
};
config M3_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const M3_big_endian.isa = String "v7M";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config M3_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const M3_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--be32 --silicon_version=7M3 --strict_compatibility=on"
};
config M3_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const M3_big_endian.model = ITarget.Model {
    endian: "big",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config M3_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const M3_big_endian.name = String "M3_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config M3_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const M3_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config M3_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const M3_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config M3_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const M3_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config M3_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const M3_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config M3_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const M3_big_endian.suffix = String "em3e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config M3_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const M3_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config M3_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
M3_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M3_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
M3_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config M3_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
M3_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config M3_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
M3_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config M3_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
M3_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config M3_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
M3_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config M3_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
M3_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config M3_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
M3_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config M3_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
M3_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config M3_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
M3_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config M3_big_endian.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
M3_big_endian.linkLib = String "rtsv7M3_T_be_eabi.lib";
config M3_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
M3_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config M3_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
M3_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config M3_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
M3_big_endian.platform = String "ti.platforms.simDM8168";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config M3_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
M3_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config M3_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
M3_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config M3_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
M3_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config M3_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
M3_big_endian.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config M3_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
M3_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config M3_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
M3_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
M3_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
M3_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
M3_big_endian.asmName(String CName) returns String
M3_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
M3_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
M3_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
M3_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
M3_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
M3_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M3_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
M3_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
M3_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
M3_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
M3_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
M3_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
M3_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
M3_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
M3_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
M3_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
M3_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:29 GMT


module ti.targets.arm.elf.M3_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== M3_big_endian.xdc ========
    15     *  Cortex M3 big endian thumb2 (ELF)
    16     */
    17    metaonly module M3_big_endian inherits ti.targets.arm.elf.IM3_big_endian {
    18        override readonly config string name        = "M3_big_endian";
    19        override readonly config string suffix      = "em3e";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget2.Command cc = {
    23            cmd:  "cl470 -c",
    24            opts: "--endian=big -mv7M3 --abi=eabi"
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command asm = {
    28            cmd:  "cl470 -c",
    29            opts: "--endian=big -mv7M3 --abi=eabi"
    30        };
    31
    32        /*!
    33         *  ======== linkLib ========
    34         *  Default TMS470 cgtools runtime library to link with executable
    35         *  (comes from $rootDir/lib)
    36         */
    37        config string linkLib = "rtsv7M3_T_be_eabi.lib";
    38    }
    39    /*
    40     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    41
    42     */
    43


module ti.targets.arm.elf.M4

metaonly module ti.targets.arm.elf.M4
index URL

Cortex M4, no floating point unit, little endian thumb2 (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/M4.xdc
var M4 = xdc.useModule('ti.targets.arm.elf.M4');
module-wide constants & types
    var obj = new M4.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new M4.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new M4.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new M4.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new M4.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new M4.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new M4.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new M4.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new M4.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new M4.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new M4.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new M4.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const M4.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const M4.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const M4.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7M4 --float_support=vfplib --abi=eabi"
    };
    const M4.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const M4.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const M4.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7M4 --float_support=vfplib --abi=eabi"
    };
    const M4.isa// CPU Instruction Set Architecture (ISA) = String "v7M4";
    const M4.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7M4 --strict_compatibility=on"
    };
    const M4.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    const M4.name// Nickname for this target = String "M4";
    const M4.os// Name of OS required to run programs built for this target = String computed value;
    const M4.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const M4.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const M4.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const M4.suffix// Suffix appended to all objs, libraries, and executable = String "em4";
    const M4.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     M4.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M4.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     M4.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     M4.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     M4.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     M4.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     M4.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     M4.execExt// Extension for executables = String undefined;
     M4.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     M4.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     M4.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7M4_T_le_eabi.lib";
     M4.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     M4.pathPrefix// A prefix to the PATH environment variable = String "";
     M4.platform// The default platform name for this target = String "ti.platforms.stellaris:LM4FSXLH5BB:1";
     M4.platforms// A set of platforms that can support this target = String[] [ ];
     M4.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     M4.rootDir// Installation directory for this target's code generation tools = String undefined;
     M4.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     M4.version// The Compatibility Key associated with this target = String undefined;
     M4.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     M4.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     M4.asmName// The function that converts a C name into an assembly name(String CName) returns String
     M4.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M4.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     M4.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     M4.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     M4.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     M4.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     M4.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     M4.getVersion// Get a target-specific Compatibility Key string() returns String
     M4.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     M4.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M4.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct M4.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new M4.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct M4.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new M4.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct M4.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new M4.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct M4.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new M4.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct M4.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new M4.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct M4.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new M4.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct M4.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new M4.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct M4.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new M4.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct M4.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new M4.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct M4.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new M4.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct M4.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new M4.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct M4.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new M4.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config M4.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const M4.alignDirectiveSupported = Bool true;
config M4.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const M4.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config M4.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const M4.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7M4 --float_support=vfplib --abi=eabi"
};
config M4.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const M4.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config M4.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const M4.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config M4.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const M4.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7M4 --float_support=vfplib --abi=eabi"
};
config M4.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const M4.isa = String "v7M4";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config M4.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const M4.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7M4 --strict_compatibility=on"
};
config M4.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const M4.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config M4.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const M4.name = String "M4";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config M4.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const M4.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config M4.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const M4.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config M4.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const M4.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config M4.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const M4.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config M4.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const M4.suffix = String "em4";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config M4.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const M4.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config M4.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
M4.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M4.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
M4.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config M4.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
M4.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config M4.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
M4.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config M4.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
M4.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config M4.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
M4.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config M4.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
M4.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config M4.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
M4.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config M4.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
M4.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config M4.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
M4.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config M4.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
M4.linkLib = String "rtsv7M4_T_le_eabi.lib";
config M4.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
M4.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config M4.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
M4.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config M4.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
M4.platform = String "ti.platforms.stellaris:LM4FSXLH5BB:1";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config M4.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
M4.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config M4.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
M4.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config M4.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
M4.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config M4.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
M4.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config M4.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
M4.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config M4.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
M4.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
M4.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
M4.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M4.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
M4.asmName(String CName) returns String
M4.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
M4.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M4.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
M4.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
M4.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
M4.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M4.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
M4.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M4.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
M4.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
M4.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
M4.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
M4.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
M4.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
M4.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
M4.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
M4.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
M4.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M4.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
M4.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
M4.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
M4.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:29 GMT


module ti.targets.arm.elf.M4F

metaonly module ti.targets.arm.elf.M4F
index URL

Cortex M4 with floating point unit, little endian thumb2 (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/M4F.xdc
var M4F = xdc.useModule('ti.targets.arm.elf.M4F');
module-wide constants & types
    var obj = new M4F.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new M4F.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new M4F.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new M4F.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new M4F.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new M4F.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new M4F.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new M4F.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new M4F.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new M4F.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new M4F.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new M4F.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const M4F.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const M4F.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const M4F.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7M4 --abi=eabi --float_support=fpv4spd16"
    };
    const M4F.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const M4F.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const M4F.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7M4 --abi=eabi --float_support=fpv4spd16"
    };
    const M4F.isa// CPU Instruction Set Architecture (ISA) = String "v7M4";
    const M4F.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7M4 --strict_compatibility=on"
    };
    const M4F.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    const M4F.name// Nickname for this target = String "M4F";
    const M4F.os// Name of OS required to run programs built for this target = String computed value;
    const M4F.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const M4F.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const M4F.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const M4F.suffix// Suffix appended to all objs, libraries, and executable = String "em4f";
    const M4F.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     M4F.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     M4F.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     M4F.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     M4F.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     M4F.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     M4F.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     M4F.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     M4F.execExt// Extension for executables = String undefined;
     M4F.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     M4F.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     M4F.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7M4_T_le_v4SPD16_eabi.lib";
     M4F.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     M4F.pathPrefix// A prefix to the PATH environment variable = String "";
     M4F.platform// The default platform name for this target = String "ti.platforms.stellaris:LM4FSXLH5BB:1";
     M4F.platforms// A set of platforms that can support this target = String[] [ ];
     M4F.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     M4F.rootDir// Installation directory for this target's code generation tools = String undefined;
     M4F.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     M4F.version// The Compatibility Key associated with this target = String undefined;
     M4F.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     M4F.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     M4F.asmName// The function that converts a C name into an assembly name(String CName) returns String
     M4F.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M4F.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     M4F.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     M4F.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     M4F.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     M4F.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     M4F.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     M4F.getVersion// Get a target-specific Compatibility Key string() returns String
     M4F.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     M4F.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     M4F.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct M4F.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new M4F.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct M4F.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new M4F.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct M4F.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new M4F.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct M4F.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new M4F.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct M4F.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new M4F.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct M4F.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new M4F.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct M4F.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new M4F.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct M4F.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new M4F.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct M4F.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new M4F.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct M4F.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new M4F.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct M4F.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new M4F.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct M4F.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new M4F.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config M4F.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const M4F.alignDirectiveSupported = Bool true;
config M4F.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const M4F.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config M4F.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const M4F.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7M4 --abi=eabi --float_support=fpv4spd16"
};
config M4F.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const M4F.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config M4F.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const M4F.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config M4F.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const M4F.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7M4 --abi=eabi --float_support=fpv4spd16"
};
config M4F.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const M4F.isa = String "v7M4";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config M4F.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const M4F.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7M4 --strict_compatibility=on"
};
config M4F.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const M4F.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config M4F.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const M4F.name = String "M4F";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config M4F.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const M4F.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config M4F.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const M4F.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config M4F.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const M4F.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config M4F.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const M4F.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config M4F.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const M4F.suffix = String "em4f";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config M4F.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const M4F.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config M4F.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
M4F.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config M4F.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
M4F.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config M4F.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
M4F.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config M4F.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
M4F.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config M4F.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
M4F.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config M4F.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
M4F.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config M4F.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
M4F.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config M4F.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
M4F.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config M4F.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
M4F.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config M4F.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
M4F.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config M4F.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
M4F.linkLib = String "rtsv7M4_T_le_v4SPD16_eabi.lib";
config M4F.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
M4F.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config M4F.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
M4F.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config M4F.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
M4F.platform = String "ti.platforms.stellaris:LM4FSXLH5BB:1";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config M4F.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
M4F.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config M4F.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
M4F.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config M4F.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
M4F.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config M4F.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
M4F.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config M4F.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
M4F.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config M4F.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
M4F.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
M4F.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
M4F.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M4F.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
M4F.asmName(String CName) returns String
M4F.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
M4F.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M4F.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
M4F.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
M4F.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
M4F.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M4F.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
M4F.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
M4F.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
M4F.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
M4F.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
M4F.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
M4F.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
M4F.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
M4F.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
M4F.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
M4F.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
M4F.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
M4F.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
M4F.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
M4F.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
M4F.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:30 GMT


module ti.targets.arm.elf.M4F

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== M4F.xdc ========
    15     *  Cortex M4 with floating point unit, little endian thumb2 (ELF)
    16     */
    17    metaonly module M4F inherits ti.targets.arm.elf.IM4 {
    18        override readonly config string name        = "M4F";
    19        override readonly config string suffix      = "em4f";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget2.Command cc = {
    23            cmd:  "cl470 -c",
    24            opts: "--endian=little -mv7M4 --abi=eabi --float_support=fpv4spd16"
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command asm = {
    28            cmd:  "cl470 -c",
    29            opts: "--endian=little -mv7M4 --abi=eabi --float_support=fpv4spd16"
    30        };
    31
    32        /*!
    33         *  ======== linkLib ========
    34         *  Default TMS470 cgtools runtime library to link with executable
    35         *  (comes from $rootDir/lib)
    36         */
    37        config string linkLib = "rtsv7M4_T_le_v4SPD16_eabi.lib";
    38    }
    39    /*
    40     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    41
    42     */
    43


module ti.targets.arm.elf.R4

metaonly module ti.targets.arm.elf.R4
index URL

Cortex R4 little endian thumb2 (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/R4.xdc
var R4 = xdc.useModule('ti.targets.arm.elf.R4');
module-wide constants & types
    var obj = new R4.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7R4 --abi=eabi"
    };
    const R4.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=little -mv7R4 --abi=eabi"
    };
    const R4.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7R4 --strict_compatibility=on"
    };
    const R4.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const R4.name// Nickname for this target = String "R4";
    const R4.os// Name of OS required to run programs built for this target = String computed value;
    const R4.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const R4.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4.suffix// Suffix appended to all objs, libraries, and executable = String "er4";
    const R4.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     R4.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4.execExt// Extension for executables = String undefined;
     R4.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_A_le_eabi.lib";
     R4.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4.pathPrefix// A prefix to the PATH environment variable = String "";
     R4.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4.platforms// A set of platforms that can support this target = String[] [ ];
     R4.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     R4.version// The Compatibility Key associated with this target = String undefined;
     R4.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4.getVersion// Get a target-specific Compatibility Key string() returns String
     R4.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4.alignDirectiveSupported = Bool true;
config R4.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7R4 --abi=eabi"
};
config R4.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=little -mv7R4 --abi=eabi"
};
config R4.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7R4 --strict_compatibility=on"
};
config R4.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4.name = String "R4";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4.suffix = String "er4";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
R4.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4.linkLib = String "rtsv7R4_A_le_eabi.lib";
config R4.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
R4.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4.asmName(String CName) returns String
R4.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:30 GMT


module ti.targets.arm.elf.R4F

metaonly module ti.targets.arm.elf.R4F
index URL

Cortex R4 little endian with floating point support (vfpv3d16) (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/R4F.xdc
var R4F = xdc.useModule('ti.targets.arm.elf.R4F');
module-wide constants & types
    var obj = new R4F.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4F.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4F.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4F.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4F.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4F.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4F.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4F.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4F.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4F.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4F.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4F.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4F.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4F.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4F.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
    };
    const R4F.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4F.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4F.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
    };
    const R4F.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4F.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7R4 --strict_compatibility=on"
    };
    const R4F.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const R4F.name// Nickname for this target = String "R4F";
    const R4F.os// Name of OS required to run programs built for this target = String computed value;
    const R4F.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4F.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const R4F.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4F.suffix// Suffix appended to all objs, libraries, and executable = String "er4f";
    const R4F.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4F.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4F.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4F.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4F.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     R4F.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4F.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4F.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4F.execExt// Extension for executables = String undefined;
     R4F.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4F.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4F.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_A_le_v3D16_eabi.lib";
     R4F.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4F.pathPrefix// A prefix to the PATH environment variable = String "";
     R4F.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4F.platforms// A set of platforms that can support this target = String[] [ ];
     R4F.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4F.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4F.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     R4F.version// The Compatibility Key associated with this target = String undefined;
     R4F.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4F.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4F.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4F.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4F.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4F.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4F.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4F.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4F.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4F.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4F.getVersion// Get a target-specific Compatibility Key string() returns String
     R4F.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4F.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4F.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4F.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4F.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4F.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4F.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4F.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4F.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4F.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4F.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4F.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4F.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4F.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4F.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4F.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4F.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4F.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4F.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4F.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4F.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4F.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4F.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4F.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4F.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4F.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4F.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4F.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4F.alignDirectiveSupported = Bool true;
config R4F.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4F.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4F.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4F.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
};
config R4F.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4F.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4F.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4F.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4F.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4F.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
};
config R4F.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4F.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4F.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4F.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7R4 --strict_compatibility=on"
};
config R4F.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4F.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4F.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4F.name = String "R4F";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4F.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4F.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4F.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4F.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4F.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4F.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4F.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4F.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4F.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4F.suffix = String "er4f";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4F.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4F.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4F.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4F.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4F.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4F.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4F.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4F.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4F.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
R4F.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4F.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4F.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4F.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4F.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4F.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4F.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4F.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4F.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4F.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4F.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4F.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4F.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4F.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4F.linkLib = String "rtsv7R4_A_le_v3D16_eabi.lib";
config R4F.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4F.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4F.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4F.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4F.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4F.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4F.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4F.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4F.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4F.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4F.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4F.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4F.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
R4F.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4F.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4F.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4F.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4F.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4F.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4F.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4F.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4F.asmName(String CName) returns String
R4F.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4F.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4F.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4F.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4F.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4F.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4F.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4F.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4F.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4F.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4F.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4F.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4F.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4F.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4F.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4F.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4F.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4F.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4F.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4F.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4F.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4F.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:30 GMT


module ti.targets.arm.elf.R4F

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== R4F.xdc ========
    14     *  Cortex R4 little endian with floating point support (vfpv3d16) (ELF)
    15     */
    16    metaonly module R4F inherits ti.targets.arm.elf.IR4 {
    17        override readonly config string name        = "R4F";
    18        override readonly config string suffix      = "er4f";
    19        override readonly config string rts         = "ti.targets.arm.rtsarm";
    20
    21        override readonly config xdc.bld.ITarget.Model model = {
    22            endian: "little",
    23            shortEnums: true
    24        };
    25
    26        override readonly config xdc.bld.ITarget2.Command cc = {
    27            cmd:  "cl470 -c",
    28            opts: "--float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
    29        };
    30
    31        override readonly config xdc.bld.ITarget2.Command asm = {
    32            cmd:  "cl470 -c",
    33            opts: "--float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
    34        };
    35
    36        /*!
    37         *  ======== linkLib ========
    38         *  Default TMS470 cgtools runtime library to link with executable
    39         *  (comes from $rootDir/lib)
    40         */
    41        config string linkLib = "rtsv7R4_A_le_v3D16_eabi.lib";
    42    }
    43    /*
    44     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    45
    46     */
    47


module ti.targets.arm.elf.R4Ft

metaonly module ti.targets.arm.elf.R4Ft
index URL

Cortex R4 little endian thumb2 with floating point support (vfpv3d16) (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/R4Ft.xdc
var R4Ft = xdc.useModule('ti.targets.arm.elf.R4Ft');
module-wide constants & types
    var obj = new R4Ft.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4Ft.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4Ft.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4Ft.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4Ft.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4Ft.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4Ft.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4Ft.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4Ft.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4Ft.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4Ft.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4Ft.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4Ft.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4Ft.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4Ft.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
    };
    const R4Ft.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4Ft.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4Ft.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
    };
    const R4Ft.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4Ft.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7R4 --strict_compatibility=on"
    };
    const R4Ft.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    const R4Ft.name// Nickname for this target = String "R4Ft";
    const R4Ft.os// Name of OS required to run programs built for this target = String computed value;
    const R4Ft.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4Ft.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const R4Ft.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4Ft.suffix// Suffix appended to all objs, libraries, and executable = String "er4ft";
    const R4Ft.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4Ft.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4Ft.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4Ft.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4Ft.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     R4Ft.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4Ft.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4Ft.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4Ft.execExt// Extension for executables = String undefined;
     R4Ft.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4Ft.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4Ft.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_T_le_v3D16_eabi.lib";
     R4Ft.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4Ft.pathPrefix// A prefix to the PATH environment variable = String "";
     R4Ft.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4Ft.platforms// A set of platforms that can support this target = String[] [ ];
     R4Ft.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4Ft.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4Ft.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     R4Ft.version// The Compatibility Key associated with this target = String undefined;
     R4Ft.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4Ft.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4Ft.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4Ft.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4Ft.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4Ft.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4Ft.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4Ft.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4Ft.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4Ft.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4Ft.getVersion// Get a target-specific Compatibility Key string() returns String
     R4Ft.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4Ft.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4Ft.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4Ft.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4Ft.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4Ft.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4Ft.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4Ft.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4Ft.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4Ft.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4Ft.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4Ft.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4Ft.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4Ft.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4Ft.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4Ft.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4Ft.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4Ft.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4Ft.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4Ft.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4Ft.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4Ft.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4Ft.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4Ft.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4Ft.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4Ft.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4Ft.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4Ft.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4Ft.alignDirectiveSupported = Bool true;
config R4Ft.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4Ft.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4Ft.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4Ft.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
};
config R4Ft.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4Ft.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4Ft.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4Ft.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4Ft.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4Ft.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
};
config R4Ft.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4Ft.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4Ft.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4Ft.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7R4 --strict_compatibility=on"
};
config R4Ft.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4Ft.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4Ft.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4Ft.name = String "R4Ft";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4Ft.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4Ft.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4Ft.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4Ft.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4Ft.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4Ft.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4Ft.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4Ft.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4Ft.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4Ft.suffix = String "er4ft";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4Ft.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4Ft.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4Ft.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4Ft.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4Ft.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4Ft.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4Ft.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4Ft.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4Ft.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
R4Ft.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4Ft.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4Ft.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4Ft.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4Ft.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4Ft.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4Ft.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4Ft.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4Ft.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4Ft.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4Ft.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4Ft.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4Ft.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4Ft.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4Ft.linkLib = String "rtsv7R4_T_le_v3D16_eabi.lib";
config R4Ft.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4Ft.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4Ft.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4Ft.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4Ft.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4Ft.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4Ft.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4Ft.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4Ft.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4Ft.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4Ft.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4Ft.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4Ft.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
R4Ft.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4Ft.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4Ft.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4Ft.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4Ft.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4Ft.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4Ft.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4Ft.asmName(String CName) returns String
R4Ft.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4Ft.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4Ft.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4Ft.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4Ft.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4Ft.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4Ft.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4Ft.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4Ft.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4Ft.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4Ft.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4Ft.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4Ft.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4Ft.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4Ft.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4Ft.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4Ft.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4Ft.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:31 GMT


module ti.targets.arm.elf.R4Ft

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== R4Ft.xdc ========
    14     *  Cortex R4 little endian thumb2 with floating point support (vfpv3d16) (ELF)
    15     */
    16    metaonly module R4Ft inherits ti.targets.arm.elf.IR4 {
    17        override readonly config string name        = "R4Ft";
    18        override readonly config string suffix      = "er4ft";
    19        override readonly config string rts         = "ti.targets.arm.rtsarm";
    20
    21        override readonly config xdc.bld.ITarget.Model model = {
    22            endian: "little",
    23            codeModel: "thumb2",
    24            shortEnums: true
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command cc = {
    28            cmd:  "cl470 -c",
    29            opts: "-mt --float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command asm = {
    33            cmd:  "cl470 -c",
    34            opts: "-mt --float_support=vfpv3d16 --endian=little -mv7R4 --abi=eabi"
    35        };
    36
    37        /*!
    38         *  ======== linkLib ========
    39         *  Default TMS470 cgtools runtime library to link with executable
    40         *  (comes from $rootDir/lib)
    41         */
    42        config string linkLib = "rtsv7R4_T_le_v3D16_eabi.lib";
    43    }
    44    /*
    45     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    46
    47     */
    48


module ti.targets.arm.elf.R4Ft_big_endian

metaonly module ti.targets.arm.elf.R4Ft_big_endian
index URL

Cortex R4 big endian thumb2 with floating point support (vfpv3d16) (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/R4Ft_big_endian.xdc
var R4Ft_big_endian = xdc.useModule('ti.targets.arm.elf.R4Ft_big_endian');
module-wide constants & types
    var obj = new R4Ft_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4Ft_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4Ft_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4Ft_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4Ft_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4Ft_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4Ft_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4Ft_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4Ft_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4Ft_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4Ft_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4Ft_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4Ft_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4Ft_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4Ft_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
    };
    const R4Ft_big_endian.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4Ft_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4Ft_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
    };
    const R4Ft_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4Ft_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
    };
    const R4Ft_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        codeModel: "thumb2",
        shortEnums: true
    };
    const R4Ft_big_endian.name// Nickname for this target = String "R4Ft_big_endian";
    const R4Ft_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const R4Ft_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4Ft_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const R4Ft_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4Ft_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "er4fte";
    const R4Ft_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4Ft_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4Ft_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4Ft_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4Ft_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     R4Ft_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4Ft_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4Ft_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4Ft_big_endian.execExt// Extension for executables = String undefined;
     R4Ft_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4Ft_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4Ft_big_endian.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_T_be_v3D16_eabi.lib";
     R4Ft_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4Ft_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     R4Ft_big_endian.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4Ft_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     R4Ft_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4Ft_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4Ft_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     R4Ft_big_endian.version// The Compatibility Key associated with this target = String undefined;
     R4Ft_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4Ft_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4Ft_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4Ft_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4Ft_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4Ft_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4Ft_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4Ft_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4Ft_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4Ft_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4Ft_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     R4Ft_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4Ft_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4Ft_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4Ft_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4Ft_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4Ft_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4Ft_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4Ft_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4Ft_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4Ft_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4Ft_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4Ft_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4Ft_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4Ft_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4Ft_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4Ft_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4Ft_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4Ft_big_endian.alignDirectiveSupported = Bool true;
config R4Ft_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4Ft_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4Ft_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4Ft_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
};
config R4Ft_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4Ft_big_endian.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4Ft_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4Ft_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4Ft_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4Ft_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
};
config R4Ft_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4Ft_big_endian.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4Ft_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4Ft_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
};
config R4Ft_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4Ft_big_endian.model = ITarget.Model {
    endian: "big",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4Ft_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4Ft_big_endian.name = String "R4Ft_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4Ft_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4Ft_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4Ft_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4Ft_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4Ft_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4Ft_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4Ft_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4Ft_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4Ft_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4Ft_big_endian.suffix = String "er4fte";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4Ft_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4Ft_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4Ft_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4Ft_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4Ft_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4Ft_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4Ft_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4Ft_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4Ft_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
R4Ft_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4Ft_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4Ft_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4Ft_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4Ft_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4Ft_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4Ft_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4Ft_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4Ft_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4Ft_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4Ft_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4Ft_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4Ft_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4Ft_big_endian.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4Ft_big_endian.linkLib = String "rtsv7R4_T_be_v3D16_eabi.lib";
config R4Ft_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4Ft_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4Ft_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4Ft_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4Ft_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4Ft_big_endian.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4Ft_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4Ft_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4Ft_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4Ft_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4Ft_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4Ft_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4Ft_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
R4Ft_big_endian.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4Ft_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4Ft_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4Ft_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4Ft_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4Ft_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4Ft_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4Ft_big_endian.asmName(String CName) returns String
R4Ft_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4Ft_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4Ft_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4Ft_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4Ft_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4Ft_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4Ft_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4Ft_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4Ft_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4Ft_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4Ft_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4Ft_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4Ft_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4Ft_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4Ft_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4Ft_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4Ft_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4Ft_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4Ft_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:31 GMT


module ti.targets.arm.elf.R4Ft_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== R4Ft_big_endian.xdc ========
    14     *  Cortex R4 big endian thumb2 with floating point support (vfpv3d16) (ELF)
    15     */
    16    metaonly module R4Ft_big_endian inherits ti.targets.arm.elf.IR4_big_endian {
    17        override readonly config string name        = "R4Ft_big_endian";
    18        override readonly config string suffix      = "er4fte";
    19        override readonly config string rts         = "ti.targets.arm.rtsarm";
    20
    21        override readonly config xdc.bld.ITarget.Model model = {
    22            endian: "big",
    23            codeModel: "thumb2",
    24            shortEnums: true
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command cc = {
    28            cmd:  "cl470 -c",
    29            opts: "-mt --float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command asm = {
    33            cmd:  "cl470 -c",
    34            opts: "-mt --float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
    35        };
    36
    37        /*!
    38         *  ======== linkLib ========
    39         *  Default TMS470 cgtools runtime library to link with executable
    40         *  (comes from $rootDir/lib)
    41         */
    42        config string linkLib = "rtsv7R4_T_be_v3D16_eabi.lib";
    43    }
    44    /*
    45     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    46
    47     */
    48


module ti.targets.arm.elf.R4F_big_endian

metaonly module ti.targets.arm.elf.R4F_big_endian
index URL

Cortex R4 big endian with floating point support (vfpv3d16) (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/R4F_big_endian.xdc
var R4F_big_endian = xdc.useModule('ti.targets.arm.elf.R4F_big_endian');
module-wide constants & types
    var obj = new R4F_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4F_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4F_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4F_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4F_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4F_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4F_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4F_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4F_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4F_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4F_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4F_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4F_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4F_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4F_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
    };
    const R4F_big_endian.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4F_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4F_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
    };
    const R4F_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4F_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
    };
    const R4F_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        shortEnums: true
    };
    const R4F_big_endian.name// Nickname for this target = String "R4F_big_endian";
    const R4F_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const R4F_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4F_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const R4F_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4F_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "er4fe";
    const R4F_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4F_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4F_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4F_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4F_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     R4F_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4F_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4F_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4F_big_endian.execExt// Extension for executables = String undefined;
     R4F_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4F_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4F_big_endian.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_A_be_v3D16_eabi.lib";
     R4F_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4F_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     R4F_big_endian.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4F_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     R4F_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4F_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4F_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     R4F_big_endian.version// The Compatibility Key associated with this target = String undefined;
     R4F_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4F_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4F_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4F_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4F_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4F_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4F_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4F_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4F_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4F_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4F_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     R4F_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4F_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4F_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4F_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4F_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4F_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4F_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4F_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4F_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4F_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4F_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4F_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4F_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4F_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4F_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4F_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4F_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4F_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4F_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4F_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4F_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4F_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4F_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4F_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4F_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4F_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4F_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4F_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4F_big_endian.alignDirectiveSupported = Bool true;
config R4F_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4F_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4F_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4F_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
};
config R4F_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4F_big_endian.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4F_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4F_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4F_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4F_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
};
config R4F_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4F_big_endian.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4F_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4F_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
};
config R4F_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4F_big_endian.model = ITarget.Model {
    endian: "big",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4F_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4F_big_endian.name = String "R4F_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4F_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4F_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4F_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4F_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4F_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4F_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4F_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4F_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4F_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4F_big_endian.suffix = String "er4fe";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4F_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4F_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4F_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4F_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4F_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4F_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4F_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4F_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4F_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
R4F_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4F_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4F_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4F_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4F_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4F_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4F_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4F_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4F_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4F_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4F_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4F_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4F_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4F_big_endian.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4F_big_endian.linkLib = String "rtsv7R4_A_be_v3D16_eabi.lib";
config R4F_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4F_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4F_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4F_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4F_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4F_big_endian.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4F_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4F_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4F_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4F_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4F_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4F_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4F_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
R4F_big_endian.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4F_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4F_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4F_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4F_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4F_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4F_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4F_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4F_big_endian.asmName(String CName) returns String
R4F_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4F_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4F_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4F_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4F_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4F_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4F_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4F_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4F_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4F_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4F_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4F_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4F_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4F_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4F_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4F_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4F_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4F_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4F_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4F_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4F_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4F_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:31 GMT


module ti.targets.arm.elf.R4F_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== R4F_big_endian.xdc ========
    14     *  Cortex R4 big endian with floating point support (vfpv3d16) (ELF)
    15     */
    16    metaonly module R4F_big_endian inherits ti.targets.arm.elf.IR4_big_endian {
    17        override readonly config string name        = "R4F_big_endian";
    18        override readonly config string suffix      = "er4fe";
    19        override readonly config string rts         = "ti.targets.arm.rtsarm";
    20
    21        override readonly config xdc.bld.ITarget.Model model = {
    22            endian: "big",
    23            shortEnums: true
    24        };
    25
    26        override readonly config xdc.bld.ITarget2.Command cc = {
    27            cmd:  "cl470 -c",
    28            opts: "--float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
    29        };
    30
    31        override readonly config xdc.bld.ITarget2.Command asm = {
    32            cmd:  "cl470 -c",
    33            opts: "--float_support=vfpv3d16 --endian=big -mv7R4 --abi=eabi"
    34        };
    35
    36        /*!
    37         *  ======== linkLib ========
    38         *  Default TMS470 cgtools runtime library to link with executable
    39         *  (comes from $rootDir/lib)
    40         */
    41        config string linkLib = "rtsv7R4_A_be_v3D16_eabi.lib";
    42    }
    43    /*
    44     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    45
    46     */
    47


module ti.targets.arm.elf.R4t

metaonly module ti.targets.arm.elf.R4t
index URL

Cortex R4 little endian thumb2 (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/R4t.xdc
var R4t = xdc.useModule('ti.targets.arm.elf.R4t');
module-wide constants & types
    var obj = new R4t.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4t.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4t.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4t.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4t.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4t.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4t.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4t.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4t.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4t.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4t.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4t.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4t.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4t.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4t.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --endian=little -mv7R4 --abi=eabi"
    };
    const R4t.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4t.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4t.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --endian=little -mv7R4 --abi=eabi"
    };
    const R4t.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4t.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--silicon_version=7R4 --strict_compatibility=on"
    };
    const R4t.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "thumb2",
        shortEnums: true
    };
    const R4t.name// Nickname for this target = String "R4t";
    const R4t.os// Name of OS required to run programs built for this target = String computed value;
    const R4t.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4t.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const R4t.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4t.suffix// Suffix appended to all objs, libraries, and executable = String "er4t";
    const R4t.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4t.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4t.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4t.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4t.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     R4t.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4t.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4t.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4t.execExt// Extension for executables = String undefined;
     R4t.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4t.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4t.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_T_le_eabi.lib";
     R4t.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4t.pathPrefix// A prefix to the PATH environment variable = String "";
     R4t.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4t.platforms// A set of platforms that can support this target = String[] [ ];
     R4t.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4t.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4t.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     R4t.version// The Compatibility Key associated with this target = String undefined;
     R4t.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4t.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4t.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4t.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4t.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4t.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4t.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4t.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4t.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4t.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4t.getVersion// Get a target-specific Compatibility Key string() returns String
     R4t.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4t.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4t.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4t.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4t.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4t.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4t.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4t.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4t.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4t.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4t.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4t.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4t.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4t.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4t.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4t.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4t.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4t.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4t.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4t.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4t.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4t.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4t.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4t.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4t.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4t.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4t.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4t.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4t.alignDirectiveSupported = Bool true;
config R4t.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4t.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4t.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4t.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --endian=little -mv7R4 --abi=eabi"
};
config R4t.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4t.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4t.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4t.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4t.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4t.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --endian=little -mv7R4 --abi=eabi"
};
config R4t.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4t.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4t.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4t.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--silicon_version=7R4 --strict_compatibility=on"
};
config R4t.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4t.model = ITarget.Model {
    endian: "little",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4t.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4t.name = String "R4t";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4t.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4t.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4t.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4t.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4t.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4t.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4t.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4t.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4t.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4t.suffix = String "er4t";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4t.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4t.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4t.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4t.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4t.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4t.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4t.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4t.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4t.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
R4t.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4t.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4t.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4t.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4t.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4t.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4t.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4t.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4t.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4t.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4t.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4t.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4t.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4t.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4t.linkLib = String "rtsv7R4_T_le_eabi.lib";
config R4t.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4t.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4t.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4t.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4t.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4t.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4t.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4t.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4t.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4t.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4t.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4t.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4t.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
R4t.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4t.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4t.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4t.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4t.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4t.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4t.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4t.asmName(String CName) returns String
R4t.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4t.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4t.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4t.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4t.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4t.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4t.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4t.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4t.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4t.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4t.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4t.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4t.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4t.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4t.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4t.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4t.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4t.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4t.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4t.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:32 GMT


module ti.targets.arm.elf.R4t

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== R4t.xdc ========
    15     *  Cortex R4 little endian thumb2 (ELF)
    16     */
    17    metaonly module R4t inherits ti.targets.arm.elf.IR4 {
    18        override readonly config string name        = "R4t";
    19        override readonly config string suffix      = "er4t";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "little",
    24            codeModel: "thumb2",
    25            shortEnums: true
    26        };
    27
    28        override readonly config xdc.bld.ITarget2.Command cc = {
    29            cmd:  "cl470 -c",
    30            opts: "-mt --endian=little -mv7R4 --abi=eabi"
    31        };
    32
    33        override readonly config xdc.bld.ITarget2.Command asm = {
    34            cmd:  "cl470 -c",
    35            opts: "-mt --endian=little -mv7R4 --abi=eabi"
    36        };
    37
    38        /*!
    39         *  ======== linkLib ========
    40         *  Default TMS470 cgtools runtime library to link with executable
    41         *  (comes from $rootDir/lib)
    42         */
    43        config string linkLib = "rtsv7R4_T_le_eabi.lib";
    44    }
    45    /*
    46     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    47
    48     */
    49


module ti.targets.arm.elf.R4t_big_endian

metaonly module ti.targets.arm.elf.R4t_big_endian
index URL

Cortex R4 big endian thumb2 (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/R4t_big_endian.xdc
var R4t_big_endian = xdc.useModule('ti.targets.arm.elf.R4t_big_endian');
module-wide constants & types
    var obj = new R4t_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4t_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4t_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4t_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4t_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4t_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4t_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4t_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4t_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4t_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4t_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4t_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4t_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4t_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4t_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --endian=big -mv7R4 --abi=eabi"
    };
    const R4t_big_endian.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4t_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4t_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "-mt --endian=big -mv7R4 --abi=eabi"
    };
    const R4t_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4t_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
    };
    const R4t_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        codeModel: "thumb2",
        shortEnums: true
    };
    const R4t_big_endian.name// Nickname for this target = String "R4t_big_endian";
    const R4t_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const R4t_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4t_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const R4t_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4t_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "er4te";
    const R4t_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4t_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4t_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4t_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4t_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     R4t_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4t_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4t_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4t_big_endian.execExt// Extension for executables = String undefined;
     R4t_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4t_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4t_big_endian.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_T_be_eabi.lib";
     R4t_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4t_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     R4t_big_endian.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4t_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     R4t_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4t_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4t_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     R4t_big_endian.version// The Compatibility Key associated with this target = String undefined;
     R4t_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4t_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4t_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4t_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4t_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4t_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4t_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4t_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4t_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4t_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4t_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     R4t_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4t_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4t_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4t_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4t_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4t_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4t_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4t_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4t_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4t_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4t_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4t_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4t_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4t_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4t_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4t_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4t_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4t_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4t_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4t_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4t_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4t_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4t_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4t_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4t_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4t_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4t_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4t_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4t_big_endian.alignDirectiveSupported = Bool true;
config R4t_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4t_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4t_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4t_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --endian=big -mv7R4 --abi=eabi"
};
config R4t_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4t_big_endian.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4t_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4t_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4t_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4t_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "-mt --endian=big -mv7R4 --abi=eabi"
};
config R4t_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4t_big_endian.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4t_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4t_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
};
config R4t_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4t_big_endian.model = ITarget.Model {
    endian: "big",
    codeModel: "thumb2",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4t_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4t_big_endian.name = String "R4t_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4t_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4t_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4t_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4t_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4t_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4t_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4t_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4t_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4t_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4t_big_endian.suffix = String "er4te";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4t_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4t_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4t_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4t_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4t_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4t_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4t_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4t_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4t_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
R4t_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4t_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4t_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4t_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4t_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4t_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4t_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4t_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4t_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4t_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4t_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4t_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4t_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4t_big_endian.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4t_big_endian.linkLib = String "rtsv7R4_T_be_eabi.lib";
config R4t_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4t_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4t_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4t_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4t_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4t_big_endian.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4t_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4t_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4t_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4t_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4t_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4t_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4t_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
R4t_big_endian.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4t_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4t_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4t_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4t_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4t_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4t_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4t_big_endian.asmName(String CName) returns String
R4t_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4t_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4t_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4t_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4t_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4t_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4t_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4t_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4t_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4t_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4t_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4t_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4t_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4t_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4t_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4t_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4t_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4t_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:32 GMT


module ti.targets.arm.elf.R4t_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== R4t_big_endian.xdc ========
    15     *  Cortex R4 big endian thumb2 (ELF)
    16     */
    17    metaonly module R4t_big_endian inherits ti.targets.arm.elf.IR4_big_endian {
    18        override readonly config string name        = "R4t_big_endian";
    19        override readonly config string suffix      = "er4te";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "big",
    24            codeModel: "thumb2",
    25            shortEnums: true
    26        };
    27
    28        override readonly config xdc.bld.ITarget2.Command cc = {
    29            cmd:  "cl470 -c",
    30            opts: "-mt --endian=big -mv7R4 --abi=eabi"
    31        };
    32
    33        override readonly config xdc.bld.ITarget2.Command asm = {
    34            cmd:  "cl470 -c",
    35            opts: "-mt --endian=big -mv7R4 --abi=eabi"
    36        };
    37
    38        /*!
    39         *  ======== linkLib ========
    40         *  Default TMS470 cgtools runtime library to link with executable
    41         *  (comes from $rootDir/lib)
    42         */
    43        config string linkLib = "rtsv7R4_T_be_eabi.lib";
    44    }
    45    /*
    46     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    47
    48     */
    49


module ti.targets.arm.elf.R4_big_endian

metaonly module ti.targets.arm.elf.R4_big_endian
index URL

Cortex R4 big endian thumb2 (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arm/elf/R4_big_endian.xdc
var R4_big_endian = xdc.useModule('ti.targets.arm.elf.R4_big_endian');
module-wide constants & types
    var obj = new R4_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new R4_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new R4_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new R4_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new R4_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new R4_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new R4_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new R4_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new R4_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new R4_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new R4_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new R4_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const R4_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const R4_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const R4_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=big -mv7R4 --abi=eabi"
    };
    const R4_big_endian.base// A target that this target is based upon = ITarget.Module Arm9.module;
    const R4_big_endian.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const R4_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: "--endian=big -mv7R4 --abi=eabi"
    };
    const R4_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "v7R";
    const R4_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
    };
    const R4_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        shortEnums: true
    };
    const R4_big_endian.name// Nickname for this target = String "R4_big_endian";
    const R4_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const R4_big_endian.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const R4_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".init_array",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ]
    ];
    const R4_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const R4_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "er4e";
    const R4_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     R4_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     R4_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     R4_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     R4_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
        suffix: "$(ccOpts.suffix)"
    };
     R4_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     R4_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     R4_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     R4_big_endian.execExt// Extension for executables = String undefined;
     R4_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     R4_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     R4_big_endian.linkLib// Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib) = String "rtsv7R4_A_be_eabi.lib";
     R4_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     R4_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     R4_big_endian.platform// The default platform name for this target = String "ti.platforms.evmTMS570";
     R4_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     R4_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     R4_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     R4_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/arm/elf/std.h";
     R4_big_endian.version// The Compatibility Key associated with this target = String undefined;
     R4_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     R4_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     R4_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     R4_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     R4_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     R4_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     R4_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     R4_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     R4_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     R4_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     R4_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     R4_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct R4_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new R4_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct R4_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new R4_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct R4_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new R4_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct R4_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new R4_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct R4_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new R4_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct R4_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new R4_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct R4_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new R4_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct R4_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new R4_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct R4_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new R4_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct R4_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new R4_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct R4_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new R4_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct R4_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new R4_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config R4_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const R4_big_endian.alignDirectiveSupported = Bool true;
config R4_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const R4_big_endian.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config R4_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const R4_big_endian.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=big -mv7R4 --abi=eabi"
};
config R4_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const R4_big_endian.base = ITarget.Module Arm9.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config R4_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const R4_big_endian.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config R4_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const R4_big_endian.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: "--endian=big -mv7R4 --abi=eabi"
};
config R4_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const R4_big_endian.isa = String "v7R";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config R4_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const R4_big_endian.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: "--abi=eabi --be32 --silicon_version=7R4 --strict_compatibility=on"
};
config R4_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const R4_big_endian.model = ITarget.Model {
    endian: "big",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config R4_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const R4_big_endian.name = String "R4_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config R4_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const R4_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config R4_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const R4_big_endian.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config R4_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const R4_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".init_array",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config R4_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const R4_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config R4_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const R4_big_endian.suffix = String "er4e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config R4_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const R4_big_endian.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config R4_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
R4_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config R4_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
R4_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config R4_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
R4_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config R4_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file. ---fp_mode=strict disable conversion of double-precision computations to single-precision computations when the result is assigned to a single-precision variable

XDCscript usage meta-domain
R4_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms --fp_mode=strict",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config R4_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
R4_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config R4_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
R4_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config R4_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
R4_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config R4_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
R4_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config R4_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
R4_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config R4_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
R4_big_endian.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config R4_big_endian.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with executable (comes from $rootDir/lib)

XDCscript usage meta-domain
R4_big_endian.linkLib = String "rtsv7R4_A_be_eabi.lib";
config R4_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
R4_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config R4_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
R4_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config R4_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
R4_big_endian.platform = String "ti.platforms.evmTMS570";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config R4_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
R4_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config R4_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
R4_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config R4_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
R4_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config R4_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
R4_big_endian.stdInclude = String "ti/targets/arm/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config R4_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
R4_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config R4_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
R4_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
R4_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
R4_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
R4_big_endian.asmName(String CName) returns String
R4_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
R4_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
R4_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
R4_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
R4_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
R4_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
R4_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
R4_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
R4_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
R4_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
R4_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
R4_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
R4_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
R4_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
R4_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
R4_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
R4_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:31 GMT


module ti.targets.arm.elf.R4_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== R4_big_endian.xdc ========
    15     *  Cortex R4 big endian thumb2 (ELF)
    16     */
    17    metaonly module R4_big_endian inherits ti.targets.arm.elf.IR4_big_endian {
    18        override readonly config string name        = "R4_big_endian";
    19        override readonly config string suffix      = "er4e";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "big",
    24            shortEnums: true
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command cc = {
    28            cmd:  "cl470 -c",
    29            opts: "--endian=big -mv7R4 --abi=eabi"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command asm = {
    33            cmd:  "cl470 -c",
    34            opts: "--endian=big -mv7R4 --abi=eabi"
    35        };
    36
    37        /*!
    38         *  ======== linkLib ========
    39         *  Default TMS470 cgtools runtime library to link with executable
    40         *  (comes from $rootDir/lib)
    41         */
    42        config string linkLib = "rtsv7R4_A_be_eabi.lib";
    43    }
    44    /*
    45     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    46
    47     */
    48


package ti.targets.arm.rtsarm
index URL

Runtime support package for all Arm targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in ti/targets/arm/rtsarm/package.xdc
requires xdc.runtime;
package ti.targets.arm.rtsarm [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:08 GMT


package ti.targets.arm.rtsarm

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== ti.targets.arm.rtsarm ========
    16     *  Runtime support package for all Arm targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package ti.targets.arm.rtsarm [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) ti.targets.arm.rtsarm; 1, 0, 0, 0,176; 11-4-2012 21:52:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package ti.targets.arp32.elf
index URL

Package of targets for TI code generation tools for ARP32

XDCspec declarations sourced in ti/targets/arp32/elf/package.xdc
requires xdc.bld;
package ti.targets.arp32.elf [1, 0, 0] {
    module ARP32;
    // TI ARP32 default runtime model (little endian)
    module ARP32_far;
    // TI ARP32 default runtime model (little endian)
}
generated on Thu, 08 Nov 2012 02:14:41 GMT


package ti.targets.arp32.elf

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires xdc.bld;
    19
    20    /*!
    21     *  ======== ti.targets.arp32.elf ========
    22     *  Package of targets for TI code generation tools for ARP32
    23     *
    24     */
    25    package ti.targets.arp32.elf [1,0,0] {
    26        module ARP32, ARP32_far;
    27    }
    28    /*
    29     *  @(#) ti.targets.arp32.elf; 1, 0, 0,92; 11-4-2012 21:21:31; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    30
    31     */
    32


module ti.targets.arp32.elf.ARP32

metaonly module ti.targets.arp32.elf.ARP32
index URL

TI ARP32 default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arp32/elf/ARP32.xdc
var ARP32 = xdc.useModule('ti.targets.arp32.elf.ARP32');
module-wide constants & types
    var obj = new ARP32.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new ARP32.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new ARP32.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new ARP32.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new ARP32.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new ARP32.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new ARP32.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new ARP32.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new ARP32.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new ARP32.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new ARP32.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new ARP32.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const ARP32.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const ARP32.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar-arp32",
        opts: "rq"
    };
    const ARP32.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl-arp32 -c --gen_func_subsections",
        opts: "--silicon_version=v210"
    };
    const ARP32.base// A target that this target is based upon = ITarget.Module computed value;
    const ARP32.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const ARP32.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl-arp32 -c --gen_func_subsections",
        opts: "--silicon_version=v210"
    };
    const ARP32.isa// CPU Instruction Set Architecture (ISA) = String "arp32";
    const ARP32.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk-arp32",
        opts: ""
    };
    const ARP32.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const ARP32.name// Nickname for this target = String "ARP32";
    const ARP32.os// Name of OS required to run programs built for this target = String computed value;
    const ARP32.rts// Name of a run-time support package to include = String "ti.targets.arp32.rts";
    const ARP32.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".rodata",
            "data"
        ]
    ];
    const ARP32.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const ARP32.suffix// Suffix appended to all objs, libraries, and executable = String "earp32";
    const ARP32.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl-arp32",
        opts: "--compiler_revision"
    };
     ARP32.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     ARP32.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     ARP32.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     ARP32.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     ARP32.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     ARP32.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     ARP32.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     ARP32.execExt// Extension for executables = String undefined;
     ARP32.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     ARP32.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     ARP32.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtsarp32_v200.lib"
    };
     ARP32.pathPrefix// A prefix to the PATH environment variable = String "";
     ARP32.platform// The default platform name for this target = String "ti.platforms.simARP32";
     ARP32.platforms// A set of platforms that can support this target = String[] [ ];
     ARP32.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ]
    ];
     ARP32.rootDir// Installation directory for this target's code generation tools = String undefined;
     ARP32.stdInclude// Standard C/C++ types header = String "ti/targets/arp32/elf/std.h";
     ARP32.version// The Compatibility Key associated with this target = String undefined;
     ARP32.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ARP32.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     ARP32.asmName// The function that converts a C name into an assembly name(String CName) returns String
     ARP32.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     ARP32.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     ARP32.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     ARP32.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     ARP32.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     ARP32.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     ARP32.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     ARP32.getVersion// Get a target-specific Compatibility Key string() returns String
     ARP32.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     ARP32.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     ARP32.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct ARP32.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new ARP32.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct ARP32.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new ARP32.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct ARP32.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new ARP32.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ARP32.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new ARP32.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct ARP32.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new ARP32.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ARP32.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new ARP32.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ARP32.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new ARP32.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ARP32.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new ARP32.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct ARP32.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new ARP32.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ARP32.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new ARP32.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ARP32.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new ARP32.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct ARP32.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new ARP32.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config ARP32.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const ARP32.alignDirectiveSupported = Bool true;
config ARP32.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const ARP32.ar = ITarget2.Command {
    cmd: "ar-arp32",
    opts: "rq"
};
config ARP32.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const ARP32.asm = ITarget2.Command {
    cmd: "cl-arp32 -c --gen_func_subsections",
    opts: "--silicon_version=v210"
};
config ARP32.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const ARP32.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ARP32.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const ARP32.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ARP32.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const ARP32.cc = ITarget2.Command {
    cmd: "cl-arp32 -c --gen_func_subsections",
    opts: "--silicon_version=v210"
};
config ARP32.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const ARP32.isa = String "arp32";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ARP32.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const ARP32.lnk = ITarget2.Command {
    cmd: "lnk-arp32",
    opts: ""
};
config ARP32.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const ARP32.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ARP32.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const ARP32.name = String "ARP32";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ARP32.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const ARP32.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ARP32.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const ARP32.rts = String "ti.targets.arp32.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ARP32.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const ARP32.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".rodata",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ARP32.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const ARP32.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config ARP32.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const ARP32.suffix = String "earp32";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ARP32.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const ARP32.vers = ITarget2.Command {
    cmd: "cl-arp32",
    opts: "--compiler_revision"
};
config ARP32.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
ARP32.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config ARP32.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
ARP32.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config ARP32.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
ARP32.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config ARP32.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
ARP32.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config ARP32.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
ARP32.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config ARP32.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
ARP32.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ARP32.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
ARP32.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config ARP32.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
ARP32.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ARP32.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
ARP32.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config ARP32.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
ARP32.includeOpts = String "-I$(rootDir)/include";
config ARP32.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
ARP32.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtsarp32_v200.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config ARP32.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
ARP32.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config ARP32.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
ARP32.platform = String "ti.platforms.simARP32";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ARP32.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
ARP32.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ARP32.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
ARP32.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ARP32.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
ARP32.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ARP32.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
ARP32.stdInclude = String "ti/targets/arp32/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ARP32.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
ARP32.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config ARP32.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
ARP32.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
ARP32.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
ARP32.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ARP32.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
ARP32.asmName(String CName) returns String
ARP32.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
ARP32.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ARP32.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
ARP32.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ARP32.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
ARP32.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ARP32.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
ARP32.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ARP32.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
ARP32.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
ARP32.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
ARP32.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
ARP32.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
ARP32.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ARP32.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
ARP32.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ARP32.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
ARP32.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ARP32.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
ARP32.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ARP32.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
ARP32.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:40 GMT


module ti.targets.arp32.elf.ARP32

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== ARP32.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== ARP32 ========
    19     *  TI ARP32 default runtime model (little endian)
    20     */
    21    metaonly module ARP32 inherits ti.targets.ITarget {
    22        override readonly config string name            = "ARP32";
    23        override readonly config string suffix          = "earp32";
    24        override readonly config string isa             = "arp32";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27            shortEnums: true
    28        };
    29        override readonly config string rts = "ti.targets.arp32.rts";
    30        override config string platform     = "ti.platforms.simARP32";
    31
    32        override readonly config xdc.bld.ITarget2.Command ar = {
    33            cmd: "ar-arp32",
    34            opts: "rq"
    35        };
    36
    37        override readonly config xdc.bld.ITarget2.Command cc = {
    38            cmd: "cl-arp32 -c --gen_func_subsections",
    39            opts: "--silicon_version=v210"
    40        };
    41
    42        override readonly config xdc.bld.ITarget2.Command asm = {
    43            cmd: "cl-arp32 -c --gen_func_subsections",
    44            opts: "--silicon_version=v210"
    45        };
    46
    47        override readonly config xdc.bld.ITarget2.Command lnk = {
    48            cmd: "lnk-arp32",
    49            opts: ""
    50        };
    51
    52        override readonly config xdc.bld.ITarget2.Command vers = {
    53            cmd: "cl-arp32",
    54            opts: "--compiler_revision"
    55        };
    56
    57        /*!
    58         *  ======== asmOpts ========
    59         *  User configurable assembler options.
    60         *
    61         *  Defaults:
    62         *  @p(dlist)
    63         *      -`-qq`
    64         *          super quiet mode
    65         */
    66        override config xdc.bld.ITarget2.Options asmOpts = {
    67            prefix: "-qq",
    68            suffix: ""
    69        };
    70
    71        /*!
    72         *  ======== ccOpts ========
    73         *  User configurable compiler options.
    74         *
    75         *  Defaults:
    76         *  @p(dlist)
    77         *      -`-qq`
    78         *          super quiet mode
    79         *      -`-pdsw225`
    80         *          generate a warning for implicitly declared functions; i.e.,
    81         *          functions without prototypes
    82         */
    83        override config xdc.bld.ITarget2.Options ccOpts = {
    84            prefix: "-qq -pdsw225",
    85            suffix: ""
    86        };
    87
    88        /*!
    89         *  ======== ccConfigOpts ========
    90         *  User configurable compiler options for the generated config C file.
    91         */
    92        override config xdc.bld.ITarget2.Options ccConfigOpts = {
    93            prefix: "$(ccOpts.prefix)",
    94            suffix: "$(ccOpts.suffix)"
    95        };
    96
    97        /*!
    98         *  ======== lnkOpts ========
    99         *  User configurable linker options.
   100         *
   101         *  Defaults:
   102         *  @p(dlist)
   103         *      -`-w`
   104         *          Display linker warnings
   105         *      -`-q`
   106         *          Quite run
   107         *      -`-u`
   108         *          Place unresolved external symbol into symbol table
   109         *      -`-c`
   110         *          ROM autoinitialization model
   111         *      -`-m`
   112         *          create a map file
   113         *      -`-l`
   114         *          archive library file as linker input
   115         */
   116        override config xdc.bld.ITarget2.Options lnkOpts = {
   117            prefix: "-w -q -u _c_int00",
   118            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtsarp32_v200.lib"
   119        };
   120
   121        override config string includeOpts = "-I$(rootDir)/include";
   122
   123        final override readonly config string sectMap[string] = [
   124            [".text", "code"],
   125            [".stack", "stack"],
   126            [".bss", "data"],
   127            [".cinit", "data"],
   128            [".init_array", "data"],
   129            [".const", "data"],
   130            [".data", "data"],
   131            [".switch", "data"],
   132            [".sysmem", "data"],
   133            [".far", "data"],
   134            [".args", "data"],
   135            [".cio", "data"],
   136            [".fardata", "data"],
   137            [".rodata", "data"],
   138        ];
   139
   140        override readonly config Int bitsPerChar = 8;
   141
   142        /*!
   143         *  ======== profiles ========
   144         *  Standard options profiles for the TI tool-chain.
   145         */
   146        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   147            ["debug", {
   148                compileOpts: {
   149                    copts: "--symdebug:dwarf",
   150                    defs:  "-D_DEBUG_=1",
   151                }
   152            }],
   153            ["release", {
   154                compileOpts: {
   155                    copts: "-O2",
   156                },
   157            }],
   158            ["profile", {
   159                compileOpts: {
   160                    copts: "--symdebug:dwarf",
   161                },
   162            }],
   163            ["coverage", {
   164                compileOpts: {
   165                    copts: "--symdebug:dwarf",
   166                },
   167            }]
   168        ];
   169
   170        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   171            t_IArg          : { size: 4, align: 4 },
   172            t_Char          : { size: 1, align: 1 },
   173            t_Double        : { size: 8, align: 4 },
   174            t_Float         : { size: 4, align: 4 },
   175            t_Fxn           : { size: 4, align: 4 },
   176            t_Int           : { size: 4, align: 4 },
   177            t_Int8          : { size: 1, align: 1 },
   178            t_Int16         : { size: 2, align: 2 },
   179            t_Int32         : { size: 4, align: 4 },
   180            t_Int64         : { size: 8, align: 4 },
   181            t_Long          : { size: 4, align: 4 },
   182            t_LDouble       : { size: 8, align: 4 },
   183            t_LLong         : { size: 8, align: 4 },
   184            t_Ptr           : { size: 4, align: 4 },
   185            t_Short         : { size: 2, align: 2 },
   186            t_Size          : { size: 4, align: 4 },
   187        };
   188
   189        override config String stdInclude = "ti/targets/arp32/elf/std.h";
   190
   191        override config String binaryParser = "ti.targets.omf.elf.Elf32";
   192    }
   193
   194    /*
   195     *  @(#) ti.targets.arp32.elf; 1, 0, 0,92; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   196
   197     */
   198


module ti.targets.arp32.elf.ARP32_far

metaonly module ti.targets.arp32.elf.ARP32_far
index URL

TI ARP32 default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/arp32/elf/ARP32_far.xdc
var ARP32_far = xdc.useModule('ti.targets.arp32.elf.ARP32_far');
module-wide constants & types
    var obj = new ARP32_far.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new ARP32_far.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new ARP32_far.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new ARP32_far.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new ARP32_far.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new ARP32_far.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new ARP32_far.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new ARP32_far.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new ARP32_far.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new ARP32_far.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new ARP32_far.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new ARP32_far.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const ARP32_far.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const ARP32_far.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar-arp32",
        opts: "rq"
    };
    const ARP32_far.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl-arp32 -c --gen_func_subsections",
        opts: "--mem_model:data=far --silicon_version=v210"
    };
    const ARP32_far.base// A target that this target is based upon = ITarget.Module computed value;
    const ARP32_far.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const ARP32_far.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl-arp32 -c --gen_func_subsections",
        opts: "--mem_model:data=far --silicon_version=v210"
    };
    const ARP32_far.isa// CPU Instruction Set Architecture (ISA) = String "arp32";
    const ARP32_far.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk-arp32",
        opts: ""
    };
    const ARP32_far.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const ARP32_far.name// Nickname for this target = String "ARP32_far";
    const ARP32_far.os// Name of OS required to run programs built for this target = String computed value;
    const ARP32_far.rts// Name of a run-time support package to include = String "ti.targets.arp32.rts";
    const ARP32_far.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".rodata",
            "data"
        ]
    ];
    const ARP32_far.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const ARP32_far.suffix// Suffix appended to all objs, libraries, and executable = String "earp32F";
    const ARP32_far.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl-arp32",
        opts: "--compiler_revision"
    };
     ARP32_far.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     ARP32_far.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     ARP32_far.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     ARP32_far.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     ARP32_far.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     ARP32_far.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     ARP32_far.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     ARP32_far.execExt// Extension for executables = String undefined;
     ARP32_far.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     ARP32_far.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     ARP32_far.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtsarp32_v200.lib"
    };
     ARP32_far.pathPrefix// A prefix to the PATH environment variable = String "";
     ARP32_far.platform// The default platform name for this target = String "ti.platforms.simARP32";
     ARP32_far.platforms// A set of platforms that can support this target = String[] [ ];
     ARP32_far.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ]
    ];
     ARP32_far.rootDir// Installation directory for this target's code generation tools = String undefined;
     ARP32_far.stdInclude// Standard C/C++ types header = String "ti/targets/arp32/elf/std.h";
     ARP32_far.version// The Compatibility Key associated with this target = String undefined;
     ARP32_far.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ARP32_far.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     ARP32_far.asmName// The function that converts a C name into an assembly name(String CName) returns String
     ARP32_far.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     ARP32_far.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     ARP32_far.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     ARP32_far.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     ARP32_far.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     ARP32_far.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     ARP32_far.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     ARP32_far.getVersion// Get a target-specific Compatibility Key string() returns String
     ARP32_far.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     ARP32_far.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     ARP32_far.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct ARP32_far.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new ARP32_far.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct ARP32_far.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new ARP32_far.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct ARP32_far.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new ARP32_far.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ARP32_far.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new ARP32_far.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct ARP32_far.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new ARP32_far.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ARP32_far.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new ARP32_far.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ARP32_far.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new ARP32_far.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ARP32_far.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new ARP32_far.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct ARP32_far.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new ARP32_far.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ARP32_far.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new ARP32_far.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ARP32_far.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new ARP32_far.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct ARP32_far.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new ARP32_far.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config ARP32_far.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const ARP32_far.alignDirectiveSupported = Bool true;
config ARP32_far.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const ARP32_far.ar = ITarget2.Command {
    cmd: "ar-arp32",
    opts: "rq"
};
config ARP32_far.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const ARP32_far.asm = ITarget2.Command {
    cmd: "cl-arp32 -c --gen_func_subsections",
    opts: "--mem_model:data=far --silicon_version=v210"
};
config ARP32_far.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const ARP32_far.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ARP32_far.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const ARP32_far.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ARP32_far.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const ARP32_far.cc = ITarget2.Command {
    cmd: "cl-arp32 -c --gen_func_subsections",
    opts: "--mem_model:data=far --silicon_version=v210"
};
config ARP32_far.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const ARP32_far.isa = String "arp32";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ARP32_far.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const ARP32_far.lnk = ITarget2.Command {
    cmd: "lnk-arp32",
    opts: ""
};
config ARP32_far.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const ARP32_far.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ARP32_far.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const ARP32_far.name = String "ARP32_far";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ARP32_far.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const ARP32_far.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ARP32_far.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const ARP32_far.rts = String "ti.targets.arp32.rts";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ARP32_far.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const ARP32_far.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".rodata",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ARP32_far.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const ARP32_far.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config ARP32_far.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const ARP32_far.suffix = String "earp32F";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ARP32_far.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const ARP32_far.vers = ITarget2.Command {
    cmd: "cl-arp32",
    opts: "--compiler_revision"
};
config ARP32_far.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
ARP32_far.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config ARP32_far.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
ARP32_far.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config ARP32_far.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
ARP32_far.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config ARP32_far.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
ARP32_far.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config ARP32_far.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
ARP32_far.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config ARP32_far.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
ARP32_far.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ARP32_far.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
ARP32_far.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config ARP32_far.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
ARP32_far.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ARP32_far.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
ARP32_far.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config ARP32_far.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
ARP32_far.includeOpts = String "-I$(rootDir)/include";
config ARP32_far.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
ARP32_far.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtsarp32_v200.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config ARP32_far.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
ARP32_far.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config ARP32_far.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
ARP32_far.platform = String "ti.platforms.simARP32";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ARP32_far.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
ARP32_far.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ARP32_far.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
ARP32_far.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ARP32_far.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
ARP32_far.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ARP32_far.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
ARP32_far.stdInclude = String "ti/targets/arp32/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ARP32_far.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
ARP32_far.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config ARP32_far.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
ARP32_far.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
ARP32_far.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
ARP32_far.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ARP32_far.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
ARP32_far.asmName(String CName) returns String
ARP32_far.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
ARP32_far.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ARP32_far.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
ARP32_far.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ARP32_far.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
ARP32_far.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ARP32_far.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
ARP32_far.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ARP32_far.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
ARP32_far.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
ARP32_far.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
ARP32_far.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
ARP32_far.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
ARP32_far.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ARP32_far.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
ARP32_far.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ARP32_far.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
ARP32_far.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ARP32_far.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
ARP32_far.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ARP32_far.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
ARP32_far.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:41 GMT


module ti.targets.arp32.elf.ARP32_far

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== ARP32_far.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== ARP32 ========
    19     *  TI ARP32 default runtime model (little endian)
    20     */
    21    metaonly module ARP32_far inherits ti.targets.ITarget {
    22        override readonly config string name            = "ARP32_far";
    23        override readonly config string suffix          = "earp32F";
    24        override readonly config string isa             = "arp32";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27            shortEnums: true
    28        };
    29        override readonly config string rts = "ti.targets.arp32.rts";
    30        override config string platform     = "ti.platforms.simARP32";
    31
    32        override readonly config xdc.bld.ITarget2.Command ar = {
    33            cmd: "ar-arp32",
    34            opts: "rq"
    35        };
    36
    37        override readonly config xdc.bld.ITarget2.Command cc = {
    38            cmd: "cl-arp32 -c --gen_func_subsections",
    39            opts: "--mem_model:data=far --silicon_version=v210"
    40        };
    41
    42        override readonly config xdc.bld.ITarget2.Command asm = {
    43            cmd: "cl-arp32 -c --gen_func_subsections",
    44            opts: "--mem_model:data=far --silicon_version=v210"
    45        };
    46
    47        override readonly config xdc.bld.ITarget2.Command lnk = {
    48            cmd: "lnk-arp32",
    49            opts: ""
    50        };
    51
    52        override readonly config xdc.bld.ITarget2.Command vers = {
    53            cmd: "cl-arp32",
    54            opts: "--compiler_revision"
    55        };
    56
    57        /*!
    58         *  ======== asmOpts ========
    59         *  User configurable assembler options.
    60         *
    61         *  Defaults:
    62         *  @p(dlist)
    63         *      -`-qq`
    64         *          super quiet mode
    65         */
    66        override config xdc.bld.ITarget2.Options asmOpts = {
    67            prefix: "-qq",
    68            suffix: ""
    69        };
    70
    71        /*!
    72         *  ======== ccOpts ========
    73         *  User configurable compiler options.
    74         *
    75         *  Defaults:
    76         *  @p(dlist)
    77         *      -`-qq`
    78         *          super quiet mode
    79         *      -`-pdsw225`
    80         *          generate a warning for implicitly declared functions; i.e.,
    81         *          functions without prototypes
    82         */
    83        override config xdc.bld.ITarget2.Options ccOpts = {
    84            prefix: "-qq -pdsw225",
    85            suffix: ""
    86        };
    87
    88        /*!
    89         *  ======== ccConfigOpts ========
    90         *  User configurable compiler options for the generated config C file.
    91         */
    92        override config xdc.bld.ITarget2.Options ccConfigOpts = {
    93            prefix: "$(ccOpts.prefix)",
    94            suffix: "$(ccOpts.suffix)"
    95        };
    96
    97        /*!
    98         *  ======== lnkOpts ========
    99         *  User configurable linker options.
   100         *
   101         *  Defaults:
   102         *  @p(dlist)
   103         *      -`-w`
   104         *          Display linker warnings
   105         *      -`-q`
   106         *          Quite run
   107         *      -`-u`
   108         *          Place unresolved external symbol into symbol table
   109         *      -`-c`
   110         *          ROM autoinitialization model
   111         *      -`-m`
   112         *          create a map file
   113         *      -`-l`
   114         *          archive library file as linker input
   115         */
   116        override config xdc.bld.ITarget2.Options lnkOpts = {
   117            prefix: "-w -q -u _c_int00",
   118            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtsarp32_v200.lib"
   119        };
   120
   121        override config string includeOpts = "-I$(rootDir)/include";
   122
   123        final override readonly config string sectMap[string] = [
   124            [".text", "code"],
   125            [".stack", "stack"],
   126            [".bss", "data"],
   127            [".cinit", "data"],
   128            [".init_array", "data"],
   129            [".const", "data"],
   130            [".data", "data"],
   131            [".switch", "data"],
   132            [".sysmem", "data"],
   133            [".far", "data"],
   134            [".args", "data"],
   135            [".cio", "data"],
   136            [".fardata", "data"],
   137            [".rodata", "data"],
   138        ];
   139
   140        override readonly config Int bitsPerChar = 8;
   141
   142        /*!
   143         *  ======== profiles ========
   144         *  Standard options profiles for the TI tool-chain.
   145         */
   146        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   147            ["debug", {
   148                compileOpts: {
   149                    copts: "--symdebug:dwarf",
   150                    defs:  "-D_DEBUG_=1",
   151                }
   152            }],
   153            ["release", {
   154                compileOpts: {
   155                    copts: "-O2",
   156                },
   157            }],
   158            ["profile", {
   159                compileOpts: {
   160                    copts: "--symdebug:dwarf",
   161                },
   162            }],
   163            ["coverage", {
   164                compileOpts: {
   165                    copts: "--symdebug:dwarf",
   166                },
   167            }]
   168        ];
   169
   170        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   171            t_IArg          : { size: 4, align: 4 },
   172            t_Char          : { size: 1, align: 1 },
   173            t_Double        : { size: 8, align: 4 },
   174            t_Float         : { size: 4, align: 4 },
   175            t_Fxn           : { size: 4, align: 4 },
   176            t_Int           : { size: 4, align: 4 },
   177            t_Int8          : { size: 1, align: 1 },
   178            t_Int16         : { size: 2, align: 2 },
   179            t_Int32         : { size: 4, align: 4 },
   180            t_Int64         : { size: 8, align: 4 },
   181            t_Long          : { size: 4, align: 4 },
   182            t_LDouble       : { size: 8, align: 4 },
   183            t_LLong         : { size: 8, align: 4 },
   184            t_Ptr           : { size: 4, align: 4 },
   185            t_Short         : { size: 2, align: 2 },
   186            t_Size          : { size: 4, align: 4 },
   187        };
   188
   189        override config String stdInclude = "ti/targets/arp32/elf/std.h";
   190
   191        override config String binaryParser = "ti.targets.omf.elf.Elf32";
   192    }
   193    /*
   194     *  @(#) ti.targets.arp32.elf; 1, 0, 0,92; 11-4-2012 21:21:31; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   195
   196     */
   197


package ti.targets.arp32.rts
index URL

Runtime support package for the arp32 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in ti/targets/arp32/rts/package.xdc
requires xdc.runtime;
package ti.targets.arp32.rts [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:39 GMT


package ti.targets.arp32.rts

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== ti.targets.arp32.rts ========
    16     *  Runtime support package for the arp32 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package ti.targets.arp32.rts [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) ti.targets.arp32.rts; 1, 0, 0, 0,32; 11-4-2012 21:52:05; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package ti.targets.elf
index URL

Package of targets for TI code generation tools for ELF

XDCspec declarations sourced in ti/targets/elf/package.xdc
requires xdc.bld;
package ti.targets.elf [1, 0, 0] {
    interface ITarget;
    // An ELF extension to the ti.targets.ITarget interface
    module C64P;
    // TI C64P little endian (ELF)
    module C64P_big_endian;
    // TI C64P big endian (ELF)
    module C64T;
    // TI C64T little endian (ELF)
    module C64T_big_endian;
    // TI C64T big endian (ELF)
    module C66;
    // TI C66 little endian (ELF)
    module C66_big_endian;
    // TI C66 big endian (ELF)
    module C674;
    // TI C674 little endian (ELF)
    module C674_big_endian;
    // TI C674 big endian (ELF)
    module C67P;
    // TI C67P little endian (ELF)
    module TMS470;
    // TI TMS470 (Arm) little endian ELF EABI
}
generated on Thu, 08 Nov 2012 02:14:39 GMT


package ti.targets.elf

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     *
    12     */
    13    /*
    14     *  ======== package.xdc ========
    15     *
    16     */
    17
    18    requires xdc.bld;
    19
    20    /*!
    21     *  ======== ti.targets.elf ========
    22     *  Package of targets for TI code generation tools for ELF
    23     *
    24     */
    25    package ti.targets.elf [1,0,0] {
    26        interface ITarget;
    27        module C64P, C674, C64T, C67P;
    28        module C64P_big_endian, C674_big_endian, C64T_big_endian;
    29        module C66, C66_big_endian;
    30        module TMS470;
    31    }
    32    /*
    33     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:33; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    34
    35     */
    36


module ti.targets.elf.C64P

metaonly module ti.targets.elf.C64P
index URL

TI C64P little endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/C64P.xdc
var C64P = xdc.useModule('ti.targets.elf.C64P');
module-wide constants & types
    var obj = new C64P.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64P.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64P.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64P.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64P.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64P.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64P.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64P.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64P.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64P.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64P.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64P.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64P.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64P.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64P.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv64P --abi=eabi"
    };
    const C64P.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64P.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C64P.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv64p --abi=eabi"
    };
    const C64P.isa// CPU Instruction Set Architecture (ISA) = String "64P";
    const C64P.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=eabi"
    };
    const C64P.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: false
    };
    const C64P.name// Nickname for this target = String "C64P";
    const C64P.os// Name of OS required to run programs built for this target = String computed value;
    const C64P.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64P.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    const C64P.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const C64P.suffix// Suffix appended to all objs, libraries, and executable = String "e64P";
    const C64P.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64P.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64P.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64P.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64P.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C64P.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64P.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "",
        "e64",
        "e62"
    ];
     C64P.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64P.execExt// Extension for executables = String undefined;
     C64P.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64P.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64P.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64plus_elf.lib"
    };
     C64P.pathPrefix// A prefix to the PATH environment variable = String "";
     C64P.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320CDM420";
     C64P.platforms// A set of platforms that can support this target = String[] [ ];
     C64P.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64P.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64P.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     C64P.version// The Compatibility Key associated with this target = String undefined;
     C64P.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64P.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64P.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64P.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64P.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64P.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64P.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64P.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64P.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64P.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64P.getVersion// Get a target-specific Compatibility Key string() returns String
     C64P.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64P.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64P.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64P.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64P.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64P.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64P.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64P.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64P.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64P.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64P.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64P.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64P.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64P.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64P.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64P.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64P.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64P.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64P.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64P.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64P.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64P.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64P.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64P.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64P.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64P.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64P.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64P.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64P.alignDirectiveSupported = Bool true;
config C64P.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64P.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64P.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64P.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv64P --abi=eabi"
};
config C64P.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64P.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64P.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64P.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64P.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64P.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv64p --abi=eabi"
};
config C64P.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64P.isa = String "64P";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64P.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64P.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=eabi"
};
config C64P.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64P.model = ITarget.Model {
    endian: "little",
    shortEnums: false
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64P.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64P.name = String "C64P";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64P.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64P.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64P.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64P.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64P.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64P.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64P.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64P.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64P.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64P.suffix = String "e64P";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64P.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64P.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64P.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64P.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64P.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64P.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64P.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64P.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64P.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64P.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C64P.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64P.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64P.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64P.compatibleSuffixes = String[] [
    "",
    "e64",
    "e62"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64P.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64P.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64P.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64P.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64P.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64P.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64P.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64P.includeOpts = String "-I$(rootDir)/include";
config C64P.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64P.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64plus_elf.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64P.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64P.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64P.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64P.platform = String "ti.platforms.sim6xxx:TMS320CDM420";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64P.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64P.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64P.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C64P.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64P.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64P.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64P.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
C64P.stdInclude = String "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64P.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64P.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64P.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64P.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64P.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64P.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64P.asmName(String CName) returns String
C64P.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64P.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64P.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64P.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64P.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64P.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64P.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64P.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64P.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64P.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64P.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64P.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64P.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64P.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64P.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64P.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64P.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64P.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64P.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64P.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:36 GMT


module ti.targets.elf.C64P

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C64P.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== C64P ========
    19     *  TI C64P little endian (ELF)
    20     */
    21    metaonly module C64P inherits ITarget {
    22        override readonly config string name                 = "C64P";
    23        override readonly config string suffix               = "e64P";
    24        override readonly config string isa                  = "64P";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27            shortEnums: false
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        /*
    32         *  ======== compatibleSuffixes ========
    33         */
    34        override config String compatibleSuffixes[] = ["", "e64", "e62"];
    35
    36        override readonly config string rts = "ti.targets.rts6000";
    37        override config string platform     = "ti.platforms.sim6xxx:TMS320CDM420";
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-mv64p --abi=eabi"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-mv64P --abi=eabi"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: "--abi=eabi"
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== ccConfigOpts ========
    97         *  User configurable compiler options for the generated config C file.
    98         *
    99         *  -mo places all functions into subsections
   100         *  --no_compress helps with compile time with no real difference in
   101         *  code size since the generated config.c is mostly data and small
   102         *  function stubs.
   103         */
   104        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   105            prefix: "$(ccOpts.prefix) -mo --no_compress",
   106            suffix: "$(ccOpts.suffix)"
   107        };
   108
   109        /*!
   110         *  ======== lnkOpts ========
   111         *  User configurable linker options.
   112         *
   113         *  Defaults:
   114         *  @p(dlist)
   115         *      -`-w`
   116         *          Display linker warnings
   117         *      -`-q`
   118         *          Quite run
   119         *      -`-u`
   120         *          Place unresolved external symbol into symbol table
   121         *      -`-c`
   122         *          ROM autoinitialization model
   123         *      -`-m`
   124         *          create a map file
   125         *      -`-l`
   126         *          archive library file as linker input
   127         */
   128        override config xdc.bld.ITarget2.Options lnkOpts = {
   129            prefix: "-w -q -u _c_int00",
   130            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64plus_elf.lib"
   131        };
   132
   133        override config string includeOpts = "-I$(rootDir)/include";
   134
   135        override readonly config Int bitsPerChar =
   136            ti.targets.C62.bitsPerChar;
   137    }
   138    /*
   139     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:32; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   140
   141     */
   142


module ti.targets.elf.C64P_big_endian

metaonly module ti.targets.elf.C64P_big_endian
index URL

TI C64P big endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/C64P_big_endian.xdc
var C64P_big_endian = xdc.useModule('ti.targets.elf.C64P_big_endian');
module-wide constants & types
    var obj = new C64P_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64P_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64P_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64P_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64P_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64P_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64P_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64P_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64P_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64P_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64P_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64P_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64P_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64P_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64P_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv64p --abi=eabi"
    };
    const C64P_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64P_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C64P.bitsPerChar;
    const C64P_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv64p --abi=eabi"
    };
    const C64P_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "64P";
    const C64P_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=eabi"
    };
    const C64P_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        shortEnums: false
    };
    const C64P_big_endian.name// Nickname for this target = String "C64P_big_endian";
    const C64P_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C64P_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64P_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    const C64P_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const C64P_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "e64Pe";
    const C64P_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64P_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64P_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64P_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64P_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C64P_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64P_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C64P_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64P_big_endian.execExt// Extension for executables = String undefined;
     C64P_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64P_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64P_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64pluse_elf.lib"
    };
     C64P_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C64P_big_endian.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320CDM420";
     C64P_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C64P_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64P_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64P_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     C64P_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C64P_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64P_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64P_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64P_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64P_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64P_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64P_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64P_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64P_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64P_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64P_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C64P_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64P_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64P_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64P_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64P_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64P_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64P_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64P_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64P_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64P_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64P_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64P_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64P_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64P_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64P_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64P_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64P_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64P_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64P_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64P_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64P_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64P_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64P_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64P_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64P_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64P_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64P_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64P_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64P_big_endian.alignDirectiveSupported = Bool true;
config C64P_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64P_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64P_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64P_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv64p --abi=eabi"
};
config C64P_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64P_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64P_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64P_big_endian.bitsPerChar = Int C64P.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64P_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64P_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv64p --abi=eabi"
};
config C64P_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64P_big_endian.isa = String "64P";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64P_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64P_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=eabi"
};
config C64P_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64P_big_endian.model = ITarget.Model {
    endian: "big",
    shortEnums: false
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64P_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64P_big_endian.name = String "C64P_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64P_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64P_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64P_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64P_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64P_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64P_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64P_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64P_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64P_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64P_big_endian.suffix = String "e64Pe";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64P_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64P_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64P_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64P_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64P_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64P_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64P_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64P_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64P_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64P_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs
config C64P_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64P_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64P_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64P_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64P_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64P_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64P_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64P_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64P_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64P_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64P_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64P_big_endian.includeOpts = String "-I$(rootDir)/include";
config C64P_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64P_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64pluse_elf.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64P_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64P_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64P_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64P_big_endian.platform = String "ti.platforms.sim6xxx:TMS320CDM420";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64P_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64P_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64P_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C64P_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64P_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64P_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64P_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
C64P_big_endian.stdInclude = String "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64P_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64P_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64P_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64P_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64P_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64P_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64P_big_endian.asmName(String CName) returns String
C64P_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64P_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64P_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64P_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64P_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64P_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64P_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64P_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64P_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64P_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64P_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64P_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64P_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64P_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64P_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64P_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64P_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64P_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:37 GMT


module ti.targets.elf.C64P_big_endian

     1    /*
     2     *  Copyright (c) 2009 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C64P_big_endian.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C64P_big_endian ========
    20     *  TI C64P big endian (ELF)
    21     */
    22    metaonly module C64P_big_endian inherits ITarget {
    23        override readonly config string name                 = "C64P_big_endian";
    24        override readonly config string suffix               = "e64Pe";
    25        override readonly config string isa                  = "64P";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "big",
    28            shortEnums: false
    29        };
    30        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    31
    32        override readonly config string rts = "ti.targets.rts6000";
    33        override config string platform     = "ti.platforms.sim6xxx:TMS320CDM420";
    34
    35        override readonly config xdc.bld.ITarget2.Command ar = {
    36            cmd: "ar6x",
    37            opts: "rq"
    38        };
    39
    40        override readonly config xdc.bld.ITarget2.Command cc = {
    41            cmd: "cl6x -c",
    42            opts: "-me -mv64p --abi=eabi"
    43        };
    44
    45        override readonly config xdc.bld.ITarget2.Command vers = {
    46            cmd: "cl6x",
    47            opts: "--compiler_revision"
    48        };
    49
    50        override readonly config xdc.bld.ITarget2.Command asm = {
    51            cmd: "cl6x -c",
    52            opts: "-me -mv64p --abi=eabi"
    53        };
    54
    55        override readonly config xdc.bld.ITarget2.Command lnk = {
    56            cmd: "lnk6x",
    57            opts: "--abi=eabi"
    58        };
    59
    60        /*!
    61         *  ======== asmOpts ========
    62         *  User configurable assembler options.
    63         *
    64         *  Defaults:
    65         *  @p(dlist)
    66         *      -`-qq`
    67         *          super quiet mode
    68         */
    69        override config xdc.bld.ITarget2.Options asmOpts = {
    70            prefix: "-qq",
    71            suffix: ""
    72        };
    73
    74        /*!
    75         *  ======== ccOpts ========
    76         *  User configurable compiler options.
    77         *
    78         *  Defaults:
    79         *  @p(dlist)
    80         *      -`-qq`
    81         *          super quiet mode
    82         *      -`-pdsw225`
    83         *          generate a warning for implicitly declared functions; i.e.,
    84         *          functions without prototypes
    85         */
    86        override config xdc.bld.ITarget2.Options ccOpts = {
    87            prefix: "-qq -pdsw225",
    88            suffix: ""
    89        };
    90
    91        /*!
    92         *  ======== ccConfigOpts ========
    93         *  User configurable compiler options for the generated config C file.
    94         *
    95         *  -mo places all functions into subsections
    96         *  --no_compress helps with compile time with no real difference in
    97         *  code size since the generated config.c is mostly data and small
    98         *  function stubs
    99         */
   100        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   101            prefix: "$(ccOpts.prefix) -mo --no_compress",
   102            suffix: "$(ccOpts.suffix)"
   103        };
   104
   105        /*!
   106         *  ======== lnkOpts ========
   107         *  User configurable linker options.
   108         *
   109         *  Defaults:
   110         *  @p(dlist)
   111         *      -`-w`
   112         *          Display linker warnings
   113         *      -`-q`
   114         *          Quite run
   115         *      -`-u`
   116         *          Place unresolved external symbol into symbol table
   117         *      -`-c`
   118         *          ROM autoinitialization model
   119         *      -`-m`
   120         *          create a map file
   121         *      -`-l`
   122         *          archive library file as linker input
   123         */
   124        override config xdc.bld.ITarget2.Options lnkOpts = {
   125            prefix: "-w -q -u _c_int00",
   126            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64pluse_elf.lib"
   127        };
   128
   129        override config string includeOpts = "-I$(rootDir)/include";
   130
   131        override readonly config Int bitsPerChar = C64P.bitsPerChar;
   132    }
   133    /*
   134     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:32; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   135
   136     */
   137


module ti.targets.elf.C64T

metaonly module ti.targets.elf.C64T
index URL

TI C64T little endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/C64T.xdc
var C64T = xdc.useModule('ti.targets.elf.C64T');
module-wide constants & types
    var obj = new C64T.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64T.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64T.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64T.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64T.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64T.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64T.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64T.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64T.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64T.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64T.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64T.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64T.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64T.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64T.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv=tesla --abi=eabi"
    };
    const C64T.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64T.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C64T.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv=tesla --abi=eabi"
    };
    const C64T.isa// CPU Instruction Set Architecture (ISA) = String "64T";
    const C64T.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=eabi"
    };
    const C64T.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: false
    };
    const C64T.name// Nickname for this target = String "C64T";
    const C64T.os// Name of OS required to run programs built for this target = String computed value;
    const C64T.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64T.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    const C64T.stdTypes// Size and alignment for standard base types = ITarget.StdTypes ITarget.stdTypes;
    const C64T.suffix// Suffix appended to all objs, libraries, and executable = String "e64T";
    const C64T.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64T.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64T.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64T.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64T.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C64T.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64T.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C64T.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64T.execExt// Extension for executables = String undefined;
     C64T.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64T.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64T.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_le_elf.lib"
    };
     C64T.pathPrefix// A prefix to the PATH environment variable = String "";
     C64T.platform// The default platform name for this target = String "ti.platforms.sdp4430";
     C64T.platforms// A set of platforms that can support this target = String[] [ ];
     C64T.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64T.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64T.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     C64T.version// The Compatibility Key associated with this target = String undefined;
     C64T.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64T.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64T.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64T.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64T.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64T.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64T.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64T.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64T.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64T.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64T.getVersion// Get a target-specific Compatibility Key string() returns String
     C64T.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64T.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64T.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64T.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64T.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64T.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64T.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64T.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64T.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64T.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64T.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64T.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64T.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64T.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64T.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64T.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64T.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64T.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64T.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64T.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64T.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64T.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64T.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64T.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64T.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64T.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64T.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64T.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64T.alignDirectiveSupported = Bool true;
config C64T.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64T.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64T.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64T.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv=tesla --abi=eabi"
};
config C64T.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64T.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64T.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64T.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64T.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64T.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv=tesla --abi=eabi"
};
config C64T.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64T.isa = String "64T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64T.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64T.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=eabi"
};
config C64T.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64T.model = ITarget.Model {
    endian: "little",
    shortEnums: false
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64T.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64T.name = String "C64T";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64T.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64T.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64T.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64T.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64T.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64T.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64T.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64T.stdTypes = ITarget.StdTypes ITarget.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64T.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64T.suffix = String "e64T";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64T.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64T.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64T.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64T.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64T.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64T.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64T.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64T.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64T.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64T.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C64T.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64T.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64T.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64T.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64T.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64T.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64T.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64T.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64T.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64T.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64T.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64T.includeOpts = String "-I$(rootDir)/include";
config C64T.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64T.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_le_elf.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64T.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64T.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64T.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64T.platform = String "ti.platforms.sdp4430";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64T.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64T.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64T.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C64T.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64T.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64T.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64T.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
C64T.stdInclude = String "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64T.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64T.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64T.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64T.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64T.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64T.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64T.asmName(String CName) returns String
C64T.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64T.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64T.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64T.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64T.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64T.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64T.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64T.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64T.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64T.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64T.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64T.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64T.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64T.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64T.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64T.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64T.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64T.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64T.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64T.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:37 GMT


module ti.targets.elf.C64T

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C64T.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C64T ========
    20     *  TI C64T little endian (ELF)
    21     */
    22    metaonly module C64T inherits ITarget {
    23        override readonly config string name                 = "C64T";
    24        override readonly config string suffix               = "e64T";
    25        override readonly config string isa                  = "64T";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "little",
    28            shortEnums: false
    29        };
    30        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    31
    32        override readonly config string rts = "ti.targets.rts6000";
    33        override config string platform     = "ti.platforms.sdp4430";
    34
    35        override readonly config xdc.bld.ITarget2.Command ar = {
    36            cmd: "ar6x",
    37            opts: "rq"
    38        };
    39
    40        override readonly config xdc.bld.ITarget2.Command cc = {
    41            cmd: "cl6x -c",
    42            opts: "-mv=tesla --abi=eabi"
    43        };
    44
    45        override readonly config xdc.bld.ITarget2.Command vers = {
    46            cmd: "cl6x",
    47            opts: "--compiler_revision"
    48        };
    49
    50        override readonly config xdc.bld.ITarget2.Command asm = {
    51            cmd: "cl6x -c",
    52            opts: "-mv=tesla --abi=eabi"
    53        };
    54
    55        override readonly config xdc.bld.ITarget2.Command lnk = {
    56            cmd: "lnk6x",
    57            opts: "--abi=eabi"
    58        };
    59
    60        /*!
    61         *  ======== asmOpts ========
    62         *  User configurable assembler options.
    63         *
    64         *  Defaults:
    65         *  @p(dlist)
    66         *      -`-qq`
    67         *          super quiet mode
    68         */
    69        override config xdc.bld.ITarget2.Options asmOpts = {
    70            prefix: "-qq",
    71            suffix: ""
    72        };
    73
    74        /*!
    75         *  ======== ccOpts ========
    76         *  User configurable compiler options.
    77         *
    78         *  Defaults:
    79         *  @p(dlist)
    80         *      -`-qq`
    81         *          super quiet mode
    82         *      -`-pdsw225`
    83         *          generate a warning for implicitly declared functions; i.e.,
    84         *          functions without prototypes
    85         */
    86        override config xdc.bld.ITarget2.Options ccOpts = {
    87            prefix: "-qq -pdsw225",
    88            suffix: ""
    89        };
    90
    91        /*!
    92         *  ======== ccConfigOpts ========
    93         *  User configurable compiler options for the generated config C file.
    94         *
    95         *  -mo places all functions into subsections
    96         *  --no_compress helps with compile time with no real difference in
    97         *  code size since the generated config.c is mostly data and small
    98         *  function stubs.
    99         */
   100        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   101            prefix: "$(ccOpts.prefix) -mo --no_compress",
   102            suffix: "$(ccOpts.suffix)"
   103        };
   104
   105        /*!
   106         *  ======== lnkOpts ========
   107         *  User configurable linker options.
   108         *
   109         *  Defaults:
   110         *  @p(dlist)
   111         *      -`-w`
   112         *          Display linker warnings
   113         *      -`-q`
   114         *          Quite run
   115         *      -`-u`
   116         *          Place unresolved external symbol into symbol table
   117         *      -`-c`
   118         *          ROM autoinitialization model
   119         *      -`-m`
   120         *          create a map file
   121         *      -`-l`
   122         *          archive library file as linker input
   123         */
   124        override config xdc.bld.ITarget2.Options lnkOpts = {
   125            prefix: "-w -q -u _c_int00",
   126            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_le_elf.lib"
   127        };
   128
   129        override config string includeOpts = "-I$(rootDir)/include";
   130
   131        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   132            ti.targets.elf.C64P.stdTypes;
   133
   134        override readonly config Int bitsPerChar =
   135            ti.targets.C62.bitsPerChar;
   136    }
   137    /*
   138     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:32; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   139
   140     */
   141


module ti.targets.elf.C64T_big_endian

metaonly module ti.targets.elf.C64T_big_endian
index URL

TI C64T big endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/C64T_big_endian.xdc
var C64T_big_endian = xdc.useModule('ti.targets.elf.C64T_big_endian');
module-wide constants & types
    var obj = new C64T_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C64T_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C64T_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C64T_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C64T_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C64T_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C64T_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C64T_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C64T_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C64T_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C64T_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C64T_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C64T_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C64T_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C64T_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv=tesla --abi=eabi"
    };
    const C64T_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C64T_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C64T.bitsPerChar;
    const C64T_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv=tesla --abi=eabi"
    };
    const C64T_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "64T";
    const C64T_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=eabi"
    };
    const C64T_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        shortEnums: false
    };
    const C64T_big_endian.name// Nickname for this target = String "C64T_big_endian";
    const C64T_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C64T_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C64T_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    const C64T_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const C64T_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "e64Te";
    const C64T_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C64T_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C64T_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C64T_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C64T_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C64T_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C64T_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C64T_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C64T_big_endian.execExt// Extension for executables = String undefined;
     C64T_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C64T_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C64T_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_be_elf.lib"
    };
     C64T_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C64T_big_endian.platform// The default platform name for this target = String "ti.platforms.sdp4430";
     C64T_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C64T_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C64T_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C64T_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     C64T_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C64T_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C64T_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C64T_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C64T_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64T_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C64T_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C64T_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C64T_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64T_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C64T_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C64T_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C64T_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C64T_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C64T_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C64T_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C64T_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C64T_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C64T_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C64T_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C64T_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C64T_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C64T_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C64T_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C64T_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C64T_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C64T_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C64T_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C64T_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C64T_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C64T_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C64T_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C64T_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C64T_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C64T_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C64T_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C64T_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C64T_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C64T_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C64T_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C64T_big_endian.alignDirectiveSupported = Bool true;
config C64T_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C64T_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C64T_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C64T_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv=tesla --abi=eabi"
};
config C64T_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C64T_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C64T_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C64T_big_endian.bitsPerChar = Int C64T.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C64T_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C64T_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv=tesla --abi=eabi"
};
config C64T_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C64T_big_endian.isa = String "64T";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C64T_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C64T_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=eabi"
};
config C64T_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C64T_big_endian.model = ITarget.Model {
    endian: "big",
    shortEnums: false
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C64T_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C64T_big_endian.name = String "C64T_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C64T_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C64T_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C64T_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C64T_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C64T_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C64T_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C64T_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C64T_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C64T_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C64T_big_endian.suffix = String "e64Te";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C64T_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C64T_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C64T_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C64T_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C64T_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C64T_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C64T_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C64T_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C64T_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C64T_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C64T_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C64T_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C64T_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C64T_big_endian.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C64T_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C64T_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C64T_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C64T_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C64T_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C64T_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C64T_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C64T_big_endian.includeOpts = String "-I$(rootDir)/include";
config C64T_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C64T_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_be_elf.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C64T_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C64T_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C64T_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C64T_big_endian.platform = String "ti.platforms.sdp4430";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C64T_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C64T_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C64T_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C64T_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C64T_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C64T_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C64T_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
C64T_big_endian.stdInclude = String "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C64T_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C64T_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C64T_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C64T_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C64T_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C64T_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C64T_big_endian.asmName(String CName) returns String
C64T_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C64T_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C64T_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C64T_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C64T_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64T_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C64T_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C64T_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C64T_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C64T_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C64T_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C64T_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C64T_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C64T_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C64T_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C64T_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C64T_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C64T_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:37 GMT


module ti.targets.elf.C64T_big_endian

     1    /*
     2     *  Copyright (c) 2009 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C64T_big_endian.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C64T_big_endian ========
    20     *  TI C64T big endian (ELF)
    21     */
    22    metaonly module C64T_big_endian inherits ITarget {
    23        override readonly config string name                 = "C64T_big_endian";
    24        override readonly config string suffix               = "e64Te";
    25        override readonly config string isa                  = "64T";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "big",
    28            shortEnums: false
    29        };
    30        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    31
    32        override readonly config string rts = "ti.targets.rts6000";
    33        override config string platform     = "ti.platforms.sdp4430";
    34
    35        override readonly config xdc.bld.ITarget2.Command ar = {
    36            cmd: "ar6x",
    37            opts: "rq"
    38        };
    39
    40        override readonly config xdc.bld.ITarget2.Command cc = {
    41            cmd: "cl6x -c",
    42            opts: "-me -mv=tesla --abi=eabi"
    43        };
    44
    45        override readonly config xdc.bld.ITarget2.Command vers = {
    46            cmd: "cl6x",
    47            opts: "--compiler_revision"
    48        };
    49
    50        override readonly config xdc.bld.ITarget2.Command asm = {
    51            cmd: "cl6x -c",
    52            opts: "-me -mv=tesla --abi=eabi"
    53        };
    54
    55        override readonly config xdc.bld.ITarget2.Command lnk = {
    56            cmd: "lnk6x",
    57            opts: "--abi=eabi"
    58        };
    59
    60        /*!
    61         *  ======== asmOpts ========
    62         *  User configurable assembler options.
    63         *
    64         *  Defaults:
    65         *  @p(dlist)
    66         *      -`-qq`
    67         *          super quiet mode
    68         */
    69        override config xdc.bld.ITarget2.Options asmOpts = {
    70            prefix: "-qq",
    71            suffix: ""
    72        };
    73
    74        /*!
    75         *  ======== ccOpts ========
    76         *  User configurable compiler options.
    77         *
    78         *  Defaults:
    79         *  @p(dlist)
    80         *      -`-qq`
    81         *          super quiet mode
    82         *      -`-pdsw225`
    83         *          generate a warning for implicitly declared functions; i.e.,
    84         *          functions without prototypes
    85         */
    86        override config xdc.bld.ITarget2.Options ccOpts = {
    87            prefix: "-qq -pdsw225",
    88            suffix: ""
    89        };
    90
    91        /*!
    92         *  ======== ccConfigOpts ========
    93         *  User configurable compiler options for the generated config C file.
    94         *
    95         *  -mo places all functions into subsections
    96         *  --no_compress helps with compile time with no real difference in
    97         *  code size since the generated config.c is mostly data and small
    98         *  function stubs.
    99         */
   100        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   101            prefix: "$(ccOpts.prefix) -mo --no_compress",
   102            suffix: "$(ccOpts.suffix)"
   103        };
   104
   105        /*!
   106         *  ======== lnkOpts ========
   107         *  User configurable linker options.
   108         *
   109         *  Defaults:
   110         *  @p(dlist)
   111         *      -`-w`
   112         *          Display linker warnings
   113         *      -`-q`
   114         *          Quite run
   115         *      -`-u`
   116         *          Place unresolved external symbol into symbol table
   117         *      -`-c`
   118         *          ROM autoinitialization model
   119         *      -`-m`
   120         *          create a map file
   121         *      -`-l`
   122         *          archive library file as linker input
   123         */
   124        override config xdc.bld.ITarget2.Options lnkOpts = {
   125            prefix: "-w -q -u _c_int00",
   126            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtstesla_be_elf.lib"
   127        };
   128
   129        override config string includeOpts = "-I$(rootDir)/include";
   130
   131        override readonly config Int bitsPerChar = C64T.bitsPerChar;
   132    }
   133    /*
   134     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:32; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   135
   136     */
   137


module ti.targets.elf.C66

metaonly module ti.targets.elf.C66
index URL

TI C66 little endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/C66.xdc
var C66 = xdc.useModule('ti.targets.elf.C66');
module-wide constants & types
    var obj = new C66.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C66.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C66.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C66.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C66.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C66.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C66.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C66.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C66.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C66.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C66.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C66.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C66.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C66.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C66.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6600 --abi=eabi"
    };
    const C66.base// A target that this target is based upon = ITarget.Module C62.module;
    const C66.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C66.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6600 --abi=eabi"
    };
    const C66.isa// CPU Instruction Set Architecture (ISA) = String "66";
    const C66.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=eabi"
    };
    const C66.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: false
    };
    const C66.name// Nickname for this target = String "C66";
    const C66.os// Name of OS required to run programs built for this target = String computed value;
    const C66.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C66.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    const C66.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const C66.suffix// Suffix appended to all objs, libraries, and executable = String "e66";
    const C66.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C66.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C66.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C66.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C66.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C66.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C66.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "e674",
        "e64P"
    ];
     C66.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C66.execExt// Extension for executables = String undefined;
     C66.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C66.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C66.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600_elf.lib"
    };
     C66.pathPrefix// A prefix to the PATH environment variable = String "";
     C66.platform// The default platform name for this target = String "ti.platforms.simTCI6616";
     C66.platforms// A set of platforms that can support this target = String[] [ ];
     C66.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C66.rootDir// Installation directory for this target's code generation tools = String undefined;
     C66.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     C66.version// The Compatibility Key associated with this target = String undefined;
     C66.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C66.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C66.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C66.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C66.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C66.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C66.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C66.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C66.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C66.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C66.getVersion// Get a target-specific Compatibility Key string() returns String
     C66.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C66.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C66.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C66.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C66.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C66.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C66.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C66.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C66.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C66.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C66.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C66.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C66.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C66.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C66.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C66.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C66.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C66.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C66.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C66.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C66.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C66.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C66.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C66.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C66.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C66.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C66.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C66.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C66.alignDirectiveSupported = Bool true;
config C66.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C66.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C66.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C66.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6600 --abi=eabi"
};
config C66.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C66.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C66.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C66.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C66.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C66.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6600 --abi=eabi"
};
config C66.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C66.isa = String "66";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C66.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C66.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=eabi"
};
config C66.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C66.model = ITarget.Model {
    endian: "little",
    shortEnums: false
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C66.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C66.name = String "C66";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C66.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C66.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C66.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C66.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C66.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C66.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C66.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C66.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C66.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C66.suffix = String "e66";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C66.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C66.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C66.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C66.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C66.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C66.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C66.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C66.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C66.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C66.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C66.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C66.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C66.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C66.compatibleSuffixes = String[] [
    "e674",
    "e64P"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C66.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C66.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C66.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C66.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C66.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C66.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C66.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C66.includeOpts = String "-I$(rootDir)/include";
config C66.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C66.lnkOpts = ITarget2.Options {
    prefix: "-q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600_elf.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C66.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C66.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C66.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C66.platform = String "ti.platforms.simTCI6616";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C66.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C66.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C66.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C66.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C66.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C66.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C66.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
C66.stdInclude = String "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C66.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C66.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C66.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C66.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C66.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C66.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C66.asmName(String CName) returns String
C66.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C66.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C66.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C66.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C66.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C66.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C66.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C66.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C66.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C66.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C66.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C66.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C66.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C66.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C66.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C66.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C66.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C66.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C66.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C66.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:37 GMT


module ti.targets.elf.C66

     1    /*
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C66.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== C66 ========
    19     *  TI C66 little endian (ELF)
    20     */
    21    metaonly module C66 inherits ITarget {
    22        override readonly config string name                 = "C66";
    23        override readonly config string suffix               = "e66";
    24        override readonly config string isa                  = "66";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27            shortEnums: false
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        /*
    32         *  ======== compatibleSuffixes ========
    33         */
    34        override config String compatibleSuffixes[] = ["e674", "e64P"];
    35
    36        override readonly config string rts = "ti.targets.rts6000";
    37        override config string platform     = "ti.platforms.simTCI6616";
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-mv6600 --abi=eabi"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-mv6600 --abi=eabi"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: "--abi=eabi"
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== ccConfigOpts ========
    97         *  User configurable compiler options for the generated config C file.
    98         *
    99         *  -mo places all functions into subsections
   100         *  --no_compress helps with compile time with no real difference in
   101         *  code size since the generated config.c is mostly data and small
   102         *  function stubs.
   103         */
   104        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   105            prefix: "$(ccOpts.prefix) -mo",
   106            suffix: "$(ccOpts.suffix)"
   107        };
   108
   109        /*!
   110         *  ======== lnkOpts ========
   111         *  User configurable linker options.
   112         *
   113         *  Defaults:
   114         *  @p(dlist)
   115         *      -`-w`
   116         *          Display linker warnings
   117         *      -`-q`
   118         *          Quite run
   119         *      -`-u`
   120         *          Place unresolved external symbol into symbol table
   121         *      -`-c`
   122         *          ROM autoinitialization model
   123         *      -`-m`
   124         *          create a map file
   125         *      -`-l`
   126         *          archive library file as linker input
   127         */
   128        override config xdc.bld.ITarget2.Options lnkOpts = {
   129            prefix: "-q -u _c_int00",
   130            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600_elf.lib"
   131        };
   132
   133        override config string includeOpts = "-I$(rootDir)/include";
   134
   135        override readonly config Int bitsPerChar =
   136            ti.targets.C62.bitsPerChar;
   137    }
   138
   139    /*
   140     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:32; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   141
   142     */
   143


module ti.targets.elf.C66_big_endian

metaonly module ti.targets.elf.C66_big_endian
index URL

TI C66 big endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/C66_big_endian.xdc
var C66_big_endian = xdc.useModule('ti.targets.elf.C66_big_endian');
module-wide constants & types
    var obj = new C66_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C66_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C66_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C66_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C66_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C66_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C66_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C66_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C66_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C66_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C66_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C66_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C66_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C66_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C66_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6600 --abi=eabi"
    };
    const C66_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C66_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C66_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6600 --abi=eabi"
    };
    const C66_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "66";
    const C66_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=eabi"
    };
    const C66_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        shortEnums: false
    };
    const C66_big_endian.name// Nickname for this target = String "C66_big_endian";
    const C66_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C66_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C66_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    const C66_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const C66_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "e66e";
    const C66_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C66_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C66_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C66_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C66_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C66_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C66_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "e674e",
        "e64Pe"
    ];
     C66_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C66_big_endian.execExt// Extension for executables = String undefined;
     C66_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C66_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C66_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600e_elf.lib"
    };
     C66_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C66_big_endian.platform// The default platform name for this target = String "ti.platforms.simTCI6616";
     C66_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C66_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C66_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C66_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     C66_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C66_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C66_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C66_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C66_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C66_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C66_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C66_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C66_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C66_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C66_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C66_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C66_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C66_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C66_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C66_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C66_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C66_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C66_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C66_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C66_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C66_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C66_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C66_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C66_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C66_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C66_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C66_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C66_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C66_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C66_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C66_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C66_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C66_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C66_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C66_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C66_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C66_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C66_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C66_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C66_big_endian.alignDirectiveSupported = Bool true;
config C66_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C66_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C66_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C66_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6600 --abi=eabi"
};
config C66_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C66_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C66_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C66_big_endian.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C66_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C66_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6600 --abi=eabi"
};
config C66_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C66_big_endian.isa = String "66";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C66_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C66_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=eabi"
};
config C66_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C66_big_endian.model = ITarget.Model {
    endian: "big",
    shortEnums: false
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C66_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C66_big_endian.name = String "C66_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C66_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C66_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C66_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C66_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C66_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C66_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C66_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C66_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C66_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C66_big_endian.suffix = String "e66e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C66_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C66_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C66_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C66_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C66_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C66_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C66_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C66_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C66_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C66_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C66_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C66_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C66_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C66_big_endian.compatibleSuffixes = String[] [
    "e674e",
    "e64Pe"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C66_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C66_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C66_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C66_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C66_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C66_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C66_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C66_big_endian.includeOpts = String "-I$(rootDir)/include";
config C66_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C66_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600e_elf.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C66_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C66_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C66_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C66_big_endian.platform = String "ti.platforms.simTCI6616";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C66_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C66_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C66_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C66_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C66_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C66_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C66_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
C66_big_endian.stdInclude = String "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C66_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C66_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C66_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C66_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C66_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C66_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C66_big_endian.asmName(String CName) returns String
C66_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C66_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C66_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C66_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C66_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C66_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C66_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C66_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C66_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C66_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C66_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C66_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C66_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C66_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C66_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C66_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C66_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C66_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:38 GMT


module ti.targets.elf.C66_big_endian

     1    /*
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C66_big_endian.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== C66_big_endian ========
    19     *  TI C66 big endian (ELF)
    20     */
    21    metaonly module C66_big_endian inherits ITarget {
    22        override readonly config string name                 = "C66_big_endian";
    23        override readonly config string suffix               = "e66e";
    24        override readonly config string isa                  = "66";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "big",
    27            shortEnums: false
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        /*
    32         *  ======== compatibleSuffixes ========
    33         */
    34        override config String compatibleSuffixes[] = ["e674e", "e64Pe"];
    35
    36        override readonly config string rts = "ti.targets.rts6000";
    37        override config string platform     = "ti.platforms.simTCI6616";
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-me -mv6600 --abi=eabi"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-me -mv6600 --abi=eabi"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: "--abi=eabi"
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== ccConfigOpts ========
    97         *  User configurable compiler options for the generated config C file.
    98         *
    99         *  -mo places all functions into subsections
   100         *  --no_compress helps with compile time with no real difference in
   101         *  code size since the generated config.c is mostly data and small
   102         *  function stubs.
   103         */
   104        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   105            prefix: "$(ccOpts.prefix) -mo",
   106            suffix: "$(ccOpts.suffix)"
   107        };
   108
   109        /*!
   110         *  ======== lnkOpts ========
   111         *  User configurable linker options.
   112         *
   113         *  Defaults:
   114         *  @p(dlist)
   115         *      -`-w`
   116         *          Display linker warnings
   117         *      -`-q`
   118         *          Quite run
   119         *      -`-u`
   120         *          Place unresolved external symbol into symbol table
   121         *      -`-c`
   122         *          ROM autoinitialization model
   123         *      -`-m`
   124         *          create a map file
   125         *      -`-l`
   126         *          archive library file as linker input
   127         */
   128        override config xdc.bld.ITarget2.Options lnkOpts = {
   129            prefix: "-q -u _c_int00",
   130            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6600e_elf.lib"
   131        };
   132
   133        override config string includeOpts = "-I$(rootDir)/include";
   134
   135        override readonly config Int bitsPerChar =
   136            ti.targets.C62.bitsPerChar;
   137    }
   138
   139    /*
   140     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:33; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   141
   142     */
   143


module ti.targets.elf.C674

metaonly module ti.targets.elf.C674
index URL

TI C674 little endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/C674.xdc
var C674 = xdc.useModule('ti.targets.elf.C674');
module-wide constants & types
    var obj = new C674.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C674.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C674.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C674.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C674.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C674.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C674.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C674.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C674.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C674.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C674.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C674.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C674.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C674.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C674.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6740 --abi=eabi"
    };
    const C674.base// A target that this target is based upon = ITarget.Module C62.module;
    const C674.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C674.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv6740 --abi=eabi"
    };
    const C674.isa// CPU Instruction Set Architecture (ISA) = String "674";
    const C674.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=eabi"
    };
    const C674.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: false
    };
    const C674.name// Nickname for this target = String "C674";
    const C674.os// Name of OS required to run programs built for this target = String computed value;
    const C674.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C674.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    const C674.stdTypes// Size and alignment for standard base types = ITarget.StdTypes ITarget.stdTypes;
    const C674.suffix// Suffix appended to all objs, libraries, and executable = String "e674";
    const C674.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C674.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C674.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C674.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C674.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C674.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C674.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "e64P"
    ];
     C674.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C674.execExt// Extension for executables = String undefined;
     C674.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C674.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C674.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740_elf.lib"
    };
     C674.pathPrefix// A prefix to the PATH environment variable = String "";
     C674.platform// The default platform name for this target = String "ti.platforms.evmDA830";
     C674.platforms// A set of platforms that can support this target = String[] [ ];
     C674.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C674.rootDir// Installation directory for this target's code generation tools = String undefined;
     C674.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     C674.version// The Compatibility Key associated with this target = String undefined;
     C674.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C674.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C674.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C674.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C674.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C674.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C674.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C674.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C674.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C674.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C674.getVersion// Get a target-specific Compatibility Key string() returns String
     C674.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C674.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C674.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C674.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C674.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C674.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C674.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C674.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C674.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C674.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C674.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C674.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C674.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C674.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C674.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C674.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C674.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C674.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C674.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C674.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C674.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C674.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C674.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C674.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C674.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C674.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C674.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C674.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C674.alignDirectiveSupported = Bool true;
config C674.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C674.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C674.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C674.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6740 --abi=eabi"
};
config C674.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C674.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C674.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C674.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C674.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C674.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv6740 --abi=eabi"
};
config C674.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C674.isa = String "674";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C674.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C674.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=eabi"
};
config C674.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C674.model = ITarget.Model {
    endian: "little",
    shortEnums: false
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C674.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C674.name = String "C674";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C674.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C674.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C674.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C674.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C674.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C674.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C674.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C674.stdTypes = ITarget.StdTypes ITarget.stdTypes;
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C674.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C674.suffix = String "e674";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C674.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C674.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C674.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C674.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C674.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C674.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C674.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C674.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C674.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C674.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C674.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C674.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C674.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C674.compatibleSuffixes = String[] [
    "e64P"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C674.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C674.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C674.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C674.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C674.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C674.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C674.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C674.includeOpts = String "-I$(rootDir)/include";
config C674.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C674.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740_elf.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C674.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C674.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C674.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C674.platform = String "ti.platforms.evmDA830";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C674.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C674.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C674.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C674.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C674.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C674.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C674.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
C674.stdInclude = String "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C674.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C674.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C674.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C674.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C674.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C674.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C674.asmName(String CName) returns String
C674.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C674.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C674.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C674.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C674.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C674.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C674.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C674.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C674.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C674.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C674.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C674.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C674.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C674.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C674.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C674.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C674.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C674.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C674.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C674.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:38 GMT


module ti.targets.elf.C674

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C674.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== C674 ========
    19     *  TI C674 little endian (ELF)
    20     */
    21    metaonly module C674 inherits ITarget {
    22        override readonly config string name                 = "C674";
    23        override readonly config string suffix               = "e674";
    24        override readonly config string isa                  = "674";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27            shortEnums: false
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        /*
    32         *  ======== compatibleSuffixes ========
    33         */
    34        override config String compatibleSuffixes[] = ["e64P"];
    35
    36        override readonly config string rts = "ti.targets.rts6000";
    37        override config string platform     = "ti.platforms.evmDA830";
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd: "ar6x",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd: "cl6x -c",
    46            opts: "-mv6740 --abi=eabi"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd: "cl6x",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd: "cl6x -c",
    56            opts: "-mv6740 --abi=eabi"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: "--abi=eabi"
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== ccConfigOpts ========
    97         *  User configurable compiler options for the generated config C file.
    98         *
    99         *  -mo places all functions into subsections
   100         *  --no_compress helps with compile time with no real difference in
   101         *  code size since the generated config.c is mostly data and small
   102         *  function stubs.
   103         */
   104        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   105            prefix: "$(ccOpts.prefix) -mo --no_compress",
   106            suffix: "$(ccOpts.suffix)"
   107        };
   108
   109        /*!
   110         *  ======== lnkOpts ========
   111         *  User configurable linker options.
   112         *
   113         *  Defaults:
   114         *  @p(dlist)
   115         *      -`-w`
   116         *          Display linker warnings
   117         *      -`-q`
   118         *          Quite run
   119         *      -`-u`
   120         *          Place unresolved external symbol into symbol table
   121         *      -`-c`
   122         *          ROM autoinitialization model
   123         *      -`-m`
   124         *          create a map file
   125         *      -`-l`
   126         *          archive library file as linker input
   127         */
   128        override config xdc.bld.ITarget2.Options lnkOpts = {
   129            prefix: "-w -q -u _c_int00",
   130            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740_elf.lib"
   131        };
   132
   133        override config string includeOpts = "-I$(rootDir)/include";
   134
   135        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   136            ti.targets.elf.C64P.stdTypes;
   137
   138        override readonly config Int bitsPerChar =
   139            ti.targets.C62.bitsPerChar;
   140    }
   141    /*
   142     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:33; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   143
   144     */
   145


module ti.targets.elf.C674_big_endian

metaonly module ti.targets.elf.C674_big_endian
index URL

TI C674 big endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/C674_big_endian.xdc
var C674_big_endian = xdc.useModule('ti.targets.elf.C674_big_endian');
module-wide constants & types
    var obj = new C674_big_endian.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C674_big_endian.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C674_big_endian.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C674_big_endian.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C674_big_endian.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C674_big_endian.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C674_big_endian.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C674_big_endian.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C674_big_endian.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C674_big_endian.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C674_big_endian.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C674_big_endian.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C674_big_endian.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C674_big_endian.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C674_big_endian.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6740 --abi=eabi"
    };
    const C674_big_endian.base// A target that this target is based upon = ITarget.Module C62.module;
    const C674_big_endian.bitsPerChar// The number of bits in a variable of type char = Int C674.bitsPerChar;
    const C674_big_endian.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-me -mv6740 --abi=eabi"
    };
    const C674_big_endian.isa// CPU Instruction Set Architecture (ISA) = String "674";
    const C674_big_endian.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: " --abi=eabi"
    };
    const C674_big_endian.model// Run-time model = ITarget.Model {
        endian: "big",
        shortEnums: false
    };
    const C674_big_endian.name// Nickname for this target = String "C674_big_endian";
    const C674_big_endian.os// Name of OS required to run programs built for this target = String computed value;
    const C674_big_endian.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C674_big_endian.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    const C674_big_endian.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const C674_big_endian.suffix// Suffix appended to all objs, libraries, and executable = String "e674e";
    const C674_big_endian.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C674_big_endian.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C674_big_endian.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C674_big_endian.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C674_big_endian.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo --no_compress",
        suffix: "$(ccOpts.suffix)"
    };
     C674_big_endian.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C674_big_endian.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "e64Pe"
    ];
     C674_big_endian.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C674_big_endian.execExt// Extension for executables = String undefined;
     C674_big_endian.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C674_big_endian.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C674_big_endian.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740e_elf.lib"
    };
     C674_big_endian.pathPrefix// A prefix to the PATH environment variable = String "";
     C674_big_endian.platform// The default platform name for this target = String "ti.platforms.evmDA830";
     C674_big_endian.platforms// A set of platforms that can support this target = String[] [ ];
     C674_big_endian.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C674_big_endian.rootDir// Installation directory for this target's code generation tools = String undefined;
     C674_big_endian.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     C674_big_endian.version// The Compatibility Key associated with this target = String undefined;
     C674_big_endian.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C674_big_endian.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C674_big_endian.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C674_big_endian.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C674_big_endian.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C674_big_endian.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C674_big_endian.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C674_big_endian.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C674_big_endian.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C674_big_endian.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C674_big_endian.getVersion// Get a target-specific Compatibility Key string() returns String
     C674_big_endian.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C674_big_endian.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C674_big_endian.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C674_big_endian.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C674_big_endian.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C674_big_endian.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C674_big_endian.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C674_big_endian.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C674_big_endian.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C674_big_endian.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C674_big_endian.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C674_big_endian.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C674_big_endian.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C674_big_endian.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C674_big_endian.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C674_big_endian.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C674_big_endian.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C674_big_endian.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C674_big_endian.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C674_big_endian.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C674_big_endian.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C674_big_endian.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C674_big_endian.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C674_big_endian.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C674_big_endian.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C674_big_endian.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C674_big_endian.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C674_big_endian.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C674_big_endian.alignDirectiveSupported = Bool true;
config C674_big_endian.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C674_big_endian.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C674_big_endian.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C674_big_endian.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6740 --abi=eabi"
};
config C674_big_endian.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C674_big_endian.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C674_big_endian.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C674_big_endian.bitsPerChar = Int C674.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C674_big_endian.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C674_big_endian.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-me -mv6740 --abi=eabi"
};
config C674_big_endian.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C674_big_endian.isa = String "674";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C674_big_endian.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C674_big_endian.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: " --abi=eabi"
};
config C674_big_endian.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C674_big_endian.model = ITarget.Model {
    endian: "big",
    shortEnums: false
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C674_big_endian.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C674_big_endian.name = String "C674_big_endian";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C674_big_endian.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C674_big_endian.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C674_big_endian.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C674_big_endian.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C674_big_endian.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C674_big_endian.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C674_big_endian.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C674_big_endian.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C674_big_endian.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C674_big_endian.suffix = String "e674e";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C674_big_endian.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C674_big_endian.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C674_big_endian.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C674_big_endian.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C674_big_endian.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C674_big_endian.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C674_big_endian.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C674_big_endian.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C674_big_endian.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C674_big_endian.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo --no_compress",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C674_big_endian.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C674_big_endian.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C674_big_endian.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C674_big_endian.compatibleSuffixes = String[] [
    "e64Pe"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C674_big_endian.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C674_big_endian.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C674_big_endian.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C674_big_endian.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C674_big_endian.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C674_big_endian.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C674_big_endian.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C674_big_endian.includeOpts = String "-I$(rootDir)/include";
config C674_big_endian.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C674_big_endian.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740e_elf.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C674_big_endian.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C674_big_endian.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C674_big_endian.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C674_big_endian.platform = String "ti.platforms.evmDA830";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C674_big_endian.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C674_big_endian.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C674_big_endian.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C674_big_endian.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C674_big_endian.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C674_big_endian.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C674_big_endian.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
C674_big_endian.stdInclude = String "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C674_big_endian.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C674_big_endian.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C674_big_endian.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C674_big_endian.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C674_big_endian.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C674_big_endian.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C674_big_endian.asmName(String CName) returns String
C674_big_endian.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C674_big_endian.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C674_big_endian.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C674_big_endian.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C674_big_endian.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C674_big_endian.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C674_big_endian.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C674_big_endian.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C674_big_endian.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C674_big_endian.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C674_big_endian.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C674_big_endian.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C674_big_endian.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C674_big_endian.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C674_big_endian.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C674_big_endian.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C674_big_endian.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C674_big_endian.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:38 GMT


module ti.targets.elf.C674_big_endian

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== C674_big_endian.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== C674_big_endian ========
    20     *  TI C674 big endian (ELF)
    21     */
    22    metaonly module C674_big_endian inherits ITarget {
    23        override readonly config string name                 = "C674_big_endian";
    24        override readonly config string suffix               = "e674e";
    25        override readonly config string isa                  = "674";
    26        override readonly config xdc.bld.ITarget.Model model = {
    27            endian: "big",
    28            shortEnums: false
    29        };
    30        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    31
    32        /*
    33         *  ======== compatibleSuffixes ========
    34         */
    35        override config String compatibleSuffixes[] = ["e64Pe"];
    36
    37        override readonly config string rts = "ti.targets.rts6000";
    38        override config string platform     = "ti.platforms.evmDA830";
    39
    40        override readonly config xdc.bld.ITarget2.Command ar = {
    41            cmd: "ar6x",
    42            opts: "rq"
    43        };
    44
    45        override readonly config xdc.bld.ITarget2.Command cc = {
    46            cmd: "cl6x -c",
    47            opts: "-me -mv6740 --abi=eabi"
    48        };
    49
    50        override readonly config xdc.bld.ITarget2.Command vers = {
    51            cmd: "cl6x",
    52            opts: "--compiler_revision"
    53        };
    54
    55        override readonly config xdc.bld.ITarget2.Command asm = {
    56            cmd: "cl6x -c",
    57            opts: "-me -mv6740 --abi=eabi"
    58        };
    59
    60        override readonly config xdc.bld.ITarget2.Command lnk = {
    61            cmd: "lnk6x",
    62            opts: " --abi=eabi"
    63        };
    64
    65        /*!
    66         *  ======== asmOpts ========
    67         *  User configurable assembler options.
    68         *
    69         *  Defaults:
    70         *  @p(dlist)
    71         *      -`-qq`
    72         *          super quiet mode
    73         */
    74        override config xdc.bld.ITarget2.Options asmOpts = {
    75            prefix: "-qq",
    76            suffix: ""
    77        };
    78
    79        /*!
    80         *  ======== ccOpts ========
    81         *  User configurable compiler options.
    82         *
    83         *  Defaults:
    84         *  @p(dlist)
    85         *      -`-qq`
    86         *          super quiet mode
    87         *      -`-pdsw225`
    88         *          generate a warning for implicitly declared functions; i.e.,
    89         *          functions without prototypes
    90         */
    91        override config xdc.bld.ITarget2.Options ccOpts = {
    92            prefix: "-qq -pdsw225",
    93            suffix: ""
    94        };
    95
    96        /*!
    97         *  ======== ccConfigOpts ========
    98         *  User configurable compiler options for the generated config C file.
    99         *
   100         *  -mo places all functions into subsections
   101         *  --no_compress helps with compile time with no real difference in
   102         *  code size since the generated config.c is mostly data and small
   103         *  function stubs.
   104         */
   105        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   106            prefix: "$(ccOpts.prefix) -mo --no_compress",
   107            suffix: "$(ccOpts.suffix)"
   108        };
   109
   110        /*!
   111         *  ======== lnkOpts ========
   112         *  User configurable linker options.
   113         *
   114         *  Defaults:
   115         *  @p(dlist)
   116         *      -`-w`
   117         *          Display linker warnings
   118         *      -`-q`
   119         *          Quite run
   120         *      -`-u`
   121         *          Place unresolved external symbol into symbol table
   122         *      -`-c`
   123         *          ROM autoinitialization model
   124         *      -`-m`
   125         *          create a map file
   126         *      -`-l`
   127         *          archive library file as linker input
   128         */
   129        override config xdc.bld.ITarget2.Options lnkOpts = {
   130            prefix: "-w -q -u _c_int00",
   131            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts6740e_elf.lib"
   132        };
   133
   134        override config string includeOpts = "-I$(rootDir)/include";
   135
   136        override readonly config Int bitsPerChar = C674.bitsPerChar;
   137    }
   138    /*
   139     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:33; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   140
   141     */
   142


module ti.targets.elf.C67P

metaonly module ti.targets.elf.C67P
index URL

TI C67P little endian (ELF)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/C67P.xdc
var C67P = xdc.useModule('ti.targets.elf.C67P');
module-wide constants & types
    var obj = new C67P.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new C67P.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new C67P.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new C67P.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new C67P.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new C67P.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new C67P.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new C67P.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new C67P.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new C67P.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new C67P.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new C67P.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const C67P.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const C67P.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar6x",
        opts: "rq"
    };
    const C67P.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv67p --abi=eabi"
    };
    const C67P.base// A target that this target is based upon = ITarget.Module C62.module;
    const C67P.bitsPerChar// The number of bits in a variable of type char = Int C62.bitsPerChar;
    const C67P.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl6x -c",
        opts: "-mv67p --abi=eabi"
    };
    const C67P.isa// CPU Instruction Set Architecture (ISA) = String "67P";
    const C67P.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk6x",
        opts: "--abi=eabi"
    };
    const C67P.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: false
    };
    const C67P.name// Nickname for this target = String "C67P";
    const C67P.os// Name of OS required to run programs built for this target = String computed value;
    const C67P.rts// Name of a run-time support package to include = String "ti.targets.rts6000";
    const C67P.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    const C67P.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const C67P.suffix// Suffix appended to all objs, libraries, and executable = String "e67P";
    const C67P.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl6x",
        opts: "--compiler_revision"
    };
     C67P.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     C67P.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     C67P.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     C67P.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
     C67P.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     C67P.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     C67P.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     C67P.execExt// Extension for executables = String undefined;
     C67P.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     C67P.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     C67P.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts67plus_elf.lib"
    };
     C67P.pathPrefix// A prefix to the PATH environment variable = String "";
     C67P.platform// The default platform name for this target = String "ti.platforms.sim6xxx:TMS320C6727";
     C67P.platforms// A set of platforms that can support this target = String[] [ ];
     C67P.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
     C67P.rootDir// Installation directory for this target's code generation tools = String undefined;
     C67P.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     C67P.version// The Compatibility Key associated with this target = String undefined;
     C67P.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     C67P.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     C67P.asmName// The function that converts a C name into an assembly name(String CName) returns String
     C67P.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C67P.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     C67P.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     C67P.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     C67P.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     C67P.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     C67P.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     C67P.getVersion// Get a target-specific Compatibility Key string() returns String
     C67P.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     C67P.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     C67P.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct C67P.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new C67P.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct C67P.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new C67P.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct C67P.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new C67P.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct C67P.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new C67P.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct C67P.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new C67P.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct C67P.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new C67P.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct C67P.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new C67P.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct C67P.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new C67P.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct C67P.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new C67P.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct C67P.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new C67P.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct C67P.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new C67P.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct C67P.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new C67P.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config C67P.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const C67P.alignDirectiveSupported = Bool true;
config C67P.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const C67P.ar = ITarget2.Command {
    cmd: "ar6x",
    opts: "rq"
};
config C67P.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const C67P.asm = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv67p --abi=eabi"
};
config C67P.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const C67P.base = ITarget.Module C62.module;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config C67P.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const C67P.bitsPerChar = Int C62.bitsPerChar;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config C67P.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const C67P.cc = ITarget2.Command {
    cmd: "cl6x -c",
    opts: "-mv67p --abi=eabi"
};
config C67P.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const C67P.isa = String "67P";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config C67P.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const C67P.lnk = ITarget2.Command {
    cmd: "lnk6x",
    opts: "--abi=eabi"
};
config C67P.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const C67P.model = ITarget.Model {
    endian: "little",
    shortEnums: false
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config C67P.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const C67P.name = String "C67P";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config C67P.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const C67P.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config C67P.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const C67P.rts = String "ti.targets.rts6000";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config C67P.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const C67P.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config C67P.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const C67P.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config C67P.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const C67P.suffix = String "e67P";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config C67P.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const C67P.vers = ITarget2.Command {
    cmd: "cl6x",
    opts: "--compiler_revision"
};
config C67P.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
C67P.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config C67P.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
C67P.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config C67P.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
C67P.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config C67P.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
C67P.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
-mo places all functions into subsections --no_compress helps with compile time with no real difference in code size since the generated config.c is mostly data and small function stubs.
config C67P.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
C67P.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config C67P.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
C67P.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config C67P.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
C67P.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config C67P.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
C67P.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config C67P.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
C67P.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config C67P.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
C67P.includeOpts = String "-I$(rootDir)/include";
config C67P.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
C67P.lnkOpts = ITarget2.Options {
    prefix: "-q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts67plus_elf.lib"
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
-l
archive library file as linker input
config C67P.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
C67P.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config C67P.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
C67P.platform = String "ti.platforms.sim6xxx:TMS320C6727";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config C67P.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
C67P.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config C67P.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
C67P.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config C67P.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
C67P.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config C67P.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
C67P.stdInclude = String "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config C67P.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
C67P.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config C67P.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
C67P.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
C67P.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
C67P.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67P.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
C67P.asmName(String CName) returns String
C67P.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
C67P.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67P.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
C67P.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
C67P.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
C67P.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C67P.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
C67P.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
C67P.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
C67P.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
C67P.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
C67P.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
C67P.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
C67P.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
C67P.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
C67P.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
C67P.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
C67P.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
C67P.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
C67P.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
C67P.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
C67P.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:39 GMT


module ti.targets.elf.C67P

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== C67P.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== C67P ========
    19     *  TI C67P little endian (ELF)
    20     */
    21    metaonly module C67P inherits ITarget {
    22        override readonly config string name                 = "C67P";
    23        override readonly config string suffix               = "e67P";
    24        override readonly config string isa                  = "67P";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little",
    27            shortEnums: false
    28        };
    29        override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
    30
    31        override readonly config string rts = "ti.targets.rts6000";
    32        override config string platform     = "ti.platforms.sim6xxx:TMS320C6727";
    33
    34        override readonly config xdc.bld.ITarget2.Command ar = {
    35            cmd: "ar6x",
    36            opts: "rq"
    37        };
    38
    39        override readonly config xdc.bld.ITarget2.Command cc = {
    40            cmd: "cl6x -c",
    41            opts: "-mv67p --abi=eabi"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command vers = {
    45            cmd: "cl6x",
    46            opts: "--compiler_revision"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command asm = {
    50            cmd: "cl6x -c",
    51            opts: "-mv67p --abi=eabi"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command lnk = {
    55            cmd: "lnk6x",
    56            opts: "--abi=eabi"
    57        };
    58
    59        /*!
    60         *  ======== asmOpts ========
    61         *  User configurable assembler options.
    62         *
    63         *  Defaults:
    64         *  @p(dlist)
    65         *      -`-qq`
    66         *          super quiet mode
    67         */
    68        override config xdc.bld.ITarget2.Options asmOpts = {
    69            prefix: "-qq",
    70            suffix: ""
    71        };
    72
    73        /*!
    74         *  ======== ccOpts ========
    75         *  User configurable compiler options.
    76         *
    77         *  Defaults:
    78         *  @p(dlist)
    79         *      -`-qq`
    80         *          super quiet mode
    81         *      -`-pdsw225`
    82         *          generate a warning for implicitly declared functions; i.e.,
    83         *          functions without prototypes
    84         */
    85        override config xdc.bld.ITarget2.Options ccOpts = {
    86            prefix: "-qq -pdsw225",
    87            suffix: ""
    88        };
    89
    90        /*!
    91         *  ======== ccConfigOpts ========
    92         *  User configurable compiler options for the generated config C file.
    93         *
    94         *  -mo places all functions into subsections
    95         *  --no_compress helps with compile time with no real difference in
    96         *  code size since the generated config.c is mostly data and small
    97         *  function stubs.
    98         */
    99        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   100            prefix: "$(ccOpts.prefix) -mo",
   101            suffix: "$(ccOpts.suffix)"
   102        };
   103
   104        /*!
   105         *  ======== lnkOpts ========
   106         *  User configurable linker options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-w`
   111         *          Display linker warnings
   112         *      -`-q`
   113         *          Quite run
   114         *      -`-u`
   115         *          Place unresolved external symbol into symbol table
   116         *      -`-c`
   117         *          ROM autoinitialization model
   118         *      -`-m`
   119         *          create a map file
   120         *      -`-l`
   121         *          archive library file as linker input
   122         */
   123        override config xdc.bld.ITarget2.Options lnkOpts = {
   124            prefix: "-q -u _c_int00",
   125            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts67plus_elf.lib"
   126        };
   127
   128        override config string includeOpts = "-I$(rootDir)/include";
   129
   130        override readonly config Int bitsPerChar =
   131            ti.targets.C62.bitsPerChar;
   132    }
   133
   134    /*
   135     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:33; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   136
   137     */
   138


interface ti.targets.elf.ITarget

metaonly interface ti.targets.elf.ITarget
index URL

An ELF extension to the ti.targets.ITarget interface

XDCspec summary sourced in ti/targets/elf/ITarget.xdc
metaonly interface ITarget { ...
// inherits ti.targets.ITarget
    // inherits xdc.bld.ITarget2
        // inherits xdc.bld.ITarget
XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
package ti.targets.elf;
metaonly interface ITarget inherits ITarget {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    override readonly config Bool alignDirectiveSupported// The compiler supports an align directive = true;
    readonly config ITarget2.Command ar// The command used to create an archive;
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    readonly config ITarget.Module base// A target that this target is based upon;
    readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    readonly config ITarget2.Command lnk// The command used to link executables;
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    override readonly config String sectMap// Output section name to segment type mapping[string] = [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "data"
        ],
        [
            ".pinit",
            "data"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".const",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".rodata",
            "data"
        ],
        [
            ".neardata",
            "data"
        ],
        [
            ".fardata",
            "data"
        ],
        [
            ".switch",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".far",
            "data"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".ti.handler_table",
            "data"
        ]
    ];
    override readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 8
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 8
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 8
        },
        t_LLong: {
            size: 8,
            align: 8
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    readonly config ITarget2.Command vers// The command used to get the tool-chain to return a version number;
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "",
        suffix: ""
    };
    config String binDir// This parameter controls the location of the target's commands = "$(rootDir)/bin/";
    override config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix) -mo",
        suffix: "$(ccOpts.suffix)"
    };
    config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    override config ITarget.DebugGen debugGen// TI Debugger/IDE file generation support = {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
    config String execExt// Extension for executables;
    override config ITarget.Extension extensions// File extensions recognized by TI targets[string] = ITarget.extensions;
    config String includeOpts// Additional user configurable target-specific include path options;
    config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "",
        suffix: ""
    };
    config String pathPrefix// A prefix to the PATH environment variable = "";
    config String platform// The default platform name for this target;
    config String platforms// A set of platforms that can support this target[] = [ ];
    override config ITarget.OptionSet profiles// Standard options profiles for the TI tool-chain[string] = [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--gen_profile_info"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -mo"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -mo"
                }
            }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    override config String stdInclude// Standard C/C++ types header = "ti/targets/elf/std.h";
    override config String version// The Compatibility Key associated with this target;
    override config String versionMap// Map of TI compiler version numbers to compatibility keys[string] = [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
    String asmName// The function that converts a C name into an assembly name(String CName);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef ITarget.StringArray
index URL
XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
typedef String StringArray[];
struct ITarget.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct ITarget.Command
index URL

Required command and options

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct ITarget.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ITarget.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct ITarget.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ITarget.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ITarget.Extension
index URL

File extension to file type association

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ITarget.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct ITarget.Model
index URL

Target runtime model

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ITarget.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ITarget.Options
index URL

User configurable command options

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct ITarget.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config ITarget.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override readonly config Bool alignDirectiveSupported = true;
config ITarget.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config ITarget2.Command ar;
config ITarget.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config ITarget2.Command asm;
config ITarget.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ITarget.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ITarget.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config ITarget2.Command cc;
config ITarget.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ITarget.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config ITarget2.Command lnk;
config ITarget.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ITarget.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ITarget.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ITarget.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ITarget.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override readonly config String sectMap[string] = [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "data"
    ],
    [
        ".pinit",
        "data"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".const",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".rodata",
        "data"
    ],
    [
        ".neardata",
        "data"
    ],
    [
        ".fardata",
        "data"
    ],
    [
        ".switch",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".far",
        "data"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".ti.handler_table",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ITarget.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 8
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 8
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 8
    },
    t_LLong: {
        size: 8,
        align: 8
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config ITarget.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ITarget.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
readonly config ITarget2.Command vers;
config ITarget.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config ITarget2.Options asmOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config String binDir = "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config ITarget.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix) -mo",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config ITarget.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config ITarget2.Options ccOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ITarget.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override config ITarget.DebugGen debugGen = {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config ITarget.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ITarget.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override config ITarget.Extension extensions[string] = ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config ITarget.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config String includeOpts;
config ITarget.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config ITarget2.Options lnkOpts = {
    prefix: "",
    suffix: ""
};
config ITarget.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config String pathPrefix = "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config ITarget.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config String platform;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ITarget.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ITarget.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override config ITarget.OptionSet profiles[string] = [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--gen_profile_info"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -mo"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -mo"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ITarget.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ITarget.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override config String stdInclude = "ti/targets/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ITarget.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override config String version;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config ITarget.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
override config String versionMap[string] = [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
ITarget.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
String asmName(String CName);
ITarget.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ITarget.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
ITarget.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
ITarget.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ITarget.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in ti/targets/elf/ITarget.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:36 GMT


interface ti.targets.elf.ITarget

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== ITarget.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== ITarget ========
    19     *  An ELF extension to the `ti.targets.ITarget` interface.
    20     */
    21    metaonly interface ITarget inherits ti.targets.ITarget {
    22
    23        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    24            ["debug", {
    25                compileOpts: {
    26                    copts: "--symdebug:dwarf",
    27                    defs:  "-D_DEBUG_=1",
    28                }
    29            }],
    30            ["release", {
    31                compileOpts: {
    32                    copts: "-O2",
    33                },
    34            }],
    35            ["profile", {
    36                compileOpts: {
    37                    copts: "--gen_profile_info",
    38                },
    39            }],
    40            ["coverage", {
    41                compileOpts: {
    42                    copts: "--gen_profile_info",
    43                },
    44            }],
    45            ["whole_program", {
    46                compileOpts: {
    47                    copts: "-oe -O2 -mo",
    48                },
    49            }],
    50            ["whole_program_debug", {
    51                compileOpts: {
    52                    copts: "-oe --symdebug:dwarf -mo",
    53                },
    54            }],
    55        ];
    56
    57        final override readonly config string sectMap[string] = [
    58            [".text", "code"],
    59            [".ti.decompress", "code"],
    60            [".stack", "stack"],
    61            [".bss", "data"],
    62            [".cinit", "data"],
    63            [".pinit", "data"],
    64            [".init_array", "data"],
    65            [".const", "data"],
    66            [".data", "data"],
    67            [".rodata", "data"],
    68            [".neardata", "data"],
    69            [".fardata", "data"],
    70            [".switch", "data"],
    71            [".sysmem", "data"],
    72            [".far", "data"],
    73            [".args", "data"],
    74            [".cio", "data"],
    75            [".ti.handler_table", "data"],
    76        ];
    77
    78        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    79            t_IArg          : { size: 4, align: 4 },
    80            t_Char          : { size: 1, align: 1 },
    81            t_Double        : { size: 8, align: 8 },
    82            t_Float         : { size: 4, align: 4 },
    83            t_Fxn           : { size: 4, align: 4 },
    84            t_Int           : { size: 4, align: 4 },
    85            t_Int8          : { size: 1, align: 1 },
    86            t_Int16         : { size: 2, align: 2 },
    87            t_Int32         : { size: 4, align: 4 },
    88            t_Int64         : { size: 8, align: 8 },
    89            t_Long          : { size: 4, align: 4 },
    90            t_LDouble       : { size: 8, align: 8 },
    91            t_LLong         : { size: 8, align: 8 },
    92            t_Ptr           : { size: 4, align: 4 },
    93            t_Short         : { size: 2, align: 2 },
    94            t_Size          : { size: 4, align: 4 },
    95        };
    96
    97        override config String stdInclude = "ti/targets/elf/std.h";
    98
    99        override config String binaryParser = "ti.targets.omf.elf.Elf32";
   100    }
   101    /*
   102     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:33; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   103
   104     */
   105


module ti.targets.elf.TMS470

metaonly module ti.targets.elf.TMS470
index URL

TI TMS470 (Arm) little endian ELF EABI

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/TMS470.xdc
var TMS470 = xdc.useModule('ti.targets.elf.TMS470');
module-wide constants & types
    var obj = new TMS470.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new TMS470.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new TMS470.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new TMS470.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new TMS470.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new TMS470.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new TMS470.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new TMS470.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new TMS470.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new TMS470.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new TMS470.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new TMS470.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const TMS470.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const TMS470.ar// The command used to create an archive = ITarget2.Command {
        cmd: "ar470",
        opts: "rq"
    };
    const TMS470.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv4 --abi=eabi"
    };
    const TMS470.base// A target that this target is based upon = ITarget.Module computed value;
    const TMS470.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const TMS470.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "cl470 -c",
        opts: " -me -mv4 --abi=eabi"
    };
    const TMS470.isa// CPU Instruction Set Architecture (ISA) = String "470";
    const TMS470.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnk470",
        opts: " --abi=eabi"
    };
    const TMS470.model// Run-time model = ITarget.Model {
        endian: "little",
        shortEnums: true
    };
    const TMS470.name// Nickname for this target = String "TMS470";
    const TMS470.os// Name of OS required to run programs built for this target = String computed value;
    const TMS470.rts// Name of a run-time support package to include = String "ti.targets.arm.rtsarm";
    const TMS470.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".intvecs",
            "code"
        ],
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ]
    ];
    const TMS470.stdInclude// Standard C/C++ types header = String "ti/targets/std.h";
    const TMS470.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 4
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 4
        },
        t_Float: {
            size: 4,
            align: 4
        },
        t_Fxn: {
            size: 4,
            align: 4
        },
        t_Int: {
            size: 4,
            align: 4
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 4
        },
        t_Int64: {
            size: 8,
            align: 4
        },
        t_Long: {
            size: 4,
            align: 4
        },
        t_LDouble: {
            size: 8,
            align: 4
        },
        t_LLong: {
            size: 8,
            align: 4
        },
        t_Ptr: {
            size: 4,
            align: 4
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 4,
            align: 4
        }
    };
    const TMS470.suffix// Suffix appended to all objs, libraries, and executable = String "e470";
    const TMS470.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "cl470",
        opts: "--compiler_revision"
    };
     TMS470.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     TMS470.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     TMS470.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     TMS470.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        suffix: "$(ccOpts.suffix)"
    };
     TMS470.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     TMS470.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] [
        "7"
    ];
     TMS470.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     TMS470.execExt// Extension for executables = String undefined;
     TMS470.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     TMS470.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
     TMS470.linkLib// Default TMS470 cgtools runtime library to link with (options: rtsv4_T_le_eabi.lib, rtsv7M3_T_le_eabi.lib, rtsv4_A_le_eabi_eh.lib, rtsv7A8_A_le_n_eabi.lib, rtsv7R4_T_le_eabi.lib) = String "rtsv4_T_le_eabi.lib";
     TMS470.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     TMS470.pathPrefix// A prefix to the PATH environment variable = String "";
     TMS470.platform// The default platform name for this target = String "ti.platforms.sim470xx";
     TMS470.platforms// A set of platforms that can support this target = String[] [ ];
     TMS470.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -ms"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf -ms"
                }
            }
        ]
    ];
     TMS470.rootDir// Installation directory for this target's code generation tools = String undefined;
     TMS470.version// The Compatibility Key associated with this target = String undefined;
     TMS470.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     TMS470.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     TMS470.asmName// The function that converts a C name into an assembly name(String CName) returns String
     TMS470.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     TMS470.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     TMS470.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     TMS470.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     TMS470.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     TMS470.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     TMS470.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     TMS470.getVersion// Get a target-specific Compatibility Key string() returns String
     TMS470.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     TMS470.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     TMS470.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct TMS470.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new TMS470.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct TMS470.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new TMS470.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct TMS470.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new TMS470.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct TMS470.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new TMS470.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct TMS470.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new TMS470.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct TMS470.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new TMS470.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct TMS470.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new TMS470.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct TMS470.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new TMS470.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct TMS470.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new TMS470.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct TMS470.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new TMS470.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct TMS470.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new TMS470.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct TMS470.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new TMS470.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config TMS470.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const TMS470.alignDirectiveSupported = Bool true;
config TMS470.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const TMS470.ar = ITarget2.Command {
    cmd: "ar470",
    opts: "rq"
};
config TMS470.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const TMS470.asm = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv4 --abi=eabi"
};
config TMS470.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const TMS470.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config TMS470.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const TMS470.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config TMS470.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const TMS470.cc = ITarget2.Command {
    cmd: "cl470 -c",
    opts: " -me -mv4 --abi=eabi"
};
config TMS470.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const TMS470.isa = String "470";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config TMS470.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const TMS470.lnk = ITarget2.Command {
    cmd: "lnk470",
    opts: " --abi=eabi"
};
config TMS470.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const TMS470.model = ITarget.Model {
    endian: "little",
    shortEnums: true
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config TMS470.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const TMS470.name = String "TMS470";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config TMS470.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const TMS470.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config TMS470.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const TMS470.rts = String "ti.targets.arm.rtsarm";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config TMS470.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const TMS470.sectMap = String[string] [
    [
        ".intvecs",
        "code"
    ],
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config TMS470.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const TMS470.stdInclude = String "ti/targets/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config TMS470.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const TMS470.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 4
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 4
    },
    t_Float: {
        size: 4,
        align: 4
    },
    t_Fxn: {
        size: 4,
        align: 4
    },
    t_Int: {
        size: 4,
        align: 4
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 4
    },
    t_Int64: {
        size: 8,
        align: 4
    },
    t_Long: {
        size: 4,
        align: 4
    },
    t_LDouble: {
        size: 8,
        align: 4
    },
    t_LLong: {
        size: 8,
        align: 4
    },
    t_Ptr: {
        size: 4,
        align: 4
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 4,
        align: 4
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config TMS470.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const TMS470.suffix = String "e470";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config TMS470.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const TMS470.vers = ITarget2.Command {
    cmd: "cl470",
    opts: "--compiler_revision"
};
config TMS470.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
TMS470.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config TMS470.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
TMS470.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config TMS470.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
TMS470.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config TMS470.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
TMS470.ccConfigOpts = ITarget2.Options {
    prefix: "$(ccOpts.prefix) -ms",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config TMS470.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
TMS470.ccOpts = ITarget2.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config TMS470.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
TMS470.compatibleSuffixes = String[] [
    "7"
];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config TMS470.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
TMS470.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config TMS470.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
TMS470.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config TMS470.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
TMS470.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config TMS470.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
TMS470.includeOpts = String "-I$(rootDir)/include/rts -I$(rootDir)/include ";
config TMS470.linkLib // module-wide
index URL

Default TMS470 cgtools runtime library to link with (options: rtsv4_T_le_eabi.lib, rtsv7M3_T_le_eabi.lib, rtsv4_A_le_eabi_eh.lib, rtsv7A8_A_le_n_eabi.lib, rtsv7R4_T_le_eabi.lib)

XDCscript usage meta-domain
TMS470.linkLib = String "rtsv4_T_le_eabi.lib";
config TMS470.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
TMS470.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config TMS470.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
TMS470.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config TMS470.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
TMS470.platform = String "ti.platforms.sim470xx";
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config TMS470.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
TMS470.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config TMS470.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
TMS470.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "--symdebug:dwarf",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -ms"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf -ms"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config TMS470.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
TMS470.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config TMS470.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
TMS470.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config TMS470.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
TMS470.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
TMS470.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
TMS470.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
TMS470.asmName(String CName) returns String
TMS470.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
TMS470.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
TMS470.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
TMS470.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
TMS470.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
TMS470.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
TMS470.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
TMS470.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
TMS470.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
TMS470.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
TMS470.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
TMS470.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
TMS470.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
TMS470.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
TMS470.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
TMS470.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
TMS470.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
TMS470.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
TMS470.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:39 GMT


module ti.targets.elf.TMS470

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== TMS470.xdc ========
    15     *
    16     */
    17
    18    /*!
    19     *  ======== TMS470.xdc ========
    20     *  TI TMS470 (Arm) little endian ELF EABI
    21     */
    22    metaonly module TMS470 inherits ti.targets.ITarget {
    23        override readonly config string name             = "TMS470";
    24        override readonly config string suffix           = "e470";
    25        override readonly config string isa              = "470";
    26        override readonly config string rts              = "ti.targets.arm.rtsarm";
    27        override readonly config xdc.bld.ITarget.Model model = {
    28            endian: "little",
    29            shortEnums: true
    30        };
    31
    32        override config string platform = "ti.platforms.sim470xx";
    33
    34        /*
    35         *  ======== compatibleSuffixes ========
    36         */
    37        override config String compatibleSuffixes[] = ["7"];
    38
    39        override readonly config xdc.bld.ITarget2.Command ar = {
    40            cmd:  "ar470",
    41            opts: "rq"
    42        };
    43
    44        override readonly config xdc.bld.ITarget2.Command cc = {
    45            cmd:  "cl470 -c",
    46            opts: " -me -mv4 --abi=eabi"
    47        };
    48
    49        override readonly config xdc.bld.ITarget2.Command vers = {
    50            cmd:  "cl470",
    51            opts: "--compiler_revision"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command asm = {
    55            cmd:  "cl470 -c",
    56            opts: " -me -mv4 --abi=eabi"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd:  "lnk470",
    61            opts: " --abi=eabi"
    62        };
    63
    64        /*!
    65         *  ======== asmOpts ========
    66         *  User configurable assembler options.
    67         *
    68         *  Defaults:
    69         *  @p(dlist)
    70         *      -`-qq`
    71         *          super quiet mode
    72         */
    73        override config xdc.bld.ITarget2.Options asmOpts = {
    74            prefix: "-qq",
    75            suffix: ""
    76        };
    77
    78        /*!
    79         *  ======== ccOpts ========
    80         *  User configurable compiler options.
    81         *
    82         *  Defaults:
    83         *  @p(dlist)
    84         *      -`-qq`
    85         *          super quiet mode
    86         *      -`-pdsw225`
    87         *          generate a warning for implicitly declared functions; i.e.,
    88         *          functions without prototypes
    89         */
    90        override config xdc.bld.ITarget2.Options ccOpts = {
    91            prefix: "-qq -pdsw225",
    92            suffix: ""
    93        };
    94
    95        /*!
    96         *  ======== ccConfigOpts ========
    97         *  User configurable compiler options for the generated config C file.
    98         */
    99        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   100            prefix: "$(ccOpts.prefix) -ms",
   101            suffix: "$(ccOpts.suffix)"
   102        };
   103
   104        /*!
   105         *  ======== linkLib ========
   106         *  Default TMS470 cgtools runtime library to link with
   107         *  (options: rtsv4_T_le_eabi.lib,
   108         *   rtsv7M3_T_le_eabi.lib, rtsv4_A_le_eabi_eh.lib,
   109         *   rtsv7A8_A_le_n_eabi.lib, rtsv7R4_T_le_eabi.lib)
   110         */
   111        config string linkLib = "rtsv4_T_le_eabi.lib";
   112
   113        /*!
   114         *  ======== profiles ========
   115         *  Standard options profiles for the TI tool-chain.
   116         */
   117        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   118            ["debug", {
   119                compileOpts: {
   120                    copts: "--symdebug:dwarf",
   121                    defs:  "-D_DEBUG_=1",
   122                }
   123            }],
   124            ["release", {
   125                compileOpts: {
   126                    copts: "-O2",
   127                },
   128            }],
   129            ["profile", {
   130                compileOpts: {
   131                    copts: "--symdebug:dwarf",
   132                },
   133            }],
   134            ["coverage", {
   135                compileOpts: {
   136                    copts: "--symdebug:dwarf",
   137                },
   138            }],
   139            ["whole_program", {
   140                compileOpts: {
   141                    copts: "-oe -O2 -ms",
   142                },
   143            }],
   144            ["whole_program_debug", {
   145                compileOpts: {
   146                    copts: "-oe --symdebug:dwarf -ms",
   147                },
   148            }],
   149        ];
   150
   151        /*!
   152         *  ======== lnkOpts ========
   153         *  User configurable linker options.
   154         *
   155         *  Defaults:
   156         *  @p(dlist)
   157         *      -`-w`
   158         *          Display linker warnings
   159         *      -`-q`
   160         *          Quite run
   161         *      -`-u`
   162         *          Place unresolved external symbol into symbol table
   163         *      -`-c`
   164         *          ROM autoinitialization model
   165         *      -`-m`
   166         *          create a map file
   167         */
   168        override config xdc.bld.ITarget2.Options lnkOpts = {
   169            prefix: "-w -q -u _c_int00",
   170            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   171        };
   172
   173        override config string includeOpts = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
   174
   175        final override readonly config string sectMap[string] = [
   176            [".intvecs", "code"],
   177
   178            [".text", "code"],
   179            [".cinit", "code"],
   180            [".const", "code"],
   181            [".data", "data"],
   182            [".pinit", "code"],
   183
   184            [".bss", "data"],
   185            [".sysmem", "data"],
   186            [".stack", "stack"],
   187            [".args", "data"],
   188        ];
   189
   190        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   191            t_IArg          : { size: 4, align: 4 },
   192            t_Char          : { size: 1, align: 1 },
   193            t_Double        : { size: 8, align: 4 },
   194            t_Float         : { size: 4, align: 4 },
   195            t_Fxn           : { size: 4, align: 4 },
   196            t_Int           : { size: 4, align: 4 },
   197            t_Int8          : { size: 1, align: 1 },
   198            t_Int16         : { size: 2, align: 2 },
   199            t_Int32         : { size: 4, align: 4 },
   200            t_Int64         : { size: 8, align: 4 },
   201            t_Long          : { size: 4, align: 4 },
   202            t_LDouble       : { size: 8, align: 4 },
   203            t_LLong         : { size: 8, align: 4 },
   204            t_Ptr           : { size: 4, align: 4 },
   205            t_Short         : { size: 2, align: 2 },
   206            t_Size          : { size: 4, align: 4 },
   207        };
   208    };
   209    /*
   210     *  @(#) ti.targets.elf; 1, 0, 0,373; 11-4-2012 21:21:33; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   211
   212     */
   213


package ti.targets.msp430
index URL

Package of targets for MSP430 code generation tools

XDCspec declarations sourced in ti/targets/msp430/package.xdc
requires xdc.bld[1, 0, 2];
package ti.targets.msp430 [1, 0, 0] {
    module MSP430;
    // MSP430 small code, small data model, little endian
    module MSP430X;
    // MSP430X large code, restricted data model, little endian
    module MSP430X_small;
    // MSP430X small code, small data model, little endian
}
generated on Thu, 08 Nov 2012 02:14:59 GMT


package ti.targets.msp430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    requires xdc.bld [1,0,2];
    14
    15    /*!
    16     *  ======== ti.targets.msp430 ========
    17     *  Package of targets for MSP430 code generation tools
    18     */
    19    package ti.targets.msp430 [1,0,0] {
    20        module MSP430, MSP430X, MSP430X_small;
    21        module Generic;
    22    }


module ti.targets.msp430.MSP430

metaonly module ti.targets.msp430.MSP430
index URL

MSP430 small code, small data model, little endian

  • XDCscript usage
  • Individual elements
This target corresponds to the TI default runtime model for MSP430 devices.
XDCscript usage meta-domain sourced in ti/targets/msp430/MSP430.xdc
var MSP430 = xdc.useModule('ti.targets.msp430.MSP430');
module-wide constants & types
    var obj = new MSP430.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MSP430.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MSP430.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MSP430.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MSP430.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MSP430.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MSP430.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MSP430.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MSP430.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MSP430.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MSP430.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MSP430.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MSP430.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const MSP430.ar// The command used to create an archive = ITarget.Command {
        cmd: "ar430",
        opts: "rq"
    };
    const MSP430.asm// The command used to assembles assembly source files into object files = ITarget.Command {
        cmd: "cl430 -c",
        opts: " -vmsp"
    };
    const MSP430.base// A target that this target is based upon = ITarget.Module computed value;
    const MSP430.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MSP430.cc// The command used to compile C/C++ source files into object files = ITarget.Command {
        cmd: "cl430 -c",
        opts: " -vmsp"
    };
    const MSP430.isa// CPU Instruction Set Architecture (ISA) = String "430";
    const MSP430.lnk// The command used to link executables = ITarget.Command {
        cmd: "lnk430",
        opts: ""
    };
    const MSP430.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "small",
        dataModel: "small"
    };
    const MSP430.name// Nickname for this target = String "MSP430";
    const MSP430.os// Name of OS required to run programs built for this target = String computed value;
    const MSP430.rts// Name of a run-time support package to include = String "ti.targets.msp430.rts430";
    const MSP430.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".reset",
            "data"
        ]
    ];
    const MSP430.stdInclude// Standard C/C++ types header = String "ti/targets/msp430/std.h";
    const MSP430.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 4,
            align: 2
        },
        t_Float: {
            size: 4,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 2,
            align: 2
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 4,
            align: 2
        },
        t_LDouble: {
            size: 4,
            align: 2
        },
        t_LLong: {
            size: 4,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const MSP430.suffix// Suffix appended to all objs, libraries, and executable = String "430";
    const MSP430.vers// The command used to get the tool-chain to return a version number = ITarget.Command {
        cmd: "cl430",
        opts: "--compiler_revision"
    };
     MSP430.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     MSP430.asmOpts// User configurable assembler options = ITarget.Options {
        prefix: "-qq",
        suffix: ""
    };
     MSP430.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     MSP430.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MSP430.ccOpts// User configurable compiler options = ITarget.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     MSP430.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     MSP430.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     MSP430.execExt// Extension for executables = String undefined;
     MSP430.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     MSP430.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include ";
     MSP430.linkLib// Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib) = String "rts430.lib";
     MSP430.lnkOpts// User configurable linker options = ITarget.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     MSP430.pathPrefix// A prefix to the PATH environment variable = String "";
     MSP430.platform// The default platform name for this target = String undefined;
     MSP430.platforms// A set of platforms that can support this target = String[] [ ];
     MSP430.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf"
                }
            }
        ]
    ];
     MSP430.rootDir// Installation directory for this target's code generation tools = String undefined;
     MSP430.version// The Compatibility Key associated with this target = String undefined;
     MSP430.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     MSP430.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MSP430.asmName// The function that converts a C name into an assembly name(String CName) returns String
     MSP430.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MSP430.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MSP430.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MSP430.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MSP430.getVersion// Get a target-specific Compatibility Key string() returns String
     MSP430.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MSP430.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct MSP430.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MSP430.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MSP430.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MSP430.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MSP430.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MSP430.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MSP430.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MSP430.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MSP430.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MSP430.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MSP430.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MSP430.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MSP430.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MSP430.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MSP430.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MSP430.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MSP430.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MSP430.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MSP430.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MSP430.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MSP430.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MSP430.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MSP430.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MSP430.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MSP430.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MSP430.alignDirectiveSupported = Bool true;
config MSP430.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MSP430.ar = ITarget.Command {
    cmd: "ar430",
    opts: "rq"
};
config MSP430.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MSP430.asm = ITarget.Command {
    cmd: "cl430 -c",
    opts: " -vmsp"
};
config MSP430.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MSP430.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MSP430.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MSP430.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MSP430.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MSP430.cc = ITarget.Command {
    cmd: "cl430 -c",
    opts: " -vmsp"
};
config MSP430.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MSP430.isa = String "430";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MSP430.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MSP430.lnk = ITarget.Command {
    cmd: "lnk430",
    opts: ""
};
config MSP430.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MSP430.model = ITarget.Model {
    endian: "little",
    codeModel: "small",
    dataModel: "small"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MSP430.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MSP430.name = String "MSP430";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MSP430.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MSP430.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MSP430.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MSP430.rts = String "ti.targets.msp430.rts430";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MSP430.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MSP430.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".reset",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MSP430.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const MSP430.stdInclude = String "ti/targets/msp430/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MSP430.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MSP430.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 4,
        align: 2
    },
    t_Float: {
        size: 4,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 2,
        align: 2
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 4,
        align: 2
    },
    t_LDouble: {
        size: 4,
        align: 2
    },
    t_LLong: {
        size: 4,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MSP430.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MSP430.suffix = String "430";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MSP430.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const MSP430.vers = ITarget.Command {
    cmd: "cl430",
    opts: "--compiler_revision"
};
config MSP430.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MSP430.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config MSP430.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MSP430.asmOpts = ITarget.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config MSP430.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
MSP430.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config MSP430.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MSP430.ccConfigOpts = ITarget.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MSP430.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MSP430.ccOpts = ITarget.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config MSP430.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MSP430.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MSP430.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
MSP430.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config MSP430.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MSP430.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MSP430.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
MSP430.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config MSP430.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MSP430.includeOpts = String "-I$(rootDir)/include ";
config MSP430.linkLib // module-wide
index URL

Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib)

XDCscript usage meta-domain
MSP430.linkLib = String "rts430.lib";
config MSP430.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MSP430.lnkOpts = ITarget.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config MSP430.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
MSP430.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config MSP430.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MSP430.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MSP430.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MSP430.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MSP430.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
MSP430.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MSP430.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MSP430.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MSP430.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MSP430.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config MSP430.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
MSP430.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
MSP430.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MSP430.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
MSP430.asmName(String CName) returns String
MSP430.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MSP430.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MSP430.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MSP430.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MSP430.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MSP430.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MSP430.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MSP430.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MSP430.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MSP430.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MSP430.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MSP430.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MSP430.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MSP430.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:59 GMT


module ti.targets.msp430.MSP430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== MSP430.xdc ========
    15     *  MSP430 small code, small data model, little endian
    16     *
    17     *  This target corresponds to the TI default runtime model for MSP430 devices.
    18     */
    19    metaonly module MSP430 inherits ti.targets.ITarget {
    20        override readonly config string name    = "MSP430";
    21        override readonly config string suffix  = "430";
    22        override readonly config string isa     = "430";
    23        override readonly config string rts     = "ti.targets.msp430.rts430";
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "little",
    26            codeModel: "small",
    27            dataModel: "small"
    28        };
    29
    30        override readonly config string stdInclude = "ti/targets/msp430/std.h";
    31
    32        override readonly config ti.targets.ITarget.Command ar = {
    33            cmd:  "ar430",
    34            opts: "rq"
    35        };
    36
    37        override readonly config ti.targets.ITarget.Command cc = {
    38            cmd:  "cl430 -c",
    39            opts: " -vmsp"
    40        };
    41
    42        override readonly config ti.targets.ITarget.Command vers = {
    43            cmd:  "cl430",
    44            opts: "--compiler_revision"
    45        };
    46
    47        override readonly config ti.targets.ITarget.Command asm = {
    48            cmd:  "cl430 -c",
    49            opts: " -vmsp"
    50        };
    51
    52        override readonly config ti.targets.ITarget.Command lnk = {
    53            cmd:  "lnk430",
    54            opts: ""
    55        };
    56
    57        /*!
    58         *  ======== asmOpts ========
    59         *  User configurable assembler options.
    60         *
    61         *  Defaults:
    62         *  @p(dlist)
    63         *      -`-qq`
    64         *          super quiet mode
    65         */
    66        override config ti.targets.ITarget.Options asmOpts = {
    67            prefix: "-qq",
    68            suffix: ""
    69        };
    70
    71        /*!
    72         *  ======== ccOpts ========
    73         *  User configurable compiler options.
    74         *
    75         *  Defaults:
    76         *  @p(dlist)
    77         *      -`-qq`
    78         *          super quiet mode
    79         *      -`-pdsw225`
    80         *          generate a warning for implicitly declared functions; i.e.,
    81         *          functions without prototypes
    82         */
    83        override config ti.targets.ITarget.Options ccOpts = {
    84            prefix: "-qq -pdsw225",
    85            suffix: ""
    86        };
    87
    88        /*!
    89         *  ======== ccConfigOpts ========
    90         *  User configurable compiler options for the generated config C file.
    91         */
    92        override config ti.targets.ITarget.Options ccConfigOpts = {
    93            prefix: "$(ccOpts.prefix)",
    94            suffix: "$(ccOpts.suffix)"
    95        };
    96
    97        /*!
    98         *  ======== linkLib ========
    99         *  Default MSP430 cgtools runtime library to link with
   100         *  (options: rts16e.lib, rts32e.lib)
   101         */
   102        config string linkLib = "rts430.lib";
   103
   104        /*!
   105         *  ======== lnkOpts ========
   106         *  User configurable linker options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-w`
   111         *          Display linker warnings
   112         *      -`-q`
   113         *          Quite run
   114         *      -`-u`
   115         *          Place unresolved external symbol into symbol table
   116         *      -`-c`
   117         *          ROM autoinitialization model
   118         *      -`-m`
   119         *          create a map file
   120         */
   121        override config ti.targets.ITarget.Options lnkOpts = {
   122            prefix: "-w -q -u _c_int00",
   123            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   124        };
   125
   126        /*!
   127         *  ======== profiles ========
   128         *  Standard options profiles for the TI tool-chain.
   129         */
   130        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   131            ["debug", {
   132                compileOpts: {
   133                    copts: "-g",
   134                    defs:  "-D_DEBUG_=1",
   135                }
   136            }],
   137            ["release", {
   138                compileOpts: {
   139                    copts: "-O2 -g --optimize_with_debug",
   140                },
   141            }],
   142            ["profile", {
   143                compileOpts: {
   144                    copts: "-gp",
   145                },
   146            }],
   147            ["coverage", {
   148                compileOpts: {
   149                    copts: "-gp",
   150                },
   151            }],
   152            ["whole_program", {
   153                compileOpts: {
   154                    copts: "-oe -O2 -g --optimize_with_debug",
   155                },
   156            }],
   157            ["whole_program_debug", {
   158                compileOpts: {
   159                    copts: "-oe --symdebug:dwarf",
   160                },
   161            }],
   162        ];
   163
   164        override config string includeOpts = "-I$(rootDir)/include ";
   165
   166        final override readonly config string sectMap[string] = [
   167            [".text", "code"],
   168            [".cinit", "code"],
   169            [".const", "code"],
   170            [".pinit", "code"],
   171
   172            [".bss", "data"],
   173            [".sysmem", "data"],
   174            [".stack", "stack"],
   175            [".args", "data"],
   176            [".cio", "data"],
   177            [".reset", "data"],
   178        ];
   179
   180        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   181            t_IArg          : { size: 2, align: 2 },
   182            t_Char          : { size: 1, align: 1 },
   183            t_Double        : { size: 4, align: 2 },
   184            t_Float         : { size: 4, align: 2 },
   185            t_Fxn           : { size: 2, align: 2 },
   186            t_Int           : { size: 2, align: 2 },
   187            t_Int8          : { size: 1, align: 1 },
   188            t_Int16         : { size: 2, align: 2 },
   189            t_Int32         : { size: 4, align: 2 },
   190            t_Long          : { size: 4, align: 2 },
   191            t_LDouble       : { size: 4, align: 2 },
   192            t_LLong         : { size: 4, align: 2 },
   193            t_Ptr           : { size: 2, align: 2 },
   194            t_Short         : { size: 2, align: 2 },
   195            t_Size          : { size: 2, align: 2 },
   196        };
   197    };


module ti.targets.msp430.MSP430X

metaonly module ti.targets.msp430.MSP430X
index URL

MSP430X large code, restricted data model, little endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/msp430/MSP430X.xdc
var MSP430X = xdc.useModule('ti.targets.msp430.MSP430X');
module-wide constants & types
    var obj = new MSP430X.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MSP430X.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MSP430X.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MSP430X.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MSP430X.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MSP430X.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MSP430X.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MSP430X.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MSP430X.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MSP430X.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MSP430X.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MSP430X.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MSP430X.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const MSP430X.ar// The command used to create an archive = ITarget.Command {
        cmd: "ar430",
        opts: "rq"
    };
    const MSP430X.asm// The command used to assembles assembly source files into object files = ITarget.Command {
        cmd: "cl430 -c",
        opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
    };
    const MSP430X.base// A target that this target is based upon = ITarget.Module computed value;
    const MSP430X.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MSP430X.cc// The command used to compile C/C++ source files into object files = ITarget.Command {
        cmd: "cl430 -c",
        opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
    };
    const MSP430X.isa// CPU Instruction Set Architecture (ISA) = String "430X";
    const MSP430X.lnk// The command used to link executables = ITarget.Command {
        cmd: "lnk430",
        opts: ""
    };
    const MSP430X.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "large",
        dataModel: "restricted"
    };
    const MSP430X.name// Nickname for this target = String "MSP430X";
    const MSP430X.os// Name of OS required to run programs built for this target = String computed value;
    const MSP430X.rts// Name of a run-time support package to include = String "ti.targets.msp430.rts430";
    const MSP430X.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".reset",
            "data"
        ]
    ];
    const MSP430X.stdInclude// Standard C/C++ types header = String "ti/targets/msp430/std.h";
    const MSP430X.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 4,
            align: 2
        },
        t_Float: {
            size: 4,
            align: 2
        },
        t_Fxn: {
            size: 4,
            align: 2
        },
        t_Int: {
            size: 2,
            align: 2
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 4,
            align: 2
        },
        t_LDouble: {
            size: 4,
            align: 2
        },
        t_LLong: {
            size: 4,
            align: 2
        },
        t_Ptr: {
            size: 4,
            align: 2
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const MSP430X.suffix// Suffix appended to all objs, libraries, and executable = String "430X";
    const MSP430X.vers// The command used to get the tool-chain to return a version number = ITarget.Command {
        cmd: "cl430",
        opts: "--compiler_revision"
    };
     MSP430X.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     MSP430X.asmOpts// User configurable assembler options = ITarget.Options {
        prefix: "-qq",
        suffix: ""
    };
     MSP430X.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     MSP430X.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MSP430X.ccOpts// User configurable compiler options = ITarget.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     MSP430X.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     MSP430X.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     MSP430X.execExt// Extension for executables = String undefined;
     MSP430X.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     MSP430X.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include ";
     MSP430X.linkLib// Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib) = String "libc.a";
     MSP430X.lnkOpts// User configurable linker options = ITarget.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     MSP430X.pathPrefix// A prefix to the PATH environment variable = String "";
     MSP430X.platform// The default platform name for this target = String undefined;
     MSP430X.platforms// A set of platforms that can support this target = String[] [ ];
     MSP430X.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf"
                }
            }
        ]
    ];
     MSP430X.rootDir// Installation directory for this target's code generation tools = String undefined;
     MSP430X.version// The Compatibility Key associated with this target = String undefined;
     MSP430X.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     MSP430X.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MSP430X.asmName// The function that converts a C name into an assembly name(String CName) returns String
     MSP430X.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MSP430X.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MSP430X.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MSP430X.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MSP430X.getVersion// Get a target-specific Compatibility Key string() returns String
     MSP430X.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MSP430X.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct MSP430X.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MSP430X.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MSP430X.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MSP430X.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MSP430X.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MSP430X.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MSP430X.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MSP430X.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MSP430X.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MSP430X.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MSP430X.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MSP430X.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MSP430X.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MSP430X.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MSP430X.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MSP430X.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MSP430X.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MSP430X.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MSP430X.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MSP430X.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MSP430X.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MSP430X.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MSP430X.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MSP430X.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MSP430X.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MSP430X.alignDirectiveSupported = Bool true;
config MSP430X.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MSP430X.ar = ITarget.Command {
    cmd: "ar430",
    opts: "rq"
};
config MSP430X.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MSP430X.asm = ITarget.Command {
    cmd: "cl430 -c",
    opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
};
config MSP430X.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MSP430X.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MSP430X.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MSP430X.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MSP430X.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MSP430X.cc = ITarget.Command {
    cmd: "cl430 -c",
    opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
};
config MSP430X.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MSP430X.isa = String "430X";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MSP430X.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MSP430X.lnk = ITarget.Command {
    cmd: "lnk430",
    opts: ""
};
config MSP430X.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MSP430X.model = ITarget.Model {
    endian: "little",
    codeModel: "large",
    dataModel: "restricted"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MSP430X.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MSP430X.name = String "MSP430X";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MSP430X.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MSP430X.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MSP430X.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MSP430X.rts = String "ti.targets.msp430.rts430";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MSP430X.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MSP430X.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".reset",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MSP430X.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const MSP430X.stdInclude = String "ti/targets/msp430/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MSP430X.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MSP430X.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 4,
        align: 2
    },
    t_Float: {
        size: 4,
        align: 2
    },
    t_Fxn: {
        size: 4,
        align: 2
    },
    t_Int: {
        size: 2,
        align: 2
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 4,
        align: 2
    },
    t_LDouble: {
        size: 4,
        align: 2
    },
    t_LLong: {
        size: 4,
        align: 2
    },
    t_Ptr: {
        size: 4,
        align: 2
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MSP430X.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MSP430X.suffix = String "430X";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MSP430X.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const MSP430X.vers = ITarget.Command {
    cmd: "cl430",
    opts: "--compiler_revision"
};
config MSP430X.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MSP430X.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config MSP430X.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MSP430X.asmOpts = ITarget.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config MSP430X.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
MSP430X.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config MSP430X.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MSP430X.ccConfigOpts = ITarget.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MSP430X.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MSP430X.ccOpts = ITarget.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config MSP430X.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MSP430X.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MSP430X.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
MSP430X.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config MSP430X.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MSP430X.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MSP430X.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
MSP430X.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config MSP430X.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MSP430X.includeOpts = String "-I$(rootDir)/include ";
config MSP430X.linkLib // module-wide
index URL

Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib)

XDCscript usage meta-domain
MSP430X.linkLib = String "libc.a";
config MSP430X.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MSP430X.lnkOpts = ITarget.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config MSP430X.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
MSP430X.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config MSP430X.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MSP430X.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MSP430X.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MSP430X.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MSP430X.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
MSP430X.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MSP430X.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MSP430X.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MSP430X.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MSP430X.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config MSP430X.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
MSP430X.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
MSP430X.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MSP430X.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
MSP430X.asmName(String CName) returns String
MSP430X.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MSP430X.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MSP430X.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MSP430X.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MSP430X.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MSP430X.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MSP430X.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MSP430X.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MSP430X.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MSP430X.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MSP430X.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MSP430X.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MSP430X.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:59 GMT


module ti.targets.msp430.MSP430X

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    import ti.targets.ITarget;
    14
    15    /*!
    16     *  ======== MSP430X.xdc ========
    17     *  MSP430X large code, restricted data model, little endian
    18     */
    19    metaonly module MSP430X inherits ITarget {
    20        override readonly config string name    = "MSP430X";
    21        override readonly config string suffix  = "430X";
    22        override readonly config string isa     = "430X";
    23        override readonly config string rts     = "ti.targets.msp430.rts430";
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "little",
    26            codeModel: "large",
    27            dataModel: "restricted"
    28        };
    29
    30        override readonly config string stdInclude = "ti/targets/msp430/std.h";
    31
    32        override readonly config ITarget.Command ar = {
    33            cmd:  "ar430",
    34            opts: "rq"
    35        };
    36
    37        override readonly config ITarget.Command cc = {
    38            cmd:  "cl430 -c",
    39            opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
    40        };
    41
    42        override readonly config ITarget.Command vers = {
    43            cmd:  "cl430",
    44            opts: "--compiler_revision"
    45        };
    46
    47        override readonly config ITarget.Command asm = {
    48            cmd:  "cl430 -c",
    49            opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
    50        };
    51
    52        override readonly config ITarget.Command lnk = {
    53            cmd:  "lnk430",
    54            opts: ""
    55        };
    56
    57        /*!
    58         *  ======== asmOpts ========
    59         *  User configurable assembler options.
    60         *
    61         *  Defaults:
    62         *  @p(dlist)
    63         *      -`-qq`
    64         *          super quiet mode
    65         */
    66        override config ITarget.Options asmOpts = {
    67            prefix: "-qq",
    68            suffix: ""
    69        };
    70
    71        /*!
    72         *  ======== ccOpts ========
    73         *  User configurable compiler options.
    74         *
    75         *  Defaults:
    76         *  @p(dlist)
    77         *      -`-qq`
    78         *          super quiet mode
    79         *      -`-pdsw225`
    80         *          generate a warning for implicitly declared functions; i.e.,
    81         *          functions without prototypes
    82         */
    83        override config ITarget.Options ccOpts = {
    84            prefix: "-qq -pdsw225",
    85            suffix: ""
    86        };
    87
    88        /*!
    89         *  ======== ccConfigOpts ========
    90         *  User configurable compiler options for the generated config C file.
    91         */
    92        override config ITarget.Options ccConfigOpts = {
    93            prefix: "$(ccOpts.prefix)",
    94            suffix: "$(ccOpts.suffix)"
    95        };
    96
    97        /*!
    98         *  ======== linkLib ========
    99         *  Default MSP430 cgtools runtime library to link with
   100         *  (options: rts16e.lib, rts32e.lib)
   101         */
   102        config string linkLib = "libc.a";
   103
   104        /*!
   105         *  ======== lnkOpts ========
   106         *  User configurable linker options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-w`
   111         *          Display linker warnings
   112         *      -`-q`
   113         *          Quite run
   114         *      -`-u`
   115         *          Place unresolved external symbol into symbol table
   116         *      -`-c`
   117         *          ROM autoinitialization model
   118         *      -`-m`
   119         *          create a map file
   120         */
   121        override config ITarget.Options lnkOpts = {
   122            prefix: "-w -q -u _c_int00",
   123            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   124        };
   125
   126        /*!
   127         *  ======== profiles ========
   128         *  Standard options profiles for the TI tool-chain.
   129         */
   130        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   131            ["debug", {
   132                compileOpts: {
   133                    copts: "-g",
   134                    defs:  "-D_DEBUG_=1",
   135                }
   136            }],
   137            ["release", {
   138                compileOpts: {
   139                    copts: "-O2 -g --optimize_with_debug",
   140                },
   141            }],
   142            ["profile", {
   143                compileOpts: {
   144                    copts: "-gp",
   145                },
   146            }],
   147            ["coverage", {
   148                compileOpts: {
   149                    copts: "-gp",
   150                },
   151            }],
   152            ["whole_program", {
   153                compileOpts: {
   154                    copts: "-oe -O2 -g --optimize_with_debug",
   155                },
   156            }],
   157            ["whole_program_debug", {
   158                compileOpts: {
   159                    copts: "-oe --symdebug:dwarf",
   160                },
   161            }],
   162        ];
   163
   164        override config string includeOpts = "-I$(rootDir)/include ";
   165
   166        final override readonly config string sectMap[string] = [
   167            [".text", "code"],
   168            [".cinit", "code"],
   169            [".const", "code"],
   170            [".pinit", "code"],
   171
   172            [".bss", "data"],
   173            [".sysmem", "data"],
   174            [".stack", "stack"],
   175            [".args", "data"],
   176            [".cio", "data"],
   177            [".reset", "data"],
   178        ];
   179
   180        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   181            t_IArg          : { size: 4, align: 2 },
   182            t_Char          : { size: 1, align: 1 },
   183            t_Double        : { size: 4, align: 2 },
   184            t_Float         : { size: 4, align: 2 },
   185            t_Fxn           : { size: 4, align: 2 },
   186            t_Int           : { size: 2, align: 2 },
   187            t_Int8          : { size: 1, align: 1 },
   188            t_Int16         : { size: 2, align: 2 },
   189            t_Int32         : { size: 4, align: 2 },
   190            t_Long          : { size: 4, align: 2 },
   191            t_LDouble       : { size: 4, align: 2 },
   192            t_LLong         : { size: 4, align: 2 },
   193            t_Ptr           : { size: 4, align: 2 },
   194            t_Short         : { size: 2, align: 2 },
   195            t_Size          : { size: 2, align: 2 },
   196        };
   197    };


module ti.targets.msp430.MSP430X_small

metaonly module ti.targets.msp430.MSP430X_small
index URL

MSP430X small code, small data model, little endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/msp430/MSP430X_small.xdc
var MSP430X_small = xdc.useModule('ti.targets.msp430.MSP430X_small');
module-wide constants & types
    var obj = new MSP430X_small.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MSP430X_small.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MSP430X_small.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MSP430X_small.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MSP430X_small.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MSP430X_small.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MSP430X_small.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MSP430X_small.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MSP430X_small.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MSP430X_small.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MSP430X_small.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MSP430X_small.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MSP430X_small.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const MSP430X_small.ar// The command used to create an archive = ITarget.Command {
        cmd: "ar430",
        opts: "rq"
    };
    const MSP430X_small.asm// The command used to assembles assembly source files into object files = ITarget.Command {
        cmd: "cl430 -c",
        opts: " -vmspx --code_model=small --data_model=small"
    };
    const MSP430X_small.base// A target that this target is based upon = ITarget.Module computed value;
    const MSP430X_small.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MSP430X_small.cc// The command used to compile C/C++ source files into object files = ITarget.Command {
        cmd: "cl430 -c",
        opts: " -vmspx --code_model=small --data_model=small"
    };
    const MSP430X_small.isa// CPU Instruction Set Architecture (ISA) = String "430X";
    const MSP430X_small.lnk// The command used to link executables = ITarget.Command {
        cmd: "lnk430",
        opts: ""
    };
    const MSP430X_small.model// Run-time model = ITarget.Model {
        endian: "little",
        dataModel: "small",
        codeModel: "small"
    };
    const MSP430X_small.name// Nickname for this target = String "MSP430X_small";
    const MSP430X_small.os// Name of OS required to run programs built for this target = String computed value;
    const MSP430X_small.rts// Name of a run-time support package to include = String "ti.targets.msp430.rts430";
    const MSP430X_small.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".reset",
            "data"
        ]
    ];
    const MSP430X_small.stdInclude// Standard C/C++ types header = String "ti/targets/msp430/std.h";
    const MSP430X_small.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 4,
            align: 2
        },
        t_Float: {
            size: 4,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 2,
            align: 2
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 4,
            align: 2
        },
        t_LDouble: {
            size: 4,
            align: 2
        },
        t_LLong: {
            size: 4,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const MSP430X_small.suffix// Suffix appended to all objs, libraries, and executable = String "430XS";
    const MSP430X_small.vers// The command used to get the tool-chain to return a version number = ITarget.Command {
        cmd: "cl430",
        opts: "--compiler_revision"
    };
     MSP430X_small.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     MSP430X_small.asmOpts// User configurable assembler options = ITarget.Options {
        prefix: "-qq",
        suffix: ""
    };
     MSP430X_small.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     MSP430X_small.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MSP430X_small.ccOpts// User configurable compiler options = ITarget.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     MSP430X_small.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     MSP430X_small.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     MSP430X_small.execExt// Extension for executables = String undefined;
     MSP430X_small.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     MSP430X_small.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include ";
     MSP430X_small.linkLib// Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib) = String "rts430x_sc_sd.lib";
     MSP430X_small.lnkOpts// User configurable linker options = ITarget.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     MSP430X_small.pathPrefix// A prefix to the PATH environment variable = String "";
     MSP430X_small.platform// The default platform name for this target = String undefined;
     MSP430X_small.platforms// A set of platforms that can support this target = String[] [ ];
     MSP430X_small.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf"
                }
            }
        ]
    ];
     MSP430X_small.rootDir// Installation directory for this target's code generation tools = String undefined;
     MSP430X_small.version// The Compatibility Key associated with this target = String undefined;
     MSP430X_small.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     MSP430X_small.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.asmName// The function that converts a C name into an assembly name(String CName) returns String
     MSP430X_small.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MSP430X_small.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MSP430X_small.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MSP430X_small.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X_small.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X_small.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MSP430X_small.getVersion// Get a target-specific Compatibility Key string() returns String
     MSP430X_small.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct MSP430X_small.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MSP430X_small.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MSP430X_small.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MSP430X_small.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MSP430X_small.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MSP430X_small.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MSP430X_small.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MSP430X_small.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MSP430X_small.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MSP430X_small.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MSP430X_small.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MSP430X_small.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MSP430X_small.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MSP430X_small.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MSP430X_small.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MSP430X_small.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MSP430X_small.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MSP430X_small.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MSP430X_small.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MSP430X_small.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MSP430X_small.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MSP430X_small.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MSP430X_small.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MSP430X_small.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MSP430X_small.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MSP430X_small.alignDirectiveSupported = Bool true;
config MSP430X_small.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MSP430X_small.ar = ITarget.Command {
    cmd: "ar430",
    opts: "rq"
};
config MSP430X_small.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MSP430X_small.asm = ITarget.Command {
    cmd: "cl430 -c",
    opts: " -vmspx --code_model=small --data_model=small"
};
config MSP430X_small.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MSP430X_small.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MSP430X_small.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MSP430X_small.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MSP430X_small.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MSP430X_small.cc = ITarget.Command {
    cmd: "cl430 -c",
    opts: " -vmspx --code_model=small --data_model=small"
};
config MSP430X_small.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MSP430X_small.isa = String "430X";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MSP430X_small.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MSP430X_small.lnk = ITarget.Command {
    cmd: "lnk430",
    opts: ""
};
config MSP430X_small.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MSP430X_small.model = ITarget.Model {
    endian: "little",
    dataModel: "small",
    codeModel: "small"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MSP430X_small.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MSP430X_small.name = String "MSP430X_small";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MSP430X_small.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MSP430X_small.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MSP430X_small.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MSP430X_small.rts = String "ti.targets.msp430.rts430";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MSP430X_small.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MSP430X_small.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".reset",
        "data"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MSP430X_small.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const MSP430X_small.stdInclude = String "ti/targets/msp430/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MSP430X_small.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MSP430X_small.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 4,
        align: 2
    },
    t_Float: {
        size: 4,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 2,
        align: 2
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 4,
        align: 2
    },
    t_LDouble: {
        size: 4,
        align: 2
    },
    t_LLong: {
        size: 4,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MSP430X_small.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MSP430X_small.suffix = String "430XS";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MSP430X_small.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const MSP430X_small.vers = ITarget.Command {
    cmd: "cl430",
    opts: "--compiler_revision"
};
config MSP430X_small.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MSP430X_small.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config MSP430X_small.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MSP430X_small.asmOpts = ITarget.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config MSP430X_small.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
MSP430X_small.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config MSP430X_small.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MSP430X_small.ccConfigOpts = ITarget.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MSP430X_small.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MSP430X_small.ccOpts = ITarget.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config MSP430X_small.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MSP430X_small.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MSP430X_small.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
MSP430X_small.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config MSP430X_small.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MSP430X_small.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MSP430X_small.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
MSP430X_small.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config MSP430X_small.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MSP430X_small.includeOpts = String "-I$(rootDir)/include ";
config MSP430X_small.linkLib // module-wide
index URL

Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib)

XDCscript usage meta-domain
MSP430X_small.linkLib = String "rts430x_sc_sd.lib";
config MSP430X_small.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MSP430X_small.lnkOpts = ITarget.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config MSP430X_small.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
MSP430X_small.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config MSP430X_small.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MSP430X_small.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MSP430X_small.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MSP430X_small.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MSP430X_small.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
MSP430X_small.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-gp"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MSP430X_small.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MSP430X_small.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MSP430X_small.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MSP430X_small.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config MSP430X_small.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
MSP430X_small.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
MSP430X_small.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MSP430X_small.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
MSP430X_small.asmName(String CName) returns String
MSP430X_small.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MSP430X_small.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X_small.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MSP430X_small.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MSP430X_small.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X_small.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MSP430X_small.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X_small.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MSP430X_small.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MSP430X_small.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MSP430X_small.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MSP430X_small.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MSP430X_small.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MSP430X_small.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MSP430X_small.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MSP430X_small.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X_small.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:14:59 GMT


module ti.targets.msp430.MSP430X_small

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    import ti.targets.ITarget;
    14
    15    /*!
    16     *  ======== MSP430X_small.xdc ========
    17     *  MSP430X small code, small data model, little endian
    18     */
    19    metaonly module MSP430X_small inherits ITarget {
    20        override readonly config string name    = "MSP430X_small";
    21        override readonly config string suffix  = "430XS";
    22        override readonly config string isa     = "430X";
    23        override readonly config string rts     = "ti.targets.msp430.rts430";
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "little",
    26            dataModel: "small",
    27            codeModel: "small"
    28        };
    29
    30        override readonly config string stdInclude = "ti/targets/msp430/std.h";
    31
    32        override readonly config ITarget.Command ar = {
    33            cmd:  "ar430",
    34            opts: "rq"
    35        };
    36
    37        override readonly config ITarget.Command cc = {
    38            cmd:  "cl430 -c",
    39            opts: " -vmspx --code_model=small --data_model=small"
    40        };
    41
    42        override readonly config ITarget.Command vers = {
    43            cmd:  "cl430",
    44            opts: "--compiler_revision"
    45        };
    46
    47        override readonly config ITarget.Command asm = {
    48            cmd:  "cl430 -c",
    49            opts: " -vmspx --code_model=small --data_model=small"
    50        };
    51
    52        override readonly config ITarget.Command lnk = {
    53            cmd:  "lnk430",
    54            opts: ""
    55        };
    56
    57        /*!
    58         *  ======== asmOpts ========
    59         *  User configurable assembler options.
    60         *
    61         *  Defaults:
    62         *  @p(dlist)
    63         *      -`-qq`
    64         *          super quiet mode
    65         */
    66        override config ITarget.Options asmOpts = {
    67            prefix: "-qq",
    68            suffix: ""
    69        };
    70
    71        /*!
    72         *  ======== ccOpts ========
    73         *  User configurable compiler options.
    74         *
    75         *  Defaults:
    76         *  @p(dlist)
    77         *      -`-qq`
    78         *          super quiet mode
    79         *      -`-pdsw225`
    80         *          generate a warning for implicitly declared functions; i.e.,
    81         *          functions without prototypes
    82         */
    83        override config ITarget.Options ccOpts = {
    84            prefix: "-qq -pdsw225",
    85            suffix: ""
    86        };
    87
    88        /*!
    89         *  ======== ccConfigOpts ========
    90         *  User configurable compiler options for the generated config C file.
    91         */
    92        override config ITarget.Options ccConfigOpts = {
    93            prefix: "$(ccOpts.prefix)",
    94            suffix: "$(ccOpts.suffix)"
    95        };
    96
    97        /*!
    98         *  ======== linkLib ========
    99         *  Default MSP430 cgtools runtime library to link with
   100         *  (options: rts16e.lib, rts32e.lib)
   101         */
   102        config string linkLib = "rts430x_sc_sd.lib";
   103
   104        /*!
   105         *  ======== lnkOpts ========
   106         *  User configurable linker options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-w`
   111         *          Display linker warnings
   112         *      -`-q`
   113         *          Quite run
   114         *      -`-u`
   115         *          Place unresolved external symbol into symbol table
   116         *      -`-c`
   117         *          ROM autoinitialization model
   118         *      -`-m`
   119         *          create a map file
   120         */
   121        override config ITarget.Options lnkOpts = {
   122            prefix: "-w -q -u _c_int00",
   123            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   124        };
   125
   126        /*!
   127         *  ======== profiles ========
   128         *  Standard options profiles for the TI tool-chain.
   129         */
   130        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   131            ["debug", {
   132                compileOpts: {
   133                    copts: "-g",
   134                    defs:  "-D_DEBUG_=1",
   135                }
   136            }],
   137            ["release", {
   138                compileOpts: {
   139                    copts: "-O2 -g --optimize_with_debug",
   140                },
   141            }],
   142            ["profile", {
   143                compileOpts: {
   144                    copts: "-gp",
   145                },
   146            }],
   147            ["coverage", {
   148                compileOpts: {
   149                    copts: "-gp",
   150                },
   151            }],
   152            ["whole_program", {
   153                compileOpts: {
   154                    copts: "-oe -O2 -g --optimize_with_debug",
   155                },
   156            }],
   157            ["whole_program_debug", {
   158                compileOpts: {
   159                    copts: "-oe --symdebug:dwarf",
   160                },
   161            }],
   162        ];
   163
   164        override config string includeOpts = "-I$(rootDir)/include ";
   165
   166        final override readonly config string sectMap[string] = [
   167            [".text", "code"],
   168            [".cinit", "code"],
   169            [".const", "code"],
   170            [".pinit", "code"],
   171
   172            [".bss", "data"],
   173            [".sysmem", "data"],
   174            [".stack", "stack"],
   175            [".args", "data"],
   176            [".cio", "data"],
   177            [".reset", "data"],
   178        ];
   179
   180        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   181            t_IArg          : { size: 2, align: 2 },
   182            t_Char          : { size: 1, align: 1 },
   183            t_Double        : { size: 4, align: 2 },
   184            t_Float         : { size: 4, align: 2 },
   185            t_Fxn           : { size: 2, align: 2 },
   186            t_Int           : { size: 2, align: 2 },
   187            t_Int8          : { size: 1, align: 1 },
   188            t_Int16         : { size: 2, align: 2 },
   189            t_Int32         : { size: 4, align: 2 },
   190            t_Long          : { size: 4, align: 2 },
   191            t_LDouble       : { size: 4, align: 2 },
   192            t_LLong         : { size: 4, align: 2 },
   193            t_Ptr           : { size: 2, align: 2 },
   194            t_Short         : { size: 2, align: 2 },
   195            t_Size          : { size: 2, align: 2 },
   196        };
   197    };


package ti.targets.msp430.elf
index URL

Package of targets for MSP430 code generation tools

XDCspec declarations sourced in ti/targets/msp430/elf/package.xdc
requires xdc.bld[1, 0, 2];
package ti.targets.msp430.elf [1, 0, 0] {
    module MSP430;
    // ELF MSP430 small code, small data model, little endian
    module MSP430X;
    // ELF MSP430X large code, restricted data model, little endian
    module MSP430X_small;
    // ELF MSP430X small code, small data model, little endian
}
generated on Thu, 08 Nov 2012 02:15:01 GMT


package ti.targets.msp430.elf

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    requires xdc.bld [1,0,2];
    14
    15    /*!
    16     *  ======== ti.targets.msp430.elf ========
    17     *  Package of targets for MSP430 code generation tools
    18     */
    19    package ti.targets.msp430.elf [1,0,0] {
    20        module MSP430, MSP430X, MSP430X_small;
    21    }
    22
    23


module ti.targets.msp430.elf.MSP430

metaonly module ti.targets.msp430.elf.MSP430
index URL

ELF MSP430 small code, small data model, little endian

  • XDCscript usage
  • Individual elements
This target corresponds to the TI default runtime model for MSP430 devices.
XDCscript usage meta-domain sourced in ti/targets/msp430/elf/MSP430.xdc
var MSP430 = xdc.useModule('ti.targets.msp430.elf.MSP430');
module-wide constants & types
    var obj = new MSP430.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MSP430.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MSP430.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MSP430.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MSP430.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MSP430.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MSP430.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MSP430.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MSP430.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MSP430.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MSP430.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MSP430.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MSP430.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const MSP430.ar// The command used to create an archive = ITarget.Command {
        cmd: "ar430",
        opts: "rq"
    };
    const MSP430.asm// The command used to assembles assembly source files into object files = ITarget.Command {
        cmd: "cl430 --abi=eabi -c",
        opts: " -vmsp"
    };
    const MSP430.base// A target that this target is based upon = ITarget.Module computed value;
    const MSP430.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MSP430.cc// The command used to compile C/C++ source files into object files = ITarget.Command {
        cmd: "cl430 --abi=eabi -c",
        opts: " -vmsp"
    };
    const MSP430.isa// CPU Instruction Set Architecture (ISA) = String "430";
    const MSP430.lnk// The command used to link executables = ITarget.Command {
        cmd: "lnk430",
        opts: ""
    };
    const MSP430.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "small",
        dataModel: "small"
    };
    const MSP430.name// Nickname for this target = String "MSP430";
    const MSP430.os// Name of OS required to run programs built for this target = String computed value;
    const MSP430.rts// Name of a run-time support package to include = String "ti.targets.msp430.rts430";
    const MSP430.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".reset",
            "data"
        ],
        [
            ".mspabi.extab",
            "code"
        ],
        [
            ".mspabi.exidx",
            "code"
        ]
    ];
    const MSP430.stdInclude// Standard C/C++ types header = String "ti/targets/msp430/elf/std.h";
    const MSP430.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 2
        },
        t_Float: {
            size: 4,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 2,
            align: 2
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 4,
            align: 2
        },
        t_LDouble: {
            size: 8,
            align: 2
        },
        t_LLong: {
            size: 8,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const MSP430.suffix// Suffix appended to all objs, libraries, and executable = String "e430";
    const MSP430.vers// The command used to get the tool-chain to return a version number = ITarget.Command {
        cmd: "cl430",
        opts: "--compiler_revision"
    };
     MSP430.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     MSP430.asmOpts// User configurable assembler options = ITarget.Options {
        prefix: "-qq",
        suffix: ""
    };
     MSP430.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     MSP430.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MSP430.ccOpts// User configurable compiler options = ITarget.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     MSP430.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     MSP430.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     MSP430.execExt// Extension for executables = String undefined;
     MSP430.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     MSP430.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include ";
     MSP430.linkLib// Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib) = String "rts430_eabi.lib";
     MSP430.lnkOpts// User configurable linker options = ITarget.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     MSP430.pathPrefix// A prefix to the PATH environment variable = String "";
     MSP430.platform// The default platform name for this target = String undefined;
     MSP430.platforms// A set of platforms that can support this target = String[] [ ];
     MSP430.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-g"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf"
                }
            }
        ]
    ];
     MSP430.rootDir// Installation directory for this target's code generation tools = String undefined;
     MSP430.version// The Compatibility Key associated with this target = String undefined;
     MSP430.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     MSP430.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MSP430.asmName// The function that converts a C name into an assembly name(String CName) returns String
     MSP430.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MSP430.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MSP430.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MSP430.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MSP430.getVersion// Get a target-specific Compatibility Key string() returns String
     MSP430.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MSP430.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct MSP430.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MSP430.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MSP430.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MSP430.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MSP430.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MSP430.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MSP430.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MSP430.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MSP430.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MSP430.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MSP430.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MSP430.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MSP430.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MSP430.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MSP430.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MSP430.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MSP430.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MSP430.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MSP430.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MSP430.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MSP430.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MSP430.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MSP430.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MSP430.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MSP430.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MSP430.alignDirectiveSupported = Bool true;
config MSP430.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MSP430.ar = ITarget.Command {
    cmd: "ar430",
    opts: "rq"
};
config MSP430.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MSP430.asm = ITarget.Command {
    cmd: "cl430 --abi=eabi -c",
    opts: " -vmsp"
};
config MSP430.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MSP430.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MSP430.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MSP430.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MSP430.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MSP430.cc = ITarget.Command {
    cmd: "cl430 --abi=eabi -c",
    opts: " -vmsp"
};
config MSP430.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MSP430.isa = String "430";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MSP430.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MSP430.lnk = ITarget.Command {
    cmd: "lnk430",
    opts: ""
};
config MSP430.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MSP430.model = ITarget.Model {
    endian: "little",
    codeModel: "small",
    dataModel: "small"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MSP430.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MSP430.name = String "MSP430";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MSP430.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MSP430.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MSP430.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MSP430.rts = String "ti.targets.msp430.rts430";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MSP430.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MSP430.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".reset",
        "data"
    ],
    [
        ".mspabi.extab",
        "code"
    ],
    [
        ".mspabi.exidx",
        "code"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MSP430.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const MSP430.stdInclude = String "ti/targets/msp430/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MSP430.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MSP430.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 2
    },
    t_Float: {
        size: 4,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 2,
        align: 2
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 4,
        align: 2
    },
    t_LDouble: {
        size: 8,
        align: 2
    },
    t_LLong: {
        size: 8,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MSP430.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MSP430.suffix = String "e430";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MSP430.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const MSP430.vers = ITarget.Command {
    cmd: "cl430",
    opts: "--compiler_revision"
};
config MSP430.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MSP430.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config MSP430.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MSP430.asmOpts = ITarget.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config MSP430.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
MSP430.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config MSP430.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MSP430.ccConfigOpts = ITarget.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MSP430.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MSP430.ccOpts = ITarget.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config MSP430.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MSP430.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MSP430.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
MSP430.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config MSP430.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MSP430.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MSP430.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
MSP430.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config MSP430.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MSP430.includeOpts = String "-I$(rootDir)/include ";
config MSP430.linkLib // module-wide
index URL

Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib)

XDCscript usage meta-domain
MSP430.linkLib = String "rts430_eabi.lib";
config MSP430.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MSP430.lnkOpts = ITarget.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config MSP430.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
MSP430.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config MSP430.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MSP430.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MSP430.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MSP430.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MSP430.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
MSP430.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-g"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MSP430.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MSP430.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MSP430.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MSP430.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config MSP430.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
MSP430.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
MSP430.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MSP430.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
MSP430.asmName(String CName) returns String
MSP430.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MSP430.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MSP430.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MSP430.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MSP430.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MSP430.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MSP430.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MSP430.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MSP430.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MSP430.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MSP430.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MSP430.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MSP430.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MSP430.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:15:01 GMT


module ti.targets.msp430.elf.MSP430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== MSP430.xdc ========
    15     *  ELF MSP430 small code, small data model, little endian
    16     *
    17     *  This target corresponds to the TI default runtime model for MSP430 devices.
    18     */
    19    metaonly module MSP430 inherits ti.targets.ITarget {
    20        override readonly config string name    = "MSP430";
    21        override readonly config string suffix  = "e430";
    22        override readonly config string isa     = "430";
    23        override readonly config string rts     = "ti.targets.msp430.rts430";
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "little",
    26            codeModel: "small",
    27            dataModel: "small"
    28        };
    29
    30        override readonly config string stdInclude = "ti/targets/msp430/elf/std.h";
    31
    32        override readonly config ti.targets.ITarget.Command ar = {
    33            cmd:  "ar430",
    34            opts: "rq"
    35        };
    36
    37        override readonly config ti.targets.ITarget.Command cc = {
    38            cmd:  "cl430 --abi=eabi -c",
    39            opts: " -vmsp"
    40        };
    41
    42        override readonly config ti.targets.ITarget.Command vers = {
    43            cmd:  "cl430",
    44            opts: "--compiler_revision"
    45        };
    46
    47        override readonly config ti.targets.ITarget.Command asm = {
    48            cmd:  "cl430 --abi=eabi -c",
    49            opts: " -vmsp"
    50        };
    51
    52        override readonly config ti.targets.ITarget.Command lnk = {
    53            cmd:  "lnk430",
    54            opts: ""
    55        };
    56
    57        /*!
    58         *  ======== asmOpts ========
    59         *  User configurable assembler options.
    60         *
    61         *  Defaults:
    62         *  @p(dlist)
    63         *      -`-qq`
    64         *          super quiet mode
    65         */
    66        override config ti.targets.ITarget.Options asmOpts = {
    67            prefix: "-qq",
    68            suffix: ""
    69        };
    70
    71        /*!
    72         *  ======== ccOpts ========
    73         *  User configurable compiler options.
    74         *
    75         *  Defaults:
    76         *  @p(dlist)
    77         *      -`-qq`
    78         *          super quiet mode
    79         *      -`-pdsw225`
    80         *          generate a warning for implicitly declared functions; i.e.,
    81         *          functions without prototypes
    82         */
    83        override config ti.targets.ITarget.Options ccOpts = {
    84            prefix: "-qq -pdsw225",
    85            suffix: ""
    86        };
    87
    88        /*!
    89         *  ======== ccConfigOpts ========
    90         *  User configurable compiler options for the generated config C file.
    91         */
    92        override config ti.targets.ITarget.Options ccConfigOpts = {
    93            prefix: "$(ccOpts.prefix)",
    94            suffix: "$(ccOpts.suffix)"
    95        };
    96
    97        /*!
    98         *  ======== linkLib ========
    99         *  Default MSP430 cgtools runtime library to link with
   100         *  (options: rts16e.lib, rts32e.lib)
   101         */
   102        config string linkLib = "rts430_eabi.lib";
   103
   104        /*!
   105         *  ======== lnkOpts ========
   106         *  User configurable linker options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-w`
   111         *          Display linker warnings
   112         *      -`-q`
   113         *          Quite run
   114         *      -`-u`
   115         *          Place unresolved external symbol into symbol table
   116         *      -`-c`
   117         *          ROM autoinitialization model
   118         *      -`-m`
   119         *          create a map file
   120         */
   121        override config ti.targets.ITarget.Options lnkOpts = {
   122            prefix: "-w -q -u _c_int00",
   123            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   124        };
   125
   126        /*!
   127         *  ======== profiles ========
   128         *  Standard options profiles for the TI tool-chain.
   129         */
   130        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   131            ["debug", {
   132                compileOpts: {
   133                    copts: "-g",
   134                    defs:  "-D_DEBUG_=1",
   135                }
   136            }],
   137            ["release", {
   138                compileOpts: {
   139                    copts: "-O2 -g --optimize_with_debug",
   140                },
   141            }],
   142            ["profile", {
   143                compileOpts: {
   144                    copts: "-g",
   145                },
   146            }],
   147            ["coverage", {
   148                compileOpts: {
   149                    copts: "-g",
   150                },
   151            }],
   152            ["whole_program", {
   153                compileOpts: {
   154                    copts: "-oe -O2 -g --optimize_with_debug",
   155                },
   156            }],
   157            ["whole_program_debug", {
   158                compileOpts: {
   159                    copts: "-oe --symdebug:dwarf",
   160                },
   161            }],
   162        ];
   163
   164        override config string includeOpts = "-I$(rootDir)/include ";
   165
   166        final override readonly config string sectMap[string] = [
   167            [".text", "code"],
   168            [".cinit", "code"],
   169            [".const", "code"],
   170
   171            [".init_array", "data"],
   172            [".bss", "data"],
   173            [".data", "data"],
   174            [".sysmem", "data"],
   175            [".stack", "stack"],
   176            [".args", "data"],
   177            [".cio", "data"],
   178            [".reset", "data"],
   179            [".mspabi.extab", "code"],
   180            [".mspabi.exidx", "code"]
   181        ];
   182
   183        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   184            t_IArg          : { size: 2, align: 2 },
   185            t_Char          : { size: 1, align: 1 },
   186            t_Double        : { size: 8, align: 2 },
   187            t_Float         : { size: 4, align: 2 },
   188            t_Fxn           : { size: 2, align: 2 },
   189            t_Int           : { size: 2, align: 2 },
   190            t_Int8          : { size: 1, align: 1 },
   191            t_Int16         : { size: 2, align: 2 },
   192            t_Int32         : { size: 4, align: 2 },
   193            t_Long          : { size: 4, align: 2 },
   194            t_LDouble       : { size: 8, align: 2 },
   195            t_LLong         : { size: 8, align: 2 },
   196            t_Ptr           : { size: 2, align: 2 },
   197            t_Short         : { size: 2, align: 2 },
   198            t_Size          : { size: 2, align: 2 },
   199        };
   200
   201        override config String binaryParser = "ti.targets.omf.elf.Elf32";
   202    };


module ti.targets.msp430.elf.MSP430X

metaonly module ti.targets.msp430.elf.MSP430X
index URL

ELF MSP430X large code, restricted data model, little endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/msp430/elf/MSP430X.xdc
var MSP430X = xdc.useModule('ti.targets.msp430.elf.MSP430X');
module-wide constants & types
    var obj = new MSP430X.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MSP430X.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MSP430X.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MSP430X.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MSP430X.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MSP430X.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MSP430X.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MSP430X.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MSP430X.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MSP430X.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MSP430X.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MSP430X.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MSP430X.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const MSP430X.ar// The command used to create an archive = ITarget.Command {
        cmd: "ar430",
        opts: "rq"
    };
    const MSP430X.asm// The command used to assembles assembly source files into object files = ITarget.Command {
        cmd: "cl430 --abi=eabi -c",
        opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
    };
    const MSP430X.base// A target that this target is based upon = ITarget.Module computed value;
    const MSP430X.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MSP430X.cc// The command used to compile C/C++ source files into object files = ITarget.Command {
        cmd: "cl430 --abi=eabi -c",
        opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
    };
    const MSP430X.isa// CPU Instruction Set Architecture (ISA) = String "430X";
    const MSP430X.lnk// The command used to link executables = ITarget.Command {
        cmd: "lnk430",
        opts: ""
    };
    const MSP430X.model// Run-time model = ITarget.Model {
        endian: "little",
        codeModel: "large",
        dataModel: "restricted"
    };
    const MSP430X.name// Nickname for this target = String "MSP430X";
    const MSP430X.os// Name of OS required to run programs built for this target = String computed value;
    const MSP430X.rts// Name of a run-time support package to include = String "ti.targets.msp430.rts430";
    const MSP430X.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".reset",
            "data"
        ],
        [
            ".mspabi.extab",
            "code"
        ],
        [
            ".mspabi.exidx",
            "code"
        ]
    ];
    const MSP430X.stdInclude// Standard C/C++ types header = String "ti/targets/msp430/elf/std.h";
    const MSP430X.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 4,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 2
        },
        t_Float: {
            size: 4,
            align: 2
        },
        t_Fxn: {
            size: 4,
            align: 2
        },
        t_Int: {
            size: 2,
            align: 2
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 4,
            align: 2
        },
        t_LDouble: {
            size: 8,
            align: 2
        },
        t_LLong: {
            size: 8,
            align: 2
        },
        t_Ptr: {
            size: 4,
            align: 2
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const MSP430X.suffix// Suffix appended to all objs, libraries, and executable = String "e430X";
    const MSP430X.vers// The command used to get the tool-chain to return a version number = ITarget.Command {
        cmd: "cl430",
        opts: "--compiler_revision"
    };
     MSP430X.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     MSP430X.asmOpts// User configurable assembler options = ITarget.Options {
        prefix: "-qq",
        suffix: ""
    };
     MSP430X.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     MSP430X.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MSP430X.ccOpts// User configurable compiler options = ITarget.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     MSP430X.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     MSP430X.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     MSP430X.execExt// Extension for executables = String undefined;
     MSP430X.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     MSP430X.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include ";
     MSP430X.linkLib// Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib) = String "rts430x_lc_rd_eabi.lib";
     MSP430X.lnkOpts// User configurable linker options = ITarget.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     MSP430X.pathPrefix// A prefix to the PATH environment variable = String "";
     MSP430X.platform// The default platform name for this target = String undefined;
     MSP430X.platforms// A set of platforms that can support this target = String[] [ ];
     MSP430X.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-g"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf"
                }
            }
        ]
    ];
     MSP430X.rootDir// Installation directory for this target's code generation tools = String undefined;
     MSP430X.version// The Compatibility Key associated with this target = String undefined;
     MSP430X.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     MSP430X.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MSP430X.asmName// The function that converts a C name into an assembly name(String CName) returns String
     MSP430X.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MSP430X.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MSP430X.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MSP430X.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MSP430X.getVersion// Get a target-specific Compatibility Key string() returns String
     MSP430X.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MSP430X.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct MSP430X.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MSP430X.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MSP430X.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MSP430X.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MSP430X.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MSP430X.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MSP430X.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MSP430X.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MSP430X.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MSP430X.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MSP430X.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MSP430X.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MSP430X.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MSP430X.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MSP430X.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MSP430X.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MSP430X.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MSP430X.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MSP430X.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MSP430X.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MSP430X.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MSP430X.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MSP430X.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MSP430X.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MSP430X.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MSP430X.alignDirectiveSupported = Bool true;
config MSP430X.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MSP430X.ar = ITarget.Command {
    cmd: "ar430",
    opts: "rq"
};
config MSP430X.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MSP430X.asm = ITarget.Command {
    cmd: "cl430 --abi=eabi -c",
    opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
};
config MSP430X.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MSP430X.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MSP430X.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MSP430X.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MSP430X.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MSP430X.cc = ITarget.Command {
    cmd: "cl430 --abi=eabi -c",
    opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
};
config MSP430X.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MSP430X.isa = String "430X";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MSP430X.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MSP430X.lnk = ITarget.Command {
    cmd: "lnk430",
    opts: ""
};
config MSP430X.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MSP430X.model = ITarget.Model {
    endian: "little",
    codeModel: "large",
    dataModel: "restricted"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MSP430X.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MSP430X.name = String "MSP430X";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MSP430X.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MSP430X.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MSP430X.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MSP430X.rts = String "ti.targets.msp430.rts430";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MSP430X.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MSP430X.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".reset",
        "data"
    ],
    [
        ".mspabi.extab",
        "code"
    ],
    [
        ".mspabi.exidx",
        "code"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MSP430X.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const MSP430X.stdInclude = String "ti/targets/msp430/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MSP430X.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MSP430X.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 4,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 2
    },
    t_Float: {
        size: 4,
        align: 2
    },
    t_Fxn: {
        size: 4,
        align: 2
    },
    t_Int: {
        size: 2,
        align: 2
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 4,
        align: 2
    },
    t_LDouble: {
        size: 8,
        align: 2
    },
    t_LLong: {
        size: 8,
        align: 2
    },
    t_Ptr: {
        size: 4,
        align: 2
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MSP430X.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MSP430X.suffix = String "e430X";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MSP430X.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const MSP430X.vers = ITarget.Command {
    cmd: "cl430",
    opts: "--compiler_revision"
};
config MSP430X.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MSP430X.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config MSP430X.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MSP430X.asmOpts = ITarget.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config MSP430X.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
MSP430X.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config MSP430X.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MSP430X.ccConfigOpts = ITarget.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MSP430X.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MSP430X.ccOpts = ITarget.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config MSP430X.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MSP430X.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MSP430X.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
MSP430X.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config MSP430X.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MSP430X.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MSP430X.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
MSP430X.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config MSP430X.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MSP430X.includeOpts = String "-I$(rootDir)/include ";
config MSP430X.linkLib // module-wide
index URL

Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib)

XDCscript usage meta-domain
MSP430X.linkLib = String "rts430x_lc_rd_eabi.lib";
config MSP430X.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MSP430X.lnkOpts = ITarget.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config MSP430X.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
MSP430X.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config MSP430X.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MSP430X.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MSP430X.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MSP430X.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MSP430X.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
MSP430X.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-g"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MSP430X.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MSP430X.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MSP430X.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MSP430X.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config MSP430X.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
MSP430X.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
MSP430X.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MSP430X.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
MSP430X.asmName(String CName) returns String
MSP430X.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MSP430X.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MSP430X.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MSP430X.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MSP430X.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MSP430X.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MSP430X.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MSP430X.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MSP430X.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MSP430X.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MSP430X.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MSP430X.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MSP430X.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MSP430X.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:15:01 GMT


module ti.targets.msp430.elf.MSP430X

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    import ti.targets.ITarget;
    14
    15    /*!
    16     *  ======== MSP430X.xdc ========
    17     *  ELF MSP430X large code, restricted data model, little endian
    18     */
    19    metaonly module MSP430X inherits ITarget {
    20        override readonly config string name    = "MSP430X";
    21        override readonly config string suffix  = "e430X";
    22        override readonly config string isa     = "430X";
    23        override readonly config string rts     = "ti.targets.msp430.rts430";
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "little",
    26            codeModel: "large",
    27            dataModel: "restricted"
    28        };
    29
    30        override readonly config string stdInclude = "ti/targets/msp430/elf/std.h";
    31
    32        override readonly config ITarget.Command ar = {
    33            cmd:  "ar430",
    34            opts: "rq"
    35        };
    36
    37        override readonly config ITarget.Command cc = {
    38            cmd:  "cl430 --abi=eabi -c",
    39            opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
    40        };
    41
    42        override readonly config ITarget.Command vers = {
    43            cmd:  "cl430",
    44            opts: "--compiler_revision"
    45        };
    46
    47        override readonly config ITarget.Command asm = {
    48            cmd:  "cl430 --abi=eabi -c",
    49            opts: " -vmspx --near_data=none --code_model=large --data_model=restricted"
    50        };
    51
    52        override readonly config ITarget.Command lnk = {
    53            cmd:  "lnk430",
    54            opts: ""
    55        };
    56
    57        /*!
    58         *  ======== asmOpts ========
    59         *  User configurable assembler options.
    60         *
    61         *  Defaults:
    62         *  @p(dlist)
    63         *      -`-qq`
    64         *          super quiet mode
    65         */
    66        override config ITarget.Options asmOpts = {
    67            prefix: "-qq",
    68            suffix: ""
    69        };
    70
    71        /*!
    72         *  ======== ccOpts ========
    73         *  User configurable compiler options.
    74         *
    75         *  Defaults:
    76         *  @p(dlist)
    77         *      -`-qq`
    78         *          super quiet mode
    79         *      -`-pdsw225`
    80         *          generate a warning for implicitly declared functions; i.e.,
    81         *          functions without prototypes
    82         */
    83        override config ITarget.Options ccOpts = {
    84            prefix: "-qq -pdsw225",
    85            suffix: ""
    86        };
    87
    88        /*!
    89         *  ======== ccConfigOpts ========
    90         *  User configurable compiler options for the generated config C file.
    91         */
    92        override config ITarget.Options ccConfigOpts = {
    93            prefix: "$(ccOpts.prefix)",
    94            suffix: "$(ccOpts.suffix)"
    95        };
    96
    97        /*!
    98         *  ======== linkLib ========
    99         *  Default MSP430 cgtools runtime library to link with
   100         *  (options: rts16e.lib, rts32e.lib)
   101         */
   102        config string linkLib = "rts430x_lc_rd_eabi.lib";
   103
   104        /*!
   105         *  ======== lnkOpts ========
   106         *  User configurable linker options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-w`
   111         *          Display linker warnings
   112         *      -`-q`
   113         *          Quite run
   114         *      -`-u`
   115         *          Place unresolved external symbol into symbol table
   116         *      -`-c`
   117         *          ROM autoinitialization model
   118         *      -`-m`
   119         *          create a map file
   120         */
   121        override config ITarget.Options lnkOpts = {
   122            prefix: "-w -q -u _c_int00",
   123            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   124        };
   125
   126        /*!
   127         *  ======== profiles ========
   128         *  Standard options profiles for the TI tool-chain.
   129         */
   130        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   131            ["debug", {
   132                compileOpts: {
   133                    copts: "-g",
   134                    defs:  "-D_DEBUG_=1",
   135                }
   136            }],
   137            ["release", {
   138                compileOpts: {
   139                    copts: "-O2 -g --optimize_with_debug",
   140                },
   141            }],
   142            ["profile", {
   143                compileOpts: {
   144                    copts: "-g",
   145                },
   146            }],
   147            ["coverage", {
   148                compileOpts: {
   149                    copts: "-g",
   150                },
   151            }],
   152            ["whole_program", {
   153                compileOpts: {
   154                    copts: "-oe -O2 -g --optimize_with_debug",
   155                },
   156            }],
   157            ["whole_program_debug", {
   158                compileOpts: {
   159                    copts: "-oe --symdebug:dwarf",
   160                },
   161            }],
   162        ];
   163
   164        override config string includeOpts = "-I$(rootDir)/include ";
   165
   166        final override readonly config string sectMap[string] = [
   167            [".text", "code"],
   168            [".cinit", "code"],
   169            [".const", "code"],
   170
   171            [".init_array", "data"],
   172            [".bss", "data"],
   173            [".data", "data"],
   174            [".sysmem", "data"],
   175            [".stack", "stack"],
   176            [".args", "data"],
   177            [".cio", "data"],
   178            [".reset", "data"],
   179            [".mspabi.extab", "code"],
   180            [".mspabi.exidx", "code"]
   181        ];
   182
   183        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   184            t_IArg          : { size: 4, align: 2 },
   185            t_Char          : { size: 1, align: 1 },
   186            t_Double        : { size: 8, align: 2 },
   187            t_Float         : { size: 4, align: 2 },
   188            t_Fxn           : { size: 4, align: 2 },
   189            t_Int           : { size: 2, align: 2 },
   190            t_Int8          : { size: 1, align: 1 },
   191            t_Int16         : { size: 2, align: 2 },
   192            t_Int32         : { size: 4, align: 2 },
   193            t_Long          : { size: 4, align: 2 },
   194            t_LDouble       : { size: 8, align: 2 },
   195            t_LLong         : { size: 8, align: 2 },
   196            t_Ptr           : { size: 4, align: 2 },
   197            t_Short         : { size: 2, align: 2 },
   198            t_Size          : { size: 2, align: 2 },
   199        };
   200
   201        override config String binaryParser = "ti.targets.omf.elf.Elf32";
   202    };


module ti.targets.msp430.elf.MSP430X_small

metaonly module ti.targets.msp430.elf.MSP430X_small
index URL

ELF MSP430X small code, small data model, little endian

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/msp430/elf/MSP430X_small.xdc
var MSP430X_small = xdc.useModule('ti.targets.msp430.elf.MSP430X_small');
module-wide constants & types
    var obj = new MSP430X_small.ArchiveGoal// The goal specification passed to the archive function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".a62" = String ...
        obj.files// String of files to archive = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific archiver options = String ...
    var obj = new MSP430X_small.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new MSP430X_small.CommandSet// The commands necessary to create a specified goal;
        obj.msg// brief message describing subsequent commands = String ...
        obj.cmds// commands necessary to generate goal = String ...
        obj.path// host-independent representation of PATH = String[] ...
        obj.envs// environment variable settings for the cmds = String[] ...
    var obj = new MSP430X_small.CompileGoal// The goal specification passed to the compile function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".o62" = String ...
        obj.srcSuffix// optional suffix of source file; e.g., ".c" = String ...
        obj.srcPrefix// optional directory prefix of source file = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific compiler options = ITarget.CompileOptions ...
        obj.configOpts// true if compiling the generated C config file = Bool ...
    var obj = new MSP430X_small.CompileOptions// Options passed to the compiler/assembler;
        obj.aopts// goal specific ASM options = String ...
        obj.copts// goal specific C compiler options = String ...
        obj.cfgcopts// goal specific C config file options = String ...
        obj.defs// goal specific C/ASM definition options = String ...
        obj.incs// goal specific C/ASM include options = String ...
    var obj = new MSP430X_small.DebugGen// Debugger integration support;
        obj.execTemplate// debugger template for executable = String ...
        obj.execPattern// exec file name pattern = String ...
        obj.packageTemplate// debugger template for package = String ...
        obj.packagePattern// package file name pattern = String ...
    var obj = new MSP430X_small.Extension// File extension to file type association;
        obj.suf// file extension (including any '.') = String ...
        obj.typ// type of this file; e.g., "c", "asm", .. = String ...
    var obj = new MSP430X_small.LinkGoal// The goal specification passed to the link function;
        obj.base// base name of the source and destination = String ...
        obj.dstPrefix// directory prefix of destination file = String ...
        obj.dstSuffix// suffix of destination file; e.g., ".x62" = String ...
        obj.files// string of files to link with = String ...
        obj.profile// index into profiles map = String ...
        obj.opts// goal specific linker options = String ...
        obj.dllMode// true if we're linking an assembly = Bool ...
        obj.isRom// reflects the isRom attribute = Bool ...
    var obj = new MSP430X_small.Model// Target runtime model;
        obj.endian// endian-ness of this target = String ...
        obj.codeModel// target-specific code model = String ...
        obj.dataModel// target-specific data model = String ...
        obj.shortEnums// if true, enums are packed into smallest integral type = Bool ...
    var obj = new MSP430X_small.OptionSet// Collection of tool-chain options;
        obj.compileOpts// profile-specific compiler opts = ITarget.CompileOptions ...
        obj.linkOpts// profile-specific linker opts = String ...
        obj.archiveOpts// profile-specific archiver opts = String ...
        obj.filters// ITargetFilter instance descs = ITargetFilter.InstDesc[] ...
    var obj = new MSP430X_small.Options// User configurable command options;
        obj.prefix// options that appear before Command.opts = String ...
        obj.suffix// options that appear after Command.opts = String ...
    var obj = new MSP430X_small.StdTypes// Standard base types supported by all targets;
        obj.t_IArg = ITarget.TypeInfo ...
        obj.t_Char = ITarget.TypeInfo ...
        obj.t_Double = ITarget.TypeInfo ...
        obj.t_Float = ITarget.TypeInfo ...
        obj.t_Fxn = ITarget.TypeInfo ...
        obj.t_Int = ITarget.TypeInfo ...
        obj.t_Int8 = ITarget.TypeInfo ...
        obj.t_Int16 = ITarget.TypeInfo ...
        obj.t_Int32 = ITarget.TypeInfo ...
        obj.t_Int40 = ITarget.TypeInfo ...
        obj.t_Int64 = ITarget.TypeInfo ...
        obj.t_Long = ITarget.TypeInfo ...
        obj.t_LDouble = ITarget.TypeInfo ...
        obj.t_LLong = ITarget.TypeInfo ...
        obj.t_Ptr = ITarget.TypeInfo ...
        obj.t_Short = ITarget.TypeInfo ...
        obj.t_Size = ITarget.TypeInfo ...
module-wide config parameters
    const MSP430X_small.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const MSP430X_small.ar// The command used to create an archive = ITarget.Command {
        cmd: "ar430",
        opts: "rq"
    };
    const MSP430X_small.asm// The command used to assembles assembly source files into object files = ITarget.Command {
        cmd: "cl430 --abi=eabi -c",
        opts: " -vmspx --code_model=small --data_model=small"
    };
    const MSP430X_small.base// A target that this target is based upon = ITarget.Module computed value;
    const MSP430X_small.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const MSP430X_small.cc// The command used to compile C/C++ source files into object files = ITarget.Command {
        cmd: "cl430 --abi=eabi -c",
        opts: " -vmspx --code_model=small --data_model=small"
    };
    const MSP430X_small.isa// CPU Instruction Set Architecture (ISA) = String "430X";
    const MSP430X_small.lnk// The command used to link executables = ITarget.Command {
        cmd: "lnk430",
        opts: ""
    };
    const MSP430X_small.model// Run-time model = ITarget.Model {
        endian: "little",
        dataModel: "small",
        codeModel: "small"
    };
    const MSP430X_small.name// Nickname for this target = String "MSP430X_small";
    const MSP430X_small.os// Name of OS required to run programs built for this target = String computed value;
    const MSP430X_small.rts// Name of a run-time support package to include = String "ti.targets.msp430.rts430";
    const MSP430X_small.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".init_array",
            "data"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".reset",
            "data"
        ],
        [
            ".mspabi.extab",
            "code"
        ],
        [
            ".mspabi.exidx",
            "code"
        ]
    ];
    const MSP430X_small.stdInclude// Standard C/C++ types header = String "ti/targets/msp430/elf/std.h";
    const MSP430X_small.stdTypes// Size and alignment for standard base types = ITarget.StdTypes {
        t_IArg: {
            size: 2,
            align: 2
        },
        t_Char: {
            size: 1,
            align: 1
        },
        t_Double: {
            size: 8,
            align: 2
        },
        t_Float: {
            size: 4,
            align: 2
        },
        t_Fxn: {
            size: 2,
            align: 2
        },
        t_Int: {
            size: 2,
            align: 2
        },
        t_Int8: {
            size: 1,
            align: 1
        },
        t_Int16: {
            size: 2,
            align: 2
        },
        t_Int32: {
            size: 4,
            align: 2
        },
        t_Long: {
            size: 4,
            align: 2
        },
        t_LDouble: {
            size: 8,
            align: 2
        },
        t_LLong: {
            size: 8,
            align: 2
        },
        t_Ptr: {
            size: 2,
            align: 2
        },
        t_Short: {
            size: 2,
            align: 2
        },
        t_Size: {
            size: 2,
            align: 2
        }
    };
    const MSP430X_small.suffix// Suffix appended to all objs, libraries, and executable = String "e430XS";
    const MSP430X_small.vers// The command used to get the tool-chain to return a version number = ITarget.Command {
        cmd: "cl430",
        opts: "--compiler_revision"
    };
     MSP430X_small.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     MSP430X_small.asmOpts// User configurable assembler options = ITarget.Options {
        prefix: "-qq",
        suffix: ""
    };
     MSP430X_small.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     MSP430X_small.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     MSP430X_small.ccOpts// User configurable compiler options = ITarget.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     MSP430X_small.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     MSP430X_small.debugGen// TI Debugger/IDE file generation support = ITarget.DebugGen {
        execTemplate: "ti/targets/ccs_exec.xdt",
        execPattern: "$(cfgDir)$(cfgName).pjt",
        packageTemplate: "ti/targets/ccs_package.xdt",
        packagePattern: "package/$(pkgName).pjt"
    };
     MSP430X_small.execExt// Extension for executables = String undefined;
     MSP430X_small.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     MSP430X_small.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include ";
     MSP430X_small.linkLib// Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib) = String "rts430x_sc_sd_eabi.lib";
     MSP430X_small.lnkOpts// User configurable linker options = ITarget.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map "
    };
     MSP430X_small.pathPrefix// A prefix to the PATH environment variable = String "";
     MSP430X_small.platform// The default platform name for this target = String undefined;
     MSP430X_small.platforms// A set of platforms that can support this target = String[] [ ];
     MSP430X_small.profiles// Standard options profiles for the TI tool-chain = ITarget.OptionSet[string] [
        [
            "debug",
            {
                compileOpts: {
                    copts: "-g",
                    defs: "-D_DEBUG_=1"
                }
            }
        ],
        [
            "release",
            {
                compileOpts: {
                    copts: "-O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-g"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 -g --optimize_with_debug"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf"
                }
            }
        ]
    ];
     MSP430X_small.rootDir// Installation directory for this target's code generation tools = String undefined;
     MSP430X_small.version// The Compatibility Key associated with this target = String undefined;
     MSP430X_small.versionMap// Map of TI compiler version numbers to compatibility keys = String[string] [
        [
            "TMS320C6x_4.32",
            "1,0,4.32,0"
        ],
        [
            "TMS320C55x_2.56",
            "1,0,2.56,0"
        ],
        [
            "TMS320C54x_3.83",
            "1,0,3.83,0"
        ],
        [
            "TMS320C2000_3.07",
            "1,0,3.07,0"
        ]
    ];
module-wide functions
     MSP430X_small.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.asmName// The function that converts a C name into an assembly name(String CName) returns String
     MSP430X_small.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     MSP430X_small.genConstCustom// Return any custom generated code related to generated constants(String[] names, String[] types) returns String
     MSP430X_small.genVisibleData// Return any custom generated code related to data generated in the config C file(String[] quals, String[] types, String[] names) returns String
     MSP430X_small.genVisibleFxns// Return any custom generated code related to functions generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X_small.genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(String[] types, String[] names, String[] args) returns String
     MSP430X_small.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     MSP430X_small.getVersion// Get a target-specific Compatibility Key string() returns String
     MSP430X_small.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     MSP430X_small.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct MSP430X_small.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new MSP430X_small.ArchiveGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".a62"
    obj.files = String ...
    // String of files to archive
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific archiver options
SEE
archive
struct MSP430X_small.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new MSP430X_small.Command;
    obj.cmd = String ...
    // the command to run
    obj.opts = String ...
    // required options for the command
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct MSP430X_small.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new MSP430X_small.CommandSet;
    obj.msg = String ...
    // brief message describing subsequent commands
    obj.cmds = String ...
    // commands necessary to generate goal
    obj.path = String[] ...
    // host-independent representation of PATH
    obj.envs = String[] ...
    // environment variable settings for the cmds
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct MSP430X_small.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new MSP430X_small.CompileGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".o62"
    obj.srcSuffix = String ...
    // optional suffix of source file; e.g., ".c"
    obj.srcPrefix = String ...
    // optional directory prefix of source file
    obj.profile = String ...
    // index into profiles map
    obj.opts = ITarget.CompileOptions ...
    // goal specific compiler options
    obj.configOpts = Bool ...
    // true if compiling the generated C config file
SEE
compile, scompile
struct MSP430X_small.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new MSP430X_small.CompileOptions;
    obj.aopts = String ...
    // goal specific ASM options
    obj.copts = String ...
    // goal specific C compiler options
    obj.cfgcopts = String ...
    // goal specific C config file options
    obj.defs = String ...
    // goal specific C/ASM definition options
    obj.incs = String ...
    // goal specific C/ASM include options
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct MSP430X_small.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new MSP430X_small.DebugGen;
    obj.execTemplate = String ...
    // debugger template for executable
    obj.execPattern = String ...
    // exec file name pattern
    obj.packageTemplate = String ...
    // debugger template for package
    obj.packagePattern = String ...
    // package file name pattern
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct MSP430X_small.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new MSP430X_small.Extension;
    obj.suf = String ...
    // file extension (including any '.')
    obj.typ = String ...
    // type of this file; e.g., "c", "asm", ..
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct MSP430X_small.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new MSP430X_small.LinkGoal;
    obj.base = String ...
    // base name of the source and destination
    obj.dstPrefix = String ...
    // directory prefix of destination file
    obj.dstSuffix = String ...
    // suffix of destination file; e.g., ".x62"
    obj.files = String ...
    // string of files to link with
    obj.profile = String ...
    // index into profiles map
    obj.opts = String ...
    // goal specific linker options
    obj.dllMode = Bool ...
    // true if we're linking an assembly
    obj.isRom = Bool ...
    // reflects the isRom attribute
SEE
link
struct MSP430X_small.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new MSP430X_small.Model;
    obj.endian = String ...
    // endian-ness of this target
    obj.codeModel = String ...
    // target-specific code model
    obj.dataModel = String ...
    // target-specific data model
    obj.shortEnums = Bool ...
    // if true, enums are packed into smallest integral type
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct MSP430X_small.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new MSP430X_small.OptionSet;
    obj.compileOpts = ITarget.CompileOptions ...
    // profile-specific compiler opts
    obj.linkOpts = String ...
    // profile-specific linker opts
    obj.archiveOpts = String ...
    // profile-specific archiver opts
    obj.filters = ITargetFilter.InstDesc[] ...
    // ITargetFilter instance descs
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct MSP430X_small.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new MSP430X_small.Options;
    obj.prefix = String ...
    // options that appear before Command.opts
    obj.suffix = String ...
    // options that appear after Command.opts
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct MSP430X_small.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new MSP430X_small.StdTypes;
    obj.t_IArg = ITarget.TypeInfo ...
    obj.t_Char = ITarget.TypeInfo ...
    obj.t_Double = ITarget.TypeInfo ...
    obj.t_Float = ITarget.TypeInfo ...
    obj.t_Fxn = ITarget.TypeInfo ...
    obj.t_Int = ITarget.TypeInfo ...
    obj.t_Int8 = ITarget.TypeInfo ...
    obj.t_Int16 = ITarget.TypeInfo ...
    obj.t_Int32 = ITarget.TypeInfo ...
    obj.t_Int40 = ITarget.TypeInfo ...
    obj.t_Int64 = ITarget.TypeInfo ...
    obj.t_Long = ITarget.TypeInfo ...
    obj.t_LDouble = ITarget.TypeInfo ...
    obj.t_LLong = ITarget.TypeInfo ...
    obj.t_Ptr = ITarget.TypeInfo ...
    obj.t_Short = ITarget.TypeInfo ...
    obj.t_Size = ITarget.TypeInfo ...
SEE
stdTypes
config MSP430X_small.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCscript usage meta-domain
const MSP430X_small.alignDirectiveSupported = Bool true;
config MSP430X_small.ar // module-wide
index URL

The command used to create an archive

XDCscript usage meta-domain
const MSP430X_small.ar = ITarget.Command {
    cmd: "ar430",
    opts: "rq"
};
config MSP430X_small.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const MSP430X_small.asm = ITarget.Command {
    cmd: "cl430 --abi=eabi -c",
    opts: " -vmspx --code_model=small --data_model=small"
};
config MSP430X_small.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const MSP430X_small.base = ITarget.Module computed value;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config MSP430X_small.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const MSP430X_small.bitsPerChar = Int 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config MSP430X_small.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCscript usage meta-domain
const MSP430X_small.cc = ITarget.Command {
    cmd: "cl430 --abi=eabi -c",
    opts: " -vmspx --code_model=small --data_model=small"
};
config MSP430X_small.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const MSP430X_small.isa = String "430X";
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config MSP430X_small.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const MSP430X_small.lnk = ITarget.Command {
    cmd: "lnk430",
    opts: ""
};
config MSP430X_small.model // module-wide
index URL

Run-time model

XDCscript usage meta-domain
const MSP430X_small.model = ITarget.Model {
    endian: "little",
    dataModel: "small",
    codeModel: "small"
};
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config MSP430X_small.name // module-wide
index URL

Nickname for this target

XDCscript usage meta-domain
const MSP430X_small.name = String "MSP430X_small";
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config MSP430X_small.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const MSP430X_small.os = String computed value;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config MSP430X_small.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const MSP430X_small.rts = String "ti.targets.msp430.rts430";
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config MSP430X_small.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const MSP430X_small.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".init_array",
        "data"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".reset",
        "data"
    ],
    [
        ".mspabi.extab",
        "code"
    ],
    [
        ".mspabi.exidx",
        "code"
    ]
];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config MSP430X_small.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
const MSP430X_small.stdInclude = String "ti/targets/msp430/elf/std.h";
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config MSP430X_small.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const MSP430X_small.stdTypes = ITarget.StdTypes {
    t_IArg: {
        size: 2,
        align: 2
    },
    t_Char: {
        size: 1,
        align: 1
    },
    t_Double: {
        size: 8,
        align: 2
    },
    t_Float: {
        size: 4,
        align: 2
    },
    t_Fxn: {
        size: 2,
        align: 2
    },
    t_Int: {
        size: 2,
        align: 2
    },
    t_Int8: {
        size: 1,
        align: 1
    },
    t_Int16: {
        size: 2,
        align: 2
    },
    t_Int32: {
        size: 4,
        align: 2
    },
    t_Long: {
        size: 4,
        align: 2
    },
    t_LDouble: {
        size: 8,
        align: 2
    },
    t_LLong: {
        size: 8,
        align: 2
    },
    t_Ptr: {
        size: 2,
        align: 2
    },
    t_Short: {
        size: 2,
        align: 2
    },
    t_Size: {
        size: 2,
        align: 2
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config MSP430X_small.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const MSP430X_small.suffix = String "e430XS";
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config MSP430X_small.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const MSP430X_small.vers = ITarget.Command {
    cmd: "cl430",
    opts: "--compiler_revision"
};
config MSP430X_small.arOpts // module-wide
index URL

User configurable archiver options

XDCscript usage meta-domain
MSP430X_small.arOpts = ITarget2.Options {
    prefix: "",
    suffix: ""
};
config MSP430X_small.asmOpts // module-wide
index URL

User configurable assembler options

XDCscript usage meta-domain
MSP430X_small.asmOpts = ITarget.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config MSP430X_small.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
MSP430X_small.binDir = String "$(rootDir)/bin/";
DETAILS
All build commands returned within a command set (xdc.bld.ITarget.CommandSet.cmds) are formed by prefixing binDir to this target's Command.cmd specification. For example, the compile command returned is formed as follows:
      $(binDir)$(cc.cmd)
where, $(binDir) is this target's binDir value and $(cc.cmd) is the value of this target's cc.cmd string.
If binDir is non-empty then it must end with '/'. If it is empty, the target's commands (compiler, linker, archiver, etc.) will be located along a path constructed from this target's pathPrefix.
config MSP430X_small.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
MSP430X_small.ccConfigOpts = ITarget.Options {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config MSP430X_small.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
MSP430X_small.ccOpts = ITarget.Options {
    prefix: "-qq -pdsw225",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
-pdsw225
generate a warning for implicitly declared functions; i.e., functions without prototypes
config MSP430X_small.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
MSP430X_small.compatibleSuffixes = String[] undefined;
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config MSP430X_small.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
MSP430X_small.debugGen = ITarget.DebugGen {
    execTemplate: "ti/targets/ccs_exec.xdt",
    execPattern: "$(cfgDir)$(cfgName).pjt",
    packageTemplate: "ti/targets/ccs_package.xdt",
    packagePattern: "package/$(pkgName).pjt"
};
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
The settings below generate CCS project files that enable one to debug (and even rebuild) Executables from within the CCS GUI.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
      Program.gen.debuggerFiles = true;
It is also possible to control the generation via build options; see xdc.bld.ITarget.DebugGen.
Note: if you are using CCS 2.x, disable CodeMaestro to prevent instabilities when re-loading project files. CodeMaestro can be disabled via: Options->"Customize ..."->"CodeMaestro Settings"
To debug an executable:
  1. load generated project for the executable: package/cfg/<cfg_name>.pjt
  2. load generated GEL script for the executable: package/cfg/<cfg_name>.gel
  3. load prerequisite packages: GEL->"XDC Package"->open_project
where <cfg_name> is the name of the executable (foo.x62) with the '.' replaced by and '_' (foo_x62).
Alternatively, one can use the ccs_start.pl script in this package to automate the steps above. In addition, it is possible to associate ccs_start.bat (also in this package) with the generated .pjt files to automate the above by double-clicking on the .pjt file.
To avoid navigation to the executable via file menus, you can load the executable associated with the project via:
GEL->"XDC Package"->load_executable
SEE ALSO
xdc.bld.ITarget contains addition information about how to create and use these templates.
config MSP430X_small.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
MSP430X_small.execExt = String undefined;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config MSP430X_small.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
MSP430X_small.extensions = ITarget.Extension[string] ITarget.extensions;
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
TI SPECIFICS
For TI targets, the typ string field of an xdc.bld.ITarget.Extension structure may be of the form "<cmd>:<langOpt>" where <cmd> is one of "asm", "c", "cpp", and <langOpt> is the language option to used to identify the source language of a source file. This allows one to explicitly control the language flag passed to the compiler based on a source file's extension; in particular, one can define separate source extensions for "linear" and "scheduled" assembly files, or simply cause ".s62" files to be treated as "linear" assembly rather than "scheduled" assembly.
For example,
  tiTargets.C62.extensions[".s62"] = {suf: ".s62", typ: "asm:-fl"};
causes all ".s62" files to be treated as linear assembly.
If no ':' appears in the typ string, a default will be used: "-fa" for "asm" files "-fc" for "c" files, and "-fp" for "cpp" files.
config MSP430X_small.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCscript usage meta-domain
MSP430X_small.includeOpts = String "-I$(rootDir)/include ";
config MSP430X_small.linkLib // module-wide
index URL

Default MSP430 cgtools runtime library to link with (options: rts16e.lib, rts32e.lib)

XDCscript usage meta-domain
MSP430X_small.linkLib = String "rts430x_sc_sd_eabi.lib";
config MSP430X_small.lnkOpts // module-wide
index URL

User configurable linker options

XDCscript usage meta-domain
MSP430X_small.lnkOpts = ITarget.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map "
};
DETAILS
Defaults:
-w
Display linker warnings
-q
Quite run
-u
Place unresolved external symbol into symbol table
-c
ROM autoinitialization model
-m
create a map file
config MSP430X_small.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
MSP430X_small.pathPrefix = String "";
DETAILS
Each target command is executed with C_DIR set to "" and PATH set as follows:
      $(pathPrefix);$(binDir);$(PATH)
where, $(pathPrefix) and $(binDir) are the values of the configuration parameters and $(PATH) is the value of the PATH environment variable set by the xdc command (type 'xdc -n' to see this).
Embedded ';' characters within pathPrefix separate directory names. On UNIX hosts these ';' characters are convered to an appropriate separator; i.e., ':'.
config MSP430X_small.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
MSP430X_small.platform = String undefined;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config MSP430X_small.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
MSP430X_small.platforms = String[] [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config MSP430X_small.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
MSP430X_small.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "-g"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "-g"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 -g --optimize_with_debug"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf"
            }
        }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config MSP430X_small.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
MSP430X_small.rootDir = String undefined;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config MSP430X_small.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
MSP430X_small.version = String undefined;
DETAILS
The first two components of this target Compatibility Key are '1,0'. The rest of the Key represents the compiler version. The third component combines the major and the minor version number in the format Major.Minor. The fourth component is the patch number, and the optional fifth component is the version of an Alpha or Beta release.
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
EXAMPLE
If this target's rootDir points to the compiler version 6.0.11, the Compatibility Key is [1,0,6.0,11]. If this target's rootDir points to the compiler version 7.0.0B1, the Compatibility Key is [1,0,7.0,0,1].
config MSP430X_small.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
MSP430X_small.versionMap = String[string] [
    [
        "TMS320C6x_4.32",
        "1,0,4.32,0"
    ],
    [
        "TMS320C55x_2.56",
        "1,0,2.56,0"
    ],
    [
        "TMS320C54x_3.83",
        "1,0,3.83,0"
    ],
    [
        "TMS320C2000_3.07",
        "1,0,3.07,0"
    ]
];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
This map translates version string information from the compiler into a compatibility key. The compatibility key is used to validate consistency among a collection of packages used in a configuration.
TI compiler strings are formed by parsing the output of the compiler's --compiler_revision option and creating a string of the form:
      <comp>_<ver>
where <comp> is the first word of the output and <ver> is the version number that appears on this same line.
There are two forms of version numbers output by the TI code gen tools; an "old" style that is of the form "<major>.<minor>" and a new style of the form "<major>.<minor>.<update>[.<branch>][<qual>], where <major>, <minor>, <update>, and <branch> are non-negative integers and <qual> is of the form "[IBAP]<yyddd>", and <yyddd> is the last two digits of the year concatenated with the number of the day.
If a compiler version is not found in this map the default is "1,0,<major>.<minor>" for old style version numbers, and "1,0,<major>.<minor>,<update>[.<branch>][,<yyddd>]" for new style version numbers.
The user only needs to extend this table when a significant incompatibility occurs (and this package doesn't know about it) or when two versions of the compiler should be treated as 100% compatible.
SEE
ti.targets.ITarget.versionMap
EXAMPLES
      var C62 = xdc.useModule('ti.targets.C62');

      // assert that 4.0 is forward compatible with 4.32
      C62.versionMap["TMS320C6x_4.32"] =  "1,0,4.0,0";

      // assert that 4.28 is incompatible with all other compilers
      C62.versionMap["TMS320C6x_4.28"] =  "1,1,4.28,0";
MSP430X_small.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
MSP430X_small.archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
MSP430X_small.asmName(String CName) returns String
MSP430X_small.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
MSP430X_small.compile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X_small.findSuffix(Any pkg) returns Any
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
MSP430X_small.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCscript usage meta-domain
MSP430X_small.genConstCustom(String[] names, String[] types) returns String
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X_small.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCscript usage meta-domain
MSP430X_small.genVisibleData(String[] quals, String[] types, String[] names) returns String
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
MSP430X_small.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCscript usage meta-domain
MSP430X_small.genVisibleFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
MSP430X_small.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCscript usage meta-domain
MSP430X_small.genVisibleLibFxns(String[] types, String[] names, String[] args) returns String
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
MSP430X_small.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCscript usage meta-domain
MSP430X_small.getISAChain(Any isa) returns Any
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
MSP430X_small.getVersion() returns String
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
MSP430X_small.link(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
MSP430X_small.scompile(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
MSP430X_small.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
MSP430X_small.selectSuffix(String[] suffixList) returns String
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:15:01 GMT


module ti.targets.msp430.elf.MSP430X_small

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    import ti.targets.ITarget;
    14
    15    /*!
    16     *  ======== MSP430X_small.xdc ========
    17     *  ELF MSP430X small code, small data model, little endian
    18     */
    19    metaonly module MSP430X_small inherits ITarget {
    20        override readonly config string name    = "MSP430X_small";
    21        override readonly config string suffix  = "e430XS";
    22        override readonly config string isa     = "430X";
    23        override readonly config string rts     = "ti.targets.msp430.rts430";
    24        override readonly config xdc.bld.ITarget.Model model = {
    25            endian: "little",
    26            dataModel: "small",
    27            codeModel: "small"
    28        };
    29
    30        override readonly config string stdInclude = "ti/targets/msp430/elf/std.h";
    31
    32        override readonly config ITarget.Command ar = {
    33            cmd:  "ar430",
    34            opts: "rq"
    35        };
    36
    37        override readonly config ITarget.Command cc = {
    38            cmd:  "cl430 --abi=eabi -c",
    39            opts: " -vmspx --code_model=small --data_model=small"
    40        };
    41
    42        override readonly config ITarget.Command vers = {
    43            cmd:  "cl430",
    44            opts: "--compiler_revision"
    45        };
    46
    47        override readonly config ITarget.Command asm = {
    48            cmd:  "cl430 --abi=eabi -c",
    49            opts: " -vmspx --code_model=small --data_model=small"
    50        };
    51
    52        override readonly config ITarget.Command lnk = {
    53            cmd:  "lnk430",
    54            opts: ""
    55        };
    56
    57        /*!
    58         *  ======== asmOpts ========
    59         *  User configurable assembler options.
    60         *
    61         *  Defaults:
    62         *  @p(dlist)
    63         *      -`-qq`
    64         *          super quiet mode
    65         */
    66        override config ITarget.Options asmOpts = {
    67            prefix: "-qq",
    68            suffix: ""
    69        };
    70
    71        /*!
    72         *  ======== ccOpts ========
    73         *  User configurable compiler options.
    74         *
    75         *  Defaults:
    76         *  @p(dlist)
    77         *      -`-qq`
    78         *          super quiet mode
    79         *      -`-pdsw225`
    80         *          generate a warning for implicitly declared functions; i.e.,
    81         *          functions without prototypes
    82         */
    83        override config ITarget.Options ccOpts = {
    84            prefix: "-qq -pdsw225",
    85            suffix: ""
    86        };
    87
    88        /*!
    89         *  ======== ccConfigOpts ========
    90         *  User configurable compiler options for the generated config C file.
    91         */
    92        override config ITarget.Options ccConfigOpts = {
    93            prefix: "$(ccOpts.prefix)",
    94            suffix: "$(ccOpts.suffix)"
    95        };
    96
    97        /*!
    98         *  ======== linkLib ========
    99         *  Default MSP430 cgtools runtime library to link with
   100         *  (options: rts16e.lib, rts32e.lib)
   101         */
   102        config string linkLib = "rts430x_sc_sd_eabi.lib";
   103
   104        /*!
   105         *  ======== lnkOpts ========
   106         *  User configurable linker options.
   107         *
   108         *  Defaults:
   109         *  @p(dlist)
   110         *      -`-w`
   111         *          Display linker warnings
   112         *      -`-q`
   113         *          Quite run
   114         *      -`-u`
   115         *          Place unresolved external symbol into symbol table
   116         *      -`-c`
   117         *          ROM autoinitialization model
   118         *      -`-m`
   119         *          create a map file
   120         */
   121        override config ITarget.Options lnkOpts = {
   122            prefix: "-w -q -u _c_int00",
   123            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   124        };
   125
   126        /*!
   127         *  ======== profiles ========
   128         *  Standard options profiles for the TI tool-chain.
   129         */
   130        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   131            ["debug", {
   132                compileOpts: {
   133                    copts: "-g",
   134                    defs:  "-D_DEBUG_=1",
   135                }
   136            }],
   137            ["release", {
   138                compileOpts: {
   139                    copts: "-O2 -g --optimize_with_debug",
   140                },
   141            }],
   142            ["profile", {
   143                compileOpts: {
   144                    copts: "-g",
   145                },
   146            }],
   147            ["coverage", {
   148                compileOpts: {
   149                    copts: "-g",
   150                },
   151            }],
   152            ["whole_program", {
   153                compileOpts: {
   154                    copts: "-oe -O2 -g --optimize_with_debug",
   155                },
   156            }],
   157            ["whole_program_debug", {
   158                compileOpts: {
   159                    copts: "-oe --symdebug:dwarf",
   160                },
   161            }],
   162        ];
   163
   164        override config string includeOpts = "-I$(rootDir)/include ";
   165
   166        final override readonly config string sectMap[string] = [
   167            [".text", "code"],
   168            [".cinit", "code"],
   169            [".const", "code"],
   170
   171            [".init_array", "data"],
   172            [".bss", "data"],
   173            [".data", "data"],
   174            [".sysmem", "data"],
   175            [".stack", "stack"],
   176            [".args", "data"],
   177            [".cio", "data"],
   178            [".reset", "data"],
   179            [".mspabi.extab", "code"],
   180            [".mspabi.exidx", "code"]
   181        ];
   182
   183        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   184            t_IArg          : { size: 2, align: 2 },
   185            t_Char          : { size: 1, align: 1 },
   186            t_Double        : { size: 8, align: 2 },
   187            t_Float         : { size: 4, align: 2 },
   188            t_Fxn           : { size: 2, align: 2 },
   189            t_Int           : { size: 2, align: 2 },
   190            t_Int8          : { size: 1, align: 1 },
   191            t_Int16         : { size: 2, align: 2 },
   192            t_Int32         : { size: 4, align: 2 },
   193            t_Long          : { size: 4, align: 2 },
   194            t_LDouble       : { size: 8, align: 2 },
   195            t_LLong         : { size: 8, align: 2 },
   196            t_Ptr           : { size: 2, align: 2 },
   197            t_Short         : { size: 2, align: 2 },
   198            t_Size          : { size: 2, align: 2 },
   199        };
   200
   201        override config String binaryParser = "ti.targets.omf.elf.Elf32";
   202    };


package ti.targets.msp430.rts430
index URL

Runtime support package for the MSP430 targets

This package builds a library of all modules in the xdc.runtime package. By building the xdc.runtime package here we avoid having multiple copies of the same source in different runtime support packages for different ISAs. This also allows xdc.runtime to be a pure source package independent of any particular tool chain.
XDCspec declarations sourced in ti/targets/msp430/rts430/package.xdc
requires xdc.runtime;
package ti.targets.msp430.rts430 [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:57 GMT


package ti.targets.msp430.rts430

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== ti.targets.msp430.rts430 ========
    16     *  Runtime support package for the MSP430 targets.
    17     *
    18     *  This package builds a library of all modules in the xdc.runtime package.
    19     *  By building the xdc.runtime package here we avoid having multiple copies
    20     *  of the same source in different runtime support packages for different
    21     *  ISAs.  This also allows xdc.runtime to be a pure source package
    22     *  independent of any particular tool chain.
    23     */
    24    package ti.targets.msp430.rts430 [1,0,0] {
    25    }


package ti.targets.omf.cof
index URL

Simple TI COFF parser support

XDCspec declarations sourced in ti/targets/omf/cof/package.xdc
package ti.targets.omf.cof {
    module Settings;
    // Allows selection between TI and MOTOROLA cof libraries
}
generated on Thu, 08 Nov 2012 02:14:57 GMT


package ti.targets.omf.cof

     1    /*
     2     *  Copyright 2012 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    /*!
     7     *  ======== package.xdc ========
     8     *  Simple TI COFF parser support
     9     */
    10    package ti.targets.omf.cof {
    11        module Settings;
    12    };
    13    /*
    14     *  @(#) ti.targets.omf.cof; 1,0,0,119; 11-4-2012 21:52:21; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    15
    16     */
    17


module ti.targets.omf.cof.Settings

metaonly module ti.targets.omf.cof.Settings
index URL

Allows selection between TI and MOTOROLA cof libraries

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/omf/cof/Settings.xdc
var Settings = xdc.useModule('ti.targets.omf.cof.Settings');
module-wide constants & types
    values of type Settings.Mode// Mode: {TI, MOTOROLA}
        const Settings.TI;
        const Settings.MOTOROLA;
module-wide config parameters
     Settings.mode// Determines the libraries contributed by this package = Settings.Mode Settings.TI;
enum Settings.Mode
index URL

Mode: {TI, MOTOROLA}

XDCscript usage meta-domain
values of type Settings.Mode
    const Settings.TI;
    const Settings.MOTOROLA;
DETAILS
TI. The function getLibs() returns cof_ti.lib libraries.
MOTOROLA. The function getLibs() returns cof_mot.lib libraries.
config Settings.mode // module-wide
index URL

Determines the libraries contributed by this package

XDCscript usage meta-domain
Settings.mode = Settings.Mode Settings.TI;
DETAILS
Default is TI
generated on Thu, 08 Nov 2012 02:14:57 GMT


module ti.targets.omf.cof.Settings

     1    /*
     2     *  Copyright 2012 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    /*
     7     *  ======== Settings.xdc ========
     8     *
     9     */
    10
    11
    12    /*!
    13     *  ======== Settings ========
    14     *  Allows selection between TI and MOTOROLA cof libraries.
    15     */
    16    metaonly module Settings {
    17
    18        /*!
    19         * Mode: {TI, MOTOROLA}.
    20         *
    21         * TI. The function getLibs() returns cof_ti.lib libraries.
    22         *
    23         * MOTOROLA. The function getLibs() returns cof_mot.lib libraries.
    24         */
    25        enum Mode {TI, MOTOROLA};
    26
    27        /*!
    28         * Determines the libraries contributed by this package.
    29         *
    30         * Default is TI
    31         */
    32        config Mode mode = TI;
    33
    34    }
    35    /*
    36     *  @(#) ti.targets.omf.cof; 1,0,0,119; 11-4-2012 21:52:20; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    37
    38     */
    39


package ti.targets.omf.elf
index URL

Simple ELF parser support

XDCspec declarations sourced in ti/targets/omf/elf/package.xdc
package ti.targets.omf.elf {
}
generated on Thu, 08 Nov 2012 02:14:57 GMT


package ti.targets.omf.elf

     1    /*
     2     *  Copyright 2012 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    /*!
     7     *  ======== ti.targets.omf.elf ========
     8     *  Simple ELF parser support
     9     */
    10    package ti.targets.omf.elf {
    11    }
    12    /*
    13     *  @(#) ti.targets.omf.elf; 1,0,0,126; 11-4-2012 21:52:35; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    14
    15     */
    16


package ti.targets.rts2800
index URL

Runtime support package for the c2800 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in ti/targets/rts2800/package.xdc
requires xdc.runtime;
package ti.targets.rts2800 [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:41 GMT


package ti.targets.rts2800

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== ti.targets.rts2800 ========
    16     *  Runtime support package for the c2800 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package ti.targets.rts2800 [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) ti.targets.rts2800; 1, 0, 0, 0,392; 11-4-2012 21:52:33; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package ti.targets.rts470
index URL

Runtime support package for the c470 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in ti/targets/rts470/package.xdc
requires xdc.runtime;
package ti.targets.rts470 [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:41 GMT


package ti.targets.rts470

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== ti.targets.rts470 ========
    16     *  Runtime support package for the c470 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package ti.targets.rts470 [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) ti.targets.rts470; 1, 0, 0, 0,392; 11-4-2012 21:52:39; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package ti.targets.rts5400
index URL

Runtime support package for the c5400 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in ti/targets/rts5400/package.xdc
requires xdc.runtime;
package ti.targets.rts5400 [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:41 GMT


package ti.targets.rts5400

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== ti.targets.rts5400 ========
    16     *  Runtime support package for the c5400 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package ti.targets.rts5400 [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) ti.targets.rts5400; 1, 0, 0, 0,392; 11-4-2012 21:52:40; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package ti.targets.rts5500
index URL

Runtime support package for the c5500 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in ti/targets/rts5500/package.xdc
requires xdc.runtime;
package ti.targets.rts5500 [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:41 GMT


package ti.targets.rts5500

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== ti.targets.rts5500 ========
    16     *  Runtime support package for the c5500 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package ti.targets.rts5500 [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) ti.targets.rts5500; 1, 0, 0, 0,393; 11-4-2012 21:52:43; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package ti.targets.rts6000
index URL

Runtime support package for the c6000 targets

This package builds a library of standard XDC system support functions. In particular, it builds several implementations of the xdc.runtime.ISystemProvider interface. Moreover, this package uses sources that are part of the xdc.runtime package (to avoid having multiple copies of the same source in different runtime support packages for different ISAs.
XDCspec declarations sourced in ti/targets/rts6000/package.xdc
requires xdc.runtime;
package ti.targets.rts6000 [1, 0, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:14:41 GMT


package ti.targets.rts6000

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.runtime;
    13
    14    /*!
    15     *  ======== ti.targets.rts6000 ========
    16     *  Runtime support package for the c6000 targets.
    17     *
    18     *  This package builds a library of standard XDC system support functions.
    19     *  In particular, it builds several implementations of the
    20     *  xdc.runtime.ISystemProvider interface.  Moreover, this package uses sources
    21     *  that are part of the xdc.runtime package (to avoid having multiple copies of
    22     *  the same source in different runtime support packages for different ISAs.
    23     */
    24    package ti.targets.rts6000 [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) ti.targets.rts6000; 1, 0, 0, 0,392; 11-4-2012 21:52:53; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    28
    29     */
    30


package xdc
index URL

Core interfaces and modules necessary for the XDC runtime

  • DETAILS
  • USAGE
  • STANDARD TYPES
  • PREDEFINED MACROS
  • SEE
  • THROWS
In addition to the interfaces specified below, this package also supplies a C/C++ header, std.h that facilitates the creation of portable sources. This header defines a set of "base" types that enable the creation of C-code that is portable between any two targets. C source code that relies exclusively on these types is portable to all targets and platforms. Where appropriate, the types defined below are related to the types defined in the library headers prescribed by the C99 standard (ISO/IEC 9899:1999). [ more ... ]
XDCspec declarations sourced in xdc/package.xdc
package xdc [1, 1, 1] {
    interface IPackage;
    // Base interface implemented by all packages
}
DETAILS
In addition to the interfaces specified below, this package also supplies a C/C++ header, std.h that facilitates the creation of portable sources. This header defines a set of "base" types that enable the creation of C-code that is portable between any two targets. C source code that relies exclusively on these types is portable to all targets and platforms. Where appropriate, the types defined below are related to the types defined in the library headers prescribed by the C99 standard (ISO/IEC 9899:1999).
Why not simply use the C99 types? Having a unique set of names provides a layer of insulation between a portable code base and a particular compiler; e.g., even if a compiler does not support the C99 types or defines them inappropriately for a particular device, it is possible to use the compiler without changing the code base. Thus, the developer is not forced to choose the lesser of two evils: waiting for a change to the compiler or forking the code base for a particular compiler device combination.
There are several situations where a small separate set of portable types can help the maintainability of a code base.
  • not all of the types described in the C99 standard are required to be defined by conformant implementations nor is it possible for all devices to implement some of the types specified (e.g., int8_t is not implemented on C54 devices); so it is difficult to identify non-portable source code.
  • not all compilers provide C99 type support; if XDC supplies the type definition and the compiler is updated to include C99 types, a compilation error will occur if the source includes the C99 headers.
  • not all compiler and device combinations are conformant; even high quality compilers may not properly define the types for each device supported by compiler.
USAGE
      #include <xdc/std.h>
To compile sources that include xdc/std.h, two symbols must be defined before including this header:
xdc_target_types__
the package qualified path of the target's standard types header; e.g., ti/targets/std.h. This value is specified in the target's stdInclude config parameter; see xdc.bld.ITarget.stdInclude
xdc_target_name__
the target's module name without the package prefix; e.g., C64 rather than ti.targets.C64.
For example, to compile sources for the ti.targets.C64 target using TI's cl6x compiler, the following command line is sufficient:
      cl6x -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64
Each of the type names below has an equivalent "long name"; i.e., a name that has an "xdc_" prefix. For example, the type Bool can also be written as "xdc_Bool". Long names exist to avoid conflicts with names defined or used by existing code bases.
In the event that one of the short type names below conflicts with another type name (that can not be changed), it is possble to disable the short names by defining the symbol xdc__nolocalnames before including xdc/std.h.
      #define xdc__nolocalnames
      #include <xdc/std.h>
STANDARD TYPES
This header may be included multiple times and defines the following target-dependent types:
Bool
this type is large enough to hold the values 0 or 1. The constants TRUE and FALSE are of this type; see below.
String
this type is defined to be a char * and exists to allow code to distinguish between pointers to buffers of raw data and '\0' terminated strings.
Intn, where n = 8, 16, or 32
signed integer type that is large enough to hold n bits; the actual target type may by be larger than n. This type is equivalent to one of the C99 types int_leastn_t or int_fastn_t; see Section 7.18.
UIntn, where n = 8, 16, or 32
unsigned integer type that is large enough to hold n bits; the actual target type may by be larger than n. This type is equivalent to one of the C99 types uint_leastn_t or uint_fastn_t; see ISO/IEC 9899:1999 Section 7.18.
Bitsn, where n = 8, 16, or 32
unsigned integer type that is precisely n bits. Not all targets support all values of n; if the target does not support an exact size the corresponding type is not defined. This type is equivalent to the corresponding C99 type uintn_t; see ISO/IEC 9899:1999 Section 7.18.
Fxn
this type is a pointer to code; it can hold a pointer to any function.
Ptr
this type is a pointer to data; it can hold a pointer to any data structure.
IArg
this integer type is large enough to hold a Fxn, Ptr, or Int.
UArg
this unsigned integer type is large enough to hold a Fxn, Ptr, or Int.
LLong
this long integer type is large enough to hold a Long and is defined as a 'long long' type on targets that support this type; otherwise, it is simply a Long. Note that C99 requires the long long type to be at least 64-bits wide (See ISO/IEC 9899:1999 Section 5.2.4.2.1). But some compilers do not support 64-bit integral types and some don't support the long long even though they do support 64-bit integral types. Since these variations limit the portability of valid C sources, the LLong type is always defined, is always at least as wide as the Long type, and is at least 64-bits wide for targets that support 64-bit integral types.
ULLong
this unsigned long integer type is large enough to hold a ULong and is defined as a 'unsigned long long' type on targets that support this type; otherwise, it is simply a ULong.
The xdc/std.h header also defines the following aliases for the base C types. These aliases exist so that C sources can consistently follow a naming convention in which all type names are written in camel-case.
Char and UChar
aliases for char and unsigned char, respectively
Short and UShort
aliases for short and unsigned short, respectively
Int and UInt
aliases for int and unsigned int, respectively
Long and ULong
aliases for long and unsigned long, respectively
Double and LDouble
aliases for double and long double, respectively
SizeT
alias for size_t
VaList
alias for va_list
The types above are defined for all targets. Some targets can support the following additional types. Since these types are not always supported by a target, these types should only be used when no other type sufficies.
Bitsn, where n = 8, 16, or 32
this unsigned integer type is precisely n-bits wide. This type is equivalent to the optional C99 type uintn_t; see ISO/IEC 9899:1999 Section 7.18.1.1. This type is defined if and only if the preprocessor macro xdc__BITSn__ is defined.
(64-Bit Types) Although the C99 standard requires support for 64-bit types, not all compiler/device combinations can usefully support them. As a result, the 64-bit types described here may not be defined for all targets. For each type there is a corresponding pre-processor macro which is defined if and only if the type is supported.
Int64
signed integer type that is large enough to hold 64 bits; the actual target type may by be wider than 64 bits. This type is equivalent to one of the C99 types int_least64_t or int_fast64_t; see Section 7.18. This type is defined if and only if the preprocessor macro xdc__INT64__ is defined.
UInt64
unsigned integer type that is large enough to hold n bits; the actual target type may by be wider than 64 bits. This type is equivalent to one of the C99 types uint_least64_t or uint_fast64_t; see ISO/IEC 9899:1999 Section 7.18. This type is defined if and only if the preprocessor macro xdc__INT64__ is defined.
Bits64
unsigned integer type that is precisely 64 bits wide. If the target does not support an exact 64-bit size, this type is not defined. This type is equivalent to the corresponding C99 type uint64_t; see ISO/IEC 9899:1999 Section 7.18. This type is defined if and only if the preprocessor macro xdc__BITS64__ is defined.
PREDEFINED MACROS
In addition to the type definitions above, xdc/std.h also defines the following commonly used constants
NULL
defined as 0
TRUE
defined as ((Bool)1)
FALSE
defined as ((Bool)0)
Finally, xdc/std.h defines the following target-independent symbols that have target-dependent values; these predefined macros enable conditional compilation of source files based on target-specific attributes.
{c_target_name}
this symbol (the target's fully qualified name with all '.'s replaced with '_') is always defined and allows one to easily include target-specific headers or define symbols with target-specific values.
xdc_target__isaCompatible_{isa_name}
for every ISA named in the array returned by this target's xdc.bld.ITarget.getISAChain() method, a symbol of this name is defined. In addition to enabling one to create code specific to a particular ISA, this allows one to create code that depends on TI's C6x architecture without being dependent on a particular member of the C6x family, for example.
xdc_target__isa_{isa}
this symbol is always defined and {isa} is the target's isa (see xdc.bld.ITarget.isa).
xdc_target__{little,big}Endian
if this target's xdc.bld.ITarget.model.endian property is specified, this symbol is defined and {little,big} is replaced by model.endian.
xdc_target__{code_model_name}Code
if this target's xdc.bld.ITarget.model.codeModel is specified, this symbol is defined and {code_model_name} is replaced by model.codeModel.
xdc_target__{data_model_name}Data
if this target's xdc.bld.ITarget.model.dataModel is specified, this symbol is defined and {data_model_name} is replaced by model.dataModel.
xdc_target__os_{os_name}
this symbol is always defined and {os_name} is the target's os name (see xdc.bld.ITarget.os).
xdc_target__sizeof_{type_name}
this symbol is defined for each type name supported in the target's xdc.bld.ITarget.stdTypes structure, {type_name} is the name of one of the standard types supported above, and the value is sizeof(type_name).
xdc_target__alignof_{type_name}
this symbol is defined for each type name supported in the target's xdc.bld.ITarget.stdTypes structure, {type_name} is the name of one of the standard types supported above, and the value is the alignment required by the compiler for {type_name}.
xdc_target__bitsPerChar
this symbol is always defined and specifies the number of bits in the target's char. This value combined with the xdc_target__sizeof_ values allows C code to determine the precise number of bits in any of the standard types.
SEE
ISO-IEC JTC1-SC22-WG14 - C Approved standards
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.PACKAGE_NOT_FOUND
This error is reported whenever a specified package is not found This may happen for the following reasons:
  • Ensure that the package in question is contained in one of the repositories named in the package path.
  • The package has not been built by the xdc tool even though the physical package directory may be present along the package path
xdc.FILE_NOT_FOUND
This error is reported when a specified file is not found. Ensure that any directory name prefix in the name is a package directory contained in one of the repositories named in the package path. For example, if "ti/targets/linkcmd.xdt" can't be found, make sure the directory ti/targets/ is contained in at least one repository named in the package path.
xdc.MODULE_NOT_FOUND
This error is reported when a specified module can't be found. Ensure that the package containing the module in question is contained in at least one repository named in the package path. Also ensure that the module name is qualified with the package name. For example, to refer to the module Engine in the package ti.sdo.ce, the module name should be specified as ti.sdo.ce.Engine.
xdc.TOOL_USAGE_ERROR
This error may happen when the xs tool is not passed the expected command line arguments.
xdc.MODULE_UNDEFINED_MAIN_FUNCTION
This error is reported when the xs tool is passed a module that does not define a main function. Ensure that the meta-domain implementation of the module has a main function.
xdc.SPEC_FILE_ERROR
This error is reported when there is a parsing error in a specification file. Check the spec. file for syntax errors.
xdc.DEPRECATED_FUNCTION
This error is reported whenever a deprecated function is called.
xdc.STATIC_INSTANCE
This error is reported when a function create() is called at the configuration time for a module that does not implement the function instance$static$init and therefore does not support static instances.
generated on Thu, 08 Nov 2012 02:13:31 GMT


package xdc

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== xdc ========
    14     *  Core interfaces and modules necessary for the XDC runtime.
    15     *
    16     *  In addition to the interfaces specified below, this package also supplies
    17     *  a C/C++ header, `std.h` that facilitates the creation of portable sources.
    18     *  This header defines a set of "base" types that enable the creation
    19     *  of C-code that is portable between any two targets.  C source code that
    20     *  relies exclusively on these types is portable to all targets and
    21     *  platforms.  Where appropriate, the types defined below are related to the
    22     *  types defined in the library headers prescribed by the C99 standard
    23     *  (ISO/IEC 9899:1999).
    24     *
    25     *  Why not simply use the C99 types?  Having a
    26     *  unique set of names provides a layer of insulation between a portable code
    27     *  base and a particular compiler; e.g., even if a compiler does not support
    28     *  the C99 types or defines them inappropriately for a particular device, it
    29     *  is possible to use the compiler without changing the code base.  Thus, the
    30     *  developer is not forced to choose the lesser of two evils: waiting for a
    31     *  change to the compiler or forking the code base for a particular compiler
    32     *  device combination.
    33     *
    34     *  There are several situations where a small separate set of portable types
    35     *  can help the maintainability of a code base.
    36     *  @p(blist)
    37     *      - not all of the types described in the C99 standard are required to
    38     *        be defined by conformant implementations nor is it possible for all
    39     *        devices to implement some of the types specified (e.g., `int8_t` is
    40     *        not implemented on C54 devices); so it is difficult to identify
    41     *        non-portable source code.
    42     *      - not all compilers provide C99 type support; if XDC supplies the type
    43     *        definition and the compiler is updated to include C99 types, a
    44     *        compilation error will occur if the source includes the C99
    45     *        headers.
    46     *      - not all compiler and device combinations are conformant; even high
    47     *        quality compilers may not properly define the types for each device
    48     *        supported by compiler.
    49     *
    50     *  @a(Usage)
    51     *  @p(code)
    52     *      #include <xdc/std.h>
    53     *  @p
    54     *
    55     *  To compile sources that include `xdc/std.h`, two symbols must be defined
    56     *  before including this header:
    57     *  @p(dlist)
    58     *      - `xdc_target_types__`
    59     *          the package qualified path of the target's standard types header;
    60     *          e.g., `ti/targets/std.h`.  This value is specified in the target's
    61     *          `stdInclude` config parameter; see
    62     *          `{@link xdc.bld.ITarget#stdInclude}`
    63     *
    64     *      - `xdc_target_name__`
    65     *          the target's module name without the package prefix; e.g., `C64`
    66     *          rather than `ti.targets.C64`.
    67     *  @p
    68     *  For example, to compile sources for the `ti.targets.C64` target using TI's
    69     *  `cl6x` compiler, the following command line is sufficient:
    70     *  @p(code)
    71     *      cl6x -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64
    72     *  @p
    73     *
    74     *  Each of the type names below has an equivalent "long name"; i.e., a name
    75     *  that has an "`xdc_`" prefix.  For example, the type `Bool` can also be
    76     *  written as "`xdc_Bool`".  Long names exist to avoid conflicts with
    77     *  names defined or used by existing code bases.
    78     *
    79     *  In the event that one of the short type names below conflicts with another
    80     *  type name (that can not be changed), it is possble to disable the short
    81     *  names by defining the symbol `xdc__nolocalnames` before including
    82     *  `xdc/std.h`.
    83     *  @p(code)
    84     *      #define xdc__nolocalnames
    85     *      #include <xdc/std.h>
    86     *  @p
    87     *
    88     *  @a(Standard Types)
    89     *  This header may be included multiple times and defines the following
    90     *  target-dependent types:
    91     *  @p(dlist)
    92     *      - `Bool`
    93     *          this type is large enough to hold the values `0` or `1`.  The
    94     *          constants TRUE and FALSE are of this type; see below.
    95     *      - `String`
    96     *          this type is defined to be a `char *` and exists to allow code
    97     *          to distinguish between pointers to buffers of raw data and
    98     *          '\0' terminated strings.
    99     *      - `Int`n, where n = 8, 16, or 32
   100     *          signed integer type that is large enough to hold n bits; the
   101     *          actual target type may by be larger than n.  This type is
   102     *          equivalent to one of the C99 types `int_least`n`_t` or
   103     *          `int_fast`n`_t`; see  Section 7.18.
   104     *      - `UInt`n, where n = 8, 16, or 32
   105     *          unsigned integer type that is large enough to hold n bits; the
   106     *          actual target type may by be larger than n.  This type is
   107     *          equivalent to one of the C99 types `uint_least`n`_t` or
   108     *          `uint_fast`n`_t`; see ISO/IEC 9899:1999 Section 7.18.
   109     *      - `Bits`n, where n = 8, 16, or 32
   110     *          unsigned integer type that is precisely n bits. Not all targets
   111     *          support all values of n; if the target does not support an exact
   112     *          size the corresponding type is not defined.  This type is
   113     *          equivalent to the corresponding C99 type `uint`n`_t`; see ISO/IEC
   114     *          9899:1999 Section 7.18.
   115     *      - `Fxn`
   116     *          this type is a pointer to code; it can hold a pointer to any
   117     *          function.
   118     *      - `Ptr`
   119     *          this type is a pointer to data; it can hold a pointer to any
   120     *          data structure.
   121     *      - `IArg`
   122     *          this integer type is large enough to hold a `Fxn`, `Ptr`, or
   123     *          `Int`.
   124     *      - `UArg`
   125     *          this unsigned integer type is large enough to hold a `Fxn`,
   126     *          `Ptr`, or `Int`.
   127     *      - `LLong`
   128     *          this long integer type is large enough to hold a `Long` and is
   129     *          defined as a 'long long' type on targets that support this type;
   130     *          otherwise, it is simply a `Long`.
   131     *
   132     *          Note that C99 requires the `long long` type to be at least 64-bits
   133     *          wide (See ISO/IEC 9899:1999 Section 5.2.4.2.1).  But some
   134     *          compilers do not support 64-bit integral types and some don't
   135     *          support the `long long` even though they do support 64-bit
   136     *          integral types.  Since these variations limit the portability of
   137     *          valid C sources, the LLong type is always defined, is always at
   138     *          least as wide as the `Long` type, and is at least 64-bits wide for
   139     *          targets that support 64-bit integral types.
   140     *
   141     *      - `ULLong`
   142     *          this unsigned long integer type is large enough to hold a `ULong`
   143     *          and is defined as a 'unsigned long long' type on targets that
   144     *          support this type; otherwise, it is simply a `ULong`.
   145     *  @p
   146     *
   147     *  The `xdc/std.h` header also defines the following aliases for the base C
   148     *  types.  These aliases exist so that C sources can consistently follow
   149     *  a naming convention in which all type names are written in camel-case.
   150     *  @p(dlist)
   151     *      - `Char` and `UChar`
   152     *          aliases for `char` and `unsigned char`, respectively
   153     *      - `Short` and `UShort`
   154     *          aliases for `short` and `unsigned short`, respectively
   155     *      - `Int` and `UInt`
   156     *          aliases for `int` and `unsigned int`, respectively
   157     *      - `Long` and `ULong`
   158     *          aliases for `long` and `unsigned long`, respectively
   159     *      - `Double` and `LDouble`
   160     *          aliases for `double` and `long double`, respectively
   161     *      - `SizeT`
   162     *          alias for `size_t`
   163     *      - `VaList`
   164     *          alias for `va_list`
   165     *  @p
   166     *  The types above are defined for all targets.  Some targets can support
   167     *  the following additional types.  Since these types are not always
   168     *  supported by a target, these types should only be used when no other
   169     *  type sufficies.
   170     *  @p(dlist)
   171     *      - `Bits`n, where n = 8, 16, or 32
   172     *          this unsigned integer type is precisely n-bits wide.  This type is
   173     *          equivalent to the optional C99 type `uint`n`_t`; see ISO/IEC
   174     *          9899:1999 Section 7.18.1.1.  This type is defined if and
   175     *          only if the preprocessor macro `xdc__BITS`n`__` is defined.
   176     *  @p
   177     *
   178     *  @a(64-Bit Types)
   179     *  Although the C99 standard requires support for 64-bit types, not all
   180     *  compiler/device combinations can usefully support them.  As a result,
   181     *  the 64-bit types described here may not be defined for all targets.  For
   182     *  each type there is a corresponding pre-processor macro which is
   183     *  defined if and only if the type is supported.
   184     *  @p(dlist)
   185     *      - `Int64`
   186     *          signed integer type that is large enough to hold 64 bits; the
   187     *          actual target type may by be wider than 64 bits.  This type is
   188     *          equivalent to one of the C99 types `int_least64_t` or
   189     *          `int_fast64_t`; see  Section 7.18.  This type is defined if and
   190     *          only if the preprocessor macro `xdc__INT64__` is defined.
   191     *      - `UInt64`
   192     *          unsigned integer type that is large enough to hold n bits; the
   193     *          actual target type may by be wider than 64 bits.  This type is
   194     *          equivalent to one of the C99 types `uint_least64_t` or
   195     *          `uint_fast64_t`; see ISO/IEC 9899:1999 Section 7.18.  This type
   196     *          is defined if and only if the preprocessor macro
   197     *          `xdc__INT64__` is defined.
   198     *      - `Bits64`
   199     *          unsigned integer type that is precisely 64 bits wide. If the target
   200     *          does not support an exact 64-bit size, this type is not defined.
   201     *          This type is equivalent to the corresponding C99 type
   202     *          `uint64_t`; see ISO/IEC 9899:1999 Section 7.18.  This type is
   203     *          defined if and only if the preprocessor macro `xdc__BITS64__` is
   204     *          defined.
   205     *  @p
   206     *
   207     *  @a(Predefined Macros)
   208     *  In addition to the type definitions above, `xdc/std.h` also defines the
   209     *  following commonly used constants
   210     *  @p(dlist)
   211     *      - `NULL`
   212     *          defined as `0`
   213     *      - `TRUE`
   214     *          defined as `((Bool)1)`
   215     *      - `FALSE`
   216     *          defined as `((Bool)0)`
   217     *  @p
   218     *
   219     *  Finally, `xdc/std.h` defines the following target-independent symbols
   220     *  that have target-dependent values; these predefined macros enable
   221     *  conditional compilation of source files based on target-specific
   222     *  attributes.
   223     *  @p(dlist)
   224     *      - {c_target_name}
   225     *          this symbol (the target's fully qualified name with all '.'s
   226     *          replaced with '_') is always defined and allows one to easily
   227     *          include target-specific headers or define symbols with
   228     *          target-specific values.
   229     *
   230     *      - `xdc_target__isaCompatible_`{isa_name}
   231     *          for every ISA named in the array returned by this target's
   232     *          `{@link xdc.bld.ITarget#getISAChain()}` method, a symbol of this
   233     *          name is defined.  In addition to enabling one to create code
   234     *          specific to a particular ISA, this allows one to create code that
   235     *          depends on TI's C6x architecture without being dependent
   236     *          on a particular member of the C6x family, for example.
   237     *
   238     *      - `xdc_target__isa_`{isa}
   239     *          this symbol is always defined  and {isa} is the
   240     *          target's `isa` (see `{@link xdc.bld.ITarget#isa}`).
   241     *
   242     *      - `xdc_target__`{little,big}`Endian`
   243     *          if this target's `{@link xdc.bld.ITarget#model}.endian` property is
   244     *          specified, this symbol is defined and {little,big} is replaced
   245     *          by `model.endian`.
   246     *
   247     *      - `xdc_target__`{code_model_name}`Code`
   248     *          if this target's `{@link xdc.bld.ITarget#model}.codeModel` is
   249     *          specified, this symbol is defined and {code_model_name} is
   250     *          replaced by `model.codeModel`.
   251     *
   252     *      - `xdc_target__`{data_model_name}`Data`
   253     *          if this target's `{@link xdc.bld.ITarget#model}.dataModel` is
   254     *          specified, this symbol is defined and {data_model_name} is
   255     *          replaced by `model.dataModel`.
   256     *
   257     *      - `xdc_target__os_`{os_name}
   258     *          this symbol is always defined  and {os_name} is the
   259     *          target's os name (see `{@link xdc.bld.ITarget#os}`).
   260     *
   261     *      - `xdc_target__sizeof_`{type_name}
   262     *          this symbol is defined for each type name supported in the target's
   263     *          `{@link xdc.bld.ITarget#stdTypes}` structure, {type_name} is the
   264     *          name of one of the standard types supported above, and the
   265     *          value is `sizeof(type_name)`.
   266     *
   267     *      - `xdc_target__alignof_`{type_name}
   268     *          this symbol is defined for each type name supported in the target's
   269     *          `{@link xdc.bld.ITarget#stdTypes}` structure, {type_name} is the
   270     *          name of one of the standard types supported above, and the
   271     *          value is the alignment required by the compiler for {type_name}.
   272     *
   273     *      - `xdc_target__bitsPerChar`
   274     *          this symbol is always defined and specifies the number of bits
   275     *          in the target's `char`.  This value combined with the
   276     *          `xdc_target__sizeof_` values allows C code to determine the
   277     *          precise number of bits in any of the standard types.
   278     *  @p
   279     *
   280     *  @a(See)
   281     *  {@link http://www.open-std.org/jtc1/sc22/wg14/www/standards ISO-IEC JTC1-SC22-WG14 - C Approved standards}
   282     *
   283     *  @a(Throws)
   284     *  `XDCException` exceptions are thrown for fatal errors. The following
   285     *  error codes are reported in the exception message:
   286     *  @p(dlist)
   287     *      - `xdc.PACKAGE_NOT_FOUND`
   288     *           This error is reported whenever a specified package is not found
   289     *           This may happen for the following reasons:
   290     *      @p(blist)
   291     *            -  Ensure that the package in question is contained in one of
   292     *               the repositories named in the package path.
   293     *            -  The package has not been built by the `xdc` tool even though
   294     *               the physical package directory may be present along the
   295     *               package path
   296     *   @p(dlist)
   297     *     - `xdc.FILE_NOT_FOUND`
   298     *            This error is reported when a specified file is not found.
   299     *            Ensure that any directory name prefix in the name is a package
   300     *            directory contained in one of the repositories named in the
   301     *            package path.  For example, if "ti/targets/linkcmd.xdt" can't
   302     *            be found, make sure the directory `ti/targets/` is contained in
   303     *            at least one repository named in the package path.
   304     *      - `xdc.MODULE_NOT_FOUND`
   305     *            This error is reported when a specified module can't be
   306     *            found. Ensure that the package containing the module in
   307     *            question is contained in at least one repository named in
   308     *            the package path.
   309     *            Also ensure that the module name is qualified with the
   310     *            package name. For example, to refer to the module `Engine`
   311     *            in the package `ti.sdo.ce`, the module name should be
   312     *            specified as `ti.sdo.ce.Engine`.
   313     *      - `xdc.TOOL_USAGE_ERROR`
   314     *            This error may happen when the `xs` tool is not passed the
   315     *            expected command line arguments.
   316     *      - `xdc.MODULE_UNDEFINED_MAIN_FUNCTION`
   317     *            This error is reported when the `xs` tool is passed a module
   318     *            that does not define a `main` function. Ensure that the
   319     *            meta-domain implementation of the module has a `main` function.
   320     *      - `xdc.SPEC_FILE_ERROR`
   321     *            This error is reported when there is a parsing error in a
   322     *            specification file. Check the spec. file for syntax errors.
   323     *      - `xdc.DEPRECATED_FUNCTION`
   324     *            This error is reported whenever a deprecated function is called.
   325     *      - `xdc.STATIC_INSTANCE`
   326     *            This error is reported when a function create() is called at the
   327     *            configuration time for a module that does not implement the
   328     *            function instance$static$init and therefore does not support
   329     *            static instances.
   330     */
   331    package xdc [1,1,1] {
   332        /* base interface for all XDC packages */
   333        interface IPackage;
   334    }
   335    /*
   336     *  @(#) xdc; 1, 1, 1,401; 11-3-2012 15:18:56; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   337     */
   338


interface xdc.IPackage

metaonly interface xdc.IPackage
index URL

Base interface implemented by all packages

  • DETAILS
  • NOTE
If a package does not specify a function declared in IPackage, the default defined in this package is used. [ more ... ]
XDCspec summary sourced in xdc/IPackage.xdc
metaonly interface IPackage { ...
XDCspec declarations sourced in xdc/IPackage.xdc
package xdc;
metaonly interface IPackage {
module-wide constants & types
    metaonly struct BuildAttrs// Package-level attributes from the Build Object Model (BOM) {
        String libraries// array of archive names produced by this pkg[];
         IPackage.LibDesc libDesc// desriptors for elements in libraries[string];
        Any getLibs// getLibs function defined by build script;
    };
    metaonly struct LibDesc// Library properties from the Build Object Model (BOM) {
        String target// target name;
        String suffix// suffix property of the named target;
    };
module-wide config parameters
    config IPackage.BuildAttrs build// The package information from the Build Object Model (BOM);
    config String packageBase// The absolute path to the package's "base" directory;
    config String packageRepository// The absolute path to the repository containing the package;
    config String profile// The profile requested by a configuration script;
module-wide functions
     function close// Close this package after user scripts complete();
     function exit// Exit this package after the model has been successfully validated();
     function getLibs// Get the libraries necessary to use this package(prog);
     function getSects// Get package-specific linker section data();
     function init// Initialize this package when first imported();
     function validate// Validate this package after the model's state is "sealed"();
}
DETAILS
If a package does not specify a function declared in IPackage, the default defined in this package is used.
Packages must implement IPackage functions in the package's package.xs file. This file simply defines a function with the same name as that declared in the the this specification. For example, to implement the getLibs() function the following must appear in the package's package.xs file:
      function getLibs(prog)
      {
           ...
      }
NOTE
Since most IPackage functions can be called in any model, any access to global variables specific to a particular object model should happen only if the function is called in the context of that model. For example, the variable Program is a global variable in the Configuration Model (xdc.cfg.Program). Any access to it should happen after a check that the current model is the Configuration Model:
      if (xdc.om.$name == "cfg") {
          print(Program.build.target.name);
      }
For additional information about xdc.om, see xdc.om in the XDCscript Language Reference.
struct IPackage.BuildAttrs
index URL

Package-level attributes from the Build Object Model (BOM)

XDCspec declarations sourced in xdc/IPackage.xdc
metaonly struct BuildAttrs {
    String libraries[];
    // array of archive names produced by this pkg
     IPackage.LibDesc libDesc[string];
    // desriptors for elements in libraries
    Any getLibs;
    // getLibs function defined by build script
};
FIELDS
getLibs — the JavaScript function that should be used when the package participates in a program configuration script. This field contains the function specified by a package's build script
libraries — an array of archive names created by this package. Each name is a package-relative file name of an archive within the package.
libDesc — a map of library descriptors. This map is indexed by names that appear in the libraries array.
DETAILS
This structure defines a set of package-level attributes that are carried forward from the Build Model into the Configuration Model.
struct IPackage.LibDesc
index URL

Library properties from the Build Object Model (BOM)

XDCspec declarations sourced in xdc/IPackage.xdc
metaonly struct LibDesc {
    String target;
    // target name
    String suffix;
    // suffix property of the named target
};
FIELDS
target — target for which the library was built.
suffix — the suffix associated with the named target.
DETAILS
This structure defines library properties that are carried forward from the Build Model into the Configuration Model.
config IPackage.build // module-wide
index URL

The package information from the Build Object Model (BOM)

XDCspec declarations sourced in xdc/IPackage.xdc
config IPackage.BuildAttrs build;
READONLY
This parameter is set when the package is first loaded and should not be modified by any other script.
config IPackage.packageBase // module-wide
index URL

The absolute path to the package's "base" directory

XDCspec declarations sourced in xdc/IPackage.xdc
config String packageBase;
DETAILS
This parameter contains an absolute path to the directory containing the package's build script (package.bld). For example, if the package ti.bios is located in c:/packages/ti/bios, then packageBase equals c:/packages/ti/bios/.
To be robust, clients should not assume that this string ends with a directory separator.
READONLY
This parameter is set when the package is first loaded and should not be modified by any other script.
config IPackage.packageRepository // module-wide
index URL

The absolute path to the repository containing the package

XDCspec declarations sourced in xdc/IPackage.xdc
config String packageRepository;
DETAILS
This parameter contains an absolute path to the directory containing the full directory namespace of the package. For example, if the package ti.bios is located in c:/packages/ti/bios, then packageRepository equals c:/packages/.
To be robust, clients should not assume that this string ends with a directory separator.
READONLY
This parameter is set when the package is first loaded and should not be modified by any other script.
config IPackage.profile // module-wide
index URL

The profile requested by a configuration script

XDCspec declarations sourced in xdc/IPackage.xdc
config String profile;
DETAILS
This parameter is set by configuration scripts to convey additional information to the package about the libraries being requested from this package; in particular, it names a specific profile supported by this package (see xdc.bld.ITarget.profiles).
Package getLibs() functions should refer to this parameter in lieu of the program's build.profile. This allows configuration scripts to selectively request debug or release libraries on a per package basis, for example.
  function getLibs(prog)
  {
      if (this.profile == "debug") {
          ...
      }
  }
If this parameter is not set by the configuration script, it is initialized to xdc.cfg.Program.build.profile prior to generating and configuration files; i.e., the package's getLibs() function can assume that this field is always set and defaults to the profile used to build the executable.
IPackage.close() // module-wide
index URL

Close this package after user scripts complete

XDCspec declarations sourced in xdc/IPackage.xdc
function close();
DETAILS
This function is called to allow the package to modify its state based on the results of the user's script. It can optionally redefine configuration parameters or even throw exceptions to prevent the configuration step from completing, for example.
Other packages and modules, including the modules in the package, can change the configuration parameters of any module in the package, after this function was called. Therefore, this function cannot be used to validate state of the package and of the whole configuration. Validation should be done in validate().
For all packages A and B, if A requires B, then package A is closed before package B.
The default implementation of this function is a nop.
CONTEXT
this
The current package's xdc.IPackage.Module object immediately after the program's configuration script has completed and before validation is started.
RETURNS
Returns nothing.
THROWS
Error exceptions are thrown for fatal errors.
NOTE
This function can be called in any model, so any access to global variables specific to a particular object model should happen only if the function is called in the context of that model. For example, the variable Program is a global variable in the Configuration Model (xdc.cfg.Program). Any access to it should happen after a check that the current model is the Configuration Model:
      if (xdc.om.$name == "cfg") {
          print(Program.build.target.name);
      }
For additional information about xdc.om, see xdc.om in the XDCscript Language Reference.
IPackage.exit() // module-wide
index URL

Exit this package after the model has been successfully validated

XDCspec declarations sourced in xdc/IPackage.xdc
function exit();
DETAILS
The default implementation of this function is a nop.
CONTEXT
this
The current package's xdc.IPackage.Module object immediately after the program's configuration script has completed and after generation has completed.
RETURNS
Returns nothing.
THROWS
Error exceptions are thrown for fatal errors.
NOTE
This function can be called in any model, so any access to global variables specific to a particular object model should happen only if the function is called in the context of that model. For example, the variable Program is a global variable in the Configuration Model (xdc.cfg.Program). Any access to it should happen after a check that the current model is the Configuration Model:
      if (xdc.om.$name == "cfg") {
          print(Program.build.target.name);
      }
For additional information about xdc.om, see xdc.om in the XDCscript Language Reference.
IPackage.getLibs() // module-wide
index URL

Get the libraries necessary to use this package

XDCspec declarations sourced in xdc/IPackage.xdc
function getLibs(prog);
ARGUMENTS
prog — the configuration model program object (xdc.cfg.Program) after the program's configuration script has completed.
DETAILS
This function is called during the configuration model's generation phase (after a program's configuration script completes and all imported packages are closed) and is responsible for returning a list of libraries (or object files) that are needed to link the program being configured.
If the package produces one (or no) library for the target for which the executable is being built, the default implementation of this function simply returns the name of this library (or null).
If the package produces more than one library for the given target, the default implementation of this function returns the following library name:
          lib/<package_name>.a<target_suffix>
where <package_name> is the name of the package (e.g., "ti.bios") and <target_suffix> is the xdc.bld.ITarget.suffix property of the target used to build the executable.
CONTEXT
this
The current package's xdc.IPackage.Module object after the program's configuration script has completed.
Program
The Configuration model program object (xdc.cfg.Program) after the program's configuration script has completed.
RETURNS
Returns a string of ';' delimited object (or library) file names that are added to the list of things to link to create the program. The file names are absolute or relative to the package's base. All white space is treated as part of the file name. If the files named do not exist, a fatal error occurs and configuration terminates.
If null or empty (""), then no libraries or objects are required for this package.
THROWS
Error exceptions are thrown for fatal errors.
IPackage.getSects() // module-wide
index URL

Get package-specific linker section data

XDCspec declarations sourced in xdc/IPackage.xdc
function getSects();
DETAILS
This function is called during the configuration model's generation phase (after a program's configuration script completes) and is responsible for returning a template file name that is used to generate package-specific linker command file statements.
CONTEXT
this
The current package's xdc.IPackage.Module object after the program's configuration script has completed.
Program
The Configuration model program object (xdc.cfg.Program) after program's configuration script has completed and all packages have validated the correctness of the configuration.
RETURNS
Returns the path name of template file. The path name must be relative to the package path or be an absolute path.
If null is returned, no data is generated.
The template is evaluated in a context where the this pointer is the package object.
THROWS
Error exceptions are thrown for fatal errors.
IPackage.init() // module-wide
index URL

Initialize this package when first imported

XDCspec declarations sourced in xdc/IPackage.xdc
function init();
DETAILS
This function is called to initialize the package within any model. It is called just once (when the package is first imported) so there is no need to explicitly check for prior invocation.
The default implementation of this function is a nop.
CONTEXT
this
The current package's xdc.IPackage.Module object before any model-specific user script runs (e.g. a program's configuration script), after the package's package.xs script is run and all the package's modules are created, and before the package is added to xdc.om.$packages (the Object Model's package array)
RETURNS
Returns nothing.
THROWS
Error exceptions are thrown for fatal errors.
NOTE
This function can be called in any model, so any access to global variables specific to a particular object model should happen only if the function is called in the context of that model. For example, the variable Program is a global variable in the Configuration Model (xdc.cfg.Program). Any access to it should happen after a check that the current model is the Configuration Model:
      if (xdc.om.$name == "cfg") {
          print(Program.build.target.name);
      }
For additional information about xdc.om, see xdc.om in the XDCscript Language Reference.
IPackage.validate() // module-wide
index URL

Validate this package after the model's state is "sealed"

XDCspec declarations sourced in xdc/IPackage.xdc
function validate();
DETAILS
This function is called to validate the package's state in the curent model. It can verify semantic constraints and optionally throw exceptions to prevent the configuration step from completing.
For example, a package that needs to assert incompatibility with certain versions of prerequisite packages can check the versions in this function and throw an exception if they are known to be incompatible with the current package.
This method must not modify the model.
The default implementation of this function is a nop.
CONTEXT
this
The current package's xdc.IPackage.Module object immediately after the program's configuration script has completed and before generation started.
RETURNS
Returns nothing.
THROWS
Error exceptions are thrown for fatal errors.
NOTE
This function can be called in any model, so any access to global variables specific to a particular object model should happen only if the function is called in the context of that model. For example, the variable Program is a global variable in the Configuration Model (xdc.cfg.Program). Any access to it should happen after a check that the current model is the Configuration Model:
      if (xdc.om.$name == "cfg") {
          print(Program.build.target.name);
      }
For additional information about xdc.om, see xdc.om in the XDCscript Language Reference.
generated on Thu, 08 Nov 2012 02:13:31 GMT


interface xdc.IPackage

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== IPackage.xdc ========
    14     */
    15    package xdc;
    16
    17    /*!
    18     *  ======== IPackage ========
    19     *  Base interface implemented by all packages.
    20     *
    21     *  If a package does not specify a function declared in
    22     *  `IPackage`, the default defined in this package is used.
    23     *
    24     *  Packages must implement `IPackage` functions in the package's `package.xs`
    25     *  file.  This file simply defines a function with the same name as that
    26     *  declared in the the this specification.  For example, to implement the
    27     *  `{@link #getLibs()}` function the following must appear in the package's
    28     *  `package.xs` file:
    29     *  @p(code)
    30     *      function getLibs(prog)
    31     *      {
    32     *           ...
    33     *      }
    34     *  @p
    35     *
    36     *  @a(Note)
    37     *  Since most `IPackage` functions can be called in any model, any access to
    38     *  global variables specific to a particular object model should happen only
    39     *  if the function is called in the context of that model. For example, the
    40     *  variable `Program` is a global variable in the Configuration Model
    41     *  (`{@link xdc.cfg.Program}`). Any access to it should happen after a check
    42     *  that the current model is the Configuration Model:
    43     *  @p(code)
    44     *      if (xdc.om.$name == "cfg") {
    45     *          print(Program.build.target.name);
    46     *      }
    47     *  @p
    48     *  For additional information about `xdc.om`, see
    49     *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_-_xdc.om xdc.om} in the
    50     *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_Language_Reference XDCscript Language Reference}.
    51     */
    52    metaonly interface IPackage {
    53        /*!
    54         *  ======== LibDesc ========
    55         *  Library properties from the Build Object Model (BOM)
    56         *
    57         *  This structure defines library properties that are
    58         *  carried forward from the Build Model into the Configuration Model.
    59         *
    60         *  @field(target)    target for which the library was built.
    61         *  @field(suffix)    the suffix associated with the named target.
    62         *
    63         */
    64        struct LibDesc {
    65            String target;  /*! target name */
    66            String suffix;  /*! suffix property of the named target */
    67        }
    68
    69        /*!
    70         *  ======== BuildAttrs ========
    71         *  Package-level attributes from the Build Object Model (BOM)
    72         *
    73         *  This structure defines a set of package-level attributes that are
    74         *  carried forward from the Build Model into the Configuration Model.
    75         *
    76         *  @field(getLibs)   the JavaScript function that should be used when
    77         *                    the package participates in a program configuration
    78         *                    script.  This field contains the function specified
    79         *                    by a package's build script
    80         *  @field(libraries) an array of archive names created by this package.
    81         *                    Each name is a package-relative file name of an
    82         *                    archive within the package.
    83         *  @field(libDesc)   a map of library descriptors.  This map is indexed
    84         *                    by names that appear in the `libraries` array.
    85         */
    86        struct BuildAttrs {
    87            String  libraries[]; /*! array of archive names produced by this pkg */
    88            LibDesc libDesc[string]; /*! desriptors for elements in `libraries` */
    89            any     getLibs;     /*! `getLibs` function defined by build script */
    90        };
    91
    92        /*!
    93         *  ======== packageBase ========
    94         *  The absolute path to the package's "base" directory
    95         *
    96         *  This parameter contains an absolute path to the directory
    97         *  containing the package's build script (`package.bld`). For example,
    98         *  if the package `ti.bios` is located in `c:/packages/ti/bios`, then
    99         *  `packageBase` equals `c:/packages/ti/bios/`.
   100         *
   101         *  To be robust, clients should not assume that this string ends with a
   102         *  directory separator.
   103         *
   104         *  @a(readonly)  This parameter is set when the package is first loaded
   105         *  and should not be modified by any other script.
   106         */
   107        config string packageBase;
   108
   109        /*!
   110         *  ======== packageRepository ========
   111         *  The absolute path to the repository containing the package
   112         *
   113         *  This parameter contains an absolute path to the directory
   114         *  containing the full directory namespace of the package.  For
   115         *  example, if the package `ti.bios` is located in `c:/packages/ti/bios`,
   116         *  then `packageRepository` equals `c:/packages/`.
   117         *
   118         *  To be robust, clients should not assume that this string ends with a
   119         *  directory separator.
   120         *
   121         *  @a(readonly)  This parameter is set when the package is first loaded
   122         *  and should not be modified by any other script.
   123         */
   124        config string packageRepository;
   125
   126        /*!
   127         *  ======== build ========
   128         *  The package information from the Build Object Model (BOM)
   129         *
   130         *  @a(readonly)  This parameter is set when the package is first loaded
   131         *  and should not be modified by any other script.
   132         */
   133        config BuildAttrs build;
   134
   135        /*!
   136         *  ======== profile ========
   137         *  The profile requested by a configuration script.
   138         *
   139         *  This parameter is set by configuration scripts to convey additional
   140         *  information to the package about the libraries being requested from
   141         *  this package; in particular, it names a specific profile supported by
   142         *  this package (see {@link xdc.bld.ITarget#profiles}).
   143         *
   144         *  Package `{@link #getLibs()}` functions should refer to this parameter
   145         *  in lieu of the program's `build.profile`.  This allows configuration
   146         *  scripts to selectively request debug or release libraries on a per
   147         *  package basis, for example.
   148         *
   149         *  @p(code)
   150         *  function getLibs(prog)
   151         *  {
   152         *      if (this.profile == "debug") {
   153         *          ...
   154         *      }
   155         *  }
   156         *  @p
   157         *
   158         *  If this parameter is not set by the configuration script, it is
   159         *  initialized to `{@link xdc.cfg.Program#build.profile}` prior to
   160         *  generating and configuration files; i.e., the package's
   161         *  `{@link #getLibs()}` function can assume that this field is always
   162         *  set and defaults to the profile used to build the executable.
   163         */
   164        config string profile;
   165
   166        /*!
   167         *  ======== init ========
   168         *  Initialize this package when first imported
   169         *
   170         *  This function is called to initialize the package within any
   171         *  model.  It is called just once (when the package is first imported)
   172         *  so there is no need to explicitly check for prior invocation.
   173         *
   174         *  The default implementation of this function is a nop.
   175         *
   176         *  @a(context)
   177         *  @p(dlist)
   178         *    - `this`
   179         *          The current package's `xdc.IPackage.Module` object
   180         *          before any model-specific user script runs (e.g. a program's
   181         *          configuration script),
   182         *          after the package's `package.xs` script is run and all
   183         *          the package's modules are created, and before the
   184         *          package is added to `xdc.om.$packages` (the Object Model's
   185         *          package array)
   186         *
   187         *  @a(returns) Returns nothing.
   188         *
   189         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   190         *
   191         *  @a(Note)
   192         *  This function can be called in any model, so any access to
   193         *  global variables specific to a particular object model should happen
   194         *  only if the function is called in the context of that model. For
   195         *  example, the variable `Program` is a global variable in the
   196         *  Configuration Model (`{@link xdc.cfg.Program}`). Any access to it
   197         *  should happen after a check that the current model is the
   198         *  Configuration Model:
   199         *  @p(code)
   200         *      if (xdc.om.$name == "cfg") {
   201         *          print(Program.build.target.name);
   202         *      }
   203         *  @p
   204         *  For additional information about `xdc.om`, see
   205         *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_-_xdc.om xdc.om}
   206         *  in the
   207         *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_Language_Reference XDCscript Language Reference}.
   208         */
   209        function init();
   210
   211        /*!
   212         *  ======== close ========
   213         *  Close this package after user scripts complete.
   214         *
   215         *  This function is called to allow the package to modify its state
   216         *  based on the results of the user's script.  It can optionally
   217         *  redefine configuration parameters or even throw exceptions to
   218         *  prevent the configuration step from completing, for example.
   219         *
   220         *  Other packages and modules, including the modules in the package, can
   221         *  change the configuration parameters of any module in the package, after
   222         *  this function was called. Therefore, this function cannot be used to
   223         *  validate state of the package and of the whole configuration.
   224         *  Validation should be done in `{@link #validate()}`.
   225         *
   226         *  For all packages A and B, if A requires B, then package A is
   227         *  closed before package B.
   228         *
   229         *  The default implementation of this function is a nop.
   230         *
   231         *  @a(context)
   232         *  @p(dlist)
   233         *    - `this`
   234         *          The current package's `xdc.IPackage.Module` object
   235         *          immediately after the program's configuration script
   236         *          has completed and before validation is started.
   237         *
   238         *  @a(returns) Returns nothing.
   239         *
   240         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   241         *
   242         *  @a(Note)
   243         *  This function can be called in any model, so any access to
   244         *  global variables specific to a particular object model should happen
   245         *  only if the function is called in the context of that model. For
   246         *  example, the variable `Program` is a global variable in the
   247         *  Configuration Model (`{@link xdc.cfg.Program}`). Any access to it
   248         *  should happen after a check that the current model is the
   249         *  Configuration Model:
   250         *  @p(code)
   251         *      if (xdc.om.$name == "cfg") {
   252         *          print(Program.build.target.name);
   253         *      }
   254         *  @p
   255         *  For additional information about `xdc.om`, see
   256         *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_-_xdc.om xdc.om}
   257         *  in the
   258         *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_Language_Reference XDCscript Language Reference}.
   259         */
   260        function close();
   261
   262        /*!
   263         *  ======== validate ========
   264         *  Validate this package after the model's state is "sealed".
   265         *
   266         *  This function is called to validate the package's state in the
   267         *  curent model.  It can verify semantic constraints and optionally
   268         *  throw exceptions to prevent the configuration step from completing.
   269         *
   270         *  For example, a package that needs to assert incompatibility with
   271         *  certain versions of prerequisite packages can check the versions in
   272         *  this function and throw an exception if they are known to be
   273         *  incompatible with the current package.
   274         *
   275         *  This method must not modify the model.
   276         *
   277         *  The default implementation of this function is a nop.
   278         *
   279         *  @a(context)
   280         *  @p(dlist)
   281         *    - `this`
   282         *          The current package's `xdc.IPackage.Module` object
   283         *          immediately after the program's configuration script
   284         *          has completed and before generation started.
   285         *
   286         *  @a(returns) Returns nothing.
   287         *
   288         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   289         *
   290         *  @a(Note)
   291         *  This function can be called in any model, so any access to
   292         *  global variables specific to a particular object model should happen
   293         *  only if the function is called in the context of that model. For
   294         *  example, the variable `Program` is a global variable in the
   295         *  Configuration Model (`{@link xdc.cfg.Program}`). Any access to it
   296         *  should happen after a check that the current model is the
   297         *  Configuration Model:
   298         *  @p(code)
   299         *      if (xdc.om.$name == "cfg") {
   300         *          print(Program.build.target.name);
   301         *      }
   302         *  @p
   303         *  For additional information about `xdc.om`, see
   304         *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_-_xdc.om xdc.om}
   305         *  in the
   306         *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_Language_Reference XDCscript Language Reference}.
   307         */
   308        function validate();
   309
   310        /*!
   311         *  ======== exit ========
   312         *  Exit this package after the model has been successfully validated.
   313         *
   314         *  The default implementation of this function is a nop.
   315         *
   316         *  @a(context)
   317         *  @p(dlist)
   318         *    - `this`
   319         *          The current package's `xdc.IPackage.Module` object
   320         *          immediately after the program's configuration script
   321         *          has completed and after generation has completed.
   322         *
   323         *  @a(returns) Returns nothing.
   324         *
   325         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   326         *
   327         *  @a(Note)
   328         *  This function can be called in any model, so any access to
   329         *  global variables specific to a particular object model should happen
   330         *  only if the function is called in the context of that model. For
   331         *  example, the variable `Program` is a global variable in the
   332         *  Configuration Model (`{@link xdc.cfg.Program}`). Any access to it
   333         *  should happen after a check that the current model is the
   334         *  Configuration Model:
   335         *  @p(code)
   336         *      if (xdc.om.$name == "cfg") {
   337         *          print(Program.build.target.name);
   338         *      }
   339         *  @p
   340         *  For additional information about `xdc.om`, see
   341         *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_-_xdc.om xdc.om}
   342         *  in the
   343         *  {@link http://rtsc.eclipse.org/docs-tip/XDCscript_Language_Reference XDCscript Language Reference}.
   344         */
   345        function exit();
   346
   347        /*!
   348         *  ======== getLibs ========
   349         *  Get the libraries necessary to use this package
   350         *
   351         *  This function is called during the configuration model's generation
   352         *  phase (after a program's configuration script completes and all
   353         *  imported packages are closed) and is responsible for returning a list
   354         *  of libraries (or object files) that are needed to link the program
   355         *  being configured.
   356         *
   357         *  If the package produces one (or no) library for the target for which
   358         *  the executable is being built, the default implementation of this
   359         *  function simply returns the name of this library (or `null`).
   360         *
   361         *  If the package produces more than one library for the given target, the
   362         *  default implementation of this function returns the following library
   363         *  name:
   364         *  @p(code)
   365         *          lib/<package_name>.a<target_suffix>
   366         *  @p
   367         *  where `<package_name>` is the name of the package (e.g., "ti.bios")
   368         *  and `<target_suffix>` is the  {@link xdc.bld.ITarget#suffix} property
   369         *  of the target used to build the executable.
   370         *
   371         *  @param(prog) the configuration model program object
   372         *              (`{@link xdc.cfg.Program}`) after the program's
   373         *              configuration script has completed.
   374         *
   375         *  @a(context)
   376         *  @p(dlist)
   377         *    - `this`
   378         *          The current package's `xdc.IPackage.Module` object
   379         *          after the program's configuration script has completed.
   380         *    - `Program`
   381         *          The Configuration model program object
   382         *          (`{@link xdc.cfg.Program}`) after the program's configuration
   383         *          script has completed.
   384         *
   385         *  @a(returns) Returns a string of ';' delimited object (or library) file
   386         *              names that are added to the list of things to link to
   387         *              create the program.  The file names are absolute or
   388         *              relative to the package's base.  All white space is
   389         *              treated as part of the file name.  If the files named do
   390         *              not exist, a fatal error occurs and configuration
   391         *              terminates.
   392         *
   393         *              If `null` or empty (""), then no libraries or objects are
   394         *              required for this package.
   395         *
   396         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   397         */
   398        function getLibs(prog);
   399
   400        /*!
   401         *  ======== getSects ========
   402         *  Get package-specific linker section data.
   403         *
   404         *  This function is called during the configuration model's  generation
   405         *  phase (after a program's configuration script completes) and is
   406         *  responsible for returning a template file name that is used to
   407         *  generate package-specific linker command file statements.
   408         *
   409         *  @a(context)
   410         *  @p(dlist)
   411         *    - `this`
   412         *          The current package's `xdc.IPackage.Module` object
   413         *          after the program's configuration script has completed.
   414         *
   415         *    - `Program`
   416         *          The Configuration model program object
   417         *          (`{@link xdc.cfg.Program}`) after program's configuration
   418         *          script has completed and all packages have validated the
   419         *          correctness of the configuration.
   420         *
   421         *  @a(returns) Returns the path name of template file.  The path name
   422         *              must be relative to the package path or be an absolute path.
   423         *
   424         *              If `null` is returned, no data is generated.
   425         *
   426         *              The template is evaluated in a context where the `this`
   427         *              pointer is the package object.
   428         *
   429         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   430         */
   431        function getSects();
   432    }
   433    /*
   434     *  @(#) xdc; 1, 1, 1,401; 11-3-2012 15:18:56; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   435     */
   436


package xdc.bld
index URL

The XDC Build Model

  • DETAILS
  • NOTE
  • THROWS
This package contains the XDC Build Model and the interfaces necessary to extend the Build Model to handle new compiler tool chains. The modules in this package (and the instances managed by these modules) form the Build Object Model (BOM). [ more ... ]
XDCspec declarations sourced in xdc/bld/package.xdc
requires xdc.services.global;
requires xdc.services.intern.cmd;
package xdc.bld [1, 0, 2] {
    interface ITarget;
    // The interface between code generation tool-chains and the XDC Build Engine
    interface ITarget2;
    // Extension of the interface xdc.bld.ITarget
    interface ITargetFilter;
    // User-supplied filter of a target's command set
    module BuildEnvironment;
    // Global build environment
    module Executable;
    // Model of a file that can be loaded and executed on a platform
    module Library;
    // Model of a searchable collection of object files
    module Manifest;
    // The manifest object for the release file post-processing model
    module Object;
    // Model of a compiled (or assembled) form of a source file
    module PackageContents;
    // Package container populated by a build script
    module Release;
    // Model of an archive of all files that are part of a release
    module Repository;
    // Model of a package repository
    module Script;
    // Model of a script
    module Test;
    // Model of a test
    module Utils;
    // Utility functions to simplify creation of targets and platforms
}
DETAILS
This package contains the XDC Build Model and the interfaces necessary to extend the Build Model to handle new compiler tool chains. The modules in this package (and the instances managed by these modules) form the Build Object Model (BOM).
This model enables build scripts to declare the contents of each release of a package. Based on these manifests, the Build Engine generates makefiles that build the specified object files, libraries, and executables, and archive these files into specified release files. In addition, the generated makefiles are also capable of running collections of executables with command line arguments (provided that the platforms support this); e.g., regression tests.
NOTE
User supplied file names of source files, generated libraries and executables must be limited to portable POSIX file names. That means that only alphanumeric charaters, and '_', '.', and '-' are allowed.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.bld.TARGET_CONFIG_ERROR
This error is reported whenever there is an error in the target configuration file. Check the configuration script for errors.
xdc.bld.ROOTDIR_NOT_SET
This error is reported when the rootDir property for a target has not been set in the target configuration script. Ensure that this property is set correctly in the configuration script.
xdc.bld.PLATFORM_NOT_SET
This error is reported when either 1) the platform property for a target has not been set in the target specification or the target configuration script (config.bld) or 2) the build script (package.bld) is setting the platform for a program to an invalid value.
xdc.bld.DUPLICATE_TARGET_ERROR
This error is reported when a same target is listed twice in Bld.targets. Check xdc.bld.BuildEnvironment.targets to find out how Bld.targets is constructed.
generated on Thu, 08 Nov 2012 02:13:44 GMT


package xdc.bld

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.services.global;
    13    requires xdc.services.intern.cmd;
    14
    15    /*!
    16     *  ======== xdc.bld ========
    17     *  The XDC Build Model
    18     *
    19     *  This package contains the XDC Build Model and the interfaces necessary
    20     *  to extend the Build Model to handle new compiler tool chains.  The
    21     *  modules in this package (and the instances managed by these modules)
    22     *  form the Build Object Model (BOM).
    23     *
    24     *  This model enables build scripts to declare the contents of each release
    25     *  of a package.  Based on these manifests, the Build Engine generates
    26     *  makefiles that build the specified object files, libraries, and
    27     *  executables, and archive these files into specified release files.  In
    28     *  addition, the generated makefiles are also capable of running collections
    29     *  of executables with command line arguments (provided that the platforms
    30     *  support this); e.g., regression tests.
    31     *
    32     *  @a(NOTE) User supplied file names of source files, generated libraries and
    33     *           executables must be limited to portable POSIX file names. That
    34     *           means that only alphanumeric charaters, and '_', '.', and '-'
    35     *           are allowed.
    36     *
    37     *  @a(throws)
    38     *  `XDCException` exceptions are thrown for fatal errors. The following error
    39     *  codes are reported in the exception message:
    40     *
    41     *   @p(dlist)
    42     *      -  `xdc.bld.TARGET_CONFIG_ERROR`
    43     *           This error is reported whenever there is an  error in
    44     *           the target configuration file. Check the configuration script
    45     *           for errors.
    46     *      -  `xdc.bld.ROOTDIR_NOT_SET`
    47     *           This error is reported when the `rootDir` property for a target
    48     *           has not been set in the target configuration script. Ensure
    49     *           that this property is set correctly in the configuration
    50     *           script.
    51     *      -  `xdc.bld.PLATFORM_NOT_SET`
    52     *           This error is reported when either 1) the `platform` property for
    53     *           a target has not been set in the target specification or the
    54     *           target configuration script (config.bld) or 2) the build script
    55     *           (package.bld) is setting the platform for a program to an
    56     *           invalid value.
    57     *      -  `xdc.bld.DUPLICATE_TARGET_ERROR`
    58     *           This error is reported when a same target is listed twice in
    59     *           `Bld.targets`. Check `{@link xdc.bld.BuildEnvironment#targets}`
    60     *           to find out how `Bld.targets` is constructed.
    61     */
    62    package xdc.bld [1,0,2] {
    63
    64        /* interfaces to code gen tool chains (used by build engine) */
    65        interface ITarget, ITarget2;
    66
    67        /* interface to user-supplied extensions that filter target commands */
    68        interface ITargetFilter;
    69
    70        /* global build environment read by a build script */
    71        module    BuildEnvironment;
    72
    73        /* package contents container populated by a build script */
    74        module    PackageContents;
    75
    76        /* objects that can be added to the PackageContents container */
    77        module    Release;
    78        module    Library;
    79        module    Test;
    80        module    Object;
    81        module    Executable;
    82        module    Repository;
    83        module    Assembly, Configuration;
    84        module    Script;
    85
    86        /* each release has an optional script to post-process files
    87         * listed in a Manifest */
    88        module    Manifest;
    89
    90        /* misc utils to simplify target development (ITarget implementations) */
    91        module    Utils;
    92    }
    93    /*
    94     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    95     */
    96


module xdc.bld.BuildEnvironment

metaonly module xdc.bld.BuildEnvironment
index URL

Global build environment

  • XDCscript usage
  • Individual elements
This module defines a global object (aliased as 'Build' in build scripts) which is configured by a build "startup" script and read by package build scripts. [ more ... ]
XDCscript usage meta-domain sourced in xdc/bld/BuildEnvironment.xdc
var BuildEnvironment = xdc.useModule('xdc.bld.BuildEnvironment');
module-wide constants & types
    values of type BuildEnvironment.HostOS// An enumeration of all supported development hosts
        const BuildEnvironment.WINDOWS// Win32 Intel development host;
        const BuildEnvironment.SOLARIS// SUN OS 5.x development host;
        const BuildEnvironment.LINUX// Linux development host;
module-wide config parameters
    const BuildEnvironment.hostOS// Enumerated constant that identifies the host OS that is executing the build script = BuildEnvironment.HostOS computed value;
    const BuildEnvironment.hostOSName// The name of the development host = String computed value;
     BuildEnvironment.excludeTargets// A set of targets to exclude from the set specified by useTargets = String undefined;
     BuildEnvironment.nativeTarget// A target that defines the "native" target = ITarget.Module null;
     BuildEnvironment.platformTable// A map of platform instance names to the parameters used to create them = Any[string] [ ];
     BuildEnvironment.targets// Array of all targets that are supported for the current build = ITarget.Module[] undefined;
     BuildEnvironment.useTargets// The set of targets to use if the targets array is empty = String undefined;
module-wide functions
     BuildEnvironment.getReleaseDescs// Return a description of all releases for the specified package(String pname) returns Release.Desc[]
DETAILS
This module defines a global object (aliased as 'Build' in build scripts) which is configured by a build "startup" script and read by package build scripts.
This module's configuration parameters are initialized by a "startup" script that is run prior to running a package's build script (package.bld). This script (often named "config.bld") is responsible for specifying the the xdc.bld.ITarget.rootDir configuration parameter of all targets that appear in the targets array; the rootDir configuration parameter specifies the absolute path to the installation directory of the compiler used to build for the specified target. Typically one startup script is used to establish an environment for multiple packages.
Note: it does not matter if you do not have tools for all the targets mentioned in the startup script; if you do not build for a target, its setting in the startup script is irrelevant.
The startup script may configure this module as a function of the following global variables that exist before this script runs:
environment
a hash table of environment strings
arguments
an array of string arguments to the config.bld script initialized as follows: arguments[0] - the file name of the config.bld script; arguments[1] - the first argument specified in XDCARGS; ...; arguments[n] - the nth argument in XDCARGS.
Build
an alias for this module (xdc.bld.BuildEnvironment). The following parameters of this object are initialized before the startup script runs: hostOS - HostOS enumeration identifier; hostOSName - "Windows", "Linux", or "Solaris"
Pkg
an alias for this module (xdc.bld.PackageContents). The following parameters of this object are initialized before the startup script runs: PackageContents.name - the name of the current package; PackageContents.modules - array of module names supplied by this package; and PackageContents.interfaces - array of interface names supplied by this package
When you build a package, the xdc command looks for the startup file using the following algorithm:
  1. if XDCBUILDCFG is defined on the xdc command line, its value is used;
  2. if config.bld exists in the current directory, this file is used;
  3. if XDCBUILDCFG is defined as an environment variable, its value is used;
  4. if config.bld exists along the package path (i.e. in $XDCPATH followed by the current package's repository), the first such file is used;
  5. if $XDCROOT/config.bld exists this file is used;
  6. if $XDCROOT/etc/config.bld exists, this file is used; and finally
  7. if no "startup file" can be found above, a fatal error is reported and the xdc command terminates with a non-zero exit status.
enum BuildEnvironment.HostOS
index URL

An enumeration of all supported development hosts

XDCscript usage meta-domain
values of type BuildEnvironment.HostOS
    const BuildEnvironment.WINDOWS;
    // Win32 Intel development host
    const BuildEnvironment.SOLARIS;
    // SUN OS 5.x development host
    const BuildEnvironment.LINUX;
    // Linux development host
SEE
hostOS
config BuildEnvironment.hostOS // module-wide
index URL

Enumerated constant that identifies the host OS that is executing the build script

XDCscript usage meta-domain
const BuildEnvironment.hostOS = BuildEnvironment.HostOS computed value;
DETAILS
Note that host OS at the time the makefiles are created may be different from the host OS at the time sources are compiled!
config BuildEnvironment.hostOSName // module-wide
index URL

The name of the development host

XDCscript usage meta-domain
const BuildEnvironment.hostOSName = String computed value;
DETAILS
One of the strings: "Windows", "Solaris", "Linux". This name is name of the host OS that is executing the package's build script.
config BuildEnvironment.excludeTargets // module-wide
index URL

A set of targets to exclude from the set specified by useTargets

XDCscript usage meta-domain
BuildEnvironment.excludeTargets = String undefined;
DETAILS
This string parameter is a single regular expression used to exclude targets from the set specified by useTargets (or XDCTARGETS).
If targets is initialized by the build model's configuration script (i.e., has length > 0) this parameter is ignored.
If this string is null or undefined, nothing is excluded from list specified by useTargets or the environment variable XDCTARGETS.
SEE
useTargets, nativeTarget
config BuildEnvironment.nativeTarget // module-wide
index URL

A target that defines the "native" target

XDCscript usage meta-domain
BuildEnvironment.nativeTarget = ITarget.Module null;
DETAILS
This parameter allows build scripts to refer to the "native" target without explicitly naming the target.
For example, a package.bld script may add a library via:
      Pkg.addLibrary("lib", Build.nativeTarget);
In addition, it is possible to use "native" in XDCTARGETS or useTargets to specify that nativeTarget be added to the targets array. Thus, it is possible to use the following command on *any* host to build for that host:
      xdc XDCTARGETS=native
If this parameter is not set by the build model's configuration script, it is initialized to an appropriate default native target:
  • microsoft.targets.Win32 for Windows hosts;
  • gnu.targets.Sparc for Solaris hosts; and
  • gnu.targets.Linux86 for Linux hosts.
config BuildEnvironment.platformTable // module-wide
index URL

A map of platform instance names to the parameters used to create them

XDCscript usage meta-domain
BuildEnvironment.platformTable = Any[string] [ ];
DETAILS
This map allows one to define platform instances that require non-default parameter settings. It also provides a way to publish a set of platforms to be shared among multiple build scripts.
EXAMPLES
The following fragment defines a platform instance named "ti.platforms.sim6xxx:big" that corresponds to a platform instance created by the ti.platforms.sim6xxx.Platform module with the parameters {endian: "big"}:
    Build.platformTable["ti.platforms.sim6xxx:big"] = {endian: "big"};
The following fragment redefines the default platform instance for the platform package ti.platforms.sim6xxx by specifying alternative instance creation parameters.
    Build.platformTable["ti.platforms.sim6xxx"] = {
        endian: "little", verbose: false, ftpath: "c:/ftsuite_1_5",
    };
Some platforms are "software abastractions" that can emulate a large number different physical platforms. In the example below, the ti.platforms.sim6xxx platform package is capable of simulating any TMS320C6xxx device. This particular platform package uses the name of the instance to determine the specific device that it should emulate. So, the fragment below specifies a platform instance named "ti.platforms.sim6xxx:TMS320C6416" that emulates the TMS320C6416 device, in little endian mode.
    Build.platformTable["ti.platforms.sim6xxx:TMS320C6416"] = {
        endian: "little"
    };
Software platform packages, such as the ti.platforms.generic, can even go as far as emulating any device from any "catalog" of devices. In this example, we use the ti.platforms.generic platform package to define an instance named ti.platforms.generic:c6416 that corresponds to a platform containing the TMS320C6416 device specified in the ti.catalog.c6000 package of devices.
    Build.platformTable["ti.platforms.generic:c6416"] = {
        deviceName: "TMS320C6416",
        catalogName: "ti.catalog.c6000",
    };
SEE
ti.catalog.c6000, ti.platforms.generic, ti.platforms.sim6xxx
config BuildEnvironment.targets // module-wide
index URL

Array of all targets that are supported for the current build

XDCscript usage meta-domain
BuildEnvironment.targets = ITarget.Module[] undefined;
DETAILS
This array may be explicitly initialized by the build model's initial configuration script (by default, "config.bld"). For example, the following fragment specifies that just the ti.targets.C64 target should be used:
      // get the ti.targets.C64 module
      var C64 = xdc.module('ti.targets.C64');

      // add the ti.target.C64 module to BuildEnvironment.targets array
      Build.targets[Build.targets.length++] = C64;
Alternatively, this array can be implicitly initialized via the XDCTARGETS environment variable or the useTargets and excludeTargets strings. The targets array is implicitly initialized if and only if the length of this array is 0 after the build model's configuration script completes.
All targets that are in this array *must* have their xdc.bld.ITarget.rootDir property set.
SEE
excludeTargets, useTargets
config BuildEnvironment.useTargets // module-wide
index URL

The set of targets to use if the targets array is empty

XDCscript usage meta-domain
BuildEnvironment.useTargets = String undefined;
DETAILS
useTargets is a string of white space separated target names (i.e., names of modules that implement xdc.bld.ITarget) or regular expression patterns matching target names.
If the Build.targets array is empty at the end of the build model's configuration script, targets specified by this string are added to the build model's targets array.
In addition to module names, the distinguished string "native" is interpreted as an alias for the target specified by the nativeTarget configuration parameter.
Special values:
undefined
use the environment variable XDCTARGETS;
null
initialize the targets array to be empty; and
""
use all TI targets (i.e., "ti.targets\..*").
SEE
excludeTargets, nativeTarget
BuildEnvironment.getReleaseDescs() // module-wide
index URL

Return a description of all releases for the specified package

XDCscript usage meta-domain
BuildEnvironment.getReleaseDescs(String pname) returns Release.Desc[]
ARGUMENTS
pname — name of the package to get the release information from
DETAILS
This function allows a "package of packages" to select appropriate releases from another package based on information provided by that package.
RETURNS
array of xdc.bld.Release.Desc structures that describe the releases specified by pname's build script
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.bld.PACKAGE_NOT_BUILT
This error is reported when a consumer tries to use a package that has not been built. Ensure that the required package has been built by XDCtools.
xdc.bld.INVALID_PACKAGE
This error is reported when a consumer tries to use a corrupted package. Try rebuilding the package causing the problem.
SEE
xdc.bld.Release.Desc
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.BuildEnvironment

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== BuildEnvironment.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== BuildEnvironment ========
    19     *  Global build environment
    20     *
    21     *  This module defines a global object (aliased as '`Build`' in build scripts)
    22     *  which is configured by a build "startup" script and read by package build
    23     *  scripts.
    24     *
    25     *  This module's configuration parameters are initialized by
    26     *  a "startup" script that is run prior to running a package's build
    27     *  script (`package.bld`).  This script (often named "`config.bld`") is
    28     *  responsible for specifying the the `{@link xdc.bld.ITarget#rootDir}`
    29     *  configuration parameter of all targets that appear in the
    30     *  `{@link #targets}` array; the `rootDir` configuration parameter specifies
    31     *  the absolute path to the installation directory of the compiler used to
    32     *  build for the specified target.  Typically one startup script is used to
    33     *  establish an environment for multiple packages.
    34     *
    35     *  Note: it does not matter if you do not have tools for all the targets
    36     *  mentioned in the startup script; if you do not build for a target,
    37     *  its setting in the startup script is irrelevant.
    38     *
    39     *  The startup script may configure this module as a function of the
    40     *  following global variables that exist before this script runs:
    41     *  @p(dlist)
    42     *    - `environment`
    43     *          a hash table of environment strings
    44     *    - `arguments`
    45     *          an array of string arguments to the `config.bld` script
    46     *          initialized as follows:
    47     *              `arguments[0]` - the file name of the `config.bld` script;
    48     *              `arguments[1]` - the first argument specified in `XDCARGS`;
    49     *                  ...;
    50     *              `arguments[n]` - the nth argument in `XDCARGS`.
    51     *    - `Build`
    52     *          an alias for this module (`xdc.bld.BuildEnvironment`).
    53     *          The following parameters of this object are initialized
    54     *          before the startup script runs:
    55     *              `hostOS`     - `{@link #HostOS}` enumeration identifier;
    56     *              `hostOSName` - "Windows", "Linux", or "Solaris"
    57     *    - `Pkg`
    58     *          an alias for this module (`xdc.bld.PackageContents`).
    59     *          The following parameters of this object are initialized
    60     *          before the startup script runs:
    61     *              `{@link PackageContents#name}` - the name of the current
    62     *              package;
    63     *              `{@link PackageContents#modules}` - array of module names
    64     *              supplied by this package; and
    65     *              `{@link PackageContents#interfaces}` - array of interface
    66     *              names supplied by this package
    67     *  @p
    68     *  When you build a package, the `xdc` command looks for the startup file
    69     *  using the following algorithm:
    70     *  @p(nlist)
    71     *      -   if `XDCBUILDCFG` is defined on the `xdc` command line, its value is
    72     *          used;
    73     *      -   if `config.bld` exists in the current directory, this file is used;
    74     *      -   if `XDCBUILDCFG` is defined as an environment variable, its value
    75     *          is used;
    76     *      -   if `config.bld` exists along the package path (i.e. in `$XDCPATH`
    77     *          followed by the current package's repository), the first such
    78     *          file is used;
    79     *      -   if `$XDCROOT/config.bld` exists this file is used;
    80     *      -   if `$XDCROOT/etc/config.bld` exists, this file is used; and
    81     *          finally
    82     *      -   if no "startup file" can be found above, a fatal error is
    83     *          reported and the `xdc` command terminates with a non-zero exit
    84     *          status.
    85     */
    86    metaonly module BuildEnvironment {
    87
    88        /*!
    89         *  ======== HostOS ========
    90         *  An enumeration of all supported development hosts
    91         *
    92         *  @see #hostOS
    93         */
    94        enum HostOS {
    95            WINDOWS,    /*! Win32 Intel development host */
    96            SOLARIS,    /*! SUN OS 5.x development host */
    97            LINUX       /*! Linux development host */
    98        };
    99
   100        /*!
   101         *  ======== hostOS ========
   102         *  Enumerated constant that identifies the host OS that is executing
   103         *  the build script
   104         *
   105         *  Note that host OS at the time the makefiles are created may be
   106         *  different from the host OS at the time sources are compiled!
   107         */
   108        readonly config HostOS hostOS;
   109
   110        /*!
   111         *  ======== hostOSName ========
   112         *  The name of the development host
   113         *
   114         *  One of the strings: "Windows", "Solaris", "Linux".  This name is
   115         *  name of the host OS that is executing the package's build script.
   116         */
   117        readonly config String hostOSName;
   118
   119        /*!
   120         *  ======== useTargets ========
   121         *  The set of targets to use if the `{@link #targets}` array
   122         *  is empty
   123         *
   124         *  `useTargets` is a string of white space separated target names
   125         *  (i.e., names of modules that implement `{@link xdc.bld.ITarget}`) or
   126         *  regular expression patterns matching target names.
   127         *
   128         *  If the `Build.{@link #targets}` array is empty at the end of the
   129         *  build model's configuration script, targets specified by this string
   130         *  are added to the build model's `{@link #targets}` array.
   131         *
   132         *  In addition to module names, the distinguished string
   133         *  `"native"` is interpreted as an alias for the target
   134         *  specified by the `{@link #nativeTarget}` configuration
   135         *  parameter.
   136         *
   137         *  Special values:
   138         *  @p(dlist)
   139         *     -`undefined`
   140         *          use the environment variable `XDCTARGETS`;
   141         *     -`null`
   142         *          initialize the `{@link #targets}` array to be empty; and
   143         *     -`""`
   144         *          use all TI targets (i.e., "`ti.targets\..*`").
   145         *
   146         *  @see #excludeTargets
   147         *  @see #nativeTarget
   148         */
   149        config String useTargets;
   150
   151        /*!
   152         *  ======== excludeTargets ========
   153         *  A set of targets to exclude from the set specified by
   154         *  `{@link #useTargets}`
   155         *
   156         *  This string parameter is a single regular expression used to exclude
   157         *  targets from the set specified by `useTargets` (or `XDCTARGETS`).
   158         *
   159         *  If `{@link #targets}` is initialized by the build model's
   160         *  configuration script (i.e., has length > 0) this parameter is
   161         *  ignored.
   162         *
   163         *  If this string is `null` or `undefined`, nothing is excluded from
   164         *  list specified by `{@link #useTargets}` or the environment variable
   165         *  `XDCTARGETS`.
   166         *
   167         *  @see #useTargets
   168         *  @see #nativeTarget
   169         */
   170        config String excludeTargets;
   171
   172        /*!
   173         *  ======== targets ========
   174         *  Array of all targets that are supported for the current build
   175         *
   176         *  This array may be explicitly initialized by the build model's
   177         *  initial configuration script (by default, "`config.bld`").  For
   178         *  example, the following fragment specifies that just the
   179         *  `ti.targets.C64` target should be used:
   180         *  @p(code)
   181         *      // get the ti.targets.C64 module
   182         *      var C64 = xdc.module('ti.targets.C64');
   183         *
   184         *      // add the ti.target.C64 module to BuildEnvironment.targets array
   185         *      Build.targets[Build.targets.length++] = C64;
   186         *  @p
   187         *  Alternatively, this array can be implicitly initialized via the
   188         *  `XDCTARGETS` environment variable or the `{@link #useTargets}`
   189         *  and `{@link #excludeTargets}` strings.  The `{@link #targets}` array
   190         *  is implicitly initialized if and only if the length of this array is
   191         *  0 after the build model's configuration script completes.
   192         *
   193         *  All targets that are in this array *must* have their
   194         *  `{@link xdc.bld.ITarget#rootDir}` property set.
   195         *
   196         *  @see #excludeTargets
   197         *  @see #useTargets
   198         */
   199        config ITarget.Module targets[];
   200
   201        /*!
   202         *  ======== nativeTarget ========
   203         *  A target that defines the "native" target
   204         *
   205         *  This parameter allows build scripts to refer to the "native"
   206         *  target without explicitly naming the target.
   207         *
   208         *  For example, a `package.bld` script may add a library via:
   209         *  @p(code)
   210         *      Pkg.addLibrary("lib", Build.nativeTarget);
   211         *  @p
   212         *  In addition, it is possible to use `"native"` in `XDCTARGETS` or
   213         *  `{@link #useTargets}` to specify that
   214         *  `{@link #nativeTarget}` be added to the `{@link #targets}` array.
   215         *  Thus, it is possible to use the following command on *any* host to
   216         *  build for that host:
   217         *  @p(code)
   218         *      xdc XDCTARGETS=native
   219         *  @p
   220         *
   221         *  If this parameter is not set by the build model's configuration
   222         *  script, it is initialized to an appropriate default native target:
   223         *  @p(blist)
   224         *      - `{@link microsoft.targets.Win32}` for Windows hosts;
   225         *      - `{@link gnu.targets.Sparc}` for Solaris hosts; and
   226         *      - `{@link gnu.targets.Linux86}` for Linux hosts.
   227         *  @p
   228         */
   229        config ITarget.Module nativeTarget = null;
   230
   231        /*!
   232         *  ======== platformTable ========
   233         *  A map of platform instance names to the parameters used to
   234         *  create them
   235         *
   236         *  This map allows one to define platform instances that require
   237         *  non-default parameter settings.  It also provides a way to
   238         *  publish a set of platforms to be shared among multiple build
   239         *  scripts.
   240         *
   241         *  @a(EXAMPLES)
   242         *  The following fragment defines a platform instance named
   243         *  `"ti.platforms.sim6xxx:big"` that corresponds to a platform instance
   244         *  created by the `ti.platforms.sim6xxx.Platform` module with the
   245         *  parameters `{endian: "big"}`:
   246         *  @p(code)
   247         *    Build.platformTable["ti.platforms.sim6xxx:big"] = {endian: "big"};
   248         *  @p
   249         *
   250         *  The following fragment redefines the default platform instance for
   251         *  the platform package `ti.platforms.sim6xxx` by specifying alternative
   252         *  instance creation parameters.
   253         *  @p(code)
   254         *    Build.platformTable["ti.platforms.sim6xxx"] = {
   255         *        endian: "little", verbose: false, ftpath: "c:/ftsuite_1_5",
   256         *    };
   257         *  @p
   258         *  Some platforms are "software abastractions" that can emulate a large
   259         *  number different physical platforms.  In the example below, the
   260         *  `ti.platforms.sim6xxx` platform package is capable of simulating
   261         *  any TMS320C6xxx device.  This particular platform package uses the
   262         *  name of the instance to determine the specific device that it should
   263         *  emulate.  So, the fragment below specifies a platform instance named
   264         *  `"ti.platforms.sim6xxx:TMS320C6416"` that emulates the `TMS320C6416`
   265         *  device, in little endian mode.
   266         *  @p(code)
   267         *    Build.platformTable["ti.platforms.sim6xxx:TMS320C6416"] = {
   268         *        endian: "little"
   269         *    };
   270         *  @p
   271         *  Software platform packages, such as the `ti.platforms.generic`, can
   272         *  even go as far as emulating any device from any "catalog" of
   273         *  devices.  In this example, we use the `ti.platforms.generic`
   274         *  platform package to define an instance named
   275         *  `ti.platforms.generic:c6416` that corresponds to a platform
   276         *  containing the TMS320C6416 device specified in the `ti.catalog.c6000`
   277         *  package of devices.
   278         *  @p(code)
   279         *    Build.platformTable["ti.platforms.generic:c6416"] = {
   280         *        deviceName: "TMS320C6416",
   281         *        catalogName: "ti.catalog.c6000",
   282         *    };
   283         *  @p
   284         *  @see ti.catalog.c6000
   285         *  @see ti.platforms.generic
   286         *  @see ti.platforms.sim6xxx
   287         */
   288        config any platformTable[string] = [];
   289
   290        /*!
   291         *  ======== platforms ========
   292         *  Cache of all platform objects added via `{@link #usePlatform}`
   293         *  @_nodoc
   294         */
   295        config any platforms[string];
   296
   297        /*!
   298         *  ======== usePlatform ========
   299         *  Instantiate the specified platform
   300         *
   301         *  @_nodoc
   302         *
   303         *  @param(name)  name of platform to create
   304         *
   305         *  @a(returns)
   306         *  `usePlatform()` returns the platform instance object
   307         *  (`xdc.platform.IPlatform.Instance`) specified by `name`.
   308         *
   309         *  @a(throws)
   310         *  `XDCException` exceptions are thrown for fatal errors. The following
   311         *  error codes are reported in the exception message:
   312         *  @p(dlist)
   313         *      -  `xdc.bld.PARAMETER_MISMATCH`
   314         *      This error is reported whenever parameters with the wrong type
   315         *      are passed to the method. Ensure that the parameters passed have
   316         *      the right type.
   317         */
   318        function usePlatform(name);
   319
   320        /*!
   321         *  ======== isInTargetsArray ========
   322         *  Test whether a target is in of the `targets` array
   323         *
   324         *  @_nodoc
   325         *
   326         *  @param(target)  `xdc.bld.ITarget` target object to test
   327         */
   328        Bool isInTargetsArray(ITarget.Module target);
   329
   330        /*!
   331         *  ======== printBuildTargets ========
   332         *  @_nodoc
   333         */
   334        String printBuildTargets();
   335
   336        /*!
   337         *  ======== onInit ========
   338         *  @_nodoc this function is called from the `xdc.bld` package's
   339         *          initialization function to initialize this module.
   340         */
   341        function onInit();
   342
   343        /*!
   344         *  ======== getReleaseDescs ========
   345         *  Return a description of all releases for the specified package
   346         *
   347         *  This function allows a "package of packages" to select appropriate
   348         *  releases from another package based on information provided by that
   349         *  package.
   350         *
   351         *  @param(pname)   name of the package to get the release
   352         *                  information from
   353         *
   354         *  @a(returns)     array of `{@link xdc.bld.Release#Desc}`
   355         *                  structures that describe the releases specified
   356         *                  by `pname`'s build script
   357         *
   358         *  @a(throws)      `XDCException` exceptions are thrown for fatal
   359         *                   errors. The following error codes are
   360         *                   reported in the exception message:
   361         *                   @p(dlist)
   362         *                   - `xdc.bld.PACKAGE_NOT_BUILT`
   363         *                      This error is reported when a consumer tries to
   364         *                      use a package that has not been built. Ensure that
   365         *                      the required package has been built by `XDCtools`.
   366         *                   -  `xdc.bld.INVALID_PACKAGE`
   367         *                      This error is reported when a consumer tries to
   368         *                      use a corrupted package. Try rebuilding the
   369         *                      package causing the problem.
   370         *
   371         *  @see xdc.bld.Release#Desc
   372         */
   373        Release.DescArray getReleaseDescs(String pname);
   374
   375        /*!
   376         *  ======== initializeModel ========
   377         *  @_nodoc
   378         *  Initialize the build model
   379         *
   380         *  @param(args)    - an array of arguments whose first element is
   381         *                    the path to a config.bld script and subsequent
   382         *                    arguments are the argument (usually) specified
   383         *                    by `XDCARGS`.
   384         */
   385        function initializeModel(args);
   386    }
   387    /*
   388     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   389     */
   390


module xdc.bld.Executable

metaonly module xdc.bld.Executable
index URL

Model of a file that can be loaded and executed on a platform

  • XDCscript usage
  • Individual elements
Executable instances represent executable files. Instances must be created via the xdc.bld.PackageContents.addExecutable() function; this ensures that each executable created appears in the package's manifest and that it properly "inherits" appropriate default attributes from the containing package.
XDCscript usage meta-domain sourced in xdc/bld/Executable.xdc
var Executable = xdc.useModule('xdc.bld.Executable');
module-wide constants & types
    var obj = new Executable.Attrs// Optional attributes for an Executable instance;
        obj.profile// target options profile = String ...
        obj.aopts// asm options for objs added to this exe = String ...
        obj.copts// C/C++ options for objs added to this exe = String ...
        obj.cfgcopts// C/C++ options for the C config file = String ...
        obj.defs// definitions for objs added to this exe = String ...
        obj.incs// include opts for objs added to this exe = String ...
        obj.lopts// linker options for this exe = String ...
        obj.tcopts// tconf options for this exe = String ...
        obj.xsopts// xs options for this exe = String ...
        obj.cpuId// optional id of CPU on platform = String ...
        obj.rtsName// optional run time support package name = String ...
        obj.cpuArgs// optional register settings = Any ...
        obj.sharedCfg = String ...
        obj.cfgScript// optional name of config script = String ...
        obj.cfgHome// optional home package of config model = String ...
        obj.cfgArgs// optional arguments passed to cfgScript = String ...
        obj.cfgArgsEncoded// if true, cfgArgs is encoded via escape() = Bool ...
        obj.exportExe// export executable's exe file? = Bool ...
        obj.exportCfg// export executable's config script? = Bool ...
        obj.exportSrc// if true, export exe sources to releases = Bool ...
        obj.releases// releases that this exe is a part of = Release.Instance[] ...
        obj.test// test attrs for tests added to this exe = Test.Attrs ...
        obj.linkTemplate// linker command file template for this exe = String ...
per-instance config parameters
    var params = new Executable.Params// Instance config-params object;
        params.attrs// This executable's optional attributes = Executable.Attrs undefined;
        params.name// Base name of the executable = String undefined;
        params.platform// The name of the platform that will run this executable = String undefined;
        params.target// The target (on a platform) that executable should be built for = ITarget.Module undefined;
per-instance functions
     inst.addObjects// Add specified object to be built and linked into this executable(String[] names, Object.Attrs objAttrs) returns Void
     inst.addTest// Add specified test to executable(Test.Attrs testAttrs) returns Test.Instance
struct Executable.Attrs
index URL

Optional attributes for an Executable instance

XDCscript usage meta-domain
var obj = new Executable.Attrs;
    obj.profile = String ...
    // target options profile
    obj.aopts = String ...
    // asm options for objs added to this exe
    obj.copts = String ...
    // C/C++ options for objs added to this exe
    obj.cfgcopts = String ...
    // C/C++ options for the C config file
    obj.defs = String ...
    // definitions for objs added to this exe
    obj.incs = String ...
    // include opts for objs added to this exe
    obj.lopts = String ...
    // linker options for this exe
    obj.tcopts = String ...
    // tconf options for this exe
    obj.xsopts = String ...
    // xs options for this exe
    obj.cpuId = String ...
    // optional id of CPU on platform
    obj.rtsName = String ...
    // optional run time support package name
    obj.cpuArgs = Any ...
    // optional register settings
    obj.sharedCfg = String ...
    obj.cfgScript = String ...
    // optional name of config script
    obj.cfgHome = String ...
    // optional home package of config model
    obj.cfgArgs = String ...
    // optional arguments passed to cfgScript
    obj.cfgArgsEncoded = Bool ...
    // if true, cfgArgs is encoded via escape()
    obj.exportExe = Bool ...
    // export executable's exe file?
    obj.exportCfg = Bool ...
    // export executable's config script?
    obj.exportSrc = Bool ...
    // if true, export exe sources to releases
    obj.releases = Release.Instance[] ...
    // releases that this exe is a part of
    obj.test = Test.Attrs ...
    // test attrs for tests added to this exe
    obj.linkTemplate = String ...
    // linker command file template for this exe
FIELDS
cfgArgs — This string may contain any expression that can be assigned to a JavaScript property. It is evaluated in the configuration domain after the platform package is imported and just prior to running the executable's configuration script. Its value (after evaluation) is assigned to Program.build.cfgArgs; so, program configuration scripts can use this property to adjust their behavior based on values specified in a build script.
For example, a package's build script might build an executable for each possible level of a "trace" value:
              for (t = 0; t < NUM_TRACE_LEVELS; t++) {
                      :
                  Pkg.addExecutable("myExe" + t, targ, plat, {
                      cfgArgs:   "{traceLevel: " + t + "}",
                      cfgScript: "myExe.cfg"
                  });
              }
In this case, the configuration script myExe.cfg can reference the "trace level" set in the build script by referencing the Program.build.cfgArgs object directly:
              if (Program.build.cfgArgs.traceLevel == 1) {
                  :
              }
cfgArgsEncoded — This boolean flag indicates whether the string cfgArgs should be treated as an encoded string (via ECMA-262 escape()) or not. If this field is true, the string is treated as an encoded string and is decoded via unescape() prior to interpretation.
incs — This string contains include path options used by the compiler (or assembler) to locate include files; e.g., "-I ../../include -I ../c55xx". Note that the syntax of this string may be target dependent.
defs — This string contains options used by the compiler (or assembler) to define macros; e.g., "-D_C6xxx -DDEBUG=1". Note that the syntax of this string may be target dependent.
aopts — This string contains options used by the assembler to produce object files; e.g., "-mP1". Note that the syntax of this string may be target dependent.
copts — This string contains options used by the C/C++ compiler to produce object files; e.g., "-o3 -mi1". Note that the syntax of this string may be target dependent.
cfgcopts — This string contains options used by the C/C++ compiler to compile the generated C config file. If cfgopts is not specified, either explicitly or through Pkg.attrs.cfgcopts, the options specified in copts are used instead.
lopts — This string contains options used by the linker produce object files; e.g., "-l mylib.lib". Note that the syntax of this string may be target dependent.
tcopts — This string contains options passed to tconf. Deprecated, use xsopts instead.
xsopts — This string contains options passed to xs when running configuration scripts; e.g., to turn on the reporting of warnings this string can be set to "-js -w", or to define the name-value pair "FOO=bar" available via the environment hash-table xsopts should be set to "-DFOO=bar".
cfgHome — This string names the package that is bound to the Configuration Model's $homepkg. This home package is automatically loaded as part of configuration and, as a result, may contribute libraries to the configuration.
If this parameter is not specified, the package containing the configuration script is used as the home package. This ensures that the results of a configuration script are independent of the package building the configuration. In most cases, the build package is the package containing the configuration script and this distinction is not important. But there are times when it is important to control the home package; e.g., when an external tool generates a configuration script from information supplied by another package or when a configuration script in not in any package.
cfgScript — This string names the program configuration script used to create the files necessary to create the executable. If cfgScript is not specified, the configuration script is assumed to be <name>.cfg, where <name> is the base name of the executable. If cfgScript is set to null, the executable is assumed to be a "legacy" application that defines main() directly and does not require any xdc.runtime support.
If this string is set to a non-null value, and does not have an extension, then the extension ".cfg" is automatically added.
If the specified configuration file does not exist in the package where the executable is being built and the name does not begin with "./", it is searched for along the package path. Thus, it is possible to use configuration scripts in other packages to build executables; e.g., to use the configuration script "myExe.cfg" from a ti.bios.examples.hello package, cfgScript should be set to "ti/bios/examples/hello/myExe.cfg".
The package containing the specified configuration script is imported prior to running the configuration script and this package is used to set xdc.$homepkg; thus, configuration scripts that use xdc.$homepkg will configure the same executable independent of the package building the executable.
profile — This string names a profile defined by the executable's target. The profile specifies a set of compiler, linker, and archiver options that are to be used when producing the executable. Note that these tool options are in addition to any options specified via aopts, copts, etc.
If this field is not set or set to null, the value of xdc.bld.PackageContents.attrs.profile is used. If xdc.bld.PackageContents.attrs.profile is not specified or equal to null, the "release" profile is used.
cpuId — This string is used to uniquely identify the particular CPU on a platform that will run the executable; on platforms that contain a single CPU, this string is ignored.
rtsName — This string names a package that contributes a compiled form of the xdc.runtime runtime support modules.
This package is implicitly loaded prior to running the executable's configuration script. If this field is set to null, no package will be pre-loaded. If this field is not set (or set to undefined), the package specified by this executable's target will be used (see xdc.bld.ITarget.rts) .
cpuArgs — This field is a hash-table of name-value pairs interpreted by the CPU as register settings that exist at the time that the executable is loaded; e.g., it is possible to specify a non-reset value for the PMST register on a C54xx CPU by setting this parameter to {PMST: 0xffff}.
exportCfg — If this field is set to true, the configuration script will be part of the releases named in the releases array. If it is unspecified (or set to null) and the release specifies that configurations are to be exported, the configuration script will be part of the release. In all other cases, the configuration is not part of the release.
exportSrc — If this field is set to true, the sources specified via xdc.bld.Executable.addObjects() will be part of the releases named in the releases array. If it is unspecified (or set to null) and the release specifies that sources are to be exported, the sources will be part of the release. In all other cases, the sources are not added to the release.
exportExe — If this field is set to true, the executable will be part of the releases named in the releases array. If it is unspecified (or set to null) and the release specifies that configurations are to be exported, the executable will be part of the release. In all other cases, the executable is not part of the release.
releases — This array contains releases that will contain the executable. Thus, a single executable can be part of any set of releases. Each executable is always added to the package's "default release" in addition to any releases specified in the releases array.
test — If this field is set, it defines default attributes for tests added to this executable, including the implicitly added test (see xdc.bld.PackageContents.addExecutable).
linkTemplate — If this field is set, it defines the linker command file template to be used to link this executable. This specification may, however, be overridden by the configuration script (see xdc.cfg.Program.linkTemplate).
As with configuration scripts, if the specified file does not exist in the package where the executable is being built and the name does not begin with "./", it is searched for along the package path. Thus, it is possible to use templates in other packages to build executables; e.g., to use the linker command file "myExe.cmd" from the ti.bios.examples.hello package, linkTemplate should be set to "ti/bios/examples/hello/myExe.cmd".
DETAILS
Unspecified attributes are "inherited" from xdc.bld.PackageContents.attrs; i.e., if one of fields in this structure is unspecified *and* this field's name matches a field name in xdc.bld.PackageContents.attrs, then this field's value defaults to the value in specified by xdc.bld.PackageContents.attrs. This mechanism makes it possible to establish package-wide default values for any of the "inherited" attributes.
Suppose, for example, that you want all executable files in this package to be built with the 'release' profile, but one particular file must be built with 'debug' (because it is a source example). The following build script fragment shows how this can be accomplished:
      Pkg.attrs.profile = 'release';
      var exe = Pkg.addExecutable('example', ..., {profile: 'debug'});
SEE
attrs, xdc.bld.PackageContents.Attrs
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Executable.Params;
// Instance config-params object
    params.attrs = Executable.Attrs undefined;
    // This executable's optional attributes
    params.name = String undefined;
    // Base name of the executable
    params.platform = String undefined;
    // The name of the platform that will run this executable
    params.target = ITarget.Module undefined;
    // The target (on a platform) that executable should be built for
config Executable.attrs // instance
index URL

This executable's optional attributes

XDCscript usage meta-domain
var params = new Executable.Params;
...
params.attrs = Executable.Attrs undefined;
DETAILS
These attributes are "inherited" by all objects added to this executable; i.e., any object attribute that is undefined but is defined here will be assigned the value from these attributes.
Similarly, any unspecified attributes that also appear in xdc.bld.PackageContents.Attrs are inherited from xdc.bld.PackageContents.attrs.
SEE
xdc.bld.PackageContents.Attrs
config Executable.name // instance
index URL

Base name of the executable

XDCscript usage meta-domain
var params = new Executable.Params;
...
params.name = String undefined;
DETAILS
This name is used to construct the final executable file name as follows:
      <name>.x<target_suffix>
where <name> is name and <target_suffix> is the suffix defined by each target that the file is built for. See NOTE in xdc.bld for filename rules.
Note: if the same executable is to be built for different platforms (having the same target), then name must "encode" the platform's name.
config Executable.platform // instance
index URL

The name of the platform that will run this executable

XDCscript usage meta-domain
var params = new Executable.Params;
...
params.platform = String undefined;
DETAILS
Platforms are modeled as packages that have a module called "Platform"; thus the platform name is really a package name.
config Executable.target // instance
index URL

The target (on a platform) that executable should be built for

XDCscript usage meta-domain
var params = new Executable.Params;
...
params.target = ITarget.Module undefined;
DETAILS
This parameter is used to determine the target to use for any objects added to the executable.
During configuration, the executable's platform package can validate that the target is compatible with the configuration of the platform; the target object is accessible via the expression Program.build.target.
Executable.addObjects() // instance
index URL

Add specified object to be built and linked into this executable

XDCscript usage meta-domain
inst.addObjects(String[] names, Object.Attrs objAttrs) returns Void
ARGUMENTS
names — array of base names of the sources of object files to be created and linked into the executable. See NOTE in xdc.bld for filename rules.
objAttrs — optional xdc.bld.Object.Attrs for the array of objects added; all objects named by names will be given the attributes objAttrs.
DETAILS
All objects added to the executable are built with the symbol xdc_cfg__header__ defined to be the name of the executable-specific C header generated by the program configuration tool. This symbol is used by the xdc/cfg/global.h header to include the generated header file; see xdc.cfg.Program.global. Thus, it is possible to portably include configuration specific definitions in a source file that is used in many different configurations.
For example, a portable main.c might be structured as follows:
      #include <xdc/std.h>
      #include <ti/bios/include/log.h>

      #include <xdc/cfg/global.h>    // include declaration of trace

      int main(int argc, char *argv[])
      {
          LOG_printf(trace, "hello world");
              :
      }
EXAMPLES
1. Locate a source file whose name starts with "hello" with an extension supported by the executable's target, compile it and link it into the executable myExe:
          myExe.addObjects(["hello"]);
If hello.c exists, compile and add to myExe, if hello.asm exists assemble and add to myExe, etc. If no such file is located, a warning is emitted.
2. Compile hello.c and add to the executable myExe:
          myExe.addObjects(["hello.c"]);
3. Names may include sub-directory prefixes. In this case, the source will be located in a sub-directory of the current package. The following statement declares that the file "foo/hello.c" should be compiled and linked into the executable myExe:
          myExe.addObjects(["foo/hello.c"]);
As in the previous examples, the extension ".c" is optional. In case an extension is not supplied, each extension understood by the target will be tried until a source file is located.
4. It is also possible to supply file specific compilation options.
          myExe.addObjects(["fir.c", "iir.c"], {defs: "-D_DEBUG"});
In this case, both files fir.c and iir.c will be compiled with the "-D_DEBUG" flag. Any setting of attrs.defs in the executable or package is overridden by this definition.
RETURNS
void
THROWS
Error exceptions are thrown for fatal errors
SEE
xdc.cfg.Program.global
Executable.addTest() // instance
index URL

Add specified test to executable

XDCscript usage meta-domain
inst.addTest(Test.Attrs testAttrs) returns Test.Instance
ARGUMENTS
testAttrs — test attrs object (xdc.bld.Test.Attrs)
DETAILS
A test encapsulates an executable and a set of arguments passed to the executable when it is run.
Tests are run by naming the goal "<test_name>.test" on the xdc command line; <test_name> is the test's name.
Multiple tests may have the same name; in this case, it is possible to run all tests using the single goal "<test_name>.test"
RETURNS
the xdc.bld.Test instance object created
THROWS
Error exceptions are thrown for fatal errors
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.Executable

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== Executable.xdc ========
    15     */
    16    package xdc.bld;
    17
    18    /*!
    19     *  ======== Executable ========
    20     *  Model of a file that can be loaded and executed on a platform.
    21     *
    22     *  Executable instances represent executable files.  Instances must be
    23     *  created via the `{@link xdc.bld.PackageContents#addExecutable()}`
    24     *  function; this ensures that each executable created appears in the
    25     *  package's manifest and that it properly "inherits" appropriate default
    26     *  attributes from the containing package.
    27     */
    28    metaonly module Executable {
    29
    30        /*!
    31         *  ======== Attrs ========
    32         *  Optional attributes for an Executable instance.
    33         *
    34         *  Unspecified attributes are "inherited" from
    35         *  `{@link xdc.bld.PackageContents#attrs}`;
    36         *  i.e., if one of fields in this structure is unspecified *and* this
    37         *  field's name matches a field name in
    38         *  `{@link xdc.bld.PackageContents#attrs}`, then this field's value
    39         *  defaults to the value in specified by
    40         *  `{@link xdc.bld.PackageContents#attrs}`.  This mechanism makes it
    41         *  possible to establish package-wide default values for any of the
    42         *  "inherited" attributes.
    43         *
    44         *  Suppose, for example, that you want all executable files in this
    45         *  package to be built with the 'release' profile, but one particular file
    46         *  must be built with 'debug' (because it is a source example).  The
    47         *  following build script fragment shows how this can be accomplished:
    48         *  @p(code)
    49         *      Pkg.attrs.profile = 'release';
    50         *      var exe = Pkg.addExecutable('example', ..., {profile: 'debug'});
    51         *  @p
    52         *  @field(cfgArgs) This string may contain any expression that can be
    53         *          assigned to a JavaScript property.  It is evaluated in
    54         *          the configuration domain after the platform package is
    55         *          imported and just prior to running the executable's
    56         *          configuration script.  Its value (after evaluation) is
    57         *          assigned to `Program.build.cfgArgs`; so, program
    58         *          configuration scripts can use this property to adjust their
    59         *          behavior based on values specified in a build script.
    60         *
    61         *          For example, a package's build script might build an
    62         *          executable for each possible level of a "trace" value:
    63         *          @p(code)
    64         *              for (t = 0; t < NUM_TRACE_LEVELS; t++) {
    65         *                      :
    66         *                  Pkg.addExecutable("myExe" + t, targ, plat, {
    67         *                      cfgArgs:   "{traceLevel: " + t + "}",
    68         *                      cfgScript: "myExe.cfg"
    69         *                  });
    70         *              }
    71         *          @p
    72         *
    73         *          In this case, the configuration script `myExe.cfg` can
    74         *          reference the "trace level" set in the build script by
    75         *          referencing the `Program.build.cfgArgs` object directly:
    76         *          @p(code)
    77         *              if (Program.build.cfgArgs.traceLevel == 1) {
    78         *                  :
    79         *              }
    80         *          @p
    81         *
    82         *  @field(cfgArgsEncoded) This boolean flag indicates whether the
    83         *  string `cfgArgs` should be treated as an encoded string (via ECMA-262
    84         *  `escape()`) or not.  If this field is `true`, the string is treated
    85         *  as an encoded string and is decoded via `unescape()` prior to
    86         *  interpretation.
    87         *
    88         *  @field(incs)  This string contains include path options used by
    89         *          the compiler (or assembler) to locate include files; e.g.,
    90         *          "-I ../../include -I ../c55xx".  Note that the syntax of
    91         *          this string may be target dependent.
    92         *
    93         *  @field(defs)  This string contains options used by the
    94         *          compiler (or assembler) to define macros; e.g.,
    95         *          "-D_C6xxx -DDEBUG=1".  Note that the syntax of
    96         *          this string may be target dependent.
    97         *
    98         *  @field(aopts)  This string contains options used by the assembler
    99         *          to produce object files; e.g., "-mP1".  Note that the syntax
   100         *          of this string may be target dependent.
   101         *
   102         *  @field(copts)  This string contains options used by the C/C++
   103         *          compiler to produce object files; e.g., "-o3 -mi1".  Note
   104         *          that the syntax of this string may be target dependent.
   105         *
   106         *  @field(cfgcopts)  This string contains options used by the C/C++
   107         *          compiler to compile the generated C config file. If `cfgopts`
   108         *          is not specified, either explicitly or through
   109         *          `Pkg.attrs.cfgcopts`, the options specified in `copts` are
   110         *          used instead.
   111         *
   112         *  @field(lopts)  This string contains options used by the linker
   113         *          produce object files; e.g., "-l mylib.lib".  Note
   114         *          that the syntax of this string may be target dependent.
   115         *
   116         *  @field(tcopts)  This string contains options passed to `tconf`.
   117         *          Deprecated, use `xsopts` instead.
   118         *
   119         *  @field(xsopts)  This string contains options passed to `xs`
   120         *          when running configuration scripts; e.g., to turn on the
   121         *          reporting of warnings this string can be set to "-js -w",
   122         *          or to define the name-value pair "FOO=bar" available via
   123         *          the environment hash-table `xsopts` should be set to
   124         *          "-DFOO=bar".
   125         *
   126         *  @field(cfgHome)  This string names the package that is bound to
   127         *          the Configuration Model's `$homepkg`.  This home package
   128         *          is automatically loaded as part of configuration and, as
   129         *          a result, may contribute libraries to the configuration.
   130         *
   131         *          If this parameter is not specified, the package containing
   132         *          the configuration script is used as the home package.  This
   133         *          ensures that the results of a configuration script are
   134         *          independent of the package building the configuration.  In
   135         *          most cases, the build package is the package containing the
   136         *          configuration script and this distinction is not important.
   137         *          But there are times when it is important to control the home
   138         *          package; e.g., when an external tool generates a
   139         *          configuration script from information supplied by another
   140         *          package or when a configuration script in not in any package.
   141         *
   142         *  @field(cfgScript)  This string names the program configuration
   143         *          script used to create the files necessary to create the
   144         *          executable.  If `cfgScript` is not specified, the configuration
   145         *          script is assumed to be `<name>.cfg`, where `<name>` is the
   146         *          base name of the executable.  If `cfgScript` is set to `null`,
   147         *          the executable is assumed to be a "legacy" application that
   148         *          defines `main()` directly and does not require any
   149         *          `{@link xdc.runtime}` support.
   150         *
   151         *          If this string is set to a non-`null` value, and does not have
   152         *          an extension, then the extension `".cfg"` is automatically
   153         *          added.
   154         *
   155         *          If the specified configuration file does not exist in the
   156         *          package where the executable is being built and
   157         *          the name does not begin with `"./"`, it is searched
   158         *          for along the package path.  Thus, it is possible to use
   159         *          configuration scripts in other packages to build executables;
   160         *          e.g., to use the configuration script "myExe.cfg" from a
   161         *          `ti.bios.examples.hello` package, `cfgScript` should be set
   162         *          to `"ti/bios/examples/hello/myExe.cfg"`.
   163         *
   164         *          The package containing the specified configuration script is
   165         *          imported prior to running the configuration script and this
   166         *          package is used to set `xdc.$homepkg`; thus, configuration
   167         *          scripts that use `xdc.$homepkg` will configure the same
   168         *          executable independent of the package building the executable.
   169         *
   170         *  @field(profile)  This string names a profile defined by the
   171         *          executable's target.  The profile specifies a set of compiler,
   172         *          linker, and archiver options that are to be used when
   173         *          producing the executable.  Note that these tool options are
   174         *          in addition to any options specified via `aopts`, `copts`,
   175         *          etc.
   176         *
   177         *          If this field is not set or set to `null`, the value of
   178         *          `{@link xdc.bld.PackageContents#attrs.profile}` is used.  If
   179         *          `{@link xdc.bld.PackageContents#attrs.profile}` is not
   180         *          specified or equal to `null`, the `"release"` profile is used.
   181         *
   182         *  @field(cpuId)  This string is used to uniquely identify the
   183         *          particular CPU on a platform that will run the executable; on
   184         *          platforms that contain a single CPU, this string is ignored.
   185         *
   186         *  @field(rtsName)  This string names a package that contributes a
   187         *          compiled form of the `{@link xdc.runtime}` runtime support
   188         *          modules.
   189         *
   190         *          This package is implicitly loaded prior to running the
   191         *          executable's configuration script.  If this field is set to
   192         *          `null`, no package will be pre-loaded.  If this field is not
   193         *          set (or set to `undefined`), the package specified by this
   194         *          executable's target will be used (see
   195         *          {@link xdc.bld.ITarget#rts}) .
   196         *
   197         *  @field(cpuArgs)  This field is a hash-table of name-value pairs
   198         *          interpreted by the CPU as register settings that exist at the
   199         *          time that the executable is loaded; e.g., it is possible to
   200         *          specify a non-reset value for the `PMST` register on a C54xx
   201         *          CPU by setting this parameter to `{PMST: 0xffff}`.
   202         *
   203         *  @field(exportCfg)  If this field is set to true, the configuration
   204         *          script will be part of the releases named in the releases
   205         *          array.  If it is unspecified (or set to `null`) and the
   206         *          release specifies that configurations are to be exported,
   207         *          the configuration script will be part of the release.  In
   208         *          all other cases, the configuration is not part of the
   209         *          release.
   210         *
   211         *  @field(exportSrc)  If this field is set to true, the sources
   212         *          specified via `{@link xdc.bld.Executable#addObjects()}`
   213         *          will be part of the releases named in the releases
   214         *          array.  If it is unspecified (or set to `null`) and the
   215         *          release specifies that sources are to be exported,
   216         *          the sources will be part of the release.  In
   217         *          all other cases, the sources are not added to the
   218         *          release.
   219         *
   220         *  @field(exportExe)  If this field is set to true, the executable
   221         *          will be part of the releases named in the releases
   222         *          array.  If it is unspecified (or set to `null`) and the
   223         *          release specifies that configurations are to be exported,
   224         *          the executable will be part of the release.  In
   225         *          all other cases, the executable is not part of the
   226         *          release.
   227         *
   228         *  @field(releases)  This array contains releases that will contain the
   229         *          executable.  Thus, a single executable can be part of any set
   230         *          of releases.  Each executable is always added to the
   231         *          package's "default release" in addition to any releases
   232         *          specified in the releases array.
   233         *
   234         *  @field(test) If this field is set, it defines default attributes for
   235         *          tests added to this executable, including the implicitly
   236         *          added test (see {@link xdc.bld.PackageContents#addExecutable}).
   237         *
   238         *  @field(linkTemplate) If this field is set, it defines the linker
   239         *          command file template to be used to link this executable.
   240         *          This specification may, however, be overridden by the
   241         *          configuration script (see
   242         *          {@link xdc.cfg.Program#linkTemplate}).
   243         *
   244         *          As with configuration scripts, if the specified file does not
   245         *          exist in the package where the executable is being built and
   246         *          the name does not begin with `"./"`, it is searched for along
   247         *          the package path.  Thus, it is possible to use templates in
   248         *          other packages to build executables; e.g., to use the linker
   249         *          command file "`myExe.cmd`" from the `ti.bios.examples.hello`
   250         *          package, `linkTemplate` should be set to
   251         *          `"ti/bios/examples/hello/myExe.cmd"`.
   252         *
   253         *  @see #attrs
   254         *  @see xdc.bld.PackageContents#Attrs
   255         */
   256        struct Attrs {
   257            String  profile;        /*! target options profile */
   258            String  aopts;          /*! asm options for objs added to this exe */
   259            String  copts;          /*! C/C++ options for objs added to this exe */
   260            String  cfgcopts;       /*! C/C++ options for the C config file */
   261            String  defs;           /*! definitions for objs added to this exe */
   262            String  incs;           /*! include opts for objs added to this exe */
   263            String  lopts;          /*! linker options for this exe */
   264            String  tcopts;         /*! `tconf` options for this exe */
   265            String  xsopts;         /*! `xs` options for this exe */
   266            String  cpuId;          /*! optional id of CPU on platform */
   267            String  rtsName;        /*! optional run time support package name */
   268            any     cpuArgs;        /*! optional register settings */
   269            String  sharedCfg;
   270            String  cfgScript;      /*! optional name of config script */
   271            String  cfgHome;        /*! optional home package of config model */
   272            String  cfgArgs;        /*! optional arguments passed to cfgScript */
   273            Bool    cfgArgsEncoded; /*! if true, cfgArgs is encoded via escape() */
   274            Bool    exportExe;      /*! export executable's exe file? */
   275            Bool    exportCfg;      /*! export executable's config script? */
   276            Bool    exportSrc;      /*! if true, export exe sources to releases */
   277            Release.Instance releases[]; /*! releases that this exe is a part of */
   278            Test.Attrs  test;       /*! test attrs for tests added to this exe */
   279            String  linkTemplate;   /*! linker command file template for this exe*/
   280        };
   281
   282    instance:
   283        /*!
   284         *  ======== create ========
   285         *  @_nodoc
   286         *  Instances should only be created via PackageContents.addExecutable()
   287         */
   288        create();
   289
   290        /*!
   291         *  ======== name ========
   292         *  Base name of the executable.
   293         *
   294         *  This name is used to construct the final executable file name as
   295         *  follows:
   296         *  @p(code)
   297         *      <name>.x<target_suffix>
   298         *  @p
   299         *  where `<name>` is name and `<target_suffix>` is the suffix defined
   300         *  by each target that the file is built for. See NOTE in
   301         * `{@link xdc.bld}` for filename rules.
   302         *
   303         *  Note: if the same executable is to be built for different platforms
   304         *  (having the same target), then name must "encode" the platform's
   305         *  name.
   306         */
   307        config String name;
   308
   309        /*!
   310         *  ======== platform ========
   311         *  The name of the platform that will run this executable.
   312         *
   313         *  Platforms are modeled as packages that have a module called
   314         *  "Platform"; thus the platform name is really a package name.
   315         */
   316        config String platform;
   317
   318        /*!
   319         *  ======== target ========
   320         *  The target (on a platform) that executable should be built for.
   321         *
   322         *  This parameter is used to determine the target to use for any
   323         *  objects added to the executable.
   324         *
   325         *  During configuration, the executable's platform package can
   326         *  validate that the target is compatible with the configuration of
   327         *  the platform; the target object is accessible via the expression
   328         *  `Program.build.target`.
   329         */
   330        config ITarget.Module target;
   331
   332        /*!
   333         *  ======== attrs ========
   334         *  This executable's optional attributes.
   335         *
   336         *  These attributes are "inherited" by all objects added to this
   337         *  executable; i.e., any object attribute that is undefined but is
   338         *  defined here will be assigned the value from these attributes.
   339         *
   340         *  Similarly, any unspecified attributes that also appear in
   341         *  `{@link xdc.bld.PackageContents#Attrs}` are inherited from
   342         *  `{@link xdc.bld.PackageContents#attrs}`.
   343         *
   344         *  @see xdc.bld.PackageContents#Attrs
   345         */
   346        config Executable.Attrs attrs;
   347
   348        /*!
   349         *  ======== addObjects ========
   350         *  Add specified object to be built and linked into this executable.
   351         *
   352         *  All objects added to the executable are built with the symbol
   353         *  `xdc_cfg__header__` defined to be the name of the executable-specific
   354         *  C header generated by the program configuration tool.  This symbol
   355         *  is used by the `xdc/cfg/global.h` header to include the generated
   356         *  header file; see `{@link xdc.cfg.Program#global}`.  Thus, it is
   357         *  possible to portably include configuration specific definitions in a
   358         *  source file that is used in many different configurations.
   359         *
   360         *  For example, a portable `main.c` might be structured as follows:
   361         *  @p(code)
   362         *      #include <xdc/std.h>
   363         *      #include <ti/bios/include/log.h>
   364         *
   365         *      #include <xdc/cfg/global.h>    // include declaration of trace
   366         *
   367         *      int main(int argc, char *argv[])
   368         *      {
   369         *          LOG_printf(trace, "hello world");
   370         *              :
   371         *      }
   372         *  @p
   373         *
   374         *  @a(Examples)
   375         *
   376         *      1. Locate a source file whose name starts with "hello" with
   377         *      an extension supported by the executable's target, compile it
   378         *      and link it into the executable `myExe`:
   379         *      @p(code)
   380         *          myExe.addObjects(["hello"]);
   381         *      @p
   382         *      If hello.c exists, compile and add to `myExe`, if hello.asm exists
   383         *      assemble and add to `myExe`, etc.  If no such file is located,
   384         *      a warning is emitted.
   385         *
   386         *      2. Compile hello.c and add to the executable `myExe`:
   387         *      @p(code)
   388         *          myExe.addObjects(["hello.c"]);
   389         *      @p
   390         *      3. Names may include sub-directory prefixes.  In this case, the
   391         *      source will be located in a sub-directory of the current
   392         *      package.  The following statement declares that the file
   393         *      "`foo/hello.c`" should be compiled and linked into the executable
   394         *      `myExe`:
   395         *      @p(code)
   396         *          myExe.addObjects(["foo/hello.c"]);
   397         *      @p
   398         *      As in the previous examples, the extension ".c" is optional.
   399         *      In case an extension is not supplied, each extension
   400         *      understood by the target will be tried until a source file
   401         *      is located.
   402         *
   403         *      4. It is also possible to supply file specific compilation
   404         *      options.
   405         *      @p(code)
   406         *          myExe.addObjects(["fir.c", "iir.c"], {defs: "-D_DEBUG"});
   407         *      @p
   408         *      In this case, both files fir.c and iir.c will be compiled
   409         *      with the "`-D_DEBUG`" flag.  Any setting of `attrs.defs` in the
   410         *      executable or package is overridden by this definition.
   411         *
   412         *  @param(names)       array of base names of the sources of object files
   413         *                      to be created and linked into the executable.
   414         *                      See NOTE in `{@link xdc.bld}` for filename rules.
   415         *  @param(objAttrs)    optional `{@link xdc.bld.Object#Attrs}` for the
   416         *                      array of objects added; all objects named by names
   417         *                      will be given the attributes `objAttrs`.
   418         *  @a(returns)         `void`
   419         *
   420         *  @a(throws)          `Error` exceptions are thrown for fatal errors
   421         *
   422         *  @see xdc.cfg.Program#global
   423         */
   424        Void addObjects(String names[], Object.Attrs objAttrs = {});
   425
   426        /*!
   427         *  ======== addTest ========
   428         *  Add specified test to executable.
   429         *
   430         *  A test encapsulates an executable and a set of arguments passed to
   431         *  the executable when it is run.
   432         *
   433         *  Tests are run by naming the goal "`<test_name>.test`" on the xdc
   434         *  command line; `<test_name>` is the test's name.
   435         *
   436         *  Multiple tests may have the same name; in this case, it is possible
   437         *  to run all tests using the single goal "`<test_name>.test`"
   438         *
   439         *  @param(testAttrs)   test attrs object (`{@link xdc.bld.Test#Attrs}`)
   440         *
   441         *  @a(returns)         the `{@link xdc.bld.Test}` instance object created
   442         *
   443         *  @a(throws)          `Error` exceptions are thrown for fatal errors
   444         */
   445        Test.Instance addTest(Test.Attrs testAttrs);
   446    }
   447    /*
   448     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   449     */
   450


interface xdc.bld.ITarget

metaonly interface xdc.bld.ITarget
index URL

The interface between code generation tool-chains and the XDC Build Engine

This interface defines an abstract interface that must be supported by a compiler tool-chain in order to be used in an XDC build environment. This interface allows the XDC Build engine to treat all compiler tool chains uniformly; thus, it is possible to add support for a new compiler without making *any* changes to the build engine.
XDCspec summary sourced in xdc/bld/ITarget.xdc
metaonly interface ITarget { ...
XDCspec declarations sourced in xdc/bld/ITarget.xdc
package xdc.bld;
metaonly interface ITarget {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    readonly config Bool alignDirectiveSupported// The compiler supports an align directive = false;
    readonly config ITarget.Module base// A target that this target is based upon;
    readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    readonly config String sectMap// Output section name to segment type mapping[string];
    readonly config String stdInclude// Standard C/C++ types header;
    readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 0,
            align: 0
        },
        t_Char: {
            size: 0,
            align: 0
        },
        t_Double: {
            size: 0,
            align: 0
        },
        t_Float: {
            size: 0,
            align: 0
        },
        t_Fxn: {
            size: 0,
            align: 0
        },
        t_Int: {
            size: 0,
            align: 0
        },
        t_Int8: {
            size: 0,
            align: 0
        },
        t_Int16: {
            size: 0,
            align: 0
        },
        t_Int32: {
            size: 0,
            align: 0
        },
        t_Int40: {
            size: 0,
            align: 0
        },
        t_Int64: {
            size: 0,
            align: 0
        },
        t_Long: {
            size: 0,
            align: 0
        },
        t_LDouble: {
            size: 0,
            align: 0
        },
        t_LLong: {
            size: 0,
            align: 0
        },
        t_Ptr: {
            size: 0,
            align: 0
        },
        t_Short: {
            size: 0,
            align: 0
        },
        t_Size: {
            size: 0,
            align: 0
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    config ITarget.DebugGen debugGen// Debugger/IDE file generation support;
    config String execExt// Extension for executables;
    config ITarget.Extension extensions// File extensions recognized by this target[string] = [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
    config String platform// The default platform name for this target;
    config String platforms// A set of platforms that can support this target[] = [ ];
    config ITarget.OptionSet profiles// Profiles supported by this target[string] = [
        [
            "release",
            { }
        ],
        [
            "debug",
            { }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    config String version// The Compatibility Key associated with this target;
    config String versionMap// Map of compiler version numbers to compatibility keys[string] = [ ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef ITarget.StringArray
index URL
XDCspec declarations sourced in xdc/bld/ITarget.xdc
typedef String StringArray[];
struct ITarget.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct ITarget.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ITarget.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct ITarget.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ITarget.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ITarget.Extension
index URL

File extension to file type association

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ITarget.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct ITarget.Model
index URL

Target runtime model

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ITarget.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ITarget.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in xdc/bld/ITarget.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config ITarget.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config Bool alignDirectiveSupported = false;
config ITarget.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ITarget.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ITarget.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ITarget.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ITarget.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ITarget.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ITarget.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ITarget.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config String sectMap[string];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ITarget.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config String stdInclude;
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ITarget.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 0,
        align: 0
    },
    t_Char: {
        size: 0,
        align: 0
    },
    t_Double: {
        size: 0,
        align: 0
    },
    t_Float: {
        size: 0,
        align: 0
    },
    t_Fxn: {
        size: 0,
        align: 0
    },
    t_Int: {
        size: 0,
        align: 0
    },
    t_Int8: {
        size: 0,
        align: 0
    },
    t_Int16: {
        size: 0,
        align: 0
    },
    t_Int32: {
        size: 0,
        align: 0
    },
    t_Int40: {
        size: 0,
        align: 0
    },
    t_Int64: {
        size: 0,
        align: 0
    },
    t_Long: {
        size: 0,
        align: 0
    },
    t_LDouble: {
        size: 0,
        align: 0
    },
    t_LLong: {
        size: 0,
        align: 0
    },
    t_Ptr: {
        size: 0,
        align: 0
    },
    t_Short: {
        size: 0,
        align: 0
    },
    t_Size: {
        size: 0,
        align: 0
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config ITarget.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in xdc/bld/ITarget.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ITarget.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ITarget.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config ITarget.DebugGen debugGen;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config ITarget.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ITarget.extensions // module-wide
index URL

File extensions recognized by this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config ITarget.Extension extensions[string] = [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config ITarget.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config String platform;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ITarget.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ITarget.profiles // module-wide
index URL

Profiles supported by this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config ITarget.OptionSet profiles[string] = [
    [
        "release",
        { }
    ],
    [
        "debug",
        { }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ITarget.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ITarget.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config String version;
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
config ITarget.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCspec declarations sourced in xdc/bld/ITarget.xdc
config String versionMap[string] = [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
ITarget.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in xdc/bld/ITarget.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in xdc/bld/ITarget.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ITarget.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in xdc/bld/ITarget.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in xdc/bld/ITarget.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in xdc/bld/ITarget.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in xdc/bld/ITarget.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ITarget.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in xdc/bld/ITarget.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:43 GMT


interface xdc.bld.ITarget2

metaonly interface xdc.bld.ITarget2
index URL

Extension of the interface xdc.bld.ITarget

This interface contains some common structures and config parameters shared by several packages that contain targets.
XDCspec summary sourced in xdc/bld/ITarget2.xdc
metaonly interface ITarget2 { ...
// inherits xdc.bld.ITarget
XDCspec declarations sourced in xdc/bld/ITarget2.xdc
package xdc.bld;
metaonly interface ITarget2 inherits ITarget {
module-wide constants & types
    typedef String StringArray// [];
    metaonly struct ArchiveGoal// The goal specification passed to the archive function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".a62";
        String files// String of files to archive;
        String profile// index into profiles map;
        String opts// goal specific archiver options;
    };
    metaonly struct Command// Required command and options {
        String cmd// the command to run;
        String opts// required options for the command;
    };
    metaonly struct CommandSet// The commands necessary to create a specified goal {
        String msg// brief message describing subsequent commands;
        String cmds// commands necessary to generate goal;
        String path// host-independent representation of PATH[];
        String envs// environment variable settings for the cmds[];
    };
    metaonly struct CompileGoal// The goal specification passed to the compile function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".o62";
        String srcSuffix// optional suffix of source file; e.g., ".c";
        String srcPrefix// optional directory prefix of source file;
        String profile// index into profiles map;
         ITarget.CompileOptions opts// goal specific compiler options;
        Bool configOpts// true if compiling the generated C config file;
    };
    metaonly struct CompileOptions// Options passed to the compiler/assembler {
        String aopts// goal specific ASM options;
        String copts// goal specific C compiler options;
        String cfgcopts// goal specific C config file options;
        String defs// goal specific C/ASM definition options;
        String incs// goal specific C/ASM include options;
    };
    metaonly struct DebugGen// Debugger integration support {
        String execTemplate// debugger template for executable;
        String execPattern// exec file name pattern;
        String packageTemplate// debugger template for package;
        String packagePattern// package file name pattern;
    };
    metaonly struct Extension// File extension to file type association {
        String suf// file extension (including any '.');
        String typ// type of this file; e.g., "c", "asm", ..;
    };
    metaonly struct LinkGoal// The goal specification passed to the link function {
        String base// base name of the source and destination;
        String dstPrefix// directory prefix of destination file;
        String dstSuffix// suffix of destination file; e.g., ".x62";
        String files// string of files to link with;
        String profile// index into profiles map;
        String opts// goal specific linker options;
        Bool dllMode// true if we're linking an assembly;
        Bool isRom// reflects the isRom attribute;
    };
    metaonly struct Model// Target runtime model {
        String endian// endian-ness of this target;
        String codeModel// target-specific code model;
        String dataModel// target-specific data model;
        Bool shortEnums// if true, enums are packed into smallest integral type;
    };
    metaonly struct OptionSet// Collection of tool-chain options {
         ITarget.CompileOptions compileOpts// profile-specific compiler opts;
        String linkOpts// profile-specific linker opts;
        String archiveOpts// profile-specific archiver opts;
         ITargetFilter.InstDesc filters// ITargetFilter instance descs[];
    };
    metaonly struct Options// User configurable command options {
        String prefix// options that appear before Command.opts;
        String suffix// options that appear after Command.opts;
    };
    metaonly struct StdTypes// Standard base types supported by all targets {
         ITarget.TypeInfo t_IArg;
         ITarget.TypeInfo t_Char;
         ITarget.TypeInfo t_Double;
         ITarget.TypeInfo t_Float;
         ITarget.TypeInfo t_Fxn;
         ITarget.TypeInfo t_Int;
         ITarget.TypeInfo t_Int8;
         ITarget.TypeInfo t_Int16;
         ITarget.TypeInfo t_Int32;
         ITarget.TypeInfo t_Int40;
         ITarget.TypeInfo t_Int64;
         ITarget.TypeInfo t_Long;
         ITarget.TypeInfo t_LDouble;
         ITarget.TypeInfo t_LLong;
         ITarget.TypeInfo t_Ptr;
         ITarget.TypeInfo t_Short;
         ITarget.TypeInfo t_Size;
    };
module-wide config parameters
    readonly config Bool alignDirectiveSupported// The compiler supports an align directive = false;
    readonly config ITarget2.Command ar// The command used to create an archive;
    readonly config ITarget2.Command asm// The command used to assembles assembly source files into object files;
    readonly config ITarget.Module base// A target that this target is based upon;
    readonly config Int bitsPerChar// The number of bits in a variable of type char = 8;
    readonly config ITarget2.Command cc// The command used to compile C/C++ source files into object files;
    readonly config String isa// CPU Instruction Set Architecture (ISA);
    readonly config ITarget2.Command lnk// The command used to link executables;
    readonly config ITarget.Model model// Run-time model;
    readonly config String name// Nickname for this target;
    readonly config String os// Name of OS required to run programs built for this target;
    readonly config String rts// Name of a run-time support package to include;
    readonly config String sectMap// Output section name to segment type mapping[string];
    readonly config String stdInclude// Standard C/C++ types header;
    readonly config ITarget.StdTypes stdTypes// Size and alignment for standard base types = {
        t_IArg: {
            size: 0,
            align: 0
        },
        t_Char: {
            size: 0,
            align: 0
        },
        t_Double: {
            size: 0,
            align: 0
        },
        t_Float: {
            size: 0,
            align: 0
        },
        t_Fxn: {
            size: 0,
            align: 0
        },
        t_Int: {
            size: 0,
            align: 0
        },
        t_Int8: {
            size: 0,
            align: 0
        },
        t_Int16: {
            size: 0,
            align: 0
        },
        t_Int32: {
            size: 0,
            align: 0
        },
        t_Int40: {
            size: 0,
            align: 0
        },
        t_Int64: {
            size: 0,
            align: 0
        },
        t_Long: {
            size: 0,
            align: 0
        },
        t_LDouble: {
            size: 0,
            align: 0
        },
        t_LLong: {
            size: 0,
            align: 0
        },
        t_Ptr: {
            size: 0,
            align: 0
        },
        t_Short: {
            size: 0,
            align: 0
        },
        t_Size: {
            size: 0,
            align: 0
        }
    };
    readonly config String suffix// Suffix appended to all objs, libraries, and executable;
    config ITarget2.Options arOpts// User configurable archiver options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options asmOpts// User configurable assembler options = {
        prefix: "",
        suffix: ""
    };
    config ITarget2.Options ccConfigOpts// User configurable compiler options for the generated config C file = {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
    config ITarget2.Options ccOpts// User configurable compiler options = {
        prefix: "",
        suffix: ""
    };
    config String compatibleSuffixes// Array of suffixes used by targets compatible with this target[];
    config ITarget.DebugGen debugGen// Debugger/IDE file generation support;
    config String execExt// Extension for executables;
    config ITarget.Extension extensions// File extensions recognized by this target[string] = [
        [
            ".asm",
            {
                suf: ".asm",
                typ: "asm"
            }
        ],
        [
            ".c",
            {
                suf: ".c",
                typ: "c"
            }
        ],
        [
            ".cpp",
            {
                suf: ".cpp",
                typ: "cpp"
            }
        ],
        [
            ".cxx",
            {
                suf: ".cxx",
                typ: "cpp"
            }
        ],
        [
            ".C",
            {
                suf: ".C",
                typ: "cpp"
            }
        ],
        [
            ".cc",
            {
                suf: ".cc",
                typ: "cpp"
            }
        ]
    ];
    config String includeOpts// Additional user configurable target-specific include path options;
    config ITarget2.Options lnkOpts// User configurable linker options = {
        prefix: "",
        suffix: ""
    };
    config String platform// The default platform name for this target;
    config String platforms// A set of platforms that can support this target[] = [ ];
    config ITarget.OptionSet profiles// Profiles supported by this target[string] = [
        [
            "release",
            { }
        ],
        [
            "debug",
            { }
        ]
    ];
    config String rootDir// Installation directory for this target's code generation tools;
    config String version// The Compatibility Key associated with this target;
    config String versionMap// Map of compiler version numbers to compatibility keys[string] = [ ];
module-wide functions
     ITarget.CommandSet *archive// Create an archive(ITarget.ArchiveGoal *goal);
     ITarget.CommandSet *compile// Compile a source file into an object file(ITarget.CompileGoal *goal);
     function findSuffix// Find the suffix that is compatible with this target(pkg);
    String genConstCustom// Return any custom generated code related to generated constants(ITarget2.StringArray names, ITarget2.StringArray types);
    String genVisibleData// Return any custom generated code related to data generated in the config C file(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
    String genVisibleFxns// Return any custom generated code related to functions generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
    String genVisibleLibFxns// Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
     function getISAChain// Get this target's ISA "is compatible with" relation(isa);
    String getVersion// Get a target-specific Compatibility Key string();
     ITarget.CommandSet *link// Link object files to produce an executable(ITarget.LinkGoal *goal);
     ITarget.CommandSet *scompile// Compile a source file into an assembly language file(ITarget.CompileGoal *goal);
    String selectSuffix// Select the suffix that is compatible with this target(ITarget.StringArray suffixList);
}
typedef ITarget2.StringArray
index URL
XDCspec declarations sourced in xdc/bld/ITarget2.xdc
typedef String StringArray[];
struct ITarget2.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct ArchiveGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".a62"
    String files;
    // String of files to archive
    String profile;
    // index into profiles map
    String opts;
    // goal specific archiver options
};
SEE
archive
struct ITarget2.Command
index URL

Required command and options

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct Command {
    String cmd;
    // the command to run
    String opts;
    // required options for the command
};
FIELDS
cmd — name of a tool-chain executable without any path information. The location of this executable is specified by the binDir (or pathPrefix) configuration parameter.
opts — required options passed to the command; these options can not be changed or eliminated by user's configuration script.
DETAILS
The compile, link, and archive functions in this interface are implemented by expanding the strings specified in this structure and inserting strings from the Options structure to form a single command. The strings in this structure can not be changed by the user (they are fixed by the target), but the string in the Options structure may be changed by the user.
The final command is: Command.cmd Options.prefix Command.opts Options.suffix
struct ITarget2.CommandSet
index URL

The commands necessary to create a specified goal

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct CommandSet {
    String msg;
    // brief message describing subsequent commands
    String cmds;
    // commands necessary to generate goal
    String path[];
    // host-independent representation of PATH
    String envs[];
    // environment variable settings for the cmds
};
FIELDS
msg — a brief synopsis of the commands specified by cmds; this string is output in lieu of cmds when building in "non-verbose" mode.
cmds — a single string of commands that must be executed to complete the specified operation. Multiple commands may be specified by separating each command with the '\n' character.
To facilitate the creation of "portable" makefiles and to simplify the implementation of targets, certain distinguished "macros" may be embedded in this string. The build engine replaces these macros with the values described below.
$(rootDir)
the target's rootDir configuration parameter
$(packageBase)
the target package's xdc.IPackage.packageBase property
$(XDCINCS)
a set of "-I" options that names each repository in the package path
envs — an array of "name=value" strings that represent environment variables that are defined prior to the execution of the commands specified by cmds
path — an array of directory names that are used to compose the PATH environment variable that is in effect when the commands specified by cmds are run.
DETAILS
This structure is the return value of the compile, link and archive functions. This value is then used to generate a makefile or any other files necessary to generate a specified goal.
SEE
archive, compile, scompile, link
struct ITarget2.CompileGoal
index URL

The goal specification passed to the compile function

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct CompileGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".o62"
    String srcSuffix;
    // optional suffix of source file; e.g., ".c"
    String srcPrefix;
    // optional directory prefix of source file
    String profile;
    // index into profiles map
     ITarget.CompileOptions opts;
    // goal specific compiler options
    Bool configOpts;
    // true if compiling the generated C config file
};
SEE
compile, scompile
struct ITarget2.CompileOptions
index URL

Options passed to the compiler/assembler

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct CompileOptions {
    String aopts;
    // goal specific ASM options
    String copts;
    // goal specific C compiler options
    String cfgcopts;
    // goal specific C config file options
    String defs;
    // goal specific C/ASM definition options
    String incs;
    // goal specific C/ASM include options
};
FIELDS
aopts — a string of target-specific assembler options
copts — a string of target-specific C/C++ compiler options
cfgcopts — a string of C/C++ compiler options for C config file, includes 'copts' in addition to the value passed
defs — a string of macro definitions each of the form "-Dname=value" separated by white space
incs — a string of include directories each of the form "-Idir" separated by white space
PREDEFINED MACROS
The XDC Build Engine automatically adds several predefined macros via -D definitions that enable conditional compilation of source files based on build-specific attributes.
xdc_bld__profile_{profile_name}
this symbol is always defined and {profile_name} is the compile goal's (see CompileGoal) profile name.
In addition, each target defines a set of macros that enable clients to portably support big/little endian targets, for example. These macros are indirectly included by sources that include xdc/std.h; see xdc.
SEE
OptionSet, CompileGoal, xdc
struct ITarget2.DebugGen
index URL

Debugger integration support

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct DebugGen {
    String execTemplate;
    // debugger template for executable
    String execPattern;
    // exec file name pattern
    String packageTemplate;
    // debugger template for package
    String packagePattern;
    // package file name pattern
};
DETAILS
This structure specifies additional files that are generated in order to support integration with a debugger. For example, the default setting for TI targets specifies the generation of CCS project files that allow one to easily debug executables that have been constructed from multiple packages.
There are two "types" of debug support files that are generated; one for the package as a whole, and one for each executable. Since packages may contain portable sources that are built for more than one target, a "package-level" file is generated for each target used in the package. A separate file is generated for each executable built within the package.
The execTemplate and packageTemplate fields name a template that is expanded in the context of the config model and the build model, respectively. These fields should be set to a file name string which is relative to the package path; e.g., the string "ti/targets/cc_exec.xdt" refers to the file "cc_exec.xdt" in the ti.targets package located along the package path.
Preconditions for the execTemplate:
this
the configured program object (xdc.cfg.Program); i.e., the program object *after* the program's configuration script completes.
$args
array of arguments passed to the template
$args[1]
the name of the executable being produced for this configuration.
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
Preconditions for the packageTemplate:
this
the "package contents" object (i.e., xdc.bld.PackageContents) *after* the package's build script (package.bld) completes.
$args
array of arguments passed to the template
$args[0]
the target (a module implementing the xdc.bld.ITarget interface)
$args[1]
hash-table of all package sources
environment
hash table of XDC global parameters; e.g., "xdc.path", "xdc.root", ...
The execPattern and packagePattern fields are expressions that are expanded prior to template expansion to determine the name of the output file. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execPattern:
cfgName
the name of the generated configuration file (without any directory prefix);
cfgDir
the name of the directory containing the config file;
exeName
the name of the executable file (without any directory prefix);
exeDir
the directory containing the executable file.
Both the exeDir and cfgDir are relative to the directory containing the package.bld script.
Built-in variables for packagePattern:
pkgName
the package's name (e.g., "ti.targets");
trgName
the target's name property;
trgSuffix
the target's suffix property.
SEE
debugGen
struct ITarget2.Extension
index URL

File extension to file type association

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct Extension {
    String suf;
    // file extension (including any '.')
    String typ;
    // type of this file; e.g., "c", "asm", ..
};
FIELDS
suf — the file extension including any '.' characters
typ — the type of the file having this extension. Allowable file type identifiers include:
"c"
C language source file
"asm"
assembly language source file
"cpp"
C++ language source file
DETAILS
This structure is used by the Build Engine to determine whether a file should be treated as C++, C, or assembly language source.
SEE
extensions
struct ITarget2.LinkGoal
index URL

The goal specification passed to the link function

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct LinkGoal {
    String base;
    // base name of the source and destination
    String dstPrefix;
    // directory prefix of destination file
    String dstSuffix;
    // suffix of destination file; e.g., ".x62"
    String files;
    // string of files to link with
    String profile;
    // index into profiles map
    String opts;
    // goal specific linker options
    Bool dllMode;
    // true if we're linking an assembly
    Bool isRom;
    // reflects the isRom attribute
};
SEE
link
struct ITarget2.Model
index URL

Target runtime model

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct Model {
    String endian;
    // endian-ness of this target
    String codeModel;
    // target-specific code model
    String dataModel;
    // target-specific data model
    Bool shortEnums;
    // if true, enums are packed into smallest integral type
};
FIELDS
— (endian) this string specifies the endianess of the generated code. Valid values include:
"big"
big endian
"little"
little endian
null
unspecified
(codeModel) this string specifies a target-specific code size model. Valid values include:
"near"
C54 near mode
"far"
C54 far mode
undefined
unspecified
(dataModel) this string specifies a target-specific data size model. Valid values include:
"large"
C55, C28 large model
undefined
unspecified
(shortEnums) this flag specifies if a target fits the values of an enumeration into the smallest integer type that can accept all values. If that is the case, this flag must be set to true. If all values are the size of an Int, this flag can be either set to false or left unspecified.
SEE
model
struct ITarget2.OptionSet
index URL

Collection of tool-chain options

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct OptionSet {
     ITarget.CompileOptions compileOpts;
    // profile-specific compiler opts
    String linkOpts;
    // profile-specific linker opts
    String archiveOpts;
    // profile-specific archiver opts
     ITargetFilter.InstDesc filters[];
    // ITargetFilter instance descs
};
FIELDS
compilerOptions — a set of compiler/assembler options
linkOpts — a string of target-specific linker options
archiveOpts — a string of target-specific archiver options
filters — an array of filters applied (in order) to tool-chain commands
DETAILS
This structure is used to define a collection of tool-chain options that are used as a group to achieve some effect supported by the tool-chain. For example, some compilers require that specific options be passed to the compiler *and* linker in order to generate execution profile information or code coverage statistics.
SEE
profiles
struct ITarget2.Options
index URL

User configurable command options

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct Options {
    String prefix;
    // options that appear before Command.opts
    String suffix;
    // options that appear after Command.opts
};
DETAILS
The option strings allow the user to pass additional parameters to the executable that is responsible for compiling, linker, or archiving. See xdc.bld.ITarget2.Command.
struct ITarget2.StdTypes
index URL

Standard base types supported by all targets

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
metaonly struct StdTypes {
     ITarget.TypeInfo t_IArg;
     ITarget.TypeInfo t_Char;
     ITarget.TypeInfo t_Double;
     ITarget.TypeInfo t_Float;
     ITarget.TypeInfo t_Fxn;
     ITarget.TypeInfo t_Int;
     ITarget.TypeInfo t_Int8;
     ITarget.TypeInfo t_Int16;
     ITarget.TypeInfo t_Int32;
     ITarget.TypeInfo t_Int40;
     ITarget.TypeInfo t_Int64;
     ITarget.TypeInfo t_Long;
     ITarget.TypeInfo t_LDouble;
     ITarget.TypeInfo t_LLong;
     ITarget.TypeInfo t_Ptr;
     ITarget.TypeInfo t_Short;
     ITarget.TypeInfo t_Size;
};
SEE
stdTypes
config ITarget2.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config Bool alignDirectiveSupported = false;
config ITarget2.ar // module-wide
index URL

The command used to create an archive

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config ITarget2.Command ar;
config ITarget2.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config ITarget2.Command asm;
config ITarget2.base // module-wide
index URL

A target that this target is based upon

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config ITarget.Module base;
DETAILS
If non-null, this target shares the same tool-chain of the specified base target. This parameter is used to determine various default values for target configuration parameters. For example, the default setting of rootDir is the value of the base's rootDir setting.
config ITarget2.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config Int bitsPerChar = 8;
DETAILS
This constant allows one to determine the precise number of bits in each of the types specified in the stdTypes map. For example, the number of bits in the target T's int type is
      T.stdTypes.t_Int.size * T.bitsPerChar
config ITarget2.cc // module-wide
index URL

The command used to compile C/C++ source files into object files

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config ITarget2.Command cc;
config ITarget2.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config String isa;
DETAILS
This parameter is used to identify a set of targets that produce code for a common ISA. This is used by build scripts that need to build for all targets that support a particular device.
For example, the build script for a package that is designed for the TMS32064xx (and no other CPU) can easily specify that it should be built for all targets that generate code for the TMS320C64xx without having to specify a specific target. This allows the user to add new targets (big endian, little endian, different compilers, etc.) that build for the TMS320C64xx without having to modify the package's build script.
Note that this field should not be confused with platform ISA names; this field is defined by target tool-chains and may differ from the names given by a CPU device.
SEE
xdc.platform.ICpuDataSheet
config ITarget2.lnk // module-wide
index URL

The command used to link executables

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config ITarget2.Command lnk;
config ITarget2.model // module-wide
index URL

Run-time model

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config ITarget.Model model;
DETAILS
This structure identifies a particular run-time model used by the compiler to generate instructions.
config ITarget2.name // module-wide
index URL

Nickname for this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config String name;
DETAILS
This name is typically the name of the module without the package name prefix. Thus, it is not necessarily globally unique.
Use the $name property of the module to get a globally unique name for the target.
config ITarget2.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config String os;
DETAILS
Native executables are run by the host OS. This OS often defines runtime interfaces that all executables (implicitly or explicitly) use.
If os is undefined, then no OS is required.
config ITarget2.rts // module-wide
index URL

Name of a run-time support package to include

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config String rts;
DETAILS
Development environments often provide a set of common run-time support functions that all other code can easily utilize; e.g., some means for performing a "printf", normal program termination with "exit status", etc. If the rts parameter is non-null, it is the name of a package that is implicitly imported when building any executable that is built using this target. If rts is undefined, no rts package is imported.
This parameter makes it possible for the target producer to name a package that provides a target-specific implementation of a runtime support interface. Clients of a target do not need to explicitly name a target specific rts implementation; thus, it is not possible for the client to inadvertently name the wrong (or an incompatible) rts implementation.
Note: this package is *NOT* included if the executable's xdc.bld.Executable.attrs.rtsName attribute is set to null; see xdc.bld.Executable.Attrs. It is also not included if the executable is a legacy DSP/BIOS program.
config ITarget2.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config String sectMap[string];
DETAILS
This hash table is used to determine whether a particular object file output section (".text", ".stack", etc.) requires 'data', 'code' or 'stack' memory segment.
This sectMap is referenced by linker command file templates during generation to create linker command files. The Platform defines the default memory segments for code and data, and based on this map and the default segments, the linker command file template places an output section into a physical memory segment.
Note that the xdc.cfg.Program object and the xdc.platform.IPlatform instance have a sectMap parameter. Both the Program's and IPlatform's sectMap can augment and/or override the placement for a section, but xdc.cfg.Program.sectMap takes precedence. Therefore, this sectMap and the default segments from the platform define an initial section map which is then augmented by the Program's and IPlatform's section map.
config ITarget2.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config String stdInclude;
DETAILS
This string identifies a header containing the C/C++ definitions required to enable use of xdc/std.h in C/C++ sources; see xdc.
The value of this string is used by xdc/std.h to include target-specific definitions of the types Int8, Int16, etc. In addition, this header supplies target-specific definitions of the predefined xdc_target__* macros required by xdc/std.h.
Since this header must supply target-specific values for target-independent names the structure of this header is usually of the form:
      // if target macros are not already defined,
      #if !defined(xdc_target_macros_include__)
          // include target-specific definitions
          #if defined(TARGET1)
              #include "target1.h"
          #elif defined(TARGET2)
              #include "target2.h"
          #elif ...
              :
          #else
              #error unsupported target
          #endif
      #endif
      // include common definitions
          :
The check of the symbol xdc_target_macros_include__ exists to allow others that define new targets to include this header to get common definitions for a family of related targets.
To simplify the creation of the target-specific header files, the template file stddefs.xdt in this package can be used to automatically generate the required definitions from each target's .xdc specification.
config ITarget2.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config ITarget.StdTypes stdTypes = {
    t_IArg: {
        size: 0,
        align: 0
    },
    t_Char: {
        size: 0,
        align: 0
    },
    t_Double: {
        size: 0,
        align: 0
    },
    t_Float: {
        size: 0,
        align: 0
    },
    t_Fxn: {
        size: 0,
        align: 0
    },
    t_Int: {
        size: 0,
        align: 0
    },
    t_Int8: {
        size: 0,
        align: 0
    },
    t_Int16: {
        size: 0,
        align: 0
    },
    t_Int32: {
        size: 0,
        align: 0
    },
    t_Int40: {
        size: 0,
        align: 0
    },
    t_Int64: {
        size: 0,
        align: 0
    },
    t_Long: {
        size: 0,
        align: 0
    },
    t_LDouble: {
        size: 0,
        align: 0
    },
    t_LLong: {
        size: 0,
        align: 0
    },
    t_Ptr: {
        size: 0,
        align: 0
    },
    t_Short: {
        size: 0,
        align: 0
    },
    t_Size: {
        size: 0,
        align: 0
    }
};
DETAILS
The values of size are the values returned by the target-specific sizeof() operator applied to the specified type (as defined by the C language). The align value is the number of chars used in the alignment of the specified type.
config ITarget2.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
readonly config String suffix;
DETAILS
All files generated by this target (object files, archives, executables, etc.) have file names whose extensions end with suffix. In particular, targets create files with the following extensions:
".a<suffix>"
archive files (i.e., libraries)
".o<suffix>"
object files
".s<suffix>"
assembly language source (see scompile())
".x<suffix>"
executable files This suffix should be chosen to globally and uniquely identify the EABI (Embedded Application Binary Interface) of the objects produced by this target. Targets with the same suffix should should produce 100% EABI compatible objects and, targets with different suffixes should produce objects with incompatible EABIs.
SEE
scompile()
config ITarget2.arOpts // module-wide
index URL

User configurable archiver options

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config ITarget2.Options arOpts = {
    prefix: "",
    suffix: ""
};
config ITarget2.asmOpts // module-wide
index URL

User configurable assembler options

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config ITarget2.Options asmOpts = {
    prefix: "",
    suffix: ""
};
config ITarget2.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config ITarget2.Options ccConfigOpts = {
    prefix: "$(ccOpts.prefix)",
    suffix: "$(ccOpts.suffix)"
};
DETAILS
By default, this parameter inherits values specified in ccOpts. The strings "$(ccOpts.prefix)" and "$(ccOpts.suffix)" are expanded into the values specified by ccOpts for this target.
config ITarget2.ccOpts // module-wide
index URL

User configurable compiler options

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config ITarget2.Options ccOpts = {
    prefix: "",
    suffix: ""
};
config ITarget2.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config String compatibleSuffixes[];
DETAILS
This array is used to identify a set of targets that produce code that can be linked with code produced by this target, where the order of suffixes defines the order of preferrence. This parameter is used by findSuffixes().
For example, an Arm target which builds for v6 architecture might have the following values in its compatibleSuffix: ["v5T", "MV470"]. This means that code produced by targets with suffixes "v5T' and "MV470" can be linked with code produced by that target, and that "v5T" code is more preferred than "MV470" code.
config ITarget2.debugGen // module-wide
index URL

Debugger/IDE file generation support

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config ITarget.DebugGen debugGen;
DETAILS
This parameter allows one to automatically generate files that can be used by an IDE to more easily debug (and possibly rebuild) specified goals.
To avoid unnecessary build time overhead, these files are not always generated; by default, they are only generated for "debug" profiles. The generation of these files is controlled by the xdc.cfg.Program.gen configuration parameter. To force these files to be generated for a particular executable, add the following line to the executable's program configuration script:
        Program.gen.debuggerFiles = true;
It is also possible to disable the generation of selected files by setting the appropriate fields of DebugGen to null in your config.bld script.
config ITarget2.execExt // module-wide
index URL

Extension for executables

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config String execExt;
DETAILS
Operating systems and tools often have a strong preference for a specific extension for executables; e.g., Windows expects executables to have the extension ".exe". If this parameter is set, executables will be given the specified extension instead of the default ".x<suffix>", where <suffix> is the target's suffix parameter.
The execExt is an expression that is expanded prior to use. Expressions of the form "$(name)" within the pattern string are expanded if "name" is one of the built-in variables listed below.
Built-in variables for execExt:
trgName
the target's name property
trgSuffix
the target's suffix property
platPName
the executable's platform package name
platIName
the executable's platform instance name
EXAMPLE
If you want to build a portable executable for multiple targets side-by-side and you want (or need) to use a fixed extension such as ".out" for all executables, setting execExt to "_$(trgSuffix).out" for all targets ensures that all generated executables will have unique names and yet share a common extension of ".out".
config ITarget2.extensions // module-wide
index URL

File extensions recognized by this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config ITarget.Extension extensions[string] = [
    [
        ".asm",
        {
            suf: ".asm",
            typ: "asm"
        }
    ],
    [
        ".c",
        {
            suf: ".c",
            typ: "c"
        }
    ],
    [
        ".cpp",
        {
            suf: ".cpp",
            typ: "cpp"
        }
    ],
    [
        ".cxx",
        {
            suf: ".cxx",
            typ: "cpp"
        }
    ],
    [
        ".C",
        {
            suf: ".C",
            typ: "cpp"
        }
    ],
    [
        ".cc",
        {
            suf: ".cc",
            typ: "cpp"
        }
    ]
];
DETAILS
This is a user modifiable table used to customize file extensions recognized by each target.
For example, to add a new assembly language extension, say ".s64", to the target ti.targets.C64P, add the following lines to the build model startup script:
      var C64P = xdc.module('ti.targets.C64P');
      C64P.extensions[".s64"] = {
          suf: ".s64", typ: "asm"
      };

  Note that individual targets may add additional language types.

  It is also possible to remove default extensions.  For example, to
  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
  the following lines to the build model startup script:

      var C64P = xdc.module('ti.targets.C64P');
      delete C64P.extensions[".asm"];
config ITarget2.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config String includeOpts;
config ITarget2.lnkOpts // module-wide
index URL

User configurable linker options

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config ITarget2.Options lnkOpts = {
    prefix: "",
    suffix: ""
};
config ITarget2.platform // module-wide
index URL

The default platform name for this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config String platform;
DETAILS
Build scripts often build for just one platform per target. This parameter allows one to establish a default platform for each target in a build.
If this parameter is null or undefined and platforms array is non-empty, it is initialized to be the first element of the platforms array (i.e., platforms[0]).
config ITarget2.platforms // module-wide
index URL

A set of platforms that can support this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config String platforms[] = [ ];
DETAILS
Some build scripts build executables for "all" platforms; e.g., regression test suites. This parameter allows one to establish a set of platforms that build scripts can legitimately use to create executables, for example.
If this array is empty (i.e., has length 0) and platform is non-null, platforms is initialized to an array of one element equal to platform.
config ITarget2.profiles // module-wide
index URL

Profiles supported by this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config ITarget.OptionSet profiles[string] = [
    [
        "release",
        { }
    ],
    [
        "debug",
        { }
    ]
];
DETAILS
A profile is a collection of tool options used to create a library or executable that supports a certain "flavor" of library or executable; e.g., "debug" or "release".
Some profile names are supported by all targets even though the targets use different compilers (and therefore different options). These profile names makes it possible for a package to build libraries or executables in a "debug" (or "release") profile independent of the target, for example.
All targets are required to support "debug" and "release" profile names.
Profile options are added to beginning of any goal specific options specified by the user before being passed to the target.
config ITarget2.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config String rootDir;
DETAILS
Since each target potentially "wraps" a different compiler tool-chain and each tool-chain will, in general, assume a different physical design for the installation of the compiler and its associated libraries and headers, one must consult each specific target to know how to set this parameter.
If the base parameter is null, this parameter *must* be set by the user; otherwise, rootDir defaults to the value base.rootDir.
config ITarget2.version // module-wide
index URL

The Compatibility Key associated with this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config String version;
READONLY
This value is automatically computed by the XDC Build Engine by executing the getVersion() function after package.bld completes but prior to generating package.mak.
config ITarget2.versionMap // module-wide
index URL

Map of compiler version numbers to compatibility keys

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
config String versionMap[string] = [ ];
DETAILS
versionMap is a user modifiable table used to map tool-chain version numbers to Compatibility Keys.
Each target defines the format of the tool-chain version obtained from the tool-chain. The user can then map new tool-chain version strings to an appropriate compatibility key.
Each target must respect the mapping defined by this table; i.e., if the user supplies a compatibility key in this map, it must be returned when getVersion() is called.
Thus, it is possible for the user to assert that any two compiler tool chains should be treated as equivalent (or incompatible) by mapping their version numbers to identical (incompatible) compatibility keys.
SEE
ti.targets.ITarget.versionMap
ITarget2.archive() // module-wide
index URL

Create an archive

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
ITarget.CommandSet *archive(ITarget.ArchiveGoal *goal);
ARGUMENTS
goal — the ArchiveGoal defining the archive to build.
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget2.compile() // module-wide
index URL

Compile a source file into an object file

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
ITarget.CommandSet *compile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified object file goal.
RETURNS
This function retuns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget2.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
function findSuffix(pkg);
ARGUMENTS
pkg — a package object or an array of target suffix strings (see suffix).
DETAILS
This function determines the list of targets supported by the package given as the argument. From that list, this function returns the suffix of a target that is compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if pkg does not support any target compatible with this target.
ITarget2.genConstCustom() // module-wide
index URL

Return any custom generated code related to generated constants

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
String genConstCustom(ITarget2.StringArray names, ITarget2.StringArray types);
PARAMS
array of constant names generated in the config C file
array of types; each type corresponds to the element of names with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget2.genVisibleData() // module-wide
index URL

Return any custom generated code related to data generated in the config C file

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
String genVisibleData(ITarget2.StringArray quals, ITarget2.StringArray types, ITarget2.StringArray names);
PARAMS
array of declaration qualifiers for the generated data
array of types for the generated data
array of variable names; each name corresponds to the elements of quals and 'types` with the same index
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of data in case of partially linker objects. If there is nothing to be added, this function returns 'null'. If a target never generates any such code, it can rely on the default implementation that always returns 'null'.
ITarget2.genVisibleFxns() // module-wide
index URL

Return any custom generated code related to functions generated in the config C file

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
String genVisibleFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects.
ITarget2.genVisibleLibFxns() // module-wide
index URL

Return any custom generated code related to functions that are included in the configuration, but are not generated in the config C file

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
String genVisibleLibFxns(ITarget2.StringArray types, ITarget2.StringArray names, ITarget2.StringArray args);
PARAMS
array of types of functions' return values
array of functions' names; each name corresponds to the elements of types and 'args` with the same index
array of functions' argument lists, including qualifiers
RETURNS
This function returns custom C code that will be embedded into the generated config C file. The purpose of the function is to allow targets to add pragmas or attributes to prevent elimination of functions in case of partially linker objects. These functions are managed separately from the functions that are generated in the config C file because some pragmas and attributes can be used only for functions defined in the same compilation unit where the paragmas and attributes are generated. For functions that are not generated in the config C file, and the mentioned restrictions exist, targets may have to create references that will prevent elimination of functions defined outside of the config C file.
ITarget2.getISAChain() // module-wide
index URL

Get this target's ISA "is compatible with" relation

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
function getISAChain(isa);
ARGUMENTS
isa — the ISA identifier string for the ISA to lookup; if null then the target's ISA is used (ITarget.isa).
DETAILS
Returns an array of ISA names (including this target's ISA) that represents the "is a" relation between ISA's. The array starts with the most general ISA and ends with this target's ISA or with the optionally specified argument. This relation is used to:
  1. pre-define macro definitions that enable code to be conditionally compiled based on compatible versions of a target's ISA.
  2. locate appropriate source files during makefile generation; each ISA named in a chain causes the extensions ".s"isa to be added to the ITarget.extensions table (in the reverse order that they appear in the chain). For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the following assembly language suffixes are added to the target's extensions table: ".s64P", ".s64", ".s62".
  3. determine the assembly language suffix used during legacy BIOS configuration; the first element of the target's ISA chain defines the suffix. For example, if a target's ISA is "64P" and the returned chain is ["62", "64", "64P"], the assembly suffix is ".s62".
This relation may also be used in the future to help validate combinations of targets and platforms; a target's CPU ISA must appear on the chain specified by the platform's CPU ISA.
RETURNS
This function returns an array of ISA strings where the last string is the optionally specified ISA string or this target's ISA, and the first string is the "base" ISA in the is source compatible" relationship. If the specified ISA string is not in this target's chain of compatible targets, null is returned.
THROWS
Error exceptions are thrown for fatal errors.
ITarget2.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
String getVersion();
DETAILS
This function is called during makefile generation to obtain a target-specific Compatibility Key string. This string is of the form:
      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
where, <pkg>.<mod> is the name of the target, and <d0>, <d1>, etc. forms a Compatibility Key.
RETURNS
This function returns a string that encodes the name of the target and its Compatibility Key.
THROWS
Error exceptions are thrown for fatal errors.
ITarget2.link() // module-wide
index URL

Link object files to produce an executable

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
ITarget.CommandSet *link(ITarget.LinkGoal *goal);
ARGUMENTS
goal — a LinkGoal that specifies the output file name, a list of files to link with, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified object file. If null, then goal can not be achieved.
THROWS
Error exceptions are thrown for fatal errors.
ITarget2.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
ITarget.CommandSet *scompile(ITarget.CompileGoal *goal);
ARGUMENTS
goal — a CompileGoal that specifies what file to compile, the output file name, and any goal-specific options to use
DETAILS
This function is called during makefile generation to convert build goals into specific commands that generate the specified assembly language source goal.
RETURNS
This function returns a CommandSet. If non-null, this object defines the commands that must be executed to create the specified assembly language file. If null, then goal can not be achieved or is unnecessary (e.g., because the source file is already an asm file).
THROWS
Error exceptions are thrown for fatal errors.
ITarget2.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCspec declarations sourced in xdc/bld/ITarget2.xdc
String selectSuffix(ITarget.StringArray suffixList);
ARGUMENTS
suffixList — an array of target suffix strings (see suffix).
DETAILS
From a list of suffixes supplied as an argument, this function returns the suffix compatible with this target. Compatibility in this case means that object files created by a target having the suffix returned by this function can be linked into an executable produced using this target. In the case where more than one suffix is compatible, this function returns a suffix in the following order of preference:
  1. if this target's suffix is in the list, that suffix is returned.
  2. suffixes from compatibleSuffixes are matched against the list from the first to the last, and the first one with the match is returned.
RETURNS
This function returns the suffix string of a target compatible with this target or null if no such suffix is found in the list of suffixes specified by the first argument.
generated on Thu, 08 Nov 2012 02:13:44 GMT


interface xdc.bld.ITarget2

     1    /*
     2     *  Copyright (c) 2009 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== ITarget2.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== ITarget2 ========
    19     *  Extension of the interface {@link xdc.bld.ITarget}.
    20     *
    21     *  This interface contains some common structures and config parameters
    22     *  shared by several packages that contain targets.
    23     */
    24    metaonly interface ITarget2 inherits ITarget {
    25
    26        /*!
    27         *  ======== Command ========
    28         *  Required command and options.
    29         *
    30         *  The compile, link, and archive functions in this interface are
    31         *  implemented by expanding the strings specified in this structure
    32         *  and inserting strings from the Options structure to form a single
    33         *  command.  The strings in this structure can not be changed by
    34         *  the user (they are fixed by the target), but the string in the
    35         *  Options structure may be changed by the user.
    36         *
    37         *  The final command is:
    38         *      Command.cmd Options.prefix Command.opts Options.suffix
    39         *
    40         *  @field(cmd)     name of a tool-chain executable without any path
    41         *                  information.  The location of this executable is
    42         *                  specified by the binDir (or pathPrefix)
    43         *                  configuration parameter.
    44         *
    45         *  @field(opts)    required options passed to the command; these options
    46         *                  can not be changed or eliminated by user's
    47         *                  configuration script.
    48         */
    49        struct Command {
    50            string cmd;     /*! the command to run */
    51            string opts;    /*! required options for the command */
    52        }
    53
    54        /*!
    55         *  ======== Options ========
    56         *  User configurable command options.
    57         *
    58         *  The option strings allow the user to pass additional parameters to the
    59         *  executable that is responsible for compiling, linker, or archiving.
    60         *  See `{@link #Command xdc.bld.ITarget2.Command}`.
    61         */
    62        struct Options {
    63            string prefix;  /*! options that appear before Command.opts */
    64            string suffix;  /*! options that appear after Command.opts */
    65        }
    66
    67        /*!
    68         *  ======== ar ========
    69         *  The command used to create an archive
    70         */
    71        readonly config Command ar;
    72
    73        /*!
    74         *  ======== arOpts ========
    75         *  User configurable archiver options.
    76         */
    77        config Options arOpts = {
    78            prefix: "",
    79            suffix: ""
    80        };
    81
    82        /*!
    83         *  ======== lnk ========
    84         *  The command used to link executables.
    85         */
    86        readonly config Command lnk;
    87
    88        /*!
    89         *  ======== lnkOpts ========
    90         *  User configurable linker options.
    91         */
    92        config Options lnkOpts = {
    93            prefix: "",
    94            suffix: ""
    95        };
    96
    97        /*!
    98         *  ======== cc ========
    99         *  The command used to compile C/C++ source files into object files
   100         */
   101        readonly config Command cc;
   102
   103        /*!
   104         *  ======== ccOpts ========
   105         *  User configurable compiler options.
   106         */
   107        config Options ccOpts = {
   108            prefix: "",
   109            suffix: ""
   110        };
   111
   112        /*!
   113         *  ======== ccConfigOpts ========
   114         *  User configurable compiler options for the generated config C file.
   115         *
   116         *  By default, this parameter inherits values specified in
   117         *  `{@link #ccOpts ccOpts}`.  The strings `"$(ccOpts.prefix)"` and
   118         *  `"$(ccOpts.suffix)"` are expanded into the values specified by
   119         *  `{@link #ccOpts ccOpts}` for this target.
   120         */
   121        config Options ccConfigOpts = {
   122            prefix: "$(ccOpts.prefix)",
   123            suffix: "$(ccOpts.suffix)"
   124        };
   125
   126        /*!
   127         *  ======== asm ========
   128         *  The command used to assembles assembly source files into object files
   129         */
   130        readonly config Command asm;
   131
   132        /*!
   133         *  ======== asmOpts ========
   134         *  User configurable assembler options.
   135         */
   136        config Options asmOpts = {
   137            prefix: "",
   138            suffix: ""
   139        };
   140
   141        /*!
   142         *  ======== includeOpts ========
   143         *  Additional user configurable target-specific include path options
   144         */
   145        config string includeOpts;
   146
   147        /*!
   148         *  ======== genConstCustom ========
   149         *  Return any custom generated code related to generated constants
   150         *
   151         *  @params(names)  array of constant names generated in the
   152         *                  config C file
   153         *
   154         *  @params(types)  array of types; each type corresponds to the element
   155         *                  of `names` with the same index
   156         *
   157         *  @a(returns)
   158         *  This function returns custom C code that will be embedded into the
   159         *  generated config C file. If there is nothing to be added, this function
   160         *  returns 'null'. If a target never generates any such code, it can rely
   161         *  on the default implementation that always returns 'null'.
   162         */
   163        String genConstCustom(StringArray names, StringArray types);
   164
   165        /*!
   166         *  ======== genVisibleData ========
   167         *  Return any custom generated code related to data generated in the
   168         *  config C file
   169         *
   170         *  @params(quals)          array of declaration qualifiers for the
   171         *                          generated data
   172         *
   173         *  @params(types)          array of types for the generated data
   174         *
   175         *  @params(names)          array of variable names; each name corresponds
   176         *                          to the elements of `quals` and 'types` with the
   177         *                          same index
   178         *
   179         *  @a(returns)
   180         *  This function returns custom C code that will be embedded into the
   181         *  generated config C file. The purpose of the function is to allow
   182         *  targets to add pragmas or attributes to prevent elimination of data
   183         *  in case of partially linker objects.
   184         *  If there is nothing to be added, this function returns 'null'. If a
   185         *  target never generates any such code, it can rely on the default
   186         *  implementation that always returns 'null'.
   187         */
   188        String genVisibleData(StringArray quals, StringArray types,
   189                              StringArray names);
   190        /*!
   191         *  ======== genVisibleFxns ========
   192         *  Return any custom generated code related to functions generated in
   193         *  the config C file
   194         *
   195         *  @params(types)          array of types of functions' return values
   196         *
   197         *  @params(names)          array of functions' names; each name corresponds
   198         *                          to the elements of `types` and 'args` with the
   199         *                          same index
   200         *
   201         *  @params(args)           array of functions' argument lists, including
   202         *                          qualifiers
   203
   204         *  @a(returns)
   205         *  This function returns custom C code that will be embedded into the
   206         *  generated config C file. The purpose of the function is to allow
   207         *  targets to add pragmas or attributes to prevent elimination of functions
   208         *  in case of partially linker objects.
   209         */
   210        String genVisibleFxns(StringArray types, StringArray names,
   211                              StringArray args);
   212
   213        /*!
   214         *  ======== genVisibleLibFxns ========
   215         *  Return any custom generated code related to functions that are included
   216         *  in the configuration, but are not generated in the config C file
   217         *
   218         *  @params(types)          array of types of functions' return values
   219         *
   220         *  @params(names)          array of functions' names; each name corresponds
   221         *                          to the elements of `types` and 'args` with the
   222         *                          same index
   223         *
   224         *  @params(args)           array of functions' argument lists, including
   225         *                          qualifiers
   226
   227         *  @a(returns)
   228         *  This function returns custom C code that will be embedded into the
   229         *  generated config C file. The purpose of the function is to allow
   230         *  targets to add pragmas or attributes to prevent elimination of functions
   231         *  in case of partially linker objects. These functions are managed
   232         *  separately from the functions that are generated in the config C file
   233         *  because some pragmas and attributes can be used only for functions
   234         *  defined in the same compilation unit where the paragmas and attributes
   235         *  are generated. For functions that are not generated in the config C
   236         *  file, and the mentioned restrictions exist, targets may have to create
   237         *  references that will prevent elimination of functions defined outside
   238         *  of the config C file.
   239         */
   240        String genVisibleLibFxns(StringArray types, StringArray names,
   241                                 StringArray args);
   242    }
   243    /*
   244     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   245     */
   246


interface xdc.bld.ITargetFilter

metaonly interface xdc.bld.ITargetFilter
index URL

User-supplied filter of a target's command set

This interface defines a set of user-supplied methods that are invoked during the Build Model's makefile generation process. These methods can augment or modify the commands that are placed in the generated makefiles. For example, an ITargetFilter module can add pre or post build steps for virtually any generated file. [ more ... ]
XDCspec summary sourced in xdc/bld/ITargetFilter.xdc
metaonly interface ITargetFilter { ...
instance: ...
XDCspec declarations sourced in xdc/bld/ITargetFilter.xdc
package xdc.bld;
metaonly interface ITargetFilter {
module-wide constants & types
    metaonly struct GenDesc// Configuration file generation descriptor {
        String template// name of the template to expand;
        String file// the name of the file to generate;
    };
    metaonly struct InstDesc// ITargetFilter Instance descriptor {
        String moduleName// name of a module implementing ITargetFilter;
        Any params// params passed to ITargetFilter.create();
    };
    metaonly struct MacroDesc// Macro definition descriptor {
        String name// name of the macro;
        String value// the name value of the macro name;
    };
instance:
per-instance functions
     function archive// Archive command filter(container, lib, objList, archArgs, result);
     function compile// Compile command filter(container, target, goal, compArgs, result);
     function getDefs// Get table of macro definitions();
     function getGenTab// Get table of files to be generated during configuration(acfg, cfgDir, configName);
     function link// Link command filter(container, cfgBase, prog, objList, linkArgs, result);
}
DETAILS
This interface defines a set of user-supplied methods that are invoked during the Build Model's makefile generation process. These methods can augment or modify the commands that are placed in the generated makefiles. For example, an ITargetFilter module can add pre or post build steps for virtually any generated file.
Filters can:
  1. modify or augment the commands returned by a target's compile, link and archive methods via compile, link, and archive;
  2. add new definitions to the generated makefiles usable by the command added above via getDefs; and
  3. specify new files to be generated during the configuration process that may be used during or after the link process via getGenTab.
Filters are created implicitly when a target's profile (xdc.bld.ITarget.profiles) that references the filter is used. To use a filter, one must configure a profile's option set (xdc.bld.ITarget.OptionSet) in the build configuration script config.bld. It is possible to add filters to existing profiles (such as "debug" and "release") or to create entirely new profiles that utilize the filters.
When modifying existing profiles, no changes to individual packages using these profiles is required; one simply has to clean and rebuild these packages for the filters to have an effect.
By adding new profiles, one can ensure that existing build artifacts are unchanged and only those packages that want to take advantage of a filter can do so easily by adding a new build artifact that uses the new profile; for example, see xdc.bld.Library.Attrs.
struct ITargetFilter.GenDesc
index URL

Configuration file generation descriptor

XDCspec declarations sourced in xdc/bld/ITargetFilter.xdc
metaonly struct GenDesc {
    String template;
    // name of the template to expand
    String file;
    // the name of the file to generate
};
DETAILS
This structure is used to specify a new file to be generated during the configuration process.
Templates are expanded in the context of the Configuration domain; as a result, the contents of the generated file can be a function of an executable's xdc.cfg.Program object. Template names are interpreted using the xdc.findFile() method to locate the template file name. Templates can, therefore, be contained in any package located along the package path.
Names of files to be generated are always interpreted relative to the base directory of the package for which makefiles are being generated.
SEE
getGenTab
struct ITargetFilter.InstDesc
index URL

ITargetFilter Instance descriptor

XDCspec declarations sourced in xdc/bld/ITargetFilter.xdc
metaonly struct InstDesc {
    String moduleName;
    // name of a module implementing ITargetFilter
    Any params;
    // params passed to ITargetFilter.create()
};
DETAILS
This structure provides the information necessary to create an instance of an ITargetFilter.
SEE
xdc.bld.ITarget.OptionSet
struct ITargetFilter.MacroDesc
index URL

Macro definition descriptor

XDCspec declarations sourced in xdc/bld/ITargetFilter.xdc
metaonly struct MacroDesc {
    String name;
    // name of the macro
    String value;
    // the name value of the macro name
};
DETAILS
This structure is used to specify macro name-value pairs that are added to the generated makefiles. These names can be used by commands added via the filter's archive(), compile(), or link() methods.
Using symbolic values in lieu of embeddeding explicit paths or values enables the end-user to re-define these values without requiring regeneration of makefiles.
SEE
getDefs
ITargetFilter.archive() // instance
index URL

Archive command filter

XDCspec declarations sourced in xdc/bld/ITargetFilter.xdc
function archive(container, lib, objList, archArgs, result);
ARGUMENTS
container — String
lib — xdc.bld.Library
objList — String
archArgs — xdc.bld.ITarget.ArchiveGoal
result — xdc.bld.ITarget.CommandSet
DETAILS
This method is called for every archive created by the package's build script (via xdc.bld.PackageContents.addLibrary()).
ITargetFilter.compile() // instance
index URL

Compile command filter

XDCspec declarations sourced in xdc/bld/ITargetFilter.xdc
function compile(container, target, goal, compArgs, result);
ARGUMENTS
container — String
target — xdc.bld.ITarget.Module
goal — String goal file
compArgs — xdc.bld.ITarget.CompileGoal the file to compile
result — xdc.bld.ITarget.CommandSet
DETAILS
This method is called for every object created by the package's build script (via xdc.bld.Executable.addObjects(), xdc.bld.Library.addObjects(), ...).
ITargetFilter.getDefs() // instance
index URL

Get table of macro definitions

XDCspec declarations sourced in xdc/bld/ITargetFilter.xdc
function getDefs();
DETAILS
This method is called during makefile generation to obtain a list of macro definitions that are to be added to the generated makefile. These macros can then be referenced by commands added via a filter function (archive(), compile() or link()).
RETURNS
array of MacroDesc
ITargetFilter.getGenTab() // instance
index URL

Get table of files to be generated during configuration

XDCspec declarations sourced in xdc/bld/ITargetFilter.xdc
function getGenTab(acfg, cfgDir, configName);
ARGUMENTS
acfg — xdc.bld.Configuration or Assembly
cfgDir — String directory name where generated config files are placed
configName — String base name of the configuration
DETAILS
This method is called during makefile generation to obtain a list of additional files to be generated during configuration.
RETURNS
array of GenDesc
ITargetFilter.link() // instance
index URL

Link command filter

XDCspec declarations sourced in xdc/bld/ITargetFilter.xdc
function link(container, cfgBase, prog, objList, linkArgs, result);
ARGUMENTS
container — String
cfgbase — String
prog — Executable or Assembly
objList — String
linkArgs — xdc.bld.ITarget.LinkGoal
result — xdc.bld.ITarget.CommandSet
DETAILS
This method is called for every executable created by the package's build script (via xdc.bld.PackageContents.addExecutable(), ...).
generated on Thu, 08 Nov 2012 02:13:44 GMT


interface xdc.bld.ITargetFilter

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== ITargetFilter ========
    14     *  User-supplied filter of a target's command set
    15     *
    16     *  This interface defines a set of user-supplied methods that are invoked
    17     *  during the Build Model's makefile generation process.  These methods
    18     *  can augment or modify the commands that are placed in the generated
    19     *  makefiles.  For example, an `ITargetFilter` module can add pre or post
    20     *  build steps for virtually any generated file.
    21     *
    22     *  Filters can:
    23     *  @p(nlist)
    24     *      - modify or augment the commands returned by a target's compile,
    25     *        link and archive methods via `{@link #compile}`, `{@link #link}`,
    26     *        and `{@link #archive}`;
    27     *      - add new definitions to the generated makefiles usable by the
    28     *        command added above via `{@link #getDefs}`; and
    29     *      - specify new files to be generated during the configuration process
    30     *        that may be used during or after the link process via
    31     *        `{@link #getGenTab}`.
    32     *  @p
    33     *  Filters are created implicitly when a target's profile
    34     *  (`{@link xdc.bld.ITarget#profiles}`) that references the filter is used.
    35     *  To use a filter, one must configure a profile's option set
    36     *  (`{@link xdc.bld.ITarget#OptionSet}`) in the build configuration script
    37     *  `config.bld`.  It is possible to add filters to existing profiles (such
    38     *  as `"debug"` and `"release"`) or to create entirely new profiles that
    39     *  utilize the filters.
    40     *
    41     *  When modifying existing profiles, no changes to individual packages using
    42     *  these profiles is required; one simply has to clean and rebuild these
    43     *  packages for the filters to have an effect.
    44     *
    45     *  By adding new profiles, one can ensure that existing build artifacts are
    46     *  unchanged and only those packages that want to take advantage of a filter
    47     *  can do so easily by adding a new build artifact that uses the new
    48     *  profile; for example, see `{@link xdc.bld.Library#Attrs}`.
    49     */
    50    metaonly interface ITargetFilter
    51    {
    52        /*!
    53         *  ======== InstDesc ========
    54         *  `ITargetFilter` Instance descriptor
    55         *
    56         *  This structure provides the information necessary to create an
    57         *  instance of an `ITargetFilter`.
    58         *
    59         *  @see xdc.bld.ITarget#OptionSet
    60         */
    61        struct InstDesc {
    62            String  moduleName; /*! name of a module implementing `ITargetFilter`*/
    63            Any     params;     /*! params passed to ITargetFilter.create() */
    64        };
    65
    66        /*!
    67         *  ======== GenDesc ========
    68         *  Configuration file generation descriptor
    69         *
    70         *  This structure is used to specify a new file to be generated during
    71         *  the configuration process.
    72         *
    73         *  Templates are expanded in the context of the Configuration domain;
    74         *  as a result, the contents of the generated file can be a function
    75         *  of an executable's `{@link xdc.cfg.Program}` object.  Template names
    76         *  are interpreted using the `xdc.findFile()` method to
    77         *  locate the template file name.  Templates can, therefore, be
    78         *  contained in any package located along the package path.
    79         *
    80         *  Names of files to be generated are always interpreted relative to
    81         *  the base directory of the package for which makefiles are being
    82         *  generated.
    83         *
    84         *  @see #getGenTab
    85         */
    86        struct GenDesc {
    87            String template;    /*! name of the template to expand */
    88            String file;        /*! the name of the file to generate */
    89        };
    90
    91        /*!
    92         *  ======== MacroDesc ========
    93         *  Macro definition descriptor
    94         *
    95         *  This structure is used to specify macro name-value pairs that are
    96         *  added to the generated makefiles.  These names can be used
    97         *  by commands added via the filter's `{@link #archive()}`,
    98         *  `{@link #compile()}`, or `{@link #link()}` methods.
    99         *
   100         *  Using symbolic values in lieu of embeddeding explicit paths or values
   101         *  enables the end-user to re-define these values without requiring
   102         *  regeneration of makefiles.
   103         *
   104         *  @see #getDefs
   105         */
   106        struct MacroDesc {
   107            String name;    /*! name of the macro */
   108            String value;   /*! the name value of the macro name */
   109        };
   110
   111    instance:
   112
   113        /*!
   114         *  ======== archive ========
   115         *  Archive command filter
   116         *
   117         *  This method is called for every archive created by the package's
   118         *  build script (via `{@link xdc.bld.PackageContents#addLibrary()}`).
   119         *
   120         *  @param(container)   String
   121         *  @param(lib)         `{@link xdc.bld.Library}`
   122         *  @param(objList)     String
   123         *  @param(archArgs)    `{@link xdc.bld.ITarget#ArchiveGoal}`
   124         *  @param(result)      `{@link xdc.bld.ITarget#CommandSet}`
   125         */
   126        function archive(container, lib, objList, archArgs, result);
   127
   128        /*!
   129         *  ======== compile ========
   130         *  Compile command filter
   131         *
   132         *  This method is called for every object created by the package's
   133         *  build script (via `{@link xdc.bld.Executable#addObjects()}`,
   134         *  `{@link xdc.bld.Library#addObjects()}`, ...).
   135         *
   136         *  @param(container)   String
   137         *  @param(target)      `{@link xdc.bld.ITarget}.Module`
   138         *  @param(goal)        String goal file
   139         *  @param(compArgs)    `{@link xdc.bld.ITarget#CompileGoal}` the file to
   140         *                      compile
   141         *  @param(result)      `{@link xdc.bld.ITarget#CommandSet}`
   142         */
   143        function compile(container, target, goal, compArgs, result);
   144
   145        /*!
   146         *  ======== getGenTab ========
   147         *  Get table of files to be generated during configuration
   148         *
   149         *  This method is called during makefile generation to obtain
   150         *  a list of additional files to be generated during configuration.
   151         *
   152         *  @param(acfg)        `{@link xdc.bld.Configuration}` or Assembly
   153         *  @param(cfgDir)      String directory name where generated config files
   154         *                      are placed
   155         *  @param(configName)  String base name of the configuration
   156         *  @a(RETURNS)         array of `{@link #GenDesc}`
   157         */
   158        function getGenTab(acfg, cfgDir, configName);
   159
   160        /*!
   161         *  ======== getDefs ========
   162         *  Get table of macro definitions
   163         *
   164         *  This method is called during makefile generation to obtain
   165         *  a list of macro definitions that are to be added to the
   166         *  generated makefile.  These macros can then be referenced by
   167         *  commands added via a filter function (`{@link #archive()}`,
   168         *  `{@link #compile()}` or `{@link #link()}`).
   169         *
   170         *  @a(RETURNS)         array of `{@link #MacroDesc}`
   171         */
   172        function getDefs();
   173
   174        /*!
   175         *  ======== link ========
   176         *  Link command filter
   177         *
   178         *  This method is called for every executable created by the package's
   179         *  build script (via `{@link xdc.bld.PackageContents#addExecutable()}`,
   180         *  ...).
   181         *
   182         *  @param(container)   String
   183         *  @param(cfgbase)     String
   184         *  @param(prog)        Executable or Assembly
   185         *  @param(objList)     String
   186         *  @param(linkArgs)    `{@link xdc.bld.ITarget#LinkGoal}`
   187         *  @param(result)      `{@link xdc.bld.ITarget#CommandSet}`
   188         */
   189        function link(container, cfgBase, prog, objList, linkArgs, result);
   190    }
   191    /*
   192     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   193     */
   194


module xdc.bld.Library

metaonly module xdc.bld.Library
index URL

Model of a searchable collection of object files

  • XDCscript usage
  • Individual elements
A library is a collection of one or more object files that is searched to resolve undefined references at link time. [ more ... ]
XDCscript usage meta-domain sourced in xdc/bld/Library.xdc
var Library = xdc.useModule('xdc.bld.Library');
module-wide constants & types
    var obj = new Library.Attrs// Optional attributes for a Library instance;
        obj.profile// target options profile = String ...
        obj.aopts// asm options for objects = String ...
        obj.copts// C/C++ options for objects = String ...
        obj.defs// definitions for added objects = String ...
        obj.incs// include options for objects = String ...
        obj.aropts// library-specific archiver options = String ...
        obj.suffix// optional suffix of library name; e.g.,".lib" = String ...
        obj.exportSrc// if true, export library sources to releases = Bool ...
        obj.releases// releases this library is a part of = Release.Instance[] ...
per-instance config parameters
    var params = new Library.Params// Instance config-params object;
        params.attrs// This library's optional attributes = Library.Attrs undefined;
        params.name// The base name of the library = String undefined;
        params.target// The target used to build objects added to this library = ITarget.Module undefined;
per-instance functions
     inst.addObjects// Add specified object to be built and archived into this library(String[] names, Object.Attrs objAttrs) returns Void
DETAILS
A library is a collection of one or more object files that is searched to resolve undefined references at link time.
Instances of this module represent a target independent collection of object files that implement a single set of APIs. Thus, a library is really a container of target-specific archives which contain the object files necessary to implement a common API. Although, a library may contain target dependent APIs, each library is expected to encapsulate the same basic functionality independent of the target.
Instances must be created via the xdc.bld.PackageContents.addLibrary() function; this ensures that each library created appears in the package's manifest and that it properly "inherits" appropriate default attributes from the containing package.
Library instances are initially create without *any* objects; this ensures that the developer complete control over what objects should be in each library. Thus, even modules declared in a package's specification, package.xdc, must be explicitly added to each library in the package (via addObjects()).
struct Library.Attrs
index URL

Optional attributes for a Library instance

XDCscript usage meta-domain
var obj = new Library.Attrs;
    obj.profile = String ...
    // target options profile
    obj.aopts = String ...
    // asm options for objects
    obj.copts = String ...
    // C/C++ options for objects
    obj.defs = String ...
    // definitions for added objects
    obj.incs = String ...
    // include options for objects
    obj.aropts = String ...
    // library-specific archiver options
    obj.suffix = String ...
    // optional suffix of library name; e.g.,".lib"
    obj.exportSrc = Bool ...
    // if true, export library sources to releases
    obj.releases = Release.Instance[] ...
    // releases this library is a part of
FIELDS
incs — This string contains include path options used by the compiler (or assembler) to locate include files; e.g., "-I ../../include -I ../c55xx". Note that the syntax of this string may be target dependent.
defs — This string contains options used by the compiler (or assembler) to define macros; e.g., "-D_C6xxx -DDEBUG=1". Note that the syntax of this string may be target dependent.
aopts — This string contains options used by the assembler to produce object files; e.g., "-mP1". Note that the syntax of this string may be target dependent.
copts — This string contains options used by the C/C++ compiler to produce object files; e.g., "-o3 -mi1". Note that the syntax of this string may be target dependent.
aropts — This string contains options used by the archiver produce archive files; e.g., "-q". Note that the syntax of this string may be target dependent.
exportSrc — If this field is set to true, the sources specified via addObjects() will be part of the releases named in the releases array. If it is unspecified (or set to null) and the release specifies that sources are to be exported, the sources will be part of the release. In all other cases, the sources are not part of the release.
suffix — If this string is set to a non-null value, it specifies the suffix (or extension) of the archive produced. This suffix is used in lieu of the default suffix (".a<targ_suffix>", where <targ_suffix> is the suffix property of the target used to create the archive). So, care must be taken when creating multiple libraries for different targets to ensure that the resulting archive names are unique.
profile — This string names a profile defined by the library's target. The profile specifies a set of compiler, assembler, and archiver options that are to be used when producing the archive. Note that these tool options are in addition to any options specified via aopts, copts, etc.
releases — This array contains releases that will contain the library. Thus, a single library can be part of any set of releases. Each library is always added to the package's "default release" in addition to any releases specified in the releases array.
DETAILS
Unspecified attributes are "inherited" from xdc.bld.PackageContents.Attrs; i.e., if one of fields in this structure is unspecified *and* this field's name matches a field name in xdc.bld.PackageContents.attrs, then this field's value defaults to the value in specified by xdc.bld.PackageContents.attrs. This mechanism makes it possible to establish package-wide default values for any of the "inherited" attributes.
Suppose, for example, that you want all archives in this package to be build with the 'release' profile, but one particular archive must be built with 'debug' (because it is a source example). The following build script fragment shows how this can be accomplished:
      Pkg.attrs.profile = 'release';
      var lib = Pkg.addLibrary('example', ..., {profile: 'debug'});
SEE
attrs, xdc.bld.PackageContents.Attrs
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Library.Params;
// Instance config-params object
    params.attrs = Library.Attrs undefined;
    // This library's optional attributes
    params.name = String undefined;
    // The base name of the library
    params.target = ITarget.Module undefined;
    // The target used to build objects added to this library
config Library.attrs // instance
index URL

This library's optional attributes

XDCscript usage meta-domain
var params = new Library.Params;
...
params.attrs = Library.Attrs undefined;
DETAILS
These attributes are "inherited" by all objects added to this library; i.e., any object attribute that is undefined but is defined here will be assigned the value from these attributes.
Similarly, any unspecified attributes that also appear in xdc.bld.PackageContents.Attrs are inherited from xdc.bld.PackageContents.attrs.
SEE
xdc.bld.PackageContents.Attrs
config Library.name // instance
index URL

The base name of the library

XDCscript usage meta-domain
var params = new Library.Params;
...
params.name = String undefined;
DETAILS
This name names a sub-directory in the package directory that contains all the object files and archives created for each of the targets specified.
The name of each library is <name>/<name>.a<target_suffix>, where <name> is the base name and <target_suffix> is the suffix property of the target for which the library is built. For example, one is building a "hello" library for big endian C62 the library's file name is "hello/hello.a62e"
config Library.target // instance
index URL

The target used to build objects added to this library

XDCscript usage meta-domain
var params = new Library.Params;
...
params.target = ITarget.Module undefined;
Library.addObjects() // instance
index URL

Add specified object to be built and archived into this library

XDCscript usage meta-domain
inst.addObjects(String[] names, Object.Attrs objAttrs) returns Void
ARGUMENTS
names — array of base names of the sources of object files to be created and archived into the library. See NOTE in xdc.bld for filename rules.
objAttrs — optional Object.Attrs for the array of objects added; all objects named by names will be given the attributes objAttrs.
DETAILS
Examples
1. Locate a source file whose name starts with "fir" with an extension supported by the library's target, compile it and add to the library lib:
          lib.addObjects(["fir"]);
If fir.c exists compile and add to lib, if fir.asm exists assemble and add to lib, etc. If no such file is located, an warning is emitted.
2. Compile fir.c and iir.c and add to the library lib:
          lib.addObjects(["fir.c", "iir.c"]);
3. Names may include sub-directory prefixes. In this case, the source will be located in a sub-directory of the current package. The following statement declares that the file "foo/fir.c" should be compiled and added to the library lib:
          lib.addObjects(["foo/fir.c"]);
As in the previous examples, the extension ".c" is optional. In case an extension is not supplied, each extension understood by the target will be tried until a source file is located.
4. It is also possible to supply file specific compilation options.
          lib.addObjects(["fir.c", "iir.c"], {defs: "-D_DEBUG"});
In this case, both files fir.c and iir.c will be compiled with the "-D_DEBUG" flag. Any setting of attrs.defs in the library or package is overridden by this definition.
RETURNS
void
THROWS
Error exceptions are thrown for fatal errors
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.Library

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Library.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== Library ========
    19     *  Model of a searchable collection of object files
    20     *
    21     *  A library is a collection of one or more object files that is searched
    22     *  to resolve undefined references at link time.
    23     *
    24     *  Instances of this module represent a target independent collection of
    25     *  object files that implement a single set of APIs.  Thus, a library is
    26     *  really a container of target-specific archives which contain the object
    27     *  files necessary to implement a common API.  Although, a library may
    28     *  contain target dependent APIs, each library is expected to
    29     *  encapsulate the same basic functionality independent of the target.
    30     *
    31     *  Instances must be created via the
    32     *  `{@link xdc.bld.PackageContents#addLibrary()}` function; this
    33     *  ensures that each library created appears in the package's manifest and
    34     *  that it properly "inherits" appropriate default attributes from the
    35     *  containing package.
    36     *
    37     *  Library instances are initially create without *any* objects; this ensures
    38     *  that the developer complete control over what objects should be in each
    39     *  library. Thus, even modules declared in a package's specification,
    40     *  `package.xdc`, must be explicitly added to each library in the package
    41     *  (via `{@link #addObjects()}`).
    42     */
    43    metaonly module Library {
    44        /*!
    45         *  ======== Attrs ========
    46         *  Optional attributes for a Library instance.
    47         *
    48         *  Unspecified attributes are "inherited" from
    49         *  `{@link xdc.bld.PackageContents#Attrs}`; i.e., if one of fields in this
    50         *  structure is unspecified *and* this field's name matches a field name
    51         *  in `{@link xdc.bld.PackageContents#attrs}`, then this field's value
    52         *  defaults to the value in specified by
    53         *  `{@link xdc.bld.PackageContents#attrs}`.  This mechanism makes it
    54         *  possible to establish package-wide default values for any of the
    55         *  "inherited" attributes.
    56         *
    57         *  Suppose, for example, that you want all archives in this
    58         *  package to be build with the '`release`' profile, but one particular
    59         *  archive must be built with '`debug`' (because it is a source example).
    60         *  The following build script fragment shows how this can be
    61         *  accomplished:
    62         *  @p(code)
    63         *      Pkg.attrs.profile = 'release';
    64         *      var lib = Pkg.addLibrary('example', ..., {profile: 'debug'});
    65         *  @p
    66         *  @field(incs)  This string contains include path options used by
    67         *          the compiler (or assembler) to locate include files; e.g.,
    68         *          "`-I ../../include -I ../c55xx`".  Note that the syntax of
    69         *          this string may be target dependent.
    70         *
    71         *  @field(defs)  This string contains options used by the
    72         *          compiler (or assembler) to define macros; e.g.,
    73         *          "`-D_C6xxx -DDEBUG=1`".  Note that the syntax of
    74         *          this string may be target dependent.
    75         *
    76         *  @field(aopts)  This string contains options used by the assembler
    77         *          to produce object files; e.g., "`-mP1`".  Note that the syntax
    78         *          of this string may be target dependent.
    79         *
    80         *  @field(copts)  This string contains options used by the C/C++
    81         *          compiler to produce object files; e.g., "`-o3 -mi1`".  Note
    82         *          that the syntax of this string may be target dependent.
    83         *
    84         *  @field(aropts)  This string contains options used by the archiver
    85         *          produce archive files; e.g., "`-q`".  Note
    86         *          that the syntax of this string may be target dependent.
    87         *
    88         *  @field(exportSrc)  If this field is set to true, the sources
    89         *          specified via `{@link #addObjects}()`
    90         *          will be part of the releases named in the releases
    91         *          array.  If it is unspecified (or set to `null`) and the
    92         *          release specifies that sources are to be exported,
    93         *          the sources will be part of the release.  In
    94         *          all other cases, the sources are not part of the
    95         *          release.
    96         *
    97         *  @field(suffix)  If this string is set to a non-`null` value, it
    98         *          specifies the suffix (or extension) of the archive produced.
    99         *          This suffix is used in lieu of the default suffix
   100         *          ("`.a<targ_suffix>`", where `<targ_suffix>` is the suffix
   101         *          property of the target used to create the archive).  So,
   102         *          care must be taken when creating multiple libraries for
   103         *          different targets to ensure that the resulting archive names
   104         *          are unique.
   105         *
   106         *  @field(profile)  This string names a profile defined by the
   107         *          library's target.  The profile specifies a set of compiler,
   108         *          assembler, and archiver options that are to be used when
   109         *          producing the archive.  Note that these tool options are
   110         *          in addition to any options specified via `aopts`, `copts`,
   111         *          etc.
   112         *
   113         *  @field(releases)  This array contains releases that will contain the
   114         *          library.  Thus, a single library can be part of any set of
   115         *          releases.  Each library is always added to the package's
   116         *          "default release" in addition to any releases specified in
   117         *          the releases array.
   118         *
   119         *  @see #attrs
   120         *  @see xdc.bld.PackageContents#Attrs
   121         */
   122        struct Attrs {
   123            String  profile;    /*! target options profile */
   124            String  aopts;      /*! asm options for objects */
   125            String  copts;      /*! C/C++ options for objects */
   126            String  defs;       /*! definitions for added objects */
   127            String  incs;       /*! include options for objects */
   128            String  aropts;     /*! library-specific archiver options */
   129            String  suffix;     /*! optional suffix of library name; e.g.,".lib" */
   130            Bool    exportSrc;  /*! if true, export library sources to releases */
   131            Release.Instance releases[];  /*! releases this library is a part of */
   132        };
   133
   134    instance:
   135        /*!
   136         *  ======== create ========
   137         *  @_nodoc
   138         *  Instances should only be created via PackageContents.addLibrary()
   139         */
   140        create();
   141
   142        /*!
   143         *  ======== name ========
   144         *  The base name of the library.
   145         *
   146         *  This name names a sub-directory in the package directory that
   147         *  contains all the object files and archives created for each of the
   148         *  targets specified.
   149         *
   150         *  The name of each library is `<name>/<name>.a<target_suffix>`, where
   151         *  `<name>` is the base name and `<target_suffix>` is the suffix property
   152         *  of the target for which the library is built.  For example, one is
   153         *  building a `"hello"` library for big endian C62 the library's file
   154         *  name is "`hello/hello.a62e`"
   155         */
   156        config String name;
   157
   158        /*!
   159         *  ======== target ========
   160         *  The target used to build objects added to this library.
   161         */
   162        config ITarget.Module target;
   163
   164        /*!
   165         *  ======== attrs ========
   166         *  This library's optional attributes.
   167         *
   168         *  These attributes are "inherited" by all objects added to this
   169         *  library; i.e., any object attribute that is undefined but is
   170         *  defined here will be assigned the value from these attributes.
   171         *
   172         *  Similarly, any unspecified attributes that also appear in
   173         *  `{@link xdc.bld.PackageContents#Attrs}` are inherited from
   174         *  `{@link xdc.bld.PackageContents#attrs}`.
   175         *
   176         *  @see xdc.bld.PackageContents#Attrs
   177         */
   178        config Library.Attrs attrs;
   179
   180        /*!
   181         *  ======== addObjects ========
   182         *  Add specified object to be built and archived into this library.
   183         *
   184         *  Examples
   185         *
   186         *      1. Locate a source file whose name starts with "fir" with
   187         *      an extension supported by the library's target, compile it
   188         *      and add to the library lib:
   189         *      @p(code)
   190         *          lib.addObjects(["fir"]);
   191         *      @p
   192         *      If fir.c exists compile and add to lib, if fir.asm exists
   193         *      assemble and add to lib, etc.  If no such file is located,
   194         *      an warning is emitted.
   195         *
   196         *      2. Compile `fir.c` and `iir.c` and add to the library `lib`:
   197         *      @p(code)
   198         *          lib.addObjects(["fir.c", "iir.c"]);
   199         *      @p
   200         *      3. Names may include sub-directory prefixes.  In this case, the
   201         *      source will be located in a sub-directory of the current
   202         *      package.  The following statement declares that the file
   203         *      "`foo/fir.c`" should be compiled and added to the library
   204         *      `lib`:
   205         *      @p(code)
   206         *          lib.addObjects(["foo/fir.c"]);
   207         *      @p
   208         *      As in the previous examples, the extension ".c" is optional.
   209         *      In case an extension is not supplied, each extension
   210         *      understood by the target will be tried until a source file
   211         *      is located.
   212         *
   213         *      4. It is also possible to supply file specific compilation
   214         *      options.
   215         *      @p(code)
   216         *          lib.addObjects(["fir.c", "iir.c"], {defs: "-D_DEBUG"});
   217         *      @p
   218         *      In this case, both files `fir.c` and `iir.c` will be compiled
   219         *      with the "`-D_DEBUG`" flag.  Any setting of `attrs.defs` in the
   220         *      library or package is overridden by this definition.
   221         *
   222         *  @param(names)       array of base names of the sources of object files
   223         *                      to be created and archived into the library.
   224         *                      See NOTE in `{@link xdc.bld}` for filename rules.
   225         *
   226         *  @param(objAttrs)    optional `{@link Object#Attrs}` for the array of
   227         *                      objects added; all objects named by `names` will be
   228         *                      given the attributes `objAttrs`.
   229         *
   230         *  @a(returns)         `void`
   231         *
   232         *  @a(throws)          `Error` exceptions are thrown for fatal errors
   233         *
   234         */
   235        Void addObjects(String names[], Object.Attrs objAttrs = {});
   236    }
   237    /*
   238     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   239     */
   240


module xdc.bld.Manifest

metaonly module xdc.bld.Manifest
index URL

The manifest object for the release file post-processing model

  • XDCscript usage
  • Individual elements
Each package release corresponds to an archive of a subset of the development package's contents. The contents of each release are specified by an instance of the Release module. Each instance of the Release module can optionally specify a "release script" that can modify each file prior to it being added to the archive. This script runs in the context of the "release file post-processing" model. [ more ... ]
XDCscript usage meta-domain sourced in xdc/bld/Manifest.xdc
var Manifest = xdc.useModule('xdc.bld.Manifest');
module-wide constants & types
    var obj = new Manifest.Filter// A file filter descriptor;
        obj.operation// the JavaScript function to run = Any ...
        obj.args// additional arguments for operation = Any[] ...
        obj.newFileName// the new file name = String ...
        obj.newFileMode// either "r" or "rw" = String ...
module-wide config parameters
     Manifest.buildCount// A unique build count for the released package = String undefined;
     Manifest.compatibilityKey// The released package's compatibility key = String undefined;
     Manifest.files// An array of files in the release = String[] undefined;
     Manifest.filterMap// A map of filters for each file in the release = Manifest.Filter[string] undefined;
     Manifest.packageName// The released package's name = String undefined;
     Manifest.releaseName// The release's name = String undefined;
module-wide functions
     Manifest.getAllFiles// Read the entire release manifest into the Manifest.files array(String[] verbatimDirs) returns Void
DETAILS
Each package release corresponds to an archive of a subset of the development package's contents. The contents of each release are specified by an instance of the Release module. Each instance of the Release module can optionally specify a "release script" that can modify each file prior to it being added to the archive. This script runs in the context of the "release file post-processing" model.
This module is the root of the "release file post-processing" model. Each file in a release may be optionally post-processed by a filter specified in filterMap. Other fields of this module provide a release-specific "context" for the operation of the filters. For example, a filter may use packageName, releaseName, and buildCount to prefix all C sources with comments that identify where they originated.
All the fields of this module (except filterMap) are initialized before a "release script" is run. After the release script completes, the release archive is created according to the filters specifed in filterMap. Files that have no filter are copied without modification into the release.
struct Manifest.Filter
index URL

A file filter descriptor

XDCscript usage meta-domain
var obj = new Manifest.Filter;
    obj.operation = Any ...
    // the JavaScript function to run
    obj.args = Any[] ...
    // additional arguments for operation
    obj.newFileName = String ...
    // the new file name
    obj.newFileMode = String ...
    // either "r" or "rw"
FIELDS
operation — a JavaScript function that filters the specified input file and puts the results in specified output file; it is the output file that is archived as part of the release (not the input file).
The operation is called as follows:
        operation(filter, src, dst, base)
where:
filter
the filter object associated with the file being processed (which specified operation as the function to call)
src
input file name (relative to the current working directory)
dst
output file name (relative to the current working directory)
base
string name of the file as it appears in the array Manifest.files; unlike dst, it does not contain a temporary directory name prefix.
args — array of arbitrary arguments passed to operation (as a field of the filter object passed as the first argument to operation)
newFileName — the new name of the output file relative to the top of the archive. Normally this name should include the package's name but, in situations where a release must support a non-RTSC conformant physical design, newFileName can be anything.
newFileMode — the access permissions of the output file. Normally the file will have the access permissions that exist at the time archive is created. However, there may be times when the developer wants/needs to make a file readonly that is (for development purposes) writable. Only two modes are supported "r" (readonly) and "rw" (readable and writable).
SEE
filterMap
config Manifest.buildCount // module-wide
index URL

A unique build count for the released package

XDCscript usage meta-domain
Manifest.buildCount = String undefined;
DETAILS
This string contains is a decimal number that increments at least once every time the package is released. This string together with the compatibility key forms a unique version number for the package.
READONLY
This value is initialized before the release script or any of its filters are run and should not be modified.
config Manifest.compatibilityKey // module-wide
index URL

The released package's compatibility key

XDCscript usage meta-domain
Manifest.compatibilityKey = String undefined;
DETAILS
This string contains the value declared in the package's package.xdc specification file.
READONLY
This value is initialized before the release script or any of its filters are run and should not be modified.
config Manifest.files // module-wide
index URL

An array of files in the release

XDCscript usage meta-domain
Manifest.files = String[] undefined;
DETAILS
The file names in this array include the package's name; i.e., these names are relative to the package's repository rather than the package's build directory.
This value is initialized before the release script or any of its filters are run, and it contains the the names of the files specified directly or indirectly by the package's build script.
By default, this list does not contain all files in this package release, it excludes files that are commonly copied verbatim into the release (see below). To get the complete list you must call Manifest.getAllFiles.
The excluded files are those that are indirectly included either via
  • a directory named in PackageContents.otherFiles or Release.otherFiles,
  • a repository added via PackageContents.addRepository, or
  • the documentation directory named by PackageContents.docDir
It is possible to remove files from a release by removing it from this array; only files in this array or that are in the specified verbatim directories, the directories named above, will appear in the release. To remove files that are in any of these directories use Manifest.getAllFiles to re-initialize files so that it contains all of the release's files, then selectivly remove the files from this array.
It is also possible to add files to a release by adding files to this array. In fact, files added to the release can be generated by the filter operation specified for the file in filterMap. However, since these files are only present in releases of a package (they are not built as part of the normal build of all files and only appear in installed releases of a package), packages that must be built as part of building this release should not refer to these files.
config Manifest.filterMap // module-wide
index URL

A map of filters for each file in the release

XDCscript usage meta-domain
Manifest.filterMap = Manifest.Filter[string] undefined;
DETAILS
This map is indexed by the name of the file (as it appears in the files array) in the release and defines for each file a filter that is applied to the file before it is archived in a release.
EXAMPLE
The following script fragment illustrates how one can filter all *.c files in a release through a custom JavaScript function named copyright.
      function copyright(args, ...) { ...}

      for (var i = 0; i < Manifest.files.length; i++) {
          var fileName = Manifest.files[i];
          if (fileName.match(/\.c$/) != null) {
              Manifest.filterMap[fileName] = {operation: copyright};
          }
      }
SEE
files
config Manifest.packageName // module-wide
index URL

The released package's name

XDCscript usage meta-domain
Manifest.packageName = String undefined;
DETAILS
This string contains the value declared in the package's package.xdc specification file.
READONLY
This value is initialized before the release script or any of its filters are run and should not be modified.
config Manifest.releaseName // module-wide
index URL

The release's name

XDCscript usage meta-domain
Manifest.releaseName = String undefined;
DETAILS
This string contains the value declared in the package's package.bld build script; it is the name of the output archive without the ".tar" extension.
READONLY
This value is initialized before the release script or any of its filters are run and should not be modified.
Manifest.getAllFiles() // module-wide
index URL

Read the entire release manifest into the Manifest.files array

XDCscript usage meta-domain
Manifest.getAllFiles(String[] verbatimDirs) returns Void
ARGUMENTS
verbatimDirs — array of strings naming directories relative to the package's base directory. Each directory named in this array (and all the files and sub-directories it contains) is excluded from the Manifest.files array and is automatically added to the release without change.
If this array is null or empty, all files in the release are read into the Manifest.files array.
DETAILS
This function re-reads the release's manifest into the Manifest.files array but only excludes the directories whose names appear in the String array verbatimDirs.
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.Manifest

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    package xdc.bld;
    13
    14    /*!
    15     *  ======== Manifest ========
    16     *  The manifest object for the release file post-processing model
    17     *
    18     *  Each package release corresponds to an archive of a subset of the
    19     *  development package's contents.  The contents of each release are
    20     *  specified by an instance of the `{@link Release}` module.  Each instance
    21     *  of the `Release` module can optionally specify a "release script" that
    22     *  can modify each file prior to it being added to the archive.  This script
    23     *  runs in the context of the "release file post-processing" model.
    24     *
    25     *  This module is the root of the "release file post-processing" model.
    26     *  Each file in a release may be optionally post-processed by a filter
    27     *  specified in `{@link #filterMap}.`  Other fields of this module provide
    28     *  a release-specific "context" for the operation of the filters.  For
    29     *  example, a filter may use `{@link #packageName}`, `{@link #releaseName}`,
    30     *  and `{@link #buildCount}` to prefix all C sources with comments that
    31     *  identify where they originated.
    32     *
    33     *  All the fields of this module (except `{@link #filterMap}`) are initialized
    34     *  before a "release script" is run.  After the release script completes,
    35     *  the release archive is created according to the filters specifed in
    36     *  `{@link #filterMap}`.  Files that have no filter are copied without
    37     *  modification into the release.
    38     */
    39    metaonly module Manifest {
    40
    41        /*!
    42         *  ======== Filter ========
    43         *  A file filter descriptor
    44         *
    45         *  @field(operation)  a JavaScript function that filters the specified
    46         *      input file and puts the results in specified output file; it is
    47         *      the output file that is archived as part of the release (not the
    48         *      input file).
    49         *
    50         *      The operation is called as follows:
    51         *      @p(code)
    52         *          operation(filter, src, dst, base)
    53         *      @p
    54         *      where:
    55         *      @p(dlist)
    56         *        -`filter`
    57         *              the filter object associated with the file being
    58         *              processed (which specified `operation` as the function
    59         *              to call)
    60         *        -`src`
    61         *              input file name (relative to the current working
    62         *              directory)
    63         *        -`dst`
    64         *              output file name (relative to the current working
    65         *              directory)
    66         *        -`base`
    67         *              string name of the file as it appears in the array
    68         *              `Manifest.files`; unlike `dst`, it does not contain a
    69         *              temporary directory name prefix.
    70         *
    71         *  @field(args)  array of arbitrary arguments passed to `operation`
    72         *      (as a field of the filter object passed as the first argument to
    73         *      `operation`)
    74         *
    75         *  @field(newFileName) the new name of the output file relative to the
    76         *      top of the archive.  Normally this name should include the
    77         *      package's name but, in situations where a release must support a
    78         *      non-RTSC conformant physical design, `newFileName` can be anything.
    79         *
    80         *  @field(newFileMode) the access permissions of the output file.
    81         *      Normally the file will have the access permissions that exist at
    82         *      the time archive is created.  However, there may be times when
    83         *      the developer wants/needs to make a file readonly that is (for
    84         *      development purposes) writable.  Only two modes are supported "r"
    85         *      (readonly) and "rw" (readable and writable).
    86         *
    87         *  @see #filterMap
    88         */
    89        struct Filter {
    90            any         operation;      /*! the JavaScript function to run */
    91            any         args[];         /*! additional arguments for operation */
    92            String      newFileName;    /*! the new file name */
    93            String      newFileMode;    /*! either "r" or "rw" */
    94        }
    95
    96        /*!
    97         *  ======== compatibilityKey ========
    98         *  The released package's compatibility key
    99         *
   100         *  This string contains the value declared in the package's `package.xdc`
   101         *  specification file.
   102         *
   103         *  @a(readonly)  This value is initialized before the release script or
   104         *                any of its filters are run and should not be modified.
   105         */
   106        config String compatibilityKey;
   107
   108        /*!
   109         *  ======== buildCount ========
   110         *  A unique build count for the released package.
   111         *
   112         *  This string contains is a decimal number that increments at least
   113         *  once every time the package is released.  This string together with
   114         *  the compatibility key forms a unique version number for the package.
   115         *
   116         *  @a(readonly)  This value is initialized before the release script or
   117         *                any of its filters are run and should not be modified.
   118         */
   119        config String buildCount;
   120
   121        /*!
   122         *  ======== packageName ========
   123         *  The released package's name
   124         *
   125         *  This string contains the value declared in the package's `package.xdc`
   126         *  specification file.
   127         *
   128         *  @a(readonly)  This value is initialized before the release script or
   129         *                any of its filters are run and should not be modified.
   130         */
   131        config String packageName;
   132
   133        /*!
   134         *  ======== releaseName ========
   135         *  The release's name
   136         *
   137         *  This string contains the value declared in the package's `package.bld`
   138         *  build script; it is the name of the output archive without the
   139         *  "`.tar`" extension.
   140         *
   141         *  @a(readonly)  This value is initialized before the release script or
   142         *                any of its filters are run and should not be modified.
   143         */
   144        config String releaseName;
   145
   146        /*!
   147         *  ======== files ========
   148         *  An array of files in the release
   149         *
   150         *  The file names in this array include the package's name; i.e.,
   151         *  these names are relative to the package's repository rather than
   152         *  the package's build directory.
   153         *
   154         *  This value is initialized before the release script or any of its
   155         *  filters are run, and it contains the the names of the files specified
   156         *  directly or indirectly by the package's build script.
   157         *
   158         *  By default, this list does not contain all files in this package
   159         *  release, it excludes files that are commonly copied verbatim into
   160         *  the release (see below).  To get the complete list you must call
   161         *  `{@link #getAllFiles Manifest.getAllFiles}`.
   162         *
   163         *  The excluded files are those that are indirectly included either via
   164         *  @p(blist)
   165         *      - a directory named in `{@link PackageContents#otherFiles}` or
   166         *        `{@link Release#otherFiles}`,
   167         *      - a repository added via `{@link PackageContents#addRepository}`,
   168         *        or
   169         *      - the documentation directory named by
   170         *        `{@link PackageContents#docDir}`
   171         *  @p
   172         *
   173         *  It is possible to remove files from a release by removing it from
   174         *  this array; only files in this array or that are in the specified
   175         *  verbatim directories, the directories named above, will appear in
   176         *  the release.  To remove files that are in any of these directories
   177         *  use `{@link #getAllFiles Manifest.getAllFiles}` to re-initialize
   178         *  `files` so that it contains all of the release's files, then
   179         *  selectivly remove the files from this array.
   180         *
   181         *  It is also possible to add files to a release by adding files to
   182         *  this array.  In fact, files added to the release can be generated
   183         *  by the filter operation specified for the file in
   184         *  `{@link #filterMap}`.  However, since these files are only present
   185         *  in releases of a  package (they are not built as part of the normal
   186         *  build of `all` files and only appear in installed releases of a
   187         *  package), packages that must be built as part of building this
   188         *  release should not refer to these files.
   189         */
   190        config String files[];
   191
   192        /*!
   193         *  ======== filterMap ========
   194         *  A map of filters for each file in the release
   195         *
   196         *  This map is indexed by the name of the file (as it appears in the
   197         *  `{@link #files}` array) in the release and defines for each file a
   198         *  filter that is applied to the file before it is archived in a
   199         *  release.
   200         *
   201         *  @a(example)  The following script fragment illustrates how one can
   202         *  filter all *.c files in a release through a custom JavaScript
   203         *  function named `copyright`.
   204         *      @p(code)
   205         *      function copyright(args, ...) { ...}
   206         *
   207         *      for (var i = 0; i < Manifest.files.length; i++) {
   208         *          var fileName = Manifest.files[i];
   209         *          if (fileName.match(/\.c$/) != null) {
   210         *              Manifest.filterMap[fileName] = {operation: copyright};
   211         *          }
   212         *      }
   213         *      @p
   214         *
   215         *  @see #files
   216         */
   217        config Filter filterMap[string];
   218
   219        /*!
   220         *  ======== getAllFiles ========
   221         *  Read the entire release manifest into the Manifest.files array
   222         *
   223         *  This function re-reads the release's manifest into the
   224         *  `Manifest.files` array but only excludes the directories whose
   225         *  names appear in the `String` array `verbatimDirs`.
   226         *
   227         *  @param(verbatimDirs)    array of strings naming directories relative
   228         *                          to the package's base directory.  Each
   229         *                          directory named in this array (and all the
   230         *                          files and sub-directories it contains) is
   231         *                          excluded from the `Manifest.files` array and
   232         *                          is automatically added to the release without
   233         *                          change.
   234         *
   235         *                          If this array is `null` or empty, all files
   236         *                          in the release are read into the
   237         *                          `Manifest.files` array.
   238         */
   239        Void getAllFiles(String verbatimDirs[]);
   240    }
   241    /*
   242     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   243     */
   244


module xdc.bld.Object

metaonly module xdc.bld.Object
index URL

Model of a compiled (or assembled) form of a source file

  • XDCscript usage
  • Individual elements
Instances of this module represent object files. Instances must be created via either the xdc.bld.Library.addObjects() or xdc.bld.Executable.addObjects() functions; this ensures that each object file created appears in the package's manifest and that it properly "inherits" appropriate default attributes from the containing library or executable.
XDCscript usage meta-domain sourced in xdc/bld/Object.xdc
var Object = xdc.useModule('xdc.bld.Object');
module-wide constants & types
    var obj = new Object.Attrs// Optional attributes for an Object instance;
        obj.profile// target options profile = String ...
        obj.aopts// asm options for this object = String ...
        obj.copts// C/C++ options for this object = String ...
        obj.defs// definitions for this object = String ...
        obj.incs// include options for this object = String ...
        obj.preBuilt// don't create a rule to generate this file = Bool ...
per-instance config parameters
    var params = new Object.Params// Instance config-params object;
        params.attrs// This instance's attributes = Object.Attrs undefined;
        params.name// The base name of the object file = String undefined;
struct Object.Attrs
index URL

Optional attributes for an Object instance

XDCscript usage meta-domain
var obj = new Object.Attrs;
    obj.profile = String ...
    // target options profile
    obj.aopts = String ...
    // asm options for this object
    obj.copts = String ...
    // C/C++ options for this object
    obj.defs = String ...
    // definitions for this object
    obj.incs = String ...
    // include options for this object
    obj.preBuilt = Bool ...
    // don't create a rule to generate this file
FIELDS
profile — This string names a profile defined by the target used to produce the object file. The profile specifies a set of compiler and assembler options that are to be used when producing the object. Note that these tool options are in addition to any options specified via aopts, copts, etc.
incs — This string contains include path options used by the compiler (or assembler) to locate include files; e.g., "-I ../../include -I ../c55xx". Note that the syntax of this string may be target dependent.
defs — This string contains options used by the compiler (or assembler) to define macros; e.g., "-D_C6xxx -DDEBUG=1". Note that the syntax of this string may be target dependent.
aopts — This string contains options used by the assembler to produce object files; e.g., "-mP1". Note that the syntax of this string may be target dependent.
copts — This string contains options used by the C/C++ compiler to produce object files; e.g., "-o3 -mi1". Note that the syntax of this string may be target dependent.
preBuilt — If equal to true, this Boolean flag indicates that this object does not need to be built from sources; e.g., it has been pre-built and delivered as a binary file without sources or some custom rule already built this object file. For pre-built objects, no rule will be created to remove the file as part of a package clean operation, the relative path to the file must be fully specified, and all other Object attributes are ignored.
DETAILS
Unspecified attributes are "inherited" from xdc.bld.Executable.Attrs (xdc.bld.Library.Attrs) if this Object is added to an xdc.bld.Executable (xdc.bld.Library); i.e., if one of fields in this structure is unspecified *and* this field's name matches a field name in xdc.bld.Executable.attrs, then this field's value defaults to the value in specified by xdc.bld.Executable.attrs. This mechanism makes it possible to establish executable-wide default value for any of the "inherited" attributes.
Suppose, for example, that you want all object files in this package to be build with the '-o4' optimization flag, but one particular file must be built with '-o2' (because the optimizer has a bug that it causes it to fail on this file). The following build script fragment shows how this can be accomplished:
      var exe = Pkg.addExecutable(..., {copts: '-o4'});
      exe.addObjects(['complex'], {copts: '-o2'});
      exe.addObjects(['foo', 'bar', ...]);
Since many Executable.attrs are "inherited" from xdc.bld.PackageContents.attrs, it is also possible to establish package-wide default for these attributes.
SEE
attrs, xdc.bld.PackageContents.Attrs, xdc.bld.Library.Attrs, xdc.bld.Executable.Attrs
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Object.Params;
// Instance config-params object
    params.attrs = Object.Attrs undefined;
    // This instance's attributes
    params.name = String undefined;
    // The base name of the object file
config Object.attrs // instance
index URL

This instance's attributes

XDCscript usage meta-domain
var params = new Object.Params;
...
params.attrs = Object.Attrs undefined;
DETAILS
These attributes (unless otherwise specified) are "inherited" from the container object that contains this instance.
SEE
xdc.bld.PackageContents.Attrs, xdc.bld.Executable.Attrs, xdc.bld.Library.Attrs
config Object.name // instance
index URL

The base name of the object file

XDCscript usage meta-domain
var params = new Object.Params;
...
params.name = String undefined;
DETAILS
This name is passed as the name field of the xdc.bld.ITarget.CompileGoal. The object file's name is composed as follows:
      <name>.o<target_suffix>
where <name> is name and <target_suffix> is the suffix defined by each target that the file is built for.
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.Object

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Object.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== Object ========
    19     *  Model of a compiled (or assembled) form of a source file.
    20     *
    21     *  Instances of this module represent object files.  Instances must be
    22     *  created via either the `{@link xdc.bld.Library#addObjects()}` or
    23     *  `{@link xdc.bld.Executable#addObjects()}` functions; this ensures that each
    24     *  object file created appears in the package's manifest and that it
    25     *  properly "inherits" appropriate default attributes from the containing
    26     *  library or executable.
    27     */
    28    metaonly module Object {
    29        /*!
    30         *  ======== Attrs ========
    31         *  Optional attributes for an Object instance
    32         *
    33         *  Unspecified attributes are "inherited" from
    34         *  `{@link xdc.bld.Executable#Attrs}`
    35         *  (`{@link xdc.bld.Library#Attrs}`) if this Object is added to an
    36         *  `{@link xdc.bld.Executable}` (`{@link xdc.bld.Library}`); i.e., if one
    37         *  of fields in this structure is unspecified *and* this field's name
    38         *  matches a field name in `{@link xdc.bld.Executable#attrs}`,
    39         *  then this field's value defaults to the value in specified by
    40         *  `{@link xdc.bld.Executable#attrs}`.  This mechanism makes it possible
    41         *  to establish executable-wide default value for any of the "inherited"
    42         *  attributes.
    43         *
    44         *  Suppose, for example, that you want all object files in this package
    45         *  to be build with the '`-o4`' optimization flag, but one particular file
    46         *  must be built with '`-o2`' (because the optimizer has a bug that it
    47         *  causes it to fail on this file).  The following build script fragment
    48         *  shows how this can be accomplished:
    49         *  @p(code)
    50         *      var exe = Pkg.addExecutable(..., {copts: '-o4'});
    51         *      exe.addObjects(['complex'], {copts: '-o2'});
    52         *      exe.addObjects(['foo', 'bar', ...]);
    53         *  @p
    54         *  Since many `Executable.attrs` are "inherited" from
    55         *  `{@link xdc.bld.PackageContents#attrs}`, it is also possible to
    56         *  establish package-wide default for these attributes.
    57         *
    58         *  @field(profile)  This string names a profile defined by the
    59         *          target used to produce the object file.  The profile
    60         *          specifies a set of compiler and assembler options that are
    61         *          to be used when producing the object.  Note that these tool
    62         *          options are in addition to any options specified via aopts,
    63         *          copts, etc.
    64         *
    65         *  @field(incs)  This string contains include path options used by
    66         *          the compiler (or assembler) to locate include files; e.g.,
    67         *          "`-I ../../include -I ../c55xx`".  Note that the syntax of
    68         *          this string may be target dependent.
    69         *
    70         *  @field(defs)  This string contains options used by the
    71         *          compiler (or assembler) to define macros; e.g.,
    72         *          "`-D_C6xxx -DDEBUG=1`".  Note that the syntax of
    73         *          this string may be target dependent.
    74         *
    75         *  @field(aopts)  This string contains options used by the assembler
    76         *          to produce object files; e.g., "`-mP1`".  Note that the syntax
    77         *          of this string may be target dependent.
    78         *
    79         *  @field(copts)  This string contains options used by the C/C++
    80         *          compiler to produce object files; e.g., "`-o3 -mi1`".  Note
    81         *          that the syntax of this string may be target dependent.
    82         *
    83         *  @field(preBuilt) If equal to `true`, this Boolean flag indicates
    84         *          that this object does not need to be built from sources; e.g.,
    85         *          it has been pre-built and delivered as a binary file without
    86         *          sources or some custom rule already built this object file.
    87         *          For pre-built objects, no rule will be created to remove the
    88         *          file as part of a package clean operation, the relative path
    89         *          to the file must be fully specified, and all other Object
    90         *          attributes are ignored.
    91         *
    92         *  @see #attrs
    93         *  @see xdc.bld.PackageContents#Attrs
    94         *  @see xdc.bld.Library#Attrs
    95         *  @see xdc.bld.Executable#Attrs
    96         */
    97        struct Attrs {
    98            String profile; /*! target options profile */
    99            String aopts;   /*! asm options for this object */
   100            String copts;   /*! C/C++ options for this object */
   101            String defs;    /*! definitions for this object */
   102            String incs;    /*! include options for this object */
   103            Bool   preBuilt;/*! don't create a rule to generate this file */
   104        };
   105
   106    instance:
   107        /*!
   108         *  ======== create ========
   109         *  @_nodoc
   110         *  Instances should only be created via Executable.addObjects()
   111         */
   112        create();
   113
   114        /*!
   115         *  ======== name ========
   116         *  The base name of the object file.
   117         *
   118         *  This name is passed as the name field of the
   119         *  `{@link xdc.bld.ITarget#CompileGoal}`.  The object file's name is
   120         *  composed as follows:
   121         *  @p(code)
   122         *      <name>.o<target_suffix>
   123         *  @p
   124         *  where `<name>` is name and `<target_suffix>` is the suffix defined
   125         *  by each target that the file is built for.
   126         */
   127        config String name;
   128
   129        /*!
   130         *  ======== attrs ========
   131         *  This instance's attributes.
   132         *
   133         *  These attributes (unless otherwise specified) are "inherited" from
   134         *  the container object that contains this instance.
   135         *
   136         *  @see xdc.bld.PackageContents#Attrs
   137         *  @see xdc.bld.Executable#Attrs
   138         *  @see xdc.bld.Library#Attrs
   139         */
   140        config Object.Attrs attrs;
   141    }
   142    /*
   143     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   144     */
   145


module xdc.bld.PackageContents

metaonly module xdc.bld.PackageContents
index URL

Package container populated by a build script

  • XDCscript usage
  • Individual elements
This module defines the PackageContents object (aliased as Pkg in build scripts) which represents the contents of a package. Build scripts add to this package using the add* methods defined below. [ more ... ]
XDCscript usage meta-domain sourced in xdc/bld/PackageContents.xdc
var PackageContents = xdc.useModule('xdc.bld.PackageContents');
module-wide constants & types
    var obj = new PackageContents.Attrs// Package-level attributes;
        obj.profile// select appropriate ITarget.OptionSet = String ...
        obj.aopts// assembly language options = String ...
        obj.copts// C/C++ compiler options = String ...
        obj.cfgcopts// C/C++ compiler options for the C config file = String ...
        obj.defs// -D options common to C/C++/asm = String ...
        obj.incs// -I options common to C/C++/asm = String ...
        obj.tcopts// tconf options, deprecated = String ...
        obj.xsopts// xs options = String ...
        obj.lopts// linker options = String ...
        obj.exportDoc// if true, export generated docs = Bool ...
        obj.exportExe// if true, export executables = Bool ...
        obj.exportCfg// if true, export program cfg scripts = Bool ...
        obj.exportSrc// if true, export all package sources = Bool ...
        obj.exportAll// if true, export all non-gen'd files = Bool ...
        obj.relScript// release files post-processing script = String ...
        obj.relScriptArgs// optional arguments to relScript = String ...
        obj.compress// if true, compress package release archives = Bool ...
        obj.archiver// "tar" or "zip"; defaults to "tar" = String ...
module-wide config parameters
     PackageContents.attrs// Package attributes = PackageContents.Attrs undefined;
     PackageContents.cfgDir// The directory where all intermediate program files are placed = String "package/cfg/";
     PackageContents.defaultRelease// The default release for this package = Release.Instance undefined;
     PackageContents.docDir// The directory where generated docs are placed = String undefined;
     PackageContents.excludeDirs// List of directory base names to exclude = String[] undefined;
     PackageContents.generatedFiles// Array of generated files = String[] undefined;
     PackageContents.imports// An array of required packages (and their version) for this package = String[] undefined;
     PackageContents.interfaces// An array of interface names provided by this package = String[] undefined;
     PackageContents.libDir// The directory where all intermediate library directories are placed = String "package/lib/";
     PackageContents.libTemplate// Template of a common C-file archived into every library = String null;
     PackageContents.makeEpilogue// String to add to the end of the generated makefile = String "";
     PackageContents.makePrologue// String to add to the beginning of the generated makefile = String "";
     PackageContents.modules// An array of module names provided by this package = String[] undefined;
     PackageContents.name// Name of this package = String undefined;
     PackageContents.otherFiles// Array of files to include this package = String[] undefined;
     PackageContents.otherSrcs// Array of source files to include this package = String[] undefined;
     PackageContents.producerId// Producer ID string = String undefined;
     PackageContents.relDir// The directory where all intermediate release files are placed = String "package/rel/";
     PackageContents.releasePrefix// A prefix appended to the name of each release archive = String "";
     PackageContents.uses// Array of directory suffixes used to locate files = String[] undefined;
     PackageContents.version// The package version string = String undefined;
module-wide functions
     PackageContents.addExecutable// Add specified executable to this package(String name, ITarget.Module target, String platform, Executable.Attrs exeAttrs) returns Executable.Instance
     PackageContents.addLibrary// Add specified library to this package(String name, ITarget.Module target, Library.Attrs libAttrs) returns Library.Instance
     PackageContents.addRelease// Add specified release to this package(String name, Release.Attrs relAttrs) returns Release.Instance
     PackageContents.addRepository// Add a repository to this package(String repositoryName, Repository.Attrs repAttrs) returns Repository.Instance
     PackageContents.addScript// Add a script to this package(String name, Script.Attrs scriptAttrs) returns Script.Instance
DETAILS
This module defines the PackageContents object (aliased as Pkg in build scripts) which represents the contents of a package. Build scripts add to this package using the add* methods defined below.
In addition to the items added by the build script, every package has at least one release, the default release. If the defaultRelease configuration parameter is not set, a default release will be implicitly created.
Every library, executable, and repository added to the package is automatically added to the default release.
struct PackageContents.Attrs
index URL

Package-level attributes

XDCscript usage meta-domain
var obj = new PackageContents.Attrs;
    obj.profile = String ...
    // select appropriate ITarget.OptionSet
    obj.aopts = String ...
    // assembly language options
    obj.copts = String ...
    // C/C++ compiler options
    obj.cfgcopts = String ...
    // C/C++ compiler options for the C config file
    obj.defs = String ...
    // -D options common to C/C++/asm
    obj.incs = String ...
    // -I options common to C/C++/asm
    obj.tcopts = String ...
    // tconf options, deprecated
    obj.xsopts = String ...
    // xs options
    obj.lopts = String ...
    // linker options
    obj.exportDoc = Bool ...
    // if true, export generated docs
    obj.exportExe = Bool ...
    // if true, export executables
    obj.exportCfg = Bool ...
    // if true, export program cfg scripts
    obj.exportSrc = Bool ...
    // if true, export all package sources
    obj.exportAll = Bool ...
    // if true, export all non-gen'd files
    obj.relScript = String ...
    // release files post-processing script
    obj.relScriptArgs = String ...
    // optional arguments to relScript
    obj.compress = Bool ...
    // if true, compress package release archives
    obj.archiver = String ...
    // "tar" or "zip"; defaults to "tar"
FIELDS
profile — This string names a profile defined by the executable's target. A profile specifies a set of compiler, linker, and archiver options that are to be used when compiling and linking code. Note that these tool options are in addition to any options specified via aopts, copts, etc.
If this field is not specified or set to null, the "release" profile will be used.
incs — This string contains include path options used by the compiler (or assembler) to locate include files; e.g., "-I ../../include -I ../c55xx". Note that the syntax of this string may be target dependent.
defs — This string contains options used by the compiler (or assembler) to define macros; e.g., "-D_C6xxx -DDEBUG=1". Note that the syntax of this string may be target dependent.
aopts — This string contains options used by the assembler to produce object files; e.g., "-mP1". Note that the syntax of this string may be target dependent.
copts — This string contains options used by the C/C++ compiler to produce object files; e.g., "-o3 -mi1". Note that the syntax of this string may be target dependent.
cfgcopts — This string contains options used by the C/C++ compiler to compile the generated C config file. If cfgopts is not specified, the options specified in copts are used instead.
lopts — This string contains options used by the linker produce object files; e.g., "-l mylib.lib". Note that the syntax of this string may be target dependent.
tcopts — This string contains options passed to tconf Deprecated, use xsopts instead.
xsopts — This string contains options passed to xs when running configuration scripts; e.g., to turn on the reporting of warnings this string can be set to "-js -w", or to define the name-value pair "FOO=bar" available via the environment hash-table xsopts should be set to "-DFOO=bar".
exportCfg — If this field is set to true, configuration scripts will, by default, be part of the releases created by this package.
exportDoc — If this field is set to true, generated documentation will, by default, be part of the releases created by this package.
exportSrc — If this field is set to true, the sources used to build this package will, by default, be part of the releases created by this package.
exportExe — If this field is set to true, the executables created in this package will, by default, be part of the releases created by this package.
exportAll — If this field is set to true, all files in this package that are not known to be generated are in the release. If it is unspecified (or set to null) these files will not be added to this release. See xdc.bld.Release.Attrs for more information about this option.
relScript — If this field is non-null, the string names a "release script" that is run to post-process the files that are part of a release. Like configuration scripts, the string names a script file that is searched for first in the in package's base directory, and then along the package path.
relScriptArgs — If this field is non-null, the string is used to initialize the arguments[] array which is accessible to the release script named by relScript. The elements of the argumants[] array are formed from the white space separated elements of relScriptArgs. If this string is null or empty, the arguments[] array has length 0.
compress — If this field is set to true, the package release archive files will be, by default, compressed; otherwise, the archives will not be compressed
archiver — This field names the archiver to use when creating a release. Two archivers are currently supported: "tar" and "zip". If the archiver is set to "zip" the Attrs.compress field is implicitly set to true.
DETAILS
These attributes provide package-level defaults for attributes that provide control over the code generation tools, the configuration tool, and release options.
SEE
attrs
config PackageContents.attrs // module-wide
index URL

Package attributes

XDCscript usage meta-domain
PackageContents.attrs = PackageContents.Attrs undefined;
DETAILS
These attributes are "inherited" by all executables and libraries added to this package set.
SEE
xdc.bld.Executable.attrs, xdc.bld.Library.attrs
config PackageContents.cfgDir // module-wide
index URL

The directory where all intermediate program files are placed

XDCscript usage meta-domain
PackageContents.cfgDir = String "package/cfg/";
DETAILS
During configuration, several files are generated (a C++ source file, a linker command file, etc.) these generated files are placed in the directory specified by this parameter.
config PackageContents.defaultRelease // module-wide
index URL

The default release for this package

XDCscript usage meta-domain
PackageContents.defaultRelease = Release.Instance undefined;
DETAILS
If this configuration parameter is defined, it is taken to be the default release instance; otherwise a default instance is created with the appropriate defaults.
If this release's label attribute is undefined or null, it is set to "default" before the release is generated; otherwise the label attribute is unchanged from what the user specified for this instance.
The implicitly created default release is created as follows:
        PackageContents.addRelease(name, {label: "default"})
where name is the package's name with all '.'s replaced with '_'.
config PackageContents.docDir // module-wide
index URL

The directory where generated docs are placed

XDCscript usage meta-domain
PackageContents.docDir = String undefined;
DETAILS
If set to a non-null value, package documentation will be automatically generated and placed in this directory. If it is not set or set to null, no docs will be generated for this package.
If you set exportDoc or exportAll to true the generated docs will be included in the appropriate releases of the package.
config PackageContents.excludeDirs // module-wide
index URL

List of directory base names to exclude

XDCscript usage meta-domain
PackageContents.excludeDirs = String[] undefined;
DETAILS
This is an array of arbitrary directory "base names" that should be excluded in this release of the package. This list only excludes directories that would otherwise be added due to the recursive include of a parent directory.
For example, if a directory is specified in otherFiles all of its sub-directories will be added unless those sub-directories are named in the excludeDirs list.
This list is often used to exclude "hidden" directories added by change control systems and IDEs (.svn, .git, .settings, ...).
SEE
otherFiles, Release.excludeDirs
config PackageContents.generatedFiles // module-wide
index URL

Array of generated files

XDCscript usage meta-domain
PackageContents.generatedFiles = String[] undefined;
DETAILS
This is an array of arbitrary file names that are to be removed during a clean of this package. File names that end with the '/' character are assumed to be directories; in this case, the directory and all of its contents are removed during the clean.
Only those files that are not already directly (or indirectly) named by adding executables or libraries to this package set need to appear in this array.
config PackageContents.imports // module-wide
index URL

An array of required packages (and their version) for this package

XDCscript usage meta-domain
PackageContents.imports = String[] undefined;
READONLY
This parameter is an array of all prerequisite packages required by this package. Each string is of the form:
        <packageName>{<packageCompatibilityKey>
where <packageName> is the name of the required package and <packageCompatibilityKey> is the compatibility key specified in the requires statement of this package. If no compatibility key is specified in package.xdc, <packageCompatibilityKey> is "".
If the package specifies that a requirement is "internal", the package name is prefixed with a '*' character. In other words, the string is of the form:
        *<packageName>{<packageCompatibilityKey>
config PackageContents.interfaces // module-wide
index URL

An array of interface names provided by this package

XDCscript usage meta-domain
PackageContents.interfaces = String[] undefined;
READONLY
This parameter is an array of all interface names defined by this package.
config PackageContents.libDir // module-wide
index URL

The directory where all intermediate library directories are placed

XDCscript usage meta-domain
PackageContents.libDir = String "package/lib/";
DETAILS
Each object file for a library is placed in a sub-directory of this directory that has a name that matches the name specified in the addLibrary() function.
config PackageContents.libTemplate // module-wide
index URL

Template of a common C-file archived into every library

XDCscript usage meta-domain
PackageContents.libTemplate = String null;
DETAILS
This template can be used to embed package-specific meta-information into each library produced by the package. For example, it can be used to add package version infomation to each library.
This template is expanded just once in the Build model during makefile generation. Thus, the contents of the resulting C-file can not be library specific.
The template is found using xdc.findFile() and, as a result, libTemplate may refer to a template in either the current package or even in another package.
During expansion of the template, the this pointer is the PackageContents module object; i.e., the object that the global variable Pkg references.
The expanded template may refer to the following pre-defined macros:
__xdc_PKGVERS
the package compatibility key declared in package.xdc; e.g. "1, 2, 3"
__xdc_PKGNAME
the package's name; e.g., xdc.bld
__xdc_PKGPREFIX
the package's prefix; e.g., for the package xdc.bld the prefix would be xdc_bld_
config PackageContents.makeEpilogue // module-wide
index URL

String to add to the end of the generated makefile

XDCscript usage meta-domain
PackageContents.makeEpilogue = String "";
DETAILS
Similar to makePrologue except that this string is placed at the very end of the generated makefile.
config PackageContents.makePrologue // module-wide
index URL

String to add to the beginning of the generated makefile

XDCscript usage meta-domain
PackageContents.makePrologue = String "";
DETAILS
This string is placed at the very beginning of the package's generated makefile. This allows one to extend the build environment using any facility available to GNU make.
config PackageContents.modules // module-wide
index URL

An array of module names provided by this package

XDCscript usage meta-domain
PackageContents.modules = String[] undefined;
READONLY
This parameter is an array of all module names implemented in this package.
config PackageContents.name // module-wide
index URL

Name of this package

XDCscript usage meta-domain
PackageContents.name = String undefined;
READONLY
This parameter is the name of this package as specified by the package.xdc package specification file
config PackageContents.otherFiles // module-wide
index URL

Array of files to include this package

XDCscript usage meta-domain
PackageContents.otherFiles = String[] undefined;
DETAILS
This is an array of arbitrary file names that are to be included in the package.
Only those files that are not already directly (or indirectly) named by adding executables or libraries to this package set need to appear in this array.
SEE
excludeDirs
config PackageContents.otherSrcs // module-wide
index URL

Array of source files to include this package

XDCscript usage meta-domain
PackageContents.otherSrcs = String[] undefined;
DETAILS
Like otherFiles except that the file names listed here are to be post-processed by the xdc document preparation tools. This array only needs to specify files that are not implicitly specified via any of the addObjects function; e.g., script files, hand-creafted headers, etc.
config PackageContents.producerId // module-wide
index URL

Producer ID string

XDCscript usage meta-domain
PackageContents.producerId = String undefined;
DETAILS
The value of this string is embedded in every release of this package and can serve as a way to "map" this package to a unique ID that the producer uses to locate, within their SCM system, the original sources required to create and maintain this package.
This string is retained and may by displayed by various tools, but it is uninterpreted by the XDCtools.
config PackageContents.relDir // module-wide
index URL

The directory where all intermediate release files are placed

XDCscript usage meta-domain
PackageContents.relDir = String "package/rel/";
DETAILS
Release specific files for a release are placed in a sub-directory of this directory that has a name that matches the name specified in the addRelease() function.
config PackageContents.releasePrefix // module-wide
index URL

A prefix appended to the name of each release archive

XDCscript usage meta-domain
PackageContents.releasePrefix = String "";
DETAILS
This configuration parameter allows one to generate release archives somewhere other than inside the package being built. releasePrefix is prepended to the name of the release name to form the name of the release archive.
For example, setting releasePrefix to "../" implies that a release named "exports/foo" generates an archive file named foo.tar in the directory "../exports".
releasePrefix must either begin with the '^' character or be a relative path that is relative to the package's "base" directory; i.e., the directory containing the package's specification file package.xdc.
If releasePrefix begins with the '^' character, the remainder of the string is treated as though it is relative to the package's repository. In effect, the '^' character is replaced with an appropriate number of '../' sequences to sufficient to navigate to the package's repository.
For example, suppose your packages are in a repository named "src". Setting releasePrefix to "^/../exports" implies that a release named "foo" generates an archive file named foo.tar in the directory named "exports" which is a sibiling of "src" - the package's repository.
This prefix can be overridden on a per release basis; see xdc.bld.Release.Attrs.
NOTE
If this parameter starts with ".." or "^", the resulting archive file will not be removed as part of a package clean.
config PackageContents.uses // module-wide
index URL

Array of directory suffixes used to locate files

XDCscript usage meta-domain
PackageContents.uses = String[] undefined;
DETAILS
This array of directory suffixes is used to locate package files that are referenced (e.g., via #include) without the package name.
This array names package directory suffixes (found along the package path) that:
  1. contain headers included by this package's sources which are included *without* using the package name, or
  2. contain JavaScript "import" files which are included (via utils.importFile()) *without* using the package name.
This mechanism is used to support legacy code that does not explicitly name the package in the #include statements, and *only* affects the compiler's -I options (not the package path) and the configuration tool's import path (config.importPath).
Strings in the Pkg.uses array must not be absolute paths. Each string in the Pkg.uses array must point to an existing directory that can be located along the package path. The generated makefiles create an absolute path by simply appending the string from uses[] to each directory name in the package path until an existing directory is found. The resulting absolute path is then passed to the compiler in a -I option, for example.
The directories named in this array may include sub-directories of any package in the package path.
The strings in this array should use '/' to separate directories; even on Windows systems. Since Windows supports '/' as a directory separator, the use of '/' ensures host platform independence.
EXAMPLE
The following example allows sources in the current package to "#include <tsk.h>" and have the compiler find tsk.h in the sub-directory ti/bios/include which is contained in some repository named in the package path (XDCPATH):
          var Pkg = xdc.useModule('xdc.bld.PackageContents');
          Pkg.uses = ["ti/bios/include", "ti/xdais/legacy"];
config PackageContents.version // module-wide
index URL

The package version string

XDCscript usage meta-domain
PackageContents.version = String undefined;
READONLY
This parameter is a version string that comes from the package.xdc specification.
PackageContents.addExecutable() // module-wide
index URL

Add specified executable to this package

XDCscript usage meta-domain
PackageContents.addExecutable(String name, ITarget.Module target, String platform, Executable.Attrs exeAttrs) returns Executable.Instance
ARGUMENTS
name — executable base name; this name is used to create the file name of the output executable and has the form:
                       <name>.x<suffix>
where <suffix> is the suffix specified by the target argument below. See NOTE in xdc.bld for filename rules.
target — target (xdc.bld.ITarget) for each built object linked into the executable.
platform — string name of the platform; this is the name of a platform package
exeAttrs — optional executable attrs object (xdc.bld.Executable.Attrs)
DETAILS
The name of the executable file is <name>.x<target_suffix>, where <name> is the name parameter (which may contain a directory prefix) and <target_suffix> is the suffix specified by the target parameter (xdc.bld.ITarget.suffix).
This name is also used to create a sub-directory in the package's "cfgDir" directory (xdc.bld.PackageContents.cfgDir) to contain files generated for the benefit of creating the executable. Thus, the name parameter names *both* an executable file and a sub-directory (in PackageContents.cfgDir) that contains the objects linked into the executable.
When the executable is added to the package, a xdc.bld.Test is implicitly added to the executable; thus, every executable has at least one Test. Attributes for this test can be specified via exeAttrs.
RETURNS
Returns the xdc.bld.Executable instance object created.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.bld.INVALID_TARGET
This error is reported when a package is being built for an unknown target. Ensure that the correct targets are mentioned in the package's build script.
xdc.bld.EXECUTABLE_EXISTS
This error is reported when a package's build script specifies multiple executables with the same name. Ensure that the names of the executables to be built are unique.
xdc.bld.PARAMETER_MISMATCH
This error is reported whenever parameters with the wrong type are passed to the method. Ensure that the parameters passed have the right type.
PackageContents.addLibrary() // module-wide
index URL

Add specified library to this package

XDCscript usage meta-domain
PackageContents.addLibrary(String name, ITarget.Module target, Library.Attrs libAttrs) returns Library.Instance
ARGUMENTS
name — library base name; this name is used to create *both* an archive and a sub-directory in the package's "libDir" directory which will contain the target-specific object files. See NOTE in xdc.bld for filename rules.
target — target (a module implementing the xdc.bld.ITarget interface) for each built object in the library
libAttrs — optional library attributes object (xdc.bld.Library.Attrs)
DETAILS
The name of the library archive file is <name>.a<target_suffix>, where <name> is the name parameter (which may contain a directory prefix) and <target_suffix> is the suffix specified by the target parameter (xdc.bld.ITarget.suffix).
The individual objects of each library are located in the directory <libDir>/<name>, where <name> is the name parameter and <libDir> is the configurable parameter xdc.bld.PackageContents.libDir. Thus, the name parameter names *both* an archive file and a sub-directory (in PackageContents.libDir) that contains the objects in the archive.
RETURNS
Returns the xdc.bld.Library instance object created.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.bld.INVALID_TARGET
This error is reported when a package is being built for an unknown target. Ensure that the correct targets are mentioned in the package's build script.
xdc.bld.LIBRARY_EXISTS
This error is reported when a package's build script specifies multiple libraries with the same name. Ensure that the names of the libraries to be built are unique.
xdc.bld.PARAMETER_MISMATCH
This error is reported whenever parameters with the wrong type are passed to the method. Ensure that the parameters passed have the right type.
SEE
xdc.bld.PackageContents.libDir, xdc.bld.ITarget.suffix
PackageContents.addRelease() // module-wide
index URL

Add specified release to this package

XDCscript usage meta-domain
PackageContents.addRelease(String name, Release.Attrs relAttrs) returns Release.Instance
ARGUMENTS
name — release base name; this name is used to create the file name of the output file and has the form: <name>.tar See NOTE in xdc.bld for filename rules.
relAttrs — optional release attributes object (xdc.bld.Release.Attrs)
RETURNS
Returns the xdc.bld.Release instance object created.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.bld.RELEASE_EXISTS
This error is reported whenever a package's build script specifies multiple releases with the same name. Ensure that the names of the releases specified in the build script are unique.
xdc.bld.INVALID_RELEASE_PREFIX
This error is reported whenever a release prefix is specified by its absolute path in the package's build script. The release prefix has to be relative to the package's base directory.
xdc.bld.INVALID_RELEASE_NAME
This error is reported whenever a release name is specified by its absolute path in the package's build script. The release name has to be relative to the package's base directory.
PackageContents.addRepository() // module-wide
index URL

Add a repository to this package

XDCscript usage meta-domain
PackageContents.addRepository(String repositoryName, Repository.Attrs repAttrs) returns Repository.Instance
ARGUMENTS
repositoryName — name of a directory (relative to this package's base) that will contain the packages added via xdc.bld.Repository.addPackages() See NOTE in xdc.bld for filename rules.
repAttrs — optional Repository attributes associated with this repository (see xdc.bld.Repository.Attrs)
DETAILS
A repository is a directory that contains packages. Repositories are typically named in the user's XDCPATH environment variable and contain a set of packages that are managed as a group.
This method allows one to bundle several packages together into a single release (of the package that contains this repository).
RETURNS
Returns the xdc.bld.Repository instance object created.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.bld.REPOSITORY_EXISTS
This error is reported whenever a package's build script specifies multiple repositories with the same name. Ensure that the names of the repositories specified in the build script are unique.
PackageContents.addScript() // module-wide
index URL

Add a script to this package

XDCscript usage meta-domain
PackageContents.addScript(String name, Script.Attrs scriptAttrs) returns Script.Instance
ARGUMENTS
name — name of the script to add to this package. Script names are simply the script's filename relative to the package's base directory. Scripts can have any extension, but if the extension is ".sh" or ".ksh" a Korn shell compatible shell is used to run the script's tests; otherwise it is assumed to be an XDCscript file and any tests will be run by the XDCscript interpreter xs.
scriptAttrs — optional script attributes object (xdc.bld.Script.Attrs)
DETAILS
Both XDCscript and Korn shell scripts can be added to package. This not only allows one to add script utilities to a package, it also makes it easy to create scripted regression tests. As with Executables, it is possible to add xdc.bld.Tests to a Script; see xdc.bld.Script.addTest.
RETURNS
Returns the xdc.bld.Script instance object created.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.bld.SCRIPT_EXISTS
This error is reported whenever a package's build script specifies multiple user scripts with the same name. Ensure that the names of the user scripts are unique.
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.PackageContents

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== PackageContents.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== PackageContents ========
    19     *  Package container populated by a build script.
    20     *
    21     *  This module defines the `PackageContents` object (aliased as `Pkg` in
    22     *  build scripts) which represents the contents of a package.  Build scripts
    23     *  add to this package using the add* methods defined below.
    24     *
    25     *  In addition to the items added by the build script, every package has at
    26     *  least one release, the default release.  If the {@link #defaultRelease}
    27     *  configuration parameter is not set, a default release will be
    28     *  implicitly created.
    29     *
    30     *  Every library, executable, and repository added to the package is
    31     *  automatically added to the default release.
    32     *
    33     */
    34    metaonly module PackageContents {
    35        /*!
    36         *  ======== Attrs ========
    37         *  Package-level attributes.
    38         *
    39         *  These attributes provide package-level defaults for attributes that
    40         *  provide control over the code generation tools, the configuration
    41         *  tool, and release options.
    42         *
    43         *  @field(profile)  This string names a profile defined by the
    44         *          executable's target.  A profile specifies a set of compiler,
    45         *          linker, and archiver options that are to be used when
    46         *          compiling and linking code.  Note that these tool options are
    47         *          in addition to any options specified via `aopts`, `copts`,
    48         *          etc.
    49         *
    50         *          If this field is not specified or set to `null`, the
    51         *          `"release"` profile will be used.
    52         *
    53         *  @field(incs)  This string contains include path options used by
    54         *          the compiler (or assembler) to locate include files; e.g.,
    55         *          "`-I ../../include -I ../c55xx`".  Note that the syntax of
    56         *          this string may be target dependent.
    57         *
    58         *  @field(defs)  This string contains options used by the
    59         *          compiler (or assembler) to define macros; e.g.,
    60         *          "`-D_C6xxx -DDEBUG=1`".  Note that the syntax of
    61         *          this string may be target dependent.
    62         *
    63         *  @field(aopts)  This string contains options used by the assembler
    64         *          to produce object files; e.g., "`-mP1`".  Note that the syntax
    65         *          of this string may be target dependent.
    66         *
    67         *  @field(copts)  This string contains options used by the C/C++
    68         *          compiler to produce object files; e.g., "`-o3 -mi1`".  Note
    69         *          that the syntax of this string may be target dependent.
    70         *
    71         *  @field(cfgcopts)  This string contains options used by the C/C++
    72         *          compiler to compile the generated C config file. If `cfgopts`
    73         *          is not specified, the options specified in `copts` are
    74         *          used instead.
    75         *
    76         *  @field(lopts)  This string contains options used by the linker
    77         *          produce object files; e.g., "`-l mylib.lib`".  Note
    78         *          that the syntax of this string may be target dependent.
    79         *
    80         *  @field(tcopts)  This string contains options passed to `tconf`
    81         *          Deprecated, use `xsopts` instead.
    82         *
    83         *  @field(xsopts)  This string contains options passed to `xs`
    84         *          when running configuration scripts; e.g., to turn on the
    85         *          reporting of warnings this string can be set to "`-js -w`",
    86         *          or to define the name-value pair "`FOO=bar`" available via
    87         *          the environment hash-table `xsopts` should be set to
    88         *          "`-DFOO=bar`".
    89         *
    90         *  @field(exportCfg)  If this field is set to `true`,  configuration
    91         *          scripts will, by default, be part of the releases created
    92         *          by this package.
    93         *
    94         *  @field(exportDoc)  If this field is set to `true`,  generated
    95         *          documentation will, by default, be part of the releases
    96         *          created by this package.
    97         *
    98         *  @field(exportSrc)  If this field is set to `true`, the sources
    99         *          used to build this package will, by default, be part of the
   100         *          releases created by this package.
   101         *
   102         *  @field(exportExe)  If this field is set to `true`, the executables
   103         *          created in this package will, by default, be part of the
   104         *          releases created by this package.
   105         *
   106         *  @field(exportAll)  If this field is set to true, all files
   107         *          in this package that are not known to be generated are in
   108         *          the release.  If it is unspecified (or set to `null`) these
   109         *          files will not be added to this release. See
   110         *          `{@link xdc.bld.Release#Attrs}` for more information about
   111         *          this option.
   112         *
   113         *  @field(relScript)  If this field is non-`null`, the string names a
   114         *          "release script" that is run to post-process the
   115         *          files that are part of a release.  Like configuration scripts,
   116         *          the string names a script file that is searched for first in
   117         *          the in package's base directory, and then along the package
   118         *          path.
   119         *
   120         *  @field(relScriptArgs)  If this field is non-`null`, the string is
   121         *          used to initialize the `arguments[]` array which is
   122         *          accessible to the release script named by `relScript`.  The
   123         *          elements of the `argumants[]` array are formed from the white
   124         *          space separated elements of `relScriptArgs`.  If this string
   125         *          is `null` or empty, the `arguments[]` array has length `0`.
   126         *
   127         *  @field(compress) If this field is set to `true`, the package release
   128         *          archive files will be, by default, compressed; otherwise, the
   129         *          archives will not be compressed
   130         *
   131         *  @field(archiver) This field names the archiver to use when creating a
   132         *          release.  Two archivers are currently supported:
   133         *          "tar" and "zip".  If the archiver is set to "zip"
   134         *          the `{@link #Attrs.compress}` field is implicitly set to
   135         *          `true`.
   136         *
   137         *  @see #attrs
   138         */
   139        struct Attrs {
   140            String  profile;    /*! select appropriate `ITarget.OptionSet` */
   141            String  aopts;      /*! assembly language options */
   142            String  copts;      /*! C/C++ compiler options */
   143            String  cfgcopts;   /*! C/C++ compiler options for the C config file */
   144            String  defs;       /*! -D options common to C/C++/asm */
   145            String  incs;       /*! -I options common to C/C++/asm */
   146            String  tcopts;     /*! tconf options, deprecated */
   147            String  xsopts;     /*! xs options */
   148            String  lopts;      /*! linker options */
   149            Bool    exportDoc;  /*! if `true`, export generated docs */
   150            Bool    exportExe;  /*! if `true`, export executables */
   151            Bool    exportCfg;  /*! if `true`, export program cfg scripts */
   152            Bool    exportSrc;  /*! if `true`, export all package sources */
   153            Bool    exportAll;  /*! if `true`, export all non-gen'd files */
   154            String  relScript;  /*! release files post-processing script */
   155            String  relScriptArgs;  /*! optional arguments to relScript */
   156            Bool    compress;   /*! if `true`, compress package release archives */
   157            String  archiver;   /*! "tar" or "zip"; defaults to "tar" */
   158        };
   159
   160        /*!
   161         *  ======== attrs ========
   162         *  Package attributes.
   163         *
   164         *  These attributes are "inherited" by all executables and libraries
   165         *  added to this package set.
   166         *
   167         *  @see xdc.bld.Executable#attrs
   168         *  @see xdc.bld.Library#attrs
   169         */
   170        config PackageContents.Attrs attrs;
   171
   172        /*!
   173         *  ======== cfgDir ========
   174         *  The directory where all intermediate program files are placed.
   175         *
   176         *  During configuration, several files are generated (a C++ source file,
   177         *  a linker command file, etc.)  these generated files are placed in
   178         *  the directory specified by this parameter.
   179         */
   180        config String cfgDir = "package/cfg/";
   181
   182        /*!
   183         *  ======== docDir ========
   184         *  The directory where generated docs are placed.
   185         *
   186         *  If set to a non-`null` value, package documentation will be
   187         *  automatically generated and placed in this directory.  If
   188         *  it is not set or set to `null`, no docs will be generated for
   189         *  this package.
   190         *
   191         *  If you set `{@link #Attrs exportDoc}` or `{@link #Attrs exportAll}`
   192         *  to `true` the generated docs will be included in the appropriate
   193         *  releases of the package.
   194         */
   195        config String docDir;
   196
   197        /*!
   198         *  ======== imports ========
   199         *  An array of required packages (and their version) for this package
   200         *
   201         *  @a(readonly) This parameter is an array of all prerequisite packages
   202         *  required by this package.  Each string is of the form:
   203         *      @p(code)
   204         *          <packageName>{<packageCompatibilityKey>
   205         *      @p
   206         *  where `<packageName>` is the name of the required package and
   207         *  `<packageCompatibilityKey>` is the compatibility key specified in the
   208         *  `requires` statement of this package.  If no compatibility key is
   209         *  specified in `package.xdc`, `<packageCompatibilityKey>` is "".
   210         *
   211         *  If the package specifies that a requirement is "internal", the
   212         *  package name is prefixed with a '*' character.  In other words, the
   213         *  string is of the form:
   214         *      @p(code)
   215         *          *<packageName>{<packageCompatibilityKey>
   216         *      @p
   217         */
   218        config String imports[];
   219
   220        /*!
   221         *  ======== libDir ========
   222         *  The directory where all intermediate library directories are placed.
   223         *
   224         *  Each object file for a library is placed in a sub-directory of this
   225         *  directory that has a name that matches the name specified in the
   226         *  `{@link #addLibrary()}` function.
   227         */
   228        config String libDir = "package/lib/";
   229
   230        /*!
   231         *  ======== libTemplate ========
   232         *  Template of a common C-file archived into every library
   233         *
   234         *  This template can be used to embed package-specific meta-information
   235         *  into each library produced by the package.  For example, it can be
   236         *  used to add package version infomation to each library.
   237         *
   238         *  This template is expanded just once in the Build model during
   239         *  makefile generation.  Thus, the contents of the resulting C-file can
   240         *  not be library specific.
   241         *
   242         *  The template is found using `xdc.findFile()` and, as a result,
   243         *  `libTemplate` may refer to a template in either the current package
   244         *  or even in another package.
   245         *
   246         *  During expansion of the template, the `this` pointer is the
   247         *  `PackageContents` module object; i.e., the object that the global
   248         *  variable `Pkg` references.
   249         *
   250         *  The expanded template may refer to the following pre-defined macros:
   251         *  @p(dlist)
   252         *      - `__xdc_PKGVERS`
   253         *          the package compatibility key declared in package.xdc; e.g.
   254         *          "`1, 2, 3`"
   255         *      - `__xdc_PKGNAME`
   256         *          the package's name; e.g., `xdc.bld`
   257         *      - `__xdc_PKGPREFIX`
   258         *          the package's prefix; e.g., for the package `xdc.bld` the
   259         *          prefix would be `xdc_bld_`
   260         *  @p
   261         */
   262        config String libTemplate = null;
   263
   264        /*!
   265         *  ======== relDir ========
   266         *  The directory where all intermediate release files are placed.
   267         *
   268         *  Release specific files for a release are placed in a sub-directory of
   269         *  this directory that has a name that matches the name specified in the
   270         *  `{@link #addRelease()}` function.
   271         */
   272        config String relDir = "package/rel/";
   273
   274        /*!
   275         *  ======== producerId ========
   276         *  Producer ID string
   277         *
   278         *  The value of this string is embedded in every release of this
   279         *  package and can serve as a way to "map" this package to a unique ID
   280         *  that the producer uses to locate, within their SCM system, the
   281         *  original sources required to create and maintain this package.
   282         *
   283         *  This string is retained and may by displayed by various tools, but
   284         *  it is uninterpreted by the XDCtools.
   285         */
   286        config String producerId;
   287
   288        /*!
   289         *  ======== version ========
   290         *  The package version string.
   291         *
   292         *  @a(readonly) This parameter is a version string that comes from the
   293         *  `package.xdc` specification.
   294         */
   295        config String version;
   296
   297        /*!
   298         *  ======== interfaces ========
   299         *  An array of interface names provided by this package.
   300         *
   301         *  @a(readonly) This parameter is an array of all interface names
   302         *  defined by this package.
   303         */
   304        config String interfaces[];
   305
   306        /*!
   307         *  ======== makePrologue ========
   308         *  String to add to the beginning of the generated makefile.
   309         *
   310         *  This string is placed at the very beginning of the package's
   311         *  generated makefile.  This allows one to extend the build
   312         *  environment using any facility available to GNU make.
   313         */
   314        config String makePrologue = "";
   315
   316        /*!
   317         *  ======== makeEpilogue ========
   318         *  String to add to the end of the generated makefile.
   319         *
   320         *  Similar to makePrologue except that this string is placed at
   321         *  the very end of the generated makefile.
   322         */
   323        config String makeEpilogue = "";
   324
   325        /*!
   326         *  ======== defaultRelease ========
   327         *  The default release for this package.
   328         *
   329         *  If this configuration parameter is defined, it is taken to be the
   330         *  default release instance; otherwise a default instance is created
   331         *  with the appropriate defaults.
   332         *
   333         *  If this release's `label` attribute is `undefined` or `null`, it is
   334         *  set to `"default"` before the release is generated; otherwise the
   335         *  label attribute is unchanged from what the user specified for this
   336         *  instance.
   337         *
   338         *  The implicitly created default release is created as follows:
   339         *  @p(code)
   340         *      PackageContents.addRelease(name, {label: "default"})
   341         *  @p
   342         *  where `name` is the package's name with all '.'s replaced with '_'.
   343         */
   344        config Release.Instance defaultRelease;
   345
   346        /*!
   347         *  ======== releasePrefix ========
   348         *  A prefix appended to the name of each release archive.
   349         *
   350         *  This configuration parameter allows one to generate release archives
   351         *  somewhere other than inside the package being built.  `releasePrefix`
   352         *  is prepended to the name of the release name to form the name of the
   353         *  release archive.
   354         *
   355         *  For example, setting `releasePrefix` to `"../"` implies that a
   356         *  release named `"exports/foo"` generates an archive file named
   357         *  `foo.tar` in the directory `"../exports"`.
   358         *
   359         * `releasePrefix` must either begin with the '^' character or be a
   360         *  relative path that is relative to the package's "base" directory;
   361         *  i.e., the directory containing the package's specification file
   362         *  `package.xdc`.
   363         *
   364         *  If `releasePrefix` begins with the '^' character, the remainder of
   365         *  the string is treated as though it is relative to the package's
   366         *  repository.  In effect, the '^' character is replaced with an
   367         *  appropriate number of '../' sequences to sufficient to navigate to
   368         *  the package's repository.
   369         *
   370         *  For example, suppose your packages are in a repository named `"src"`.
   371         *  Setting `releasePrefix` to `"^/../exports"` implies that a release
   372         *  named `"foo"` generates an archive file named `foo.tar` in the
   373         *  directory named `"exports"` which is a sibiling of `"src"` - the
   374         *  package's repository.
   375         *
   376         *  This prefix can be overridden on a per release basis; see
   377         *  `{@link xdc.bld.Release#Attrs}`.
   378         *
   379         *  @a(note) If this parameter starts with `".."` or `"^"`, the resulting
   380         *  archive file will not be removed as part of a package clean.
   381         */
   382        config String releasePrefix = "";
   383
   384        /*!
   385         *  ======== modules ========
   386         *  An array of module names provided by this package.
   387         *
   388         *  @a(readonly) This parameter is an array of all module names
   389         *  implemented in this package.
   390         */
   391        config String modules[];
   392
   393        /*!
   394         *  ======== name ========
   395         *  Name of this package
   396         *
   397         *  @a(readonly) This parameter is the name of this package as
   398         *  specified by the `package.xdc` package specification file
   399         */
   400        config String name;
   401
   402        /*!
   403         *  ======== otherFiles ========
   404         *  Array of files to include this package.
   405         *
   406         *  This is an array of arbitrary file names that are to be included
   407         *  in the package.
   408         *
   409         *  Only those files that are not already directly (or indirectly)
   410         *  named by adding executables or libraries to this package set need
   411         *  to appear in this array.
   412         *
   413         *  @see #excludeDirs
   414         */
   415        config String otherFiles[];
   416
   417        /*!
   418         *  ======== excludeDirs ========
   419         *  List of directory base names to exclude
   420         *
   421         *  This is an array of arbitrary directory "base names" that should
   422         *  be excluded in this release of the package.  This list only
   423         *  excludes directories that would otherwise be added due to the
   424         *  recursive include of a parent directory.
   425         *
   426         *  For example, if a directory is specified in `{@link #otherFiles}`
   427         *  all of its sub-directories will be added unless those sub-directories
   428         *  are named in the `excludeDirs` list.
   429         *
   430         *  This list is often used to exclude "hidden" directories added by
   431         *  change control systems and IDEs (`.svn`, `.git`, `.settings`, ...).
   432         *
   433         *  @see #otherFiles
   434         *  @see Release#excludeDirs
   435         */
   436        config String excludeDirs[];
   437
   438        /*!
   439         *  ======== generatedFiles ========
   440         *  Array of generated files
   441         *
   442         *  This is an array of arbitrary file names that are to be removed
   443         *  during a clean of this package.  File names that end with the `'/'`
   444         *  character are assumed to be directories; in this case, the directory
   445         *  and all of its contents are removed during the clean.
   446         *
   447         *  Only those files that are not already directly (or indirectly)
   448         *  named by adding executables or libraries to this package set need
   449         *  to appear in this array.
   450         */
   451        config String generatedFiles[];
   452
   453        /*!
   454         *  ======== otherSrcs ========
   455         *  Array of source files to include this package.
   456         *
   457         *  Like otherFiles except that the file names listed here are to be
   458         *  post-processed by the xdc document preparation tools.  This array
   459         *  only needs to specify files that are not implicitly specified via
   460         *  any of the addObjects function; e.g., script files, hand-creafted
   461         *  headers, etc.
   462         */
   463        config String otherSrcs[];
   464
   465        /*!
   466         *  ======== packagePath ========
   467         *  This configuration parameter allows one to set the package
   468         *  path from within the build script.  This setting overrides
   469         *  the setting of `XDCPATH` either in the environment or on the
   470         *  command line.
   471         *
   472         *  @b(deprecated)  `XDCPATH` should be set on the command line or in
   473         *  the environment.  This avoids the confusion that will result from
   474         *  different package paths being used to generate the makefiles from
   475         *  the package path used to build other package contents.
   476         *
   477         *  @_nodoc this parameter should not be used!!!!!!
   478         */
   479        config String packagePath = null;
   480
   481        /*!
   482         *  ======== uses ========
   483         *  Array of directory suffixes used to locate files.
   484         *
   485         *  This array of directory suffixes is used to locate package files
   486         *  that are referenced (e.g., via #include) without the package name.
   487         *
   488         *  This array names package directory suffixes (found along the
   489         *  package path) that:
   490         *  @p(nlist)
   491         *      -  contain headers included by this package's sources which
   492         *         are included *without* using the package name, or
   493         *      -  contain JavaScript "import" files which are included (via
   494         *         `utils.importFile()`) *without* using the package name.
   495         *  @p
   496         *  This mechanism is used to support legacy code that does not
   497         *  explicitly name the package in the #include statements, and *only*
   498         *  affects the compiler's -I options (not the package path) and the
   499         *  configuration tool's import path (`config.importPath`).
   500         *
   501         *  Strings in the Pkg.uses array must not be absolute paths.  Each string
   502         *  in the Pkg.uses array must point to an existing directory that can be
   503         *  located along the package path.  The generated makefiles create an
   504         *  absolute path by simply appending the string from `uses[]` to each
   505         *  directory name in the package path until an existing directory is
   506         *  found.  The resulting absolute path is then passed to the compiler in
   507         *  a -I option, for example.
   508         *
   509         *  The directories named in this array may include sub-directories of
   510         *  any package in the package path.
   511         *
   512         *  The strings in this array should use '/' to separate directories;
   513         *  even on Windows systems.  Since Windows supports '/' as a directory
   514         *  separator, the use of '/' ensures host platform independence.
   515         *
   516         *  @a(Example)
   517         *      The following example allows sources in the current package to
   518         *      "`#include <tsk.h>`" and have the compiler find `tsk.h` in the
   519         *      sub-directory ti/bios/include which is contained in some repository
   520         *      named in the package path (`XDCPATH`):
   521         *      @p(code)
   522         *          var Pkg = xdc.useModule('xdc.bld.PackageContents');
   523         *          Pkg.uses = ["ti/bios/include", "ti/xdais/legacy"];
   524         *      @p
   525         */
   526        config String uses[];
   527
   528        /*!
   529         *  ======== addLibrary ========
   530         *  Add specified library to this package
   531         *
   532         *  The name of the library archive file is `<name>.a<target_suffix>`,
   533         *  where `<name>` is the name parameter (which may contain a directory
   534         *  prefix) and `<target_suffix>` is the suffix specified by the target
   535         *  parameter (`{@link xdc.bld.ITarget#suffix}`).
   536         *
   537         *  The individual objects of each library are located in the directory
   538         *  `<libDir>/<name>`, where `<name>` is the name parameter and `<libDir>`
   539         *  is the configurable parameter `{@link xdc.bld.PackageContents#libDir}`.
   540         *  Thus, the name parameter names *both* an archive file and a
   541         *  sub-directory (in `PackageContents.libDir`) that contains the objects
   542         *  in the archive.
   543         *
   544         *  @param(name)     library base name; this name is used to create
   545         *                   *both* an archive and a sub-directory in the
   546         *                   package's "libDir" directory which
   547         *                   will contain the target-specific object files.
   548         *                   See NOTE in `{@link xdc.bld}` for filename rules.
   549         *
   550         *  @param(target)   target (a module implementing the
   551         *                   `{@link xdc.bld.ITarget}` interface) for each built
   552         *                   object in the library
   553         *
   554         *  @param(libAttrs) optional `library` attributes object
   555         *                   (`{@link xdc.bld.Library#Attrs}`)
   556         *
   557         *  @a(returns)      Returns the `{@link xdc.bld.Library}` instance
   558         *                   object created.
   559         *  @a(throws)       `XDCException` exceptions are thrown for fatal
   560         *                    errors. The following error codes are
   561         *                    reported in the exception message:
   562         *                    @p(dlist)
   563         *                    -  `xdc.bld.INVALID_TARGET`
   564         *                       This error is reported when a package is being
   565         *                       built for an unknown target. Ensure that the
   566         *                       correct targets are mentioned in the package's
   567         *                       build script.
   568         *                    -  `xdc.bld.LIBRARY_EXISTS`
   569         *                        This error is reported when a package's build
   570         *                        script specifies multiple libraries with the
   571         *                        same name. Ensure that the names of the
   572         *                        libraries to be built are unique.
   573         *                    -  `xdc.bld.PARAMETER_MISMATCH`
   574         *                        This error is reported whenever parameters with
   575         *                        the wrong type  are passed to the method. Ensure
   576         *                        that the parameters passed have the right type.
   577         *
   578         *  @see xdc.bld.PackageContents#libDir
   579         *  @see xdc.bld.ITarget#suffix
   580         */
   581        Library.Instance addLibrary(String name, ITarget.Module target,
   582                                    Library.Attrs libAttrs = {});
   583
   584        /*!
   585         *  ======== addExecutable ========
   586         *  Add specified executable to this package.
   587         *
   588         *  The name of the executable file is `<name>.x<target_suffix>`,
   589         *  where `<name>` is the name parameter (which may contain a directory
   590         *  prefix) and `<target_suffix>` is the suffix specified by the target
   591         *  parameter (`{@link xdc.bld.ITarget#suffix}`).
   592         *
   593         *  This name is also used to create a sub-directory in the package's
   594         *  "cfgDir" directory (`{@link xdc.bld.PackageContents#cfgDir}`) to
   595         *  contain files generated for the benefit of creating the executable.
   596         *  Thus, the name parameter names *both* an executable file and a
   597         *  sub-directory (in `PackageContents.cfgDir`) that contains the objects
   598         *  linked into the executable.
   599         *
   600         *  When the executable is added to the package, a `{@link xdc.bld.Test}`
   601         *  is implicitly added to the executable; thus, every executable has at
   602         *  least one `Test`.  Attributes for this test can be specified via
   603         *  `exeAttrs`.
   604         *
   605         *  @param(name)     executable base name; this name is used to create
   606         *                   the file name of the output executable and has the
   607         *                   form:
   608         *                   @p(code)
   609         *                       <name>.x<suffix>
   610         *                   @p
   611         *                   where `<suffix>` is the suffix specified by
   612         *                   the target argument below.
   613         *                   See NOTE in `{@link xdc.bld}` for filename rules.
   614         *
   615         *  @param(target)   target (`{@link xdc.bld.ITarget}`) for each built
   616         *                   object linked into the executable.
   617         *
   618         *  @param(platform) string name of the platform; this is the name of a
   619         *                   platform package
   620         *
   621         *  @param(exeAttrs) optional executable attrs object
   622         *                   (`{@link xdc.bld.Executable#Attrs}`)
   623         *
   624         *  @a(returns)      Returns the `{@link xdc.bld.Executable}` instance
   625         *                   object created.
   626         *
   627         *  @a(throws)       `XDCException` exceptions are thrown for fatal
   628         *                    errors. The following error codes are
   629         *                    reported in the exception message:
   630         *                    @p(dlist)
   631         *                    -  `xdc.bld.INVALID_TARGET`
   632         *                       This error is reported when a package is being
   633         *                       built for an unknown target. Ensure that the
   634         *                       correct targets are mentioned in the package's
   635         *                       build script.
   636         *                    -  `xdc.bld.EXECUTABLE_EXISTS`
   637         *                       This error is reported when a package's build
   638         *                       script specifies multiple executables with the
   639         *                       same name. Ensure that the names of the
   640         *                       executables to be built are unique.
   641         *                    -  `xdc.bld.PARAMETER_MISMATCH`
   642         *                       This error is reported whenever parameters with
   643         *                       the wrong type  are passed to the method. Ensure
   644         *                       that the parameters passed have the right type.
   645         *
   646         */
   647        Executable.Instance addExecutable(String name, ITarget.Module target,
   648                            String platform, Executable.Attrs exeAttrs = {});
   649
   650        /*!
   651         *  ======== addRepository ========
   652         *  Add a repository to this package
   653         *
   654         *  A repository is a directory that contains packages.  Repositories are
   655         *  typically named in the user's XDCPATH environment variable and contain
   656         *  a set of packages that are managed as a group.
   657         *
   658         *  This method allows one to bundle several packages together into a
   659         *  single release (of the package that contains this repository).
   660         *
   661         *  @param(repositoryName)  name of a directory (relative to this
   662         *                          package's base) that will contain the packages
   663         *                          added via
   664         *                          `{@link xdc.bld.Repository#addPackages()}`
   665         *                          See NOTE in `{@link xdc.bld}` for filename
   666         *                          rules.
   667         *
   668         *  @param(repAttrs)        optional `Repository` attributes associated
   669         *                          with this repository (see
   670         *                          `{@link xdc.bld.Repository#Attrs}`)
   671         *
   672         *  @a(returns)             Returns the `{@link xdc.bld.Repository}`
   673         *                          instance object created.
   674         *
   675         *  @a(throws)       `XDCException` exceptions are thrown for fatal
   676         *                    errors. The following error codes are
   677         *                    reported in the exception message:
   678         *                    @p(dlist)
   679         *                    - `xdc.bld.REPOSITORY_EXISTS`
   680         *                      This error is reported whenever a package's build
   681         *                      script specifies multiple repositories with the
   682         *                      same name.  Ensure that the names of the
   683         *                      repositories specified in the build script are
   684         *                      unique.
   685         */
   686        Repository.Instance addRepository(String repositoryName,
   687                                          Repository.Attrs repAttrs = {});
   688
   689        /*!
   690         *  ======== addRelease ========
   691         *  Add specified release to this package
   692         *
   693         *  @param(name)    release base name; this name is used to create
   694         *                  the file name of the output file and has the
   695         *                  form:
   696         *                      <name>.tar
   697         *                  See NOTE in `{@link xdc.bld}` for filename rules.
   698         *
   699         *  @param(relAttrs) optional release attributes object
   700         *                   (`{@link xdc.bld.Release#Attrs}`)
   701         *
   702         *  @a(returns)     Returns the `{@link xdc.bld.Release}` instance object
   703         *                  created.
   704         *
   705         *  @a(throws)       `XDCException` exceptions are thrown for fatal
   706         *                    errors. The following error codes are
   707         *                    reported in the exception message:
   708         *                    @p(dlist)
   709         *                    - `xdc.bld.RELEASE_EXISTS`
   710         *                      This error is reported whenever a package's build
   711         *                      script specifies multiple releases with the same
   712         *                      name.  Ensure that the names of the releases
   713         *                      specified in the build script are unique.
   714         *                    - `xdc.bld.INVALID_RELEASE_PREFIX`
   715         *                      This error is reported whenever a release prefix
   716         *                      is specified by its absolute path in the package's
   717         *                      build script.  The release prefix has to be
   718         *                      relative to the package's base directory.
   719         *                    - `xdc.bld.INVALID_RELEASE_NAME`
   720         *                      This error is reported whenever a release name is
   721         *                      specified by its absolute path in the package's
   722         *                      build script. The release name has to be relative
   723         *                      to the package's base directory.
   724         */
   725        Release.Instance addRelease(String name, Release.Attrs relAttrs = {});
   726
   727        /*!
   728         *  ======== addScript ========
   729         *  Add a script to this package
   730         *
   731         *  Both XDCscript and Korn shell scripts can be added to package.  This
   732         *  not only allows one to add script utilities to a package, it
   733         *  also makes it easy to create scripted regression tests.  As with
   734         *  `Executable`s, it is possible to add `{@link xdc.bld.Test}`s to a
   735         *  `{@link xdc.bld.Script Script}`; see `{@link xdc.bld.Script#addTest}`.
   736         *
   737         *  @param(name)    name of the script to add to this package.  Script
   738         *                  names are simply the script's filename relative to
   739         *                  the package's base directory.  Scripts can have any
   740         *                  extension, but if the extension is "`.sh`" or "`.ksh`"
   741         *                  a Korn shell compatible shell is used to run the
   742         *                  script's tests; otherwise it is assumed to be an
   743         *                  XDCscript file and any tests will be run by the
   744         *                  XDCscript interpreter `xs`.
   745         *
   746         *  @param(scriptAttrs) optional script attributes object
   747         *                   (`{@link xdc.bld.Script#Attrs}`)
   748         *
   749         *  @a(returns)      Returns the `{@link xdc.bld.Script}` instance
   750         *                   object created.
   751         *
   752         *  @a(throws)       `XDCException` exceptions are thrown for fatal
   753         *                    errors. The following error codes are
   754         *                    reported in the exception message:
   755         *                      @p(dlist)
   756         *                      - `xdc.bld.SCRIPT_EXISTS`
   757         *                        This error is reported whenever a package's build
   758         *                        script specifies multiple user scripts with the
   759         *                        same name. Ensure that the names of the user
   760         *                        scripts are unique.
   761         */
   762        Script.Instance addScript(String name, Script.Attrs scriptAttrs = {});
   763
   764        /*!
   765         *  ======== addAssembly ========
   766         *  @_nodoc assemblies are experimental not fully qualified/tested
   767         *          entities
   768         *  @a(returns)      Returns the `{@link xdc.bld.Assembly}` instance
   769         *                   object created.
   770         *
   771         *  @a(throws)       `XDCException` exceptions are thrown for fatal
   772         *                    errors. The following error codes are
   773         *                    reported in the exception message:
   774         *                    @p(dlist)
   775         *                    - `xdc.bld.INVALID_TARGET`
   776         *                      This error is reported when a package is being
   777         *                      built for an unknown target. Ensure that the
   778         *                      correct targets are mentioned in the package's
   779         *                      build script.
   780         */
   781        Assembly.Instance addAssembly(String name, ITarget.Module target,
   782            String platform, Executable.Attrs exeAttrs = {});
   783
   784        /*!
   785         *  ======== addConfiguration ========
   786         *  @_nodoc
   787         */
   788        Configuration.Instance addConfiguration(String name, ITarget.Module target,
   789            String platform, Configuration.Attrs cfgAttrs = {});
   790
   791        /*!
   792         *  ======== onInit ========
   793         *  @_nodoc this function is called from the bld package's
   794         *          initialization function to initialize this module.
   795         *
   796         *  @a(throws)       `XDCException` exceptions are thrown for fatal
   797         *                    errors. The following error codes are
   798         *                    reported in the exception message:
   799         *                    @p(dlist)
   800         *                    - `xdc.bld.INCORRECT_PACKAGE_NAME`
   801         *                      This error is reported whenever package name does
   802         *                      not match the directory name. Package names should
   803         *                      match the directory layout. For example the
   804         *                      package `ti.sdo.ce.osal` should be created in the
   805         *                      directory `ti\sdo\ce\osal`.
   806         *                    - `xdc.bld.CREATE_DIR_ERROR`
   807         *                      This error is reported whenever there is an error
   808         *                      in creating package directories. This maybe
   809         *                      related with issues with the host filesystem.
   810         *                      Check whether directories
   811         *                      can be created manually in the `package`
   812         *                      sub-directory.
   813         */
   814        function onInit();
   815    }
   816    /*
   817     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   818     */
   819


module xdc.bld.Release

metaonly module xdc.bld.Release
index URL

Model of an archive of all files that are part of a release

  • XDCscript usage
  • Individual elements
Release instances define a container object that represents all files that are part of a release of a package. A release may, for example, include just the files necessary to support a particular ISA even though the package as a whole can support multiple ISAs. [ more ... ]
XDCscript usage meta-domain sourced in xdc/bld/Release.xdc
var Release = xdc.useModule('xdc.bld.Release');
module-wide constants & types
    var obj = new Release.Attrs// Optional Release attributes;
        obj.archiver// "tar" or "zip"; defaults to "tar" = String ...
        obj.compress// if true, compress package archive = Bool ...
        obj.exportDoc// if true, export generated docs = Bool ...
        obj.exportExe// if true, export program executables = Bool ...
        obj.exportCfg// if true, export program cfg scripts = Bool ...
        obj.exportSrc// if true, export all package sources = Bool ...
        obj.exportAll// if true, export all files in package = Bool ...
        obj.relScript// release files post-processing script = String ...
        obj.relScriptArgs// optional arguments to relScript = String ...
        obj.prefix// prefix for name of install of archive = String ...
        obj.label// uninterpreted label for this release = String ...
    var obj = new Release.Desc// A description of a release;
        obj.name// the name used to create the release = String ...
        obj.aname// the file name of the archive = String ...
        obj.label// the label given to the release = String ...
per-instance config parameters
    var params = new Release.Params// Instance config-params object;
        params.attrs// This instance's attributes = Release.Attrs undefined;
        params.excludeDirs// List of directory base names to exclude = String[] undefined;
        params.name// The name of the release = String undefined;
        params.otherFiles// Additional files to add to this release = String[] undefined;
DETAILS
Release instances define a container object that represents all files that are part of a release of a package. A release may, for example, include just the files necessary to support a particular ISA even though the package as a whole can support multiple ISAs.
Each Release instance is realized as a tar file containing the files that are part of a release of a package.
struct Release.Attrs
index URL

Optional Release attributes

XDCscript usage meta-domain
var obj = new Release.Attrs;
    obj.archiver = String ...
    // "tar" or "zip"; defaults to "tar"
    obj.compress = Bool ...
    // if true, compress package archive
    obj.exportDoc = Bool ...
    // if true, export generated docs
    obj.exportExe = Bool ...
    // if true, export program executables
    obj.exportCfg = Bool ...
    // if true, export program cfg scripts
    obj.exportSrc = Bool ...
    // if true, export all package sources
    obj.exportAll = Bool ...
    // if true, export all files in package
    obj.relScript = String ...
    // release files post-processing script
    obj.relScriptArgs = String ...
    // optional arguments to relScript
    obj.prefix = String ...
    // prefix for name of install of archive
    obj.label = String ...
    // uninterpreted label for this release
FIELDS
exportCfg — If this field is set to true, configuration scripts will be part of the release. If it is unspecified (or set to null), program configuration scripts will not be added to this release.
exportDoc — If this field is set to true, generated documentation will be part of the release.
exportSrc — If this field is set to true, sources used to produce object files will be part of the release. If it is unspecified (or set to null), no sources will be part of this release.
exportExe — If this field is set to true, executables will be part of the release. If it is unspecified (or set to null), executables will not be part of this release.
exportAll — If this field is set to true, all files in this package that are not known to be generated are in the release. If it is unspecified (or set to null), these files will not be added to this release.
Note that the set of files specified by exportAll is determined at the time the package's makefile is generated. If one of these files is subsequently removed before the release is built, the build of the release will fail; a file required by the release no longer exists. If the file is not really required for the release, you must trigger a rebuild for the generated makefiles; either touch package.bld or remove the generated makefile and re-build the release.
relScript — If this field is non-null, the string names a "release script" that is run to post-process the files that are part of a release. Like configuration scripts, the string names a script file that is searched for first in the in package's base directory, and then along the package path. See Manifest for more information about release scripts and what they can do.
relScriptArgs — If this field is non-null, the string is used to initialize the arguments[] array which is accessible to the release script named by relScript. The elements of the argumants[] array are formed from the white space separated elements of relScriptArgs. If this string is null or empty, the arguments[] array has length 0.
label — This string allows one to "tag" each release with a label that can be used by other tools to select appropriate releases. For example, the label might contain customer names.
This label is not interpreted by the XDC tools. It is simply recorded in the package's build model XML file (package/package.bld.xml) and retrieved via xdc.bld.BuildEnvironment.getReleaseDescs()
prefix — This string allows one to "export" each release to a location outside of the package. prefix is prepended to the name of the release name to form the name of the release archive.
For example, setting prefix to "../" implies that a release named "exports/foo" generates an archive file named foo.tar in the directory "../exports".
prefix must either begin with the '^' character or be a path that is relative to the package's "base" directory; i.e., the directory containing the package's specification file package.xdc.
If prefix begins with the '^' character, the remainder of the string is treated as though it is relative to the package's repository. In effect, the '^' character is replaced with an appropriate number of '../' sequences to sufficient to navigate to the package's repository.
If it is not specified (or set to null) the current setting of xdc.bld.PackageContents.releasePrefix is used.
compress — If this field is set to true, the release archive file will be compressed; otherwise, the archive will not be compressed. Archives are compressed via gzip; compressed archives are .tar.gz files.
archiver — This field names the archiver to use when creating a release. Two archivers are currently supported: "tar" and "zip". If the archiver is set to "zip" the Attrs.compress field is implicitly set to true.
DETAILS
Unspecified attributes are "inherited" from xdc.bld.PackageContents.Attrs; i.e., if one of fields in this structure is unspecified *and* this field's name matches a field name in xdc.bld.PackageContents.Attrs, then this field's value defaults to the value in specified by xdc.bld.PackageContents.attrs. This mechanism makes it possible to establish package-wide default values for any of the "inherited" attributes.
However, elements added to a release can "override" these attributes. For example, when an executable is added to a release and the executable's attributes specify 'exportSrc = false', the release will not contain the executable's sources (even if the release's attrs.exportSrc attribute is set to true).
SEE
attrs
struct Release.Desc
index URL

A description of a release

XDCscript usage meta-domain
var obj = new Release.Desc;
    obj.name = String ...
    // the name used to create the release
    obj.aname = String ...
    // the file name of the archive
    obj.label = String ...
    // the label given to the release
DETAILS
This structure provides information about a release that can be used to select from multiple releases provided by a package.
SEE
xdc.bld.BuildEnvironment.getReleaseDescs()
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Release.Params;
// Instance config-params object
    params.attrs = Release.Attrs undefined;
    // This instance's attributes
    params.excludeDirs = String[] undefined;
    // List of directory base names to exclude
    params.name = String undefined;
    // The name of the release
    params.otherFiles = String[] undefined;
    // Additional files to add to this release
config Release.attrs // instance
index URL

This instance's attributes

XDCscript usage meta-domain
var params = new Release.Params;
...
params.attrs = Release.Attrs undefined;
DETAILS
Unless explicitly specified, these attributes are "inherited" from the package's attributes (xdc.bld.PackageContents.attrs)
SEE
xdc.bld.PackageContents.attrs
config Release.excludeDirs // instance
index URL

List of directory base names to exclude

XDCscript usage meta-domain
var params = new Release.Params;
...
params.excludeDirs = String[] undefined;
DETAILS
This is an array of arbitrary directory "base names" that should be excluded in this release of the package. This list only excludes directories that would otherwise be added due to the recursive include of a parent directory.
For example, if a directory is specified in otherFiles all of its sub-directories will be added unless those sub-directories are named in the excludeDirs list.
This list is often used to exclude "hidden" directories added by change control systems and IDEs (.svn, .git, .settings, ...).
SEE
otherFiles, PackageContents.excludeDirs
config Release.name // instance
index URL

The name of the release

XDCscript usage meta-domain
var params = new Release.Params;
...
params.name = String undefined;
DETAILS
This name is the base name of the generated tar file containing all files that make up the release. For example, if the name of the release is "foo" then the file "foo.tar" (located in the same directory as package.bld) is a tar file containing the release files.
Note that each package has at least one release defined, the default release. The default release's name is the name of the package with '.'s replaced with '_'s. For example, the default release name for the package "foo.bar" is "foo_bar" and the generated tar file is named "foo_bar.tar".
config Release.otherFiles // instance
index URL

Additional files to add to this release

XDCscript usage meta-domain
var params = new Release.Params;
...
params.otherFiles = String[] undefined;
DETAILS
This is an array of arbitrary files that are to be included in this release of the package.
Only those files that are not already directly (or indirectly) named by adding programs or libraries to this release need to appear in this array.
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.Release

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Release.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== Release ========
    19     *  Model of an archive of all files that are part of a release.
    20     *
    21     *  Release instances define a container object that represents all files that
    22     *  are part of a release of a package.  A release may, for example, include
    23     *  just the files necessary to support a particular ISA even though the
    24     *  package as a whole can support multiple ISAs.
    25     *
    26     *  Each Release instance is realized as a tar file containing the files
    27     *  that are part of a release of a package.
    28     */
    29    metaonly module Release {
    30
    31        /*!
    32         *  ======== Attrs ========
    33         *  Optional Release attributes
    34         *
    35         *  Unspecified attributes are "inherited" from
    36         *  `{@link xdc.bld.PackageContents#Attrs}`; i.e., if one of fields in
    37         *  this structure is unspecified *and* this field's name matches a field
    38         *  name in `{@link xdc.bld.PackageContents#Attrs}`, then
    39         *  this field's value defaults to the value in specified by
    40         *  `{@link xdc.bld.PackageContents#attrs}`.  This mechanism makes it
    41         *  possible to establish package-wide default values for any of the
    42         *  "inherited" attributes.
    43         *
    44         *  However, elements added to a release can "override" these attributes.
    45         *  For example, when an executable is added to a release and the
    46         *  executable's attributes specify `'exportSrc = false'`, the release
    47         *  will not contain the executable's sources (even if the release's
    48         *  `{@link #attrs}.exportSrc` attribute is set to `true`).
    49         *
    50         *  @field(exportCfg)  If this field is set to `true`, configuration
    51         *          scripts will be part of the release.  If it is unspecified
    52         *          (or set to `null`), program configuration scripts will not
    53         *          be added to this release.
    54         *
    55         *  @field(exportDoc)  If this field is set to `true`,  generated
    56         *          documentation will be part of the release.
    57         *
    58         *  @field(exportSrc)  If this field is set to `true`, sources
    59         *          used to produce object files will be part of the release.
    60         *          If it is unspecified (or set to `null`), no sources will
    61         *          be part of this release.
    62         *
    63         *  @field(exportExe)  If this field is set to `true`, executables
    64         *          will be part of the release.  If it is unspecified (or set
    65         *          to `null`), executables will not be part of this release.
    66         *
    67         *  @field(exportAll)  If this field is set to `true`, all files
    68         *          in this package that are not known to be generated are in
    69         *          the release.  If it is unspecified (or set to `null`), these
    70         *          files will not be added to this release.
    71         *
    72         *          Note that the set of files specified by `exportAll` is
    73         *          determined at the time the package's makefile is generated.
    74         *          If one of these files is subsequently removed before the
    75         *          release is built, the build of the release will fail; a file
    76         *          required by the release no longer exists.  If the file is
    77         *          not really required for the release, you must trigger a
    78         *          rebuild for the generated makefiles; either touch
    79         *          `package.bld` or remove the generated makefile and re-build
    80         *          the release.
    81         *
    82         *  @field(relScript)  If this field is non-`null`, the string names a
    83         *          "release script" that is run to post-process the
    84         *          files that are part of a release.  Like
    85         *          configuration scripts, the string names a script
    86         *          file that is searched for first in the in package's
    87         *          base directory, and then along the package path.  See
    88         *          `{@link Manifest}` for more information about release scripts
    89         *          and what they can do.
    90         *
    91         *  @field(relScriptArgs)  If this field is non-`null`, the string is
    92         *          used to initialize the `arguments[]` array which is
    93         *          accessible to the release script named by `relScript`.  The
    94         *          elements of the `argumants[]` array are formed from the white
    95         *          space separated elements of `relScriptArgs`.  If this string
    96         *          is `null` or empty, the `arguments[]` array has length `0`.
    97         *
    98         *  @field(label)  This string allows one to "tag" each release with a
    99         *          label that can be used by other tools to select appropriate
   100         *          releases.  For example, the label might contain customer names.
   101         *
   102         *          This label is not interpreted by the XDC tools.  It is simply
   103         *          recorded in the package's build model XML file
   104         *          (`package/package.bld.xml`) and retrieved via
   105         *          `{@link xdc.bld.BuildEnvironment#getReleaseDescs()}`
   106         *
   107         *  @field(prefix)  This string allows one to "export" each release to a
   108         *          location outside of the package.  `prefix` is prepended
   109         *          to the name of the release name to form the name of the
   110         *          release archive.
   111         *
   112         *          For example, setting `prefix` to `"../"` implies that a
   113         *          release named `"exports/foo"` generates an archive file named
   114         *          `foo.tar` in the directory `"../exports"`.
   115         *
   116         *          `prefix` must either begin with the '^' character or
   117         *          be a path that is relative to the package's "base"
   118         *          directory; i.e., the directory containing the package's
   119         *          specification file `package.xdc`.
   120         *
   121         *          If `prefix` begins with the '^' character, the
   122         *          remainder of the string is treated as though it is relative
   123         *          to the package's repository.  In effect, the '^' character is
   124         *          replaced with an appropriate number of '../' sequences to
   125         *          sufficient to navigate to the package's repository.
   126         *
   127         *          If it is not specified (or set to `null`) the current setting
   128         *          of `{@link xdc.bld.PackageContents#releasePrefix}` is used.
   129         *
   130         *  @field(compress) If this field is set to `true`, the release
   131         *          archive file will be compressed; otherwise, the
   132         *          archive will not be compressed.  Archives are compressed
   133         *          via `gzip`; compressed archives are `.tar.gz` files.
   134         *
   135         *  @field(archiver) This field names the archiver to use when creating a
   136         *          release.  Two archivers are currently supported:
   137         *          "tar" and "zip".  If the archiver is set to "zip"
   138         *          the `{@link #Attrs.compress}` field is implicitly set to
   139         *          `true`.
   140         *
   141         *  @see #attrs
   142         */
   143        struct Attrs {
   144            String  archiver;       /*! "tar" or "zip"; defaults to "tar" */
   145            Bool    compress;       /*! if `true`, compress package archive */
   146            Bool    exportDoc;      /*! if `true`, export generated docs */
   147            Bool    exportExe;      /*! if `true`, export program executables */
   148            Bool    exportCfg;      /*! if `true`, export program cfg scripts */
   149            Bool    exportSrc;      /*! if `true`, export all package sources */
   150            Bool    exportAll;      /*! if `true`, export all files in package */
   151            String  relScript;      /*! release files post-processing script */
   152            String  relScriptArgs;  /*! optional arguments to relScript */
   153            String  prefix;         /*! prefix for name of install of archive */
   154            String  label;          /*! uninterpreted label for this release */
   155        };
   156
   157        /*!
   158         *  ======== Desc ========
   159         *  A description of a release
   160         *
   161         *  This structure provides information about a release that can be
   162         *  used to select from multiple releases provided by a package.
   163         *
   164         *  @see xdc.bld.BuildEnvironment#getReleaseDescs()
   165         */
   166        struct Desc {
   167            String name;    /*! the name used to create the release */
   168            String aname;   /*! the file name of the archive */
   169            String label;   /*! the label given to the release */
   170        };
   171
   172        /*!
   173         *  ======== DescArray ========
   174         *  An array of release descriptors
   175         */
   176        typedef Desc DescArray[];
   177
   178    instance:
   179        /*!
   180         *  ======== create ========
   181         *  @_nodoc
   182         *  Instances should only be created via PackageContents.addRelease()
   183         */
   184        create();
   185
   186        /*!
   187         *  ======== name ========
   188         *  The name of the release.
   189         *
   190         *  This name is the base name of the generated tar file containing all
   191         *  files that make up the release.  For example, if the name of the
   192         *  release is "foo" then the file "foo.tar" (located in the same
   193         *  directory as package.bld) is a tar file containing the release files.
   194         *
   195         *  Note that each package has at least one release defined, the default
   196         *  release.  The default release's name is the name of the package with
   197         *  '.'s replaced with '_'s.  For example, the default release name for
   198         *  the package "foo.bar" is "foo_bar" and the generated tar file is
   199         *  named "foo_bar.tar".
   200         */
   201        config String name;
   202
   203        /*!
   204         *  ======== attrs ========
   205         *  This instance's attributes.
   206         *
   207         *  Unless explicitly specified, these attributes are "inherited" from
   208         *  the package's attributes (`{@link xdc.bld.PackageContents#attrs}`)
   209         *
   210         *  @see xdc.bld.PackageContents#attrs
   211         */
   212        config Release.Attrs attrs;
   213
   214        /*!
   215         *  ======== otherFiles ========
   216         *  Additional files to add to this release.
   217         *
   218         *  This is an array of arbitrary files that are to be included
   219         *  in this release of the package.
   220         *
   221         *  Only those files that are not already directly (or indirectly) named
   222         *  by adding programs or libraries to this release need to appear in
   223         *  this array.
   224         */
   225        config String otherFiles[];
   226
   227        /*!
   228         *  ======== excludeDirs ========
   229         *  List of directory base names to exclude
   230         *
   231         *  This is an array of arbitrary directory "base names" that should
   232         *  be excluded in this release of the package.  This list only
   233         *  excludes directories that would otherwise be added due to the
   234         *  recursive include of a parent directory.
   235         *
   236         *  For example, if a directory is specified in `{@link #otherFiles}`
   237         *  all of its sub-directories will be added unless those sub-directories
   238         *  are named in the `excludeDirs` list.
   239         *
   240         *  This list is often used to exclude "hidden" directories added by
   241         *  change control systems and IDEs (`.svn`, `.git`, `.settings`, ...).
   242         *
   243         *  @see #otherFiles
   244         *  @see PackageContents#excludeDirs
   245         */
   246        config String excludeDirs[];
   247    }
   248    /*
   249     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   250     */
   251


module xdc.bld.Repository

metaonly module xdc.bld.Repository
index URL

Model of a package repository

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/bld/Repository.xdc
var Repository = xdc.useModule('xdc.bld.Repository');
module-wide constants & types
    var obj = new Repository.Attrs// Optional attributes for a repository;
        obj.releases// releases that this rep is a part of = Release.Instance[] ...
per-instance config parameters
    var params = new Repository.Params// Instance config-params object;
        params.attrs// The repository's attributes = Repository.Attrs undefined;
        params.name// The repository's directory name = String undefined;
per-instance functions
     inst.addPackages// Add specified package releases to this repository(String[] names) returns Void
struct Repository.Attrs
index URL

Optional attributes for a repository

XDCscript usage meta-domain
var obj = new Repository.Attrs;
    obj.releases = Release.Instance[] ...
    // releases that this rep is a part of
FIELDS
releases — This array contains releases that will contain the repository. Thus, a single repository can be part of any set of releases. Each repository is always added to the package's "default release" in addition to any releases specified in the releases array.
SEE
attrs
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Repository.Params;
// Instance config-params object
    params.attrs = Repository.Attrs undefined;
    // The repository's attributes
    params.name = String undefined;
    // The repository's directory name
config Repository.attrs // instance
index URL

The repository's attributes

XDCscript usage meta-domain
var params = new Repository.Params;
...
params.attrs = Repository.Attrs undefined;
config Repository.name // instance
index URL

The repository's directory name

XDCscript usage meta-domain
var params = new Repository.Params;
...
params.name = String undefined;
Repository.addPackages() // instance
index URL

Add specified package releases to this repository

XDCscript usage meta-domain
inst.addPackages(String[] names) returns Void
ARGUMENTS
names — An array of strings naming package releases to be added to the repository. Package releases are named as follows:
              <pkgName>:<releaseName>
where <pkgName> is the name of the package to add to the repository and <releaseName> is the name of one of that package's releases. A package release name may be either the archive file name (relative to the package's base directory) of the release archive or the name used create the release in package named <pkgName>.
For example, if the package ti.bios had a release named exports/ti_bios,src, the following statements would add this release to the repository named packages:
              var r = Pkg.addRepository("packages");
              r.addPackages(["ti.bios:exports/ti_bios,src"]);
Alternatively, one can specify the archive file name:
              var r = Pkg.addRepository("packages");
              r.addPackages(["ti.bios:exports/ti_bios,src.tar"]);
It is possible to get a list of release archive names from a package via the xdc.bld.BuildEnvironment.getReleaseDescs() method. For example, to get the physical archive name of the default release of the ti.bios package, the following loop can be added to a build script:
              var archiveName;
              var rels = Build.getReleaseDescs('ti.bios');
              for (var j = 0; j < rels.length; j++) {
                  if (rels[j].label == "default") {
                      archiveName = rels[j].aname;
                      break;
                  }
              }
              // archiveName is now set to the file name of the ti.bios
              // default release archive (or undefined)
SEE
xdc.bld.BuildEnvironment.getReleaseDescs()
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.Repository

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Repository.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== Repository ========
    19     *  Model of a package repository
    20     */
    21    metaonly module Repository {
    22
    23        /*!
    24         *  ======== Attrs ========
    25         *  Optional attributes for a repository
    26         *
    27         *  @field(releases)  This array contains releases that will contain the
    28         *          repository.  Thus, a single repository can be part of any set
    29         *          of releases.  Each repository is always added to the
    30         *          package's "default release" in addition to any releases
    31         *          specified in the releases array.
    32         *
    33         *  @see #attrs
    34         */
    35        struct Attrs {
    36            Release.Instance releases[]; /*! releases that this rep is a part of */
    37        };
    38
    39    instance:
    40        /*!
    41         *  ======== create ========
    42         *  @_nodoc
    43         *  Instances should only be created via PackageContents.addRepository()
    44         */
    45        create();
    46
    47        /*!
    48         *  ======== name ========
    49         *  The repository's directory name
    50         */
    51        config String name;
    52
    53        /*!
    54         *  ======== attrs ========
    55         *  The repository's attributes
    56         */
    57        config Attrs attrs;
    58
    59        /*!
    60         *  ======== addPackages ========
    61         *  Add specified package releases to this repository
    62         *
    63         *  @param(names) An array of strings naming package releases to be added
    64         *          to the repository.  Package releases are named as follows:
    65         *          @p(code)
    66         *              <pkgName>:<releaseName>
    67         *          @p
    68         *          where `<pkgName>` is the name of the package to add to the
    69         *          repository and `<releaseName>` is the name of one of that
    70         *          package's releases.  A package release name may be either the
    71         *          archive file name (relative to the package's base directory)
    72         *          of the release archive or the name used create the release in
    73         *          package named `<pkgName>`.
    74         *
    75         *          For example, if the package `ti.bios` had a release named
    76         *          `exports/ti_bios,src`, the following statements would add
    77         *          this release to the repository named `packages`:
    78         *          @p(code)
    79         *              var r = Pkg.addRepository("packages");
    80         *              r.addPackages(["ti.bios:exports/ti_bios,src"]);
    81         *          @p
    82         *
    83         *          Alternatively, one can specify the archive file name:
    84         *          @p(code)
    85         *              var r = Pkg.addRepository("packages");
    86         *              r.addPackages(["ti.bios:exports/ti_bios,src.tar"]);
    87         *          @p
    88         *
    89         *          It is possible to get a list of release archive names from a
    90         *          package via the
    91         *          `{@link xdc.bld.BuildEnvironment#getReleaseDescs()}`
    92         *          method.  For example, to get the physical archive name of the
    93         *          default release of the `ti.bios` package, the following loop
    94         *          can be added to a build script:
    95         *          @p(code)
    96         *              var archiveName;
    97         *              var rels = Build.getReleaseDescs('ti.bios');
    98         *              for (var j = 0; j < rels.length; j++) {
    99         *                  if (rels[j].label == "default") {
   100         *                      archiveName = rels[j].aname;
   101         *                      break;
   102         *                  }
   103         *              }
   104         *              // archiveName is now set to the file name of the ti.bios
   105         *              // default release archive (or undefined)
   106         *          @p
   107         *
   108         *  @see xdc.bld.BuildEnvironment#getReleaseDescs()
   109         */
   110        Void addPackages(String names[]);
   111    }
   112    /*
   113     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   114     */
   115


module xdc.bld.Script

metaonly module xdc.bld.Script
index URL

Model of a script

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/bld/Script.xdc
var Script = xdc.useModule('xdc.bld.Script');
module-wide constants & types
    var obj = new Script.Attrs// Optional attributes for a script instance;
        obj.hasMain// if true, this script defines main() = Bool ...
        obj.exportSrc// if false, don't add to default release = Bool ...
        obj.releases// releases this script is a part of = Release.Instance[] ...
per-instance config parameters
    var params = new Script.Params// Instance config-params object;
        params.attrs// Optional attributes for this test instance = Script.Attrs undefined;
        params.name// = String undefined;
per-instance functions
     inst.addTest// Add specified test to script(Test.Attrs testAttrs) returns Test.Instance
struct Script.Attrs
index URL

Optional attributes for a script instance

XDCscript usage meta-domain
var obj = new Script.Attrs;
    obj.hasMain = Bool ...
    // if true, this script defines main()
    obj.exportSrc = Bool ...
    // if false, don't add to default release
    obj.releases = Release.Instance[] ...
    // releases this script is a part of
FIELDS
releases — This array contains releases that will contain the script. Thus, a single script can be part of any set of releases. Each script is always added to the package's "default release" in addition to any releases specified in the releases array.
hasMain — This script defines a main() function. This function is called after the capsule is loaded. If the script does not define main(), it must contain statements that will run script as part of loading the script.
exportSrc — Scripts are added to the default release unless this flag is set to false.
SEE
attrs
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Script.Params;
// Instance config-params object
    params.attrs = Script.Attrs undefined;
    // Optional attributes for this test instance
    params.name = String undefined;
    //
config Script.attrs // instance
index URL

Optional attributes for this test instance

XDCscript usage meta-domain
var params = new Script.Params;
...
params.attrs = Script.Attrs undefined;
config Script.name // instance
index URL
XDCscript usage meta-domain
var params = new Script.Params;
...
params.name = String undefined;
Script.addTest() // instance
index URL

Add specified test to script

XDCscript usage meta-domain
inst.addTest(Test.Attrs testAttrs) returns Test.Instance
ARGUMENTS
testAttrs — optional test attrs object (xdc.bld.Test.Attrs)
DETAILS
A test encapsulates a script and a set of arguments passed to the script when it is run.
Tests are run by naming the goal "<test_name>.test" on the xdc command line; <test_name> is the test's name.
Multiple tests may have the same name; in this case, it is possible to run all tests using the single goal "<test_name>.test"
RETURNS
Returns the xdc.bld.Test instance object created.
THROWS
Error exceptions are thrown for fatal errors.
SEE
xdc.bld.Test, xdc.bld.Test.Attrs
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.Script

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Script.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== Script ========
    19     *  Model of a script
    20     */
    21    metaonly module Script {
    22        /*!
    23         *  ======== Attrs ========
    24         *  Optional attributes for a script instance.
    25         *
    26         *  @field(releases)  This array contains releases that will contain the
    27         *          script.  Thus, a single script can be part of any set of
    28         *          releases.  Each script is always added to the package's
    29         *          "default release" in addition to any releases specified in
    30         *          the releases array.
    31         *
    32         *  @field(hasMain)  This script defines a `main()` function.  This
    33         *          function is called after the capsule is loaded.  If the
    34         *          script does not define `main()`, it must contain statements
    35         *          that will run script as part of loading the script.
    36         *
    37         *  @field(exportSrc) Scripts are added to the default release
    38         *          unless this flag is set to `false`.
    39         *
    40         *  @see #attrs
    41         */
    42        struct Attrs {
    43            Bool hasMain;       /*! if true, this script defines main()  */
    44            Bool exportSrc;     /*! if false, don't add to default release */
    45            Release.Instance releases[];  /*! releases this script is a part of */
    46        };
    47
    48    instance:
    49        /*!
    50         *  ======== create ========
    51         *  @_nodoc
    52         *  Instances should only be created via PackageContents.addScript()
    53         */
    54        create();
    55
    56        config String name;
    57
    58        /*!
    59         *  ======== attrs ========
    60         *  Optional attributes for this test instance.
    61         *
    62         */
    63        config Script.Attrs attrs;
    64
    65        /*!
    66         *  ======== addTest ========
    67         *  Add specified test to script
    68         *
    69         *  A test encapsulates a script and a set of arguments passed to
    70         *  the script when it is run.
    71         *
    72         *  Tests are run by naming the goal "<test_name>.test" on the xdc
    73         *  command line; <test_name> is the test's name.
    74         *
    75         *  Multiple tests may have the same name; in this case, it is possible
    76         *  to run all tests using the single goal "<test_name>.test"
    77         *
    78         *  @param(testAttrs)   optional test attrs object
    79         *                      (`{@link xdc.bld.Test#Attrs}`)
    80         *
    81         *  @a(returns)         Returns the `{@link xdc.bld.Test}` instance object
    82         *                      created.
    83         *
    84         *  @a(throws)          `Error` exceptions are thrown for fatal errors.
    85         *
    86         *  @see xdc.bld.Test
    87         *  @see xdc.bld.Test#Attrs
    88         */
    89        Test.Instance addTest(Test.Attrs testAttrs = {});
    90    }
    91    /*
    92     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    93     */
    94


module xdc.bld.Test

metaonly module xdc.bld.Test
index URL

Model of a test

  • XDCscript usage
  • Individual elements
Each Test instance represents a pair consisting of an executable and command line arguments for that executable. Each pair uniquely identifies an output sequence (the result of running the executable with the specified arguments) that can be compared to a known valid result. Executables that have non-deterministic execution behavior (e.g., multi-threaded apps) must ensure that the output is independent of these variations. [ more ... ]
XDCscript usage meta-domain sourced in xdc/bld/Test.xdc
var Test = xdc.useModule('xdc.bld.Test');
module-wide constants & types
    var obj = new Test.Attrs// Optional attributes for a test instance;
        obj.args// arguments passed to the exe for this test = String ...
        obj.execCmd// exec command for this test = String ...
        obj.execArgs// arguments to the exec command itself = String ...
        obj.groupName// name of a group of related tests = String ...
        obj.refOutput// name of a reference output file = String ...
        obj.cmpCmd// command used to compare refOutput = String ...
        obj.refExitCode// expected exit code (default = 0) = Int ...
per-instance config parameters
    var params = new Test.Params// Instance config-params object;
        params.attrs// Optional attributes for this test instance = Test.Attrs undefined;
DETAILS
Each Test instance represents a pair consisting of an executable and command line arguments for that executable. Each pair uniquely identifies an output sequence (the result of running the executable with the specified arguments) that can be compared to a known valid result. Executables that have non-deterministic execution behavior (e.g., multi-threaded apps) must ensure that the output is independent of these variations.
Test instances are created via the Executable.addTest() function; this ensures that each test is associated with a containing executable.
Test instances do not have unique names. However, each test does have a "group" name which is optionally specified via Test.Attrs. If the "group" name is not specified, it defaults to the name of the containing executable. To run any group of tests (which may consist of one or more executable and command-line pairs) it is sufficient to run the following command:
      xdc <test_group_name>.test
where <test_group_name> is the name of the test group to run.
Each Executable instance (created via PackageContents.addExecutable()) implicitly adds a test whose "group" name is the name of the executable and whose arguments are empty (i.e., argc == 0). Thus, it is possible to run any executable that can be built using the following command:
      xdc <exe_name>.test
where <exe_name> is the name of the executable. Note that if you add a test to the executable (without specifying a unique groupName), the command above will run the executable more than once; it will run once for every test associated with the executable.
struct Test.Attrs
index URL

Optional attributes for a test instance

XDCscript usage meta-domain
var obj = new Test.Attrs;
    obj.args = String ...
    // arguments passed to the exe for this test
    obj.execCmd = String ...
    // exec command for this test
    obj.execArgs = String ...
    // arguments to the exec command itself
    obj.groupName = String ...
    // name of a group of related tests
    obj.refOutput = String ...
    // name of a reference output file
    obj.cmpCmd = String ...
    // command used to compare refOutput
    obj.refExitCode = Int ...
    // expected exit code (default = 0)
FIELDS
args — this is a string of arguments (which may contain embedded strings) that are passed to the executable being run.
execCmd — this string names the "loader" which is responsible for running the executable with the arguments specified by the args field. If this field is null or undefined, the command used to run the executable is determined by the executable's configuration script; see xdc.cfg.Program.execCmd.
execArgs — this is a string of arguments passed to the "loader" to control how this loader manages the execution of the executable being run.
groupName — the name of the group of tests of which this test is a member.
refOutput — the name of a "reference" text file that is used to validate the output generated by running the executable with the specified arguments. If the exit status of the executable is 0 and the output of the executable differs from the contents of refOutput, the test fails. If this comparison fails, the output of the executable is saved to a temporary file to allow analysis of the failure. The temporary file's name is: ".tmp,{exeName},{id}", where {exeName} is the name of the executable and {id} is a test id number.
If refOutput is not defined (or set to null) no comparison is made; only the exit status of the executable is used to determine the success or failure of the test.
refExitCode — the expected exit status of the executable.
If refExitCode is not defined (or set to null) an exit status of 0 is assumed.
DETAILS
Unspecified attributes are "inherited" from Executable.Attrs; i.e., if one of fields in this structure is unspecified *and* this field's name matches a field name in Executable.Attrs, then this field's value defaults to the value in specified by Executable.Attrs. This mechanism makes it possible to establish executable-specific default values for any of the "inherited" attributes.
SEE
attrs
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Test.Params;
// Instance config-params object
    params.attrs = Test.Attrs undefined;
    // Optional attributes for this test instance
config Test.attrs // instance
index URL

Optional attributes for this test instance

XDCscript usage meta-domain
var params = new Test.Params;
...
params.attrs = Test.Attrs undefined;
DETAILS
Default values for each of the fields in attrs:
groupName
name of the program "containing" this test
execCmd
the first non-null value in: prog.attrs.test.exec, xdc.cfg.Program.execCmd, prog.platform.getExecCmd().
execArgs
the first non-null value in: prog.attrs.test.execArgs, "".
args
the first non-null value in: prog.attrs.test.args, "".
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.Test

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Test.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== Test ========
    19     *  Model of a test
    20     *
    21     *  Each Test instance represents a pair consisting of an executable and
    22     *  command line arguments for that executable.  Each pair uniquely
    23     *  identifies an output sequence (the result of running the executable
    24     *  with the specified arguments) that can be compared to a known valid
    25     *  result.  Executables that have non-deterministic execution behavior
    26     *  (e.g., multi-threaded apps) must ensure that the output is independent
    27     *  of these variations.
    28     *
    29     *  Test instances are created via the `Executable.addTest()` function;
    30     *  this ensures that each test is associated with a containing executable.
    31     *
    32     *  Test instances do not have unique names. However, each test does have
    33     *  a "group" name which is optionally specified via `Test.Attrs`.  If the
    34     *  "group" name is not specified, it defaults to the name of the containing
    35     *  executable.  To run any group of tests (which may consist of one or more
    36     *  executable and command-line pairs) it is sufficient to run
    37     *  the following command:
    38     *  @p(code)
    39     *      xdc <test_group_name>.test
    40     *  @p
    41     *  where `<test_group_name>` is the name of the test group to run.
    42     *
    43     *  Each Executable instance (created via `PackageContents.addExecutable()`)
    44     *  implicitly adds a test whose "group" name is the name of the executable
    45     *  and whose arguments are empty (i.e., argc == 0).  Thus, it is possible
    46     *  to run any executable that can be built using the following command:
    47     *  @p(code)
    48     *      xdc <exe_name>.test
    49     *  @p
    50     *  where `<exe_name>` is the name of the executable.  Note that if you add a
    51     *  test to the executable (without specifying a unique `groupName`), the
    52     *  command above will run the executable more than once; it will run once
    53     *  for every test associated with the executable.
    54     */
    55    metaonly module Test {
    56        /*!
    57         *  ======== Attrs ========
    58         *  Optional attributes for a test instance.
    59         *
    60         *  Unspecified attributes are "inherited" from `{@link Executable#Attrs}`;
    61         *  i.e., if one of fields in this structure is unspecified *and* this
    62         *  field's name matches a field name in `Executable.Attrs`, then
    63         *  this field's value defaults to the value in specified by
    64         *  `Executable.Attrs`.  This mechanism makes it possible to establish
    65         *  executable-specific default values for any of the "inherited"
    66         *  attributes.
    67         *
    68         *  @field(args)        this is a string of arguments (which may contain
    69         *                      embedded strings) that are passed to the executable
    70         *                      being run.
    71         *  @field(execCmd)     this string names the "loader" which is responsible
    72         *                      for running the executable with the arguments
    73         *                      specified by the `args` field.  If this field is
    74         *                      `null` or `undefined`, the command used to run
    75         *                      the executable is determined by the executable's
    76         *                      configuration script; see
    77         *                      `{@link xdc.cfg.Program#execCmd}`.
    78         *  @field(execArgs)    this is a string of arguments passed to the
    79         *                      "loader" to control how this loader manages the
    80         *                      execution of the executable being run.
    81         *  @field(groupName)   the name of the group of tests of which this test
    82         *                      is a member.
    83         *  @field(refOutput)   the name of a "reference" text file that is used
    84         *                      to validate the output generated by running
    85         *                      the executable with the specified arguments.  If
    86         *                      the exit status of the executable is 0 and the
    87         *                      output of the executable differs from the
    88         *                      contents of `refOutput`, the test fails.  If this
    89         *                      comparison fails, the output of the executable is
    90         *                      saved to a temporary file to allow analysis of the
    91         *                      failure.  The temporary file's name is:
    92         *                      "`.tmp,{exeName},{id}`", where `{exeName}` is the
    93         *                      name of the executable and `{id}` is a test
    94         *                      id number.
    95         *
    96         *                      If `refOutput` is not defined (or set to `null`)
    97         *                      no comparison is made; only the exit status of the
    98         *                      executable is used to determine the success or
    99         *                      failure of the test.
   100         *  @field(refExitCode) the expected exit status of the executable.
   101         *
   102         *                      If `refExitCode` is not defined (or set to `null`)
   103         *                      an exit status of 0 is assumed.
   104         *
   105         *  @see #attrs
   106         */
   107        struct Attrs {
   108            String args;        /*! arguments passed to the exe for this test */
   109            String execCmd;     /*! exec command for this test */
   110            String execArgs;    /*! arguments to the exec command itself */
   111            String groupName;   /*! name of a group of related tests */
   112            String refOutput;   /*! name of a reference output file */
   113            String cmpCmd;      /*! command used to compare refOutput */
   114            int    refExitCode; /*! expected exit code (default = 0) */
   115        };
   116
   117    instance:
   118        /*!
   119         *  ======== create ========
   120         *  @_nodoc
   121         *  Instances should only be created via Executable.addTest()
   122         */
   123        create();
   124
   125        /*!
   126         *  ======== attrs ========
   127         *  Optional attributes for this test instance.
   128         *
   129         *  Default values for each of the fields in attrs:
   130         *  @p(dlist)
   131         *     - `groupName`
   132         *          name of the program "containing" this test
   133         *
   134         *     - `execCmd`
   135         *          the first non-`null` value in:
   136         *              `prog.attrs.test.exec,
   137         *              xdc.cfg.Program.execCmd`,
   138         *              `prog.platform.getExecCmd()`.
   139         *
   140         *     - execArgs
   141         *          the first non-`null` value in:
   142         *              `prog.attrs.test.execArgs`,
   143         *              "".
   144         *
   145         *     - args
   146         *          the first non-`null` value in:
   147         *              `prog.attrs.test.args`,
   148         *              "".
   149         */
   150        config Test.Attrs attrs;
   151    }
   152    /*
   153     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   154     */
   155


module xdc.bld.Utils

metaonly module xdc.bld.Utils
index URL

Utility functions to simplify creation of targets and platforms

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/bld/Utils.xdc
var Utils = xdc.useModule('xdc.bld.Utils');
module-wide functions
     Utils.display// Recursively print arbitrary object(String msg, Any obj) returns Void
     Utils.expandString// Expand references within a string to specified values(String cmd, Any values) returns String
Utils.display() // module-wide
index URL

Recursively print arbitrary object

XDCscript usage meta-domain
Utils.display(String msg, Any obj) returns Void
ARGUMENTS
msg — a string to print before printing the object
obj — an arbitrary object to display
Utils.expandString() // module-wide
index URL

Expand references within a string to specified values

XDCscript usage meta-domain
Utils.expandString(String cmd, Any values) returns String
ARGUMENTS
cmd — a string with embeded references to values defined in the values hashtable parameter
values — an arbitrary hash of name-value pairs; these values are used to substitute for references of the form $(name) that appear within cmd.
DETAILS
All references of the form "$(<name>)" within the command string, cmd are replaced with the string value having key <name> in the hashtable values.
If <name> appears in values and its value is null or undefined, then $(<name>) is replaced with the empty string. If <name> does not appear in values, then $(<name>) is not replaced.
RETURNS
string with references replaced as specified by the values hash.
THROWS
Error exceptions are thrown for fatal errors
generated on Thu, 08 Nov 2012 02:13:44 GMT


module xdc.bld.Utils

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Utils.xdc ========
    14     */
    15    package xdc.bld
    16
    17    /*!
    18     *  ======== Utils ========
    19     *  Utility functions to simplify creation of targets and platforms
    20     */
    21    metaonly module Utils
    22    {
    23        /*!
    24         *  ======== expandString ========
    25         *  Expand references within a string to specified values
    26         *
    27         *  All references of the form "`$(<name>)`" within the command string,
    28         *  `cmd` are replaced with the string value having key `<name>` in the
    29         *  hashtable `values`.
    30         *
    31         *  If `<name>` appears in values and its value is `null` or `undefined`,
    32         *  then `$(<name>)` is replaced with the empty string.  If `<name>` does
    33         *  not appear in `values`, then `$(<name>)` is not replaced.
    34         *
    35         *  @param(cmd)     a string with embeded references to values defined in
    36         *                  the values hashtable parameter
    37         *  @param(values)  an arbitrary hash of name-value pairs; these values
    38         *                  are used to substitute for references of the form
    39         *                  `$(name)` that appear within `cmd`.
    40         *
    41         *  @a(returns)     string with references replaced as specified by the
    42         *                  `values` hash.
    43         *
    44         *  @a(throws)      `Error` exceptions are thrown for fatal errors
    45         */
    46        String expandString(String cmd, Any values);
    47
    48        /*!
    49         *  ======== expandDbgName ========
    50         *  Generate name of a debug support output file
    51         *
    52         *  @param(cfgName) the name of the generated configuration script
    53         *                  without the ".cfg" extension
    54         *  @param(exeName) the name of the output executable
    55         *  @param(pattern) file name pattern
    56         *
    57         *  Both cfgName and exeName are relative to the directory containing
    58         *  package.bld.
    59         *
    60         *  @_nodoc this function is an internal method shared between xdc.bld
    61         *  and xdc.cfg and has little value outside this context.
    62         */
    63        function expandDbgName(cfgName, exeName, pattern);
    64
    65        /*!
    66         *  ======== parsePlatName ========
    67         *  Parse platform instance name into platform package name and short
    68         *  instance name
    69         *
    70         *  @param(platInstName)     the name of a platform instance
    71         *
    72         *  @a(returns)
    73         *  returns object with the following fields:
    74         *  @p(dlist)
    75         *      - `platPkgName`
    76         *              name of the platform package name
    77         *      - `instName`
    78         *              name of the platform instance
    79         *      - `instMod`
    80         *              module object specifying platform instances (if it exists)
    81         * @p
    82         *
    83         *  @a(throws)      `Error` exceptions are thrown for fatal errors
    84
    85         *  @_nodoc this function is an internal method shared between xdc.bld
    86         *  and xdc.cfg and has little value outside this context.
    87         */
    88        function parsePlatName(platInstName);
    89
    90        /*!
    91         *  ======== display ========
    92         *  Recursively print arbitrary object
    93         *
    94         *  @param(msg)  a string to print before printing the object
    95         *  @param(obj)  an arbitrary object to display
    96         */
    97        Void display(String msg, Any obj);
    98    }
    99    /*
   100     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   101     */
   102


package xdc.cfg
index URL

Configuration Object Model elements

  • DETAILS
  • COMPATIBILITY CHECKS
  • CONTROLLING COMPATIBILITY CHECKS
  • THROWS
  • SEE
This package contains the modules necessary to populate the XDC Configuration Object Model. In addition, this package supplies a C/C++ header, global.h, that facilitates the creation of portable sources that need to reference global values defined as part of a configuration (xdc.cfg.Program.global). [ more ... ]
XDCspec declarations sourced in xdc/cfg/package.xdc
requires xdc.services.global;
package xdc.cfg [1, 0, 2, 0] {
    module Program;
    // The Program object for the configuration object model
    module SourceDir;
    // Manage config generated source directories
}
DETAILS
This package contains the modules necessary to populate the XDC Configuration Object Model. In addition, this package supplies a C/C++ header, global.h, that facilitates the creation of portable sources that need to reference global values defined as part of a configuration (xdc.cfg.Program.global).
COMPATIBILITY CHECKS
During configuration certain compatibility checks are made. These checks include:
  1. target compatibility among all packages that are included in the configuration
  2. package compatibility among all packages included in the configuration
  3. package compatibility with respect to the set of packages used to build the packages that are part of the configuration set.
By default, if any of the checks above fail, the configuration step fails. It is possible, however, to selectively exclude particular packages from these checks and/or treat check failures as non-fatal warnings.
There are two "environment" variables that control these checks:
xdc.cfg.check.exclude
a regular expression that is used to select packages that should be excluded from the set of packages checked during configuration.
xdc.cfg.check.fatal
if set to "false", force any incompatibilities detected to be treated as warnings only; otherwise incompatibilities are fatal
Of course, it is also possible to use both options together to achieve a desired effect.
To define these environment variables one must pass the appropriate -D options to the XDCscript shell (xs) which is used to run the configuro command line configuration tool. If, on the other hand, you are using xdc to run the configuration step you can set these variables by setting the xsopts attribute of an xdc.bld.Executable within a build script.
CONTROLLING COMPATIBILITY CHECKS
To treat compatibility check failures as warnings for the executable app:
    Pkg.addExecutable("app", targ, targ.platform, {
         xsopts: "-Dxdc.cfg.check.fatal=false"
    });
To ignore any incompatibilities triggered by targets used by the ti.targets.rts* packages:
    Pkg.addExecutable("app", targ, targ.platform, {
        xsopts: "-Dxdc.cfg.check.exclude='ti.targets.rts.*'"
    });
In this case, the xdc.cfg.check.exclude option is regular expression used to exclude any package whose names matches the regular expression from the checks.
Finally, if you don't want to set xsopts on each executable, it is possible to set it for all executables within a package by setting the xsopts attribute of the xdc.bld.PackageContents (a.k.a. Pkg) object. For example, to turn all compatibility checks into warnings for all executables in a package, add the following line to the package's build script:
    Pkg.attrs.xsopts = "-Dxdc.cfg.check.fatal=false";
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.cfg.CONFIG_ERROR
This is a general error reported when the program configuration fails. This error is caused by one or more configuration errors. The list of those specific errors precedes this error.
xdc.cfg.INCOMPATIBLE_TARGET_VERSION
This is an error or a warning usually reported when the version of the compiler used in the current build is not compatible with the version of the compiler used to build some of the loaded packages. The compiler version might be encoded in the compatibility keys displayed in the error message, but it is not required. Please check the documentation of the current target's package for the content of the compatibility keys.
SEE
xdc.cfg.Program.global, xdc.tools.configuro.Main
generated on Thu, 08 Nov 2012 02:13:40 GMT


package xdc.cfg

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.services.global;
    13
    14    /*!
    15     *  ======== xdc.cfg ========
    16     *  Configuration Object Model elements
    17     *
    18     *  This package contains the modules necessary to populate the XDC
    19     *  Configuration Object Model.  In addition, this package supplies a
    20     *  C/C++ header, `global.h`, that facilitates the creation of portable
    21     *  sources that need to reference global values defined as part of
    22     *  a configuration (`{@link xdc.cfg.Program#global}`).
    23     *
    24     *  @a(Compatibility Checks)
    25     *  During configuration certain compatibility checks are made.  These checks
    26     *  include:
    27     *  @p(nlist)
    28     *    -   target compatibility among all packages that are included in the
    29     *        configuration
    30     *    -   package compatibility among all packages included in the
    31     *        configuration
    32     *    -   package compatibility with respect to the set of packages used to
    33     *        build the packages that are part of the configuration set.
    34     *  @p
    35     *  By default, if any of the checks above fail, the configuration step fails.
    36     *  It is possible, however, to selectively exclude particular
    37     *  packages from these checks and/or treat check failures as non-fatal
    38     *  warnings.
    39     *
    40     *  There are two "environment" variables that control these checks:
    41     *  @p(dlist)
    42     *    - `xdc.cfg.check.exclude`
    43     *        a regular expression that is used to select packages that should
    44     *        be excluded from the set of packages checked during configuration.
    45     *
    46     *    - `xdc.cfg.check.fatal`
    47     *        if set to "`false`", force any incompatibilities detected to be
    48     *        treated as warnings only; otherwise incompatibilities are fatal
    49     *  @p
    50     *  Of course, it is also possible to use both options together to achieve
    51     *  a desired effect.
    52     *
    53     *  To define these environment variables one must pass the appropriate `-D`
    54     *  options to the XDCscript shell (`xs`) which is used to run the
    55     *  `{@link xdc.tools.configuro configuro}` command line configuration tool.
    56     *  If, on the other hand, you are using `xdc` to run the configuration step
    57     *  you can set these variables by setting the
    58     *  `{@link xdc.bld.Executable#Attrs xsopts}` attribute of an
    59     *  `{@link xdc.bld.Executable}` within a build script.
    60     *
    61     *  @a(Controlling Compatibility Checks)
    62     *  To treat compatibility check failures as warnings for the executable
    63     *  `app`:
    64     *  @p(code)
    65     *    Pkg.addExecutable("app", targ, targ.platform, {
    66     *         xsopts: "-Dxdc.cfg.check.fatal=false"
    67     *    });
    68     *  @p
    69     *
    70     *  To ignore any incompatibilities triggered by targets used by the
    71     *  `ti.targets.rts*` packages:
    72     *  @p(code)
    73     *    Pkg.addExecutable("app", targ, targ.platform, {
    74     *        xsopts: "-Dxdc.cfg.check.exclude='ti.targets.rts.*'"
    75     *    });
    76     *  @p
    77     *  In this case, the `xdc.cfg.check.exclude` option is regular expression used
    78     *  to exclude any package whose names matches the regular expression from the
    79     *  checks.
    80     *
    81     *  Finally, if you don't want to set `xsopts` on each executable, it is
    82     *  possible to set it for all executables within a package by setting the
    83     *  `xsopts` attribute of the `{@link xdc.bld.PackageContents}` (a.k.a. `Pkg`)
    84     *  object.  For example, to turn all compatibility checks into warnings for
    85     *  all executables in a package, add the following line to the package's
    86     *  build script:
    87     *  @p(code)
    88     *    Pkg.attrs.xsopts = "-Dxdc.cfg.check.fatal=false";
    89     *  @p
    90     *
    91     *  @a(Throws)
    92     *  `XDCException` exceptions are thrown for fatal errors. The following error
    93     *  codes are reported in the exception message:
    94     *  @p(dlist)
    95     *      -  `xdc.cfg.CONFIG_ERROR`
    96     *           This is a general error reported when the program configuration
    97     *           fails. This error is caused by one or more configuration errors.
    98     *           The list of those specific errors precedes this error.
    99     *      -  `xdc.cfg.INCOMPATIBLE_TARGET_VERSION`
   100     *           This is an error or a warning usually reported when the version of
   101     *           the compiler used in the current build is not compatible with the
   102     *           version of the compiler used to build some of the loaded packages.
   103     *           The compiler version might be encoded in the compatibility keys
   104     *           displayed in the error message, but it is not required. Please
   105     *           check the documentation of the current target's package for the
   106     *           content of the compatibility keys.
   107     *  @p
   108     *
   109     *  @see xdc.cfg.Program#global
   110     *  @see xdc.tools.configuro.Main
   111     */
   112    package xdc.cfg [1,0,2,0] {
   113        module Program, Main;
   114        module SourceDir;
   115    }
   116    /*
   117     *  @(#) xdc.cfg; 1, 0, 2, 0,395; 11-3-2012 15:19:02; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   118     */
   119


module xdc.cfg.Program

metaonly module xdc.cfg.Program
index URL

The Program object for the configuration object model

  • XDCscript usage
  • Individual elements
This module defines the "root" of the configuration object model; all "top-level" configuration settings for the executable are provided by this object. Program configuration scripts reference this module via the global variable Program; i.e., Program is implicitly initialized as follows: [ more ... ]
XDCscript usage meta-domain sourced in xdc/cfg/Program.xdc
var Program = xdc.useModule('xdc.cfg.Program');
module-wide constants & types
    var obj = new Program.GenerationOptions// Options that control the files generated as part of program configuration;
        obj.debuggerFiles// if true, generate debugger "project" files = Bool ...
    var obj = new Program.SectionSpec// Map that instructs the linker where to place output sections;
        obj.runSegment// segment where section contents are run = String ...
        obj.loadSegment// segment where section contents are loaded = String ...
        obj.runAddress// start address of section when run = UInt ...
        obj.loadAddress// start address of section when loaded = UInt ...
        obj.runAlign// alignment of section within runSegment = UInt ...
        obj.loadAlign// alignment of section within loadSegment = UInt ...
        obj.type// target-specific flags = String ...
        obj.fill// fill value = UInt ...
module-wide config parameters
     Program.argSize// The size allocated for command line args to the executable = UInt 0x200;
     Program.build// This program's build attributes = Any undefined;
     Program.buildPackage// The name of the executable's package = String undefined;
     Program.codeModel// The memory model for code = String null;
     Program.cpu// The execution context "seen" by the executable = IExeContext.Instance undefined;
     Program.dataModel// The memory model for data = String null;
     Program.endian// The endianess of the executable = String null;
     Program.execCmd// The command used to run this executable = String undefined;
     Program.gen// Generation options for this executable = Program.GenerationOptions undefined;
     Program.global// Global variable declarations = Any[string] undefined;
     Program.heap// The size of the executable's initial heap = UInt 0x1000;
     Program.linkTemplate// The template for the Program's linker command file = String null;
     Program.main// The main entry point for the program = Int(*)(Int,Char*[]) undefined;
     Program.name// The name of the executable file = String undefined;
     Program.platform// The executable's platform instance object = IPlatform.Instance undefined;
     Program.platformName// The name of the executable's platform = String undefined;
     Program.sectMap// A section name to SectionSpec mapping = Any[string] undefined;
     Program.sectionsExclude// Sections to exclude from linker command file generation = String null;
     Program.sectionsTemplate// Replace the sections portion of the generated linker command file = String null;
     Program.stack// The size of the executable's initial stack = UInt 0x1000;
     Program.sysStack// The size of the executable's initial system stack = UInt 0x1000;
module-wide functions
     Program.exportModule// Force all the symbols of a module to be part of a configuration(String modName) returns Void
     Program.getSectMap// Return the complete mapping of section names to SectionSpec entries() returns Any
DETAILS
This module defines the "root" of the configuration object model; all "top-level" configuration settings for the executable are provided by this object. Program configuration scripts reference this module via the global variable Program; i.e., Program is implicitly initialized as follows:
      var Program = xdc.useModule('xdc.cfg.Program');
After a configuration script completes successfully, the following files are generated:
  1. package/cfg/<exe_name>.c
  2. package/cfg/<exe_name>.xdl
where <exe_name> is the name of the executable with the final '.' character replaced with an '_'.
The generated C file contains code and data from each module used by the program and must be compiled and linked with the other sources to produce the final executable. The generated linker command file must also be added during this final link step.
The linker command file is produced by expanding a template provided by the platform specifed during configuration and contains hardware and compiler specific directives required by the target modules that are part of the program's configuration. This template expands other templates specified by each imported package's getSects method, for example. This allows each package participating in the configuration executable to automatically contribute a portion of the executable's linker command file.
You can modify or augment the contents of this file via sectionsExclude and sectionsTemplate. It is even possible to completely replace the template used to generate this file via linkTemplate. These configuration options provide the user complete control of the linker command file
struct Program.GenerationOptions
index URL

Options that control the files generated as part of program configuration

XDCscript usage meta-domain
var obj = new Program.GenerationOptions;
    obj.debuggerFiles = Bool ...
    // if true, generate debugger "project" files
FIELDS
debuggerFiles — If set to true in a configuration script, debugger project files will be generated as part of the configuration step. If set to false, these files will not be generated.
If it is not set (or set to undefined) and the environment variable environment["xdc.cfg.gen.debuggerFiles"] is non-null, then the default value of this parameter is taken to be the value of the following expression:
            environment["xdc.cfg.gen.debuggerFiles"] == "true"
This makes it is possible to enable the generation of debugger project files from build scripts by passing the option -Dxdc.cfg.gen.debuggerFiles=true to the configuration tool (see xdc.bld.Executable.Attrs.xsopts or xdc.bld.PackageContents.Attrs.xsopts).
Finally, if debuggerFiles is not set (or set to undefined) and the environment variable above is not defined, the generation of debugger project files occurs only if xdc.cfg.Program.build.profile contains the string "debug". So, unless otherwise specified, debug profiles result in debugger project files being generated.
struct Program.SectionSpec
index URL

Map that instructs the linker where to place output sections

XDCscript usage meta-domain
var obj = new Program.SectionSpec;
    obj.runSegment = String ...
    // segment where section contents are run
    obj.loadSegment = String ...
    // segment where section contents are loaded
    obj.runAddress = UInt ...
    // start address of section when run
    obj.loadAddress = UInt ...
    // start address of section when loaded
    obj.runAlign = UInt ...
    // alignment of section within runSegment
    obj.loadAlign = UInt ...
    // alignment of section within loadSegment
    obj.type = String ...
    // target-specific flags
    obj.fill = UInt ...
    // fill value
FIELDS
runSegment — Defines the memory segment where the section is to be run.
loadSegment — Defines the memory segment where the section is to be loaded. If 'runSegment' or 'loadSegment' is defined, but not both, the linker is instructed to use the defined field as the load and run allocation for the section.
runAddress — Defines the memory address where the section is to be run. It is an error if both 'runSegment' and 'runAddress' are specified.
loadAddress — Defines the memory address where the section is to be loaded. It is an error if both 'loadSegment' and 'loadAddress' are specified. If 'runAddress' or 'loadAddress' is defined, but not both, the linker is instructed to use the defined field as the load and run address for the section.
runAlign — If runSegment is specified, runAlign determines the alignment. It is an error if both 'runAlign' and 'runAddress' are specified.
loadAlign — If runSegment is specified, runAlign determins the alignment. It is an error if both 'loadAlign' and 'loadAddress' are specified.
type — Defines flags for special section types (COPY, DSECT, NOLOAD).
fill — Defines the value to initialize an uninitialized section.
DETAILS
This structure contains some fields that are specific to TI targets. On non-TI targets, such fields are ignored.
config Program.argSize // module-wide
index URL

The size allocated for command line args to the executable

XDCscript usage meta-domain
Program.argSize = UInt 0x200;
DETAILS
On platforms that require static allocation of space to hold command line arguments, this parameter specifies its maximum size (in units of chars).
Command line arguments are passed to C's main function when it's declared via the prototype: int main(int argc, char *argv[]). the argv array points to an array of strings allocated from the memory block whose size is controlled by argSize.
Setting argSize to 0 means that no argv array will be allocated and the application main() function should be declared as int main(void).
config Program.build // module-wide
index URL

This program's build attributes

XDCscript usage meta-domain
Program.build = Any undefined;
DETAILS
This parameter allows arbitrary build attributes to be carried forward from the Build Object Model (BOM) into the configuration model for program configuration scripts to read.
Conceptually, this config parameter should be declared as follows:
      struct BuildAttrs inherits xdc.bld.Executable.Attrs {
          config xdc.bld.ITarget.Module target;
      };
All parameters of the target associated with the executable being configured are available through 'Program.build.target'. Any config parameter set in the BOM's xdc.bld.Executable.attrs is also available through build. For example, the name of the target is Program.build.target.name and the name of the executable's configuration script is Program.build.cfgScript.
READONLY
This parameter is set by the generated program configuration script and must not be modified.
config Program.buildPackage // module-wide
index URL

The name of the executable's package

XDCscript usage meta-domain
Program.buildPackage = String undefined;
DETAILS
This is the full package name (relative to the package's repository) of the package that contains the executable being configured.
READONLY
This parameter is set by the generated program configuration script and must not be modified.
config Program.codeModel // module-wide
index URL

The memory model for code

XDCscript usage meta-domain
Program.codeModel = String null;
DETAILS
This parameter is an alias for build.target.model.codeModel and is set to one of the following target-specific values: "near", "far", "large", or null.
READONLY
This parameter is set by the generated program configuration script and must not be modified.
config Program.cpu // module-wide
index URL

The execution context "seen" by the executable

XDCscript usage meta-domain
Program.cpu = IExeContext.Instance undefined;
DETAILS
Since the execution context is largely determined by the CPU that runs the executable, this configuration parameter allows scripts with access to the program object to conditionally configure based on CPU characteristics (e.g., ISA or revision of a chip).
READONLY
This parameter is set by the platform's implementation of xdc.IPackage (i.e., package.xs).
config Program.dataModel // module-wide
index URL

The memory model for data

XDCscript usage meta-domain
Program.dataModel = String null;
DETAILS
This parameter is an alias for build.target.model.dataModel and is set to one of the following target-specific values: "near", "far", "large", or null.
READONLY
This parameter is set by the generated program configuration script and must not be modified.
config Program.endian // module-wide
index URL

The endianess of the executable

XDCscript usage meta-domain
Program.endian = String null;
DETAILS
This parameter is an alias for build.target.model.dataModel and is set to one of the following values: "big", "little", or null.
READONLY
This parameter is set by the generated program configuration script and must not be modified.
config Program.execCmd // module-wide
index URL

The command used to run this executable

XDCscript usage meta-domain
Program.execCmd = String undefined;
DETAILS
This string is used to create a command that runs the executable from the command line. If it is not set by the configuration script, it is set by the program's platform package (during program configuration).
This command is run as follows:
      execCmd <prog> <args>
where, <prog> is the name of the executable and <args> are the arguments specified in the test (if any).
NOTE
This parameter is ignored if the exec command is specified as part of the test; see xdc.bld.Test.Attrs.
config Program.gen // module-wide
index URL

Generation options for this executable

XDCscript usage meta-domain
Program.gen = Program.GenerationOptions undefined;
DETAILS
This configuration parameter allows the program configuration script to control (to some extent) what files are generated as part of the configuration process.
config Program.global // module-wide
index URL

Global variable declarations

XDCscript usage meta-domain
Program.global = Any[string] undefined;
DETAILS
Assignments to this hash table become global symbols that can be used to directly reference objects. These objects are declared in a generated header that is indirectly included by the header xdc/cfg/global.h.
Configuration scripts define symbols by adding new properties to global.
      Program.global.myInstance = Mod.create();
      Program.global.myString = "hello world";
Programs can reference the symbols defined in global by including the C/C++ header xdc/cfg/global.h as follows:
      #include <pkg/Mod.h>
      #include <xdc/cfg/global.h>
         :
      Mod_fxn(myInstance, ...);
      printf("greetings: %s\n", myString);
To compile sources that include xdc/cfg/global.h, one symbol must be defined before including this header:
xdc_cfg__header__
the package qualified name of the executable-specific C/C++ header generated by the program configuration tool; e.g., local/examples/package/cfg/mycfg_x62.h.
For example, to compile sources that reference the values declared in global for a TI C6x target with a generated configuration header named package/cfg/mycfg_x62.h in a package named local.examples the following command line is sufficient:
      cl6x -Dxdc_cfg__header__=local/examples/package/cfg/mycfg_x62.h ...
The xdc_cfg__header__ symbol is automatically defined when you use the the XDC Build Engine (xdc.bld) to create executables; see xdc.bld.Executable.addObjects
SEE
xdc.bld.Executable.addObjects
config Program.heap // module-wide
index URL

The size of the executable's initial heap

XDCscript usage meta-domain
Program.heap = UInt 0x1000;
DETAILS
On platforms that enable control of the size of the heap managed by the run-time support function malloc(), this parameter specifies its initial size (in units of chars).
config Program.linkTemplate // module-wide
index URL

The template for the Program's linker command file

XDCscript usage meta-domain
Program.linkTemplate = String null;
DETAILS
A template is used to create the linker command file for each program. It can be optionally specified by setting this configuration parameter in the program's configuration script. If linkTemplate it is not set or set to null, the template is obtained from the platform associated with this program (i.e., the platform named by the platform config in this module). See IPlatform.getLinkTemplate.
The linkTemplate string names a package path relative path; e.g., if the linker template you want to specify is "templates/big_n_hairy.xdt" in the package myCompany.myPackage, linkTemplate should be set to:
      "myCompany/myPackage/templates/big_n_hairy.xdt"
If linkTemplate begins with the string "./", the file is NOT searched for along the package path; instead the file name is taken to specify a file relative to the current working directory.
In any case, if linkTemplate is non-null, the file must exist; otherwise, the configuration step will fail.
config Program.main // module-wide
index URL

The main entry point for the program

XDCscript usage meta-domain
Program.main = Int(*)(Int,Char*[]) undefined;
DETAILS
This parameter is optionally set by the user's program configuration script. If it is not set, then a "legacy" main() function is assumed to be linked into the program; otherwise, the value of main is used as the "main" entry point to the program.
config Program.name // module-wide
index URL

The name of the executable file

XDCscript usage meta-domain
Program.name = String undefined;
DETAILS
This is the full file name (relative to the package's base) of the executable that results from this configuration.
READONLY
This parameter is set by the generated program configuration script and must not be modified.
config Program.platform // module-wide
index URL

The executable's platform instance object

XDCscript usage meta-domain
Program.platform = IPlatform.Instance undefined;
DETAILS
The platform instance that provided an execution context for the executable being configured.
READONLY
This parameter is set by the generated program configuration script and must not be modified.
config Program.platformName // module-wide
index URL

The name of the executable's platform

XDCscript usage meta-domain
Program.platformName = String undefined;
DETAILS
This field is the name of the platform instance used to create the executable; e.g., "ti.platforms.sim55xx", or "ti.platforms.sim6xxx:TMS320C6416".
Platform instance names have the form:
      <platform_pkg>:<instance_id>
where <platform_pkg> is the name of the platform package responsible for creating the platform instance and the optional ":<instance_id>" is a suffix that uniquely identifies the creation parameters for this instance.
The creation parameters are the values specified by the map xdc.bld.BuildEnvironment.platformTable; if this map does not contain the platform instance name, the instance is created with default values that are specific to the platform.
READONLY
This parameter is set by the generated program configuration script and must not be modified.
config Program.sectMap // module-wide
index URL

A section name to SectionSpec mapping

XDCscript usage meta-domain
Program.sectMap = Any[string] undefined;
DETAILS
This is a program specific mapping of output section names to SectionSpec objects. The map supports mapping of section names to memory names; see xdc.platform.IPlatform.sectMap.
This parameter enables program configurations to place named sections in platform specific memory regions. During generation of the linker command file, sections are mapped to named memories by first consulting this table; if the table does not contain a mapping, the target classifies each section as either "code", "data" or "stack" xdc.bld.ITarget.sectMap and the platform defines a memory region for each of these section types (xdc.platform.IPlatform.codeMemory/ xdc.platform.IPlatform.dataMemory). If this does not produce a result, an error is generated. It is important to note that sectMap does not contain the complete section allocation for the program. It only contains the entries explicitly added to sectMap. To get the complete section allocation, a user should call getSectMap.
Suppose for example that the platform defines a memory segment named "DDR2". The following configuration statement places everything from the ".text" section into the "DDR2" segment.
      Program.sectMap[".text"] = new Program.SectionSpec();
      Program.sectMap[".text"].loadSegment = "DDR2";
NOTE
If BIOS 5 configuration script (Tconf script) is executed, the section allocations configured in the Tconf script take precedence over any settings for the same sections in this parameter.
SEE
SectionSpec, xdc.platform.IPlatform.sectMap, xdc.bld.ITarget.sectMap
config Program.sectionsExclude // module-wide
index URL

Sections to exclude from linker command file generation

XDCscript usage meta-domain
Program.sectionsExclude = String null;
DETAILS
The sectionsExclude string is a JavaScript regular expression that is used to identify names of sections that should NOT be be handled by the normal linker command file generation process.
Sections whose name matches sectionsExclude must be handled using a custom linker command file or by specifying a custom template (see sectionsTemplate or linkTemplate).
EXAMPLES
To completely override the placement of all output sections you can define sectionsExclude to match any string.
      // Note: the '.' below represents _any_ character, not just "."
      Program.sectionsExclude = ".*";
To override output sections that begin with '.' you must specify the literal character '.' and use the '^' character to match the beginning of the string.
      // the sequence '^\.' matches just "." at the start of the name
      Program.sectionsExclude = "^\.";
To override a specific sections you should be careful to supply a regular expression that matches the entire section name. You can use '$' to match the end of the name.
      // match only ".const" or ".text"
      Program.sectionsExclude = "^\.const$|^\.text$";
config Program.sectionsTemplate // module-wide
index URL

Replace the sections portion of the generated linker command file

XDCscript usage meta-domain
Program.sectionsTemplate = String null;
DETAILS
The sectionsTemplate string names a template that is used to replace the "SECTIONS" content to the generated linker command file. This is useful especially when excluding specific sections via sectionsExclude or when taking full control of the linker command file via linkTemplate is unnecessary. The original "SECTIONS" content is computed and passed as an argument to this template, which makes it relatively simple to perform small changes to the "SECTIONS" content without having to explicitly handle every section required by the compiler toolchain.
The sectionsTemplate string names a package path relative path; e.g., if the linker template you want to specify is "templates/mySections.xdt" in the package myCompany.myPackage, sectionsTemplate should be set to:
      "myCompany/myPackage/templates/mySections.xdt"
If sectionsTemplate begins with the string "./", the file is NOT searched for along the package path; instead the file name is taken to specify a file relative to the current working directory.
In any case, if sectionsTemplate is non-null, the file must exist; otherwise, the configuration step will fail.
During expansion of this template, there are three "parameters" that can be referenced to generate new content.
this
reference to the Program object
$args[0]
is the complete section map derived from Program.sectMap; some special sections relevant to XDCtools are added to the map defined by Program.sectMap.
$args[1]
is a string that contains the content that would have been placed in the SECTIONS portion of the generated linker command file. This allows templates to easily modify this content or simply add statements before or after it.
EXAMPLE
The following template, specific to TI compiler tools, adds start and size symbols for the .stack section and ensures that the stack is the first section to be allocated in its designated memory segment.
    %// first output allocation for the .stack section
    %var sectMap = $args[0];
    %var stack = sectMap[".stack"];
       .stack: >`stack.loadSegment` START(_stack_start) SIZE(_stack_size)
    %
    %// now append the normally generated content
    `$args[1]`
Note: this example requires that the .stack section be excluded from the normal generation via sectionsExclude; otherwise this section will be specified twice by the template shown above.
      Program.sectionsExclude = "^\.stack$";
config Program.stack // module-wide
index URL

The size of the executable's initial stack

XDCscript usage meta-domain
Program.stack = UInt 0x1000;
DETAILS
On platforms that enable control of the initial stack size (the stack that exists immediately after reset), this parameter specifies its initial size (in units of chars).
config Program.sysStack // module-wide
index URL

The size of the executable's initial system stack

XDCscript usage meta-domain
Program.sysStack = UInt 0x1000;
DETAILS
On architectures that maintain a separate "system stack" in addition to the normal stack, this parameter sets its initial size (in units of chars). This parameter is ignored for those architectures for which there is just a single stack; in other words, almost all known architectures.
This parameter is used on later generation TI/C55 16-bit DSPs where, in order to compatibly support 24-bit addresses, a separate system call/return stack that stores the upper address bits is employed.
Program.exportModule() // module-wide
index URL

Force all the symbols of a module to be part of a configuration

XDCscript usage meta-domain
Program.exportModule(String modName) returns Void
DETAILS
Although a call xdc.useModule() will force some of a module's methods to be part of a configuration, the linker is still free to omit any symbols that are not referenced. Use of exportModule will force all methods of the specified module to be available.
Program.getSectMap() // module-wide
index URL

Return the complete mapping of section names to SectionSpec entries

XDCscript usage meta-domain
Program.getSectMap() returns Any
DETAILS
The returned map is assembled from xdc.bld.ITarget.sectMap, xdc.platform.IPlatform.sectMap, xdc.platform.IPlatform.codeMemory, xdc.platform.IPlatform.dataMemory, xdc.platform.IPlatform.stackMemory and sectMap. The function can be called at any time during configuration, but if it is called before all packages had a chance to change sectMap, the returned map may not correspond to the actual section allocation as configured in the linker command file.
RETURNS
getSectMap returns a map with section names as keys and SectionSpec entries as values.
NOTE
If BIOS 5 configuration script (Tconf script) is executed, the section allocations configured in the Tconf script are also being returned.
generated on Thu, 08 Nov 2012 02:13:40 GMT


module xdc.cfg.Program

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Program.xdc ========
    14     */
    15    package xdc.cfg;
    16
    17    /*!
    18     *  ======== Program ========
    19     *  The Program object for the configuration object model.
    20     *
    21     *  This module defines the "root" of the configuration object model; all
    22     *  "top-level" configuration settings for the executable are provided by
    23     *  this object. Program configuration scripts reference this module via the
    24     *  global variable `Program`; i.e., `Program` is implicitly initialized as
    25     *  follows:
    26     *  @p(code)
    27     *      var Program = xdc.useModule('xdc.cfg.Program');
    28     *  @p
    29     *
    30     *  After a configuration script completes successfully, the following files
    31     *  are generated:
    32     *  @p(nlist)
    33     *      - package/cfg/<exe_name>.c
    34     *      - package/cfg/<exe_name>.xdl
    35     *  @p
    36     *  where `<exe_name>` is the name of the executable with the final '.'
    37     *  character replaced with an '_'.
    38     *
    39     *  The generated C file contains code and data from each module used by the
    40     *  program and must be compiled and linked with the other sources to
    41     *  produce the final executable.  The generated linker command file must also
    42     *  be added during this final link step.
    43     *
    44     *  The linker command file is produced by expanding a template
    45     *  provided by the platform specifed during configuration and contains
    46     *  hardware and compiler specific directives required by the target modules
    47     *  that are part of the program's configuration.  This template expands
    48     *  other templates specified by each imported package's
    49     *  `{@link xdc.IPackage#getSects getSects}` method, for example. This allows
    50     *  each package participating in the configuration executable to
    51     *  automatically contribute a portion of the executable's linker command
    52     *  file.
    53     *
    54     *  You can modify or augment the contents of this file via
    55     *  `{@link xdc.cfg.Program#sectionsExclude sectionsExclude}` and
    56     *  `{@link xdc.cfg.Program#sectionsTemplate sectionsTemplate}`.  It is even
    57     *  possible to completely replace the template used to generate this file via
    58     *  `{@link xdc.cfg.Program#linkTemplate linkTemplate}`.  These configuration
    59     *  options provide the user complete control of the linker command file
    60     */
    61
    62    @Template("./Program.xdt")
    63
    64    metaonly module Program {
    65
    66        /*!
    67         *  ======== GenerationOptions ========
    68         *  Options that control the files generated as part of program
    69         *  configuration.
    70         *
    71         *  @field(debuggerFiles) If set to `true` in a configuration script,
    72         *          debugger project files will be generated as part of the
    73         *          configuration step.  If set to `false`, these files will not
    74         *          be generated.
    75         *
    76         *          If it is not set (or set to undefined) and the environment
    77         *          variable `environment["xdc.cfg.gen.debuggerFiles"]` is
    78         *          non-`null`, then the default value of this parameter is taken
    79         *          to be the value of the following expression:
    80         *          @p(code)
    81         *              environment["xdc.cfg.gen.debuggerFiles"] == "true"
    82         *          @p
    83         *          This makes it is possible to enable the generation of
    84         *          debugger project files from build scripts by passing
    85         *          the option `-Dxdc.cfg.gen.debuggerFiles=true` to the
    86         *          configuration tool (see
    87         *          `{@link xdc.bld.Executable#Attrs.xsopts}` or
    88         *          `{@link xdc.bld.PackageContents#Attrs.xsopts}`).
    89         *
    90         *          Finally, if `debuggerFiles` is not set (or set to `undefined`)
    91         *          and the environment variable above is not defined,
    92         *          the generation of debugger project files occurs only if
    93         *          `{@link xdc.cfg.Program#build.profile}` contains
    94         *          the string `"debug"`.  So, unless otherwise specified, debug
    95         *          profiles result in debugger project files being generated.
    96         */
    97        struct GenerationOptions {
    98            Bool debuggerFiles; /*! if `true`, generate debugger "project" files */
    99        };
   100
   101        /*!
   102         *  ======== SectionSpec ========
   103         *  Map that instructs the linker where to place output sections.
   104         *
   105         *  This structure contains some fields that are specific to TI targets.
   106         *  On non-TI targets, such fields are ignored.
   107         *
   108         *  @field(runSegment) Defines the memory segment where the section is
   109         *          to be run.
   110         *
   111         *  @field(loadSegment) Defines the memory segment where the section is
   112         *          to be loaded. If 'runSegment' or 'loadSegment' is defined,
   113         *          but not both, the linker is instructed to use the defined
   114         *          field as the load and run allocation for the section.
   115         *
   116         *  @field(runAddress) Defines the memory address where the section is
   117         *          to be run. It is an error if both 'runSegment' and 'runAddress'
   118         *          are specified.
   119         *
   120         *  @field(loadAddress) Defines the memory address where the section is
   121         *          to be loaded. It is an error if both 'loadSegment' and
   122         *          'loadAddress' are specified. If 'runAddress' or 'loadAddress'
   123         *          is defined, but not both, the linker is instructed to use the
   124         *          defined field as the load and run address for the section.
   125         *
   126         *  @field(runAlign) If runSegment is specified, runAlign determines the
   127         *          alignment. It is an error if both 'runAlign' and 'runAddress'
   128         *          are specified.
   129         *
   130         *  @field(loadAlign) If runSegment is specified, runAlign determins the
   131         *          alignment. It is an error if both 'loadAlign' and 'loadAddress'
   132         *          are specified.
   133         *
   134         *  @field(type) Defines flags for special section types (COPY, DSECT,
   135         *          NOLOAD).
   136         *
   137         *  @field(fill) Defines the value to initialize an uninitialized
   138         *  section.
   139         */
   140        struct SectionSpec {
   141            String runSegment;  /*! segment where section contents are run */
   142            String loadSegment; /*! segment where section contents are loaded */
   143            UInt runAddress;    /*! start address of section when run */
   144            UInt loadAddress;   /*! start address of section when loaded */
   145            UInt runAlign;      /*! alignment of section within runSegment */
   146            UInt loadAlign;     /*! alignment of section within loadSegment */
   147            String type;        /*! target-specific flags */
   148            UInt fill;          /*! fill value */
   149        };
   150
   151        /*!
   152         *  ======== gen ========
   153         *  Generation options for this executable
   154         *
   155         *  This configuration parameter allows the program configuration script
   156         *  to control (to some extent) what files are generated as part of the
   157         *  configuration process.
   158         */
   159        config GenerationOptions gen;
   160
   161        /*!
   162         *  ======== globalSection ========
   163         *  UNDER CONSTRUCTION
   164         *  @_nodoc
   165         *
   166         *  Section where `{@link #globals}` are placed.
   167         *
   168         *  All globals specified in the application configuration file
   169         *  are placed into this section.
   170         *
   171         *  The default is `null`, which means the `{@link #dataSection}` is used.
   172         */
   173        config String globalSection = null;
   174
   175        /*!
   176         *  ======== sysStack ========
   177         *  The size of the executable's initial system stack
   178         *
   179         *  On architectures that maintain a separate "system stack" in addition
   180         *  to the normal `{@link #stack}`, this parameter sets its initial size
   181         *  (in units of chars).  This parameter is ignored for those
   182         *  architectures for which there is just a single stack; in other
   183         *  words, almost all known architectures.
   184         *
   185         *  This parameter is used on later generation TI/C55 16-bit DSPs where,
   186         *  in order to compatibly support 24-bit addresses, a separate
   187         *  system call/return stack that stores the upper address bits is
   188         *  employed.
   189         */
   190        config UInt sysStack = 0x1000;
   191
   192        /*!
   193         *  ======== stack ========
   194         *  The size of the executable's initial stack
   195         *
   196         *  On platforms that enable control of the initial stack size (the
   197         *  stack that exists immediately after reset), this parameter specifies
   198         *  its initial size (in units of chars).
   199         */
   200        config UInt stack = 0x1000;
   201
   202        /*!
   203         *  ======== heap ========
   204         *  The size of the executable's initial heap
   205         *
   206         *  On platforms that enable control of the size of the heap managed by
   207         *  the run-time support function malloc(), this parameter specifies
   208         *  its initial size (in units of chars).
   209         */
   210        config UInt heap = 0x1000;
   211
   212        /*!
   213         *  ======== argSize ========
   214         *  The size allocated for command line args to the executable
   215         *
   216         *  On platforms that require static allocation of space to hold
   217         *  command line arguments, this parameter specifies its maximum size
   218         *  (in units of chars).
   219         *
   220         *  Command line arguments are passed to C's `main` function when it's
   221         *  declared via the prototype: `int main(int argc, char *argv[])`.  the
   222         *  `argv` array points to an array of strings allocated from the
   223         *  memory block whose size is controlled by `argSize`.
   224         *
   225         *  Setting `argSize` to 0 means that no `argv` array will be allocated
   226         *  and the application `main()` function should be declared as
   227         *  `int main(void)`.
   228         */
   229        config UInt argSize = 0x200;
   230
   231        /*!
   232         *  ======== execCmd ========
   233         *  The command used to run this executable
   234         *
   235         *  This string is used to create a command that runs the executable
   236         *  from the command line.  If it is not set by the configuration script,
   237         *  it is set by the program's platform package (during program
   238         *  configuration).
   239         *
   240         *  This command is run as follows:
   241         *  @p(code)
   242         *      execCmd <prog> <args>
   243         *  @p
   244         *  where, `<prog>` is the name of the executable and `<args>` are
   245         *  the arguments specified in the test (if any).
   246         *
   247         *  @a(Note)
   248         *  This parameter is ignored if the exec command is specified as part
   249         *  of the test; see `{@link xdc.bld.Test#Attrs}`.
   250         */
   251        config String execCmd;
   252
   253        /*!
   254         *  ======== linkTemplate ========
   255         *  The template for the Program's linker command file
   256         *
   257         *  A template is used to create the linker command file for each
   258         *  program.  It can be optionally specified by setting this
   259         *  configuration parameter in the program's configuration script.  If
   260         *  `linkTemplate` it is not set or set to `null`, the template is
   261         *  obtained from the platform associated with this program (i.e., the
   262         *  platform named by the `{@link #platform}` config in this module).
   263         *  See `{@link xdc.platform.IPlatform#getLinkTemplate IPlatform.getLinkTemplate}`.
   264         *
   265         *  The `linkTemplate` string names a package path relative path; e.g.,
   266         *  if the linker template you want to specify is
   267         *  `"templates/big_n_hairy.xdt"` in the package `myCompany.myPackage`,
   268         *  `linkTemplate` should be set to:
   269         *  @p(code)
   270         *      "myCompany/myPackage/templates/big_n_hairy.xdt"
   271         *  @p
   272         *  If `linkTemplate` begins with the string `"./"`, the file is NOT
   273         *  searched for along the package path; instead the file name is taken
   274         *  to specify a file relative to the current working directory.
   275         *
   276         *  In any case, if `linkTemplate` is non-`null`, the file must exist;
   277         *  otherwise, the configuration step will fail.
   278         */
   279        config String linkTemplate = null;
   280
   281        /*!
   282         *  ======== main ========
   283         *  The main entry point for the program
   284         *
   285         *  This parameter is optionally set by the user's program
   286         *  configuration script.  If it is not set, then a "legacy" `main()`
   287         *  function is assumed to be linked into the program; otherwise,
   288         *  the value of `main` is used as the "main" entry point to the
   289         *  program.
   290         */
   291        config Int (*main)(Int, Char*[]);
   292
   293        /*!
   294         *  ======== sectMap ========
   295         *  A section name to SectionSpec mapping
   296         *
   297         *  This is a program specific mapping of output section names to
   298         *  {@link #SectionSpec} objects. The map supports mapping of section
   299         *  names to memory names; see {@link xdc.platform.IPlatform#sectMap}.
   300         *
   301         *  This parameter enables program configurations to place named
   302         *  sections in platform specific memory regions.  During generation of
   303         *  the linker command file, sections are mapped to named memories by
   304         *  first consulting this table; if the table does not contain a mapping,
   305         *  the target classifies each section as either "code", "data" or
   306         *  "stack" {@link xdc.bld.ITarget#sectMap} and the platform defines a
   307         *  memory region for each of these section types
   308         *  ({@link xdc.platform.IPlatform#codeMemory}/
   309         *  {@link xdc.platform.IPlatform#dataMemory}).  If
   310         *  this does not produce a result, an error is generated.
   311         *  It is important to note that `sectMap` does not contain the complete
   312         *  section allocation for the program. It only contains the entries
   313         *  explicitly added to `sectMap`. To get the complete section
   314         *  allocation, a user should call {@link #getSectMap}.
   315         *
   316         *  Suppose for example that the platform defines a memory segment
   317         *  named "DDR2".  The following configuration statement places
   318         *  everything from the ".text" section into the "DDR2" segment.
   319         *
   320         *  @p(code)
   321         *      Program.sectMap[".text"] = new Program.SectionSpec();
   322         *      Program.sectMap[".text"].loadSegment = "DDR2";
   323         *  @p
   324         *
   325         *  @a(Note)
   326         *  If BIOS 5 configuration script (Tconf script) is executed, the
   327         *  section allocations configured in the Tconf script take precedence
   328         *  over any settings for the same sections in this parameter.
   329         *
   330         *  @see #SectionSpec
   331         *  @see xdc.platform.IPlatform#sectMap
   332         *  @see xdc.bld.ITarget#sectMap
   333         */
   334        config Any sectMap[string]; /* section name => SectionSpec */
   335
   336        /*!
   337         *  ======== sectionsExclude ========
   338         *  Sections to exclude from linker command file generation
   339         *
   340         *  The `sectionsExclude` string is a JavaScript regular expression
   341         *  that is used to identify names of sections that should NOT be
   342         *  be handled by the normal linker command file generation process.
   343         *
   344         *  Sections whose name matches `sectionsExclude` must be handled
   345         *  using a custom linker command file or by specifying a custom template
   346         *  (see `{@link #sectionsTemplate}` or `{@link #linkTemplate}`).
   347         *  @a(Examples)
   348         *  To completely override the placement of all output sections you can
   349         *  define `sectionsExclude` to match any string.
   350         *  @p(code)
   351         *      // Note: the '.' below represents _any_ character, not just "."
   352         *      Program.sectionsExclude = ".*";
   353         *  @p
   354         *  To override output sections that begin with '.' you must specify
   355         *  the literal character '.' and use the '^' character to match the
   356         *  beginning of the string.
   357         *  @p(code)
   358         *      // the sequence '^\.' matches just "." at the start of the name
   359         *      Program.sectionsExclude = "^\.";
   360         *  @p
   361         *  To override a specific sections you should be careful to supply a
   362         *  regular expression that matches the entire section name.  You can
   363         *  use '$' to match the end of the name.
   364         *  @p(code)
   365         *      // match only ".const" or ".text"
   366         *      Program.sectionsExclude = "^\.const$|^\.text$";
   367         *  @p
   368         */
   369        config String sectionsExclude = null;
   370
   371        /*!
   372         *  ======== sectionsTemplate ========
   373         *  Replace the sections portion of the generated linker command file
   374         *
   375         *  The `sectionsTemplate` string names a template that is used to replace
   376         *  the "`SECTIONS`" content to the generated linker command file.  This
   377         *  is useful especially when excluding specific sections via
   378         *  `{@link #sectionsExclude}` or when taking full control of the linker
   379         *  command file via `{@link #linkTemplate}` is unnecessary.  The original
   380         *  "`SECTIONS`" content is computed and passed as an argument to this
   381         *  template, which makes it relatively simple to perform small changes to
   382         *  the "`SECTIONS`" content without having to explicitly handle every
   383         *  section required by the compiler toolchain.
   384         *
   385         *  The `sectionsTemplate` string names a package path relative path; e.g.,
   386         *  if the linker template you want to specify is
   387         *  `"templates/mySections.xdt"` in the package `myCompany.myPackage`,
   388         *  `sectionsTemplate` should be set to:
   389         *  @p(code)
   390         *      "myCompany/myPackage/templates/mySections.xdt"
   391         *  @p
   392         *  If `sectionsTemplate` begins with the string `"./"`, the file is NOT
   393         *  searched for along the package path; instead the file name is taken
   394         *  to specify a file relative to the current working directory.
   395         *
   396         *  In any case, if `sectionsTemplate` is non-`null`, the file must exist;
   397         *  otherwise, the configuration step will fail.
   398         *
   399         *  During expansion of this template, there are three "parameters"
   400         *  that can be referenced to generate new content.
   401         *  @p(dlist)
   402         *      - `this`
   403         *          reference to the `{@link Program}` object
   404         *      - `$args[0]`
   405         *         is the complete section map derived from
   406         *         `{@link Program#sectMap}`; some special sections relevant to
   407         *         XDCtools are added to the map defined by `Program.sectMap`.
   408         *      - `$args[1]`
   409         *         is a string that contains the content that would have been
   410         *         placed in the `SECTIONS` portion of the generated linker
   411         *         command file.  This allows templates to easily modify this
   412         *         content or simply add statements before or after it.
   413         *  @p
   414         *  @a(Example)
   415         *  The following template, specific to TI compiler tools, adds start
   416         *  and size symbols for the `.stack` section and ensures that the stack
   417         *  is the first section to be allocated in its designated memory segment.
   418         *  @p(code)
   419         *    %// first output allocation for the .stack section
   420         *    %var sectMap = $args[0];
   421         *    %var stack = sectMap[".stack"];
   422         *       .stack: >`stack.loadSegment` START(_stack_start) SIZE(_stack_size)
   423         *    %
   424         *    %// now append the normally generated content
   425         *    `$args[1]`
   426         *  @p
   427         *  Note: this example requires that the `.stack` section be excluded
   428         *  from the normal generation via `{@link sectionsExclude}`; otherwise
   429         *  this section will be specified twice by the template shown above.
   430         *  @p(code)
   431         *      Program.sectionsExclude = "^\.stack$";
   432         *  @p
   433         */
   434        config String sectionsTemplate = null;
   435
   436        /*!
   437         *  ======== system ========
   438         *  @_nodoc
   439         *  A facade for the {@link xdc.runtime.System#SupportProxy} parameter
   440         *
   441         *  The program configuration script may select an implementation of
   442         *  the `xdc.runtime.ISystemSupport` interface and "bind" it by setting
   443         *  this parameter. If the module assigned to this parameter does not
   444         *  inherit from `xdc.runtime.ISystemSupport`, the configuration will fail.
   445         *
   446         *  If this parameter is not set (or set to `undefined`), then a default
   447         *  implementation is used: `xdc.runtime.SysStd` or, if
   448         *  `Program.build.target.os` is `null`, `xdc.runtime.SysMin`.  Recall that
   449         *  `Program.build.target.os` is specified in the Build Object Model;
   450         *  `Program.build.target` is the target specified when the executable was
   451         *  added to the package.
   452         *
   453         *  If this parameter is set to `null`, then the `System` module is not
   454         *  linked into the application (unless 'Memory' is used); any references
   455         *  to `System`'s methods will result in a linker error.  By setting this
   456         *  parameter to `null`, one is asserting that `System`'s methods will not
   457         *  be used.
   458         */
   459        config Any system;
   460
   461        /*!
   462         *  ======== name ========
   463         *  The name of the executable file
   464         *
   465         *  This is the full file name (relative to the package's base) of the
   466         *  executable that results from this configuration.
   467         *
   468         *  @a(readonly)
   469         *  This parameter is set by the generated program configuration script
   470         *  and must not be modified.
   471         */
   472        config String name;
   473
   474        /*!
   475         *  ======== cfgBase ========
   476         *  UNDER CONSTRUCTION
   477         *  @_nodoc
   478         */
   479        config String cfgBase;
   480
   481        /*!
   482         *  ======== buildPackage ========
   483         *  The name of the executable's package
   484         *
   485         *  This is the full package name (relative to the package's repository)
   486         *  of the package that contains the executable being configured.
   487         *
   488         *  @a(readonly)
   489         *  This parameter is set by the generated program configuration script
   490         *  and must not be modified.
   491         */
   492        config String buildPackage;
   493
   494        /*!
   495         *  ======== endian ========
   496         *  The endianess of the executable
   497         *
   498         *  This parameter is an alias for `build.target.model.dataModel` and is
   499         *  set to one of the following values: `"big"`, `"little"`, or `null`.
   500         *
   501         *  @a(readonly)
   502         *  This parameter is set by the generated program configuration script
   503         *  and must not be modified.
   504         */
   505        config String endian = null;
   506
   507        /*!
   508         *  ======== codeModel ========
   509         *  The memory model for code
   510         *
   511         *  This parameter is an alias for `build.target.model.codeModel` and is
   512         *  set to one of the following target-specific values: `"near"`, `"far"`,
   513         *  `"large"`, or `null`.
   514         *
   515         *  @a(readonly)
   516         *  This parameter is set by the generated program configuration script
   517         *  and must not be modified.
   518         */
   519        config String codeModel = null;
   520
   521        /*!
   522         *  ======== dataModel ========
   523         *  The memory model for data
   524         *
   525         *  This parameter is an alias for `build.target.model.dataModel` and is
   526         *  set to one of the following target-specific values: `"near"`, `"far"`,
   527         *  `"large"`, or `null`.
   528         *
   529         *  @a(readonly)
   530         *  This parameter is set by the generated program configuration script
   531         *  and must not be modified.
   532         */
   533        config String dataModel = null;
   534
   535        /*!
   536         *  ======== build ========
   537         *  This program's build attributes
   538         *
   539         *  This parameter allows arbitrary build attributes to be carried
   540         *  forward from the Build Object Model (BOM) into the configuration
   541         *  model for program configuration scripts to read.
   542         *
   543         *  Conceptually, this config parameter should be declared as follows:
   544         *  @p(code)
   545         *      struct BuildAttrs inherits xdc.bld.Executable.Attrs {
   546         *          config xdc.bld.ITarget.Module target;
   547         *      };
   548         *  @p
   549         *  All parameters of the target associated with the executable being
   550         *  configured are available through '`Program.build.target`'. Any config
   551         *  parameter set in the BOM's `{@link xdc.bld.Executable#attrs}` is also
   552         *  available through `{@link #build}`.  For example, the name of the
   553         *  target is `Program.build.target.name` and the name of the
   554         *  executable's configuration script is `Program.build.cfgScript`.
   555         *
   556         *  @a(readonly)
   557         *  This parameter is set by the generated program configuration script
   558         *  and must not be modified.
   559         */
   560        config Any build;   /*  BuildAttrs */
   561
   562        /*!
   563         *  ======== cpu ========
   564         *  The execution context "seen" by the executable.
   565         *
   566         *  Since the execution context is largely determined by the CPU that
   567         *  runs the executable, this configuration parameter allows scripts with
   568         *  access to the program object to conditionally configure based on CPU
   569         *  characteristics (e.g., ISA or revision of a chip).
   570         *
   571         *  @a(readonly)
   572         *  This parameter is set by the platform's implementation of
   573         *  `xdc.IPackage` (i.e., `package.xs`).
   574         */
   575        config xdc.platform.IExeContext.Instance cpu;
   576
   577        /*!
   578         *  ======== platformName ========
   579         *  The name of the executable's platform
   580         *
   581         *  This field is the name of the platform instance used to create the
   582         *  executable; e.g., `"ti.platforms.sim55xx"`, or
   583         *  `"ti.platforms.sim6xxx:TMS320C6416"`.
   584         *
   585         *  Platform instance names have the form:
   586         *  @p(code)
   587         *      <platform_pkg>:<instance_id>
   588         *  @p
   589         *  where `<platform_pkg>` is the name of the platform package
   590         *  responsible for creating the platform instance and the optional
   591         *  "`:<instance_id>`" is a suffix that uniquely identifies the creation
   592         *  parameters for this instance.
   593         *
   594         *  The creation parameters are the values specified by the map
   595         *  `{@link xdc.bld.BuildEnvironment#platformTable}`;
   596         *  if this map does not contain the platform instance name, the
   597         *  instance is created with default values that are specific to the
   598         *  platform.
   599         *
   600         *  @a(readonly)
   601         *  This parameter is set by the generated program configuration script
   602         *  and must not be modified.
   603         */
   604        config String platformName;
   605
   606        /*!
   607         *  ======== platform ========
   608         *  The executable's platform instance object
   609         *
   610         *  The platform instance that provided an execution context for the
   611         *  executable being configured.
   612         *
   613         *  @a(readonly)
   614         *  This parameter is set by the generated program configuration script
   615         *  and must not be modified.
   616         */
   617        config xdc.platform.IPlatform.Instance platform;
   618
   619        /*!
   620         *  ======== global ========
   621         *  Global variable declarations
   622         *
   623         *  Assignments to this hash table become global symbols that can be
   624         *  used to directly reference objects.  These objects are declared
   625         *  in a generated header that is indirectly included by the header
   626         *  `xdc/cfg/global.h`.
   627         *
   628         *  Configuration scripts define symbols by adding new properties to
   629         *  `global`.
   630         *  @p(code)
   631         *      Program.global.myInstance = Mod.create();
   632         *      Program.global.myString = "hello world";
   633         *  @p
   634         *
   635         *  Programs can reference the symbols defined in `global` by including
   636         *  the C/C++ header `xdc/cfg/global.h` as follows:
   637         *  @p(code)
   638         *      #include <pkg/Mod.h>
   639         *      #include <xdc/cfg/global.h>
   640         *         :
   641         *      Mod_fxn(myInstance, ...);
   642         *      printf("greetings: %s\n", myString);
   643         *  @p
   644         *
   645         *  To compile sources that include `xdc/cfg/global.h`, one symbol must be
   646         *  defined before including this header:
   647         *  @p(dlist)
   648         *      - `xdc_cfg__header__`
   649         *          the package qualified name of the executable-specific C/C++
   650         *          header generated by the program configuration tool; e.g.,
   651         *          `local/examples/package/cfg/mycfg_x62.h`.
   652         *  @p
   653         *  For example, to compile sources that reference the values declared in
   654         *  `{@link #global}` for a TI C6x target with a generated
   655         *  configuration header named `package/cfg/mycfg_x62.h` in a package
   656         *  named `local.examples` the following command line is sufficient:
   657         *  @p(code)
   658         *      cl6x -Dxdc_cfg__header__=local/examples/package/cfg/mycfg_x62.h ...
   659         *  @p
   660         *
   661         *  The `xdc_cfg__header__` symbol is automatically defined when you use
   662         *  the the XDC Build Engine (`{@link xdc.bld}`) to create executables; see
   663         *  `{@link xdc.bld.Executable#addObjects}`
   664         *
   665         *  @see xdc.bld.Executable#addObjects
   666         */
   667        config Any global[string];
   668
   669        /*!
   670         *  ======== symbol ========
   671         *  Global symbol specifications
   672         *
   673         *  UNDER CONSTRUCTION
   674         *  @_nodoc
   675         *
   676         *  This map contains symbol definitions that are used to define alises
   677         *  or constants.  Symbol names are the C symbol names; i.e., compiler name
   678         *  mangling, such as the addition of a leading "_", is performed
   679         *  automatically.
   680         *
   681         *  @a(Examples)
   682         *  To define a symbolic constant:
   683         *  @p(code)
   684         *      Program.symbol["ONE"] = 1;
   685         *  @p
   686         *  The line above causes the symbol "ONE" to be defined in the linker
   687         *  command file to be equal to 1.  Note this in contrast to defining a
   688         *  variable whose value is 1; symbols do not occupy space, they are just
   689         *  symbolic constants defined in the symbol table of the executable.
   690         *
   691         *  This is currently used by xdc.runtime.Startup to define symbols
   692         *  optionally referenced by boot files that support early startup
   693         *  "reset" functions.
   694         *
   695         *  The only other use of this map is to define symbolic names for
   696         *  statically created instances as part of the support for legacy
   697         *  BIOS 5 instance names.
   698         */
   699        config Any symbol[string];
   700
   701        /*!
   702         *  ======== exportModule ========
   703         *  Force all the symbols of a module to be part of a configuration
   704         *
   705         *  Although a call xdc.useModule() will force some of a module's methods
   706         *  to be part of a configuration, the linker is still free to omit any
   707         *  symbols that are not referenced.  Use of exportModule will force all
   708         *  methods of the specified module to be available.
   709         */
   710        Void exportModule(String modName);
   711
   712        /*!
   713         *  ======== getSectMap ========
   714         *  Return the complete mapping of section names to `{@link #SectionSpec}`
   715         *  entries
   716         *
   717         *  The returned map is assembled from `{@link xdc.bld.ITarget#sectMap}`,
   718         *  `{@link xdc.platform.IPlatform#sectMap}`,
   719         *  `{@link xdc.platform.IPlatform#codeMemory}`,
   720         *  `{@link xdc.platform.IPlatform#dataMemory}`,
   721         *  `{@link xdc.platform.IPlatform#stackMemory}` and `{@link #sectMap}`.
   722         *  The function can be called at any time during configuration, but if
   723         *  it is called before all packages had a chance to change `sectMap`,
   724         *  the returned map may not correspond to the actual section
   725         *  allocation as configured in the linker command file.
   726         *
   727         *  @a(returns)
   728         *  `getSectMap` returns a map with section names as keys and
   729         *  `{@link #SectionSpec}` entries as values.
   730         *
   731         *  @a(Note)
   732         *  If BIOS 5 configuration script (Tconf script) is executed, the
   733         *  section allocations configured in the Tconf script are also being
   734         *  returned.
   735         */
   736        function getSectMap();
   737
   738        /*!
   739         *  ======== importAssembly ========
   740         *  UNDER CONSTRUCTION
   741         *  @_nodoc
   742         */
   743        Void importAssembly(String asmName);
   744
   745        /*!
   746         *  ======== targetModules ========
   747         *  UNDER CONSTRUCTION
   748         *  @_nodoc
   749         *
   750         *  This function returns a list of target modules. The list is completed
   751         *  only after all packages are closed, and runtime.finalized() is closed,
   752         *  so the only time when this function can be safely called is from
   753         *  within module$static$init and instance$static$init functions, package
   754         *  validate() functions, and templates.
   755         */
   756        function targetModules();
   757
   758        /*!
   759         *  ======== freezeRomConfig ========
   760         *  UNDER CONSTRUCTION
   761         *  @_nodoc
   762         */
   763        Void freezeRomConfig(String modName, String cfgName);
   764
   765        /*!
   766         *  ======== freezeRomConfig2 ========
   767         *  UNDER CONSTRUCTION
   768         *  @_nodoc
   769         */
   770        function freezeRomConfig2(mod, cfgName);
   771
   772        /*!
   773         *  ======== freezeRomParams ========
   774         *  UNDER CONSTRUCTION
   775         *  @_nodoc
   776         */
   777        function freezeRomParams(mod);
   778
   779        /*!
   780         *  ======== frozenRomConfig ========
   781         *  UNDER CONSTRUCTION
   782         *  @_nodoc
   783         */
   784        Bool frozenRomConfig(String modName, String cfgName);
   785
   786        /*!
   787         *  ======== frozenRomConfig2 ========
   788         *  UNDER CONSTRUCTION
   789         *  @_nodoc
   790         */
   791        function frozenRomConfig2(mod, cfgName);
   792    }
   793    /*
   794     *  @(#) xdc.cfg; 1, 0, 2, 0,395; 11-3-2012 15:19:02; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   795     */
   796


module xdc.cfg.SourceDir

metaonly module xdc.cfg.SourceDir
index URL

Manage config generated source directories

  • XDCscript usage
  • Individual elements
Every "product" can generate a collection of source files that must be compiled into a single library and linked with the application. Each collection of source files is placed in a subdirectory of a top-level directory and contains a GNU make file, named makefile, which builds the library. [ more ... ]
XDCscript usage meta-domain sourced in xdc/cfg/SourceDir.xdc
var SourceDir = xdc.useModule('xdc.cfg.SourceDir');
module-wide config parameters
     SourceDir.makefileName// Top-level makfile name = String "makefile.libs";
     SourceDir.outputDir// Top-level directory for config generated sources and makefiles = String undefined;
     SourceDir.verbose// Output progress messages during a build = Int 0;
module-wide functions
     SourceDir.build// Run make using the generated makefiles() returns Int
     SourceDir.getRelativePath// (String fm, String to) returns String
per-instance config parameters
    var params = new SourceDir.Params// Instance config-params object;
        params.buildLibs// Build generated library sources = Bool true;
        params.libraryName// Name of library of compiled sources in sourceDir = String undefined;
        params.sourceDir// Source directory for a specific "product's" generated sources = String undefined;
per-instance creation
    var inst = SourceDir.create// Create an instance-object(String name, params);
per-instance functions
     inst.getGenLibraryName// Get name of the output library for this set of source files() returns String
     inst.getGenSourceDir// Get name of the output directory for this set of source files() returns String
     inst.getName// () returns String
DETAILS
Every "product" can generate a collection of source files that must be compiled into a single library and linked with the application. Each collection of source files is placed in a subdirectory of a top-level directory and contains a GNU make file, named makefile, which builds the library.
This module generates a top-level makefile that builds all "product" libraries, the top-level directory that houses the "product" sub-directories, and any files necessary for integration with eclipse/CDT managed make. The generated "product" files need only ensure their sources can be built via their generated makefile (from their sub-directory).
config SourceDir.makefileName // module-wide
index URL

Top-level makfile name

XDCscript usage meta-domain
SourceDir.makefileName = String "makefile.libs";
DETAILS
This name is the base name of the makefile which is created in outputDir.
config SourceDir.outputDir // module-wide
index URL

Top-level directory for config generated sources and makefiles

XDCscript usage meta-domain
SourceDir.outputDir = String undefined;
DETAILS
This directory path can be either an absolute path or a path relative to the build working directory at the time source files are generated (this is NOT necessarily the same as the build directory at the time the generated sources are built!)
This parameter must never be set to an existing directory with source files in it. The directory referenced by this parameter can be deleted when a package containing the configuration script is cleaned.
If outputDir is not set, files will be output to the ./src sub-directory of the directory containing the configuration script.
config SourceDir.verbose // module-wide
index URL

Output progress messages during a build

XDCscript usage meta-domain
SourceDir.verbose = Int 0;
DETAILS
Positive values cause additional progress messages to be displayed. The greater the value, the more information is displayed.
0
no build progress output
1
output a message when the build is started and when it completes
2
output build progrss output (both stdout and stderr) as well all level 1 output
3
output the build commands used as well as all level 2 output
SourceDir.build() // module-wide
index URL

Run make using the generated makefiles

XDCscript usage meta-domain
SourceDir.build() returns Int
SourceDir.getRelativePath() // module-wide
index URL
XDCscript usage meta-domain
SourceDir.getRelativePath(String fm, String to) returns String
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SourceDir.Params;
// Instance config-params object
    params.buildLibs = Bool true;
    // Build generated library sources
    params.libraryName = String undefined;
    // Name of library of compiled sources in sourceDir
    params.sourceDir = String undefined;
    // Source directory for a specific "product's" generated sources
config SourceDir.buildLibs // instance
index URL

Build generated library sources

XDCscript usage meta-domain
var params = new SourceDir.Params;
...
params.buildLibs = Bool true;
DETAILS
If set to false, the configuration step will not attempt to build the generated library sources.
config SourceDir.libraryName // instance
index URL

Name of library of compiled sources in sourceDir

XDCscript usage meta-domain
var params = new SourceDir.Params;
...
params.libraryName = String undefined;
DETAILS
This path must be relative to outputDir.
config SourceDir.sourceDir // instance
index URL

Source directory for a specific "product's" generated sources

XDCscript usage meta-domain
var params = new SourceDir.Params;
...
params.sourceDir = String undefined;
DETAILS
This path must be relative to outputDir.
Instance Creation
index URL

XDCscript usage meta-domain
var params = new SourceDir.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = SourceDir.create(String name, params);
// Create an instance-object
SourceDir.getGenLibraryName() // instance
index URL

Get name of the output library for this set of source files

XDCscript usage meta-domain
inst.getGenLibraryName() returns String
DETAILS
The name is either an absolute path or a path relative to the build directory at the time configuration is run.
SourceDir.getGenSourceDir() // instance
index URL

Get name of the output directory for this set of source files

XDCscript usage meta-domain
inst.getGenSourceDir() returns String
DETAILS
The name is either an absolute path or a path relative to the build directory at the time configuration is run.
SourceDir.getName() // instance
index URL
XDCscript usage meta-domain
inst.getName() returns String
generated on Thu, 08 Nov 2012 02:13:40 GMT


module xdc.cfg.SourceDir

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== SourceDir ========
    14     *  Manage config generated source directories
    15     *
    16     *  Every "product" can generate a collection of source files that
    17     *  must be compiled into a single library and linked with the
    18     *  application.  Each collection of source files is placed in a
    19     *  subdirectory of a top-level directory and contains a GNU make file,
    20     *  named makefile, which builds the library.
    21     *
    22     *  This module generates a top-level makefile that builds all "product"
    23     *  libraries, the top-level directory that houses the "product"
    24     *  sub-directories, and any files necessary for integration with eclipse/CDT
    25     *  managed make.  The generated "product" files need only ensure their
    26     *  sources can be built via their generated makefile (from their
    27     *  sub-directory).
    28     */
    29    @Template("./SourceDir.xdt")
    30    metaonly module SourceDir
    31    {
    32        /*!
    33         *  ======== outputDir ========
    34         *  Top-level directory for config generated sources and makefiles
    35         *
    36         *  This directory path can be either an absolute path or a path
    37         *  relative to the build working directory at the time source files
    38         *  are generated (this is NOT necessarily the same as the build
    39         *  directory at the time the generated sources are built!)
    40         *
    41         *  This parameter must never be set to an existing directory with source
    42         *  files in it. The directory referenced by this parameter can be
    43         *  deleted when a package containing the configuration script is cleaned.
    44         *
    45         *  If `outputDir` is not set, files will be output to the `./src`
    46         *  sub-directory of the directory containing the configuration script.
    47         */
    48        config String outputDir;
    49
    50        /*!
    51         *  ======== toBuildDir ========
    52         *  Top-level build working directory
    53         *
    54         *  @_nodoc
    55         *  This config parameter is the build working directory for the
    56         *  sources generated into `{@link #outputDir}` and is used to determine
    57         *  a relative path from the build directory to the output directory.
    58         *
    59         *  The directory path can be either an absolute path, a path
    60         *  relative from the build working directory at the time source files
    61         *  are generated, or `undefined`.
    62         *
    63         *  If `toBuildDir` and `outputDir` are `undefined`
    64         *  `toBuildDir` is set to be the parent of the build working directory
    65         *  at the time source files are generated; i.e., `"../"`
    66         *
    67         *  If `toBuildDir` is `undefined` and `outputDir` is defined,
    68         *  `toBuildDir` is set to be the build working directory at the time
    69         *  source files are generated; i.e., `"./"`.
    70         */
    71        config String toBuildDir;
    72
    73        /*!
    74         *  ======== makefileName ========
    75         *  Top-level makfile name
    76         *
    77         *  This name is the base name of the makefile which is created in
    78         *  `outputDir`.
    79         */
    80        config String makefileName = "makefile.libs";
    81
    82        /*!
    83         *  ======== verbose ========
    84         *  Output progress messages during a build
    85         *
    86         *  Positive values cause additional progress messages to be displayed.
    87         *  The greater the value, the more information is displayed.
    88         *  @p(dlist)
    89         *      - 0
    90         *          no build progress output
    91         *      - 1
    92         *          output a message when the build is started and when it
    93         *          completes
    94         *      - 2
    95         *          output build progrss output (both stdout and stderr) as well
    96         *          all level 1 output
    97         *      - 3
    98         *          output the build commands used as well as all level 2 output
    99         *  @p
   100         */
   101        config Int verbose = 0;
   102
   103        /*!
   104         *  ======== getRelativePath ========
   105         */
   106        metaonly String getRelativePath(String fm, String to);
   107
   108        /*!
   109         *  ======== build ========
   110         *  Run make using the generated makefiles
   111         */
   112        metaonly Int build();
   113
   114    instance:
   115        /*
   116         *  ======== create ========
   117         */
   118        create(String name);
   119
   120        /*!
   121         *  ======== getName ========
   122         */
   123        metaonly String getName();
   124
   125        /*!
   126         *  ======== getGenSourceDir ========
   127         *  Get name of the output directory for this set of source files
   128         *
   129         *  The name is either an absolute path or a path relative to the
   130         *  build directory at the time configuration is run.
   131         */
   132        metaonly String getGenSourceDir();
   133
   134        /*!
   135         *  ======== getGenLibraryName ========
   136         *  Get name of the output library for this set of source files
   137         *
   138         *  The name is either an absolute path or a path relative to the
   139         *  build directory at the time configuration is run.
   140         */
   141        metaonly String getGenLibraryName();
   142
   143        /*!
   144         *  ======== sourceDir ========
   145         *  Source directory for a specific "product's" generated sources
   146         *
   147         *  This path must be relative to `outputDir`.
   148         */
   149        config String sourceDir;
   150
   151        /*!
   152         *  ======== libraryName ========
   153         *  Name of library of compiled sources in `sourceDir`
   154         *
   155         *  This path must be relative to `outputDir`.
   156         */
   157        config String libraryName;
   158
   159        /*!
   160         *  ======== buildLibs ========
   161         *  Build generated library sources
   162         *
   163         *  If set to `false`, the configuration step will not attempt to
   164         *  build the generated library sources.
   165         */
   166        config Bool buildLibs = true;
   167    }
   168    /*
   169     *  @(#) xdc.cfg; 1, 0, 2, 0,395; 11-3-2012 15:19:02; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   170     */
   171


package xdc.platform
index URL

Interfaces and modules necessary for the XDC Platform Model

XDCspec declarations sourced in xdc/platform/package.xdc
package xdc.platform [1, 0, 1, 0] {
    interface ICpuDataSheet;
    // CPU information provided by the HW model
    interface IExeContext;
    // Execution environment interface between a platform and an executable
    interface IPeripheral;
    // Configuration-time representation of a peripheral
    interface IPlatform;
    // Configuration-time interface to all platforms
    module ExeContext;
    // Stock implementation of xdc.platform.IExeContext
    module Utils;
    // Misc platform utilities
}
CUSTOM MEMORY CHECK
If a custom memory map is specified for a platform, through the configuration parameter xdc.platform.IPlatform.customMemoryMap, the custom map is checked against the default memory map to verify if the custom map fits within the default map. The environment variable xdc.platform.custom.check controls this check.
By default, the check is enabled. It can be disabled by passing -Dxdc.platform.custom.check="false" to the XDCscript shell (xs), which is used to run the configuro command line configuration tool. If, on the other hand, you are using xdc to run the configuration step you can set this variable by setting the xsopts attribute of an xdc.bld.Executable within a build script.
generated on Thu, 08 Nov 2012 02:13:32 GMT


package xdc.platform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== xdc.platform ========
    14     *  Interfaces and modules necessary for the XDC Platform Model
    15     *
    16     *  @a(Custom Memory Check)
    17     *  If a custom memory map is specified for a platform, through the
    18     *  configuration parameter `{@link xdc.platform.IPlatform#customMemoryMap}`,
    19     *  the custom map is checked
    20     *  against the default memory map to verify if the custom map fits within
    21     *  the default map. The environment variable `xdc.platform.custom.check`
    22     *  controls this check.
    23     *
    24     *  By default, the check is enabled. It can be disabled by passing
    25     *  `-Dxdc.platform.custom.check="false"` to the XDCscript shell (`xs`),
    26     *  which is used to run the `{@link xdc.tools.configuro configuro}` command
    27     *  line configuration tool.
    28     *  If, on the other hand, you are using `xdc` to run the configuration step
    29     *  you can set this variable by setting the
    30     *  `{@link xdc.bld.Executable#Attrs xsopts}` attribute of an
    31     *  `{@link xdc.bld.Executable}` within a build script.
    32     */
    33    package xdc.platform [1,0,1,0] {
    34        /* platform model interfaces */
    35        interface IPlatform, ICpuDataSheet, IExeContext, IPeripheral;
    36
    37        /* utility modules that implement core behavior */
    38        module ExeContext, Utils;
    39    }
    40    /*
    41     *  @(#) xdc.platform; 1, 0, 1, 0,395; 11-3-2012 15:19:05; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    42     */
    43


module xdc.platform.ExeContext

metaonly module xdc.platform.ExeContext
index URL

Stock implementation of xdc.platform.IExeContext

  • XDCscript usage
  • Individual elements
This module is used by platforms to create execution contexts that must be returned by xdc.platform.IPlatform.getExeContext().
XDCscript usage meta-domain sourced in xdc/platform/ExeContext.xdc
var ExeContext = xdc.useModule('xdc.platform.ExeContext');
module-wide constants & types
    var obj = new ExeContext.Cpu// CPU attributes necessary to create an execution context;
        obj.id// unique id within the platform = String ...
        obj.catalogName// name of catalog package = String ...
        obj.deviceName// module name within catalog package = String ...
        obj.revision// revision of specified device = String ...
        obj.clockRate// clock rate in MHz of CPU on board = Float ...
per-instance config parameters
    var params = new ExeContext.Params// Instance config-params object;
        params.attrs// The CPU "data-sheet" attributes = ICpuDataSheet.Instance undefined;
        params.board// The board-level attributes = IPlatform.Board undefined;
        params.catalogName// The name of the package containing the module named by deviceName = String undefined;
        params.clockRate// The clock rate in MHz of the CPU = Float undefined;
        params.deviceName// The name of a CPU device within the catalog package catalogName = String undefined;
        params.id// The CPU's unique id within the platform = String undefined;
        params.memoryMap// The memory map seen by executables at the time they are loaded = IPlatform.Memory[string] undefined;
        params.revision// The revision of the CPU = String "";
per-instance creation
    var inst = ExeContext.create// Create an instance-object(IExeContext.Cpu cpu, IPlatform.Board board, params);
struct ExeContext.Cpu
index URL

CPU attributes necessary to create an execution context

XDCscript usage meta-domain
var obj = new ExeContext.Cpu;
    obj.id = String ...
    // unique id within the platform
    obj.catalogName = String ...
    // name of catalog package
    obj.deviceName = String ...
    // module name within catalog package
    obj.revision = String ...
    // revision of specified device
    obj.clockRate = Float ...
    // clock rate in MHz of CPU on board
DETAILS
Attributes that uniquely identify the CPU responsible for executing an executable image.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new ExeContext.Params;
// Instance config-params object
    params.attrs = ICpuDataSheet.Instance undefined;
    // The CPU "data-sheet" attributes
    params.board = IPlatform.Board undefined;
    // The board-level attributes
    params.catalogName = String undefined;
    // The name of the package containing the module named by deviceName
    params.clockRate = Float undefined;
    // The clock rate in MHz of the CPU
    params.deviceName = String undefined;
    // The name of a CPU device within the catalog package catalogName
    params.id = String undefined;
    // The CPU's unique id within the platform
    params.memoryMap = IPlatform.Memory[string] undefined;
    // The memory map seen by executables at the time they are loaded
    params.revision = String "";
    // The revision of the CPU
config ExeContext.attrs // instance
index URL

The CPU "data-sheet" attributes

XDCscript usage meta-domain
var params = new ExeContext.Params;
...
params.attrs = ICpuDataSheet.Instance undefined;
DETAILS
This "data sheet" allows one to get information about the CPU that runs the run the executable associated with this execution context.
Multi-CPU platforms provide multiple execution contexts; each context is associated with a single CPU on the platform.
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config ExeContext.board // instance
index URL

The board-level attributes

XDCscript usage meta-domain
var params = new ExeContext.Params;
...
const params.board = IPlatform.Board computed value;
DETAILS
This parameter defines the static attributes of the board containing the CPU that runs the executable.
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config ExeContext.catalogName // instance
index URL

The name of the package containing the module named by deviceName

XDCscript usage meta-domain
var params = new ExeContext.Params;
...
params.catalogName = String undefined;
DETAILS
This string names a package containing one or more modules that implements the xdc.platform.ICpuDataSheet interface.
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config ExeContext.clockRate // instance
index URL

The clock rate in MHz of the CPU

XDCscript usage meta-domain
var params = new ExeContext.Params;
...
params.clockRate = Float undefined;
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config ExeContext.deviceName // instance
index URL

The name of a CPU device within the catalog package catalogName

XDCscript usage meta-domain
var params = new ExeContext.Params;
...
params.deviceName = String undefined;
DETAILS
This string names a module in the catalog package, specified by catalogName, that represents the CPU that runs the executable; i.e., it implements the xdc.platform.ICpuDataSheet interface.
config ExeContext.id // instance
index URL

The CPU's unique id within the platform

XDCscript usage meta-domain
var params = new ExeContext.Params;
...
params.id = String undefined;
DETAILS
This id is the string used to identify a specific CPU within the platform that provides this execution context.
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config ExeContext.memoryMap // instance
index URL

The memory map seen by executables at the time they are loaded

XDCscript usage meta-domain
var params = new ExeContext.Params;
...
params.memoryMap = IPlatform.Memory[string] undefined;
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config ExeContext.revision // instance
index URL

The revision of the CPU

XDCscript usage meta-domain
var params = new ExeContext.Params;
...
params.revision = String "";
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
Instance Creation
index URL

XDCscript usage meta-domain
var params = new ExeContext.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = ExeContext.create(IExeContext.Cpu cpu, IPlatform.Board board, params);
// Create an instance-object
ARGUMENTS
cpu — an xdc.platform.IExeContext.Cpu structure that uniquely identifies a specific CPU
board — an xdc.platform.IPlatform.Board structure that uniquely identifies a specific board
DETAILS
An execution context is the "view" that an executable has of the CPU it is running on; e.g., the accessible memory map including platform specific memory or memory mapped registers.
generated on Thu, 08 Nov 2012 02:13:32 GMT


module xdc.platform.ExeContext

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== ExeContext.xdc ========
    14     */
    15    package xdc.platform;
    16
    17    /*!
    18     *  ======== ExeContext ========
    19     *  Stock implementation of xdc.platform.IExeContext.
    20     *
    21     *  This module is used by platforms to create execution contexts that
    22     *  must be returned by `{@link xdc.platform.IPlatform#getExeContext()}`.
    23     */
    24    metaonly module ExeContext inherits xdc.platform.IExeContext
    25    {
    26
    27    instance:
    28        /*!
    29         *  ======== create ========
    30         *  Create an execution context.
    31         *
    32         *  An execution context is the "view" that an executable has of the
    33         *  CPU it is running on; e.g., the accessible memory map including
    34         *  platform specific memory or memory mapped registers.
    35         *
    36         *  @param(cpu)     an `{@link xdc.platform.IExeContext#Cpu}` structure
    37         *                  that uniquely identifies a specific CPU
    38         *  @param(board)   an `{@link xdc.platform.IPlatform#Board}` structure
    39         *                  that uniquely identifies a specific board
    40         */
    41        create(xdc.platform.IExeContext.Cpu cpu,
    42            xdc.platform.IPlatform.Board board);
    43    }
    44
    45    /*
    46     *  @(#) xdc.platform; 1, 0, 1, 0,395; 11-3-2012 15:19:05; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    47     */
    48


interface xdc.platform.ICpuDataSheet

metaonly interface xdc.platform.ICpuDataSheet
index URL

CPU information provided by the HW model

The information in this interface is read-only, defined by the chip's data sheet, and is obtained by naming a module in a package that implements this interface. [ more ... ]
XDCspec summary sourced in xdc/platform/ICpuDataSheet.xdc
metaonly interface ICpuDataSheet { ...
instance: ...
XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
package xdc.platform;
metaonly interface ICpuDataSheet {
instance:
per-instance config parameters
    config String cpuCore// A string identifying the CPU Core;
    config String cpuCoreRevision// A string that uniquely identifies a revision of the core;
    config Int dataWordSize// The size of an int on the target in 8-bit bytes;
    config String deviceHeader// The optional header file that define device specific constants and structures;
    config Int minDataUnitSize// The minimum addressable data unit size in 8-bit bytes;
    config Int minProgUnitSize// The minimum addressable program unit size in 8-bit bytes;
    config IPeripheral.Instance peripherals// A map of peripherals available on the device[string];
per-instance creation
     create// Create an instance-object(String revision);
per-instance functions
     function getMemoryMap// Get the memory map that corresponds to the values of the specified registers(registers);
     function getRegisterSet// The set of valid register names for this CPU();
}
DETAILS
The information in this interface is read-only, defined by the chip's data sheet, and is obtained by naming a module in a package that implements this interface.
Data sheets are created by platforms as part of creating an "execution context" (see xdc.platform.IPlatform.getExeContext). This execution context includes the CPU's memory map as well as any external memory provided by the platform itself, for example.
config ICpuDataSheet.cpuCore // instance
index URL

A string identifying the CPU Core

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
config String cpuCore;
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config ICpuDataSheet.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
config String cpuCoreRevision;
config ICpuDataSheet.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
config Int dataWordSize;
config ICpuDataSheet.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
config String deviceHeader;
config ICpuDataSheet.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
config Int minDataUnitSize;
config ICpuDataSheet.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
config Int minProgUnitSize;
config ICpuDataSheet.peripherals // instance
index URL

A map of peripherals available on the device

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
config IPeripheral.Instance peripherals[string];
Instance Creation
index URL

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
create(String revision);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
ICpuDataSheet.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
function getMemoryMap(registers);
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
ICpuDataSheet.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCspec declarations sourced in xdc/platform/ICpuDataSheet.xdc
function getRegisterSet();
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Thu, 08 Nov 2012 02:13:32 GMT


interface xdc.platform.ICpuDataSheet

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== ICpuDataSheet.xdc ========
    14     */
    15    package xdc.platform;
    16
    17    /*!
    18     *  ======== ICpuDataSheet ========
    19     *  CPU information provided by the HW model.
    20     *
    21     *  The information in this interface is read-only, defined by the chip's
    22     *  data sheet, and is obtained by naming a module in a package that
    23     *  implements this interface.
    24     *
    25     *  Data sheets are created by platforms as part of creating an "execution
    26     *  context" (see `{@link xdc.platform.IPlatform#getExeContext}`).  This
    27     *  execution context includes the CPU's memory map as well as any external
    28     *  memory provided by the platform itself, for example.
    29     */
    30    metaonly interface ICpuDataSheet
    31    {
    32
    33    instance:
    34        /*!
    35         *  ======== create ========
    36         *  Create a "data-sheet" for the specified revision of a CPU.
    37         *
    38         *  A "data sheet" for a CPU allows one to get specific attributes
    39         *  for a CPU programatically; e.g., the memory map of the CPU.
    40         *
    41         *  Notice that we don't specify CPU registers when we create a
    42         *  a data-sheet; registers are provided as necessary to the other
    43         *  functions defined in this interface.  This allows one to more easily
    44         *  get memory maps for several different setting of the registers,
    45         *  for example.
    46         *
    47         * @param(revision) a string that identifies revision of the CPU to be
    48         *                  created.
    49         */
    50        create(string revision);
    51
    52        /*!
    53         *  ======== cpuCore ========
    54         *  A string identifying the CPU Core.
    55         *
    56         *  This uniquely identifies the instruction set that the CPU can
    57         *  decode and execute.
    58         */
    59        config string cpuCore;          /* 5400, 5500, etc... */
    60
    61        /*!
    62         *  ======== cpuCoreRevision ========
    63         *  A string that uniquely identifies a revision of the core.
    64         */
    65        config string cpuCoreRevision;    /* 1.2, 2.0, etc... */
    66
    67        /*!
    68         *  ======== minProgUnitSize ========
    69         *  The minimum addressable program unit size in 8-bit bytes
    70         */
    71        config int minProgUnitSize;
    72
    73        /*!
    74         *  ======== minDataUnitSize ========
    75         *  The minimum addressable data unit size in 8-bit bytes
    76         */
    77        config int minDataUnitSize;
    78
    79        /*!
    80         *  ======== dataWordSize ========
    81         *  The size of an int on the target in 8-bit bytes
    82         */
    83        config int dataWordSize;
    84
    85        /*!
    86         *  ======== peripherals ========
    87         *  A map of peripherals available on the device
    88         */
    89        config xdc.platform.IPeripheral.Instance peripherals[string];
    90
    91        /*!
    92         *  ======== deviceHeader ========
    93         *  The optional header file that define device specific constants and
    94         *  structures.
    95         */
    96        config string deviceHeader;
    97
    98        /*!
    99         *  ======== getMemoryMap ========
   100         *  Get the memory map that corresponds to the values of the specified
   101         *  registers.
   102         *
   103         *  If a register is not specified and this register can affect the
   104         *  memory map, the register is assumed to be set to its reset
   105         *  value (the value of the register immediately after a CPU reset).
   106         *
   107         *  @param(registers)   a hash of named registers to values at the time
   108         *                      an executable is to be loaded (for example)
   109         *
   110         *  @a(returns)         Returns an array of
   111         *                      `{@link xdc.platform.IPlatform#Memory}`
   112         *                      objects that represent the memory visible to an
   113         *                      executable running on the CPU.
   114         */
   115    //    xdc.platform.IPlatform.Memory [] getMemoryMap(int registers [string]);
   116        function getMemoryMap(registers);
   117
   118        /*!
   119         *  ======== getRegisterSet ========
   120         *  The set of valid register names for this CPU
   121         *
   122         *  This function returns the complete set of register names that may be
   123         *  passed to the `{@link #getMemoryMap()}` function.  This function is
   124         *  only used to enable one to write a "requires contract" for the
   125         *  `{@link #getMemoryMap()}` function.
   126         *
   127         *  @a(returns) Returns an array of valid register names (strings) for
   128         *              this device; only names from this array are valid keys
   129         *              for the registers argument to `{@link #getMemoryMap()}`.
   130         */
   131    //    string [] getRegisterSet();
   132        function getRegisterSet();
   133    };
   134    /*
   135     *  @(#) xdc.platform; 1, 0, 1, 0,395; 11-3-2012 15:19:05; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   136     */
   137


interface xdc.platform.IExeContext

metaonly interface xdc.platform.IExeContext
index URL

Execution environment interface between a platform and an executable

This interface describes the execution environment provided by a platform as seen by an executable on a particular CPU at the time it is loaded. [ more ... ]
XDCspec summary sourced in xdc/platform/IExeContext.xdc
metaonly interface IExeContext { ...
instance: ...
XDCspec declarations sourced in xdc/platform/IExeContext.xdc
package xdc.platform;
metaonly interface IExeContext {
module-wide constants & types
    metaonly struct Cpu// CPU attributes necessary to create an execution context {
        String id// unique id within the platform;
        String catalogName// name of catalog package;
        String deviceName// module name within catalog package;
        String revision// revision of specified device;
        Float clockRate// clock rate in MHz of CPU on board;
    };
instance:
per-instance config parameters
    config ICpuDataSheet.Instance attrs// The CPU "data-sheet" attributes;
    readonly config IPlatform.Board board// The board-level attributes;
    config String catalogName// The name of the package containing the module named by deviceName;
    config Float clockRate// The clock rate in MHz of the CPU;
    config String deviceName// The name of a CPU device within the catalog package catalogName;
    config String id// The CPU's unique id within the platform;
    config IPlatform.Memory memoryMap// The memory map seen by executables at the time they are loaded[string];
    config String revision// The revision of the CPU = "";
}
DETAILS
This interface describes the execution environment provided by a platform as seen by an executable on a particular CPU at the time it is loaded.
Execution contexts are created by platforms via xdc.platform.IPlatform.getExeContext(). Execution contexts are created implicitly just prior to executing a program's configuration script. This execution context is made available to the configuration script as the global read-only Program.cpu configuration parameter; see xdc.cfg.Program.
struct IExeContext.Cpu
index URL

CPU attributes necessary to create an execution context

XDCspec declarations sourced in xdc/platform/IExeContext.xdc
metaonly struct Cpu {
    String id;
    // unique id within the platform
    String catalogName;
    // name of catalog package
    String deviceName;
    // module name within catalog package
    String revision;
    // revision of specified device
    Float clockRate;
    // clock rate in MHz of CPU on board
};
DETAILS
Attributes that uniquely identify the CPU responsible for executing an executable image.
config IExeContext.attrs // instance
index URL

The CPU "data-sheet" attributes

XDCspec declarations sourced in xdc/platform/IExeContext.xdc
config ICpuDataSheet.Instance attrs;
DETAILS
This "data sheet" allows one to get information about the CPU that runs the run the executable associated with this execution context.
Multi-CPU platforms provide multiple execution contexts; each context is associated with a single CPU on the platform.
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config IExeContext.board // instance
index URL

The board-level attributes

XDCspec declarations sourced in xdc/platform/IExeContext.xdc
readonly config IPlatform.Board board;
DETAILS
This parameter defines the static attributes of the board containing the CPU that runs the executable.
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config IExeContext.catalogName // instance
index URL

The name of the package containing the module named by deviceName

XDCspec declarations sourced in xdc/platform/IExeContext.xdc
config String catalogName;
DETAILS
This string names a package containing one or more modules that implements the xdc.platform.ICpuDataSheet interface.
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config IExeContext.clockRate // instance
index URL

The clock rate in MHz of the CPU

XDCspec declarations sourced in xdc/platform/IExeContext.xdc
config Float clockRate;
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config IExeContext.deviceName // instance
index URL

The name of a CPU device within the catalog package catalogName

XDCspec declarations sourced in xdc/platform/IExeContext.xdc
config String deviceName;
DETAILS
This string names a module in the catalog package, specified by catalogName, that represents the CPU that runs the executable; i.e., it implements the xdc.platform.ICpuDataSheet interface.
config IExeContext.id // instance
index URL

The CPU's unique id within the platform

XDCspec declarations sourced in xdc/platform/IExeContext.xdc
config String id;
DETAILS
This id is the string used to identify a specific CPU within the platform that provides this execution context.
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config IExeContext.memoryMap // instance
index URL

The memory map seen by executables at the time they are loaded

XDCspec declarations sourced in xdc/platform/IExeContext.xdc
config IPlatform.Memory memoryMap[string];
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
config IExeContext.revision // instance
index URL

The revision of the CPU

XDCspec declarations sourced in xdc/platform/IExeContext.xdc
config String revision = "";
READONLY
This parameter is set by the platform and is readonly for configuration scripts.
generated on Thu, 08 Nov 2012 02:13:32 GMT


interface xdc.platform.IExeContext

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== IExeContext.xdc ========
    14     */
    15    package xdc.platform;
    16
    17    /*!
    18     *  ======== IExeContext ========
    19     *  Execution environment interface between a platform and an executable
    20     *
    21     *  This interface describes the execution environment provided by a
    22     *  platform as seen by an executable on a particular CPU at the time
    23     *  it is loaded.
    24     *
    25     *  Execution contexts are created by platforms via
    26     *  `{@link xdc.platform.IPlatform#getExeContext()}`.  Execution contexts are
    27     *  created implicitly just prior to executing a program's configuration
    28     *  script.  This execution context is made available to the configuration
    29     *  script as the global read-only `Program.cpu` configuration parameter;
    30     *  see `{@link xdc.cfg.Program}`.
    31     */
    32    metaonly interface IExeContext
    33    {
    34        /*!
    35         *  ======== Cpu ========
    36         *  CPU attributes necessary to create an execution context.
    37         *
    38         *  Attributes that uniquely identify the CPU responsible for executing
    39         *  an executable image.
    40         */
    41        struct Cpu {
    42            string      id;             /*! unique id within the platform */
    43            string      catalogName;    /*! name of catalog package */
    44            string      deviceName;     /*! module name within catalog package */
    45            string      revision;       /*! revision of specified device */
    46            float       clockRate;      /*! clock rate in MHz of CPU on board */
    47        };
    48
    49    instance:
    50        /*!
    51         *  ======== id ========
    52         *  The CPU's unique id within the platform
    53         *
    54         *  This id is the string used to identify a specific CPU within
    55         *  the platform that provides this execution context.
    56         *
    57         *  @a(readonly) This parameter is set by the platform and is readonly
    58         *  for configuration scripts.
    59         */
    60        config string id;
    61
    62        /*!
    63         *  ======== catalogName ========
    64         *  The name of the package containing the module named by deviceName
    65         *
    66         *  This string names a package containing one or more modules that
    67         *  implements the `{@link xdc.platform.ICpuDataSheet}` interface.
    68         *
    69         *  @a(readonly) This parameter is set by the platform and is readonly for
    70         *  configuration scripts.
    71         */
    72        config string catalogName;
    73
    74        /*!
    75         *  ======== deviceName ========
    76         *  The name of a CPU device within the catalog package catalogName
    77         *
    78         *  This string names a module in the catalog package, specified by
    79         *  catalogName, that represents the CPU that runs the executable; i.e.,
    80         *  it implements the `{@link xdc.platform.ICpuDataSheet}` interface.
    81         */
    82        config string deviceName;
    83
    84        /*!
    85         *  ======== revision ========
    86         *  The revision of the CPU
    87         *
    88         *  @a(readonly) This parameter is set by the platform and is readonly for
    89         *  configuration scripts.
    90         */
    91        config string revision = "";
    92
    93        /*!
    94         *  ======== clockRate ========
    95         *  The clock rate in MHz of the CPU
    96         *
    97         *  @a(readonly) This parameter is set by the platform and is readonly for
    98         *  configuration scripts.
    99         */
   100        config float clockRate;
   101
   102        /*!
   103         *  ======== board ========
   104         *  The board-level attributes
   105         *
   106         *  This parameter defines the static attributes of the board
   107         *  containing the CPU that runs the executable.
   108         *
   109         *  @a(readonly) This parameter is set by the platform and is readonly for
   110         *  configuration scripts.
   111         */
   112        readonly config IPlatform.Board board;
   113
   114        /*!
   115         *  ======== attrs ========
   116         *  The CPU "data-sheet" attributes
   117         *
   118         *  This "data sheet" allows one to get information about the CPU that
   119         *  runs the run the executable associated with this execution context.
   120         *
   121         *  Multi-CPU platforms provide multiple execution contexts; each
   122         *  context is associated with a single CPU on the platform.
   123         *
   124         *  @a(readonly) This parameter is set by the platform and is readonly for
   125         *  configuration scripts.
   126         */
   127        config ICpuDataSheet.Instance attrs;
   128
   129        /*!
   130         *  ======== memoryMap ========
   131         *  The memory map seen by executables at the time they are loaded
   132         *
   133         *  @a(readonly) This parameter is set by the platform and is readonly for
   134         *  configuration scripts.
   135         */
   136        config IPlatform.Memory memoryMap[string];
   137    };
   138    /*
   139     *  @(#) xdc.platform; 1, 0, 1, 0,395; 11-3-2012 15:19:05; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   140     */
   141


interface xdc.platform.IPeripheral

metaonly interface xdc.platform.IPeripheral
index URL

Configuration-time representation of a peripheral

XDCspec summary sourced in xdc/platform/IPeripheral.xdc
metaonly interface IPeripheral { ...
instance: ...
XDCspec declarations sourced in xdc/platform/IPeripheral.xdc
package xdc.platform;
metaonly interface IPeripheral {
module-wide constants & types
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
module-wide functions
     IPeripheral.IPeripheralArray getAll// Find all peripherals of a certain type();
     IPeripheral.StringArray getRegisters// Find all registers defined by the peripheral();
instance:
per-instance config parameters
    config String name// Specific peripheral name given by the device;
    config String owner// String specifying the entity that manages the peripheral;
}
typedef IPeripheral.IPeripheralArray
index URL
XDCspec declarations sourced in xdc/platform/IPeripheral.xdc
typedef IPeripheral.Instance IPeripheralArray[];
typedef IPeripheral.StringArray
index URL
XDCspec declarations sourced in xdc/platform/IPeripheral.xdc
typedef String StringArray[];
IPeripheral.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCspec declarations sourced in xdc/platform/IPeripheral.xdc
IPeripheral.IPeripheralArray getAll();
DETAILS
The type of the peripherals returned is defined by the type of the caller.
RETURNS
Returns an array of IPeripheral instances
IPeripheral.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCspec declarations sourced in xdc/platform/IPeripheral.xdc
IPeripheral.StringArray getRegisters();
RETURNS
Returns an array of register names
config IPeripheral.name // instance
index URL

Specific peripheral name given by the device

XDCspec declarations sourced in xdc/platform/IPeripheral.xdc
config String name;
DETAILS
Devices can have more than one peripheral of the same type. In such cases, device data sheets give different names to the instances of a same peripheral. For example, the name for a timer module could be TimerA3, and a device that has two such timers can name them TA0 and TA1.
config IPeripheral.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCspec declarations sourced in xdc/platform/IPeripheral.xdc
config String owner;
generated on Thu, 08 Nov 2012 02:13:32 GMT


interface xdc.platform.IPeripheral

     1    /*
     2     *  Copyright (c) 2010 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== IPeripheral.xdc ========
    14     */
    15
    16    package xdc.platform;
    17
    18    /*!
    19     *  ======== IPeripheral ========
    20     *  Configuration-time representation of a peripheral.
    21     *
    22     */
    23    metaonly interface IPeripheral
    24    {
    25        typedef IPeripheral.Instance IPeripheralArray[];
    26
    27        typedef String StringArray[];
    28
    29        /*!
    30         *  ======== addPeripheralsMap ========
    31         *  @_nodoc deprecated
    32         *  Create a map of all peripherals available on a device.
    33         *
    34         *  The config parameter `peripherals` is by default undefined in an
    35         *  `{@link xdc.platform.ICpuDataSheet}` instance. This function gathers
    36         *  all instance configuration parameters that are of the type
    37         *  `{@link xdc.platform.IPeripheral}` into the map `peripherals`.
    38         *
    39         *  @param(cds)     an `{@link xdc.platform.ICpuDataSheet}` instance
    40         *
    41         */
    42        final Void addPeripheralsMap(ICpuDataSheet.Instance cds);
    43
    44        /*!
    45         *  ======== getAll ========
    46         *  Find all peripherals of a certain type.
    47         *
    48         *  The type of the peripherals returned is defined by the type of the
    49         *  caller.
    50         *
    51         *  @a(returns)     Returns an array of IPeripheral instances
    52         *
    53         */
    54        IPeripheralArray getAll();
    55
    56        /*!
    57         *  ======== getRegisters ========
    58         *  Find all registers defined by the peripheral.
    59         *
    60         *  @a(returns)     Returns an array of register names
    61         *
    62         */
    63        StringArray getRegisters();
    64
    65    instance:
    66
    67        /*!
    68         *  ======== name ========
    69         *  Specific peripheral name given by the device.
    70         *
    71         *  Devices can have more than one peripheral of the same type. In such
    72         *  cases, device data sheets give different names to the instances of a
    73         *  same peripheral. For example, the name for a timer module could be
    74         *  `TimerA3`, and a device that has two such timers can name them `TA0`
    75         *  and `TA1`.
    76         */
    77        config string name;
    78
    79        /*!
    80         *  ======== owner ========
    81         *  String specifying the entity that manages the peripheral
    82         *
    83         */
    84        config string owner;
    85    }
    86    /*
    87     *  @(#) xdc.platform; 1, 0, 1, 0,395; 11-3-2012 15:19:05; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    88     */
    89


interface xdc.platform.IPlatform

metaonly interface xdc.platform.IPlatform
index URL

Configuration-time interface to all platforms

This interface defines the elements that must be implemented by all "platform packages". All programs are built to execute on a platform and each program includes exactly one platform package (which defines the platform). [ more ... ]
XDCspec summary sourced in xdc/platform/IPlatform.xdc
metaonly interface IPlatform { ...
instance: ...
XDCspec declarations sourced in xdc/platform/IPlatform.xdc
package xdc.platform;
metaonly interface IPlatform {
module-wide constants & types
    typedef IPlatform.Memory MemoryMap// Type to be used for maps of Memory objects[string];
    metaonly struct Board// Board-level description {
        String id// unique id within the platform;
        String boardName// name of the board;
        String boardFamily// optional family name;
        String boardRevision// optional revision string;
    };
    metaonly struct Memory// A named contiguous range of addresses {
        String comment// description of this block;
        String name// name of memory segment;
        String space// "code", "data", "code/data", etc...;
        UInt page// page of memory segment;
        UInt base// base address of memory segment;
        UInt len// length of memory segment;
        String access// attributes of memory: "RWX";
    };
instance:
per-instance config parameters
    config String codeMemory// The default segment for code sections;
    config IPlatform.Memory customMemoryMap// A custom mapping of memory names to memory objects[string];
    config String dataMemory// The default segment for data sections;
    readonly config IPlatform.Memory externalMemoryMap// A mapping of memory names to memory objects for external memory[string];
    config String renameMap// A map for renaming memory objects[string];
    config String sectMap// A mapping of linker output section names to memory segments[string];
    config String stackMemory// The default segment for stack;
per-instance creation
     create// Create an instance-object(String name, Any args);
per-instance functions
     function getExeContext// Get execution context object corresponding to the specified program(prog);
     function getExecCmd// Get the exec command used to run the program on this platform(prog, platPath);
     function getLinkTemplate// Get Linker Command file template used to link an executable(prog);
}
DETAILS
This interface defines the elements that must be implemented by all "platform packages". All programs are built to execute on a platform and each program includes exactly one platform package (which defines the platform).
Platform packages contain exactly one module named "Platform" which implements the xdc.platform.IPlatform interface defined here.
Program configuration scripts may read (but not modify) the attributes provided by this interface from the global Program object; see xdc.cfg.Program.platform.
typedef IPlatform.MemoryMap
index URL

Type to be used for maps of Memory objects

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
typedef IPlatform.Memory MemoryMap[string];
struct IPlatform.Board
index URL

Board-level description

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
metaonly struct Board {
    String id;
    // unique id within the platform
    String boardName;
    // name of the board
    String boardFamily;
    // optional family name
    String boardRevision;
    // optional revision string
};
struct IPlatform.Memory
index URL

A named contiguous range of addresses

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
metaonly struct Memory {
    String comment;
    // description of this block
    String name;
    // name of memory segment
    String space;
    // "code", "data", "code/data", etc...
    UInt page;
    // page of memory segment
    UInt base;
    // base address of memory segment
    UInt len;
    // length of memory segment
    String access;
    // attributes of memory: "RWX"
};
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config IPlatform.codeMemory // instance
index URL

The default segment for code sections

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
config String codeMemory;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config IPlatform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
config IPlatform.Memory customMemoryMap[string];
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config IPlatform.dataMemory // instance
index URL

The default segment for data sections

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
config String dataMemory;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config IPlatform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
readonly config IPlatform.Memory externalMemoryMap[string];
DETAILS
This parameter defines the external portion of the platform's memory map.
config IPlatform.renameMap // instance
index URL

A map for renaming memory objects

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
config String renameMap[string];
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config IPlatform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
config String sectMap[string];
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config IPlatform.stackMemory // instance
index URL

The default segment for stack

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
config String stackMemory;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
create(String name, Any args);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
IPlatform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
function getExeContext(prog);
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
IPlatform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
function getExecCmd(prog, platPath);
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
IPlatform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
function getLinkTemplate(prog);
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:13:32 GMT


interface xdc.platform.IPlatform

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== IPlatform.xdc ========
    14     */
    15
    16    package xdc.platform;
    17
    18    /*!
    19     *  ======== IPlatform ========
    20     *  Configuration-time interface to all platforms.
    21     *
    22     *  This interface defines the elements that must be implemented by all
    23     *  "platform packages".  All programs are built to execute on a platform
    24     *  and each program includes exactly one platform package (which defines
    25     *  the platform).
    26     *
    27     *  Platform packages contain exactly one module named "Platform" which
    28     *  implements the `xdc.platform.IPlatform` interface defined here.
    29     *
    30     *  Program configuration scripts may read (but not modify) the attributes
    31     *  provided by this interface from the global `Program` object; see
    32     *  `{@link xdc.cfg.Program#platform}`.
    33     */
    34    metaonly interface IPlatform
    35    {
    36        /*!
    37         *  ======== Board ========
    38         *  Board-level description.
    39         */
    40        struct Board {
    41            string   id;            /*! unique id within the platform */
    42            string   boardName;     /*! name of the board */
    43            string   boardFamily;   /*! optional family name */
    44            string   boardRevision; /*! optional revision string */
    45        };
    46
    47        /*!
    48         *  ======== Memory ========
    49         *  A named contiguous range of addresses.
    50         *
    51         *  Memory structures are used in the description of the memory available
    52         *  from CPUs and platforms.
    53         */
    54        struct Memory {
    55            string      comment;    /*! description of this block */
    56            string      name;       /*! name of memory segment */
    57            string      space;      /*! "code", "data", "code/data", etc.... */
    58            unsigned    page;       /*! page of memory segment */
    59            unsigned    base;       /*! base address of memory segment */
    60            unsigned    len;        /*! length of memory segment */
    61            string      access;     /*! attributes of memory: "RWX" */
    62        };
    63
    64        /*! Type to be used for maps of Memory objects */
    65        typedef Memory MemoryMap[string];
    66
    67    instance:
    68        /*!
    69         *  ======== create ========
    70         *  Constructor for IPlatform instances.
    71         *
    72         *  @param(name)    the name of the platform instance being created
    73         *
    74         *                  This name is the suffix of the platform
    75         *                  specification supplied in the build script after
    76         *                  the platform name (and optional ':') prefix has
    77         *                  been removed.  So the platform instance name
    78         *                  "joes.platform.foo:bar" results in the name "bar"
    79         *                  and the name "joes.platform.foo" result in the name
    80         *                  "".
    81         *
    82         *  @param(args)    deprecated parameter that should not be used in
    83         *                  a platform instance implementation
    84         *
    85         */
    86        create(string name, any args);
    87
    88        /*
    89         *  ======== memTab ========
    90         *  A mapping of memory names to external memory objects.
    91         *
    92         *  This hash table is used to map linker memory region names ("EPROG",
    93         *  "EDATA", etc.) to `{@link xdc.platform.IPlatform#Memory}` objects.
    94         *  During generation of linker command files, for example, this table
    95         *  may be used to genenerate physical memory map declarations.
    96         *
    97         *  Platforms with a fixed memory map can initialize this table
    98         *  "statically" in Platform.xdc using the following syntax:
    99         *  @p(code)
   100         *      override config xdc.platform.IPlatform.Memory memTab[string] = [
   101         *          ["PMEM", {name: "PMEM", base: 0x00000200, len: 0x0000FE00}],
   102         *              :
   103         *      ];
   104         *  @p
   105         *  Alternatively, platforms can initialize this table dynamically in
   106         *  the platform package's `init()` function (see `{@link xdc.IPackage}`)
   107         *  using the following syntax:
   108         *  @p(code)
   109         *    function init()
   110         *    {
   111         *              :
   112         *        this.memTab["PMEM"] = {name: "PMEM", base: 0x200, len: 0xFE00};
   113         *              :
   114         *    }
   115         *  @p
   116         *  @a(readonly)   this parameter is set by the platform and read by
   117         *              program configuration scripts.
   118         */
   119    //    config Memory memTab[string];     /* memory name => memory object */
   120
   121        /*!
   122         *  ======== externalMemoryMap ========
   123         *  A mapping of memory names to memory objects for external memory.
   124         *
   125         *  This parameter defines the external portion of the platform's memory
   126         *  map.
   127         */
   128        readonly config xdc.platform.IPlatform.Memory externalMemoryMap[string];
   129
   130        /*!
   131         *  ======== customMemoryMap ========
   132         *  A custom mapping of memory names to memory objects.
   133         *
   134         *  This parameter allows platform instances to completely overwrite a
   135         *  default memory map based on the internal memory map coming from CPU's
   136         *  memory map and externalMemoryMap.
   137         *
   138         *  Custom memory map must fit within the default memory map, unless the
   139         *  verification of the fit is disabled (see `{@link xdc.platform}`).
   140         */
   141        config xdc.platform.IPlatform.Memory customMemoryMap[string];
   142
   143        /*!
   144         *  ======== renameMap ========
   145         *  A map for renaming memory objects.
   146         *
   147         *  This map renames memory objects. If you do not want to change
   148         *  addresses in the default memory map, but you only want to rename the
   149         *  existing memory objects, you should use this parameter.
   150         *
   151         *  This map and `customMemoryMap` should not be used together because this
   152         *  map renames the default memory, but then `customMemoryMap` replaces the
   153         *  default memory objects. The parameters `codeMemory`, `dataMemory` and
   154         *  `stackMemory` are not automatically reassigned to new names. It is the
   155         *  user's responsibility to set those parameters accordingly to
   156         *  `renameMap`.
   157         */
   158        config string renameMap[string];
   159
   160        /*!
   161         *  ======== dataMemory ========
   162         *  The default segment for data sections.
   163         *
   164         *  Each target has a section map with keys equal to the names of all
   165         *  sections that compiler and assembler for that target generate. The
   166         *  value for each key is either "code" or "data" or "stack". A linker
   167         *  template reads that map and puts all "data" sections in the segment
   168         *  defined by this configuration parameter.
   169         *
   170         *  @see #codeMemory
   171         *  @see #stackMemory
   172         */
   173        config string dataMemory;
   174
   175        /*!
   176         *  ======== codeMemory ========
   177         *  The default segment for code sections.
   178         *
   179         *  Each target has a section map with keys equal to the names of all
   180         *  sections that compiler and assembler for that target generate. The
   181         *  value for each key is either "code" or "data" or "stack". A linker
   182         *  template reads that map and puts all "code" sections in the segment
   183         *  defined by this configuration parameter.
   184         *
   185         *  @see #dataMemory
   186         *  @see #stackMemory
   187         */
   188        config string codeMemory;
   189
   190        /*!
   191         *  ======== stackMemory ========
   192         *  The default segment for stack.
   193         *
   194         *  Each target has a section map with keys equal to the names of all
   195         *  sections that compiler and assembler for that target generate. The
   196         *  value for each key is either "code" or "data" or "stack". A linker
   197         *  template reads that map and puts all "stack" sections in the segment
   198         *  defined by this configuration parameter.
   199         *
   200         *  @see #dataMemory
   201         *  @see #codeMemory
   202         */
   203        config string stackMemory;
   204
   205        /*!
   206         *  ======== sectMap ========
   207         *  A mapping of linker output section names to memory segments.
   208         *
   209         *  During the generation of linker command files, the templates used to
   210         *  create these files examine several sources of information to determine
   211         *  the placement of named output sections into memory segments defined
   212         *  by the platform.  The default placement, described below,
   213         *  uses information from the target and this platform's
   214         *  `{@link #codeMemory}`, `{@link #dataMemory}`, and
   215         *  `{@link #stackMemory}` configuration parameters.
   216         *
   217         *  `sectMap` is used to override this default placement of
   218         *  output sections (".text", ".cinit", etc.) to a memory
   219         *  segment defined by the platform's memory map.  For example, even if
   220         *  a platform's `codeMemory` parameter is defined to be "SRAM" and
   221         *  ".cinit" output sections are "code" sections, if the platform also
   222         *  defines the following `sectMap`, the section ".cinit" will be placed
   223         *  into a memory segment named "DDR2".
   224         *  @p(code)
   225         *      sectMap[] = [
   226         *          [".cinit", "DDR2"],
   227         *      ];
   228         *  @p
   229         *
   230         *  @a(Note) If an output section has an entry in
   231         *  `{@link xdc.cfg.Program#sectMap Program.sectMap}`, that entry
   232         *  overrides the placement specified by this `sectMap`.  A program's
   233         *  `sectMap` configuration always overrides the platform's `sectMap`
   234         *  settings.
   235         *
   236         *  @a(Default Mapping)
   237         *  The default placement of a target's output sections into memory
   238         *  segments defined by the platform is determined by the following
   239         *  configuration parameters:
   240         *  @p(blist)
   241         *      - `{@link xdc.bld.ITarget#sectMap ITarget.sectMap}`
   242         *          used to map a named output section to either "code", "data",
   243         *          or "stack"
   244         *      - `{@link #codeMemory}`
   245         *          names a memory segment that will contain all "code"
   246         *          output sections
   247         *      - `{@link #dataMemory}`
   248         *          names a memory segment that will contain all "data"
   249         *          output sections
   250         *      - `{@link #stackMemory}`
   251         *          names a memory segment that will contain all "stack"
   252         *          output sections
   253         *  @p
   254         *
   255         *  @see xdc.cfg.Program#sectMap
   256         *  @see xdc.bld.ITarget#sectMap
   257         */
   258        config string sectMap[string]; /* section name => memory segment */
   259
   260        /*!
   261         *  ======== peripherals ========
   262         *  @_nodoc
   263         *
   264         *  A map of peripherals available on a platform instance
   265         *
   266         *  The map contains peripherals from an
   267         *  `{@link xdc.platform.ICpuDataSheet}` instance available as
   268         *  `{@link xdc.cfg.Program#cpu.attrs}`, and peripherals defined in this
   269         *  platform instance. The map is initialized by the platform instance,
   270         *  and in multicore platforms the instance must add only peripherals
   271         *  available to the CPU for which an executable is being built.
   272         */
   273        //config IPeripheral.Instance peripherals[string];
   274
   275        /*!
   276         *  ======== getCpuDataSheet ========
   277         *  Get the Cpu data sheet object corresponding to specified cpu id.
   278         *
   279         *  This function executes in either the Configuration object model
   280         *  or the Build object model.
   281         *
   282         *  @param(cpuId)   a string that corresponds to the platform-specific id
   283         *                  of a CPU on this platform that runs executables.
   284         *
   285         *  @a(returns)     Returns an `{@link xdc.platform.ICpuDataSheet}`
   286         *                  instance object that corresponds to the specified
   287         *                  cpuId.
   288         *
   289         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   290         */
   291        function getCpuDataSheet(cpuId);
   292    //    xdc.platform.ICpuDataSheet.Instance getCpuDataSheet(string cpuId);
   293
   294        /*!
   295         *  ======== getCreateArgs ========
   296         *  DEPRECATED
   297         *  @_nodoc
   298         *
   299         *  Get the value of the args parameter used to create this instance
   300         *
   301         *  This function executes in either the Configuration object model
   302         *  or the Build object model.
   303         *
   304         *  @a(returns)     Returns the "args" object that passed to this
   305         *                  module's create method when the instance was created.
   306         *
   307         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   308         */
   309        function getCreateArgs();
   310    // any getCreateArgs();
   311
   312        /*!
   313         *  ======== getExeContext ========
   314         *  Get execution context object corresponding to the specified program.
   315         *
   316         *  This is called before the program's configuration script runs to
   317         *  get the Cpu object that is assigned to the program's cpu field.
   318         *
   319         *  Note: that the build script for the program is responsible for
   320         *  specifying the CPU; this is done by either implicitly naming the
   321         *  platform or explicitly naming a particular CPU on the platform
   322         *  (see `{@link xdc.bld.Executable#Attrs.cpuId}`).
   323         *
   324         *  This function executes in the Configuration object model.
   325         *
   326         *  @param(prog)    the `{@link xdc.cfg.Program}` object representing the
   327         *                  program being configured.
   328         *
   329         *                  This object contains the following properties that
   330         *                  allows the platform to determine the appropriate Cpu
   331         *                  object to return (if there is more than one):
   332         *                      `prog.build.cpuId`,
   333         *                      `prog.build.cpuArgs`,
   334         *                      `prog.build.target`,
   335         *
   336         *  @a(returns)     Returns an `{@link xdc.platform.IExeContext}` instance
   337         *                  object that corresponds to the CPU that will run the
   338         *                  specified program.
   339         *
   340         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   341         */
   342        function getExeContext(prog);
   343    //    xdc.platform.IExeContext.Instance getExeContext(xdc.cfg.Program.Module prog);
   344
   345        /*!
   346         *  ======== getExecCmd ========
   347         *  Get the exec command used to run the program on this platform.
   348         *
   349         *  This function is called after the program's configuration script runs
   350         *  and returns commands that are used to load and run the specified
   351         *  program.  These commands are placed in a makefile that is included
   352         *  by the client package's generated makefile.  Thus, the commands may
   353         *  refer to macros defined in this environment; e.g., `$(SHELL)` and
   354         *  `$(XDCROOT)`, etc.
   355         *
   356         *  The special macro `$(1)` expands to test-specific arguments
   357         *  (`{@link xdc.bld.Test#attrs.execArgs}`) that are passed from the test
   358         *  to the platform's exec command.  Thus, all platforms that support
   359         *  arguments to their exec command, should embed "`$(1)`" within the
   360         *  command string at the appropriate place to have these arguments
   361         *  interpreted by the exec command.
   362         *
   363         *  For example, a platform that uses a shell script to run executables
   364         *  and allows options to be passed to the shell script might return
   365         *  the following string:
   366         *  @p(code)
   367         *      "$(SHELL) <exec_path> $(1) <exe_name>"
   368         *  @p
   369         *  where, `<exec_path>` is the absolute path to the platform's exec
   370         *  shell script, and `<prog_name>` is the name of the executable relative
   371         *  to the package's base directory (i.e., `{@link xdc.cfg.Program#name}`).
   372         *
   373         *  This function executes in the Configuration object model.
   374         *
   375         *  @param(prog)    the `{@link xdc.cfg.Program}` object representing the
   376         *                  program being configured.
   377         *
   378         *                  This object contains the following properties that
   379         *                  allows the platform to determine the appropriate Cpu
   380         *                  object to return (if there is more than one):
   381         *                      `prog.build.cpuId`,
   382         *                      `prog.build.cpuArgs`,
   383         *                      `prog.build.target`
   384         *
   385         *  @param(platPath) full path to the platform package for the program
   386         *
   387         *  @a(returns)     Returns a string of commands used to execute this
   388         *                  program in the context of the XDC generated makefiles.
   389         *
   390         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   391         */
   392        function getExecCmd(prog, platPath);
   393    //    string  getExecCmd(xdc.cfg.Program.Module prog, string platPath);
   394
   395        /*!
   396         *  ======== getLinkTemplate ========
   397         *  Get Linker Command file template used to link an executable.
   398         *
   399         *  In the event that no template is provided by the program
   400         *  configuration script (see `{@link xdc.cfg.Program#linkTemplate}`),
   401         *  the template file identified by this method is used to generate the
   402         *  linker command file used to create the executable.
   403         *
   404         *  This function executes in the Configuration object model and
   405         *  is called after the program configuration script runs.  The template
   406         *  is expanded in the context of the Configuration Object Model.
   407         *
   408         *  @param(prog)    the `{@link xdc.cfg.Program}` object representing the
   409         *                  program being configured.
   410         *
   411         *                  This object contains the following properties that
   412         *                  allows the platform to determine the appropriate link
   413         *                  template to return:
   414         *                  @p(blist)
   415         *                      - `prog.build.cpuId`,
   416         *                      - `prog.build.cpuArgs`,
   417         *                      - `prog.build.target`
   418         *                  @p
   419         *  @a(returns)     Returns a path string to a template file or `null`.  If
   420         *                  `null`, no linker command file is generated; otherwise
   421         *                  this path is relative to the package path.
   422         *
   423         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   424         */
   425        function getLinkTemplate(prog);
   426    //    string getLinkTemplate(prog);
   427    }
   428    /*
   429     *  @(#) xdc.platform; 1, 0, 1, 0,395; 11-3-2012 15:19:05; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   430     */
   431


module xdc.platform.Utils

metaonly module xdc.platform.Utils
index URL

Misc platform utilities

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/platform/Utils.xdc
var Utils = xdc.useModule('xdc.platform.Utils');
module-wide functions
     Utils.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     Utils.assembleMemoryMap// Combine the device and the external memory map into a platform map(Any cpu, Any plat, Any noCheck) returns Any
     Utils.assemblePeripheralsMap// Create a map of all peripherals available on a platform(ICpuDataSheet.Instance cds, IPlatform.Instance inst, String[] names) returns Void
     Utils.checkDefaults// Check if dataMemory, codeMemory and stackMemory are set correctly(Any inst, Any memMap) returns Any
     Utils.checkFit// Check if a memory map fits into available physical memory(Any realMemMap, Any customMemMap) returns Any
     Utils.checkOverlap// Check if there is an overlap among memory objects in a memory map(Any memMap) returns Any
     Utils.getCpuDataSheet// Get the specified cpu data sheet object(Any cpuDesc) returns Any
Utils.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
Utils.addPeripheralsMap(ICpuDataSheet.Instance cds) returns Void
ARGUMENTS
cds — an xdc.platform.ICpuDataSheet instance
DETAILS
The config parameter peripherals is by default undefined in an xdc.platform.ICpuDataSheet instance. This function gathers all instance configuration parameters that are of the type xdc.platform.IPeripheral into the map peripherals.
Utils.assembleMemoryMap() // module-wide
index URL

Combine the device and the external memory map into a platform map

XDCscript usage meta-domain
Utils.assembleMemoryMap(Any cpu, Any plat, Any noCheck) returns Any
ARGUMENTS
cpu — an xdc.platform.IExeContext object
plat — a platform instance
noCheck — if true, and a custom memory map is defined, the function does not check if the custom memory map fits into the available physical memory
DETAILS
This function combines memory maps and also applies memory map name changes requested through renameMap.
RETURNS
platform memory map
Utils.assemblePeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a platform

XDCscript usage meta-domain
Utils.assemblePeripheralsMap(ICpuDataSheet.Instance cds, IPlatform.Instance inst, String[] names) returns Void
ARGUMENTS
inst — an xdc.platform.IPlatform instance
cds — an xdc.platform.ICpuDataSheet instance
names — an optional list of names of IPeripheral parameters
DETAILS
The config parameter peripherals is by default undefined in an xdc.platform.IPlatform instance. This function gathers all peripherals defined in an xdc.platform.ICpuDataSheet instance available as xdc.cfg.Program.cpu.attrs, and adds peripherals defined in this platform instance. By providing a list of config parameter names, the instance can add only listed peripherals instead of adding all available ones.
Utils.checkDefaults() // module-wide
index URL

Check if dataMemory, codeMemory and stackMemory are set correctly

XDCscript usage meta-domain
Utils.checkDefaults(Any inst, Any memMap) returns Any
ARGUMENTS
inst — an xdc.platform.IPlatform instance
memMap — a map of xdc.platform.IPlatform.Memory objects
DETAILS
The xdc.platform.IPlatform instance parameters 'dataMemory', 'codeMemory', and 'stackMemory' are strings. This function verifies that those strings correspond to names of the memory objects in the supplied memory map.
RETURNS
'true' if checked parameters are valid, 'false' otherwise
Utils.checkFit() // module-wide
index URL

Check if a memory map fits into available physical memory

XDCscript usage meta-domain
Utils.checkFit(Any realMemMap, Any customMemMap) returns Any
ARGUMENTS
realMemMap — a map of xdc.platform.IPlatform.Memory objects containing physical memory map as defined in datasheets for the device and the platform
customMemMap — a map of xdc.platform.IPlatform.Memory objects containing user defined memory map, which must fit within boundaries of 'realMemMap'
DETAILS
A custom memory map segment can be spread over multiple physical memories or multiple custom memory map segments can be located in one physical memory. However, code/data restrictions must be followed. A custom memory segment with the parameter 'space' set to "code/data", which is the default value if the parameter was not specified, can fit only into "code/data" physical memories. Custom memory segments with 'space' set to "code" can fit into "code" and "code/data" memories, and custom memory segments with 'space' set to "data" can fit into "data" and "code/data" physical memories.
RETURNS
'true', if customMemMap fits within realMemMap, and 'false' otherwise
Utils.checkOverlap() // module-wide
index URL

Check if there is an overlap among memory objects in a memory map

XDCscript usage meta-domain
Utils.checkOverlap(Any memMap) returns Any
ARGUMENTS
memMap — a map of xdc.platform.IPlatform.Memory objects
RETURNS
a string with names of Memory objects that overlap
Utils.getCpuDataSheet() // module-wide
index URL

Get the specified cpu data sheet object

XDCscript usage meta-domain
Utils.getCpuDataSheet(Any cpuDesc) returns Any
ARGUMENTS
cpuDesc — an xdc.platform.IExeContext.Cpu object identifying the CPU device
RETURNS
an xdc.platform.ICpuDataSheet.Instance object that corresponds to the specified cpuDesc
THROWS
Error exceptions are thrown for fatal errors
generated on Thu, 08 Nov 2012 02:13:32 GMT


module xdc.platform.Utils

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== Utils.xdc ========
    14     */
    15
    16    package xdc.platform;
    17
    18    /*!
    19     *  ======== Utils ========
    20     *  Misc platform utilities
    21     */
    22    metaonly module Utils
    23    {
    24        /*!
    25         *  ======== addPeripheralsMap ========
    26         *  Create a map of all peripherals available on a device.
    27         *
    28         *  The config parameter `peripherals` is by default undefined in an
    29         *  `{@link xdc.platform.ICpuDataSheet}` instance. This function gathers
    30         *  all instance configuration parameters that are of the type
    31         *  `{@link xdc.platform.IPeripheral}` into the map `peripherals`.
    32         *
    33         *  @param(cds)     an `{@link xdc.platform.ICpuDataSheet}` instance
    34         *
    35         */
    36        Void addPeripheralsMap(ICpuDataSheet.Instance cds);
    37
    38        /*!
    39         *  ======== assembleMemoryMap ========
    40         *  Combine the device and the external memory map into a platform map
    41         *
    42         *  This function combines memory maps and also applies memory map name
    43         *  changes requested through renameMap.
    44         *
    45         *  @param(cpu)     an `xdc.platform.IExeContext` object
    46         *
    47         *  @param(plat)    a platform instance
    48         *
    49         *  @param(noCheck) if true, and a custom memory map is defined, the
    50         *                  function does not check if the custom memory map fits
    51         *                  into the available physical memory
    52         *
    53         *  @a(returns)     platform memory map
    54         */
    55        function assembleMemoryMap(cpu, plat, noCheck);
    56
    57        /*!
    58         *  ======== assemblePeripheralsMap ========
    59         *  Create a map of all peripherals available on a platform.
    60         *
    61         *  The config parameter `peripherals` is by default undefined in an
    62         *  `{@link xdc.platform.IPlatform}` instance. This function gathers
    63         *  all peripherals defined in an `{@link xdc.platform.ICpuDataSheet}`
    64         *  instance available as `{@link xdc.cfg.Program#cpu.attrs}`, and adds
    65         *  peripherals defined in this platform instance. By providing a list
    66         *  of config parameter names, the instance can add only listed
    67         *  peripherals instead of adding all available ones.
    68         *
    69         *  @param(inst)    an `xdc.platform.IPlatform` instance
    70         *  @param(cds)     an `xdc.platform.ICpuDataSheet` instance
    71         *  @param(names)   an optional list of names of `IPeripheral` parameters
    72         *
    73         */
    74        Void assemblePeripheralsMap(ICpuDataSheet.Instance cds,
    75                                      IPlatform.Instance inst, String names[] = []);
    76
    77        /*!
    78         *  ======== checkDefaults ========
    79         *  Check if dataMemory, codeMemory and stackMemory are set correctly
    80         *
    81         *  The `xdc.platform.IPlatform` instance parameters 'dataMemory',
    82         *  'codeMemory', and 'stackMemory' are strings. This function verifies
    83         *  that those strings correspond to names of the memory objects in the
    84         *  supplied memory map.
    85         *
    86         *  @param(inst)    an `xdc.platform.IPlatform` instance
    87         *
    88         *  @param(memMap)  a map of `xdc.platform.IPlatform.Memory` objects
    89         *
    90         *  @a(returns)     'true' if checked parameters are valid, 'false'
    91         *                  otherwise
    92         */
    93        function checkDefaults(inst, memMap);
    94
    95        /*!
    96         *  ======== checkFit ========
    97         *  Check if a memory map fits into available physical memory
    98         *
    99         *  A custom memory map segment can be spread over multiple physical
   100         *  memories or multiple custom memory map segments can be located in
   101         *  one physical memory. However, code/data restrictions must be followed.
   102         *  A custom memory segment with the parameter 'space' set to "code/data",
   103         *  which is the default value if the parameter was not specified, can fit
   104         *  only into "code/data" physical memories. Custom memory segments with
   105         *  'space' set to "code" can fit into "code" and "code/data" memories, and
   106         *  custom memory segments with 'space' set to "data" can fit into "data"
   107         *  and "code/data" physical memories.
   108         *
   109         *  @param(realMemMap)      a map of `xdc.platform.IPlatform.Memory`
   110         *                          objects containing physical memory map as
   111         *                          defined in datasheets for the device and the
   112         *                          platform
   113         *
   114         *  @param(customMemMap)    a map of `xdc.platform.IPlatform.Memory`
   115         *                          objects containing user defined memory map,
   116         *                          which must fit within boundaries of 'realMemMap'
   117         *
   118         *  @a(returns)             'true', if customMemMap fits within realMemMap,
   119         *                          and 'false' otherwise
   120         */
   121        function checkFit(realMemMap, customMemMap);
   122
   123        /*!
   124         *  ======== checkOverlap ========
   125         *  Check if there is an overlap among memory objects in a memory map
   126         *
   127         *  @param(memMap)  a map of `xdc.platform.IPlatform.Memory` objects
   128         *
   129         *  @a(returns)     a string with names of Memory objects that overlap
   130         */
   131        function checkOverlap(memMap);
   132
   133        /*!
   134         *  ======== getCpuDataSheet ========
   135         *  Get the specified cpu data sheet object
   136         *
   137         *  @param(cpuDesc) an `xdc.platform.IExeContext.Cpu` object identifying
   138         *                  the CPU device
   139         *
   140         *  @a(returns)     an `xdc.platform.ICpuDataSheet.Instance` object that
   141         *                  corresponds to the specified cpuDesc
   142         *
   143         *  @a(throws)      `Error` exceptions are thrown for fatal errors
   144         */
   145        function getCpuDataSheet(cpuDesc);
   146    }
   147
   148    /*
   149     *  @(#) xdc.platform; 1, 0, 1, 0,395; 11-3-2012 15:19:05; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   150     */
   151


package xdc.platform.generic
index URL

Platform package for the generic platform

  • DETAILS
  • THROWS
  • EXAMPLES
  • SEE
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on a "generic" platform; a platform specified by: [ more ... ]
XDCspec declarations sourced in xdc/platform/generic/package.xdc
requires xdc.platform[1, 0, 1];
package xdc.platform.generic [1, 0, 0] {
    module Platform;
    // A generic platform that supports any HW platform
}
DETAILS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on a "generic" platform; a platform specified by:
  • device name; e.g., "TMS320C2812"
  • catalog name; the name of a package containing the device named above
  • clock rate; the clock rate in MHz of the CPU
  • external memory map; an array of memory blocks external to the device
For a complate list of parameters that can be specified when creating a platform instance see the instance configuration parameters specified by xdc.platform.generic.Platform. This list, of course, includes all the instance config parameters specified by the xdc.platform.IPlatform interface.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
xdc.platform.generic.LINK_TEMPLATE_ERROR
This error is raised when this platform cannot found the default linker command template linkcmd.xdt in the build target's package. When a target does not contain this file, the config parameter xdc.cfg.Program.linkTemplate must be set.
EXAMPLES
Example 1: Suppose you need to create an application for a HW platform that uses the TMS320C2812 running at 150 MHz. You can use this package (in lieu of one specifically created for the HW platform) by defining a named instance of this package's Platform module. Add the following statements to your config.bld file to add the platform instance named "xdc.platform.generic:C28".
      Build.platformTable["xdc.platform.generic:C28"] = {
          clockRate:   150,
          catalogName: "ti.catalog.c2800",
          deviceName:  "TMS320C2812"
      };
With this name defined, it is now possible to configure an application using the platform instance name "xdc.platform.generic:C28". For example, if you are using xdc.tools.configuro to configure your application, the string "xdc.platform.generic:C28" can now be used to identify your platform:
      xs xdc.tools.configuro -b config.bld -p xdc.platform.generic:C28 ...
Example 2: The following example illustrates how to specify a platform instance with memory regions external to the specified device. In this case, we define a platform using a TMS320C6416 running at 600 MHz on a board with two external SDRAM memory blocks.
      Build.platformTable["xdc.platform.generic:C64"] = {
          clockRate:          600,
          catalogName:        "ti.catalog.c6000",
          deviceName:         "TMS320C6416",
          externalMemoryMap : [
              ["SDRAM1", {
                  name: "SDRAM1",
                  base: 0x80000000, len: 0x1000000, space: "code/data"
              }],
              ["SDRAM2", {
                  name: "SDRAM2",
                  base: 0x90000000, len: 0x1000000, space: "code/data"
              }],
          ]
      }
The externalMemoryMap attribute is a map of string names to xdc.platform.IPlatform.Memory structures.
SEE
xdc.platform.generic.Platform, xdc.bld.BuildEnvironment.platformTable, xdc.platform.IPlatform
generated on Thu, 08 Nov 2012 02:13:32 GMT


package xdc.platform.generic

     1    requires xdc.platform [1,0,1];
     2
     3    /*!
     4     *  ======== xdc.platform.generic ========
     5     *  Platform package for the generic platform.
     6     *
     7     *  This package implements the interfaces (xdc.platform.IPlatform)
     8     *  necessary to build and run executables on a "generic" platform; a
     9     *  platform specified by:
    10     *  @p(blist)
    11     *      - device name; e.g., "TMS320C2812"
    12     *      - catalog name; the name of a package containing the device named above
    13     *      - clock rate; the clock rate in MHz of the CPU
    14     *      - external memory map; an array of memory blocks external to the device
    15     *  @p
    16     *  For a complate list of parameters that can be specified when creating a
    17     *  platform instance see the instance configuration parameters specified
    18     *  by `{@link xdc.platform.generic.Platform}`.  This list, of course,
    19     *  includes all the instance config parameters specified by the
    20     *  `{@link xdc.platform.IPlatform}` interface.
    21     *
    22     *  @a(Throws)
    23     *  `XDCException` exceptions are thrown for fatal errors. The following error
    24     *  codes are reported in the exception message:
    25     *  @p(dlist)
    26     *      -  `xdc.platform.generic.LINK_TEMPLATE_ERROR`
    27     *           This error is raised when this platform cannot found the default
    28     *           linker command template `linkcmd.xdt` in the build target's
    29     *           package. When a target does not contain this file, the config
    30     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    31     *  @p
    32     *
    33     *  @a(EXAMPLES)
    34     *  Example 1: Suppose you need to create an application for a HW platform
    35     *  that uses the TMS320C2812 running at 150 MHz.  You can use this package
    36     *  (in lieu of one specifically created for the HW platform) by defining a
    37     *  named instance of this package's Platform module.  Add the following
    38     *  statements to your `config.bld` file to add the platform instance named
    39     *  "xdc.platform.generic:C28".
    40     *  @p(code)
    41     *      Build.platformTable["xdc.platform.generic:C28"] = {
    42     *          clockRate:   150,
    43     *          catalogName: "ti.catalog.c2800",
    44     *          deviceName:  "TMS320C2812"
    45     *      };
    46     *  @p
    47     *  With this name defined, it is now possible to configure an application
    48     *  using the platform instance name "xdc.platform.generic:C28".  For example,
    49     *  if you are using `{@link xdc.tools.configuro}` to configure your
    50     *  application, the string "xdc.platform.generic:C28" can now be used to
    51     *  identify your platform:
    52     *  @p(code)
    53     *      xs xdc.tools.configuro -b config.bld -p xdc.platform.generic:C28 ...
    54     *  @p
    55     *
    56     *  @p(html)
    57     *  <hr/>
    58     *  @p
    59     *
    60     *  Example 2: The following example illustrates how to specify a platform
    61     *  instance with memory regions external to the specified device.  In this
    62     *  case, we define a platform using a TMS320C6416 running at 600 MHz on a
    63     *  board with two external SDRAM memory blocks.
    64     *  @p(code)
    65     *      Build.platformTable["xdc.platform.generic:C64"] = {
    66     *          clockRate:          600,
    67     *          catalogName:        "ti.catalog.c6000",
    68     *          deviceName:         "TMS320C6416",
    69     *          externalMemoryMap : [
    70     *              ["SDRAM1", {
    71     *                  name: "SDRAM1",
    72     *                  base: 0x80000000, len: 0x1000000, space: "code/data"
    73     *              }],
    74     *              ["SDRAM2", {
    75     *                  name: "SDRAM2",
    76     *                  base: 0x90000000, len: 0x1000000, space: "code/data"
    77     *              }],
    78     *          ]
    79     *      }
    80     *  @p
    81     *
    82     *  The `externalMemoryMap` attribute is a map of string names to
    83     *  `{@link xdc.platform.IPlatform#Memory}` structures.
    84     *
    85     *  @see xdc.platform.generic.Platform
    86     *  @see xdc.bld.BuildEnvironment#platformTable
    87     *  @see xdc.platform.IPlatform
    88     */
    89    package xdc.platform.generic [1,0,0] {
    90        module Platform;
    91    }
    92    /*
    93     *  @(#) xdc.platform.generic; 1, 0, 0,204; 11-3-2012 15:19:06; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    94     */
    95


module xdc.platform.generic.Platform

metaonly module xdc.platform.generic.Platform
index URL

A generic platform that supports any HW platform

  • XDCscript usage
  • Individual elements
This module implements xdc.platform.IPlatform and defines configuration parameters that correspond to this platform's Cpu's, Board's, etc.
XDCscript usage meta-domain sourced in xdc/platform/generic/Platform.xdc
var Platform = xdc.useModule('xdc.platform.generic.Platform');
module-wide constants & types
    var obj = new Platform.Board// Board-level description;
        obj.id// unique id within the platform = String ...
        obj.boardName// name of the board = String ...
        obj.boardFamily// optional family name = String ...
        obj.boardRevision// optional revision string = String ...
    var obj = new Platform.Memory// A named contiguous range of addresses;
        obj.comment// description of this block = String ...
        obj.name// name of memory segment = String ...
        obj.space// "code", "data", "code/data", etc... = String ...
        obj.page// page of memory segment = UInt ...
        obj.base// base address of memory segment = UInt ...
        obj.len// length of memory segment = UInt ...
        obj.access// attributes of memory: "RWX" = String ...
module-wide config parameters
     Platform.BOARD// = IPlatform.Board {
        id: "0",
        boardName: "generic",
        boardFamily: null,
        boardRevision: null
    };
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
        params.CPU// = IExeContext.Cpu {
            id: "0",
            clockRate: 0,
            catalogName: null,
            deviceName: null,
            revision: ""
        };
        params.catalogName// The name of the package that contains the module 'deviceName' = String undefined;
        params.clockRate// The clock rate for the simulated device = Double undefined;
        params.codeMemory// The default segment for code sections = String null;
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String null;
        params.deviceName// The CPU provided by this platform = String undefined;
        params.externalMemoryMap// A mapping of memory names to memory objects for external memory = IPlatform.Memory[string] undefined;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectMap// A mapping of linker output section names to memory segments = String[string] undefined;
        params.stackMemory// The default segment for stack = String null;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getExeContext// Get execution context object corresponding to the specified program(Any prog) returns Any
     inst.getExecCmd// Get the exec command used to run the program on this platform(Any prog, Any platPath) returns Any
     inst.getLinkTemplate// Get Linker Command file template used to link an executable(Any prog) returns Any
struct Platform.Board
index URL

Board-level description

XDCscript usage meta-domain
var obj = new Platform.Board;
    obj.id = String ...
    // unique id within the platform
    obj.boardName = String ...
    // name of the board
    obj.boardFamily = String ...
    // optional family name
    obj.boardRevision = String ...
    // optional revision string
struct Platform.Memory
index URL

A named contiguous range of addresses

XDCscript usage meta-domain
var obj = new Platform.Memory;
    obj.comment = String ...
    // description of this block
    obj.name = String ...
    // name of memory segment
    obj.space = String ...
    // "code", "data", "code/data", etc...
    obj.page = UInt ...
    // page of memory segment
    obj.base = UInt ...
    // base address of memory segment
    obj.len = UInt ...
    // length of memory segment
    obj.access = String ...
    // attributes of memory: "RWX"
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
config Platform.BOARD // module-wide
index URL
XDCscript usage meta-domain
Platform.BOARD = IPlatform.Board {
    id: "0",
    boardName: "generic",
    boardFamily: null,
    boardRevision: null
};
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Instance config-params object
    params.CPU = IExeContext.Cpu {
    //
        id: "0",
        clockRate: 0,
        catalogName: null,
        deviceName: null,
        revision: ""
    };
    params.catalogName = String undefined;
    // The name of the package that contains the module 'deviceName'
    params.clockRate = Double undefined;
    // The clock rate for the simulated device
    params.codeMemory = String null;
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String null;
    // The default segment for data sections
    params.deviceName = String undefined;
    // The CPU provided by this platform
    params.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectMap = String[string] undefined;
    // A mapping of linker output section names to memory segments
    params.stackMemory = String null;
    // The default segment for stack
config Platform.CPU // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 0,
    catalogName: null,
    deviceName: null,
    revision: ""
};
config Platform.catalogName // instance
index URL

The name of the package that contains the module 'deviceName'

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.catalogName = String undefined;
DETAILS
This parameter is required.
SEE
deviceName
config Platform.clockRate // instance
index URL

The clock rate for the simulated device

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.clockRate = Double undefined;
DETAILS
This parameter is required. There are no checks to determine if the device can actually support the given clock rate.
This clock rate is used to compute CPU loads and may be used by configuration scripts to configure/check on-device timers.
config Platform.codeMemory // instance
index URL

The default segment for code sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.codeMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "code" sections in the segment defined by this configuration parameter.
SEE
dataMemory, stackMemory
config Platform.customMemoryMap // instance
index URL

A custom mapping of memory names to memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.customMemoryMap = IPlatform.Memory[string] undefined;
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "data" sections in the segment defined by this configuration parameter.
SEE
codeMemory, stackMemory
config Platform.deviceName // instance
index URL

The CPU provided by this platform

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.deviceName = String undefined;
DETAILS
This parameter is required and named a module within a "catalog" package that implements the xdc.platform.ICpuDataSheet interface.
SEE
xdc.platform.ICpuDataSheet, catalogName
config Platform.externalMemoryMap // instance
index URL

A mapping of memory names to memory objects for external memory

XDCscript usage meta-domain
var params = new Platform.Params;
...
const params.externalMemoryMap = IPlatform.Memory[string] computed value;
DETAILS
This parameter defines the external portion of the platform's memory map.
config Platform.renameMap // instance
index URL

A map for renaming memory objects

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.renameMap = String[string] undefined;
DETAILS
This map renames memory objects. If you do not want to change addresses in the default memory map, but you only want to rename the existing memory objects, you should use this parameter.
This map and customMemoryMap should not be used together because this map renames the default memory, but then customMemoryMap replaces the default memory objects. The parameters codeMemory, dataMemory and stackMemory are not automatically reassigned to new names. It is the user's responsibility to set those parameters accordingly to renameMap.
config Platform.sectMap // instance
index URL

A mapping of linker output section names to memory segments

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.sectMap = String[string] undefined;
DETAILS
During the generation of linker command files, the templates used to create these files examine several sources of information to determine the placement of named output sections into memory segments defined by the platform. The default placement, described below, uses information from the target and this platform's codeMemory, dataMemory, and stackMemory configuration parameters.
sectMap is used to override this default placement of output sections (".text", ".cinit", etc.) to a memory segment defined by the platform's memory map. For example, even if a platform's codeMemory parameter is defined to be "SRAM" and ".cinit" output sections are "code" sections, if the platform also defines the following sectMap, the section ".cinit" will be placed into a memory segment named "DDR2".
      sectMap[] = [
          [".cinit", "DDR2"],
      ];
NOTE
If an output section has an entry in Program.sectMap, that entry overrides the placement specified by this sectMap. A program's sectMap configuration always overrides the platform's sectMap settings.
DEFAULT MAPPING
The default placement of a target's output sections into memory segments defined by the platform is determined by the following configuration parameters:
  • ITarget.sectMap used to map a named output section to either "code", "data", or "stack"
  • codeMemory names a memory segment that will contain all "code" output sections
  • dataMemory names a memory segment that will contain all "data" output sections
  • stackMemory names a memory segment that will contain all "stack" output sections
SEE
xdc.cfg.Program.sectMap, xdc.bld.ITarget.sectMap
config Platform.stackMemory // instance
index URL

The default segment for stack

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.stackMemory = String null;
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for that target generate. The value for each key is either "code" or "data" or "stack". A linker template reads that map and puts all "stack" sections in the segment defined by this configuration parameter.
SEE
dataMemory, codeMemory
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Platform.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Platform.create(String name, Any args, params);
// Create an instance-object
ARGUMENTS
name — the name of the platform instance being created
This name is the suffix of the platform specification supplied in the build script after the platform name (and optional ':') prefix has been removed. So the platform instance name "joes.platform.foo:bar" results in the name "bar" and the name "joes.platform.foo" result in the name "".
args — deprecated parameter that should not be used in a platform instance implementation
Platform.getExeContext() // instance
index URL

Get execution context object corresponding to the specified program

XDCscript usage meta-domain
inst.getExeContext(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target,
DETAILS
This is called before the program's configuration script runs to get the Cpu object that is assigned to the program's cpu field.
Note: that the build script for the program is responsible for specifying the CPU; this is done by either implicitly naming the platform or explicitly naming a particular CPU on the platform (see xdc.bld.Executable.Attrs.cpuId).
This function executes in the Configuration object model.
RETURNS
Returns an xdc.platform.IExeContext instance object that corresponds to the CPU that will run the specified program.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getExecCmd() // instance
index URL

Get the exec command used to run the program on this platform

XDCscript usage meta-domain
inst.getExecCmd(Any prog, Any platPath) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate Cpu object to return (if there is more than one): prog.build.cpuId, prog.build.cpuArgs, prog.build.target
platPath — full path to the platform package for the program
DETAILS
This function is called after the program's configuration script runs and returns commands that are used to load and run the specified program. These commands are placed in a makefile that is included by the client package's generated makefile. Thus, the commands may refer to macros defined in this environment; e.g., $(SHELL) and $(XDCROOT), etc.
The special macro $(1) expands to test-specific arguments (xdc.bld.Test.attrs.execArgs) that are passed from the test to the platform's exec command. Thus, all platforms that support arguments to their exec command, should embed "$(1)" within the command string at the appropriate place to have these arguments interpreted by the exec command.
For example, a platform that uses a shell script to run executables and allows options to be passed to the shell script might return the following string:
        "$(SHELL) <exec_path> $(1) <exe_name>"
where, <exec_path> is the absolute path to the platform's exec shell script, and <prog_name> is the name of the executable relative to the package's base directory (i.e., xdc.cfg.Program.name).
This function executes in the Configuration object model.
RETURNS
Returns a string of commands used to execute this program in the context of the XDC generated makefiles.
THROWS
Error exceptions are thrown for fatal errors.
Platform.getLinkTemplate() // instance
index URL

Get Linker Command file template used to link an executable

XDCscript usage meta-domain
inst.getLinkTemplate(Any prog) returns Any
ARGUMENTS
prog — the xdc.cfg.Program object representing the program being configured.
This object contains the following properties that allows the platform to determine the appropriate link template to return:
  • prog.build.cpuId,
  • prog.build.cpuArgs,
  • prog.build.target
DETAILS
In the event that no template is provided by the program configuration script (see xdc.cfg.Program.linkTemplate), the template file identified by this method is used to generate the linker command file used to create the executable.
This function executes in the Configuration object model and is called after the program configuration script runs. The template is expanded in the context of the Configuration Object Model.
RETURNS
Returns a path string to a template file or null. If null, no linker command file is generated; otherwise this path is relative to the package path.
THROWS
Error exceptions are thrown for fatal errors.
generated on Thu, 08 Nov 2012 02:13:32 GMT


module xdc.platform.generic.Platform

     1    /*
     2     *  ======== Platform.xdc ========
     3     */
     4
     5    /*!
     6     *  ======== Platform ========
     7     *  A generic platform that supports any HW platform
     8     *
     9     *  This module implements xdc.platform.IPlatform and defines configuration
    10     *  parameters that correspond to this platform's Cpu's, Board's, etc.
    11     */
    12    metaonly module Platform inherits xdc.platform.IPlatform
    13    {
    14        config xdc.platform.IPlatform.Board BOARD = {
    15            id:             "0",
    16            boardName:      "generic",
    17            boardFamily:    null,
    18            boardRevision:  null
    19        };
    20
    21    instance:
    22
    23        config xdc.platform.IExeContext.Cpu CPU = {
    24            id:             "0",
    25            clockRate:      0,
    26            catalogName:    null,
    27            deviceName:     null,
    28            revision:       "",
    29        };
    30
    31        /*!
    32         *  ======== deviceName ========
    33         *  The CPU provided by this platform
    34         *
    35         *  This parameter is required and named a module within a "catalog"
    36         *  package that implements the `xdc.platform.ICpuDataSheet` interface.
    37         *
    38         *  @see xdc.platform.ICpuDataSheet
    39         *  @see #catalogName
    40         */
    41        config string deviceName;
    42
    43        /*!
    44         *  ======== catalogName ========
    45         *  The name of the package that contains the module 'deviceName'.
    46         *
    47         *  This parameter is required.
    48         *
    49         *  @see #deviceName
    50         */
    51        config string catalogName;
    52
    53        /*!
    54         *  ======== clockRate ========
    55         *  The clock rate for the simulated device.
    56         *
    57         *  This parameter is required. There are no checks to determine if the
    58         *  device can actually support the given clock rate.
    59         *
    60         *  This clock rate is used to compute CPU loads and may be used
    61         *  by configuration scripts to configure/check on-device timers.
    62         */
    63        config Double clockRate;
    64
    65        /*
    66         *  ======== codeMemory ========
    67         *  See xdc.platform.IPlatform
    68         */
    69        override config string codeMemory = null;
    70
    71        /*
    72         *  ======== dataMemory ========
    73         *  See xdc.platform.IPlatform
    74         */
    75        override config string dataMemory = null;
    76
    77        /*
    78         *  ======== stackMemory ========
    79         *  See xdc.platform.IPlatform
    80         */
    81        override config string stackMemory = null;
    82    };
    83    /*
    84     *  @(#) xdc.platform.generic; 1, 0, 0,204; 11-3-2012 15:19:06; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    85     */
    86


package xdc.rta.tools.file
index URL

Tool for reading and decoding RTA data from a file

  • USAGE
  • OPTIONS
XDCspec declarations sourced in xdc/rta/tools/file/package.xdc
package xdc.rta.tools.file {
    module Main;
    // Command implementation
}
USAGE
xs xdc.rta.tools.file [--help]

    Usage
    [-p] [-h] [-m] [-e executable] [-x RTA XML file] [-d data input file] [-o output text file] [-c delimter character]
    [--help]

OPTIONS
-p
Whether to print the decoded records to the console

You may use this tool to simply print the decoded records, or you may have them redirected to a file to be processed elsewhere.

-h
Don't print the header when printing the decoded records
-m
Wait for the user to press enter before displaying the next packet

Without this flag, the tool will simply print all of the records in the data file to the screen. If this flag is set, then the tool will wait the user to press enter in between displaying each packet.

-e
Path to the executable which was used to generate the data file
-x
Optional path to the RTA XML file
-d
Path to the file containing the RTA log data
-o
Optional path to an output file to write the decoded records to

The tool will write the decoded records out as text to the specified out file. The record properties will be separated with a delimeter character so that they can be imported into a spreadsheet such as Excel.

-c
// TODO [-l output file for load data]

Delimiter character to use when writing out the file.

The character specified here will be inserted between each of the record fields so that the file can be imported into a spreadsheet such as excel.

generated on Thu, 08 Nov 2012 02:13:47 GMT


package xdc.rta.tools.file

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*
    14     *  ======== xdc.rta.tools.file ========
    15     *  Command line tool for reading and decoding RTA data from a file
    16     */
    17    package xdc.rta.tools.file {
    18        module Main;
    19    }


module xdc.rta.tools.file.Main

metaonly module xdc.rta.tools.file.Main
index URL

Command implementation

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/rta/tools/file/Main.xdc
var Main = xdc.useModule('xdc.rta.tools.file.Main');
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        ' ',
        'Usage',
        '[-p] [-h] [-m] [-e executable] [-x RTA XML file] [-d data input file] [-o output text file] [-c delimter character]',
        '[--help]',
        ' '
    ];
module-wide functions
     Main.exec// 'xs' script entry point(Any args) returns Any
     Main.main// 'xs' shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.dataFile// Path to the file containing the RTA log data = String "";
        params.delimiter// // TODO [-l output file for load data] = String "|";
        params.executable// Path to the executable which was used to generate the data file = String "";
        params.more// Wait for the user to press enter before displaying the next packet = Bool false;
        params.outputFile// Optional path to an output file to write the decoded records to = String "";
        params.printToScreen// Whether to print the decoded records to the console = Bool false;
        params.rtaXml// Optional path to the RTA XML file = String "";
        params.suppressHeader// Don't print the header when printing the decoded records = Bool false;
per-instance functions
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
config Main.usage // module-wide
index URL

Usage for this command

XDCscript usage meta-domain
Main.usage = String[] [
    ' ',
    'Usage',
    '[-p] [-h] [-m] [-e executable] [-x RTA XML file] [-d data input file] [-o output text file] [-c delimter character]',
    '[--help]',
    ' '
];
Main.exec() // module-wide
index URL

'xs' script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

'xs' shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.dataFile = String "";
    // Path to the file containing the RTA log data
    params.delimiter = String "|";
    // // TODO [-l output file for load data]
    params.executable = String "";
    // Path to the executable which was used to generate the data file
    params.more = Bool false;
    // Wait for the user to press enter before displaying the next packet
    params.outputFile = String "";
    // Optional path to an output file to write the decoded records to
    params.printToScreen = Bool false;
    // Whether to print the decoded records to the console
    params.rtaXml = String "";
    // Optional path to the RTA XML file
    params.suppressHeader = Bool false;
    // Don't print the header when printing the decoded records
config Main.dataFile // instance
index URL

Path to the file containing the RTA log data

XDCscript usage meta-domain
var params = new Main.Params;
...
params.dataFile = String "";
config Main.delimiter // instance
index URL

// TODO [-l output file for load data]

XDCscript usage meta-domain
var params = new Main.Params;
...
params.delimiter = String "|";
DETAILS
Delimiter character to use when writing out the file.
The character specified here will be inserted between each of the record fields so that the file can be imported into a spreadsheet such as excel.
config Main.executable // instance
index URL

Path to the executable which was used to generate the data file

XDCscript usage meta-domain
var params = new Main.Params;
...
params.executable = String "";
config Main.more // instance
index URL

Wait for the user to press enter before displaying the next packet

XDCscript usage meta-domain
var params = new Main.Params;
...
params.more = Bool false;
DETAILS
Without this flag, the tool will simply print all of the records in the data file to the screen. If this flag is set, then the tool will wait the user to press enter in between displaying each packet.
config Main.outputFile // instance
index URL

Optional path to an output file to write the decoded records to

XDCscript usage meta-domain
var params = new Main.Params;
...
params.outputFile = String "";
DETAILS
The tool will write the decoded records out as text to the specified out file. The record properties will be separated with a delimeter character so that they can be imported into a spreadsheet such as Excel.
config Main.printToScreen // instance
index URL

Whether to print the decoded records to the console

XDCscript usage meta-domain
var params = new Main.Params;
...
params.printToScreen = Bool false;
DETAILS
You may use this tool to simply print the decoded records, or you may have them redirected to a file to be processed elsewhere.
config Main.rtaXml // instance
index URL

Optional path to the RTA XML file

XDCscript usage meta-domain
var params = new Main.Params;
...
params.rtaXml = String "";
config Main.suppressHeader // instance
index URL

Don't print the header when printing the decoded records

XDCscript usage meta-domain
var params = new Main.Params;
...
params.suppressHeader = Bool false;
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:47 GMT


module xdc.rta.tools.file.Main

     1    /*!
     2     *  ======== Main ========
     3     *  Tool for reading and decoding RTA data from a file
     4     */
     5    metaonly module Main inherits xdc.tools.ICmd {
     6
     7        override config String usage[] = [
     8            ' ',
     9            'Usage',
    10            '[-p] [-h] [-m] [-e executable] [-x RTA XML file] [-d data input file] [-o output text file] [-c delimter character]',
    11            '[--help]',
    12            ' ',
    13        ];
    14
    15    instance:
    16
    17        /*!
    18         *  ======== printToScreen ========
    19         *  Whether to print the decoded records to the console.
    20         *
    21         *  You may use this tool to simply print the decoded records, or you
    22         *  may have them redirected to a file to be processed elsewhere.
    23         */
    24        @CommandOption('p')
    25        config Bool printToScreen = false;
    26
    27        /*!
    28         *  ======== suppressHeader ========
    29         *  Don't print the header when printing the decoded records.
    30         */
    31        @CommandOption('h')
    32        config Bool suppressHeader = false;
    33
    34        /*!
    35         *  ======== more ========
    36         *  Wait for the user to press enter before displaying the next packet.
    37         *
    38         *  Without this flag, the tool will simply print all of the records in the
    39         *  data file to the screen. If this flag is set, then the tool will wait
    40         *  the user to press enter in between displaying each packet.
    41         */
    42        @CommandOption('m')
    43        config Bool more = false;
    44
    45        /*!
    46         *  ======== executable ========
    47         *  Path to the executable which was used to generate the data file.
    48         */
    49        @CommandOption('e')
    50        config String executable = "";
    51
    52        /*!
    53         *  ======== rtaXml ========
    54         *  Optional path to the RTA XML file.
    55         */
    56        @CommandOption('x')
    57        config String rtaXml = "";
    58
    59        /*!
    60         *  ======== dataFile ========
    61         *  Path to the file containing the RTA log data.
    62         */
    63        @CommandOption('d')
    64        config String dataFile = "";
    65
    66        /*!
    67         *  ======== outputFile ========
    68         *  Optional path to an output file to write the decoded records to.
    69         *
    70         *  The tool will write the decoded records out as text to the specified
    71         *  out file. The record properties will be separated with a delimeter
    72         *  character so that they can be imported into a spreadsheet such as
    73         *  Excel.
    74         */
    75        @CommandOption('o')
    76        config String outputFile = "";
    77
    78        /*!
    79         *  ======== loadFile ========
    80         *  // TODO
    81         *  [-l output file for load data]
    82         */
    83
    84        /*!
    85         *  ======== delimiter ========
    86         *  Delimiter character to use when writing out the file.
    87         *
    88         *  The character specified here will be inserted between each of the
    89         *  record fields so that the file can be imported into a spreadsheet
    90         *  such as excel.
    91         */
    92        @CommandOption('c')
    93        config String delimiter = "|";
    94
    95    }


package xdc.runtime
index URL

Basic runtime support for RTSC programs

  • DETAILS
  • DIAGNOSTICS AND LOGS
  • MEMORY MANAGEMENT
  • CONCURRENCY SUPPORT
  • STARTUP AND SHUTDOWN
The modules and interfaces in the xdc.runtime package form the "core" RTSC target runtime support library which provides basic system services required by virtually all applications. [ more ... ]
XDCspec declarations sourced in xdc/runtime/package.xdc
package xdc.runtime [2, 1, 0] {
    interface IFilterLogger;
    // Interface for supporting filtering of Log events by detail level
    interface IGateProvider;
    // Interface implemented by all gate providers
    interface IHeap;
    // Interface to heap functions
    interface IInstance;
    // Common instance params
    interface ILogger;
    // Interface to service Log events
    interface IModule;
    // Base interface for all modules
    interface ISystemSupport;
    // Interface to core system functions
    interface ITimestampClient;
    // Timestamp Client Interface
    interface ITimestampProvider;
    // Timestamp provider interface
    module Assert;
    // Runtime assertion manager
    module Defaults;
    // Default attributes inherited by all target modules
    module Diags;
    // Diagnostics manager
    module Error;
    // Runtime error manager
    module Gate;
    // Critical section support
    module GateNull;
    // Empty implementation of IGateProvider
    module HeapMin;
    // Growth-only based heap implementation
    module HeapStd;
    // Malloc/free based heap implementation
    module Log;
    // Event logging manager
    module LoggerBuf;
    // A logger which stores Log events in a buffer
    module LoggerCallback;
    // A logger that passes events to a user supplied callback function
    module LoggerSys;
    // A logger which routes events to the System_printf function
    module Main;
    // Configuration "stand-in" for application code
    module Memory;
    // Static and run-time memory manager
    module Registry;
    // Register modules that are not statically configured
    module Reset;
    // Startup reset function manager
    module Rta;
    // The Rta module contains target and configuration code for providing RTA support
    module Startup;
    // The xdc.runtime startup bootstrap
    module SysCallback;
    // ISystemSupport implementation for user callback functions
    module SysMin;
    // Minimal implementation of ISystemSupport
    module SysStd;
    // Implementation of ISystemSupport using ANSI C Standard Library
    module System;
    // Basic system services
    module Text;
    // Runtime text handling services
    module Timestamp;
    // Timestamp services
    module TimestampNull;
    // Empty implementation of ITimestampProvider
    module TimestampStd;
    // Implementation of ITimestampProvider using ANSI C clock()
    module Types;
    // Basic constants and types
}
DETAILS
The modules and interfaces in the xdc.runtime package form the "core" RTSC target runtime support library which provides basic system services required by virtually all applications.
Since this package's services are intended to be available to any C/C++ client, this package does not contain any pre-compiled libraries. Instead, this package provides complete sources which are built and supplied by a target-specific package named by the rts parameter of the target used to build the client sources. This "indirection" make it possible for new targets to be added by interested parties whithout ever having to update this package.
The functionality provided by this package can be roughly partitioned into four categories:
  1. Diagnostics and Logs
  2. Memory Management
  3. Concurrency Support
  4. Startup and Shutdown
DIAGNOSTICS AND LOGS
This package provides for diagnostics with a set of modules that operate together to configure and implement diagnostics.
The modules can be partitioned into three groups: modules that generate events, a module that allows precise control over when (or if) various events are generated, and modules that manage the output or display of the events.
Assert, Error, and Log provide methods that are added to source code and generate events. The Diags module provides both configuration and runtime methods to selectively enable or disable different types of events on a per module basis. Finally, LoggerBuf, LoggerSys and LoggerCallback are simple alternative implementations of the ILogger event "handler" interface. You can provide more sophisticated or platform-specific implementations of ILogger without making any changes to code that uses Assert, Log, Error, or Diags.
The diagnostics and logger modules include the following:
  • Assert - Add integrity checks to the code.
  • Diags - Manage a module's diagnostics mask.
  • Error - Raise error events.
  • Log - Generate log events in realtime.
  • LoggerBuf - A logger using a buffer for log events.
  • LoggerCallback - A logger using user defined callback function for log events.
  • LoggerSys - A logger using printf for log events.
  • Types - Define diagnostics configuration parameters.
  • Timestamp - Simple timestamp service
MEMORY MANAGEMENT
The memory management modules include the following:
  • Memory - module used by clients to allocate and free memory
  • HeapMin - Deterministic implementation that minimizes code size footprint by not supporting reuse of allocated memory.
  • HeapStd - Implementation that builds atop ANSI C malloc() and free()
CONCURRENCY SUPPORT
The concurency support modules include the following:
  • Gate - module used by clients to serialize access to shared data structures
  • GateNull - "null" implementation for applications that don't need serialization; e.g., single threaded applications
STARTUP AND SHUTDOWN
The system startup and shutdown support modules include:
  • Reset - Manages platform-specific startup initialization before main() is called
  • Startup - Manages "portable" startup initialization before main() is called
  • System - In addition to other basic services (such as printf), this module provides an atexit capability that allows modules to cleanly exit during normal application terminiation.
  • SysCallback - Implementation of ISystemSupport that calls back user defined functions.
  • SysMin - Minimal implementation of ISystemSupport required by the System module, suitable for deeply embedded applications.
  • SysStd - Implementation of ISystemSupport that relies on ANSI C Standard I/O Library functions.
generated on Thu, 08 Nov 2012 02:13:26 GMT


package xdc.runtime

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*!
    14     *  ======== xdc.runtime ========
    15     *  Basic runtime support for RTSC programs
    16     *
    17     *  The modules and interfaces in the `xdc.runtime` package form the "core"
    18     *  RTSC target runtime support library which provides basic system services
    19     *  required by virtually all applications.
    20     *
    21     *  Since this package's services are intended to be available to any
    22     *  C/C++ client, this package does not contain any pre-compiled libraries.
    23     *  Instead, this package provides complete sources which are built and
    24     *  supplied by a target-specific package named by the
    25     *  `{@link xdc.bld.ITarget#rts rts}` parameter of the target used to build
    26     *  the client sources.  This "indirection" make it possible for new targets
    27     *  to be added by interested parties whithout ever having to update this
    28     *  package.
    29     *
    30     *  The functionality provided by this package can be roughly partitioned
    31     *  into four categories:
    32     *  @p(nlist)
    33     *      - Diagnostics and Logs
    34     *      - Memory Management
    35     *      - Concurrency Support
    36     *      - Startup and Shutdown
    37     *  @p
    38     *  @a(Diagnostics and Logs)
    39     *  This package provides for diagnostics with a set of modules that operate
    40     *  together to configure and implement diagnostics.
    41     *
    42     *  The modules can be partitioned into three groups: modules that
    43     *  generate events, a module that allows precise control over when
    44     *  (or if) various events are generated, and modules that manage the
    45     *  output or display of the events.
    46     *
    47     *  `{@link Assert}`, `{@link Error}`, and `{@link Log}` provide methods that
    48     *  are added to source code and generate events. The `{@link Diags}` module
    49     *  provides both configuration and runtime methods to selectively enable or
    50     *  disable different types of events on a per module basis. Finally,
    51     *  `{@link LoggerBuf}`, `{@link LoggerSys}` and `{@link LoggerCallback}` are
    52     *  simple alternative implementations of the `{@link ILogger}` event "handler"
    53     *  interface. You can provide more sophisticated or platform-specific
    54     *  implementations of `ILogger` without making any changes to code that
    55     *  uses `Assert`, `Log`, `Error`, or `Diags`.
    56     *
    57     *  The diagnostics and logger modules include the following:
    58     *  @p(blist)
    59     *  - `{@link Assert}`         - Add integrity checks to the code.
    60     *  - `{@link Diags}`          - Manage a module's diagnostics mask.
    61     *  - `{@link Error}`          - Raise error events.
    62     *  - `{@link Log}`            - Generate log events in realtime.
    63     *  - `{@link LoggerBuf}`      - A logger using a buffer for log events.
    64     *  - `{@link LoggerCallback}` - A logger using user defined callback function
    65     *                               for log events.
    66     *  - `{@link LoggerSys}`      - A logger using printf for log events.
    67     *  - `{@link Types}`          - Define diagnostics configuration parameters.
    68     *  - `{@link Timestamp}`      - Simple timestamp service
    69     *  @p
    70     *
    71     *  @a(Memory Management)
    72     *  The memory management modules include the following:
    73     *  @p(blist)
    74     *  - `{@link Memory}`  - module used by clients to allocate and free memory
    75     *  - `{@link HeapMin}` - Deterministic implementation that minimizes code
    76     *                        size footprint by not supporting reuse of allocated
    77     *                        memory.
    78     *  - `{@link HeapStd}` - Implementation that builds atop ANSI C `malloc()`
    79     *                        and `free()`
    80     *  @p
    81     *
    82     *  @a(Concurrency Support)
    83     *  The concurency support modules include the following:
    84     *  @p(blist)
    85     *  - `{@link Gate}`     -  module used by clients to serialize access to
    86     *                          shared data structures
    87     *  - `{@link GateNull}` - "null" implementation for applications that
    88     *                         don't need serialization; e.g., single threaded
    89     *                         applications
    90     *  @p
    91     *
    92     *  @a(Startup and Shutdown)
    93     *  The system startup and shutdown support modules include:
    94     *  @p(blist)
    95     *  - `{@link Reset}`       - Manages platform-specific startup initialization
    96     *                            before `main()` is called
    97     *  - `{@link Startup}`     - Manages "portable" startup initialization before
    98     *                            `main()` is called
    99     *  - `{@link System}`      - In addition to other basic services (such as
   100     *                            `printf`), this module provides an `atexit`
   101     *                            capability that allows modules to cleanly exit
   102     *                            during normal application terminiation.
   103     *  - `{@link SysCallback}` - Implementation of `{@link ISystemSupport}`
   104     *                            that calls back user defined functions.
   105     *  - `{@link SysMin}`      - Minimal implementation of `{@link ISystemSupport}`
   106     *                            required by the `System` module, suitable for
   107     *                            deeply embedded applications.
   108     *  - `{@link SysStd}`      - Implementation of `{@link ISystemSupport}`
   109     *                            that relies on ANSI C Standard I/O Library
   110     *                            functions.
   111     *  @p
   112     */
   113    package xdc.runtime [2,1,0] {
   114        interface IModule, IInstance;
   115        interface IHeap, ILogger, IFilterLogger;
   116        interface ISystemSupport;
   117        interface IGateProvider;
   118        interface ITimestampClient, ITimestampProvider;
   119        module Assert;
   120        module Core;
   121        module Defaults;
   122        module Diags;
   123        module Error;
   124        module Gate, GateNull;
   125        module Log, LoggerBuf, LoggerCallback, LoggerSys;
   126        module Main;
   127        module Memory, HeapMin, HeapStd;
   128        module Registry;
   129        module Rta;
   130        module Startup, Reset;
   131        module System, SysCallback, SysMin, SysStd;
   132        module Text;
   133        module Timestamp, TimestampNull, TimestampStd;
   134        module Types;
   135    }
   136    /*
   137     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:15; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   138     */
   139


module xdc.runtime.Assert
index URL

Runtime assertion manager

  • C synopsis
  • Individual elements
  • DETAILS
  • EXAMPLES
  • XDCscript usage
  • Individual elements
The Assert module provides configurable diagnostics to the program. Similar to the standard C assert() macro, Assert methods are interspersed with other code to add diagnostics to a program. Unlike the standard C assert support, the Assert module provides greater flexibility in managing the messages displayed, the message string space overhead, and the runtime handling of failures. In addition, because the Assert methods build atop the Diags module, you can precisely control which asserts remain in the final application, if any. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Assert.xdc
#include <xdc/runtime/Assert.h>
Functions
macro Void | Assert_isTrue// Test an assertion(Bool expr, Assert_Id id);
Functions common to all target modules
 | Assert_Module_getMask// Returns the diagnostics mask for this module, Assert_Module_hasMask// Test whether this module has a diagnostics mask, Assert_Module_heap// The heap from which this module allocates memory, Assert_Module_id// Get this module's unique id, Assert_Module_setMask// Set the diagnostics mask for this module, Assert_Module_startupDone// Test if this module has completed startup
Typedefs
typedef opaque | Assert_Id// Assert identifier;
Constants
extern const Error_Id | Assert_E_assertFailed// The Error.Id raised when an assertion violation is detected;
DETAILS
The Assert module provides configurable diagnostics to the program. Similar to the standard C assert() macro, Assert methods are interspersed with other code to add diagnostics to a program. Unlike the standard C assert support, the Assert module provides greater flexibility in managing the messages displayed, the message string space overhead, and the runtime handling of failures. In addition, because the Assert methods build atop the Diags module, you can precisely control which asserts remain in the final application, if any.
The Assert module works in conjunction with the Diags module. Assert statements are added to the code using the Assert_isTrue() function. Execution of assert statements is controlled by the Diags.ASSERT and Diags.INTERNAL bits in a module's diagnostics mask. By default, all module's Diags_ASSERT bit is enabled and the Diags_INTERNAL bit is disabled. See Types.Common$ for the declaration of the bits in the diagnostics mask and Default.common$ for the default module settings.
Two types of asserts are supported: public asserts and internal asserts.
  • Public asserts have an assert ID and are, by default, controlled by the Diags.ASSERT bit.
  • Internal asserts don't have an assert ID (other than NULL) and are active only when both the Diags.ASSERT and Diags.INTERNAL bits of the module's diagnostics mask are set.
Assert IDs are small integer values that index into a table of assertion descriptors. These descriptors hold an error message and a diagnostics mask that is used to enable and disable the assertion at runtime.
You can remap individual public asserts to different bits in the diagnostics mask, or can disable the assert altogether. This is done by setting the mask property of the assert ID. Setting the mask to 0 disables the assert. In all other cases, the Diags.ASSERT bit is OR'd together with the mask to define the controlling bits. For example, the module's diagnostics mask must have the Diags.ASSERT bit set and any other bit specified in the mask property of the assert ID in order to activate the assert.
EXAMPLES
Example 1: The following C code adds an assert to application code which is not in a module. This assert does not have an assert identifier (the second argument is NULL); this makes it an internal assert.
  // file.c
  #include <xdc/runtime/Assert.h>

  Assert_isTrue(count > 0, NULL);
The following XDC configuration statements set both the ASSERT and INTERNAL bits in the diagnostics mask to enable the internal assert created in the previous C code. Since the C code is not in a module, you must set the bits in the diagnostics mask of the xdc.runtime.Main module. The Main module is used to control all Log and Assert statements that are not part of the implementation of a module; for example, top-level application code or any existing sources that simply call the Log or Assert methods.
  // program.cfg
  var Assert = xdc.useModule('xdc.runtime.Assert');
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var Main = xdc.useModule('xdc.runtime.Main');

  Main.common$.diags_ASSERT = Diags.ALWAYS_ON;
  Main.common$.diags_INTERNAL = Diags.ALWAYS_ON;
Example 2: The following example shows how to use and configure an assert ID that is declared by a module. It adds that assert to the application's C source code, and configures the application to execute the assert.
This is part of the XDC file for the module that declares an Assert Id:
  // Mod.xdc
  import xdc.runtime.Assert;
  import xdc.runtime.Diags;

  config Assert.Id A_nonZero = {
      msg: "A_nonZero: value must be non-zero"
  };
This is part of the C code for the application:
  // Mod.c
  #include <xdc/runtime/Assert.h>

  Assert_isTrue(x != 0, Mod_A_nonZero);
This is part of the XDC configuration file for the application:
  // program.cfg
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var Mod = xdc.useModule('my.pkg.Mod');
  Mod.common$.diags_ASSERT = Diags.ALWAYS_ON;
typedef Assert_Id
index URL

Assert identifier

C synopsis target-domain
typedef opaque Assert_Id;
DETAILS
Each metaonly assert descriptor is encoded into a target accessable assert Id type which can be passed to the isTrue function.
config Assert_E_assertFailed // module-wide
index URL

The Error.Id raised when an assertion violation is detected

C synopsis target-domain
extern const Error_Id Assert_E_assertFailed;
DETAILS
When an assertion violation is triggered, an error is raised via Error_raise(). E_assert_Failed is the Error.Id passed to Error_raise().
The first string argument (%s) will be either "", if the assertion Id is NULL (for internal asserts), or ": " (for public asserts). The second string argument (%s) is the Assert.Desc.msg string associated with the assertion Id; if the Id is NULL (an internal assert) or if text is not loaded (!Text.isLoaded()), this string is "".
SEE
isTrue, Error.Id
Assert_isTrue() // module-wide
index URL

Test an assertion

C synopsis target-domain
macro Void Assert_isTrue(Bool expr, Assert_Id id);
ARGUMENTS
expr — the expression which should evaluate to true
id — identifies the assert being raised
DETAILS
Assert_isTrue() statements may be conditionally enabled (disabled) on a per module basis by setting the calling module's $common.diags_ASSERT configuration parameter. If the Assert_isTrue() statement is not in a module, the calling module is the Main module. You must enable the Diags.ASSERT bit in the module's diagnostics mask for this call to be enabled. If a NULL assert id is specified, then you must enable the Diags.INTERNAL in addition to the ASSERT bit.
If the Assert_isTrue() statement is enabled and expr evaluates to false, the assert specified by id is raised; i.e., the E_assertFailed error is raised with a NULL error block. In other words, the standard Error.raise handling hooks will be run, System.abort() will be called, and control does not return to the caller. The id may be null, in which case you will get a generic assert message.
EXAMPLES
C Code
  #include <xdc/runtime/Assert.h>

  Assert_isTrue(count > 0, NULL);
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Assert_Module_id();
// Get this module's unique id
Bool Assert_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Assert_Module_heap();
// The heap from which this module allocates memory
Bool Assert_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Assert_Module_getMask();
// Returns the diagnostics mask for this module
Void Assert_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Assert.xdc
var Assert = xdc.useModule('xdc.runtime.Assert');
module-wide constants & types
    var obj = new Assert.Desc// Assert descriptor;
        obj.mask = Bits16 ...
        obj.msg = String ...
module-wide config parameters
    const Assert.E_assertFailed// The Error.Id raised when an assertion violation is detected = Error.Desc {
        msg: "assertion failure%s%s"
    };
     Assert.common$// Common module configuration parameters = Types.Common$ undefined;
metaonly struct Assert.Desc
index URL

Assert descriptor

XDCscript usage meta-domain
var obj = new Assert.Desc;
    obj.mask = Bits16 ...
    obj.msg = String ...
FIELDS
mask — Specifies which bits enable the assert.
msg — The message printed when the assert fails.
DETAILS
Each public assert is defined with an assert descriptor. This structure defines which bits in the module's diagnostics mask control this assert, and the message raised when the assert fails. The mask property is optional, it defaults to the Diags.ASSERT bit.
config Assert.E_assertFailed // module-wide
index URL

The Error.Id raised when an assertion violation is detected

XDCscript usage meta-domain
const Assert.E_assertFailed = Error.Desc {
    msg: "assertion failure%s%s"
};
DETAILS
When an assertion violation is triggered, an error is raised via Error_raise(). E_assert_Failed is the Error.Id passed to Error_raise().
The first string argument (%s) will be either "", if the assertion Id is NULL (for internal asserts), or ": " (for public asserts). The second string argument (%s) is the Assert.Desc.msg string associated with the assertion Id; if the Id is NULL (an internal assert) or if text is not loaded (!Text.isLoaded()), this string is "".
SEE
isTrue, Error.Id
C SYNOPSIS
Assert_E_assertFailed
metaonly config Assert.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Assert.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 Thu, 08 Nov 2012 02:13:24 GMT


module xdc.runtime.Assert

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Assert.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== Assert ========
    19     *  Runtime assertion manager
    20     *
    21     *  The `Assert` module provides configurable diagnostics to the program.
    22     *  Similar to the standard C `assert()` macro, `Assert` methods are
    23     *  interspersed with other code to add diagnostics to a program. Unlike
    24     *  the standard C assert support, the `Assert` module provides greater
    25     *  flexibility in managing the messages displayed, the message string
    26     *  space overhead, and the runtime handling of failures. In addition,
    27     *  because the `Assert` methods build atop the Diags module, you can
    28     *  precisely control which asserts remain in the final application, if any.
    29     *
    30     *  The `Assert` module works in conjunction with the `{@link Diags}` module.
    31     *  `Assert` statements are added to the code using the
    32     *  `{@link #isTrue Assert_isTrue()}` function. Execution of assert
    33     *  statements is controlled by the `{@link Diags#ASSERT}` and
    34     *  `{@link Diags#INTERNAL}` bits in a module's diagnostics mask. By default,
    35     *  all module's `Diags_ASSERT` bit is enabled and the `Diags_INTERNAL` bit
    36     *  is disabled.  See `{@link Types#Common$ Types.Common$}` for the
    37     *  declaration of the bits in the diagnostics mask and
    38     *  `{@link Defaults#common$ Default.common$}` for the default module settings.
    39     *
    40     *  Two types of asserts are supported: public asserts and internal asserts.
    41     *
    42     *  @p(blist)
    43     *  - Public asserts have an assert ID and are, by default, controlled
    44     *  by the `{@link Diags#ASSERT}` bit.
    45     *  - Internal asserts don't have an assert ID (other than NULL) and
    46     *  are active only when both the `{@link Diags#ASSERT}` and
    47     *  `{@link Diags#INTERNAL}` bits of the module's diagnostics mask are set.
    48     *  @p
    49     *
    50     *  `Assert` IDs are small integer values that index into a table of
    51     *  assertion descriptors. These descriptors hold an error message
    52     *  and a diagnostics mask that is used to enable and disable the
    53     *  assertion at runtime.
    54     *
    55     *  You can remap individual public asserts to different bits in the
    56     *  diagnostics mask, or can disable the assert altogether. This is
    57     *  done by setting the mask property of the assert ID. Setting the
    58     *  mask to 0 disables the assert. In all other cases, the `Diags.ASSERT`
    59     *  bit is OR'd together with the mask to define the controlling bits.
    60     *  For example, the module's diagnostics mask must have the `Diags.ASSERT`
    61     *  bit set and any other bit specified in the mask property of the
    62     *  assert ID in order to activate the assert.
    63     *
    64     *  @a(Examples)
    65     *  @p(html)
    66     *  <hr />
    67     *  @p
    68     *  Example 1: The following C code adds an assert to application code
    69     *  which is not in a module. This assert does not have an assert
    70     *  identifier (the second argument is NULL); this makes it an internal
    71     *  assert.
    72     *
    73     *  @p(code)
    74     *  // file.c
    75     *  #include <xdc/runtime/Assert.h>
    76     *
    77     *  Assert_isTrue(count > 0, NULL);
    78     *  @p
    79     *
    80     *  The following XDC configuration statements set both the ASSERT and
    81     *  INTERNAL bits in the diagnostics mask to enable the internal assert
    82     *  created in the previous C code. Since the C code is not in a module,
    83     *  you must set the bits in the diagnostics mask of the
    84     *  `{@link xdc.runtime.Main xdc.runtime.Main}` module. The Main module
    85     *  is used to control all `{@link Log}` and `Assert` statements that are
    86     *  not part of the implementation of a module; for example, top-level
    87     *  application code or any existing sources that simply call the `Log` or
    88     *  `Assert` methods.
    89     *
    90     *  @p(code)
    91     *  // program.cfg
    92     *  var Assert = xdc.useModule('xdc.runtime.Assert');
    93     *  var Diags = xdc.useModule('xdc.runtime.Diags');
    94     *  var Main = xdc.useModule('xdc.runtime.Main');
    95     *
    96     *  Main.common$.diags_ASSERT = Diags.ALWAYS_ON;
    97     *  Main.common$.diags_INTERNAL = Diags.ALWAYS_ON;
    98     *  @p
    99     *
   100     *  @p(html)
   101     *  <hr />
   102     *  @p
   103     *  Example 2: The following example shows how to use and configure an
   104     *  assert ID that is declared by a module. It adds that assert to the
   105     *  application's C source code, and configures the application to
   106     *  execute the assert.
   107     *
   108     *  This is part of the XDC file for the module that declares an `Assert` Id:
   109     *
   110     *  @p(code)
   111     *  // Mod.xdc
   112     *  import xdc.runtime.Assert;
   113     *  import xdc.runtime.Diags;
   114     *
   115     *  config Assert.Id A_nonZero = {
   116     *      msg: "A_nonZero: value must be non-zero"
   117     *  };
   118     *  @p
   119     *
   120     *  This is part of the C code for the application:
   121     *
   122     *  @p(code)
   123     *  // Mod.c
   124     *  #include <xdc/runtime/Assert.h>
   125     *
   126     *  Assert_isTrue(x != 0, Mod_A_nonZero);
   127     *  @p
   128     *
   129     *  This is part of the XDC configuration file for the application:
   130     *
   131     *  @p(code)
   132     *  // program.cfg
   133     *  var Diags = xdc.useModule('xdc.runtime.Diags');
   134     *  var Mod = xdc.useModule('my.pkg.Mod');
   135     *  Mod.common$.diags_ASSERT = Diags.ALWAYS_ON;
   136     *  @p
   137     */
   138
   139    @CustomHeader
   140
   141    module Assert {
   142
   143        /*!
   144         *  ======== Assert_Desc ========
   145         *  Assert descriptor
   146         *
   147         *  Each public assert is defined with an assert descriptor. This
   148         *  structure defines which bits in the module's diagnostics mask
   149         *  control this assert, and the message raised when the assert fails.
   150         *  The mask property is optional, it defaults to the
   151         *  `{@link Diags#ASSERT}` bit.
   152         *
   153         *  @field(mask)    Specifies which bits enable the assert.
   154         *  @field(msg)     The message printed when the assert fails.
   155         */
   156        metaonly struct Desc {
   157            Diags.Mask mask;
   158            String msg;
   159        };
   160
   161        /*!
   162         *  ======== Assert_Id ========
   163         *  Assert identifier
   164         *
   165         *  Each metaonly assert descriptor is encoded into a target accessable
   166         *  assert Id type which can be passed to the `{@link #isTrue}` function.
   167         */
   168        @Encoded typedef Desc Id;
   169
   170        /*!
   171         *  ======== E_assertFailed ========
   172         *  The `{@link Error#Id}` raised when an assertion violation is detected
   173         *
   174         *  When an assertion violation is triggered, an error is raised via
   175         *  `Error_raise()`.  `E_assert_Failed` is the `{@link Error#Id}` passed
   176         *  to `Error_raise()`.
   177         *
   178         *  The first string argument (%s) will be either "", if the assertion Id
   179         *  is `NULL` (for internal asserts), or ": " (for public asserts).
   180         *  The second string argument (%s) is the
   181         *  `Assert.Desc.msg` string associated with the assertion Id; if the
   182         *  Id is `NULL`  (an internal assert) or if text is not loaded
   183         *  (`!{@link Text#isLoaded}()`), this string is "".
   184         *
   185         *  @see #isTrue
   186         *  @see Error#Id
   187         */
   188        readonly config Error.Id E_assertFailed = {msg: "assertion failure%s%s"};
   189
   190        /*!
   191         *  ======== Assert_isTrue ========
   192         *  Test an assertion
   193         *
   194         *  `Assert_isTrue()` statements may be conditionally enabled (disabled)
   195         *  on a per module basis by setting the calling module's
   196         *  `{@link IModule#$common $common.diags_ASSERT}` configuration
   197         *  parameter.  If
   198         *  the `Assert_isTrue()` statement is not in a module, the calling
   199         *  module is the `{@link Main}` module.  You must enable the
   200         *  `{@link Diags#ASSERT}` bit in the module's diagnostics mask for this
   201         *  call to be enabled.  If a `NULL` assert id is specified, then you
   202         *  must enable the `{@link Diags#INTERNAL}` in addition to the
   203         *  `ASSERT` bit.
   204         *
   205         *  If the `Assert_isTrue()` statement is enabled and `expr` evaluates to
   206         *  false, the assert specified by `id` is raised; i.e., the
   207         *  `{@link #E_assertFailed}` error is raised with a `NULL`
   208         *  error block.  In other words, the standard `{@link Error#raise}`
   209         *  handling hooks will be run, `{@link System#abort()}` will be called,
   210         *  and control does not return to the caller.  The `id` may be `null`, in
   211         *  which case you will get a generic assert message.
   212         *
   213         *  @param(expr)    the expression which should evaluate to true
   214         *  @param(id)      identifies the assert being raised
   215         *
   216         *  @a(Examples)
   217         *  C Code
   218         *  @p(code)
   219         *  #include <xdc/runtime/Assert.h>
   220         *
   221         *  Assert_isTrue(count > 0, NULL);
   222         *  @p
   223         */
   224        @Macro Void isTrue(Bool expr, Id id);
   225
   226    internal:
   227
   228        Void raise(Types.ModuleId mod, String file, Int line, Id id);
   229
   230    }
   231    /*
   232     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:12; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   233     */
   234


module xdc.runtime.Defaults
index URL

Default attributes inherited by all target modules

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module defines default values for common$ structure. If other modules do not set common$ properties explicitly, these values will be used.
C synopsis target-domain sourced in xdc/runtime/Defaults.xdc
#include <xdc/runtime/Defaults.h>
Functions common to all target modules
Defaults_Module_getMask// Returns the diagnostics mask for this module, Defaults_Module_hasMask// Test whether this module has a diagnostics mask, Defaults_Module_heap// The heap from which this module allocates memory, Defaults_Module_id// Get this module's unique id, Defaults_Module_setMask// Set the diagnostics mask for this module, Defaults_Module_startupDone// Test if this module has completed startup
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Defaults_Module_id();
// Get this module's unique id
Bool Defaults_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Defaults_Module_heap();
// The heap from which this module allocates memory
Bool Defaults_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Defaults_Module_getMask();
// Returns the diagnostics mask for this module
Void Defaults_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Defaults.xdc
var Defaults = xdc.useModule('xdc.runtime.Defaults');
module-wide config parameters
    const Defaults.noRuntimeCommon$// Defaults inherited by the target modules that do not need the runtime support = Types.Common$ {
        diags_ASSERT: Diags.ALWAYS_OFF,
        diags_ENTRY: Diags.ALWAYS_OFF,
        diags_EXIT: Diags.ALWAYS_OFF,
        diags_INTERNAL: Diags.ALWAYS_OFF,
        diags_LIFECYCLE: Diags.ALWAYS_OFF,
        diags_STATUS: Diags.ALWAYS_OFF,
        diags_USER1: Diags.ALWAYS_OFF,
        diags_USER2: Diags.ALWAYS_OFF,
        diags_USER3: Diags.ALWAYS_OFF,
        diags_USER4: Diags.ALWAYS_OFF,
        diags_USER5: Diags.ALWAYS_OFF,
        diags_USER6: Diags.ALWAYS_OFF,
        diags_USER7: Diags.ALWAYS_OFF,
        diags_INFO: Diags.ALWAYS_OFF,
        diags_USER8: Diags.ALWAYS_OFF,
        diags_ANALYSIS: Diags.ALWAYS_OFF,
        fxntab: false,
        gate: null,
        gateParams: null,
        instanceHeap: null,
        instanceSection: null,
        logger: null,
        memoryPolicy: Types.STATIC_POLICY,
        namedInstance: false,
        namedModule: false,
        romPatchTable: false
    };
     Defaults.common$// Defaults inherited by all target modules = Types.Common$ {
        diags_ASSERT: Diags.ALWAYS_ON,
        diags_ENTRY: Diags.ALWAYS_OFF,
        diags_EXIT: Diags.ALWAYS_OFF,
        diags_INTERNAL: Diags.ALWAYS_OFF,
        diags_LIFECYCLE: Diags.ALWAYS_OFF,
        diags_STATUS: Diags.ALWAYS_ON,
        diags_USER1: Diags.ALWAYS_OFF,
        diags_USER2: Diags.ALWAYS_OFF,
        diags_USER3: Diags.ALWAYS_OFF,
        diags_USER4: Diags.ALWAYS_OFF,
        diags_USER5: Diags.ALWAYS_OFF,
        diags_USER6: Diags.ALWAYS_OFF,
        diags_USER7: Diags.ALWAYS_OFF,
        diags_INFO: Diags.ALWAYS_OFF,
        diags_USER8: Diags.ALWAYS_OFF,
        diags_ANALYSIS: Diags.ALWAYS_OFF,
        fxntab: true,
        gate: null,
        gateParams: null,
        instanceHeap: null,
        instanceSection: null,
        logger: null,
        memoryPolicy: Types.DELETE_POLICY,
        namedInstance: false,
        namedModule: true,
        romPatchTable: false
    };
module-wide functions
     Defaults.getCommon// Get a specified common parameter from a module(IModule.Module mod, String param) returns Any
metaonly config Defaults.noRuntimeCommon$ // module-wide
index URL

Defaults inherited by the target modules that do not need the runtime support

XDCscript usage meta-domain
const Defaults.noRuntimeCommon$ = Types.Common$ {
    diags_ASSERT: Diags.ALWAYS_OFF,
    diags_ENTRY: Diags.ALWAYS_OFF,
    diags_EXIT: Diags.ALWAYS_OFF,
    diags_INTERNAL: Diags.ALWAYS_OFF,
    diags_LIFECYCLE: Diags.ALWAYS_OFF,
    diags_STATUS: Diags.ALWAYS_OFF,
    diags_USER1: Diags.ALWAYS_OFF,
    diags_USER2: Diags.ALWAYS_OFF,
    diags_USER3: Diags.ALWAYS_OFF,
    diags_USER4: Diags.ALWAYS_OFF,
    diags_USER5: Diags.ALWAYS_OFF,
    diags_USER6: Diags.ALWAYS_OFF,
    diags_USER7: Diags.ALWAYS_OFF,
    diags_INFO: Diags.ALWAYS_OFF,
    diags_USER8: Diags.ALWAYS_OFF,
    diags_ANALYSIS: Diags.ALWAYS_OFF,
    fxntab: false,
    gate: null,
    gateParams: null,
    instanceHeap: null,
    instanceSection: null,
    logger: null,
    memoryPolicy: Types.STATIC_POLICY,
    namedInstance: false,
    namedModule: false,
    romPatchTable: false
};
DETAILS
Modules for which the attribute @NoRuntime is set cannot use any functionality controlled by the parameters in their common$ structures. For such modules, these parameters are set to the following values, and cannot be changed. This ensures that @NoRuntime modules not used in situations where the normal module runtime features are required.
metaonly config Defaults.common$ // module-wide
index URL

Defaults inherited by all target modules

XDCscript usage meta-domain
Defaults.common$ = Types.Common$ {
    diags_ASSERT: Diags.ALWAYS_ON,
    diags_ENTRY: Diags.ALWAYS_OFF,
    diags_EXIT: Diags.ALWAYS_OFF,
    diags_INTERNAL: Diags.ALWAYS_OFF,
    diags_LIFECYCLE: Diags.ALWAYS_OFF,
    diags_STATUS: Diags.ALWAYS_ON,
    diags_USER1: Diags.ALWAYS_OFF,
    diags_USER2: Diags.ALWAYS_OFF,
    diags_USER3: Diags.ALWAYS_OFF,
    diags_USER4: Diags.ALWAYS_OFF,
    diags_USER5: Diags.ALWAYS_OFF,
    diags_USER6: Diags.ALWAYS_OFF,
    diags_USER7: Diags.ALWAYS_OFF,
    diags_INFO: Diags.ALWAYS_OFF,
    diags_USER8: Diags.ALWAYS_OFF,
    diags_ANALYSIS: Diags.ALWAYS_OFF,
    fxntab: true,
    gate: null,
    gateParams: null,
    instanceHeap: null,
    instanceSection: null,
    logger: null,
    memoryPolicy: Types.DELETE_POLICY,
    namedInstance: false,
    namedModule: true,
    romPatchTable: false
};
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.
This structure defines the default values for the configuration parameters shared by all modules in a system. Unless otherwise noted, setting one of the fields defined below will set the corresponding value for all modules in the system which have not been explicitly set; i.e., it will establish a default value for the parameter.
However, the modules from this package (xdc.runtime) are an exception. The values from Default.common$ are not copied to logger and diags_ properties of common$ in xdc.runtime modules. The property diags_ASSERT is an exception to that exception. Its value from Default.common$ is copied to all modules for which diags_ASSERT has not been explicitly set.
DIAGS_ASSERT
Enables asserts at runtime. Default is ALWAYS_ON
DIAGS_ENTRY
Enables entry trace for all functions. Default is ALWAYS_OFF
DIAGS_EXIT
Enables exit trace for all functions. Default is ALWAYS_OFF
DIAGS_INTERNAL
Enables internal asserts. Default is ALWAYS_OFF. When set to ALWAYS_ON, requires diags_ASSERT to be ALWAYS_ON.
DIAGS_LIFECYCLE
Enables logging of lifecycle events. These events are logged during creates and deletes. Default is ALWAYS_OFF.
DIAGS_STATUS
Enables logging of status events, such as error and warning events. Default is ALWAYS_ON. Note that this does not mean that logging will occur by default--a logger instance must also be configured for the module in order for events to be logged.
DIAGS_INFO
Enables logging of generic informational events. Default is ALWAYS_OFF.
DIAGS_ANALYSIS
Enables logging of analysis events, such as benchmarking events. Default is ALWAYS_OFF.
DIAGS_USER
Each diags_USER field controls a separate user-defined logging level. Default is ALWAYS_OFF for all diags_USER fileds.
GATE
Default gate used by all modules which are declared as being @Gated. By default, this parameter points to an instance of GateNull, which means there is no protection.
GATEPARAMS
The default parameters used to create gates at runtime. See Types.Common$.gateParams. Default is null.
INSTANCEHEAP
Specify heap to be used for module instances. Default is null. If instanceHeap is null, instances will be allocated from the heap specified by Memory.defaultHeapInstance.
INSTANCESECTION
Specify section to be used to place module instances. Default is null.
LOGGER
Default logger used by modules to write logs. By default there is no logger.
MEMORYPOLICY
Used to specify type of application. Types.STATIC_POLICY is used when all objects are created statically. Types.CREATE_POLICY is used when the application creates objects at runtime. Types.DELETE_POLICY is used when the application creates and deletes objects at runtime. This helps eliminate unwanted create and delete code.
NAMEDINSTANCE
This parameter should be set to true if space needs to be allocated in instance objects for instance names. Allocating space for a name allows object view tools to display the names. The runtime functions Mod_Handle_name() and Mod_Handle_label() defined for each module Mod can be used to retrieve the name at runtime.
NAMEDMODULE
This field allows the name of the module to be retained on the target. Setting this to false will save space but will also prevent the target from being able to display the module names appearing in Log events and Errors.
Setting namedModule to false causes all modules, except for Memory and Main to be unnamed by default. To eliminate the string names for these modules you must explicitly set their common$.namedModule parameters to false; without these two names, target-side display of error messages is somewhat cryptic.
ROMPATCHTABLE
Specify whether modules that are allocated to ROM are patchable.
metaonly Defaults.getCommon() // module-wide
index URL

Get a specified common parameter from a module

XDCscript usage meta-domain
Defaults.getCommon(IModule.Module mod, String param) returns Any
ARGUMENTS
eb — module whose parameter is queried
param — string naming the queried parameter
DETAILS
Get the value of a member of the structure common$ based on defaults and the current value of the parameter. If the current value of param is undefined, the function returns the default value for that parameter from Default.common$.
RETURNS
Returns the value of the parameter named param from the module mod.
generated on Thu, 08 Nov 2012 02:13:24 GMT


module xdc.runtime.Defaults

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Defaults.xdc ========
    15     */
    16
    17    package xdc.runtime;
    18
    19    /*!
    20     *  ======== Defaults ========
    21     *  Default attributes inherited by all target modules
    22     *
    23     *  This module defines default values for `common$` structure. If other
    24     *  modules do not set `common$` properties explicitly, these values will be
    25     *  used.
    26     */
    27    module Defaults {
    28
    29        /*!
    30         *  ======== common$ ========
    31         *  Defaults inherited by all target modules
    32         *
    33         *  This structure defines the default values for the configuration
    34         *  parameters shared by all modules in a system.  Unless otherwise
    35         *  noted, setting one of the fields defined below will set the
    36         *  corresponding value for all modules in the system which have not
    37         *  been explicitly set; i.e., it will establish a default value for
    38         *  the parameter.
    39         *
    40         *  However, the modules from this package (`xdc.runtime`) are an
    41         *  exception. The values from `Default.common$` are not copied to
    42         *  `logger` and `diags_` properties of `common$` in `xdc.runtime`
    43         *  modules. The property `diags_ASSERT` is an exception to that exception.
    44         *  Its value from `Default.common$` is copied to all modules for which
    45         *  `diags_ASSERT` has not been explicitly set.
    46         *
    47         *  @a(diags_ASSERT)
    48         *  Enables asserts at runtime. Default is `ALWAYS_ON`
    49         *
    50         *  @a(diags_ENTRY)
    51         *  Enables entry trace for all functions. Default is `ALWAYS_OFF`
    52         *
    53         *  @a(diags_EXIT)
    54         *  Enables exit trace for all functions. Default is `ALWAYS_OFF`
    55         *
    56         *  @a(diags_INTERNAL)
    57         *  Enables internal asserts. Default is `ALWAYS_OFF`. When set to
    58         *  `ALWAYS_ON`, requires `diags_ASSERT` to be `ALWAYS_ON`.
    59         *
    60         *  @a(diags_LIFECYCLE)
    61         *  Enables logging of lifecycle events. These events are logged during
    62         *  creates and deletes. Default is `ALWAYS_OFF`.
    63         *
    64         *  @a(diags_STATUS)
    65         *  Enables logging of status events, such as error and warning events.
    66         *  Default is `ALWAYS_ON`. Note that this does not mean that logging will
    67         *  occur by default--a logger instance must also be configured for the
    68         *  module in order for events to be logged.
    69         *
    70         *  @a(diags_INFO)
    71         *  Enables logging of generic informational events. Default is
    72         *  `ALWAYS_OFF`.
    73         *
    74         *  @a(diags_ANALYSIS)
    75         *  Enables logging of analysis events, such as benchmarking events.
    76         *  Default is `ALWAYS_OFF`.
    77         *
    78         *  @a(diags_USER)
    79         *  Each `diags_USER` field controls a separate user-defined
    80         *  logging level. Default is `ALWAYS_OFF` for all `diags_USER` fileds.
    81         *
    82         *  @a(gate)
    83         *  Default gate used by all modules which are declared as being `@Gated`.
    84         *  By default, this parameter points to an instance of `{@link GateNull}`,
    85         *  which means there is no protection.
    86         *
    87         *  @a(gateParams)
    88         *  The default parameters used to create gates at runtime. See
    89         *  `{@link Types#Common$.gateParams}`.  Default is `null`.
    90         *
    91         *  @a(instanceHeap)
    92         *  Specify heap to be used for module instances. Default is `null`.
    93         *  If `instanceHeap` is `null`, instances will be allocated from
    94         *  the heap specified by `{@link Memory#defaultHeapInstance}`.
    95         *
    96         *  @a(instanceSection)
    97         *  Specify section to be used to place module instances. Default is
    98         *  `null`.
    99         *
   100         *  @a(logger)
   101         *  Default logger used by modules to write logs. By default there is
   102         *  no logger.
   103         *
   104         *  @a(memoryPolicy)
   105         *  Used to specify type of application. `Types.STATIC_POLICY` is used when
   106         *  all objects are created statically. `Types.CREATE_POLICY` is used when
   107         *  the application creates objects at runtime. `Types.DELETE_POLICY` is
   108         *  used when the application creates and deletes objects at runtime. This
   109         *  helps eliminate unwanted create and delete code.
   110         *
   111         *  @a(namedInstance)
   112         *  This parameter should be set to `true` if space needs to be allocated in
   113         *  instance objects for instance names. Allocating space for a name
   114         *  allows object view tools to display the names. The runtime functions
   115         *  `Mod_Handle_name()` and `Mod_Handle_label()` defined for each module
   116         *  `Mod` can be used to retrieve the name at runtime.
   117         *
   118         *  @a(namedModule)
   119         *  This field allows the name of the module to be retained on the target.
   120         *  Setting this to `false` will save space but will also prevent
   121         *  the target from being able to display the module names appearing
   122         *  in `Log` events and `Error`s.
   123         *
   124         *  Setting `namedModule` to `false` causes all modules, except for
   125         *  `{@link Memory}` and `{@link Main}` to be unnamed by default.  To
   126         *  eliminate the string names for these modules you must explicitly
   127         *  set their `common$.namedModule` parameters to `false`; without these
   128         *  two names, target-side display of error messages is somewhat cryptic.
   129         *
   130         *  @a(romPatchTable)
   131         *  Specify whether modules that are allocated to ROM are patchable.
   132         */
   133        override metaonly config Types.Common$ common$ = {
   134            diags_ASSERT:       Diags.ALWAYS_ON,
   135            diags_ENTRY:        Diags.ALWAYS_OFF,
   136            diags_EXIT:         Diags.ALWAYS_OFF,
   137            diags_INTERNAL:     Diags.ALWAYS_OFF,
   138            diags_LIFECYCLE:    Diags.ALWAYS_OFF,
   139            diags_STATUS:       Diags.ALWAYS_ON,
   140            diags_USER1:        Diags.ALWAYS_OFF,
   141            diags_USER2:        Diags.ALWAYS_OFF,
   142            diags_USER3:        Diags.ALWAYS_OFF,
   143            diags_USER4:        Diags.ALWAYS_OFF,
   144            diags_USER5:        Diags.ALWAYS_OFF,
   145            diags_USER6:        Diags.ALWAYS_OFF,
   146            diags_USER7:        Diags.ALWAYS_OFF,
   147            diags_INFO:         Diags.ALWAYS_OFF,
   148            diags_USER8:        Diags.ALWAYS_OFF,
   149            diags_ANALYSIS:     Diags.ALWAYS_OFF,
   150            fxntab:             true,
   151            gate:               null,
   152            gateParams:         null,
   153            instanceHeap:       null,
   154            instanceSection:    null,
   155            logger:             null,
   156            memoryPolicy:       Types.DELETE_POLICY,
   157            namedInstance:      false,
   158            namedModule:        true,
   159            romPatchTable:      false,
   160        };
   161
   162        /*!
   163         *  ======== noRuntimeCommon$ ========
   164         *  Defaults inherited by the target modules that do not need the runtime
   165         *  support.
   166         *
   167         *  Modules for which the attribute `@NoRuntime` is set cannot use any
   168         *  functionality controlled by the parameters in their `common$`
   169         *  structures. For such modules, these parameters are set to the
   170         *  following values, and cannot be changed.  This ensures that
   171         *  `@NoRuntime` modules not used in situations where the normal
   172         *  module runtime features are required.
   173         */
   174        metaonly readonly config Types.Common$ noRuntimeCommon$ = {
   175            diags_ASSERT:       Diags.ALWAYS_OFF,
   176            diags_ENTRY:        Diags.ALWAYS_OFF,
   177            diags_EXIT:         Diags.ALWAYS_OFF,
   178            diags_INTERNAL:     Diags.ALWAYS_OFF,
   179            diags_LIFECYCLE:    Diags.ALWAYS_OFF,
   180            diags_STATUS:       Diags.ALWAYS_OFF,
   181            diags_USER1:        Diags.ALWAYS_OFF,
   182            diags_USER2:        Diags.ALWAYS_OFF,
   183            diags_USER3:        Diags.ALWAYS_OFF,
   184            diags_USER4:        Diags.ALWAYS_OFF,
   185            diags_USER5:        Diags.ALWAYS_OFF,
   186            diags_USER6:        Diags.ALWAYS_OFF,
   187            diags_USER7:        Diags.ALWAYS_OFF,
   188            diags_INFO:         Diags.ALWAYS_OFF,
   189            diags_USER8:        Diags.ALWAYS_OFF,
   190            diags_ANALYSIS:     Diags.ALWAYS_OFF,
   191            fxntab:             false,
   192            gate:               null,
   193            gateParams:         null,
   194            instanceHeap:       null,
   195            instanceSection:    null,
   196            logger:             null,
   197            memoryPolicy:       Types.STATIC_POLICY,
   198            namedInstance:      false,
   199            namedModule:        false,
   200            romPatchTable:      false,
   201        };
   202
   203        /*!
   204         *  ======== getCommon ========
   205         *  Get a specified common parameter from a module
   206         *
   207         *  Get the value of a member of the structure `common$` based on
   208         *  defaults and the current value of the parameter. If the current value
   209         *  of `param` is `undefined`, the function returns the default value
   210         *  for that parameter from `Default.common$`.
   211         *
   212         *  @param(eb)  module whose parameter is queried
   213         *
   214         *  @param(param)   string naming the queried parameter
   215         *
   216         *  @a(returns)
   217         *  Returns the value of the parameter named `param` from the module
   218         *  `mod`.
   219         */
   220        metaonly Any getCommon(IModule.Module mod, String param);
   221    };
   222    /*
   223     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   224     */
   225


module xdc.runtime.Diags
index URL

Diagnostics manager

  • C synopsis
  • Individual elements
  • DETAILS
  • EXAMPLES
  • XDCscript usage
  • Individual elements
Every XDC module has a "diagnostics mask" that allows clients to enable or disable diagnostics on a per module basis both at configuration time and at runtime. The Diags module manages a module's diagnostics mask. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Diags.xdc
#include <xdc/runtime/Diags.h>
Functions
macro Bool | Diags_compareLevels// Returns false if levelA is lower than levelB(Diags_EventLevel levelA, Diags_EventLevel levelB);
macro Diags_EventLevel | Diags_getLevel// Get the event level set in the given mask(Diags_Mask mask);
macro Bool | Diags_query// Query the module's diagnostics mask against the given mask(Diags_Mask mask);
Void | Diags_setMask// Set a module's diagnostics mask at runtime(String control);
Functions common to all target modules
 | Diags_Module_getMask// Returns the diagnostics mask for this module, Diags_Module_hasMask// Test whether this module has a diagnostics mask, Diags_Module_heap// The heap from which this module allocates memory, Diags_Module_id// Get this module's unique id, Diags_Module_setMask// Set the diagnostics mask for this module, Diags_Module_startupDone// Test if this module has completed startup
Defines
#define | Diags_ALL// Mask of all diagnostics categories, including both logging and asserts (Diags_Mask)0xFF9F
#define | Diags_ALL_LOGGING// Mask of all logging diagnostic categories (does not include asserts) (Diags_Mask)Diags.ALL & (~Diags.ASSERT) & (~Diags.INTERNAL)
#define | Diags_ANALYSIS// Analysis (e.g., benchmark) event (Diags_Mask)Diags.USER8
#define | Diags_ASSERT// Assert checking (Diags_Mask)0x0010
#define | Diags_CRITICAL// A 'LEVEL2' 'STATUS' event is defined as 'CRITICAL' (Diags_EventLevel)Diags.LEVEL2
#define | Diags_EMERGENCY// A 'LEVEL1' 'STATUS' event is defined as 'EMERGENCY' (Diags_EventLevel)Diags.LEVEL1
#define | Diags_ENTRY// Function entry (Diags_Mask)0x0001
#define | Diags_ERROR// A 'LEVEL3' 'STATUS' event is defined as 'ERROR' (Diags_EventLevel)Diags.LEVEL3
#define | Diags_EXIT// Function exit (Diags_Mask)0x0002
#define | Diags_INFO// Informational event (Diags_Mask)Diags.USER7
#define | Diags_INTERNAL// Internal diagnostics (Diags_Mask)0x0008
#define | Diags_LIFECYCLE// Object life-cycle (Diags_Mask)0x0004
#define | Diags_STATUS// Warning or error event (Diags_Mask)0x0080
#define | Diags_USER1// User defined diagnostics (Diags_Mask)0x0100
#define | Diags_USER2// User defined diagnostics (Diags_Mask)0x0200
#define | Diags_USER3// User defined diagnostics (Diags_Mask)0x0400
#define | Diags_USER4// User defined diagnostics (Diags_Mask)0x0800
#define | Diags_USER5// User defined diagnostics (Diags_Mask)0x1000
#define | Diags_USER6// User defined diagnostics (Diags_Mask)0x2000
#define | Diags_USER7// Alias for informational event (Diags_Mask)0x4000
#define | Diags_USER8// Alias for analysis event (Diags_Mask)0x8000
#define | Diags_WARNING// A 'LEVEL4' 'STATUS' event is defined as 'WARNING' (Diags_EventLevel)Diags.LEVEL4
Typedefs
typedef enum | Diags_EventLevel// The level of an event ...
typedef Types_DiagsMask | Diags_Mask// Type used to specify bits in the diags mask;
DETAILS
Every XDC module has a "diagnostics mask" that allows clients to enable or disable diagnostics on a per module basis both at configuration time and at runtime. The Diags module manages a module's diagnostics mask.
You use the Diags module to set and clear bits in a module's diagnostics mask for the purpose of controlling diagnostics within that module. Each bit corresponds to a "category" of diagnostic that can be individually enabled or disabled.
A module's diagnostics mask controls both Assert and Log statements within that module. A module's diagnostics mask may also be used to conditionally execute blocks of code using the Diags_query() runtime function.
A module's diagnostics mask can be set at configuration time and at runtime. The implementation of diagnostics is such that when they are permanently turned off at configuration time (Mode.ALWAYS_OFF), an optimizer can completely eliminate the diagnostics code from the program. Similarly, if diagnostics are permanently turned on at configuration time (Mode.ALWAYS_ON), the optimizer can eliminate all runtime conditional checking and simply invoke the diagnostics code directly. Runtime checking of the diagnostics mask is performed only when the diagnostics are configured to be runtime modifiable (Mode.RUNTIME_OFF or Mode.RUNTIME_ON).
Each bit of the diagnostics mask is controlled by one of the following constants.
  Constant    Meaning
  --------------------------
  ENTRY       Function entry
  EXIT        Function exit
  LIFECYCLE   Object life-cycle
  INTERNAL    Internal diagnostics
  ASSERT      Assert checking
  STATUS      Warning or Error events
  USER1       User defined diagnostics
  USER2       User defined diagnostics
  USER3       User defined diagnostics
  USER4       User defined diagnostics
  USER5       User defined diagnostics
  USER6       User defined diagnostics
  USER7       User defined diagnostics
  INFO        Informational event
  USER8       User defined diagnostics
  ANALYSIS    Analysis event
These constants can be used from either JavaScript configuration scripts or C code and, therefore, have two "names". For example, to reference the ENTRY constant from JavaScript you must use Diags.ENTRY whereas from C you would use Diags_ENTRY.
The ENTRY and EXIT categories are for log statements at the entry and exit points, respectively, to each function within a module. This is useful for tracking the execution flow of your program.
The LIFECYCLE category is for log events at the create/construct and delete/destruct points of each instance object for the module. This is useful for tracking the life-cycle of a module instance object.
ASSERT and INTERNAL are unique in that they are not related to logging, but instead control the Assert statements in a module. These categories control the two classes of asserts:
  • Public asserts, which have an Assert_Id and are documented in the module's reference pages. These asserts are on by default and are meant to help developers validate code that invokes a module's functions.
  • Internal asserts, which have no Assert_Id. These asserts are off by default and are typically used only when developing code. That is, like the standard C assert() mechanism, these asserts are not part of a deployed application.
When a module has enabled the ASSERT category (which is enabled by default) in its diagnostics mask, the module executes all of its public assert statements. To enable internal asserts, you must enable both the ASSERT and INTERNAL categories.
The ASSERT and INTERNAL categories are not intended for use as log event categories. If an event is defined with either of these categories, you will receive a validation error during configuration.
The STATUS category is used for error and warning type events. The four event levels within the STATUS category have defined meanings, see EMERGENCY
The INFO category is used for generic informational events. Any event which does not belong to a more specific category of events may simply be an INFO event.
The ANALYSIS category is used for events related to benchmarks and performance analysis.
The USER1-6 categories are available to each module writer to use as he or she wishes.
The USER7 and USER8 categories are still defined, but their bits have been repurposed for the INFO and ANALYSIS categories, respectively, so the use of USER7 and USER8 has been deprecated.
EXAMPLES
Configuration example: The following XDC configuration statements set a module's diagnostics mask in a configuration script. (In this case, the Task module of the ti.sysbios.knl package is used.) In this example, the ENTRY bit is turned on and the EXIT bit is turned off. Both bits are configured to be runtime modifiable.
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var Task = xdc.useModule('ti.sysbios.knl.Task');

  Task.common$.diags_ENTRY = Diags.RUNTIME_ON;
  Task.common$.diags_EXIT = Diags.RUNTIME_OFF;
Runtime example: The following C code shows how to disable and reenable ENTER diagnostics at runtime for the ti.sysbios.knl.Task module configured in the previous example. The first call to Diag_setMask() enables entry diagnostics ("+E") for just the ti.sysbios.knl.Task module; any call to any Task method in the application causes an "entry" Log event to be generated. The second call disables ("-E") the generation of these events. See Diags_setMask() for a complete description of the strings accepted by this function.
  #include <xdc/runtime/Diags.h>
  :
  Diags_setMask("ti.sysbios.knl.Task+E");
  :
  Diags_setMask("ti.sysbios.knl.Task-E");
Configuration example: The following XDC configuration statements turn on asserts in the entire program.
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var Defaults = xdc.useModule('xdc.runtime.Defaults');

  Defaults.diags_ASSERT = Diags.ALWAYS_ON;
Configuration example: Using the Diags.setMaskMeta() function, the following XDC configuration statements turn on asserts in all of the modules whose name begins with "ti.sysbios." In this case, no change to the application code is necessary to enable these events. It is important to note that, while the configuration step must be re-run and the application must be re-linked, no application sources need to be recompiled.
  var Diags = xdc.useModule('xdc.runtime.Diags');
  Diags.setMaskMeta("ti.sysbios.%", Diags.ASSERT, Diags.ALWAYS_ON);
const Diags_ALL
index URL

Mask of all diagnostics categories, including both logging and asserts

C synopsis target-domain
#define Diags_ALL (Diags_Mask)0xFF9F
const Diags_ALL_LOGGING
index URL

Mask of all logging diagnostic categories (does not include asserts)

C synopsis target-domain
#define Diags_ALL_LOGGING (Diags_Mask)Diags.ALL & (~Diags.ASSERT) & (~Diags.INTERNAL)
const Diags_ANALYSIS
index URL

Analysis (e.g., benchmark) event

C synopsis target-domain
#define Diags_ANALYSIS (Diags_Mask)Diags.USER8
const Diags_ASSERT
index URL

Assert checking

C synopsis target-domain
#define Diags_ASSERT (Diags_Mask)0x0010
const Diags_CRITICAL
index URL

A 'LEVEL2' 'STATUS' event is defined as 'CRITICAL'

C synopsis target-domain
#define Diags_CRITICAL (Diags_EventLevel)Diags.LEVEL2
DETAILS
See 'EMERGENCY' for details.
const Diags_EMERGENCY
index URL

A 'LEVEL1' 'STATUS' event is defined as 'EMERGENCY'

C synopsis target-domain
#define Diags_EMERGENCY (Diags_EventLevel)Diags.LEVEL1
DETAILS
For STATUS events only, the meaning of the four EventLevels has been defined. These constants are simply aliases for the four event levels.
The highest three levels are different severities of an error event. For example, an EMERGENCY event may represent an unrecoverable system failure, a CRITICAL event may require notification of an operator, and an ERROR may be a recoverable error.
The lowest level is reserved for warnings, such as when a resource becomes dangerously low.
const Diags_ENTRY
index URL

Function entry

C synopsis target-domain
#define Diags_ENTRY (Diags_Mask)0x0001
const Diags_ERROR
index URL

A 'LEVEL3' 'STATUS' event is defined as 'ERROR'

C synopsis target-domain
#define Diags_ERROR (Diags_EventLevel)Diags.LEVEL3
DETAILS
See 'EMERGENCY' for details.
const Diags_EXIT
index URL

Function exit

C synopsis target-domain
#define Diags_EXIT (Diags_Mask)0x0002
const Diags_INFO
index URL

Informational event

C synopsis target-domain
#define Diags_INFO (Diags_Mask)Diags.USER7
const Diags_INTERNAL
index URL

Internal diagnostics

C synopsis target-domain
#define Diags_INTERNAL (Diags_Mask)0x0008
const Diags_LIFECYCLE
index URL

Object life-cycle

C synopsis target-domain
#define Diags_LIFECYCLE (Diags_Mask)0x0004
const Diags_STATUS
index URL

Warning or error event

C synopsis target-domain
#define Diags_STATUS (Diags_Mask)0x0080
const Diags_USER1
index URL

User defined diagnostics

C synopsis target-domain
#define Diags_USER1 (Diags_Mask)0x0100
const Diags_USER2
index URL

User defined diagnostics

C synopsis target-domain
#define Diags_USER2 (Diags_Mask)0x0200
const Diags_USER3
index URL

User defined diagnostics

C synopsis target-domain
#define Diags_USER3 (Diags_Mask)0x0400
const Diags_USER4
index URL

User defined diagnostics

C synopsis target-domain
#define Diags_USER4 (Diags_Mask)0x0800
const Diags_USER5
index URL

User defined diagnostics

C synopsis target-domain
#define Diags_USER5 (Diags_Mask)0x1000
const Diags_USER6
index URL

User defined diagnostics

C synopsis target-domain
#define Diags_USER6 (Diags_Mask)0x2000
const Diags_USER7
index URL

Alias for informational event

C synopsis target-domain
#define Diags_USER7 (Diags_Mask)0x4000
const Diags_USER8
index URL

Alias for analysis event

C synopsis target-domain
#define Diags_USER8 (Diags_Mask)0x8000
const Diags_WARNING
index URL

A 'LEVEL4' 'STATUS' event is defined as 'WARNING'

C synopsis target-domain
#define Diags_WARNING (Diags_EventLevel)Diags.LEVEL4
DETAILS
See 'EMERGENCY' for details.
enum Diags_EventLevel
index URL

The level of an event

C synopsis target-domain
typedef enum Diags_EventLevel {
    Diags_LEVEL1,
    Diags_LEVEL2,
    Diags_LEVEL3,
    Diags_LEVEL4
} Diags_EventLevel;
DETAILS
The diagnostics bits each represent a different category of event, for example: an analysis event, a lifecycle event, or an informational event. Within each of these categories, events may have one of four levels to enable filtering based on the level of information desired.
The meaning of these levels and the distinction between them is left open to the user. Depending on the meaning given, different terminology may be used to describe them--they may be levels of detail, priority, severity, etc. The heirarchy of the events is set such that LEVEL1 is the highest priority and LEVEL4 is the lowest. That is, enabling LEVEL4 events implies that events of all four levels will be logged.
LEVEL1
Least detail, highest priority, most severe, etc.
LEVEL2
LEVEL3
LEVEL4
Most detail, lowest priority, least severe, etc.
The STATUS bit is the only category where the levels are given explicit meaning to ensure consistency. Within the STATUS category, the meaning of the levels is defined by the constants EMERGENCY, CRITICAL, ERROR, and WARNING.
Events which don't define a level will receive LEVEL1 by default.
typedef Diags_Mask
index URL

Type used to specify bits in the diags mask

C synopsis target-domain
typedef Types_DiagsMask Diags_Mask;
Diags_compareLevels() // module-wide
index URL

Returns false if levelA is lower than levelB

C synopsis target-domain
macro Bool Diags_compareLevels(Diags_EventLevel levelA, Diags_EventLevel levelB);
DETAILS
This API is intended to be used to determine if a given event passes a filtering threshold and should be logged. Conceptually (though not necessarily in implementation), this API is equivalent to the expression (levelA < levelB). The values of the EventLevels have internal meaning, so a direct comparison of two levels should not done; this API must be used to correctly compare them.
LEVEL1 is the highest level and LEVEL4 is the lowest. So LEVEL4 is less than LEVEL3, which is less than LEVEL2, which is less than LEVEL1.
Diags_getLevel() // module-wide
index URL

Get the event level set in the given mask

C synopsis target-domain
macro Diags_EventLevel Diags_getLevel(Diags_Mask mask);
ARGUMENTS
mask — mask of diagnostics bits to read filter level from.
DETAILS
See 'EventLevel' for a description of event levels.
Diags_query() // module-wide
index URL

Query the module's diagnostics mask against the given mask

C synopsis target-domain
macro Bool Diags_query(Diags_Mask mask);
ARGUMENTS
mask — mask of diagnostics bits to test
This given mask is constructed by OR'ing together the desired bits of the diagnostics mask using the constants listed in the Mask Summary above. The module's diagnostics mask will be logically AND'ed with the given mask, and return true if the result is non-zero and false otherwise.
      if (Diags_query(Diags_USER1 | Diags_USER4)) {
          :
      }
DETAILS
Use this query function to test the state of a module's diagnostics mask at runtime. This function will perform a logical AND operation on the module's diagnostics mask and the given mask. If any bits survive the operation, the function returns true.
  result = moduleMask & givenMask ? true : false;
This query function has a compile-time binding to the module's diagnostics mask. If the query function is part of the C code implementation of a module, then it will use that module's diagnostics mask. Otherwise, it will use the diagnostics mask of the xdc.runtime.Main module.
The implementation of the diagnostics mask and the query function is such that an optimizer can take advantage of dead code elimination and/or constant folding to eliminate or reduce code size. For example, if the query function is used in a conditional test, and the given mask contains only bits which have been configured to be permanently off, then the code for the entire conditional statement can be removed at link time. If the bits in the given mask have been configured to be permanently on, then the conditional code can be removed leaving the body of the conditional as direct in-line code.
EXAMPLES
In the following example, the USER1 bit of the module's diagnostics mask has been configured to be permanently off, thus the entire conditional code block can be removed at link time. Note, the C code below is part of the module itself.
Configuration Script
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var ModA = xdc.useModule('my.package.ModuleA');
  ModA.common$.diags_USER1 = Diags.ALWAYS_OFF;
C Code, ModA.c
  if (Diags_query(Diags_USER1)) {         // this code removed
      ...additional code here...          // this code removed
  }                                       // this code removed
In the following example, the USER1 bit of the module's diagnostics mask has been configured to be permanently on, thus the conditional code can be removed leaving the code contained within the conditional statement. Note, the C code below is part of the module itself.
Configuration Script
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var ModA = xdc.useModule('my.package.ModuleA');
  ModA.common$.diags_USER1 = Diags.ALWAYS_ON;
C Code, ModA.c
  if (Diags_query(Diags_USER1) {          // this code removed
      ...additional code here...          // this code remains
  }                                       // this code removed
Diags_setMask() // module-wide
index URL

Set a module's diagnostics mask at runtime

C synopsis target-domain
Void Diags_setMask(String control);
ARGUMENTS
control — diagnostic mask control string
This control string defines one or more actions where each action consists of a module name, an operator character, and a list of bit specifiers. Use the % character as a wildcard to turn the module name into a prefix matching pattern for a set of modules. Multiple actions are separated with the ; character.
The control string has the following format:
  <module[%]><op><bits>[;<module[%]><op><bits>]
Specify individual module names explicitly (e.g. ti.sysbios.knl.Task), or match multiple modules using a prefix matching pattern specified with the % character (e.g. ti.sysbios.knl.%).
The operator is specified with a single character from the following table.
  Operator    Description
  --------------------------------------------------
  +           Set only the specified bits (other bits preserved)
  -           Clear only the specified bits (other bits preserved)
  =           Assign the entire mask to the given value where the
              specified bits are set and all other bits are cleared
The bits are specified with a list of characters from the following table. Refer to the Mask Summary for a list of each bit of the diagnostics mask.
  Control     Diagnostics
  Character   Constant        Description
  --------------------------------------------------
  E           ENTRY           Function entry
  X           EXIT            Function exit
  L           LIFECYCLE       Object life-cycle
  I           INTERNAL        Internal diagnostics
  A           ASSERT          Assert checking
  Z           ANALYSIS        Analysis event
  F           INFO            Informational event
  S           STATUS          Status (error, warning) event
  1           USER1           User defined diagnostics
  2           USER2           User defined diagnostics
  3           USER3           User defined diagnostics
  4           USER4           User defined diagnostics
  5           USER5           User defined diagnostics
  6           USER6           User defined diagnostics
  7           USER7           User defined diagnostics
  8           USER8           User defined diagnostics
DETAILS
Use the given control string to set or clear bits in a module's diagnostics mask. The control string defines one or more actions where each action modifies the diagnostics mask in one or more modules. Each action can either set, clear, or assign a module's diagnostics mask. To both set and clear bits in the same diagnostics mask requires two actions, or you can assign the entire mask explicitly in one action. Each action can specify a given module or a set of modules using name prefix matching.
WARNING
Each bit of a module's diagnostics mask that is to be modified at runtime, must be configured to be runtime modifiable in the program's configuration script. Use either RUNTIME_OFF or RUNTIME_ON as the configuration value for the desired bit in the diagnostics mask. In addition, the Diags.setMaskEnabled configuration parameter must be set to true in order to load this function onto the target. Finally, the following configuration parameters must have the values indicated (which are their default values):
  • <module>.common$.namedModule = true;
  • Text.isLoaded = true;
Note: any error that occurs during the parsing of the control string causes Diags_setMask() to return without processing the remainder of the control string.
EXAMPLES
The following example demonstrates how to set a module's diagnostics mask (the Task module in this case) at runtime. In this example, the USER1 bit is turned on. Note that the module's USER1 diagnostics bit must be configured to be runtime modifiable. In this instance, the bit is initialized to off.
Configuration Script
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var Task = xdc.useModule('ti.sysbios.knl.Task');
  Task.common$.diags_USER1 = Diags.RUNTIME_OFF;
C Code
  Diags_setMask("ti.sysbios.knl.Task+1");
The following example demonstrates the use of the % wildcard character to set the USER1 bit at runtime for all modules in the ti.sysbios.knl package. The meta-only Diags.setMaskMeta function is used to configure the USER1 bit to be runtime modifiable. The setMask function is used to actually set the USER1 bit at runtime in all the ti.sysbios.knl modules. Note the use of the % character in both functions to match all the module names within the given package.
Configuration Script
  var Diags = xdc.useModule('xdc.runtime.Diags');
  Diags.setMaskMeta("ti.sysbios.knl.%", Diags.USER1, Diags.RUNTIME_OFF);
C Code
  Diags_setMask("ti.sysbios.knl.%+1");
In the following example, the ENTRY, EXIT and LIFECYCLE trace is enabled for all modules in the ti.sysbios.knl package but is initially off; i.e., no events will occur until explicitly turned on at runtime.
At runtime the call to Diags_setMask turns on ENTRY and EXIT trace and turns off LIFECYCLE trace for all modules in the application for which trace has been enabled during configuration. In this case, the only modules that can generate events are those in the ti.sysbios.knl package.
Configuration Script
  var Diags = xdc.useModule('xdc.runtime.Diags');
  Diags.setMaskMeta("ti.sysbios.knl.%",
      Diags.ENTRY | Diags.EXIT | Diags.LIFECYCLE, Diags.RUNTIME_OFF);
C Code
  Diags_setMask("%+EX;%-L");
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Diags_Module_id();
// Get this module's unique id
Bool Diags_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Diags_Module_heap();
// The heap from which this module allocates memory
Bool Diags_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Diags_Module_getMask();
// Returns the diagnostics mask for this module
Void Diags_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Diags.xdc
var Diags = xdc.useModule('xdc.runtime.Diags');
module-wide constants & types
    const Diags.ALL// Mask of all diagnostics categories, including both logging and asserts = 0xFF9F;
    const Diags.ALL_LOGGING// Mask of all logging diagnostic categories (does not include asserts) = Diags.ALL & (~Diags.ASSERT) & (~Diags.INTERNAL);
    const Diags.ANALYSIS// Analysis (e.g., benchmark) event = Diags.USER8;
    const Diags.ASSERT// Assert checking = 0x0010;
    const Diags.CRITICAL// A 'LEVEL2' 'STATUS' event is defined as 'CRITICAL' = Diags.LEVEL2;
    const Diags.EMERGENCY// A 'LEVEL1' 'STATUS' event is defined as 'EMERGENCY' = Diags.LEVEL1;
    const Diags.ENTRY// Function entry = 0x0001;
    const Diags.ERROR// A 'LEVEL3' 'STATUS' event is defined as 'ERROR' = Diags.LEVEL3;
    const Diags.EXIT// Function exit = 0x0002;
    const Diags.INFO// Informational event = Diags.USER7;
    const Diags.INTERNAL// Internal diagnostics = 0x0008;
    const Diags.LIFECYCLE// Object life-cycle = 0x0004;
    const Diags.STATUS// Warning or error event = 0x0080;
    const Diags.USER1// User defined diagnostics = 0x0100;
    const Diags.USER2// User defined diagnostics = 0x0200;
    const Diags.USER3// User defined diagnostics = 0x0400;
    const Diags.USER4// User defined diagnostics = 0x0800;
    const Diags.USER5// User defined diagnostics = 0x1000;
    const Diags.USER6// User defined diagnostics = 0x2000;
    const Diags.USER7// Alias for informational event = 0x4000;
    const Diags.USER8// Alias for analysis event = 0x8000;
    const Diags.WARNING// A 'LEVEL4' 'STATUS' event is defined as 'WARNING' = Diags.LEVEL4;
    values of type Diags.EventLevel// The level of an event
        const Diags.LEVEL1;
        const Diags.LEVEL2;
        const Diags.LEVEL3;
        const Diags.LEVEL4;
    values of type Diags.Mode// Diagnostics mask bit value used at configuration time
        const Diags.ALWAYS_OFF// permanently disabled;
        const Diags.ALWAYS_ON// permanently enabled;
        const Diags.RUNTIME_OFF// run-time settable, initially disabled;
        const Diags.RUNTIME_ON// run-time settable, initially enabled;
module-wide config parameters
     Diags.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     Diags.setMaskMeta// Set the module's diagnostics mask at config time(Any pattern, Bits16 mask, Diags.Mode mode) returns Void
const Diags.ALL
index URL

Mask of all diagnostics categories, including both logging and asserts

XDCscript usage meta-domain
const Diags.ALL = 0xFF9F;
C SYNOPSIS
Diags_ALL
const Diags.ALL_LOGGING
index URL

Mask of all logging diagnostic categories (does not include asserts)

XDCscript usage meta-domain
const Diags.ALL_LOGGING = Diags.ALL & (~Diags.ASSERT) & (~Diags.INTERNAL);
C SYNOPSIS
Diags_ALL_LOGGING
const Diags.ANALYSIS
index URL

Analysis (e.g., benchmark) event

XDCscript usage meta-domain
const Diags.ANALYSIS = Diags.USER8;
C SYNOPSIS
Diags_ANALYSIS
const Diags.ASSERT
index URL

Assert checking

XDCscript usage meta-domain
const Diags.ASSERT = 0x0010;
C SYNOPSIS
Diags_ASSERT
const Diags.CRITICAL
index URL

A 'LEVEL2' 'STATUS' event is defined as 'CRITICAL'

XDCscript usage meta-domain
const Diags.CRITICAL = Diags.LEVEL2;
DETAILS
See 'EMERGENCY' for details.
C SYNOPSIS
Diags_CRITICAL
const Diags.EMERGENCY
index URL

A 'LEVEL1' 'STATUS' event is defined as 'EMERGENCY'

XDCscript usage meta-domain
const Diags.EMERGENCY = Diags.LEVEL1;
DETAILS
For STATUS events only, the meaning of the four EventLevels has been defined. These constants are simply aliases for the four event levels.
The highest three levels are different severities of an error event. For example, an EMERGENCY event may represent an unrecoverable system failure, a CRITICAL event may require notification of an operator, and an ERROR may be a recoverable error.
The lowest level is reserved for warnings, such as when a resource becomes dangerously low.
C SYNOPSIS
Diags_EMERGENCY
const Diags.ENTRY
index URL

Function entry

XDCscript usage meta-domain
const Diags.ENTRY = 0x0001;
C SYNOPSIS
Diags_ENTRY
const Diags.ERROR
index URL

A 'LEVEL3' 'STATUS' event is defined as 'ERROR'

XDCscript usage meta-domain
const Diags.ERROR = Diags.LEVEL3;
DETAILS
See 'EMERGENCY' for details.
C SYNOPSIS
Diags_ERROR
const Diags.EXIT
index URL

Function exit

XDCscript usage meta-domain
const Diags.EXIT = 0x0002;
C SYNOPSIS
Diags_EXIT
const Diags.INFO
index URL

Informational event

XDCscript usage meta-domain
const Diags.INFO = Diags.USER7;
C SYNOPSIS
Diags_INFO
const Diags.INTERNAL
index URL

Internal diagnostics

XDCscript usage meta-domain
const Diags.INTERNAL = 0x0008;
C SYNOPSIS
Diags_INTERNAL
const Diags.LIFECYCLE
index URL

Object life-cycle

XDCscript usage meta-domain
const Diags.LIFECYCLE = 0x0004;
C SYNOPSIS
Diags_LIFECYCLE
const Diags.STATUS
index URL

Warning or error event

XDCscript usage meta-domain
const Diags.STATUS = 0x0080;
C SYNOPSIS
Diags_STATUS
const Diags.USER1
index URL

User defined diagnostics

XDCscript usage meta-domain
const Diags.USER1 = 0x0100;
C SYNOPSIS
Diags_USER1
const Diags.USER2
index URL

User defined diagnostics

XDCscript usage meta-domain
const Diags.USER2 = 0x0200;
C SYNOPSIS
Diags_USER2
const Diags.USER3
index URL

User defined diagnostics

XDCscript usage meta-domain
const Diags.USER3 = 0x0400;
C SYNOPSIS
Diags_USER3
const Diags.USER4
index URL

User defined diagnostics

XDCscript usage meta-domain
const Diags.USER4 = 0x0800;
C SYNOPSIS
Diags_USER4
const Diags.USER5
index URL

User defined diagnostics

XDCscript usage meta-domain
const Diags.USER5 = 0x1000;
C SYNOPSIS
Diags_USER5
const Diags.USER6
index URL

User defined diagnostics

XDCscript usage meta-domain
const Diags.USER6 = 0x2000;
C SYNOPSIS
Diags_USER6
const Diags.USER7
index URL

Alias for informational event

XDCscript usage meta-domain
const Diags.USER7 = 0x4000;
C SYNOPSIS
Diags_USER7
const Diags.USER8
index URL

Alias for analysis event

XDCscript usage meta-domain
const Diags.USER8 = 0x8000;
C SYNOPSIS
Diags_USER8
const Diags.WARNING
index URL

A 'LEVEL4' 'STATUS' event is defined as 'WARNING'

XDCscript usage meta-domain
const Diags.WARNING = Diags.LEVEL4;
DETAILS
See 'EMERGENCY' for details.
C SYNOPSIS
Diags_WARNING
enum Diags.EventLevel
index URL

The level of an event

XDCscript usage meta-domain
values of type Diags.EventLevel
    const Diags.LEVEL1;
    const Diags.LEVEL2;
    const Diags.LEVEL3;
    const Diags.LEVEL4;
DETAILS
The diagnostics bits each represent a different category of event, for example: an analysis event, a lifecycle event, or an informational event. Within each of these categories, events may have one of four levels to enable filtering based on the level of information desired.
The meaning of these levels and the distinction between them is left open to the user. Depending on the meaning given, different terminology may be used to describe them--they may be levels of detail, priority, severity, etc. The heirarchy of the events is set such that LEVEL1 is the highest priority and LEVEL4 is the lowest. That is, enabling LEVEL4 events implies that events of all four levels will be logged.
LEVEL1
Least detail, highest priority, most severe, etc.
LEVEL2
LEVEL3
LEVEL4
Most detail, lowest priority, least severe, etc.
The STATUS bit is the only category where the levels are given explicit meaning to ensure consistency. Within the STATUS category, the meaning of the levels is defined by the constants EMERGENCY, CRITICAL, ERROR, and WARNING.
Events which don't define a level will receive LEVEL1 by default.
C SYNOPSIS
Diags_EventLevel
metaonly enum Diags.Mode
index URL

Diagnostics mask bit value used at configuration time

XDCscript usage meta-domain
values of type Diags.Mode
    const Diags.ALWAYS_OFF;
    // permanently disabled
    const Diags.ALWAYS_ON;
    // permanently enabled
    const Diags.RUNTIME_OFF;
    // run-time settable, initially disabled
    const Diags.RUNTIME_ON;
    // run-time settable, initially enabled
DETAILS
At run-time a module's diagnostics mask is an ordinary data word with each bit value being 0 or 1 indicating whether or not the corresponding diagnostic is disabled or enabled. At configuration time, however, each bit of the diagnostics mask can be placed in one of several Modes; these modes determine its initial runtime value and whether or not the bit is modifiable at runtime.
When setting a module's diagnostics mask at configuration time, use one of the enumerated values of type Mode. These values will either set or clear a bit in the mask and also define if the bit can be changed at run-time. For example, using ALWAYS_OFF as the bit value means that bit cannot be set at run-time. This fact can be used by an optimizer to perform constant-folding and dead-code elimination.
metaonly config Diags.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Diags.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.
metaonly Diags.setMaskMeta() // module-wide
index URL

Set the module's diagnostics mask at config time

XDCscript usage meta-domain
Diags.setMaskMeta(Any pattern, Bits16 mask, Diags.Mode mode) returns Void
ARGUMENTS
pattern — module prefix or regular expression
The pattern is used to match a module's name. If pattern is specified as a string, then name prefix matching is used. The pattern may also be a regular expression. Only the masks of the modules matching pattern are set.
mask — diagnostic fields to modify
The mask is used to determine which fields in the diags mask are modified. Each field specified in the mask is set to the given mode value.
mode — mode to assign to the specified mask fields
generated on Thu, 08 Nov 2012 02:13:24 GMT


module xdc.runtime.Diags

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Diags.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== Diags ========
    19     *  Diagnostics manager
    20     *
    21     *  Every XDC module has a "diagnostics mask" that allows clients to
    22     *  enable or disable diagnostics on a per module basis both at
    23     *  configuration time and at runtime. The `Diags` module manages a
    24     *  module's diagnostics mask.
    25     *
    26     *  You use the `Diags` module to set and clear bits in a module's
    27     *  diagnostics mask for the purpose of controlling diagnostics
    28     *  within that module. Each bit corresponds to a "category" of diagnostic
    29     *  that can be individually enabled or disabled.
    30     *
    31     *  A module's diagnostics mask controls both `{@link Assert}` and
    32     *  `{@link Log}` statements within that module. A module's diagnostics
    33     *  mask may also be used to conditionally execute blocks of code using
    34     *  the `{@link #query Diags_query()}` runtime function.
    35     *
    36     *  A module's diagnostics mask can be set at configuration time and
    37     *  at runtime. The implementation of diagnostics is such that when they
    38     *  are permanently turned off at configuration time
    39     *  (`{@link #ALWAYS_OFF Mode.ALWAYS_OFF}`), an optimizer can
    40     *  completely eliminate the diagnostics code from the program. Similarly,
    41     *  if diagnostics are permanently turned on at configuration time
    42     *  (`{@link #ALWAYS_ON Mode.ALWAYS_ON}`), the optimizer can
    43     *  eliminate all runtime conditional checking and simply
    44     *  invoke the diagnostics code directly. Runtime checking of the
    45     *  diagnostics mask is performed only when the diagnostics are configured
    46     *  to be runtime modifiable (`{@link #RUNTIME_OFF Mode.RUNTIME_OFF}` or
    47     *  `{@link #RUNTIME_ON Mode.RUNTIME_ON}`).
    48     *
    49     *  Each bit of the diagnostics mask is controlled by one of the following
    50     *  constants.
    51     *
    52     *  @p(code)
    53     *  Constant    Meaning
    54     *  --------------------------
    55     *  ENTRY       Function entry
    56     *  EXIT        Function exit
    57     *  LIFECYCLE   Object life-cycle
    58     *  INTERNAL    Internal diagnostics
    59     *  ASSERT      Assert checking
    60     *  STATUS      Warning or Error events
    61     *  USER1       User defined diagnostics
    62     *  USER2       User defined diagnostics
    63     *  USER3       User defined diagnostics
    64     *  USER4       User defined diagnostics
    65     *  USER5       User defined diagnostics
    66     *  USER6       User defined diagnostics
    67     *  USER7       User defined diagnostics
    68     *  INFO        Informational event
    69     *  USER8       User defined diagnostics
    70     *  ANALYSIS    Analysis event
    71     *  @p
    72     *
    73     *  These constants can be used from either JavaScript configuration
    74     *  scripts or C code and, therefore, have two "names". For example,
    75     *  to reference the ENTRY constant from JavaScript you must use
    76     *  `Diags.ENTRY` whereas from C you would use `Diags_ENTRY`.
    77     *
    78     *  The `ENTRY` and `EXIT` categories are for log statements at the entry and
    79     *  exit points, respectively, to each function within a module. This
    80     *  is useful for tracking the execution flow of your program.
    81     *
    82     *  The `LIFECYCLE` category is for log events at the create/construct
    83     *  and delete/destruct points of each instance object for the module.
    84     *  This is useful for tracking the life-cycle of a module instance object.
    85     *
    86     *  `ASSERT` and `INTERNAL` are unique in that they are not related to logging,
    87     *  but instead control the Assert statements in a module. These categories
    88     *  control the two classes of asserts:
    89     *
    90     *  @p(blist)
    91     *  - Public asserts, which have an `{@link Assert#Id Assert_Id}` and
    92     *  are documented in the module's reference pages. These asserts are
    93     *  on by default and are meant to help developers validate code that
    94     *  invokes a module's functions.
    95     *  - Internal asserts, which have no `{@link Assert#Id Assert_Id}`.
    96     *  These asserts are off by default and are typically used only when
    97     *  developing code. That is, like the standard C assert() mechanism,
    98     *  these asserts are not part of a deployed application.
    99     *  @p
   100     *
   101     *  When a module has enabled the `ASSERT` category (which is enabled by
   102     *  default) in its diagnostics mask, the module executes all of its public
   103     *  assert statements. To enable internal asserts, you must enable both the
   104     *  `ASSERT` and `INTERNAL` categories.
   105     *
   106     *  The `ASSERT` and `INTERNAL` categories are not intended for use as log
   107     *  event categories. If an event is defined with either of these categories,
   108     *  you will receive a validation error during configuration.
   109     *
   110     *  The `STATUS` category is used for error and warning type events. The
   111     *  four event levels within the `STATUS` category have defined meanings,
   112     *  see {@link #EMERGENCY}
   113     *
   114     *  The `INFO` category is used for generic informational events. Any event
   115     *  which does not belong to a more specific category of events may simply
   116     *  be an `INFO` event.
   117     *
   118     *  The `ANALYSIS` category is used for events related to benchmarks and
   119     *  performance analysis.
   120     *
   121     *  The `USER1`-`6` categories are available to each module writer to use as
   122     *  he or she wishes.
   123     *
   124     *  The USER7 and USER8 categories are still defined, but their bits have been
   125     *  repurposed for the INFO and ANALYSIS categories, respectively, so the use
   126     *  of USER7 and USER8 has been deprecated.
   127     *
   128     *  @a(Examples)
   129     *  Configuration example: The following XDC configuration statements set
   130     *  a module's diagnostics mask in a configuration script. (In this case,
   131     *  the `Task` module of the `ti.sysbios.knl` package is used.) In this
   132     *  example, the `ENTRY` bit is turned on and the `EXIT` bit is turned off.
   133     *  Both bits are configured to be runtime modifiable.
   134     *
   135     *  @p(code)
   136     *  var Diags = xdc.useModule('xdc.runtime.Diags');
   137     *  var Task = xdc.useModule('ti.sysbios.knl.Task');
   138     *
   139     *  Task.common$.diags_ENTRY = Diags.RUNTIME_ON;
   140     *  Task.common$.diags_EXIT = Diags.RUNTIME_OFF;
   141     *  @p
   142     *
   143     *  @p(html)
   144     *  <hr />
   145     *  @p
   146     *
   147     *  Runtime example: The following C code shows how to disable and
   148     *  reenable `ENTER` diagnostics at runtime for the `ti.sysbios.knl.Task`
   149     *  module configured in the previous example. The first call to
   150     *  `{@link Diags#setMask Diag_setMask()}` enables entry diagnostics
   151     *  (`"+E"`) for just the `ti.sysbios.knl.Task` module; any call to any
   152     *  `Task` method in the application causes an "entry" `Log` event to be
   153     *  generated. The second call disables ("-E") the generation of these
   154     *  events. See `{@link #setMask Diags_setMask()}` for a complete
   155     *  description of the strings accepted by this function.
   156     *
   157     *  @p(code)
   158     *  #include <xdc/runtime/Diags.h>
   159     *  :
   160     *  Diags_setMask("ti.sysbios.knl.Task+E");
   161     *  :
   162     *  Diags_setMask("ti.sysbios.knl.Task-E");
   163     *  @p
   164     *
   165     *  @p(html)
   166     *  <hr />
   167     *  @p
   168     *
   169     *  Configuration example: The following XDC configuration statements
   170     *  turn on asserts in the entire program.
   171     *
   172     *  @p(code)
   173     *  var Diags = xdc.useModule('xdc.runtime.Diags');
   174     *  var Defaults = xdc.useModule('xdc.runtime.Defaults');
   175     *
   176     *  Defaults.diags_ASSERT = Diags.ALWAYS_ON;
   177     *  @p
   178     *
   179     *  @p(html)
   180     *  <hr />
   181     *  @p
   182     *
   183     *  Configuration example: Using the
   184     *  `{@link Diags#setMaskMeta Diags.setMaskMeta()}` function, the
   185     *  following XDC configuration statements turn on asserts in all
   186     *  of the modules whose name begins with "`ti.sysbios.`" In this case,
   187     *  no change to the application code is necessary to enable these
   188     *  events. It is important to note that, while the configuration
   189     *  step must be re-run and the application must be re-linked, no
   190     *  application sources need to be recompiled.
   191     *
   192     *  @p(code)
   193     *  var Diags = xdc.useModule('xdc.runtime.Diags');
   194     *  Diags.setMaskMeta("ti.sysbios.%", Diags.ASSERT, Diags.ALWAYS_ON);
   195     *  @p
   196     */
   197
   198    @CustomHeader
   199    @Template("./Diags.xdt")
   200
   201    module Diags {
   202
   203        /*!
   204         *  ======== Mode ========
   205         *  Diagnostics mask bit value used at configuration time.
   206         *
   207         *  At run-time a module's diagnostics mask is an ordinary data word
   208         *  with each bit value being 0 or 1 indicating whether or not the
   209         *  corresponding diagnostic is disabled or enabled.  At configuration
   210         *  time, however, each bit of the diagnostics mask can be
   211         *  placed in one of several `Mode`s; these modes determine its initial
   212         *  runtime value and whether or not the bit is modifiable at runtime.
   213         *
   214         *  When setting a module's diagnostics mask at configuration time,
   215         *  use one of the enumerated values of type `Mode`. These
   216         *  values will either set or clear a bit in the mask and also define
   217         *  if the bit can be changed at run-time. For example, using
   218         *  `ALWAYS_OFF` as the bit value means that bit cannot be set
   219         *  at run-time. This fact can be used by an optimizer to perform
   220         *  constant-folding and dead-code elimination.
   221         */
   222        metaonly enum Mode {
   223            ALWAYS_OFF,     //! permanently disabled
   224            ALWAYS_ON,      //! permanently enabled
   225            RUNTIME_OFF,    //! run-time settable, initially disabled
   226            RUNTIME_ON      //! run-time settable, initially enabled
   227        };
   228
   229        /*! Type used to specify bits in the diags mask. */
   230        typedef Types.DiagsMask Mask;
   231
   232        const Mask ENTRY        = 0x0001;   //! Function entry
   233        const Mask EXIT         = 0x0002;   //! Function exit
   234        const Mask LIFECYCLE    = 0x0004;   //! Object life-cycle
   235        const Mask INTERNAL     = 0x0008;   //! Internal diagnostics
   236
   237        const Mask ASSERT       = 0x0010;   //! Assert checking
   238
   239        const Mask STATUS       = 0x0080;   //! Warning or error event
   240
   241        /*! @_nodoc */
   242        const Mask LEVEL        = 0x0060;   //! Mask to retrieve the level bits
   243
   244        const Mask USER1        = 0x0100;   //! User defined diagnostics
   245        const Mask USER2        = 0x0200;   //! User defined diagnostics
   246        const Mask USER3        = 0x0400;   //! User defined diagnostics
   247        const Mask USER4        = 0x0800;   //! User defined diagnostics
   248
   249        const Mask USER5        = 0x1000;   //! User defined diagnostics
   250        const Mask USER6        = 0x2000;   //! User defined diagnostics
   251        const Mask USER7        = 0x4000;   //! Alias for informational event
   252        const Mask INFO         = USER7;    //! Informational event
   253        const Mask USER8        = 0x8000;   //! Alias for analysis event
   254        const Mask ANALYSIS     = USER8;    //! Analysis (e.g., benchmark) event
   255
   256        /*!
   257         *  ======== ALL ========
   258         *  Mask of all diagnostics categories, including both logging and asserts
   259         */
   260        const Mask ALL          = 0xFF9F;
   261
   262        /*!
   263         *  ======== ALL_LOGGING ========
   264         *  Mask of all logging diagnostic categories (does not include asserts)
   265         */
   266        const Mask ALL_LOGGING  = ALL & (~ASSERT) & (~INTERNAL);
   267
   268        /*!
   269         *  ======== EventLevel =========
   270         *  The level of an event.
   271         *
   272         *  The diagnostics bits each represent a different category of event,
   273         *  for example: an analysis event, a lifecycle event, or an informational
   274         *  event. Within each of these categories, events may have one of four
   275         *  levels to enable filtering based on the level of information desired.
   276         *
   277         *  The meaning of these levels and the distinction between them is left
   278         *  open to the user. Depending on the meaning given, different terminology
   279         *  may be used to describe them--they may be levels of detail, priority,
   280         *  severity, etc. The heirarchy of the events is set such that `LEVEL1` is
   281         *  the highest priority and `LEVEL4` is the lowest. That is, enabling
   282         *  `LEVEL4` events implies that events of all four levels will be logged.
   283         *  @p(dlist)
   284         *      - `LEVEL1`
   285         *        Least detail, highest priority, most severe, etc.
   286         *      - `LEVEL2`
   287         *      - `LEVEL3`
   288         *      - `LEVEL4`
   289         *        Most detail, lowest priority, least severe, etc.
   290         *  @p
   291         *  The `STATUS` bit is the only category where the levels are given
   292         *  explicit meaning to ensure consistency. Within the `STATUS` category,
   293         *  the meaning of the levels is defined by the constants `EMERGENCY`,
   294         *  `CRITICAL`, `ERROR`, and `WARNING`.
   295         *
   296         *  Events which don't define a level will receive `LEVEL1` by default.
   297         */
   298        enum EventLevel {
   299            LEVEL1 = 0x0,
   300            LEVEL2 = 0x20,
   301            LEVEL3 = 0x40,
   302            LEVEL4 = 0x60
   303        };
   304
   305        /*!
   306         *  ======== EMERGENCY ========
   307         *  A 'LEVEL1' 'STATUS' event is defined as 'EMERGENCY'
   308         *
   309         *  For STATUS events only, the meaning of the four EventLevels has been
   310         *  defined. These constants are simply aliases for the four event levels.
   311         *
   312         *  The highest three levels are different severities of an error event.
   313         *  For example, an EMERGENCY event may represent an unrecoverable system
   314         *  failure, a CRITICAL event may require notification of an operator,
   315         *  and an ERROR may be a recoverable error.
   316         *
   317         *  The lowest level is reserved for warnings, such as when a resource
   318         *  becomes dangerously low.
   319         */
   320        const EventLevel EMERGENCY = LEVEL1;
   321
   322        /*!
   323         *  ======== CRITICAL ========
   324         *  A 'LEVEL2' 'STATUS' event is defined as 'CRITICAL'
   325         *
   326         *  See '{@link #EMERGENCY}' for details.
   327         */
   328        const EventLevel CRITICAL = LEVEL2;
   329
   330        /*!
   331         *  ======== ERROR ========
   332         *  A 'LEVEL3' 'STATUS' event is defined as 'ERROR'
   333         *
   334         *  See '{@link #EMERGENCY}' for details.
   335         */
   336        const EventLevel ERROR = LEVEL3;
   337
   338        /*!
   339         *  ======== WARNING ========
   340         *  A 'LEVEL4' 'STATUS' event is defined as 'WARNING'
   341         *
   342         *  See '{@link #EMERGENCY}' for details.
   343         */
   344        const EventLevel WARNING = LEVEL4;
   345
   346        /*!
   347         *  ======== DiagsMaskView ========
   348         *  @_nodoc
   349         */
   350        metaonly struct DiagsMaskView {
   351            String Module;
   352            String logger;
   353            String USER1;
   354            String USER2;
   355            String USER3;
   356            String USER4;
   357            String USER5;
   358            String USER6;
   359            String INFO;
   360            String ANALYSIS;
   361            String STATUS;
   362            String ENTRY;
   363            String EXIT;
   364            String LIFECYCLE;
   365            String INTERNAL;
   366            String ASSERT;
   367        }
   368
   369        /*!
   370         *  ======== rovViewInfo ========
   371         *  @_nodoc
   372         */
   373        @Facet
   374        metaonly config xdc.rov.ViewInfo.Instance rovViewInfo =
   375            xdc.rov.ViewInfo.create({
   376                viewMap: [
   377                    ['DiagsMasks',
   378                        {
   379                            type: xdc.rov.ViewInfo.TREE_TABLE,
   380                            viewInitFxn: 'viewInitDiagsMasks',
   381                            structName: 'DiagsMaskView'
   382                        }
   383                    ]
   384                ]
   385            });
   386
   387        /*!
   388         *  ======== query ========
   389         *  Query the module's diagnostics mask against the given mask
   390         *
   391         *  Use this query function to test the state of a module's
   392         *  diagnostics mask at runtime. This function will perform a logical
   393         *  `AND` operation on the module's diagnostics mask and the given mask.
   394         *  If any bits survive the operation, the function returns `true`.
   395         *
   396         *  @p(code)
   397         *  result = moduleMask & givenMask ? true : false;
   398         *  @p
   399         *
   400         *  This query function has a compile-time binding to the module's
   401         *  diagnostics mask. If the query function is part of the C code
   402         *  implementation of a module, then it will use that module's
   403         *  diagnostics mask. Otherwise, it will use the diagnostics mask
   404         *  of the `{@link Main xdc.runtime.Main}` module.
   405         *
   406         *  The implementation of the diagnostics mask and the query function
   407         *  is such that an optimizer can take advantage of dead code elimination
   408         *  and/or constant folding to eliminate or reduce code size. For example,
   409         *  if the query function is used in a conditional test, and the given
   410         *  mask contains only bits which have been configured to be permanently
   411         *  off, then the code for the entire conditional statement can be removed
   412         *  at link time. If the bits in the given mask have been configured to be
   413         *  permanently on, then the conditional code can be removed leaving the
   414         *  body of the conditional as direct in-line code.
   415         *
   416         *  @param(mask) mask of diagnostics bits to test
   417         *
   418         *  This given mask is constructed by `OR`'ing together
   419         *  the desired bits of the diagnostics mask using the constants listed
   420         *  in the {@link #ALL Mask Summary} above. The module's diagnostics
   421         *  mask will be logically `AND`'ed with the given mask, and return `true`
   422         *  if the result is non-zero and `false` otherwise.
   423         *
   424         *  @p(code)
   425         *      if (Diags_query(Diags_USER1 | Diags_USER4)) {
   426         *          :
   427         *      }
   428         *  @p
   429         *
   430         *  @a(Examples)
   431         *  In the following example, the `{@link #USER1 USER1}` bit of the
   432         *  module's diagnostics mask has been configured to be permanently off,
   433         *  thus the entire conditional code block can be removed at link time.
   434         *  Note, the C code below is part of the module itself.
   435         *
   436         *  Configuration Script
   437         *  @p(code)
   438         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   439         *  var ModA = xdc.useModule('my.package.ModuleA');
   440         *  ModA.common$.diags_USER1 = Diags.ALWAYS_OFF;
   441         *  @p
   442         *
   443         *  C Code, ModA.c
   444         *  @p(code)
   445         *  if (Diags_query(Diags_USER1)) {         // this code removed
   446         *      ...additional code here...          // this code removed
   447         *  }                                       // this code removed
   448         *  @p
   449         *
   450         *  @p(html)
   451         *  <hr />
   452         *  @p
   453         *
   454         *  In the following example, the `{@link #USER1 USER1}` bit of the
   455         *  module's diagnostics mask has been configured to be permanently on,
   456         *  thus the conditional code can be removed leaving the code contained
   457         *  within the conditional statement. Note, the C code below is part of
   458         *  the module itself.
   459         *
   460         *  Configuration Script
   461         *  @p(code)
   462         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   463         *  var ModA = xdc.useModule('my.package.ModuleA');
   464         *  ModA.common$.diags_USER1 = Diags.ALWAYS_ON;
   465         *  @p
   466         *
   467         *  C Code, ModA.c
   468         *  @p(code)
   469         *  if (Diags_query(Diags_USER1) {          // this code removed
   470         *      ...additional code here...          // this code remains
   471         *  }                                       // this code removed
   472         *  @p
   473         *
   474         */
   475        @Macro Bool query(Mask mask);
   476
   477        /*!
   478         *  ======== getLevel ========
   479         *  Get the event level set in the given mask
   480         *
   481         *  See '{@link #EventLevel}' for a description of event levels.
   482         *
   483         *  @param(mask) mask of diagnostics bits to read filter level from.
   484         */
   485        @Macro EventLevel getLevel(Mask mask);
   486
   487        /*!
   488         *  ========= compareLevels ========
   489         *  Returns false if levelA is lower than levelB
   490         *
   491         *  This API is intended to be used to determine if a given event
   492         *  passes a filtering threshold and should be logged. Conceptually (though
   493         *  not necessarily in implementation), this API is equivalent to the
   494         *  expression (levelA < levelB). The values of the EventLevels have
   495         *  internal meaning, so a direct comparison of two levels should not done;
   496         *  this API must be used to correctly compare them.
   497         *
   498         *  LEVEL1 is the highest level and LEVEL4 is the lowest. So LEVEL4 is
   499         *  less than LEVEL3, which is less than LEVEL2, which is less than LEVEL1.
   500         */
   501        @Macro Bool compareLevels(EventLevel levelA, EventLevel levelB);
   502
   503        /*!
   504         *  ======== setMask ========
   505         *  Set a module's diagnostics mask at runtime
   506         *
   507         *  Use the given control string to set or clear bits in a module's
   508         *  diagnostics mask. The control string defines one or more actions
   509         *  where each action modifies the diagnostics mask in one or more
   510         *  modules. Each action can either set, clear, or assign a module's
   511         *  diagnostics mask. To both set and clear bits in the same diagnostics
   512         *  mask requires two actions, or you can assign the entire mask
   513         *  explicitly in one action. Each action can specify a given module or
   514         *  a set of modules using name prefix matching.
   515         *
   516         *  @a(Warning)
   517         *
   518         *  Each bit of a module's diagnostics mask that is to be modified at
   519         *  runtime, must be configured to be runtime modifiable in the
   520         *  program's configuration script. Use either `{@link #Mode RUNTIME_OFF}`
   521         *  or `{@link #Mode RUNTIME_ON}` as the configuration value for the
   522         *  desired bit in the diagnostics mask. In addition, the
   523         *  `{@link Diags#setMaskEnabled Diags.setMaskEnabled}` configuration
   524         *  parameter must be set to `true` in order to load this function onto
   525         *  the target. Finally, the following configuration parameters must
   526         *  have the values indicated (which are their default values):
   527         *
   528         *  @p(blist)
   529         *  - `{@link IModule#common$ <module>.common$.namedModule} = true;`
   530         *  - `{@link Text#isLoaded} = true;`
   531         *  @p
   532         *
   533         *  Note: any error that occurs during the parsing of the control string
   534         *  causes `Diags_setMask()` to return without processing the remainder
   535         *  of the control string.
   536         *
   537         *  @param(control) diagnostic mask control string
   538         *
   539         *  This control string defines one or more actions
   540         *  where each action consists of a module name, an operator character,
   541         *  and a list of bit specifiers. Use the `%` character as a wildcard
   542         *  to turn the module name into a prefix matching pattern for a set
   543         *  of modules. Multiple actions are separated with the `;` character.
   544         *
   545         *  @p
   546         *  The control string has the following format:
   547         *
   548         *  @p(code)
   549         *  <module[%]><op><bits>[;<module[%]><op><bits>]
   550         *  @p
   551         *
   552         *  Specify individual module names explicitly (e.g.
   553         *  `ti.sysbios.knl.Task`), or match multiple modules using a prefix
   554         *  matching pattern specified with the `%` character (e.g.
   555         *  `ti.sysbios.knl.%`).
   556         *
   557         *  @p
   558         *  The operator is specified with a single character from the following
   559         *  table.
   560         *
   561         *  @p(code)
   562         *  Operator    Description
   563         *  --------------------------------------------------
   564         *  +           Set only the specified bits (other bits preserved)
   565         *  -           Clear only the specified bits (other bits preserved)
   566         *  =           Assign the entire mask to the given value where the
   567         *              specified bits are set and all other bits are cleared
   568         *  @p
   569         *
   570         *  The bits are specified with a list of characters from the following
   571         *  table. Refer to the {@link #ALL Mask Summary} for a list of each
   572         *  bit of the diagnostics mask.
   573         *
   574         *  @p(code)
   575         *  Control     Diagnostics
   576         *  Character   Constant        Description
   577         *  --------------------------------------------------
   578         *  E           ENTRY           Function entry
   579         *  X           EXIT            Function exit
   580         *  L           LIFECYCLE       Object life-cycle
   581         *  I           INTERNAL        Internal diagnostics
   582         *  A           ASSERT          Assert checking
   583         *  Z           ANALYSIS        Analysis event
   584         *  F           INFO            Informational event
   585         *  S           STATUS          Status (error, warning) event
   586         *  1           USER1           User defined diagnostics
   587         *  2           USER2           User defined diagnostics
   588         *  3           USER3           User defined diagnostics
   589         *  4           USER4           User defined diagnostics
   590         *  5           USER5           User defined diagnostics
   591         *  6           USER6           User defined diagnostics
   592         *  7           USER7           User defined diagnostics
   593         *  8           USER8           User defined diagnostics
   594         *  @p
   595         *
   596         *  @a(Examples)
   597         *  The following example demonstrates how to set a module's diagnostics
   598         *  mask (the `Task` module in this case) at runtime. In this example, the
   599         *  `{@link #USER1 USER1}` bit is turned on. Note that the module's
   600         *  `{@link #USER1 USER1}` diagnostics bit must be configured to be runtime
   601         *  modifiable. In this instance, the bit is initialized to off.
   602         *
   603         *  Configuration Script
   604         *  @p(code)
   605         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   606         *  var Task = xdc.useModule('ti.sysbios.knl.Task');
   607         *  Task.common$.diags_USER1 = Diags.RUNTIME_OFF;
   608         *  @p
   609         *
   610         *  C Code
   611         *  @p(code)
   612         *  Diags_setMask("ti.sysbios.knl.Task+1");
   613         *  @p
   614         *
   615         *  @p(html)
   616         *  <hr />
   617         *  @p
   618         *
   619         *  The following example demonstrates the use of the `%` wildcard
   620         *  character to set the `{@link #USER1 USER1}` bit at runtime for
   621         *  all modules in the `ti.sysbios.knl` package. The meta-only
   622         *  `{@link #setMaskMeta Diags.setMaskMeta}` function is used to configure
   623         *  the `{@link #USER1 USER1}` bit to be runtime modifiable. The `setMask`
   624         *  function is used to actually set the `{@link #USER1 USER1}` bit at
   625         *  runtime in all the `ti.sysbios.knl` modules.
   626         *  Note the use of the `%` character in both functions to match all the
   627         *  module names within the given package.
   628         *
   629         *  Configuration Script
   630         *  @p(code)
   631         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   632         *  Diags.setMaskMeta("ti.sysbios.knl.%", Diags.USER1, Diags.RUNTIME_OFF);
   633         *  @p
   634         *
   635         *  C Code
   636         *  @p(code)
   637         *  Diags_setMask("ti.sysbios.knl.%+1");
   638         *  @p
   639         *
   640         *  @p(html)
   641         *  <hr />
   642         *  @p
   643         *
   644         *  In the following example, the `{@link #ENTRY ENTRY}`,
   645         *  `{@link #EXIT EXIT}` and `{@link #LIFECYCLE LIFECYCLE}` trace is
   646         *  enabled for all modules in the `ti.sysbios.knl` package but is
   647         *  initially off; i.e., no events will occur until explicitly turned
   648         *  on at runtime.
   649         *
   650         *  At runtime the call to `Diags_setMask` turns on
   651         *  `{@link #ENTRY ENTRY}` and `{@link #EXIT EXIT}` trace and turns off
   652         *  `{@link #LIFECYCLE LIFECYCLE}` trace for all modules in
   653         *  the application for which trace has been enabled during
   654         *  configuration.  In this case, the only modules that can generate
   655         *  events are those in the `ti.sysbios.knl` package.
   656         *
   657         *  Configuration Script
   658         *  @p(code)
   659         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   660         *  Diags.setMaskMeta("ti.sysbios.knl.%",
   661         *      Diags.ENTRY | Diags.EXIT | Diags.LIFECYCLE, Diags.RUNTIME_OFF);
   662         *  @p
   663         *
   664         *  C Code
   665         *  @p(code)
   666         *  Diags_setMask("%+EX;%-L");
   667         *  @p
   668         */
   669        Void setMask(String control);
   670
   671        /*!
   672         *  ======== setMaskMeta ========
   673         *  Set the module's diagnostics mask at config time
   674         *
   675         *  @param(pattern) module prefix or regular expression
   676         *
   677         *  The `pattern` is used to match a module's name. If `pattern` is
   678         *  specified as a string, then name prefix matching is used. The
   679         *  pattern may also be a regular expression.  Only the masks of the
   680         *  modules matching `pattern` are set.
   681         *
   682         *  @param(mask) diagnostic fields to modify
   683         *
   684         *  The `mask` is used to determine which fields in the diags mask are
   685         *  modified. Each field specified in the mask is set to the given
   686         *  `mode` value.
   687         *
   688         *  @param(mode) mode to assign to the specified `mask` fields
   689         */
   690        metaonly Void setMaskMeta(Any pattern, Mask mask, Mode mode);
   691
   692    internal:
   693
   694        /*!
   695         *  ======== setMaskEnabled ========
   696         *  Controls the ability to set the diags mask at run-time
   697         *
   698         *  This configuration parameter allows whole program optimizers to reduce
   699         *  the code size. The default is `false`, which means the diags mask will
   700         *  not be modified at run-time and thus the code is not needed.
   701         *
   702         *  For now, this should be internal because its value is determined
   703         *  automatically, rather than through user's input. See CQ19111 for more
   704         *  details.
   705         */
   706        config Bool setMaskEnabled = false;
   707
   708        /*
   709         *  ======== dictBase ========
   710         *  Array of module-id:diags-mask pairs in which each module is named
   711         *
   712         *  This array, generated by Diags.xdt, is terminated by an element
   713         *  with modId == 0.
   714         */
   715        config DictElem *dictBase = null;
   716
   717        struct DictElem {
   718            Types.ModuleId  modId;      /* statically computed module id */
   719            Mask           *maskAddr;   /* module's diags mask address */
   720        };
   721    }
   722    /*
   723     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   724     */
   725


module xdc.runtime.Error
index URL

Runtime error manager

  • C synopsis
  • Individual elements
  • DETAILS
  • EXAMPLES
  • XDCscript usage
  • Individual elements
The Error module provides mechanisms for raising, checking, and handling errors in a program. You can configure it via the Error.policy and Error.raiseHook configuration parameters. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Error.xdc
#include <xdc/runtime/Error.h>
Functions
Bool | Error_check// Return TRUE if an error was raised(Error_Block *eb);
UInt16 | Error_getCode// Get an error's code(Error_Block *eb);
Error_Data * | Error_getData// Get an error's argument list(Error_Block *eb);
Error_Id | Error_getId// Get an error's id(Error_Block *eb);
String | Error_getMsg// Get an error's "printf" format string(Error_Block *eb);
Types_Site * | Error_getSite// Get an error's call site info(Error_Block *eb);
Void | Error_init// Put an error block into its initial state(Error_Block *eb);
Void | Error_print// Print error using System.printf()(Error_Block *eb);
macro Void | Error_raise// Raise an error(Error_Block *eb, Error_Id id, IArg arg1, IArg arg2);
Functions common to all target modules
 | Error_Module_getMask// Returns the diagnostics mask for this module, Error_Module_hasMask// Test whether this module has a diagnostics mask, Error_Module_heap// The heap from which this module allocates memory, Error_Module_id// Get this module's unique id, Error_Module_setMask// Set the diagnostics mask for this module, Error_Module_startupDone// Test if this module has completed startup
Defines
#define | Error_NUMARGS// Maximum number of arguments supported by an error (Int)2
Typedefs
typedef struct | Error_Block// Error block Error_Block;
typedef struct | Error_Data// Error args ...
typedef Void | (*Error_HookFxn// Function called whenever an error is raised)(Error_Block*);
typedef opaque | Error_Id// Error identifier;
typedef enum | Error_Policy// Error handling policies ...
Constants
extern const Error_Id | Error_E_generic// Generic error;
extern const Error_Id | Error_E_memory// Out of memory error;
extern const Error_Id | Error_E_msgCode// Generic error that displays a string and a numeric value;
extern const UInt16 | Error_maxDepth// Maximum number of concurrent calls to raiseHook;
extern const Error_Policy | Error_policy// System-wide error handling policy;
extern const Error_HookFxn | Error_raiseHook// The function to call whenever an error is raised;
DETAILS
The Error module provides mechanisms for raising, checking, and handling errors in a program. You can configure it via the Error.policy and Error.raiseHook configuration parameters.
Modules may define specific error types and reference these when raising an error. Each error type has a custom error message and can be parameterized with up to NUMARGS arguments. A generic error type is provided for raising errors when not in a module.
Use the Error_check() function to determine if an error has been raised. It is important to understand that it is the caller's responsibility to check the error block after calling a function that takes an error block as an argument. Otherwise, a raised error may go undetected, which could compromise the integrity of the system. For example:
  Task_create(..., &eb);

  if (Error_check(&eb)) {
      ...an error has been raised...
  }
The Error.raiseHook configuration parameter allows a configured function to be invoked when any error is raised. This function is passed a pointer to the error's error block and makes it easy to manage all errors from a common point. For example, you can trap any error (fatal or not) by simply setting a breakpoint in this function. You can use the following functions to extract information from an error block.
  • Error_getData()
  • Error_getCode()
  • Error_getId()
  • Error_getMsg()
  • Error_getSite()
The Error module provides facilities for handling errors, but the Log module also provides features for logging error events. These are separate concepts; however, to ensure that users do not have to both raise and log an error, the Error module will automatically log an error event when one is raised. The Error module logs the standard Log.L_error event, passing it the error message and arguments.
The error event is logged to the Error module's logger using the Error module's diags mask. Logging of errors is enabled by default in the diags mask, but the event will not be logged unless a logger is configured for the Error module as well.
To make the error event appear as though it is coming from the module which called Error_raise, the event is logged with the caller's module id and with the caller's call site information.
EXAMPLES
Example 1: The following example shows how a module, named ModA, defines a custom error type and shows how this error is raised by the module. The module defines an Id of E_notEven in its module specification file (in this case, ModA.xdc). The error's message string takes only one argument. The module also defines a mayFail() function that takes an error block. In the module's C source file, the function checks for the error condition and raises the error if needed.
This is part of ModA's XDC specification file for the module:
  config xdc.runtime.Error.Id E_notEven = {
      msg: "expected an even number (%d)"
  };

  Void mayFail(Int x, xdc.runtime.Error.Block *eb);
This is part of the C code for the module:
  Void ModA_mayFail(Int x, Error_Block *eb)
  {
      if ((x % 2) != 0) {
          Error_raise(eb, ModA_E_notEven, x, 0);
          ...add error handling code here...
          return;
      }
      ...
  }
Example 2: The following C code supplies an error block to a function that requires one and tests the error block to see if the function raised an error. Note that an error block must be initialized before it can be used and same error block may be passed to several functions.
  #include <xdc/runtime/Error.h>
  #include <ti/sysbios/knl/Task.h>
  Error_Block eb;
  Task_Handle tsk;

  Error_init(&eb);
  tsk = Task_create(..., &eb);

  if (Error_check(&eb)) {
      ...an error has been raised...
  }
Example 3: The following C code shows that you may pass NULL to a function requiring an error block. In this case, if the function raises an error, the program is aborted (via xdc_runtime_System_abort()), thus execution control will never return to the caller.
  #include <xdc/runtime/Error.h>
  #include <ti/sysbios/knl/Task.h>

  tsk = Task_create(..., NULL);
  ...will never get here if an error was raised in Task_create...
Example 4: The following C code shows how to write a function that is not part of a module and that takes an error block and raises the generic error type provided by the Error module. Note, if the caller passes NULL for the error block or if the error policy is TERMINATE, then the call to Error_raise() will call xdc_runtime_System_abort() and never return.
  #include <xdc/runtime/Error.h>

  Void myFunc(..., Error_Block *eb)
  {
      ...

      if (...error condition detected...) {
          String  myErrorMsg = "my custom error message";
          Error_raise(eb, Error_E_generic, myErrorMsg, 0);
          ...add error handling code here...
          return;
      }
  }
const Error_NUMARGS
index URL

Maximum number of arguments supported by an error

C synopsis target-domain
#define Error_NUMARGS (Int)2
enum Error_Policy
index URL

Error handling policies

C synopsis target-domain
typedef enum Error_Policy {
    Error_TERMINATE,
    Error_UNWIND
} Error_Policy;
VALUES
TERMINATE — All raised errors are fatal. A call to Error_raise will never return to the caller.
UNWIND — Errors are returned to the caller. A call to Error_raise will return back to the caller.
DETAILS
Regardless of the current policy in use, raising an error by calling Error_raise will always invoke the error raise hook function assigned to the Error.raiseHook configuration parameter.
typedef Error_HookFxn
index URL

Function called whenever an error is raised

C synopsis target-domain
typedef Void (*Error_HookFxn)(Error_Block*);
DETAILS
The first parameter and only parameter passed to this function is a pointer to an Error_Block. Even if the client passes a NULL error block pointer to Error_raise, this parameter passed to this "hook" function is always non-NULL.
typedef Error_Id
index URL

Error identifier

C synopsis target-domain
typedef opaque Error_Id;
DETAILS
Each type of error raised is defined with a metaonly Error.Desc. An Error_Id is a 32-bit target value that encodes the information in the Desc. Target programs use Error_Id values to "raise" and check for specific errors.
WARNING
Id values may vary among different configurations of an application. For example, the addition of a new module to a program may result in a different absolute value for E_generic. If you need error numbers that remain invariant, use the user definable Desc.code field.
struct Error_Block
index URL

Error block

C synopsis target-domain
typedef struct Error_Block Error_Block;
DETAILS
An opaque structure used to store information about errors once raised. This structure must be initialized via Error_init() before being used for the first time.
struct Error_Data
index URL

Error args

C synopsis target-domain
typedef struct Error_Data {
    IArg arg[Error_NUMARGS];
} Error_Data;
DETAILS
The two arguments (arg1, arg2) passed to raise are stored in one of these arrays within the associated Error_Block. To access these arguments use getData to obtain a pointer to the Error_Block's Data array.
SEE
getData
config Error_E_generic // module-wide
index URL

Generic error

C synopsis target-domain
extern const Error_Id Error_E_generic;
DETAILS
This error takes advantage of the $S specifier to allow for recursive formatting of the error message passed to error raise.
For example, the following is possible:
  Error_raise(eb, Error_E_generic, "Error occurred, code: %d", code);
SEE
System.extendedFormats, System.printf
config Error_E_memory // module-wide
index URL

Out of memory error

C synopsis target-domain
extern const Error_Id Error_E_memory;
DETAILS
The first parameter must be the heap instance handle. The second parameter is the size of the object for which the allocation failed.
config Error_E_msgCode // module-wide
index URL

Generic error that displays a string and a numeric value

C synopsis target-domain
extern const Error_Id Error_E_msgCode;
config Error_maxDepth // module-wide
index URL

Maximum number of concurrent calls to raiseHook

C synopsis target-domain
extern const UInt16 Error_maxDepth;
DETAILS
To prevent errors that occur in the raiseHook function from causing an infinite recursion, the maximum number of concurrent calls to raiseHook is limited by Error_maxDepth. If the number of concurrent calls exceeds Error_maxDepth, the raiseHook function is not called.
In multi-threaded systems, errors raised by separate threads may be detected as recursive calls to raiseHook. So, setting Error.maxDepth to a small value may - in rare instances - result in errorHook not being called for some raised errors.
If it is important that all raised errors trigger a call to the raiseHook function, set Error.maxDepth to an impossibly large number (0xffff) and either ensure that the raise hook never calls a function that can raise an error or add checks in raiseHook to protect against "double faults".
config Error_policy // module-wide
index URL

System-wide error handling policy

C synopsis target-domain
extern const Error_Policy Error_policy;
config Error_raiseHook // module-wide
index URL

The function to call whenever an error is raised

C synopsis target-domain
extern const Error_HookFxn Error_raiseHook;
DETAILS
This function is always called when an error is raised, even if the Error policy is TERMINATE. In rare cases, it is possible that a raised error does not trigger a call to raiseHook; see maxDepth.
By default, this function is set to Error_print which causes the error to be formatted and output via System_printf.
SEE
maxDepth, HookFxn, print
Error_check() // module-wide
index URL

Return TRUE if an error was raised

C synopsis target-domain
Bool Error_check(Error_Block *eb);
ARGUMENTS
eb — pointer to an Error_Block or NULL
RETURNS
If eb is non-NULL and Error.policy == UNWIND and an error was raised on eb, this function returns TRUE. Otherwise, it returns FALSE.
Error_getCode() // module-wide
index URL

Get an error's code

C synopsis target-domain
UInt16 Error_getCode(Error_Block *eb);
ARGUMENTS
eb — non-NULL pointer to an Error_Block
RETURNS
getCode returns the error code associated with this error block.
SEE
raise, Desc
Error_getData() // module-wide
index URL

Get an error's argument list

C synopsis target-domain
Error_Data *Error_getData(Error_Block *eb);
ARGUMENTS
eb — non-NULL pointer to an Error_Block
RETURNS
getData returns an array of type Data with NUMARGS elements containing the arguments provided at the time the error was raised.
SEE
raise
Error_getId() // module-wide
index URL

Get an error's id

C synopsis target-domain
Error_Id Error_getId(Error_Block *eb);
ARGUMENTS
eb — non-NULL pointer to an Error_Block
WARNING
Error_Id values may vary among different configurations of an application. For example, the addition of a new module to a program may result in a different absolute value for E_generic. If you need error numbers that remain invariant, use the user definable Desc.code field.
SEE
raise, Desc
Error_getMsg() // module-wide
index URL

Get an error's "printf" format string

C synopsis target-domain
String Error_getMsg(Error_Block *eb);
ARGUMENTS
eb — non-NULL pointer to an Error_Block
SEE
raise, Desc
Error_getSite() // module-wide
index URL

Get an error's call site info

C synopsis target-domain
Types_Site *Error_getSite(Error_Block *eb);
ARGUMENTS
eb — non-NULL pointer to an Error_Block
RETURNS
getSite returns a pointer to an initialized Types.Site structure. However, in the event that the call site was compiled with xdc_FILE defined to be NULL (to minimize string space overhead) the file field may be set to NULL.
SEE
raise, Desc
Error_init() // module-wide
index URL

Put an error block into its initial state

C synopsis target-domain
Void Error_init(Error_Block *eb);
ARGUMENTS
eb — pointer to an Error_Block or NULL
If eb is NULL this function simply returns.
DETAILS
To ensure reliable error detection, clients must call init for an Error_Block prior to any use.
If the same Error Block is used multiple times, only the last error raised is retained.
Error_print() // module-wide
index URL

Print error using System.printf()

C synopsis target-domain
Void Error_print(Error_Block *eb);
ARGUMENTS
eb — pointer to an Error_Block or NULL
If eb is NULL this function simply returns with no output.
DETAILS
This function prints the error using System_printf(). The output is on a single line terminated with a new line character and has the following form:
      <site>: <file>, line <line_num>: <err_msg>
where <site> is the module that raised the error, <file> and <line_num> are the file and line number of the containing the call site of the Error_raise(), and <err_msg> is the error message rendered with the arguments associated with the error.
WARNING
This function is not protected by a gate and, as a result, if two threads call this method concurrently, the output of the two calls will be intermingled. To prevent intermingled error output, you can either wrap all calls to this method with an appropriate Gate_enter/Gate_leave pair or simply ensure that only one thread in the system ever calls this method.
Error_raise() // module-wide
index URL

Raise an error

C synopsis target-domain
macro Void Error_raise(Error_Block *eb, Error_Id id, IArg arg1, IArg arg2);
ARGUMENTS
eb — pointer to an Error_Block or NULL
If eb is NULL or Error.policy == TERMINATE, this function does not return to the caller; after calling any configured raiseHook, System_abort is called with the string "xdc.runtime.Error.raise: terminating execution\n".
id — the error to raise
This pointer identifies the class of error being raised; the error class indicates how to interpret any subsequent arguments passed to raise.
arg1 — error's first argument
The argument interpreted by the first control character in the error message format string. It is ignored if not needed.
arg2 — error's second argument
The argument interpreted by the second control character in the error message format string. It is ignored if not needed.
DETAILS
This function is used to raise an Error by writing call site, error ID, and error argument information into the Error_Block pointed to by eb.
If Error_raise is called more than once on an Error_Block object, the previous error information is overwritten; only the last error is retained in the Error_Block object.
In all cases, any configured Error.raiseHook function is called with a non-NULL pointer to a fully initialized Error_Block object.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Error_Module_id();
// Get this module's unique id
Bool Error_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Error_Module_heap();
// The heap from which this module allocates memory
Bool Error_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Error_Module_getMask();
// Returns the diagnostics mask for this module
Void Error_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Error.xdc
var Error = xdc.useModule('xdc.runtime.Error');
module-wide constants & types
    const Error.NUMARGS// Maximum number of arguments supported by an error = 2;
    values of type Error.Policy// Error handling policies
        const Error.TERMINATE;
        const Error.UNWIND;
    var obj = new Error.Data// Error args;
        obj.arg = IArg[Error.NUMARGS] ...
    var obj = new Error.Desc// Error descriptor;
        obj.msg = String ...
        obj.code = UInt16 ...
module-wide config parameters
     Error.E_generic// Generic error = Error.Desc {
        msg: "%$S"
    };
     Error.E_memory// Out of memory error = Error.Desc {
        msg: "out of memory: heap=0x%x, size=%u"
    };
     Error.E_msgCode// Generic error that displays a string and a numeric value = Error.Desc {
        msg: "%s 0x%x"
    };
     Error.maxDepth// Maximum number of concurrent calls to raiseHook = UInt16 16;
     Error.policy// System-wide error handling policy = Error.Policy Error.UNWIND;
     Error.raiseHook// The function to call whenever an error is raised = Void(*)(Error.Block*) Error.print;
     Error.common$// Common module configuration parameters = Types.Common$ undefined;
const Error.NUMARGS
index URL

Maximum number of arguments supported by an error

XDCscript usage meta-domain
const Error.NUMARGS = 2;
C SYNOPSIS
Error_NUMARGS
enum Error.Policy
index URL

Error handling policies

XDCscript usage meta-domain
values of type Error.Policy
    const Error.TERMINATE;
    const Error.UNWIND;
VALUES
TERMINATE — All raised errors are fatal. A call to Error_raise will never return to the caller.
UNWIND — Errors are returned to the caller. A call to Error_raise will return back to the caller.
DETAILS
Regardless of the current policy in use, raising an error by calling Error_raise will always invoke the error raise hook function assigned to the Error.raiseHook configuration parameter.
C SYNOPSIS
Error_Policy
struct Error.Data
index URL

Error args

XDCscript usage meta-domain
var obj = new Error.Data;
    obj.arg = IArg[Error.NUMARGS] ...
DETAILS
The two arguments (arg1, arg2) passed to raise are stored in one of these arrays within the associated Error_Block. To access these arguments use getData to obtain a pointer to the Error_Block's Data array.
SEE
getData
C SYNOPSIS
Error_Data
metaonly struct Error.Desc
index URL

Error descriptor

XDCscript usage meta-domain
var obj = new Error.Desc;
    obj.msg = String ...
    obj.code = UInt16 ...
FIELDS
msg — The error message using a printf style format string, but limited to NUMARGS arguments. This format string together with the two arguments passed to Error_raise` are used to create a human readable error message.
code — A user assignable code, 0 by default. The user may optionally set this field during config to give the error a well-known numeric code.
DETAILS
Each type of error is defined with an error descriptor. This structure groups common information about the errors of this type.
config Error.E_generic // module-wide
index URL

Generic error

XDCscript usage meta-domain
Error.E_generic = Error.Desc {
    msg: "%$S"
};
DETAILS
This error takes advantage of the $S specifier to allow for recursive formatting of the error message passed to error raise.
For example, the following is possible:
  Error_raise(eb, Error_E_generic, "Error occurred, code: %d", code);
SEE
System.extendedFormats, System.printf
C SYNOPSIS
Error_E_generic
config Error.E_memory // module-wide
index URL

Out of memory error

XDCscript usage meta-domain
Error.E_memory = Error.Desc {
    msg: "out of memory: heap=0x%x, size=%u"
};
DETAILS
The first parameter must be the heap instance handle. The second parameter is the size of the object for which the allocation failed.
C SYNOPSIS
Error_E_memory
config Error.E_msgCode // module-wide
index URL

Generic error that displays a string and a numeric value

XDCscript usage meta-domain
Error.E_msgCode = Error.Desc {
    msg: "%s 0x%x"
};
C SYNOPSIS
Error_E_msgCode
config Error.maxDepth // module-wide
index URL

Maximum number of concurrent calls to raiseHook

XDCscript usage meta-domain
Error.maxDepth = UInt16 16;
DETAILS
To prevent errors that occur in the raiseHook function from causing an infinite recursion, the maximum number of concurrent calls to raiseHook is limited by Error_maxDepth. If the number of concurrent calls exceeds Error_maxDepth, the raiseHook function is not called.
In multi-threaded systems, errors raised by separate threads may be detected as recursive calls to raiseHook. So, setting Error.maxDepth to a small value may - in rare instances - result in errorHook not being called for some raised errors.
If it is important that all raised errors trigger a call to the raiseHook function, set Error.maxDepth to an impossibly large number (0xffff) and either ensure that the raise hook never calls a function that can raise an error or add checks in raiseHook to protect against "double faults".
C SYNOPSIS
Error_maxDepth
config Error.policy // module-wide
index URL

System-wide error handling policy

XDCscript usage meta-domain
Error.policy = Error.Policy Error.UNWIND;
C SYNOPSIS
Error_policy
config Error.raiseHook // module-wide
index URL

The function to call whenever an error is raised

XDCscript usage meta-domain
Error.raiseHook = Void(*)(Error.Block*) Error.print;
DETAILS
This function is always called when an error is raised, even if the Error policy is TERMINATE. In rare cases, it is possible that a raised error does not trigger a call to raiseHook; see maxDepth.
By default, this function is set to Error_print which causes the error to be formatted and output via System_printf.
SEE
maxDepth, HookFxn, print
C SYNOPSIS
Error_raiseHook
metaonly config Error.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Error.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 Thu, 08 Nov 2012 02:13:24 GMT


module xdc.runtime.Error

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Error.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== Error ========
    19     *  Runtime error manager
    20     *
    21     *  The `Error` module provides mechanisms for raising, checking, and
    22     *  handling errors in a program. You can configure it via the
    23     *  `{@link Error#policy Error.policy}` and
    24     *  `{@link Error#raiseHook Error.raiseHook}` configuration parameters.
    25     *
    26     *  Modules may define specific error types and reference these when
    27     *  raising an error. Each error type has a custom error message and
    28     *  can be parameterized with up to `{@link #NUMARGS}` arguments. A
    29     *  generic error type is provided for raising errors when not in a module.
    30     *
    31     *  Use the `{@link #check Error_check()}` function to determine if an
    32     *  error has been raised. It is important to understand that it is the
    33     *  caller's responsibility to check the error block after calling a
    34     *  function that takes an error block as an argument. Otherwise, a raised
    35     *  error may go undetected, which could compromise the integrity of the
    36     *  system. For example:
    37     *
    38     *  @p(code)
    39     *  Task_create(..., &eb);
    40     *
    41     *  if (Error_check(&eb)) {
    42     *      ...an error has been raised...
    43     *  }
    44     *  @p
    45     *
    46     *  The `{@link #raiseHook Error.raiseHook}` configuration parameter allows
    47     *  a configured function to be invoked when any error is raised. This
    48     *  function is passed a pointer to the error's error block and makes it
    49     *  easy to manage all errors from a common point. For example, you can
    50     *  trap any error (fatal or not) by simply setting a breakpoint in this
    51     *  function. You can use the following functions to extract information
    52     *  from an error block.
    53     *
    54     *  @p(blist)
    55     *  - `{@link #getData Error_getData()}`
    56     *  - `{@link #getCode Error_getCode()}`
    57     *  - `{@link #getId Error_getId()}`
    58     *  - `{@link #getMsg Error_getMsg()}`
    59     *  - `{@link #getSite Error_getSite()}`
    60     *  @p
    61     *
    62     *  The Error module provides facilities for handling errors, but the Log
    63     *  module also provides features for logging error events. These are separate
    64     *  concepts; however, to ensure that users do not have to both raise and log
    65     *  an error, the Error module will automatically log an error event when one
    66     *  is raised. The Error module logs the standard {@link Log#L_error} event,
    67     *  passing it the error message and arguments.
    68     *
    69     *  The error event is logged to the Error module's logger using the Error
    70     *  module's diags mask. Logging of errors is enabled by default in the diags
    71     *  mask, but the event will not be logged unless a logger is configured for
    72     *  the Error module as well.
    73     *
    74     *  To make the error event appear as though it is coming from the module which
    75     *  called Error_raise, the event is logged with the caller's module id and
    76     *  with the caller's call site information.
    77     *
    78     *  @a(Examples)
    79     *  Example 1: The following example shows how a module, named ModA,
    80     *  defines a custom error type and shows how this error is raised by
    81     *  the module. The module defines an `Id` of `E_notEven` in its module
    82     *  specification file (in this case, `ModA.xdc`). The error's message
    83     *  string takes only one argument. The module also defines a `mayFail()`
    84     *  function that takes an error block. In the module's C source file,
    85     *  the function checks for the error condition and raises the error if
    86     *  needed.
    87     *
    88     *  This is part of ModA's XDC specification file for the module:
    89     *
    90     *  @p(code)
    91     *  config xdc.runtime.Error.Id E_notEven = {
    92     *      msg: "expected an even number (%d)"
    93     *  };
    94     *
    95     *  Void mayFail(Int x, xdc.runtime.Error.Block *eb);
    96     *  @p
    97     *
    98     *  This is part of the C code for the module:
    99     *
   100     *  @p(code)
   101     *  Void ModA_mayFail(Int x, Error_Block *eb)
   102     *  {
   103     *      if ((x % 2) != 0) {
   104     *          Error_raise(eb, ModA_E_notEven, x, 0);
   105     *          ...add error handling code here...
   106     *          return;
   107     *      }
   108     *      ...
   109     *  }
   110     *  @p
   111     *
   112     *  @p(html)
   113     *  <hr />
   114     *  @p
   115     *
   116     *  Example 2: The following C code supplies an error block to a function
   117     *  that requires one and tests the error block to see if the function
   118     *  raised an error. Note that an error block must be initialized before
   119     *  it can be used and same error block may be passed to several functions.
   120     *
   121     *  @p(code)
   122     *  #include <xdc/runtime/Error.h>
   123     *  #include <ti/sysbios/knl/Task.h>
   124     *  Error_Block eb;
   125     *  Task_Handle tsk;
   126     *
   127     *  Error_init(&eb);
   128     *  tsk = Task_create(..., &eb);
   129     *
   130     *  if (Error_check(&eb)) {
   131     *      ...an error has been raised...
   132     *  }
   133     *  @p
   134     *
   135     *  @p(html)
   136     *  <hr />
   137     *  @p
   138     *
   139     *  Example 3: The following C code shows that you may pass `NULL` to a
   140     *  function requiring an error block. In this case, if the function
   141     *  raises an error, the program is aborted (via
   142     *  `{@link System#abort xdc_runtime_System_abort()}`), thus execution
   143     *  control will never return to the caller.
   144     *
   145     *  @p(code)
   146     *  #include <xdc/runtime/Error.h>
   147     *  #include <ti/sysbios/knl/Task.h>
   148     *
   149     *  tsk = Task_create(..., NULL);
   150     *  ...will never get here if an error was raised in Task_create...
   151     *  @p
   152     *
   153     *  @p(html)
   154     *  <hr />
   155     *  @p
   156     *
   157     *  Example 4: The following C code shows how to write a function that
   158     *  is not part of a module and that takes an error block and raises
   159     *  the generic error type provided by the Error module. Note, if the
   160     *  caller passes `NULL` for the error block or if the error policy is
   161     *  `{@link #Policy TERMINATE}`, then the call to
   162     *  `{@link #raise Error_raise()}` will call
   163     *  `{@link System#abort xdc_runtime_System_abort()}` and never return.
   164     *
   165     *  @p(code)
   166     *  #include <xdc/runtime/Error.h>
   167     *
   168     *  Void myFunc(..., Error_Block *eb)
   169     *  {
   170     *      ...
   171     *
   172     *      if (...error condition detected...) {
   173     *          String  myErrorMsg = "my custom error message";
   174     *          Error_raise(eb, Error_E_generic, myErrorMsg, 0);
   175     *          ...add error handling code here...
   176     *          return;
   177     *      }
   178     *  }
   179     *  @p
   180     */
   181
   182    module Error {
   183
   184        /*!
   185         *  ======== Policy ========
   186         *  Error handling policies
   187         *
   188         *  Regardless of the current policy in use, raising an error by
   189         *  calling `{@link #raise Error_raise}` will always invoke the
   190         *  error raise hook function assigned to the
   191         *  `{@link #raiseHook Error.raiseHook}` configuration parameter.
   192         *
   193         *  @field(TERMINATE) All raised errors are fatal. A call to
   194         *  `{@link #raise Error_raise}` will never return to the caller.
   195         *
   196         *  @field(UNWIND) Errors are returned to the caller. A call to
   197         *  `{@link #raise Error_raise}` will return back to the caller.
   198         */
   199        enum Policy {
   200            TERMINATE,
   201            UNWIND
   202        };
   203
   204        /*!
   205         *  ======== Desc ========
   206         *  Error descriptor
   207         *
   208         *  Each type of error is defined with an error descriptor. This
   209         *  structure groups common information about the errors of this type.
   210         *
   211         *  @field(msg) The error message using a `printf` style format string,
   212         *              but limited to `{@link #NUMARGS}` arguments.
   213         *              This format string together with the two arguments passed
   214         *              to `Error_raise`` are used to create a human readable
   215         *              error message.
   216         *
   217         *  @field(code) A user assignable code, 0 by default. The user may
   218         *              optionally set this field during config to give the
   219         *              error a well-known numeric code.
   220         */
   221        metaonly struct Desc {
   222            String msg;
   223            UInt16 code;
   224        };
   225
   226        /*!
   227         *  ======== Id ========
   228         *  Error identifier
   229         *
   230         *  Each type of error raised is defined with a metaonly
   231         *  `{@link Error#Desc}`.  An `Error_Id` is a 32-bit target value that
   232         *  encodes the information in the `Desc`.  Target programs use
   233         *  `Error_Id` values to "raise" and check for specific errors.
   234         *
   235         *  @a(Warning) `{@link #Id}` values may vary among different
   236         *  configurations of an application.  For example, the addition of a
   237         *  new module to a program may result in a different absolute value for
   238         *  `{@link #E_generic}`.  If you need error numbers that remain
   239         *  invariant, use the user definable `{@link #Desc Desc.code}` field.
   240         */
   241        @Encoded typedef Desc Id;
   242
   243        /*!
   244         *  ======== HookFxn ========
   245         *  Function called whenever an error is raised
   246         *
   247         *  The first parameter and only parameter passed to this function is a
   248         *  pointer to an `Error_Block`.  Even if the client passes a `NULL` error
   249         *  block pointer to `{@link #raise Error_raise}`, this parameter passed
   250         *  to this "hook" function is always `non-NULL`.
   251         */
   252        typedef Void (*HookFxn)(Block *);
   253
   254        /*!
   255         *  ======== NUMARGS ========
   256         *  Maximum number of arguments supported by an error
   257         */
   258        const Int NUMARGS = 2;
   259
   260        /*!
   261         *  ======== Data ========
   262         *  Error args
   263         *
   264         *  The two arguments (arg1, arg2) passed to `{@link #raise}` are
   265         *  stored in one of these arrays within the associated Error_Block.
   266         *  To access these arguments use `{@link #getData}` to obtain a
   267         *  pointer to the Error_Block's Data array.
   268         *
   269         *  @see #getData
   270         */
   271        struct Data {
   272            IArg arg[NUMARGS];
   273        }
   274
   275        /*!
   276         *  ======== Block ========
   277         *  Error block
   278         *
   279         *  An opaque structure used to store information about errors once raised.
   280         *  This structure must be initialized via `{@link #init Error_init()}`
   281         *  before being used for the first time.
   282         */
   283        @Opaque struct Block {
   284            UInt16      unused;     /* for backward compatibility (was code) */
   285            Data        data;       /* arguments passed to raise() */
   286            Id          id;         /* id passed to raise() */
   287            String      msg;        /* msg associated with id */
   288            Types.Site  site;       /* info about Error_raise call site */
   289            IArg        xtra[4];    /* future expansion */
   290        };
   291
   292        /*!
   293         *  ======== E_generic ========
   294         *  Generic error
   295         *
   296         *  This error takes advantage of the $S specifier to allow for recursive
   297         *  formatting of the error message passed to error raise.
   298         *
   299         *  For example, the following is possible:
   300         *  @p(code)
   301         *  Error_raise(eb, Error_E_generic, "Error occurred, code: %d", code);
   302         *  @p
   303         *
   304         *  @see System#extendedFormats
   305         *  @see System#printf
   306         */
   307        config Id E_generic = {msg: "%$S"};
   308
   309        /*!
   310         *  ======== E_memory ========
   311         *  Out of memory error
   312         *
   313         *  The first parameter must be the heap instance handle. The second
   314         *  parameter is the size of the object for which the allocation failed.
   315         */
   316        config Id E_memory = {msg: "out of memory: heap=0x%x, size=%u"};
   317
   318        /*!
   319         *  ======== E_msgCode ========
   320         *  Generic error that displays a string and a numeric value
   321         */
   322        config Id E_msgCode = {msg: "%s 0x%x"};
   323
   324        /*!
   325         *  ======== policy ========
   326         *  System-wide error handling policy
   327         */
   328        config Policy policy = UNWIND;
   329
   330        /*!
   331         *  ======== raiseHook ========
   332         *  The function to call whenever an error is raised
   333         *
   334         *  This function is always called when an error is raised, even if the
   335         *  `Error` policy is `{@link #Policy TERMINATE}`.  In rare cases, it is
   336         *  possible that a raised error does not trigger a call to `raiseHook`;
   337         *  see `{@link #maxDepth}`.
   338         *
   339         *  By default, this function is set to `{@link #print Error_print}`
   340         *  which causes the error to be formatted and output via
   341         *  `{@link xdc.runtime.System#aprintf System_printf}`.
   342         *
   343         *  @see #maxDepth
   344         *  @see #HookFxn
   345         *  @see #print
   346         */
   347        config HookFxn raiseHook = Error.print;
   348
   349        /*!
   350         *  ======== maxDepth ========
   351         *  Maximum number of concurrent calls to `{@link #raiseHook}`
   352         *
   353         *  To prevent errors that occur in the raiseHook function from
   354         *  causing an infinite recursion, the maximum number of concurrent
   355         *  calls to `{@link #raiseHook}` is limited by `Error_maxDepth`.  If
   356         *  the number of concurrent calls exceeds `Error_maxDepth`, the
   357         *  `raiseHook` function is not called.
   358         *
   359         *  In multi-threaded systems, errors raised by separate threads may
   360         *  be detected as recursive calls to `raiseHook`.  So, setting
   361         *  `Error.maxDepth` to a small value may - in rare instances - result in
   362         *  `errorHook` not being called for some raised errors.
   363         *
   364         *  If it is important that all raised errors trigger a call to the
   365         *  `raiseHook` function, set `Error.maxDepth` to an impossibly large
   366         *  number (0xffff) and either ensure that the raise hook never calls a
   367         *  function that can raise an error or add checks in `raiseHook` to
   368         *  protect against "double faults".
   369         */
   370        config UInt16 maxDepth = 16;
   371
   372        /*!
   373         *  ======== check ========
   374         *  Return TRUE if an error was raised
   375         *
   376         *  @param(eb) pointer to an `Error_Block` or `NULL`
   377         *
   378         *  @a(returns)
   379         *  If `eb` is non-`NULL` and `{@link #policy Error.policy} == UNWIND` and
   380         *  an error was raised on `eb`, this function returns `TRUE`.  Otherwise,
   381         *  it returns `FALSE`.
   382         */
   383        Bool check(Block *eb);
   384
   385        /*!
   386         *  ======== getData ========
   387         *  Get an error's argument list
   388         *
   389         *  @param(eb)      non-`NULL` pointer to an `Error_Block`
   390         *
   391         *  @a(returns)
   392         *  `getData` returns an array of type `{@link #Data}` with
   393         *  `{@link #NUMARGS}` elements containing the arguments provided
   394         *  at the time the error was raised.
   395         *
   396         *  @see #raise
   397         */
   398        Data *getData(Block *eb);
   399
   400        /*!
   401         *  ======== getCode ========
   402         *  Get an error's code
   403         *
   404         *  @param(eb) non-`NULL` pointer to an `Error_Block`
   405         *
   406         *  @a(returns)
   407         *  `getCode` returns the error code associated with this error block.
   408         *
   409         *  @see #raise
   410         *  @see #Desc
   411         */
   412        UInt16 getCode(Block *eb);
   413
   414        /*!
   415         *  ======== getId ========
   416         *  Get an error's id
   417         *
   418         *  @param(eb) non-`NULL` pointer to an `Error_Block`
   419         *
   420         *  @a(Warning)
   421         *  `Error_Id` values may vary among different configurations
   422         *  of an application.  For example, the addition of a new module to a
   423         *  program may result in a different absolute value for
   424         *  `{@link #E_generic}`.  If you need error numbers that remain
   425         *  invariant, use the user definable `{@link #Desc Desc.code}` field.
   426         *
   427         *  @see #raise
   428         *  @see #Desc
   429         */
   430        Id getId(Block *eb);
   431
   432        /*!
   433         *  ======== getMsg ========
   434         *  Get an error's "printf" format string
   435         *
   436         *  @param(eb) non-`NULL` pointer to an `Error_Block`
   437         *
   438         *  @see #raise
   439         *  @see #Desc
   440         */
   441        String getMsg(Block *eb);
   442
   443        /*!
   444         *  ======== getSite ========
   445         *  Get an error's call site info
   446         *
   447         *  @param(eb) non-`NULL` pointer to an `Error_Block`
   448         *
   449         *  @a(returns)
   450         *  `getSite` returns a pointer to an initialized
   451         *  `{@link Types#Site Types.Site}` structure.  However, in the
   452         *  event that the call site was compiled with `xdc_FILE` defined to
   453         *  be `NULL` (to minimize string space overhead) the `file`
   454         *  field may be set to `NULL`.
   455         *
   456         *  @see #raise
   457         *  @see #Desc
   458         */
   459        Types.Site *getSite(Block *eb);
   460
   461        /*!
   462         *  ======== idToCode ========
   463         *  Extract the user's error code associated with an `Error_Id`
   464         *
   465         *  @param(id) `Error_Id` from which to extract the user defined
   466         *             code
   467         *  @_nodoc
   468         */
   469        @Macro UInt16 idToCode(Id id);
   470
   471        /*!
   472         *  ======== idToUid ========
   473         *  Extract the unique error id associated with an `Error_Id`
   474         *
   475         *  @param(id) `Error_Id` from which to extract the system unique
   476         *             id associated with the specified `Error_Id`
   477         *  @_nodoc
   478         */
   479        @Macro UInt16 idToUid(Id id);
   480
   481        /*!
   482         *  ======== init ========
   483         *  Put an error block into its initial state
   484         *
   485         *  To ensure reliable error detection, clients must call `init` for
   486         *  an `Error_Block` prior to any use.
   487         *
   488         *  If the same Error Block is used multiple times, only the last error
   489         *  raised is retained.
   490         *
   491         *  @param(eb) pointer to an `Error_Block` or `NULL`
   492         *
   493         *      If `eb` is `NULL` this function simply returns.
   494         */
   495        Void init(Block *eb);
   496
   497        /*!
   498         *  ======== print ========
   499         *  Print error using System.printf()
   500         *
   501         *  This function prints the error using `System_printf()`.  The output
   502         *  is on a single line terminated with a new line character and has the
   503         *  following form:
   504         *  @p(code)
   505         *      <site>: <file>, line <line_num>: <err_msg>
   506         *  @p
   507         *  where `<site>` is the module that raised the error, `<file>` and
   508         *  `<line_num>` are the file and line number of the containing the call
   509         *  site of the `Error_raise()`, and `<err_msg>` is the error message
   510         *  rendered with the arguments associated with the error.
   511         *
   512         *  @param(eb) pointer to an `Error_Block` or `NULL`
   513         *
   514         *      If `eb` is `NULL` this function simply returns with no output.
   515         *
   516         *  @a(Warning)
   517         *  This function is not protected by a gate and, as a result,
   518         *  if two threads call this method concurrently, the output of the two
   519         *  calls will be intermingled.  To prevent intermingled error output,
   520         *  you can either wrap all calls to this method with an appropriate
   521         *  `Gate_enter`/`Gate_leave` pair or simply ensure that only one
   522         *  thread in the system ever calls this method.
   523         */
   524        Void print(Block *eb);
   525
   526        /*!
   527         *  ======== raise ========
   528         *  Raise an error
   529         *
   530         *  This function is used to raise an `Error` by writing call site,
   531         *  error ID, and error argument information into the `Error_Block`
   532         *  pointed to by `eb`.
   533         *
   534         *  If `Error_raise` is called more than once on an `Error_Block` object,
   535         *  the previous error information is overwritten; only the last error
   536         *  is retained in the `Error_Block` object.
   537         *
   538         *  In all cases, any configured `{@link #raiseHook Error.raiseHook}`
   539         *  function is called with a non-`NULL` pointer to a fully
   540         *  initialized `Error_Block` object.
   541         *
   542         *  @param(eb) pointer to an `Error_Block` or `NULL`
   543         *
   544         *      If `eb` is `NULL` or `{@link #policy Error.policy} == TERMINATE`,
   545         *      this function does not return to the caller; after calling any
   546         *      configured `{@link #raiseHook}`, `System_abort` is called with the
   547         *      string `"xdc.runtime.Error.raise: terminating execution\n"`.
   548         *
   549         *  @param(id) the error to raise
   550         *
   551         *      This pointer identifies the class of error being raised;
   552         *      the error class indicates how to interpret any subsequent
   553         *      arguments passed to `{@link #raise}`.
   554         *
   555         *  @param(arg1) error's first argument
   556         *
   557         *      The argument interpreted by the first control character
   558         *      in the error message format string. It is ignored if not needed.
   559         *
   560         *  @param(arg2) error's second argument
   561         *
   562         *      The argument interpreted by the second control character
   563         *      in the error message format string. It is ignored if not needed.
   564         */
   565        @Macro Void raise(Block *eb, Id id, IArg arg1, IArg arg2);
   566
   567        /*! @_nodoc */
   568        Void raiseX(Block *eb, Types.ModuleId mod, String file, Int line, Id id,
   569            IArg arg1, IArg arg2);
   570
   571    internal:
   572
   573        struct Module_State {
   574            UInt16      count;
   575        };
   576
   577    }
   578    /*
   579     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   580     */
   581


module xdc.runtime.Gate
index URL

Critical section support

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
Gates are used by clients to protect concurrent access to critical data structures. Critical data structures are those that must be updated by at most one thread at a time. All code that needs access to a critical data structure "enters" a gate (that's associated with the data structure) prior to accessing the data, modifies the data structure, then "leaves" the gate. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Gate.xdc
#include <xdc/runtime/Gate.h>
Functions
macro Gate_Ref | Gate_allocInstance// Allocate a gate instance from the current module's gate(Error_Block *eb);
macro Bool | Gate_canBePreempted// Check if the module level gate allows thread preemption();
macro Bool | Gate_canBlock// Check if the module level gate can block threads();
macro IArg | Gate_enterInstance// Enter a critical section protected by this gate instance(Gate_Ref gate);
macro IArg | Gate_enterModule// Enter a critical section protected by the current module's gate();
IArg | Gate_enterSystem// Enter a critical section protected by the global System gate();
macro Void | Gate_freeInstance// Free a gate instance to the current module's gatekeeper(Gate_Ref gate);
macro Void | Gate_leaveInstance// Leave a critical section protected by a gate(Gate_Ref gate, IArg key);
macro Void | Gate_leaveModule// Leave a critical section protected by the current module's gate(IArg key);
Void | Gate_leaveSystem// Leave a critical section protected by the global System gate(IArg key);
Functions common to all target modules
 | Gate_Module_getMask// Returns the diagnostics mask for this module, Gate_Module_hasMask// Test whether this module has a diagnostics mask, Gate_Module_heap// The heap from which this module allocates memory, Gate_Module_id// Get this module's unique id, Gate_Module_setMask// Set the diagnostics mask for this module, Gate_Module_startupDone// Test if this module has completed startup
Typedefs
typedef opaque | Gate_Ref// Opaque reference to an allocated gate instance;
DETAILS
Gates are used by clients to protect concurrent access to critical data structures. Critical data structures are those that must be updated by at most one thread at a time. All code that needs access to a critical data structure "enters" a gate (that's associated with the data structure) prior to accessing the data, modifies the data structure, then "leaves" the gate.
A gate is responsible for ensuring that at most one thread at a time can enter and execute "inside" the gate. There are several implementations of gates, with different system executation times and latency tradoffs. In addition, some gates must not be entered by certain thread types; e.g., a gate that is implemented via a "blocking" semaphore must not be called by an interrupt service routine (ISR).
A module can be declared "gated" by adding the @Gated attribute to the module's XDC spec file. A "gated" module is assigned a module-level gate at the configuration time, and that gate is then used to protect critical sections in the module's target code. A module-level gate is an instance of a module implementing IGateProvider interface. However, gated modules do not access their module-level gates directly. They use this module to access transparently their module-level gate.
Application code that is not a part of any module also has a module-level gate, configured through the module Main.
Each gated module can optionally create gates on an adhoc basis at runtime using the same gate module that was used to create the module level gate.
Gates that work by disabling all preemption while inside a gate can be used to protect data structures accessed by ISRs and other threads. But, if the time required to update the data structure is not a small constant, this type of gate may violate a system's real-time requirements.
Gates have two orthogonal attributes: "blocking" and "preemptible". In general, gates that are "blocking" can not be use by code that is called by ISRs and gates that are not "preemptible" should only be used to to protect data manipulated by code that has small constant execution time.
typedef Gate_Ref
index URL

Opaque reference to an allocated gate instance

C synopsis target-domain
typedef opaque Gate_Ref;
Gate_allocInstance() // module-wide
index URL

Allocate a gate instance from the current module's gate

C synopsis target-domain
macro Gate_Ref Gate_allocInstance(Error_Block *eb);
ARGUMENTS
eb — Error block pointer
If NULL, any error in creating the instance will terminate the application.
DETAILS
This method is used by modules to create gates at runtime using the same IGateProvider that was used to create the module level gate. The parameters passed to the IGateProvider are specified at configuration time via the Types.Common$.gateParams configuration parameter.
RETURNS
Non-NULL instance handle is returned if no error occurs; otherwise an error is raised in eb and NULL is returned.
SEE
IGateProvider, Error
Gate_canBePreempted() // module-wide
index URL

Check if the module level gate allows thread preemption

C synopsis target-domain
macro Bool Gate_canBePreempted();
DETAILS
This type of gate should always be used by clients that protect a data structure whose updates require more than a small constant amount of time; e.g., update of a memory allocator's free list.
RETURNS
Returns TRUE if the underlying gate does not disable thread preemption.
Gate_canBlock() // module-wide
index URL

Check if the module level gate can block threads

C synopsis target-domain
macro Bool Gate_canBlock();
DETAILS
This type of gate should never be called by clients that must never call a "blocking" RTOS operation; e.g., interrupt service routines
RETURNS
Returns TRUE if the underlying gatekeeper's gate can block
Gate_enterInstance() // module-wide
index URL

Enter a critical section protected by this gate instance

C synopsis target-domain
macro IArg Gate_enterInstance(Gate_Ref gate);
ARGUMENTS
gate — non-NULL return value from a prior call to allocInstance.
RETURNS
Returns a "key" value that must be used to leave gate via leaveInstance().
Gate_enterModule() // module-wide
index URL

Enter a critical section protected by the current module's gate

C synopsis target-domain
macro IArg Gate_enterModule();
RETURNS
Returns a "key" value that must be used to leave the current module gate via leaveModule().
SEE
leaveModule
Gate_enterSystem() // module-wide
index URL

Enter a critical section protected by the global System gate

C synopsis target-domain
IArg Gate_enterSystem();
RETURNS
Returns a "key" value that must be used to leave the System gate via leaveSystem().
SEE
leaveSystem
Gate_freeInstance() // module-wide
index URL

Free a gate instance to the current module's gatekeeper

C synopsis target-domain
macro Void Gate_freeInstance(Gate_Ref gate);
ARGUMENTS
gate — non-NULL return value from a prior call to allocInstance.
SEE
allocInstance
Gate_leaveInstance() // module-wide
index URL

Leave a critical section protected by a gate

C synopsis target-domain
macro Void Gate_leaveInstance(Gate_Ref gate, IArg key);
ARGUMENTS
gate — non-NULL return value from a prior call to allocInstance.
key — the return value of a prior call to enterInstance
SEE
enterInstance, allocInstance
Gate_leaveModule() // module-wide
index URL

Leave a critical section protected by the current module's gate

C synopsis target-domain
macro Void Gate_leaveModule(IArg key);
ARGUMENTS
key — the return value of a prior call to enterModule
SEE
enterModule
Gate_leaveSystem() // module-wide
index URL

Leave a critical section protected by the global System gate

C synopsis target-domain
Void Gate_leaveSystem(IArg key);
ARGUMENTS
key — the return value of a prior call to enterSystem
SEE
enterSystem
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Gate_Module_id();
// Get this module's unique id
Bool Gate_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Gate_Module_heap();
// The heap from which this module allocates memory
Bool Gate_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Gate_Module_getMask();
// Returns the diagnostics mask for this module
Void Gate_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Gate.xdc
var Gate = xdc.useModule('xdc.runtime.Gate');
module-wide config parameters
     Gate.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     Gate.staticAlloc// Assign a statically-allocated gate instance to a state-object field(Any stateObj, String fldName) returns Void
metaonly config Gate.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Gate.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.
metaonly Gate.staticAlloc() // module-wide
index URL

Assign a statically-allocated gate instance to a state-object field

XDCscript usage meta-domain
Gate.staticAlloc(Any stateObj, String fldName) returns Void
ARGUMENTS
stateObj — the state object for the instance being created
fldName — a name of a field within the state object
This parameter names a field that will point to the created gate instance to be created. It is a caller's responsibility to ensure that the type of fldName is a handle to an IGateProvider instance.
DETAILS
This method is used to create a gate for static instance objects that require a gate.
generated on Thu, 08 Nov 2012 02:13:24 GMT


module xdc.runtime.Gate

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    package xdc.runtime;
    14
    15    /*!
    16     *  ======== Gate ========
    17     *  Critical section support
    18     *
    19     *  Gates are used by clients to protect concurrent access to critical
    20     *  data structures.  Critical data structures are those that must be
    21     *  updated by at most one thread at a time.  All code that needs access
    22     *  to a critical data structure "enters" a gate (that's associated with the
    23     *  data structure) prior to accessing the data, modifies the data structure,
    24     *  then "leaves" the gate.
    25     *
    26     *  A gate is responsible for ensuring that at most one thread at a time
    27     *  can enter and execute "inside" the gate.  There are several
    28     *  implementations of gates, with different system executation times and
    29     *  latency tradoffs.  In addition, some gates must not be entered by certain
    30     *  thread types; e.g., a gate that is implemented via a "blocking" semaphore
    31     *  must not be called by an interrupt service routine (ISR).
    32     *
    33     *  A module can be declared "gated" by adding the `@Gated` attribute to the
    34     *  module's XDC spec file.  A "gated" module is assigned a module-level gate
    35     *  at the configuration time, and that gate is then used to protect critical
    36     *  sections in the module's target code. A module-level gate is an instance of
    37     *  a module implementing `{@link IGateProvider}` interface. However, gated
    38     *  modules do not access their module-level gates directly. They use this
    39     *  module to access transparently their module-level gate.
    40     *
    41     *  Application code that is not a part of any module also has a
    42     *  module-level gate, configured through the module `{@link Main}`.
    43     *
    44     *  Each gated module can optionally create gates on an adhoc basis at
    45     *  runtime using the same gate module that was used to create the module
    46     *  level gate.
    47     *
    48     *  Gates that work by disabling all preemption while inside a gate can be
    49     *  used to protect data structures accessed by ISRs and other
    50     *  threads.  But, if the time required to update the data structure is not
    51     *  a small constant, this type of gate may violate a system's real-time
    52     *  requirements.
    53     *
    54     *  Gates have two orthogonal attributes: "blocking" and "preemptible".
    55     *  In general, gates that are "blocking" can not be use by code that is
    56     *  called by ISRs and gates that are not "preemptible" should only be used to
    57     *  to protect data manipulated by code that has small constant execution
    58     *  time.
    59     *
    60     */
    61    @CustomHeader
    62    module Gate {
    63
    64        /*!
    65         *  ======== Ref ========
    66         *  Opaque reference to an allocated gate instance
    67         */
    68        @Encoded typedef xdc.runtime.IGateProvider.Handle Ref;
    69
    70        /*!
    71         *  ======== allocInstance ========
    72         *  Allocate a gate instance from the current module's gate
    73         *
    74         *  This method is used by modules to create gates at runtime using
    75         *  the same `IGateProvider` that was used to create the module
    76         *  level gate.  The parameters passed to the `IGateProvider` are
    77         *  specified at configuration time via the
    78         * `{@link Types#Common$ Types.Common$.gateParams}`
    79         *  configuration parameter.
    80         *
    81         *  @param(eb)  `Error` block pointer
    82         *
    83         *      If `NULL`, any error in creating the instance will terminate
    84         *      the application.
    85         *
    86         *  @a(returns)
    87         *  Non-`NULL` instance handle is returned if no error occurs; otherwise
    88         *  an error is raised in `eb` and `NULL` is returned.
    89         *
    90         *  @see IGateProvider
    91         *  @see Error
    92         */
    93        @Macro Ref allocInstance(Error.Block *eb);
    94
    95        /*!
    96         *  ======== freeInstance ========
    97         *  Free a gate instance to the current module's gatekeeper
    98         *
    99         *  @param(gate) non-`NULL` return value from a prior call to
   100         *               `{@link #allocInstance}`.
   101         *
   102         *  @see #allocInstance
   103         */
   104        @Macro Void freeInstance(Ref gate);
   105
   106        /*!
   107         *  ======== enterInstance ========
   108         *  Enter a critical section protected by this gate instance
   109         *
   110         *  @param(gate) non-`NULL` return value from a prior call to
   111         *               `{@link #allocInstance}`.
   112         *
   113         *  @a(returns)
   114         *  Returns a "key" value that must be used to leave `gate`
   115         *  via `{@link #leaveInstance()}`.
   116         *
   117         */
   118        @Macro IArg enterInstance(Ref gate);
   119
   120        /*!
   121         *  ======== enterModule ========
   122         *  Enter a critical section protected by the current module's gate
   123         *
   124         *  @a(returns)
   125         *  Returns a "key" value that must be used to leave the current module
   126         *  gate via `{@link #leaveModule()}`.
   127         *
   128         *  @see #leaveModule
   129         */
   130        @Macro IArg enterModule();
   131
   132        /*!
   133         *  ======== enterSystem ========
   134         *  Enter a critical section protected by the global System gate
   135         *
   136         *  @a(returns)
   137         *  Returns a "key" value that must be used to leave the `{@link System}`
   138         *  gate via `{@link #leaveSystem()}`.
   139         *
   140         *  @see #leaveSystem
   141         */
   142        IArg enterSystem();
   143
   144        /*!
   145         *  ======== leaveInstance ========
   146         *  Leave a critical section protected by a gate
   147         *
   148         *  @param(gate) non-`NULL` return value from a prior call to
   149         *               `{@link #allocInstance}`.
   150         *  @param(key) the return value of a prior call to
   151         *              `{@link #enterInstance}`
   152         *
   153         *  @see #enterInstance
   154         *  @see #allocInstance
   155         */
   156        @Macro Void leaveInstance(Ref gate, IArg key);
   157
   158        /*!
   159         *  ======== leaveModule ========
   160         *  Leave a critical section protected by the current module's gate
   161         *
   162         *  @param(key) the return value of a prior call to `{@link #enterModule}`
   163         *
   164         *  @see #enterModule
   165         */
   166        @Macro Void leaveModule(IArg key);
   167
   168        /*!
   169         *  ======== leaveSystem ========
   170         *  Leave a critical section protected by the global System gate
   171         *
   172         *  @param(key) the return value of a prior call to `{@link #enterSystem}`
   173         *
   174         *  @see #enterSystem
   175         */
   176        Void leaveSystem(IArg key);
   177
   178        /*!
   179         *  ======== canBlock ========
   180         *  Check if the module level gate can block threads
   181         *
   182         *  This type of gate should never be called by clients that must never
   183         *  call a "blocking" RTOS operation; e.g., interrupt service
   184         *  routines
   185         *
   186         *  @a(returns) Returns `TRUE` if the underlying gatekeeper's gate can
   187         *              block
   188         */
   189        @Macro Bool canBlock();
   190
   191        /*!
   192         *  ======== canBePreempted ========
   193         *  Check if the module level gate allows thread preemption
   194         *
   195         *  This type of gate should always be used by clients that protect
   196         *  a data structure whose updates require more than a small
   197         *  constant amount of time; e.g., update of a memory allocator's free
   198         *  list.
   199         *
   200         *  @a(returns) Returns `TRUE` if the underlying gate does not disable
   201         *              thread preemption.
   202         */
   203        @Macro Bool canBePreempted();
   204
   205        /*!
   206         *  ======== staticAlloc ========
   207         *  Assign a statically-allocated gate instance to a state-object field
   208         *
   209         *  This method is used to create a gate for static instance objects
   210         *  that require a gate.
   211         *
   212         *  @param(stateObj)    the state object for the instance being created
   213         *  @param(fldName)     a name of a field within the state object
   214         *
   215         *      This parameter names a field that will point to the created gate
   216         *      instance to be created. It is a caller's responsibility
   217         *      to ensure that the type of `fldName` is a handle to an
   218         *      `IGateProvider` instance.
   219         */
   220        metaonly Void staticAlloc(Any stateObj, String fldName);
   221    }
   222    /*
   223     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   224     */
   225


module xdc.runtime.GateNull
index URL

Empty implementation of IGateProvider

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
An instance of this IGateProvider implementation is assigned to all gated modules as a default module-wide gate. Instances of this gate implementation provide no protection for critical sections and should only be used for modules in which the data structures protected by module-level gates are never accessed by concurrent threads.
C synopsis target-domain sourced in xdc/runtime/GateNull.xdc
#include <xdc/runtime/GateNull.h>
Functions
Void | GateNull_construct// Initialize a new instance object inside the provided structure(GateNull_Struct *structP, const GateNull_Params *params);
GateNull_Handle | GateNull_create// Allocate and initialize a new instance object and return its handle(const GateNull_Params *params, Error_Block *eb);
Void | GateNull_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(GateNull_Handle *handleP);
Void | GateNull_destruct// Finalize the instance object inside the provided structure(GateNull_Struct *structP);
Void | GateNull_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(GateNull_Params *params);
Functions common to all IGateProvider modules
IArg | GateNull_enter// Enter this gate(GateNull_Handle handle);
Void | GateNull_leave// Leave this gate(GateNull_Handle handle, IArg key);
Bool | GateNull_query// Runtime test for a particular gate quality(Int qual);
Functions common to all target instances
 | GateNull_handle// Convert this instance structure pointer into an instance handle, GateNull_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, GateNull_Handle_label// The label associated with this instance object, GateNull_Handle_name// The name of this instance object, GateNull_Handle_upCast// unconditionally move one level up the inheritance hierarchy, GateNull_Object_count// The number of statically-created instance objects, GateNull_Object_first// The handle of the first dynamically-created instance object, or NULL, GateNull_Object_get// The handle of the i-th statically-created instance object (array == NULL), GateNull_Object_heap// The heap used to allocate dynamically-created instance objects, GateNull_Object_next// The handle of the next dynamically-created instance object, or NULL, GateNull_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | GateNull_Module_getMask// Returns the diagnostics mask for this module, GateNull_Module_hasMask// Test whether this module has a diagnostics mask, GateNull_Module_heap// The heap from which this module allocates memory, GateNull_Module_id// Get this module's unique id, GateNull_Module_setMask// Set the diagnostics mask for this module, GateNull_Module_startupDone// Test if this module has completed startup
Defines
#define | GateNull_Q_BLOCKING// Blocking quality (Int)1
#define | GateNull_Q_PREEMPTING// Preempting quality (Int)2
Typedefs
typedef GateNull_Object * | GateNull_Handle// Client reference to an instance object;
typedef struct | GateNull_Object// Opaque internal representation of an instance object GateNull_Object;
typedef struct | GateNull_Params// Instance config-params structure ...
typedef struct | GateNull_Struct// Opaque client structure large enough to hold an instance object GateNull_Struct;
const GateNull_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define GateNull_Q_BLOCKING (Int)1
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
const GateNull_Q_PREEMPTING
index URL

Preempting quality

C synopsis target-domain
#define GateNull_Q_PREEMPTING (Int)2
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
GateNull_query() // module-wide
index URL

Runtime test for a particular gate quality

C synopsis target-domain
Bool GateNull_query(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId GateNull_Module_id();
// Get this module's unique id
Bool GateNull_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle GateNull_Module_heap();
// The heap from which this module allocates memory
Bool GateNull_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GateNull_Module_getMask();
// Returns the diagnostics mask for this module
Void GateNull_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct GateNull_Object GateNull_Object;
// Opaque internal representation of an instance object
typedef GateNull_Object *GateNull_Handle;
// Client reference to an instance object
typedef struct GateNull_Struct GateNull_Struct;
// Opaque client structure large enough to hold an instance object
GateNull_Handle GateNull_handle(GateNull_Struct *structP);
// Convert this instance structure pointer into an instance handle
GateNull_Struct *GateNull_struct(GateNull_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct GateNull_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} GateNull_Params;
Void GateNull_Params_init(GateNull_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
GateNull_Handle GateNull_create(const GateNull_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void GateNull_construct(GateNull_Struct *structP, const GateNull_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
Instance Deletion
index URL

C synopsis target-domain
Void GateNull_delete(GateNull_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void GateNull_destruct(GateNull_Struct *structP);
// Finalize the instance object inside the provided structure
GateNull_enter() // instance
index URL

Enter this gate

C synopsis target-domain
IArg GateNull_enter(GateNull_Handle handle);
ARGUMENTS
handle — handle of a previously-created GateNull instance object
DETAILS
Each gate provider can implement mutual exclusion using different algorithms; e.g., disabling all scheduling, disabling the scheduling of all threads below a specified "priority level", suspending the caller when the gate has been entered by another thread and re-enabling it when the the other thread leaves the gate. However, in all cases, after this method returns that caller has exclusive access to the data protected by this gate.
A thread may reenter a gate without blocking or failing.
RETURNS
Returns a "key" that is used to leave this gate; this value is used to restore thread preemption to the state that existed just prior to entering this gate.
GateNull_leave() // instance
index URL

Leave this gate

C synopsis target-domain
Void GateNull_leave(GateNull_Handle handle, IArg key);
ARGUMENTS
handle — handle of a previously-created GateNull instance object
key — the value returned by a matching call to enter
DETAILS
This method is only called by threads that have previously entered this gate via enter. After this method returns, the caller must not access the data structure protected by this gate (unless the caller has entered the gate more than once and other calls to leave remain to balance the number of previous calls to enter).
Instance Convertors
index URL

C synopsis target-domain
IGateProvider_Handle GateNull_Handle_upCast(GateNull_Handle handle);
// unconditionally move one level up the inheritance hierarchy
GateNull_Handle GateNull_Handle_downCast(IGateProvider_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int GateNull_Object_count();
// The number of statically-created instance objects
GateNull_Handle GateNull_Object_get(GateNull_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
GateNull_Handle GateNull_Object_first();
// The handle of the first dynamically-created instance object, or NULL
GateNull_Handle GateNull_Object_next(GateNull_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle GateNull_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *GateNull_Handle_label(GateNull_Handle handle, Types_Label *buf);
// The label associated with this instance object
String GateNull_Handle_name(GateNull_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/GateNull.xdc
var GateNull = xdc.useModule('xdc.runtime.GateNull');
module-wide constants & types
    const GateNull.Q_BLOCKING// Blocking quality = 1;
    const GateNull.Q_PREEMPTING// Preempting quality = 2;
module-wide config parameters
     GateNull.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     GateNull.queryMeta// Configuration time test for a particular gate quality(Int qual) returns Bool
per-instance config parameters
    var params = new GateNull.Params// Instance config-params object;
per-instance creation
    var inst = GateNull.create// Create an instance-object(params);
const GateNull.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const GateNull.Q_BLOCKING = 1;
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
C SYNOPSIS
GateNull_Q_BLOCKING
const GateNull.Q_PREEMPTING
index URL

Preempting quality

XDCscript usage meta-domain
const GateNull.Q_PREEMPTING = 2;
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
C SYNOPSIS
GateNull_Q_PREEMPTING
metaonly config GateNull.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
GateNull.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.
metaonly GateNull.queryMeta() // module-wide
index URL

Configuration time test for a particular gate quality

XDCscript usage meta-domain
GateNull.queryMeta(Int qual) returns Bool
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GateNull.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GateNull.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GateNull.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
generated on Thu, 08 Nov 2012 02:13:24 GMT


module xdc.runtime.GateNull

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    package xdc.runtime;
    14
    15    /*!
    16     *  ======== GateNull ========
    17     *  Empty implementation of `{@link IGateProvider}`
    18     *
    19     *  An instance of this `IGateProvider` implementation is assigned to all
    20     *  gated modules as a default module-wide gate. Instances of this gate
    21     *  implementation provide no protection for critical sections and should only
    22     *  be used for modules in which the data structures protected by module-level
    23     *  gates are never accessed by concurrent threads.
    24     */
    25    module GateNull inherits IGateProvider {
    26
    27    instance:
    28        /*!
    29         *  ======== create ========
    30         *  Create a `GateNull` gate
    31         */
    32        create();
    33    }
    34    /*
    35     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    36     */
    37


module xdc.runtime.HeapMin
index URL

Growth-only based heap implementation

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
HeapMin is a minimal footprint heap implementation. This module is is designed for applications that only create module instances and generally only allocate memory at runtime, but never delete created instances or free memory explicitly. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/HeapMin.xdc
#include <xdc/runtime/HeapMin.h>
Functions
Void | HeapMin_construct// Initialize a new instance object inside the provided structure(HeapMin_Struct *structP, const HeapMin_Params *params);
HeapMin_Handle | HeapMin_create// Allocate and initialize a new instance object and return its handle(const HeapMin_Params *params, Error_Block *eb);
Void | HeapMin_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(HeapMin_Handle *handleP);
Void | HeapMin_destruct// Finalize the instance object inside the provided structure(HeapMin_Struct *structP);
Void | HeapMin_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(HeapMin_Params *params);
Functions common to all IHeap modules
Ptr | HeapMin_alloc// Allocate a block of memory from the heap(HeapMin_Handle handle, SizeT size, SizeT align, Error_Block *eb);
Void | HeapMin_free// Free a block of memory back to the heap(HeapMin_Handle handle, Ptr block, SizeT size);
Void | HeapMin_getStats// Retrieve the statistics from the heap(HeapMin_Handle handle, Memory_Stats *stats);
Bool | HeapMin_isBlocking// Can this heap block the caller(HeapMin_Handle handle);
Functions common to all target instances
 | HeapMin_handle// Convert this instance structure pointer into an instance handle, HeapMin_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, HeapMin_Handle_label// The label associated with this instance object, HeapMin_Handle_name// The name of this instance object, HeapMin_Handle_upCast// unconditionally move one level up the inheritance hierarchy, HeapMin_Object_count// The number of statically-created instance objects, HeapMin_Object_first// The handle of the first dynamically-created instance object, or NULL, HeapMin_Object_get// The handle of the i-th statically-created instance object (array == NULL), HeapMin_Object_heap// The heap used to allocate dynamically-created instance objects, HeapMin_Object_next// The handle of the next dynamically-created instance object, or NULL, HeapMin_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | HeapMin_Module_getMask// Returns the diagnostics mask for this module, HeapMin_Module_hasMask// Test whether this module has a diagnostics mask, HeapMin_Module_heap// The heap from which this module allocates memory, HeapMin_Module_id// Get this module's unique id, HeapMin_Module_setMask// Set the diagnostics mask for this module, HeapMin_Module_startupDone// Test if this module has completed startup
Typedefs
typedef HeapMin_Object * | HeapMin_Handle// Client reference to an instance object;
typedef struct | HeapMin_Object// Opaque internal representation of an instance object HeapMin_Object;
typedef struct | HeapMin_Params// Instance config-params structure ...
typedef struct | HeapMin_Struct// Opaque client structure large enough to hold an instance object HeapMin_Struct;
Constants
extern const Assert_Id | HeapMin_A_zeroSize// Assert that the size is non-zero on the create;
extern const Error_Id | HeapMin_E_freeError// Error raised if free() is called;
extern const Bool | HeapMin_freeError// Flag to control whether E_freeError is enabled;
DETAILS
HeapMin is a minimal footprint heap implementation. This module is is designed for applications that only create module instances and generally only allocate memory at runtime, but never delete created instances or free memory explicitly.
For configuration-time HeapMin.create, the heap is aligned to Memory.getMaxDefaultTypeAlignMeta() for those targets that support static alignment. For targets that do not support static alignment, the buffer alignment is undefined.
When calling create() at runtime, the client is responsible for aligning the buffer.
config HeapMin_A_zeroSize // module-wide
index URL

Assert that the size is non-zero on the create

C synopsis target-domain
extern const Assert_Id HeapMin_A_zeroSize;
config HeapMin_E_freeError // module-wide
index URL

Error raised if free() is called

C synopsis target-domain
extern const Error_Id HeapMin_E_freeError;
DETAILS
This error is only raised if a free() is called and freeError is true.
config HeapMin_freeError // module-wide
index URL

Flag to control whether E_freeError is enabled

C synopsis target-domain
extern const Bool HeapMin_freeError;
DETAILS
If true, a E_freeError error occurs when trying to free a buffer.
If false, no error occurs and the free() does nothing.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId HeapMin_Module_id();
// Get this module's unique id
Bool HeapMin_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle HeapMin_Module_heap();
// The heap from which this module allocates memory
Bool HeapMin_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 HeapMin_Module_getMask();
// Returns the diagnostics mask for this module
Void HeapMin_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct HeapMin_Object HeapMin_Object;
// Opaque internal representation of an instance object
typedef HeapMin_Object *HeapMin_Handle;
// Client reference to an instance object
typedef struct HeapMin_Struct HeapMin_Struct;
// Opaque client structure large enough to hold an instance object
HeapMin_Handle HeapMin_handle(HeapMin_Struct *structP);
// Convert this instance structure pointer into an instance handle
HeapMin_Struct *HeapMin_struct(HeapMin_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct HeapMin_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
    Ptr buf;
    // Buffer that will be managed by the heap instance
     Memory_Size size;
    // Size (in MADUs) of the heap
} HeapMin_Params;
Void HeapMin_Params_init(HeapMin_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config HeapMin_buf // instance
index URL

Buffer that will be managed by the heap instance

C synopsis target-domain
struct HeapMin_Params {
     ...
    Ptr buf;
DETAILS
When creating a heap at runtime, the user must supply the memory that the heap will manage. It is up to the caller to align the buffer as needed.
This parameter is ignored when creating heaps during configuration.
config HeapMin_size // instance
index URL

Size (in MADUs) of the heap

C synopsis target-domain
struct HeapMin_Params {
     ...
     Memory_Size size;
DETAILS
This parameter specifies the size of the heap managed by a HeapMin instance. In the static case, a buffer of length size will be created. In the dynamic case, size specifies the size of the buffer (i.e. parameter buf) that the caller provides.
This is a required parameter. It must be set by the caller. Failure to do so, will result in a build error for the static create or an A_zeroSize assert for the runtime create.
Instance Creation
index URL

C synopsis target-domain
HeapMin_Handle HeapMin_create(const HeapMin_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void HeapMin_construct(HeapMin_Struct *structP, const HeapMin_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This heap is a growth-only heap that is intended to be used by systems that never delete objects or free memory. Objects can be created at runtime based on values determined at runtime, but objects can not be deleted.
SEE
HeapMin.Params
Instance Deletion
index URL

C synopsis target-domain
Void HeapMin_delete(HeapMin_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void HeapMin_destruct(HeapMin_Struct *structP);
// Finalize the instance object inside the provided structure
HeapMin_alloc() // instance
index URL

Allocate a block of memory from the heap

C synopsis target-domain
Ptr HeapMin_alloc(HeapMin_Handle handle, SizeT size, SizeT align, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created HeapMin instance object
size — size (in MADUs) of the block
align — alignment (in MADUs) of the block
eb — pointer to error block
DETAILS
This method returns a block of memory from the heap. It is called by the xdc.runtime.Memory.alloc() function.
RETURNS
Returns the address of the allocated memory.
CONSTRAINTS
The alignment must be a power of 2.
SEE
IHeap.alloc
HeapMin_free() // instance
index URL

Free a block of memory back to the heap

C synopsis target-domain
Void HeapMin_free(HeapMin_Handle handle, Ptr block, SizeT size);
ARGUMENTS
handle — handle of a previously-created HeapMin instance object
block — non-NULL address of allocated block to free
size — size (in MADUs) of the block of memory to free
DETAILS
This method gives back a block of memory to a heap. It is called by the xdc.runtime.Memory.free() function.
This is a growth only heap. Calling the HeapMin_free function will result in a E_freeError error unless freeError is set to false.
SEE
IHeap.free
HeapMin_getStats() // instance
index URL

Retrieve the statistics from the heap

C synopsis target-domain
Void HeapMin_getStats(HeapMin_Handle handle, Memory_Stats *stats);
ARGUMENTS
handle — handle of a previously-created HeapMin instance object
stats — non-NULL pointer to an output buffer
DETAILS
The caller passes in a pointer to a xdc.runtime.Memory.Stats structure and getStats fills in this structure.
This function is called by the xdc.runtime.Memory.getStats() function.
HeapMin_isBlocking() // instance
index URL

Can this heap block the caller

C synopsis target-domain
Bool HeapMin_isBlocking(HeapMin_Handle handle);
ARGUMENTS
handle — handle of a previously-created HeapMin instance object
RETURNS
If the heap might block, TRUE is returned. If the heap does not block, FALSE is returned.
HeapMin always returns FALSE since it never blocks on a resource.
Instance Convertors
index URL

C synopsis target-domain
IHeap_Handle HeapMin_Handle_upCast(HeapMin_Handle handle);
// unconditionally move one level up the inheritance hierarchy
HeapMin_Handle HeapMin_Handle_downCast(IHeap_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int HeapMin_Object_count();
// The number of statically-created instance objects
HeapMin_Handle HeapMin_Object_get(HeapMin_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
HeapMin_Handle HeapMin_Object_first();
// The handle of the first dynamically-created instance object, or NULL
HeapMin_Handle HeapMin_Object_next(HeapMin_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle HeapMin_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *HeapMin_Handle_label(HeapMin_Handle handle, Types_Label *buf);
// The label associated with this instance object
String HeapMin_Handle_name(HeapMin_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/HeapMin.xdc
var HeapMin = xdc.useModule('xdc.runtime.HeapMin');
module-wide config parameters
     HeapMin.A_zeroSize// Assert that the size is non-zero on the create = Assert.Desc {
        msg: "HeapMin_create cannot have a zero size value"
    };
     HeapMin.E_freeError// Error raised if free() is called = Error.Desc {
        msg: "free() invalid in growth-only HeapMin"
    };
     HeapMin.freeError// Flag to control whether E_freeError is enabled = Bool true;
     HeapMin.common$// Common module configuration parameters = Types.Common$ undefined;
per-instance config parameters
    var params = new HeapMin.Params// Instance config-params object;
        params.align// Alignment of the buffer being managed by this heap instance = SizeT undefined;
        params.buf// Buffer that will be managed by the heap instance = Ptr 0;
        params.sectionName// Section name of the heap = String null;
        params.size// Size (in MADUs) of the heap = UArg 0;
per-instance creation
    var inst = HeapMin.create// Create an instance-object(params);
config HeapMin.A_zeroSize // module-wide
index URL

Assert that the size is non-zero on the create

XDCscript usage meta-domain
HeapMin.A_zeroSize = Assert.Desc {
    msg: "HeapMin_create cannot have a zero size value"
};
C SYNOPSIS
HeapMin_A_zeroSize
config HeapMin.E_freeError // module-wide
index URL

Error raised if free() is called

XDCscript usage meta-domain
HeapMin.E_freeError = Error.Desc {
    msg: "free() invalid in growth-only HeapMin"
};
DETAILS
This error is only raised if a free() is called and freeError is true.
C SYNOPSIS
HeapMin_E_freeError
config HeapMin.freeError // module-wide
index URL

Flag to control whether E_freeError is enabled

XDCscript usage meta-domain
HeapMin.freeError = Bool true;
DETAILS
If true, a E_freeError error occurs when trying to free a buffer.
If false, no error occurs and the free() does nothing.
C SYNOPSIS
HeapMin_freeError
metaonly config HeapMin.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
HeapMin.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.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new HeapMin.Params;
// Instance config-params object
    params.align = SizeT undefined;
    // Alignment of the buffer being managed by this heap instance
    params.buf = Ptr 0;
    // Buffer that will be managed by the heap instance
    params.sectionName = String null;
    // Section name of the heap
    params.size = UArg 0;
    // Size (in MADUs) of the heap
config HeapMin.buf // instance
index URL

Buffer that will be managed by the heap instance

XDCscript usage meta-domain
var params = new HeapMin.Params;
...
params.buf = Ptr 0;
DETAILS
When creating a heap at runtime, the user must supply the memory that the heap will manage. It is up to the caller to align the buffer as needed.
This parameter is ignored when creating heaps during configuration.
C SYNOPSIS
null
config HeapMin.size // instance
index URL

Size (in MADUs) of the heap

XDCscript usage meta-domain
var params = new HeapMin.Params;
...
params.size = UArg 0;
DETAILS
This parameter specifies the size of the heap managed by a HeapMin instance. In the static case, a buffer of length size will be created. In the dynamic case, size specifies the size of the buffer (i.e. parameter buf) that the caller provides.
This is a required parameter. It must be set by the caller. Failure to do so, will result in a build error for the static create or an A_zeroSize assert for the runtime create.
C SYNOPSIS
null
metaonly config HeapMin.align // instance
index URL

Alignment of the buffer being managed by this heap instance

XDCscript usage meta-domain
var params = new HeapMin.Params;
...
params.align = SizeT undefined;
DETAILS
In the static HeapMin.create() call, the buffer allocated for the HeapMin instance will have the alignment specified by this parameter on targets that support static alignment.
In the dynamic case, the client must supply the buffer, so it is the client's responsibility to manage the buffer's alignment, and there is no 'align' parameter.
The specified align parameter must be a power of 2.
The default alignment of zero causes the buffer to get aligned using Memory.getMaxDefaultTypeAlignMeta().
metaonly config HeapMin.sectionName // instance
index URL

Section name of the heap

XDCscript usage meta-domain
var params = new HeapMin.Params;
...
params.sectionName = String null;
DETAILS
When creating heaps during configuration, this parameter specifies where the heap's buffer will be placed. This parameter is passed as the section name in the Memory.staticPlace function.
SEE
Memory.staticPlace
Instance Creation
index URL

XDCscript usage meta-domain
var params = new HeapMin.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = HeapMin.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This heap is a growth-only heap that is intended to be used by systems that never delete objects or free memory. Objects can be created at runtime based on values determined at runtime, but objects can not be deleted.
SEE
HeapMin.Params
generated on Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.HeapMin

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== HeapMin.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== HeapMin ========
    19     *  Growth-only based heap implementation.
    20     *
    21     *  `HeapMin` is a minimal footprint heap implementation. This module is
    22     *  is designed for applications that only create module instances and
    23     *  generally only allocate memory at runtime, but never delete created
    24     *  instances or free memory explicitly.
    25     *
    26     *  For configuration-time `HeapMin.create`, the heap is aligned to
    27     *  `{@link Memory#getMaxDefaultTypeAlignMeta()}` for those targets that support
    28     *  static alignment. For targets that do not support static alignment, the
    29     *  buffer alignment is undefined.
    30     *
    31     *  When calling `{@link #create()}` at runtime, the client
    32     *  is responsible for aligning the buffer.
    33     */
    34
    35    module HeapMin inherits xdc.runtime.IHeap {
    36
    37        /*! @_nodoc */
    38        @XmlDtd
    39        metaonly struct Instance_View {
    40            Ptr             address;
    41            String          label;
    42            Ptr             buffer;
    43            Memory.Size     remainSize;
    44            Memory.Size     startSize;
    45        }
    46
    47        /*!
    48         *  ======== A_zeroSize ========
    49         *  Assert that the `{@link #size}` is non-zero on the create
    50         */
    51        config Assert.Id A_zeroSize  =
    52            {msg: "HeapMin_create cannot have a zero size value"};
    53
    54        /*!
    55         *  ======== E_freeError ========
    56         *  Error raised if `{@link #free()}` is called.
    57         *
    58         *  This error is only raised if a `{@link #free()}`
    59         *  is called and `{@link #freeError}` is true.
    60         */
    61        config Error.Id E_freeError = {
    62            msg: "free() invalid in growth-only HeapMin"
    63        };
    64
    65        /*!
    66         *  ======== freeError ========
    67         *  Flag to control whether `{@link #E_freeError}` is enabled.
    68         *
    69         *  If true, a `{@link #E_freeError}` error occurs when trying
    70         *  to free a buffer.
    71         *
    72         *  If false, no error occurs and the `{@link #free()}` does nothing.
    73         */
    74        config Bool freeError = true;
    75
    76    instance:
    77
    78        /*!
    79         *  ======== align ========
    80         *  Alignment of the buffer being managed by this heap instance.
    81         *
    82         *  In the static HeapMin.create() call, the buffer allocated for the
    83         *  HeapMin instance will have the alignment specified by this parameter
    84         *  on targets that support static alignment.
    85         *
    86         *  In the dynamic case, the client must supply the buffer, so it is the
    87         *  client's responsibility to manage the buffer's alignment, and there is
    88         *  no 'align' parameter.
    89         *
    90         *  The specified `align` parameter must be a power of 2.
    91         *
    92         *  The default alignment of zero causes the buffer to get aligned using
    93         *  {@link Memory#getMaxDefaultTypeAlignMeta()}.
    94         */
    95        metaonly config SizeT align;
    96
    97        /*!
    98         *  ======== create ========
    99         *  Create a `HeapMin` heap
   100         *
   101         *  This heap is a growth-only heap that is intended to be used by
   102         *  systems that never delete objects or free memory.  Objects can be
   103         *  created at runtime based on values determined at runtime, but
   104         *  objects can not be deleted.
   105         *
   106         *  @see HeapMin#Params
   107         */
   108        create();
   109
   110        /*!
   111         *  ======== sectionName ========
   112         *  Section name of the heap
   113         *
   114         *  When creating heaps during configuration, this parameter specifies
   115         *  where the heap's buffer will be placed. This parameter is passed as
   116         *  the section name in the `{@link Memory#staticPlace}` function.
   117         *
   118         *  @see Memory#staticPlace
   119         */
   120        metaonly config String sectionName = null;
   121
   122        /*!
   123         *  ======== buf ========
   124         *  Buffer that will be managed by the heap instance.
   125         *
   126         *  When creating a heap at runtime, the user must supply the memory
   127         *  that the heap will manage.  It is up to the caller to align
   128         *  the buffer as needed.
   129         *
   130         *  This parameter is ignored when creating heaps during configuration.
   131         */
   132        config Ptr buf = 0;
   133
   134        /*!
   135         *  ======== size ========
   136         *  Size (in MADUs) of the heap.
   137         *
   138         *  This parameter specifies the size of the heap managed by a
   139         *  `HeapMin` instance.  In the static case, a buffer of length `size`
   140         *  will be created.  In the dynamic case, `size` specifies the size of
   141         *  the buffer (i.e. parameter `buf`) that the caller provides.
   142         *
   143         *  This is a required parameter. It must be set by the caller. Failure
   144         *  to do so, will result in a build error for the static create or an
   145         *  `{@link #A_zeroSize}` assert for the runtime create.
   146         */
   147        config Memory.Size size = 0;
   148
   149        /*!
   150         *  ======== alloc ========
   151         *  Allocate a block of memory from the heap.
   152         *
   153         *  @a(Constraints)
   154         *  The alignment must be a power of 2.
   155         *
   156         *  @see IHeap#alloc
   157         */
   158        override Ptr alloc(SizeT size, SizeT align, Error.Block *eb);
   159
   160        /*!
   161         *  ======== free ========
   162         *  Free a block of memory back to the heap.
   163         *
   164         *  This is a growth only heap. Calling the `HeapMin_free` function
   165         *  will result in a `{@link #E_freeError}` error unless
   166         *  `{@link #freeError}` is set to `false`.
   167         *
   168         *  @see IHeap#free
   169         */
   170        override Void free(Ptr block, SizeT size);
   171
   172        /*!
   173         *  ======== isBlocking ========
   174         *  Can this heap block the caller
   175         *
   176         *  @a(returns)
   177         *  `HeapMin` always returns `FALSE` since it never blocks on a
   178         *  resource.
   179         */
   180        override Bool isBlocking();
   181
   182    internal:
   183
   184        struct Instance_State {
   185            Char        buf[];             /* Address of buffer being managed  */
   186            Memory.Size remainSize;        /* Size of remaining heap           */
   187            Memory.Size startSize;         /* Size of heap at the start        */
   188        };
   189    }
   190    /*
   191     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   192     */
   193


module xdc.runtime.HeapStd
index URL

Malloc/free based heap implementation

  • C synopsis
  • Individual elements
  • DETAILS
  • CONSTRAINTS
  • XDCscript usage
  • Individual elements
This heap is based on the ANSI C Standard Library functions malloc() and free() and assumes that these functions are thread-safe. Please refer to the target specific documentation of the ANSI C Standard Library for details. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/HeapStd.xdc
#include <xdc/runtime/HeapStd.h>
Functions
Void | HeapStd_construct// Initialize a new instance object inside the provided structure(HeapStd_Struct *structP, const HeapStd_Params *params, Error_Block *eb);
HeapStd_Handle | HeapStd_create// Allocate and initialize a new instance object and return its handle(const HeapStd_Params *params, Error_Block *eb);
Void | HeapStd_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(HeapStd_Handle *handleP);
Void | HeapStd_destruct// Finalize the instance object inside the provided structure(HeapStd_Struct *structP);
Void | HeapStd_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(HeapStd_Params *params);
Functions common to all IHeap modules
Ptr | HeapStd_alloc// Allocates a block of memory from the heap(HeapStd_Handle handle, SizeT size, SizeT align, Error_Block *eb);
Void | HeapStd_free// Free a block of memory back to the heap(HeapStd_Handle handle, Ptr block, SizeT size);
Void | HeapStd_getStats// Retrieve the statistics from the heap(HeapStd_Handle handle, Memory_Stats *stats);
Bool | HeapStd_isBlocking// Returns whether the heap may block during an HeapStd_alloc() or HeapStd_free()(HeapStd_Handle handle);
Functions common to all target instances
 | HeapStd_handle// Convert this instance structure pointer into an instance handle, HeapStd_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, HeapStd_Handle_label// The label associated with this instance object, HeapStd_Handle_name// The name of this instance object, HeapStd_Handle_upCast// unconditionally move one level up the inheritance hierarchy, HeapStd_Object_count// The number of statically-created instance objects, HeapStd_Object_first// The handle of the first dynamically-created instance object, or NULL, HeapStd_Object_get// The handle of the i-th statically-created instance object (array == NULL), HeapStd_Object_heap// The heap used to allocate dynamically-created instance objects, HeapStd_Object_next// The handle of the next dynamically-created instance object, or NULL, HeapStd_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | HeapStd_Module_getMask// Returns the diagnostics mask for this module, HeapStd_Module_hasMask// Test whether this module has a diagnostics mask, HeapStd_Module_heap// The heap from which this module allocates memory, HeapStd_Module_id// Get this module's unique id, HeapStd_Module_setMask// Set the diagnostics mask for this module, HeapStd_Module_startupDone// Test if this module has completed startup
Typedefs
typedef HeapStd_Object * | HeapStd_Handle// Client reference to an instance object;
typedef struct | HeapStd_Object// Opaque internal representation of an instance object HeapStd_Object;
typedef struct | HeapStd_Params// Instance config-params structure ...
typedef struct | HeapStd_Struct// Opaque client structure large enough to hold an instance object HeapStd_Struct;
Constants
extern const Assert_Id | HeapStd_A_invalidAlignment// Assert that the alignment argument in alloc is valid;
extern const Assert_Id | HeapStd_A_invalidTotalFreeSize// Assert that remaining size is less than or equal to starting size;
extern const Assert_Id | HeapStd_A_zeroSize// Assert that the size is non-zero on the create;
extern const Error_Id | HeapStd_E_noRTSMemory// Error raised if all the RTS heap is used up;
DETAILS
This heap is based on the ANSI C Standard Library functions malloc() and free() and assumes that these functions are thread-safe. Please refer to the target specific documentation of the ANSI C Standard Library for details.
The largest free block that can be returned form malloc() cannot be determined. Therefore, the property largestFreeSize in Memory.Stats returned from getStats() always returns 0.
CONSTRAINTS
The alloc() function only supports alignment requests up to value returned from Memory.getMaxDefaultTypeAlign().
config HeapStd_A_invalidAlignment // module-wide
index URL

Assert that the alignment argument in alloc is valid

C synopsis target-domain
extern const Assert_Id HeapStd_A_invalidAlignment;
DETAILS
If this assertion is raised, it means that the requested alignment is greater than the maximum alignment allowed on the target.
config HeapStd_A_invalidTotalFreeSize // module-wide
index URL

Assert that remaining size is less than or equal to starting size

C synopsis target-domain
extern const Assert_Id HeapStd_A_invalidTotalFreeSize;
DETAILS
If this assertion is raised, it means that either incorrect sizes were passed to free or multiple calls to free were made with the same buffer.
config HeapStd_A_zeroSize // module-wide
index URL

Assert that the size is non-zero on the create

C synopsis target-domain
extern const Assert_Id HeapStd_A_zeroSize;
config HeapStd_E_noRTSMemory // module-wide
index URL

Error raised if all the RTS heap is used up

C synopsis target-domain
extern const Error_Id HeapStd_E_noRTSMemory;
DETAILS
The total size of all HeapStd instance allocations added together cannot exceed the malloc/free heap size determined by xdc.cfg.Program.heap.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId HeapStd_Module_id();
// Get this module's unique id
Bool HeapStd_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle HeapStd_Module_heap();
// The heap from which this module allocates memory
Bool HeapStd_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 HeapStd_Module_getMask();
// Returns the diagnostics mask for this module
Void HeapStd_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct HeapStd_Object HeapStd_Object;
// Opaque internal representation of an instance object
typedef HeapStd_Object *HeapStd_Handle;
// Client reference to an instance object
typedef struct HeapStd_Struct HeapStd_Struct;
// Opaque client structure large enough to hold an instance object
HeapStd_Handle HeapStd_handle(HeapStd_Struct *structP);
// Convert this instance structure pointer into an instance handle
HeapStd_Struct *HeapStd_struct(HeapStd_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct HeapStd_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
     Memory_Size size;
    // Size (in MAUs) of the heap
} HeapStd_Params;
Void HeapStd_Params_init(HeapStd_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config HeapStd_size // instance
index URL

Size (in MAUs) of the heap

C synopsis target-domain
struct HeapStd_Params {
     ...
     Memory_Size size;
DETAILS
This parameter specifies the size of the heap managed by a HeapStd instance. HeapStd is built upon the ANSI C Standard Library functions malloc() and free().
The total size of all HeapStd instance allocations added together cannot exceed the malloc/free heap size determined by Program.heap.
This is a required parameter. It must be set by the caller. Failure to do so, will result in a build error for the static create or an assert for the runtime create.
Instance Creation
index URL

C synopsis target-domain
HeapStd_Handle HeapStd_create(const HeapStd_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void HeapStd_construct(HeapStd_Struct *structP, const HeapStd_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This heap uses the ANSI C Standard Library functions malloc() and free() to manage memory and assumes that these functions are thread-safe.
SEE
HeapStd.Params
Instance Deletion
index URL

C synopsis target-domain
Void HeapStd_delete(HeapStd_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void HeapStd_destruct(HeapStd_Struct *structP);
// Finalize the instance object inside the provided structure
HeapStd_alloc() // instance
index URL

Allocates a block of memory from the heap

C synopsis target-domain
Ptr HeapStd_alloc(HeapStd_Handle handle, SizeT size, SizeT align, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created HeapStd instance object
size — size (in MADUs) of the block
align — alignment (in MADUs) of the block
eb — pointer to error block
DETAILS
This method returns a block of memory from the heap. It is called by the xdc.runtime.Memory.alloc() function.
RETURNS
Returns the address of the allocated memory.
CONSTRAINTS
The only alignment currently supported is the default alignment returned by the underlying malloc() implementation. The align value must be less than or equal to the value returned from Memory.getMaxDefaultTypeAlign().
SEE
IHeap.alloc
HeapStd_free() // instance
index URL

Free a block of memory back to the heap

C synopsis target-domain
Void HeapStd_free(HeapStd_Handle handle, Ptr block, SizeT size);
ARGUMENTS
handle — handle of a previously-created HeapStd instance object
block — non-NULL address of allocated block to free
size — size (in MADUs) of the block of memory to free
DETAILS
This method gives back a block of memory to a heap. It is called by the xdc.runtime.Memory.free() function.
HeapStd_getStats() // instance
index URL

Retrieve the statistics from the heap

C synopsis target-domain
Void HeapStd_getStats(HeapStd_Handle handle, Memory_Stats *stats);
ARGUMENTS
handle — handle of a previously-created HeapStd instance object
stats — non-NULL pointer to an output buffer
DETAILS
The caller passes in a pointer to a xdc.runtime.Memory.Stats structure and getStats fills in this structure.
This function is called by the xdc.runtime.Memory.getStats() function.
HeapStd_isBlocking() // instance
index URL

Returns whether the heap may block during an HeapStd_alloc() or HeapStd_free()

C synopsis target-domain
Bool HeapStd_isBlocking(HeapStd_Handle handle);
ARGUMENTS
handle — handle of a previously-created HeapStd instance object
RETURNS
If the heap might block, TRUE is returned. If the heap does not block, FALSE is returned.
Since the implementation of the underlaying ANSI C Standard Library is not known, this function always returns the more restrictive case which is TRUE.
Instance Convertors
index URL

C synopsis target-domain
IHeap_Handle HeapStd_Handle_upCast(HeapStd_Handle handle);
// unconditionally move one level up the inheritance hierarchy
HeapStd_Handle HeapStd_Handle_downCast(IHeap_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int HeapStd_Object_count();
// The number of statically-created instance objects
HeapStd_Handle HeapStd_Object_get(HeapStd_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
HeapStd_Handle HeapStd_Object_first();
// The handle of the first dynamically-created instance object, or NULL
HeapStd_Handle HeapStd_Object_next(HeapStd_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle HeapStd_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *HeapStd_Handle_label(HeapStd_Handle handle, Types_Label *buf);
// The label associated with this instance object
String HeapStd_Handle_name(HeapStd_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/HeapStd.xdc
var HeapStd = xdc.useModule('xdc.runtime.HeapStd');
module-wide config parameters
     HeapStd.A_invalidAlignment// Assert that the alignment argument in alloc is valid = Assert.Desc {
        msg: "HeapStd_alloc - requested alignment is greater than allowed"
    };
     HeapStd.A_invalidTotalFreeSize// Assert that remaining size is less than or equal to starting size = Assert.Desc {
        msg: "HeapStd instance totalFreeSize is greater than starting size"
    };
     HeapStd.A_zeroSize// Assert that the size is non-zero on the create = Assert.Desc {
        msg: "HeapStd_create cannot have a zero size value"
    };
     HeapStd.E_noRTSMemory// Error raised if all the RTS heap is used up = Error.Desc {
        msg: "The RTS heap is used up. Examine Program.heap."
    };
     HeapStd.common$// Common module configuration parameters = Types.Common$ undefined;
per-instance config parameters
    var params = new HeapStd.Params// Instance config-params object;
        params.size// Size (in MAUs) of the heap = UArg 0;
per-instance creation
    var inst = HeapStd.create// Create an instance-object(params);
config HeapStd.A_invalidAlignment // module-wide
index URL

Assert that the alignment argument in alloc is valid

XDCscript usage meta-domain
HeapStd.A_invalidAlignment = Assert.Desc {
    msg: "HeapStd_alloc - requested alignment is greater than allowed"
};
DETAILS
If this assertion is raised, it means that the requested alignment is greater than the maximum alignment allowed on the target.
C SYNOPSIS
HeapStd_A_invalidAlignment
config HeapStd.A_invalidTotalFreeSize // module-wide
index URL

Assert that remaining size is less than or equal to starting size

XDCscript usage meta-domain
HeapStd.A_invalidTotalFreeSize = Assert.Desc {
    msg: "HeapStd instance totalFreeSize is greater than starting size"
};
DETAILS
If this assertion is raised, it means that either incorrect sizes were passed to free or multiple calls to free were made with the same buffer.
C SYNOPSIS
HeapStd_A_invalidTotalFreeSize
config HeapStd.A_zeroSize // module-wide
index URL

Assert that the size is non-zero on the create

XDCscript usage meta-domain
HeapStd.A_zeroSize = Assert.Desc {
    msg: "HeapStd_create cannot have a zero size value"
};
C SYNOPSIS
HeapStd_A_zeroSize
config HeapStd.E_noRTSMemory // module-wide
index URL

Error raised if all the RTS heap is used up

XDCscript usage meta-domain
HeapStd.E_noRTSMemory = Error.Desc {
    msg: "The RTS heap is used up. Examine Program.heap."
};
DETAILS
The total size of all HeapStd instance allocations added together cannot exceed the malloc/free heap size determined by xdc.cfg.Program.heap.
C SYNOPSIS
HeapStd_E_noRTSMemory
metaonly config HeapStd.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
HeapStd.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.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new HeapStd.Params;
// Instance config-params object
    params.size = UArg 0;
    // Size (in MAUs) of the heap
config HeapStd.size // instance
index URL

Size (in MAUs) of the heap

XDCscript usage meta-domain
var params = new HeapStd.Params;
...
params.size = UArg 0;
DETAILS
This parameter specifies the size of the heap managed by a HeapStd instance. HeapStd is built upon the ANSI C Standard Library functions malloc() and free().
The total size of all HeapStd instance allocations added together cannot exceed the malloc/free heap size determined by Program.heap.
This is a required parameter. It must be set by the caller. Failure to do so, will result in a build error for the static create or an assert for the runtime create.
C SYNOPSIS
null
Instance Creation
index URL

XDCscript usage meta-domain
var params = new HeapStd.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = HeapStd.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This heap uses the ANSI C Standard Library functions malloc() and free() to manage memory and assumes that these functions are thread-safe.
SEE
HeapStd.Params
generated on Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.HeapStd

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== HeapStd.xdc ========
    15     *!  Open Issues:
    16     *!  - Do not really know the largestFreeSize value in HeapStd_getStats()
    17     */
    18
    19    /*!
    20     *  ======== HeapStd ========
    21     *  Malloc/free based heap implementation.
    22     *
    23     *  This heap is based on the ANSI C Standard Library functions
    24     *  `malloc()` and `free()` and assumes that these functions are thread-safe.
    25     *  Please refer to the target specific documentation of the ANSI C Standard
    26     *  Library for details.
    27     *
    28     *  The largest free block that can be returned form `malloc()` cannot be
    29     *  determined. Therefore, the property `largestFreeSize` in
    30     *  `{@link Memory#Stats}` returned from `{@link #getStats()}` always returns
    31     *  0.
    32     *
    33     *  @a(Constraints)
    34     *  The `{@link #alloc()}` function only supports alignment requests up to
    35     *  value returned from
    36     *  `{@link Memory#getMaxDefaultTypeAlign()}`.
    37     */
    38
    39    @InstanceInitError  /* instance init can fail, call finalize if so */
    40
    41    module HeapStd inherits xdc.runtime.IHeap {
    42
    43        /*! @_nodoc */
    44        @XmlDtd
    45        metaonly struct Instance_View {
    46            Ptr             address;
    47            String          label;
    48            Memory.Size     remainSize;
    49            Memory.Size     startSize;
    50        }
    51
    52        /*!
    53         *  ======== E_noRTSMemory ========
    54         *  Error raised if all the RTS heap is used up
    55         *
    56         *  The total size of all `HeapStd` instance allocations added together
    57         *  cannot exceed the `malloc`/`free` heap size determined by
    58         *  `{@link xdc.cfg.Program#heap}`.
    59         */
    60        config Error.Id E_noRTSMemory = {
    61            msg: "The RTS heap is used up. Examine Program.heap."
    62        };
    63
    64        /*!
    65         *  ======== A_zeroSize ========
    66         *  Assert that the `{@link #size}` is non-zero on the create
    67         */
    68        config Assert.Id A_zeroSize = {
    69            msg: "HeapStd_create cannot have a zero size value"
    70        };
    71
    72        /*!
    73         *  ======== A_invalidTotalFreeSize ========
    74         *  Assert that remaining size is less than or equal to starting size.
    75         *
    76         *  If this assertion is raised, it means that either incorrect sizes
    77         *  were passed to `{@link #free}` or multiple calls to `{@link #free}`
    78         *  were made with the same buffer.
    79         */
    80        config Assert.Id A_invalidTotalFreeSize = {
    81            msg: "HeapStd instance totalFreeSize is greater than starting size"
    82        };
    83
    84        /*!
    85         *  ======== A_invalidAlignment ========
    86         *  Assert that the alignment argument in alloc is valid
    87         *
    88         *  If this assertion is raised, it means that the requested alignment is
    89         *  greater than the maximum alignment allowed on the target.
    90         */
    91        config Assert.Id A_invalidAlignment = {
    92            msg: "HeapStd_alloc - requested alignment is greater than allowed"
    93        };
    94
    95    instance:
    96
    97        /*!
    98         *  ======== create ========
    99         *  Create a `HeapStd` heap
   100         *
   101         *  This heap uses the ANSI C Standard Library functions
   102         *  `malloc()` and `free()` to manage memory and assumes that these
   103         *  functions are thread-safe.
   104         *
   105         *  @see HeapStd#Params
   106         */
   107        create();
   108
   109        /*!
   110         *  ======== size ========
   111         *  Size (in MAUs) of the heap.
   112         *
   113         *  This parameter specifies the size of the heap managed by a
   114         *  `HeapStd` instance. `HeapStd` is built upon the ANSI C Standard
   115         *  Library functions `malloc()` and `free()`.
   116         *
   117         *  The total size of all `HeapStd` instance allocations added together
   118         *  cannot exceed the `malloc`/`free` heap size determined by
   119         *  `{@link xdc.cfg.Program#heap Program.heap}`.
   120         *
   121         *  This is a required parameter. It must be set by the caller. Failure
   122         *  to do so, will result in a build error for the static create or an
   123         *  assert for the runtime create.
   124         */
   125        config Memory.Size size = 0;
   126
   127        /*!
   128         *  ======== alloc ========
   129         *  Allocates a block of memory from the heap.
   130         *
   131         *  @a(Constraints)
   132         *  The only alignment currently supported is the default
   133         *  alignment returned by the underlying `malloc()` implementation.
   134         *  The align value must be less than or equal to the value returned from
   135         *  `{@link Memory#getMaxDefaultTypeAlign()}`.
   136         *
   137         *  @see IHeap#alloc
   138         */
   139        override Ptr alloc(SizeT size, SizeT align, Error.Block *eb);
   140
   141        /*!
   142         *  ======== isBlocking ========
   143         *  Returns whether the heap may block during an `HeapStd_alloc()` or
   144         *  `HeapStd_free()`.
   145         *
   146         *  @a(returns)
   147         *  Since the implementation of the underlaying ANSI C Standard Library
   148         *  is not known, this function always returns the more restrictive case
   149         *  which is `TRUE`.
   150         */
   151        override Bool isBlocking();
   152
   153    internal:
   154
   155        struct Module_State {
   156            Memory.Size remainRTSSize;      /* Remaining size of rts heap      */
   157        };
   158
   159        struct Instance_State {
   160            Memory.Size remainSize;         /* Size of the remaining heap.      */
   161            Memory.Size startSize;          /* Starting size of the heap.       */
   162        };
   163    }
   164    /*
   165     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   166     */
   167


interface xdc.runtime.IFilterLogger
index URL

Interface for supporting filtering of Log events by detail level

  • C synopsis
  • Individual elements
Filtering of events based on detail level is not inherently supported by the Log APIs as is filtering of events based on the diagnostics mask. [ more ... ]
XDCspec summary sourced in xdc/runtime/IFilterLogger.xdc
interface IFilterLogger { ...
// inherits xdc.runtime.ILogger
    // inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
package xdc.runtime;
interface IFilterLogger inherits ILogger {
module-wide config parameters
    config Bool filterByLevel// Support filtering of events by event level = false;
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    metaonly function getMetaArgs// Returns any meta data needed to support RTA(inst, instNum);
instance:
per-instance functions
    Bool disable// Disable a log();
    Bool enable// Enable a log();
     Diags.Mask getFilterLevel// Returns the mask of diags categories currently set to the specified level(Diags.EventLevel level);
    Void setFilterLevel// Set the level of detail that instances will log(Diags.Mask mask, Diags.EventLevel filterLevel);
    Void write0// Process a log event with 0 arguments(Log.Event evt, Types.ModuleId mid);
    Void write1// Process a log event with 1 arguments(Log.Event evt, Types.ModuleId mid, IArg a1);
    Void write2// Process a log event with 2 arguments(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2);
    Void write4// Process a log event with up to 4 arguments(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
    Void write8// Process a log event with up to 8 arguments(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
}
DETAILS
Filtering of events based on detail level is not inherently supported by the Log APIs as is filtering of events based on the diagnostics mask.
Support for this type of filtering must be done by an ILogger implementation. Not all users are interested in this filtering support, however, so it is not required of all ILogger implementations.
ILoggers that do intend to support filtering by detail level should implement this interface, which extends the ILogger interface.
The setFilterLevel and getFilterLevel functions support runtime specification of a different filtering level for each of the diagnostics categories.
config IFilterLogger.filterByLevel // module-wide
index URL

Support filtering of events by event level

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
config Bool filterByLevel = false;
DETAILS
To improve logging performance, this feature can be disabled by setting filterByLevel to false.
See 'setFilterLevel' for an explanation of level filtering.
metaonly config IFilterLogger.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
metaonly config Types.Common$ common$;
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.
metaonly IFilterLogger.getMetaArgs() // module-wide
index URL

Returns any meta data needed to support RTA

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
metaonly function getMetaArgs(inst, instNum);
DETAILS
This meta data should be returned in the form of a structure which can be converted into XML. This data is added to the RTA XML file during the application's configuration, and can be accessed later through the xdc.rta.MetaData module.
The MetaData is returned per instance of the ILogger module. The instance object is passed to the function as the first argument.
The second argument is the index of the instance in the list of the ILogger's static instances.
IFilterLogger.disable() // instance
index URL

Disable a log

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
Bool disable();
DETAILS
Events written to a disabled log are silently discarded.
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
IFilterLogger.enable() // instance
index URL

Enable a log

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
Bool enable();
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
IFilterLogger.getFilterLevel() // instance
index URL

Returns the mask of diags categories currently set to the specified level

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
Diags.Mask getFilterLevel(Diags.EventLevel level);
DETAILS
See 'setFilterLevel' for an explanation of level filtering.
IFilterLogger.setFilterLevel() // instance
index URL

Set the level of detail that instances will log

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
Void setFilterLevel(Diags.Mask mask, Diags.EventLevel filterLevel);
ARGUMENTS
mask — The diags categories to set the level for
filterLevel — The new filtering level for the specified categories
DETAILS
Events with the specified level or higher will be logged, events below the specified level will be dropped.
Events are filtered first by diags category, then by level. If an event's diags category is disabled in the module's diags mask, then it will be filtered out regardless of level. The event will not even be passed to the logger.
This API allows for setting the filtering level for more than one diags category at a time. The mask parameter can be a single category or multiple categories combined, and the level will be set for all of those categories.
IFilterLogger.write0() // instance
index URL

Process a log event with 0 arguments

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
Void write0(Log.Event evt, Types.ModuleId mid);
DETAILS
Same as write4 except with 0 arguments rather than 4.
SEE
ILogger.write4()
IFilterLogger.write1() // instance
index URL

Process a log event with 1 arguments

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
Void write1(Log.Event evt, Types.ModuleId mid, IArg a1);
DETAILS
Same as write4 except with 1 arguments rather than 4.
SEE
ILogger.write4()
IFilterLogger.write2() // instance
index URL

Process a log event with 2 arguments

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
Void write2(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2);
DETAILS
Same as write4 except with 2 arguments rather than 4.
SEE
ILogger.write4()
IFilterLogger.write4() // instance
index URL

Process a log event with up to 4 arguments

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
Void write4(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
ARGUMENTS
evt — event to be logged
mid — module ID of the module which logged the event
a1 — arbitrary argument passed by caller
DETAILS
The evt argument is of type Log.Event, which encodes the Log.EventId, the Diags.Mask, and the Diags.EventLevel of the event. The event ID can be obtained via Types.getEventId(evt), the Diags mask can be obtained via Diags.getMask(evt), and the event level can be obtained via Diags.getLevel(evt).
The modId argument is the module ID of the module that logged the event.
The event information can be used by the logger to handle different events specially. For example, the event ID can be used to compare against other known Log.Events.
      if (Log_getEventId(MY_EVENT) == Log_getEventId(evt)) {
          :
      }
The Diags mask and event level can be used for filtering of events based on event level (see IFilterLogger), or even routing events to separate loggers based on diags category (see, for example, LoggerBuf.statusLogger).
The Diags mask and event level are useful for handling the event, but are generally not recorded by the logger because they are not needed in decoding and displaying the event. A more suitable value to record is a Types.Event, which encodes the event ID and module ID. For example, the Log.EventRec type stores a Types.Event in its record definition. A Types.Event can be created using the Types.makeEvent API given the event ID and module ID.
The event ID value of 0 is used to indicate an event triggered by a call to one of the Log_print[0-6] methods. These methods take a format string rather than a Log_Event argument and, as a result, the event ID encoded in evt is 0 and the parameter a1 is the format string.
Non-zero event IDs can also be used to access the msg string associated with the Log.EventDesc that originally defined the Log event.
      Log_EventId id = Log_getEventId(evt));
      if (id != 0) {
          String msg = Text_ropeText(id);
          System_aprintf(msg, a1, a2, a3, a4);
      }
This works because an event's ID is simply an offset into a table of characters (maintained by the Text module) containing the event's msg string.
The arguments a1, a2, etc. are parameters that are to be interpreted according to the message format string associated with evt.
SEE
Log.Event, Log.EventDesc, Text.ropeText, Log.getEventId
IFilterLogger.write8() // instance
index URL

Process a log event with up to 8 arguments

XDCspec declarations sourced in xdc/runtime/IFilterLogger.xdc
Void write8(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
DETAILS
Same as write4 except with 8 arguments rather than 4.
SEE
ILogger.write4()
generated on Thu, 08 Nov 2012 02:13:24 GMT


interface xdc.runtime.IFilterLogger

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*!
    14     *  ======== IFilterLogger ========
    15     *  Interface for supporting filtering of Log events by detail level.
    16     *
    17     *  Filtering of events based on detail level is not inherently supported
    18     *  by the Log APIs as is filtering of events based on the diagnostics mask.
    19     *
    20     *  Support for this type of filtering must be done by an `ILogger`
    21     *  implementation. Not all users are interested in this filtering support,
    22     *  however, so it is not required of all `ILogger` implementations.
    23     *
    24     *  `ILoggers` that do intend to support filtering by detail level should
    25     *  implement this interface, which extends the `ILogger` interface.
    26     *
    27     *  The `{@link #setFilterLevel}` and `{@link #getFilterLevel}` functions
    28     *  support runtime specification of a different filtering level for each of
    29     *  the diagnostics categories.
    30     */
    31    interface IFilterLogger inherits ILogger {
    32
    33        /*!
    34         *  ======== filterByLevel ========
    35         *  Support filtering of events by event level
    36         *
    37         *  To improve logging performance, this feature can be disabled by setting
    38         *  `filterByLevel` to false.
    39         *
    40         *  See '{@link #setFilterLevel}' for an explanation of level filtering.
    41         */
    42        config Bool filterByLevel = false;
    43
    44    instance:
    45
    46        /*!
    47         *  ======== setFilterLevel ========
    48         *  Set the level of detail that instances will log
    49         *
    50         *  Events with the specified level or higher will be logged, events
    51         *  below the specified level will be dropped.
    52         *
    53         *  Events are filtered first by diags category, then by level. If an
    54         *  event's diags category is disabled in the module's diags mask, then it
    55         *  will be filtered out regardless of level. The event will not even be
    56         *  passed to the logger.
    57         *
    58         *  This API allows for setting the filtering level for more than one
    59         *  diags category at a time. The mask parameter can be a single category
    60         *  or multiple categories combined, and the level will be set for all of
    61         *  those categories.
    62         *
    63         *  @param(mask) The diags categories to set the level for
    64         *  @param(filterLevel) The new filtering level for the specified
    65         *                      categories
    66         */
    67        Void setFilterLevel(Diags.Mask mask, Diags.EventLevel filterLevel);
    68
    69        /*!
    70         *  ======== getFilterLevel ========
    71         *  Returns the mask of diags categories currently set to the specified
    72         *  level.
    73         *
    74         *  See '{@link #setFilterLevel}' for an explanation of level filtering.
    75         */
    76        Diags.Mask getFilterLevel(Diags.EventLevel level);
    77
    78    }
    79    /*
    80     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    81     */
    82


interface xdc.runtime.IGateProvider
index URL

Interface implemented by all gate providers

  • C synopsis
  • Individual elements
  • DETAILS
  • NOTES
Gates are used within the xdc.runtime package to serialize access to data structures that are used by more than one thread. [ more ... ]
XDCspec summary sourced in xdc/runtime/IGateProvider.xdc
interface IGateProvider { ...
// inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/IGateProvider.xdc
package xdc.runtime;
interface IGateProvider {
module-wide constants & types
    const Int Q_BLOCKING// Blocking quality = 1;
    const Int Q_PREEMPTING// Preempting quality = 2;
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    Bool query// Runtime test for a particular gate quality(Int qual);
    metaonly Bool queryMeta// Configuration time test for a particular gate quality(Int qual);
instance:
per-instance creation
     create// Create an instance-object();
per-instance functions
    IArg enter// Enter this gate();
    Void leave// Leave this gate(IArg key);
}
DETAILS
Gates are used within the xdc.runtime package to serialize access to data structures that are used by more than one thread.
Gates are responsible for ensuring that only one out of multiple threads can access a data structure at a time. There are important scheduling latency and performance considerations that affect the "type" of gate used to protect each data structure. For example, the best way to protect a shared counter is to simply disable all interrupts before the update and restore the interrupt state after the update; disabling all interrupts prevents all thread switching, so the update is guaranteed to be "atomic". Although highly efficient, this method of creating atomic sections causes serious system latencies when the time required to update the data structure can't be bounded.
For example, a memory manager's list of free blocks can grow indefinitely long during periods of high fragmentation. Searching such a list with interrupts disabled would cause system latencies to also become unbounded. In this case, the best solution is to provide a gate that suspends the execution of threads that try to enter a gate that has already been entered; i.e., the gate "blocks" the thread until the thread already in the gate leaves. The time required to enter and leave the gate is greater than simply enabling and restoring interrupts, but since the time spent within the gate is relatively large, the overhead caused by entering and leaving gates will not become a significant percentage of overall system time. More importantly, threads that do not need to access the shared data structure are completely unaffected by threads that do access it.
NOTES
Modules inheriting this interface should treat all names beginning with Q_ as reserved words, i.e. the names from that namespace should not be used. This will allow future version of this interface to define new constants ("qualities") similar to Q_BLOCKING and Q_PREEMPTING without breaking any existing modules.
const IGateProvider.Q_BLOCKING
index URL

Blocking quality

XDCspec declarations sourced in xdc/runtime/IGateProvider.xdc
const Int Q_BLOCKING = 1;
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
const IGateProvider.Q_PREEMPTING
index URL

Preempting quality

XDCspec declarations sourced in xdc/runtime/IGateProvider.xdc
const Int Q_PREEMPTING = 2;
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
metaonly config IGateProvider.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/IGateProvider.xdc
metaonly config Types.Common$ common$;
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.
IGateProvider.query() // module-wide
index URL

Runtime test for a particular gate quality

XDCspec declarations sourced in xdc/runtime/IGateProvider.xdc
Bool query(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
metaonly IGateProvider.queryMeta() // module-wide
index URL

Configuration time test for a particular gate quality

XDCspec declarations sourced in xdc/runtime/IGateProvider.xdc
metaonly Bool queryMeta(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Instance Creation
index URL

XDCspec declarations sourced in xdc/runtime/IGateProvider.xdc
create();
// Create an instance-object
IGateProvider.enter() // instance
index URL

Enter this gate

XDCspec declarations sourced in xdc/runtime/IGateProvider.xdc
IArg enter();
DETAILS
Each gate provider can implement mutual exclusion using different algorithms; e.g., disabling all scheduling, disabling the scheduling of all threads below a specified "priority level", suspending the caller when the gate has been entered by another thread and re-enabling it when the the other thread leaves the gate. However, in all cases, after this method returns that caller has exclusive access to the data protected by this gate.
A thread may reenter a gate without blocking or failing.
RETURNS
Returns a "key" that is used to leave this gate; this value is used to restore thread preemption to the state that existed just prior to entering this gate.
IGateProvider.leave() // instance
index URL

Leave this gate

XDCspec declarations sourced in xdc/runtime/IGateProvider.xdc
Void leave(IArg key);
ARGUMENTS
key — the value returned by a matching call to enter
DETAILS
This method is only called by threads that have previously entered this gate via enter. After this method returns, the caller must not access the data structure protected by this gate (unless the caller has entered the gate more than once and other calls to leave remain to balance the number of previous calls to enter).
generated on Thu, 08 Nov 2012 02:13:24 GMT


interface xdc.runtime.IGateProvider

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== IGateProvider.xdc ========
    15     */
    16    package xdc.runtime
    17
    18    /*!
    19     *  ======== IGateProvider ========
    20     *  Interface implemented by all gate providers
    21     *
    22     *  Gates are used within the `xdc.runtime` package to serialize access
    23     *  to data structures that are used by more than one thread.
    24     *
    25     *  Gates are responsible for ensuring that only one out of multiple threads
    26     *  can access a data structure at a time.  There
    27     *  are important scheduling latency and performance considerations that
    28     *  affect the "type" of gate used to protect each data structure.  For
    29     *  example, the best way to protect a shared counter is to simply disable
    30     *  all interrupts before the update and restore the interrupt state after
    31     *  the update; disabling all interrupts prevents all thread switching, so
    32     *  the update is guaranteed to be "atomic".  Although highly efficient, this
    33     *  method of creating atomic sections causes serious system latencies when
    34     *  the time required to update the data structure can't be bounded.
    35     *
    36     *  For example, a memory manager's list of free blocks can grow indefinitely
    37     *  long during periods of high fragmentation.  Searching such a list with
    38     *  interrupts disabled would cause system latencies to also become unbounded.
    39     *  In this case, the best solution is to provide a gate that suspends the
    40     *  execution of  threads that try to enter a gate that has already been
    41     *  entered; i.e., the gate "blocks" the thread until the thread
    42     *  already in the gate leaves.  The time required to enter and leave the
    43     *  gate is greater than simply enabling and restoring interrupts, but since
    44     *  the time spent within the gate is relatively large, the overhead caused by
    45     *  entering and leaving gates will not become a significant percentage of
    46     *  overall system time.  More importantly, threads that do not need to
    47     *  access the shared data structure are completely unaffected by threads
    48     *  that do access it.
    49     *
    50     *  @a(Notes)
    51     *  Modules inheriting this interface should treat all names beginning with
    52     *  `Q_` as reserved words, i.e. the names from that namespace should not
    53     *  be used.  This will allow future version of this interface to define new
    54     *  constants ("qualities" ) similar to `{@link #Q_BLOCKING}` and
    55     *  `{@link #Q_PREEMPTING}` without breaking any existing modules.
    56     */
    57    interface IGateProvider {
    58
    59        /*!
    60         *  ======== Q_BLOCKING ========
    61         *  Blocking quality
    62         *
    63         *  Gates with this "quality" may cause the calling thread to block;
    64         *  i.e., suspend execution until another thread leaves the gate.
    65         */
    66        const Int Q_BLOCKING = 1;
    67
    68        /*!
    69         *  ======== Q_PREEMPTING ========
    70         *  Preempting quality
    71         *
    72         *  Gates with this "quality" allow other threads to preempt the thread
    73         *  that has already entered the gate.
    74         */
    75        const Int Q_PREEMPTING = 2;
    76
    77        /*!
    78         *  ======== query ========
    79         *  Configuration time test for a particular gate quality
    80         *
    81         *  @param(qual)    constant describing a quality
    82         *  @a(returns)     Returns `TRUE` if the gate has the given quality,
    83         *  and `FALSE` otherwise, which includes the case when the gate does not
    84         *  recognize the constant describing the quality.
    85         */
    86        metaonly Bool queryMeta(Int qual);
    87
    88        /*!
    89         *  ======== query ========
    90         *  Runtime test for a particular gate quality
    91         *
    92         *  @param(qual)    constant describing a quality
    93         *  @a(returns)     Returns `TRUE` if the gate has the given quality,
    94         *  and `FALSE` otherwise, which includes the case when the gate does not
    95         *  recognize the constant describing the quality.
    96         */
    97        Bool query(Int qual);
    98
    99    instance:
   100
   101        /*!
   102         *  ======== create ========
   103         *  Create a gate instance
   104         */
   105        create();
   106
   107        /*!
   108         *  ======== enter ========
   109         *  Enter this gate
   110         *
   111         *  Each gate provider can implement mutual exclusion using different
   112         *  algorithms; e.g., disabling all scheduling, disabling the scheduling
   113         *  of all threads below a specified "priority level", suspending the
   114         *  caller when the gate has been entered by another thread and
   115         *  re-enabling it when the the other thread leaves the gate.  However,
   116         *  in all cases, after this method returns that caller has exclusive
   117         *  access to the data protected by this gate.
   118         *
   119         *  A thread may reenter a gate without blocking or failing.
   120         *
   121         *  @a(returns)
   122         *  Returns a "key" that is used to `{@link #leave}` this gate; this
   123         *  value is used to restore thread preemption to the state that
   124         *  existed just prior to entering this gate.
   125         */
   126        IArg enter();
   127
   128        /*!
   129         *  ======== leave ========
   130         *  Leave this gate
   131         *
   132         *  This method is only called by threads that have previously entered
   133         *  this gate via `{@link #enter}`.  After this method returns, the
   134         *  caller must not access the data structure protected by this gate
   135         *  (unless the caller has entered the gate more than once and other
   136         *  calls to `leave` remain to balance the number of previous
   137         *  calls to `enter`).
   138         *
   139         *  @param(key) the value returned by a matching call to
   140         *              `{@link #enter}`
   141         */
   142        Void leave(IArg key);
   143    }
   144    /*
   145     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   146     */
   147


interface xdc.runtime.IHeap
index URL

Interface to heap functions

  • C synopsis
  • Individual elements
All heap implementations inherit from this interface. The implementations can have additional configuration parmeters and functions.
XDCspec summary sourced in xdc/runtime/IHeap.xdc
interface IHeap { ...
// inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/IHeap.xdc
package xdc.runtime;
interface IHeap {
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
instance:
per-instance creation
     create// Create an instance-object();
per-instance functions
    Ptr alloc// Allocates a block of memory from the heap(SizeT size, SizeT align, Error.Block *eb);
    Void free// Free a block of memory back to the heap(Ptr block, SizeT size);
    Void getStats// Retrieve the statistics from the heap(Memory.Stats *stats);
    Bool isBlocking// Returns whether the heap may block during an alloc() or free()();
}
metaonly config IHeap.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/IHeap.xdc
metaonly config Types.Common$ common$;
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.
Instance Creation
index URL

XDCspec declarations sourced in xdc/runtime/IHeap.xdc
create();
// Create an instance-object
DETAILS
See specific IHeap implementation for parameters used.
IHeap.alloc() // instance
index URL

Allocates a block of memory from the heap

XDCspec declarations sourced in xdc/runtime/IHeap.xdc
Ptr alloc(SizeT size, SizeT align, Error.Block *eb);
ARGUMENTS
size — size (in MADUs) of the block
align — alignment (in MADUs) of the block
eb — pointer to error block
DETAILS
This method returns a block of memory from the heap. It is called by the xdc.runtime.Memory.alloc() function.
RETURNS
Returns the address of the allocated memory.
IHeap.free() // instance
index URL

Free a block of memory back to the heap

XDCspec declarations sourced in xdc/runtime/IHeap.xdc
Void free(Ptr block, SizeT size);
ARGUMENTS
block — non-NULL address of allocated block to free
size — size (in MADUs) of the block of memory to free
DETAILS
This method gives back a block of memory to a heap. It is called by the xdc.runtime.Memory.free() function.
IHeap.getStats() // instance
index URL

Retrieve the statistics from the heap

XDCspec declarations sourced in xdc/runtime/IHeap.xdc
Void getStats(Memory.Stats *stats);
ARGUMENTS
stats — non-NULL pointer to an output buffer
DETAILS
The caller passes in a pointer to a xdc.runtime.Memory.Stats structure and getStats fills in this structure.
This function is called by the xdc.runtime.Memory.getStats() function.
IHeap.isBlocking() // instance
index URL

Returns whether the heap may block during an alloc() or free()

XDCspec declarations sourced in xdc/runtime/IHeap.xdc
Bool isBlocking();
RETURNS
If the heap might block, TRUE is returned. If the heap does not block, FALSE is returned.
generated on Thu, 08 Nov 2012 02:13:24 GMT


interface xdc.runtime.IHeap

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== IHeap.xdc ========
    15     *! - if we ever change the name of this interface, we should change it to
    16     *!   IMemoryProvider
    17     */
    18
    19    /*!
    20     *  ======== IHeap ========
    21     *  Interface to heap functions.
    22     *
    23     *  All heap implementations inherit from this interface.
    24     *  The implementations can have additional configuration
    25     *  parmeters and functions.
    26     *
    27     */
    28    interface IHeap {
    29
    30    instance:
    31
    32        /*!
    33         *  ======== alloc ========
    34         *  Allocates a block of memory from the heap.
    35         *
    36         *  This method returns a block of memory from the heap.
    37         *  It is called by the `{@link xdc.runtime.Memory#alloc()}` function.
    38         *
    39         *  @param(size)     size (in MADUs) of the block
    40         *  @param(align)    alignment (in MADUs)  of the block
    41         *  @param(eb)       pointer to error block
    42         *
    43         *  @a(returns)      Returns the address of the allocated memory.
    44         */
    45        Ptr alloc(SizeT size, SizeT align, Error.Block *eb);
    46
    47        /*!
    48         *  ======== create ========
    49         *  Create a heap.
    50         *
    51         *  See specific `IHeap` implementation for parameters used.
    52         */
    53        create();
    54
    55        /*!
    56         *  ======== free ========
    57         *  Free a block of memory back to the heap.
    58         *
    59         *  This method gives back a block of memory to a heap.
    60         *  It is called by the `{@link xdc.runtime.Memory#free()}` function.
    61         *
    62         *  @param(block)    non-`NULL` address of allocated block to free
    63         *  @param(size)     size (in MADUs) of the block of memory to free
    64         */
    65        Void free(Ptr block, SizeT size);
    66
    67        /*!
    68         *  ======== isBlocking ========
    69         *  Returns whether the heap may block during an `{@link #alloc()}` or
    70         *  `{@link #free()}`.
    71         *
    72         *  @a(returns)      If the heap might block, `TRUE` is returned.
    73         *                   If the heap does not block, `FALSE` is returned.
    74         */
    75        Bool isBlocking();
    76
    77        /*!
    78         *  ======== getStats ========
    79         *  Retrieve the statistics from the heap.
    80         *
    81         *  The caller passes in a pointer to a `{@link xdc.runtime.Memory#Stats}`
    82         *  structure and `getStats` fills in this structure.
    83         *
    84         *  This function is called by the `{@link xdc.runtime.Memory#getStats()}`
    85         *  function.
    86         *
    87         *  @param(stats)    non-`NULL` pointer to an output buffer
    88         */
    89        Void getStats(Memory.Stats *stats);
    90    }
    91    /*
    92     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    93     */
    94


interface xdc.runtime.IInstance
index URL

Common instance params

  • C synopsis
  • Individual elements
Every module's instance parameter structure contains a pointer to an IInstance.Params structure named instance. So, every instance parameter defined in this interface may optionally be set when creating (or constructing) any module's instances.
XDCspec summary sourced in xdc/runtime/IInstance.xdc
interface IInstance { ...
instance: ...
XDCspec declarations sourced in xdc/runtime/IInstance.xdc
package xdc.runtime;
interface IInstance {
instance:
per-instance config parameters
    config String name// Name of the instance = null;
}
config IInstance.name // instance
index URL

Name of the instance

XDCspec declarations sourced in xdc/runtime/IInstance.xdc
config String name = null;
DETAILS
It is possible to "bind" a name to each instance of any module at the time the instance is created (or constructed).
      ModA_Params params;
      ModA_Params_init(&params);
      params.instance->name = "myInstance";
      ModA_create(&params, NULL);
The name field must be assigned a pointer to a buffer that persists as long as the instance that it names exists. Only a reference to the name is retained in the instance, the name is not copied to a secondary buffer.
The configuration parameters that controls if instance names are supported is common$.namedInstance. The parameter is a member of the structure common$, available in each module. By default, this parameter is set to false, which disables support for instance names. Therefore, to enable instance names for a given module Mod, configure the module as follows in your configuration script:
      var Mod = xdc.useModule('pkg.Mod');
      ModA.common$.namedInstance = true;
Here is how the static instances are given names at the configuration time:
      var inst = Mod.create();
      inst.instance.name = "myInstance";
At runtime, assign your instance a name:
      #include <package/name/Mod.h>
      Mod_Params params;
      Mod_Params_init(&params);
      params.instance->name = "myInstance";
      Mod_create(&params, NULL);
If instances have been configured to not support names, it is still possible to assign to the instance.name field of the parameter structure (as shown above). However, the pointer is not retained and methods that normally return an instance's name will return NULL instead.
generated on Thu, 08 Nov 2012 02:13:24 GMT


interface xdc.runtime.IInstance

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*!
    14     *  ======== IInstance ========
    15     *  Common instance params
    16     *
    17     *  Every module's instance parameter structure contains a pointer to an
    18     *  `IInstance.Params` structure named `instance`.  So, every instance
    19     *  parameter defined in this interface may optionally be set when
    20     *  creating (or constructing) any module's instances.
    21     */
    22    interface IInstance {
    23
    24    instance:
    25
    26        /*!
    27         *  ======== name ========
    28         *  Name of the instance
    29         *
    30         *  It is possible to "bind" a name to each instance of any module
    31         *  at the time the instance is created (or constructed).
    32         *  @p(code)
    33         *      ModA_Params params;
    34         *      ModA_Params_init(&params);
    35         *      params.instance->name = "myInstance";
    36         *      ModA_create(&params, NULL);
    37         *  @p
    38         *
    39         *  The name field must be assigned a pointer to a buffer that persists
    40         *  as long as the instance that it names exists.  Only a reference to
    41         *  the name is retained in the instance, the name is not copied to a
    42         *  secondary buffer.
    43         *
    44         *  The configuration parameters that controls if instance names are
    45         *  supported is `common$.namedInstance`. The parameter is a member of the
    46         *  structure `{@link xdc.runtime.Types#Common$ common$}`, available in each
    47         *  module. By default, this parameter is set to `false`, which disables
    48         *  support for instance names.
    49         *  Therefore, to enable instance names for a given module `Mod`, configure
    50         *  the module as follows in your configuration script:
    51         *  @p(code)
    52         *      var Mod = xdc.useModule('pkg.Mod');
    53         *      ModA.common$.namedInstance = true;
    54         *  @p
    55         *
    56         *  Here is how the static instances are given names at the configuration
    57         *  time:
    58         *  @p(code)
    59         *      var inst = Mod.create();
    60         *      inst.instance.name = "myInstance";
    61         *  @p
    62         *
    63         *  At runtime, assign your instance a name:
    64         *  @p(code)
    65         *      #include <package/name/Mod.h>
    66         *      Mod_Params params;
    67         *      Mod_Params_init(&params);
    68         *      params.instance->name = "myInstance";
    69         *      Mod_create(&params, NULL);
    70         *  @p
    71         *
    72         *  If instances have been configured to not support names, it is still
    73         *  possible to assign to the `instance.name` field of the parameter
    74         *  structure (as shown above).  However, the pointer is not retained
    75         *  and methods that normally return an instance's name will return
    76         *  `NULL` instead.
    77         */
    78        config String name = null;
    79    }
    80    /*
    81     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    82     */
    83


interface xdc.runtime.ILogger
index URL

Interface to service Log events

  • C synopsis
  • Individual elements
A logger is responsible for recording, transmitting, or otherwise handling Log Events generated by clients of the Log module. The Log module uses modules that implement the ILogger interface to record the log events. Most application code will use the Log module instead of directly calling the specific ILogger module implementation. [ more ... ]
XDCspec summary sourced in xdc/runtime/ILogger.xdc
interface ILogger { ...
// inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/ILogger.xdc
package xdc.runtime;
interface ILogger {
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    metaonly function getMetaArgs// Returns any meta data needed to support RTA(inst, instNum);
instance:
per-instance functions
    Bool disable// Disable a log();
    Bool enable// Enable a log();
    Void write0// Process a log event with 0 arguments(Log.Event evt, Types.ModuleId mid);
    Void write1// Process a log event with 1 arguments(Log.Event evt, Types.ModuleId mid, IArg a1);
    Void write2// Process a log event with 2 arguments(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2);
    Void write4// Process a log event with up to 4 arguments(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
    Void write8// Process a log event with up to 8 arguments(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
}
DETAILS
A logger is responsible for recording, transmitting, or otherwise handling Log Events generated by clients of the Log module. The Log module uses modules that implement the ILogger interface to record the log events. Most application code will use the Log module instead of directly calling the specific ILogger module implementation.
All logger implementations must inherit from this interface. The derived implementations must implement the functions defined in this interface but may also add additional configuration parameters and functions.
Events may be defined with a detail level, but the Log interface does not inherently provide support for filtering of events based on detail level. Instead, this is left to the ILogger implementation. ILogger implementations which wish to support filtering based on detail level should implement the IFilterLogger interface, which extends the ILogger interface to include APIs for getting and setting the current filter level.
metaonly config ILogger.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/ILogger.xdc
metaonly config Types.Common$ common$;
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.
metaonly ILogger.getMetaArgs() // module-wide
index URL

Returns any meta data needed to support RTA

XDCspec declarations sourced in xdc/runtime/ILogger.xdc
metaonly function getMetaArgs(inst, instNum);
DETAILS
This meta data should be returned in the form of a structure which can be converted into XML. This data is added to the RTA XML file during the application's configuration, and can be accessed later through the xdc.rta.MetaData module.
The MetaData is returned per instance of the ILogger module. The instance object is passed to the function as the first argument.
The second argument is the index of the instance in the list of the ILogger's static instances.
ILogger.disable() // instance
index URL

Disable a log

XDCspec declarations sourced in xdc/runtime/ILogger.xdc
Bool disable();
DETAILS
Events written to a disabled log are silently discarded.
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
ILogger.enable() // instance
index URL

Enable a log

XDCspec declarations sourced in xdc/runtime/ILogger.xdc
Bool enable();
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
ILogger.write0() // instance
index URL

Process a log event with 0 arguments

XDCspec declarations sourced in xdc/runtime/ILogger.xdc
Void write0(Log.Event evt, Types.ModuleId mid);
DETAILS
Same as write4 except with 0 arguments rather than 4.
SEE
ILogger.write4()
ILogger.write1() // instance
index URL

Process a log event with 1 arguments

XDCspec declarations sourced in xdc/runtime/ILogger.xdc
Void write1(Log.Event evt, Types.ModuleId mid, IArg a1);
DETAILS
Same as write4 except with 1 arguments rather than 4.
SEE
ILogger.write4()
ILogger.write2() // instance
index URL

Process a log event with 2 arguments

XDCspec declarations sourced in xdc/runtime/ILogger.xdc
Void write2(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2);
DETAILS
Same as write4 except with 2 arguments rather than 4.
SEE
ILogger.write4()
ILogger.write4() // instance
index URL

Process a log event with up to 4 arguments

XDCspec declarations sourced in xdc/runtime/ILogger.xdc
Void write4(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
ARGUMENTS
evt — event to be logged
mid — module ID of the module which logged the event
a1 — arbitrary argument passed by caller
DETAILS
The evt argument is of type Log.Event, which encodes the Log.EventId, the Diags.Mask, and the Diags.EventLevel of the event. The event ID can be obtained via Types.getEventId(evt), the Diags mask can be obtained via Diags.getMask(evt), and the event level can be obtained via Diags.getLevel(evt).
The modId argument is the module ID of the module that logged the event.
The event information can be used by the logger to handle different events specially. For example, the event ID can be used to compare against other known Log.Events.
      if (Log_getEventId(MY_EVENT) == Log_getEventId(evt)) {
          :
      }
The Diags mask and event level can be used for filtering of events based on event level (see IFilterLogger), or even routing events to separate loggers based on diags category (see, for example, LoggerBuf.statusLogger).
The Diags mask and event level are useful for handling the event, but are generally not recorded by the logger because they are not needed in decoding and displaying the event. A more suitable value to record is a Types.Event, which encodes the event ID and module ID. For example, the Log.EventRec type stores a Types.Event in its record definition. A Types.Event can be created using the Types.makeEvent API given the event ID and module ID.
The event ID value of 0 is used to indicate an event triggered by a call to one of the Log_print[0-6] methods. These methods take a format string rather than a Log_Event argument and, as a result, the event ID encoded in evt is 0 and the parameter a1 is the format string.
Non-zero event IDs can also be used to access the msg string associated with the Log.EventDesc that originally defined the Log event.
      Log_EventId id = Log_getEventId(evt));
      if (id != 0) {
          String msg = Text_ropeText(id);
          System_aprintf(msg, a1, a2, a3, a4);
      }
This works because an event's ID is simply an offset into a table of characters (maintained by the Text module) containing the event's msg string.
The arguments a1, a2, etc. are parameters that are to be interpreted according to the message format string associated with evt.
SEE
Log.Event, Log.EventDesc, Text.ropeText, Log.getEventId
ILogger.write8() // instance
index URL

Process a log event with up to 8 arguments

XDCspec declarations sourced in xdc/runtime/ILogger.xdc
Void write8(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
DETAILS
Same as write4 except with 8 arguments rather than 4.
SEE
ILogger.write4()
generated on Thu, 08 Nov 2012 02:13:24 GMT


interface xdc.runtime.ILogger

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*!
    14     *  ======== ILogger ========
    15     *  Interface to service Log events
    16     *
    17     *  A logger is responsible for recording, transmitting, or otherwise
    18     *  handling `{@link Log#EventDesc Log Events}` generated by clients of the
    19     *  `{@link Log}` module. The `Log` module uses modules that implement the
    20     *  `ILogger` interface to record the log events. Most application code will
    21     *  use the `Log` module instead of directly calling the specific `ILogger`
    22     *  module implementation.
    23     *
    24     *  All logger implementations must inherit from this interface. The
    25     *  derived implementations must implement the functions defined in this
    26     *  interface but may also add additional configuration parameters and
    27     *  functions.
    28     *
    29     *  Events may be defined with a detail level, but the Log interface does not
    30     *  inherently provide support for filtering of events based on detail level.
    31     *  Instead, this is left to the ILogger implementation. ILogger
    32     *  implementations which wish to support filtering based on detail level
    33     *  should implement the IFilterLogger interface, which extends the ILogger
    34     *  interface to include APIs for getting and setting the current filter level.
    35     */
    36    interface ILogger {
    37
    38        /*!
    39         *  ======== getMetaArgs ========
    40         *  Returns any meta data needed to support RTA.
    41         *
    42         *  This meta data should be returned in the form of a structure which
    43         *  can be converted into XML. This data is added to the RTA XML file
    44         *  during the application's configuration, and can be accessed later
    45         *  through the xdc.rta.MetaData module.
    46         *
    47         *  The MetaData is returned per instance of the ILogger module. The
    48         *  instance object is passed to the function as the first argument.
    49         *
    50         *  The second argument is the index of the instance in the list of
    51         *  the ILogger's static instances.
    52         */
    53        function getMetaArgs(inst, instNum);
    54
    55    instance:
    56
    57        /*!
    58         *  ======== enable ========
    59         *  Enable a log
    60         *
    61         *  @a(returns)
    62         *  The function returns the state of the log (`TRUE` if enabled,
    63         *  `FALSE` if disabled) before the call. This return value allows
    64         *  clients to restore the previous state.
    65         *  Note: not thread safe.
    66         */
    67        Bool enable();
    68
    69       /*!
    70         *  ======== disable ========
    71         *  Disable a log
    72         *
    73         *  Events written to a disabled log are silently discarded.
    74         *
    75         *  @a(returns)
    76         *  The function returns the state of the log (`TRUE` if enabled,
    77         *  `FALSE` if disabled) before the call. This return value allows
    78         *  clients to restore the previous state.
    79         *  Note: not thread safe.
    80         */
    81        Bool disable();
    82
    83        /*!
    84         *  ======== write0 ========
    85         *  Process a log event with 0 arguments.
    86         *
    87         *  Same as `write4` except with 0 arguments rather than 4.
    88         *
    89         *  @see ILogger#write4()
    90         */
    91        Void write0(Log.Event evt, Types.ModuleId mid);
    92
    93        /*!
    94         *  ======== write1 ========
    95         *  Process a log event with 1 arguments.
    96         *
    97         *  Same as `write4` except with 1 arguments rather than 4.
    98         *
    99         *  @see ILogger#write4()
   100         */
   101        Void write1(Log.Event evt, Types.ModuleId mid, IArg a1);
   102
   103        /*!
   104         *  ======== write2 ========
   105         *  Process a log event with 2 arguments.
   106         *
   107         *  Same as `write4` except with 2 arguments rather than 4.
   108         *
   109         *  @see ILogger#write4()
   110         */
   111        Void write2(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2);
   112
   113        /*!
   114         *  ======== write4 ========
   115         *  Process a log event with up to 4 arguments.
   116         *
   117         *  The `evt` argument is of type Log.Event, which encodes the
   118         *  `{@link Log#EventId}`, the `{@link Diags#Mask}`, and the
   119         *  `{@link Diags#EventLevel}` of the event. The event ID can be obtained
   120         *  via `{@link Types#getEventId}(evt)`, the Diags mask can be obtained via
   121         *  `{@link Diags#getMask}(evt)`, and the event level can be obtained via
   122         *  `{@link Diags#getLevel}(evt)`.
   123         *
   124         *  The `modId` argument is the module ID of the module that logged the
   125         *  event.
   126         *
   127         *  The event information can be used by the logger to handle different
   128         *  events specially. For example, the event ID can be used to compare
   129         *  against other known `Log.Event`s.
   130         *  @p(code)
   131         *      if (Log_getEventId(MY_EVENT) == Log_getEventId(evt)) {
   132         *          :
   133         *      }
   134         *  @p
   135         *  The Diags mask and event level can be used for filtering of events
   136         *  based on event level (see {@link IFilterLogger}), or even routing
   137         *  events to separate loggers based on diags category (see, for example,
   138         *  {@link LoggerBuf#statusLogger}).
   139         *
   140         *  The Diags mask and event level are useful for handling the event, but
   141         *  are generally not recorded by the logger because they are not needed in
   142         *  decoding and displaying the event. A more suitable value to record is a
   143         *  `{@link Types#Event}`, which encodes the event ID and module ID. For
   144         *  example, the `{@link Log#EventRec}` type stores a `{@link Types#Event}`
   145         *  in its record definition. A `{@link Types#Event}` can be created using
   146         *  the `{@link Types#makeEvent}` API given the event ID and module ID.
   147         *
   148         *  The event ID value of `0` is used to indicate an event triggered by a
   149         *  call to one of the `{@link Log#print0 Log_print[0-6]}` methods. These
   150         *  methods take a format string rather than a `Log_Event` argument and,
   151         *  as a result, the event ID encoded in `evt` is `0` and the parameter
   152         *  `a1` is the format string.
   153         *
   154         *  Non-zero event IDs can also be used to access the `msg` string
   155         *  associated with the `{@link Log#EventDesc}` that originally
   156         *  defined the `Log` event.
   157         *  @p(code)
   158         *      Log_EventId id = Log_getEventId(evt));
   159         *      if (id != 0) {
   160         *          String msg = Text_ropeText(id);
   161         *          System_aprintf(msg, a1, a2, a3, a4);
   162         *      }
   163         *  @p
   164         *  This works because an event's ID is simply an offset into a table
   165         *  of characters (maintained by the `{@link Text}` module)
   166         *  containing the event's msg string.
   167         *
   168         *  The arguments a1, a2, etc. are parameters that are to be interpreted
   169         *  according to the message format string associated with `evt`.
   170         *
   171         *  @param(evt) event to be logged
   172         *  @param(mid) module ID of the module which logged the event
   173         *  @param(a1)  arbitrary argument passed by caller
   174         *
   175         *  @see Log#Event
   176         *  @see Log#EventDesc
   177         *  @see Text#ropeText
   178         *  @see Log#getEventId
   179         */
   180        Void write4(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2,
   181                    IArg a3, IArg a4);
   182
   183        /*!
   184         *  ======== write8 ========
   185         *  Process a log event with up to 8 arguments.
   186         *
   187         *  Same as `write4` except with 8 arguments rather than 4.
   188         *
   189         *  @see ILogger#write4()
   190         */
   191        Void write8(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2,
   192                    IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
   193    }
   194    /*
   195     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   196     */
   197


interface xdc.runtime.IModule
index URL

Base interface for all modules

  • DETAILS
  • INTERNAL
  • EXTERNAL
All modules share a common set of configuration parameters and methods. [ more ... ]
XDCspec summary sourced in xdc/runtime/IModule.xdc
interface IModule { ...
XDCspec declarations sourced in xdc/runtime/IModule.xdc
package xdc.runtime;
interface IModule {
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
}
DETAILS
All modules share a common set of configuration parameters and methods.
INTERNAL
This section provides a terse summary of the methods provided by every module for use within the module's implementation. Each method's prototype is shown along with a brief summary of its behavior. These methods are declared in the module's internal header which should always be included in any file referencing these functions. For a module named Mod the following statement includes this header.
      #include "package/internal/Mod.xdc.h"
In the protypes below, Mod refers to the module being implemented, embeddedObj is the name of field in the module's state structure that is either an embedded object field or an array of such objects, and fld is the name of a field declared in the module's state structure.
  // enter the module's gate
  IArg Mod_Module_enter(Gate_Handle gate);

  // leave the module's gate
  Mod_Module_leave(Gate_Handle, IArg);

  // return a pointer to the embeddedObj field
  Ptr Mod_Module_State_embeddedObj();

  // the value of the fld field of the module's state structure
  Mod_module->fld;    // fld is declared in module's .xdc file
EXTERNAL
This section provides a terse summary of the methods provided by every module for use by an application or other modules. Each method's prototype is shown along with a brief summary of its behavior. These methods are declared in the module's header which should always be included in any file referencing these functions. For a module named Mod in the package named a.b.c, the following statement includes this header.
      #include <a/b/c/Mod.h>
In the protypes below, IMod referes to some interface, Mod refers to a module that (optionally) inherits from IMod, and pkgName is the name of the package containing the interface IMod.
  // methods to operate on modules

      // return heap associated with this module
      IHeap_Handle Mod_Module_heap();

      // get Mod's module ID
      Types_ModuleId Mod_Module_id();

      // return TRUE if Mod's startup is complete
      Bool Mod_Module_startupDone();

      // type-safe conversion from an interface to an inheriting module
      // Returns NULL if the conversion is not valid
      Mod_Handle Mod_Handle_downCast(IMod_Handle handle);

      // type-safe conversion from a module to an interface it inherits from
      // Returns NULL if the conversion is not valid
      IMod_Handle Mod_Handle_upCast(Mod_Module_Handle handle);

  // methods to access the instances managed by Mod

      // return heap used to create instances
      IHeap_Handle Mod_Object_heap();

      // return count of static instances
      Int Mod_Object_count();

      // get the i'th instance object of an array of instance objects
      //
      // If the array reference is NULL, get the i'th statically created
      // instance object.
      Mod_Object *Mod_Object_get(Mod_Object *array, Int i);

      // get the first "live" runtime instance
      Mod_Object *Mod_Object_first();

      // get the next "live" runtime instance
      Mod_Object *Mod_Object_next(Mod_Object *obj);

  // methods that operate on instance handles

      // fill in buf structure with instance's label info, returns buf
      Types_Label *Mod_Handle_label(Mod_Handle inst, Types_Label *buf);

      // returns name of the instance inst, if it has one (otherwise NULL)
      String Mod_Handle_name(Mod_Handle inst);

      // type-safe conversion of module handle to interface handle
      // Returns NULL if the conversion is not valid
      IMod_Handle Mod_Handle_to_pkgName_IMod(Mod_Handle inst);

      // type-safe conversion of interface handle to module handle
      // Returns NULL if the conversion is not valid
      Mod_Handle Mod_Handle_from_pkgName_IMod(IMod_Handle inst);

      // get the module that created the handle
      Mod_Module Mod_Handle_to_Module(Mod_Handle inst);
metaonly config IModule.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/IModule.xdc
metaonly config Types.Common$ common$;
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 Thu, 08 Nov 2012 02:13:24 GMT


interface xdc.runtime.IModule

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== IModule.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== IModule ========
    19     *  Base interface for all modules
    20     *
    21     *  All modules share a common set of configuration parameters and methods.
    22     *
    23     *  @a(internal)
    24     *  This section provides a terse summary of the methods provided by every
    25     *  module for use within the module's implementation.  Each method's
    26     *  prototype is shown along with a brief summary of its behavior.
    27     *  These methods are declared in the module's internal header which should
    28     *  always be included in any file referencing these functions.  For a
    29     *  module named `Mod` the following statement includes this header.
    30     *  @p(code)
    31     *      #include "package/internal/Mod.xdc.h"
    32     *  @p
    33     *
    34     *  In the protypes below, `Mod` refers to the module being implemented,
    35     *  `embeddedObj` is the name of field in the module's state structure that
    36     *  is either an embedded object field or an array of such objects, and
    37     *  `fld` is the name of a field declared in the module's state structure.
    38     *
    39     *  @p(code)
    40     *  // enter the module's gate
    41     *  IArg Mod_Module_enter(Gate_Handle gate);
    42     *
    43     *  // leave the module's gate
    44     *  Mod_Module_leave(Gate_Handle, IArg);
    45     *
    46     *  // return a pointer to the embeddedObj field
    47     *  Ptr Mod_Module_State_embeddedObj();
    48     *
    49     *  // the value of the fld field of the module's state structure
    50     *  Mod_module->fld;    // fld is declared in module's .xdc file
    51     *  @p
    52     *
    53     *  @a(external)
    54     *  This section provides a terse summary of the methods provided by every
    55     *  module for use by an application or other modules.  Each method's
    56     *  prototype is shown along with a brief summary of its behavior.
    57     *  These methods are declared in the module's header which should always
    58     *  be included in any file referencing these functions.  For a
    59     *  module named `Mod` in the package named `a.b.c`, the following statement
    60     *  includes this header.
    61     *  @p(code)
    62     *      #include <a/b/c/Mod.h>
    63     *  @p
    64     *
    65     *  In the protypes below, `IMod` referes to some interface, `Mod` refers to
    66     *  a module that (optionally) inherits from `IMod`, and `pkgName` is the
    67     *  name of the package containing the interface `IMod`.
    68     *  @p(code)
    69     *
    70     *  // methods to operate on modules
    71     *
    72     *      // return heap associated with this module
    73     *      IHeap_Handle Mod_Module_heap();
    74     *
    75     *      // get Mod's module ID
    76     *      Types_ModuleId Mod_Module_id();
    77     *
    78     *      // return TRUE if Mod's startup is complete
    79     *      Bool Mod_Module_startupDone();
    80     *
    81     *      // type-safe conversion from an interface to an inheriting module
    82     *      // Returns NULL if the conversion is not valid
    83     *      Mod_Handle Mod_Handle_downCast(IMod_Handle handle);
    84     *
    85     *      // type-safe conversion from a module to an interface it inherits from
    86     *      // Returns NULL if the conversion is not valid
    87     *      IMod_Handle Mod_Handle_upCast(Mod_Module_Handle handle);
    88     *
    89     *  // methods to access the instances managed by Mod
    90     *
    91     *      // return heap used to create instances
    92     *      IHeap_Handle Mod_Object_heap();
    93     *
    94     *      // return count of static instances
    95     *      Int Mod_Object_count();
    96     *
    97     *      // get the i'th instance object of an array of instance objects
    98     *      //
    99     *      // If the array reference is NULL, get the i'th statically created
   100     *      // instance object.
   101     *      Mod_Object *Mod_Object_get(Mod_Object *array, Int i);
   102     *
   103     *      // get the first "live" runtime instance
   104     *      Mod_Object *Mod_Object_first();
   105     *
   106     *      // get the next "live" runtime instance
   107     *      Mod_Object *Mod_Object_next(Mod_Object *obj);
   108     *
   109     *  // methods that operate on instance handles
   110     *
   111     *      // fill in buf structure with instance's label info, returns buf
   112     *      Types_Label *Mod_Handle_label(Mod_Handle inst, Types_Label *buf);
   113     *
   114     *      // returns name of the instance inst, if it has one (otherwise NULL)
   115     *      String Mod_Handle_name(Mod_Handle inst);
   116     *
   117     *      // type-safe conversion of module handle to interface handle
   118     *      // Returns NULL if the conversion is not valid
   119     *      IMod_Handle Mod_Handle_to_pkgName_IMod(Mod_Handle inst);
   120     *
   121     *      // type-safe conversion of interface handle to module handle
   122     *      // Returns NULL if the conversion is not valid
   123     *      Mod_Handle Mod_Handle_from_pkgName_IMod(IMod_Handle inst);
   124     *
   125     *      // get the module that created the handle
   126     *      Mod_Module Mod_Handle_to_Module(Mod_Handle inst);
   127     *  @p
   128     */
   129    interface IModule {
   130
   131        /*!
   132         *  ======== common$ ========
   133         *  Common module configuration parameters
   134         *
   135         *  All modules have this configuration parameter.  Its name
   136         *  contains the '$' character to ensure it does not conflict with
   137         *  configuration parameters declared by the module.  This allows
   138         *  new configuration parameters to be added in the future without
   139         *  any chance of breaking existing modules.
   140         */
   141        metaonly config Types.Common$ common$;
   142
   143        /*!
   144         *  ======== viewNameMap$ ========
   145         *  Specifies the ROV views for the module.
   146         *  @_nodoc
   147         *
   148         *  Maps the view name to the RovView descriptor.
   149         */
   150        metaonly config Types.ViewInfo viewNameMap$[string];
   151
   152        /*!
   153         *  ======== rovShowRawTab$ ========
   154         *  @_nodoc
   155         */
   156        metaonly config Bool rovShowRawTab$ = true;
   157
   158        /*!
   159         *  ======== configNameMap$ ========
   160         *  @_nodoc
   161         */
   162        metaonly readonly config Types.ViewInfo configNameMap$[string] = [
   163            ["xdc.runtime/Memory", {viewType: "module", fields: [
   164                "common$.instanceHeap", "common$.instanceSection",
   165                "common$.memoryPolicy",
   166                "common$.namedModule", "common$.namedInstance",
   167                "common$.fxntab", "common$.romPatchTable"
   168            ]}],
   169            ["xdc.runtime/Diagnostics", {viewType: "module", fields: [
   170                "common$.logger",
   171                "common$.diags_ASSERT", "common$.diags_ENTRY",
   172                "common$.diags_EXIT", "common$.diags_INTERNAL",
   173                "common$.diags_LIFECYCLE",
   174                "common$.diags_STATUS",
   175                "common$.diags_USER1",
   176                "common$.diags_USER2", "common$.diags_USER3",
   177                "common$.diags_USER4", "common$.diags_USER5",
   178                "common$.diags_USER6", "common$.diags_INFO",
   179                "common$.diags_ANALYSIS"
   180            ]}],
   181            ["xdc.runtime/Concurrency", {viewType: "module", fields: [
   182                "common$.gate", "common$.gateParams"
   183            ]}],
   184            ["xdc.runtime/Log Events", {viewType: "module", fields: [
   185                "Log.Event"]}],
   186            ["xdc.runtime/Log Events", {viewType: "instance", fields: [
   187                "Log.Event"]}],
   188            ["xdc.runtime/Asserts", {viewType: "module", fields: [
   189                "Assert.Id"]}],
   190            ["xdc.runtime/Asserts", {viewType: "instance", fields: [
   191                "Assert.Id"]}],
   192            ["xdc.runtime/Errors", {viewType: "module", fields: [
   193                "Error.Id"]}],
   194            ["xdc.runtime/Errors", {viewType: "instance", fields: [
   195                "Error.Id"]}],
   196        ];
   197
   198        /*! @_nodoc */
   199        @System config Bits32 Module__diagsEnabled = 0;
   200        /*! @_nodoc */
   201        @System config Bits32 Module__diagsIncluded = 0;
   202        /*! @_nodoc */
   203        @System config Bits16* Module__diagsMask = null;
   204
   205        /*! @_nodoc */
   206        @System config Ptr Module__gateObj = null;
   207        /*! @_nodoc */
   208        @System config Ptr Module__gatePrms = null;
   209
   210        /*! @_nodoc */
   211        @System config Types.ModuleId Module__id = 0;
   212
   213        /*! @_nodoc */
   214        @System config Bool Module__loggerDefined = false;
   215        /*! @_nodoc */
   216        @System config Ptr Module__loggerObj = null;
   217        /*! @_nodoc */
   218        @System config Types.LoggerFxn0 Module__loggerFxn0 = null;
   219        /*! @_nodoc */
   220        @System config Types.LoggerFxn1 Module__loggerFxn1 = null;
   221        /*! @_nodoc */
   222        @System config Types.LoggerFxn2 Module__loggerFxn2 = null;
   223        /*! @_nodoc */
   224        @System config Types.LoggerFxn4 Module__loggerFxn4 = null;
   225        /*! @_nodoc */
   226        @System config Types.LoggerFxn8 Module__loggerFxn8 = null;
   227
   228        /*! @_nodoc
   229         *  This parameter is not used, but we keep it for forward compatibility.
   230         *  If we can ever break the forward compatibility for a release, we
   231         *  should remove this parameter.
   232         *
   233         *  Once we remove it, header files built with those tools would break
   234         *  older tools.
   235         */
   236        @System config Bool (*Module__startupDoneFxn)() = null;
   237
   238        /*! @_nodoc */
   239        @System config Int Object__count = 0;
   240        /*! @_nodoc */
   241        @System config IHeap.Handle Object__heap = null;
   242        /*! @_nodoc */
   243        @System config SizeT Object__sizeof = 0;
   244        /*! @_nodoc */
   245        @System config Ptr Object__table = null;
   246
   247        /*!
   248         *  ======== Handle__label ========
   249         *  Initialize a `Types.Label` from an instance handle
   250         *  @_nodoc
   251         *
   252         *  @param(obj) input instance handle
   253         *  @param(lab) pointer to `Label` struct to initialize from `obj`
   254         */
   255        @System Types.Label *Handle__label(Ptr obj, Types.Label *lab);
   256
   257        /*! @_nodoc */
   258        @System Bool Module__startupDone();
   259
   260        /*! @_nodoc */
   261        @System Ptr Object__create(Ptr __oa, SizeT __osz, Ptr __aa,
   262            const UChar *__pa, SizeT __psz, Error.Block *__eb);
   263        /*! @_nodoc */
   264        @System Void Object__delete(Ptr instp);
   265        /*! @_nodoc */
   266        @System Void Object__destruct(Ptr objp);
   267
   268        /*! @_nodoc */
   269        @System Ptr Object__get(Ptr oarr, Int i);
   270
   271        /*!
   272         *  ======== Object__first ========
   273         *  Return the first member of a list of dynamically created instances
   274         *  @_nodoc
   275         *
   276         *  @a(warning) The methods `first()` and `next()` are not thread-safe.
   277         *              The caller must ensure that no instances are removed or
   278         *              added while the list is being traversed.
   279         *
   280         *  @a(returns)
   281         *  Returns a handle to a first instance or `NULL` if there are no
   282         *  instances in the list.
   283         */
   284        @System Ptr Object__first();
   285
   286        /*!
   287         *  ======== Object__next ========
   288         *  Return the next instance from the list of dynamically created instances
   289         *  @_nodoc
   290         *
   291         *  @param(obj) handle to a dynamically created instance
   292         *
   293         *  @a(returns)
   294         *  Returns a handle to a first instance or `NULL` if there are no
   295         *  instances in the list
   296         */
   297        @System Ptr Object__next(Ptr obj);
   298
   299        /*! @_nodoc */
   300        @System Void Params__init(Ptr dst, Ptr src, SizeT psz, SizeT isz);
   301
   302        /*! @_nodoc */
   303        @System Bool Proxy__abstract();
   304        /*! @_nodoc */
   305        @System Ptr Proxy__delegate();
   306
   307    }
   308    /*
   309     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   310     */
   311


interface xdc.runtime.ISystemSupport
index URL

Interface to core system functions

Each embedded system requires implementations of these functions but the behavior of these functions varies depending on the context of the embedded system. For example, some systems will implement exit() as an infinite loop because the executable is designed to *never* exit.
XDCspec summary sourced in xdc/runtime/ISystemSupport.xdc
interface ISystemSupport { ...
// inherits xdc.runtime.IModule
XDCspec declarations sourced in xdc/runtime/ISystemSupport.xdc
package xdc.runtime;
interface ISystemSupport {
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    Void abort// Backend for System.abort()(String str);
    Void exit// Backend for System.exit()(Int stat);
    Void flush// Backend for System.flush()();
    Void putch// Backend for System.printf() and System.putch()(Char ch);
    Bool ready// Test if character output can proceed();
}
metaonly config ISystemSupport.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/ISystemSupport.xdc
metaonly config Types.Common$ common$;
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.
ISystemSupport.abort() // module-wide
index URL

Backend for System.abort()

XDCspec declarations sourced in xdc/runtime/ISystemSupport.xdc
Void abort(String str);
ARGUMENTS
str — message to output just prior to aborting
If non-NULL, this string should be output just prior to terminating.
DETAILS
This function is called by System.abort() prior to calling the ANSI C Standard library function abort(). So, to ensure the abort processing of the system's ANSI C Standard library completes, this function should return to its caller.
ISystemSupport.exit() // module-wide
index URL

Backend for System.exit()

XDCspec declarations sourced in xdc/runtime/ISystemSupport.xdc
Void exit(Int stat);
ARGUMENTS
stat — status value passed to all "atexit" handlers
This value is passed to all "atexit" handles bound via System.atexit(). If the application exits via the ANSI C Standard exit() function rather than via System_exit(), stat will be equal to System.STATUS_UNKNOWN.
DETAILS
This function is called as part the normal "atexit" processing performed by the ANSI C Standard Library's exit() function; System.exit() directly calls ANSI exit().
This function is called after all "atexit" handlers bound via System.atexit() are run and it is always called while "inside" the the System gate.
To ensure that all exit processing of the system's ANSI C Standard Library completes, this function should return to its caller. Exit handlers bound using the ANSI C Standard Library atexit() function may run before or after this function.
SEE
System.atexit
ISystemSupport.flush() // module-wide
index URL

Backend for System.flush()

XDCspec declarations sourced in xdc/runtime/ISystemSupport.xdc
Void flush();
DETAILS
This function is simply called by System_flush to output any characters buffered by the underlying SystemSupport module to an output device.
ISystemSupport.putch() // module-wide
index URL

Backend for System.printf() and System.putch()

XDCspec declarations sourced in xdc/runtime/ISystemSupport.xdc
Void putch(Char ch);
ARGUMENTS
ch — character to output
DETAILS
Output a single character. This function is called by System_printf() to write each character of formated output specified by its arguments.
ISystemSupport.ready() // module-wide
index URL

Test if character output can proceed

XDCspec declarations sourced in xdc/runtime/ISystemSupport.xdc
Bool ready();
DETAILS
This function is called by System prior to performing any character output. If this function returns FALSE, the System functions that would normally call putch() simply return (with an appropriate error status) without ever calling putch.
generated on Thu, 08 Nov 2012 02:13:24 GMT


interface xdc.runtime.ISystemSupport

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== ISystemSupport.xdc ========
    15     */
    16    package xdc.runtime;
    17
    18    /*!
    19     *  ======== ISystemSupport ========
    20     *  Interface to core system functions.
    21     *
    22     *  Each embedded system requires implementations of these functions but
    23     *  the behavior of these functions varies depending on the context of the
    24     *  embedded system.  For example, some systems will implement `exit()` as
    25     *  an infinite loop because the executable is designed to *never* exit.
    26     */
    27    interface ISystemSupport {
    28
    29        /*!
    30         *  ======== abort ========
    31         *  Backend for `{@link System#abort()}`
    32         *
    33         *  This function is called by `{@link System#abort()}` prior to calling
    34         *  the ANSI C Standard library function `abort()`.  So, to ensure the
    35         *  abort processing of the system's ANSI C Standard library completes,
    36         *  this function should return to its caller.
    37         *
    38         *  @param(str)  message to output just prior to aborting
    39         *
    40         *      If non-`NULL`, this string should be output just prior to
    41         *      terminating.
    42         */
    43        Void abort(String str);
    44
    45        /*!
    46         *  ======== exit ========
    47         *  Backend for `{@link System#exit()}`
    48         *
    49         *  This function is called as part the normal "atexit" processing
    50         *  performed by the ANSI C Standard Library's `exit()` function;
    51         *  `{@link System#exit()}` directly calls ANSI `exit()`.
    52         *
    53         *  This function is called after all "atexit" handlers bound via
    54         *  `{@link System#atexit()}` are run and it
    55         *  is always called while "inside" the the `System` gate.
    56         *
    57         *  To ensure that all exit processing of the system's ANSI C
    58         *  Standard Library completes, this function should return to its caller.
    59         *  Exit handlers bound using the ANSI C Standard Library `atexit()`
    60         *  function may run before or after this function.
    61         *
    62         *  @param(stat)    status value passed to all "atexit" handlers
    63         *
    64         *      This value is passed to all "atexit" handles bound via
    65         *      `{@link System#atexit()}`.  If the application exits via the
    66         *      ANSI C Standard `exit()` function rather than via System_exit(),
    67         *      `stat` will be equal to `{@link System#STATUS_UNKNOWN}`.
    68         *
    69         *  @see System#atexit
    70         */
    71        Void exit(Int stat);
    72
    73        /*!
    74         *  ======== flush ========
    75         *  Backend for `{@link System#flush()}`
    76         *
    77         *  This function is simply called by `{@link System#flush System_flush}`
    78         *  to output any characters buffered by the underlying `SystemSupport`
    79         *  module to an output device.
    80         */
    81        Void flush();
    82
    83        /*!
    84         *  ======== putch ========
    85         *  Backend for `{@link System#printf()}` and `{@link System#putch()}`
    86         *
    87         *  Output a single character.  This function is called by
    88         *  `{@link System#printf System_printf()}` to write each character
    89         *  of formated output specified by its arguments.
    90
    91         *
    92         *  @param(ch)  character to output
    93         */
    94        Void putch(Char ch);
    95
    96        /*!
    97         *  ======== ready ========
    98         *  Test if character output can proceed
    99         *
   100         *  This function is called by `{@link System}` prior to performing
   101         *  any character output.  If this function returns `FALSE`, the `System`
   102         *  functions that would normally call `putch()` simply return
   103         *  (with an appropriate error status) without ever calling
   104         *  `{@link #putch}`.
   105         */
   106        Bool ready();
   107    }
   108    /*
   109     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   110     */
   111


interface xdc.runtime.ITimestampClient
index URL

Timestamp Client Interface

This interface defines the methods used by client applications to get timestamp values. It is implemented by the Timestamp module.
XDCspec summary sourced in xdc/runtime/ITimestampClient.xdc
interface ITimestampClient { ...
// inherits xdc.runtime.IModule
XDCspec declarations sourced in xdc/runtime/ITimestampClient.xdc
package xdc.runtime;
interface ITimestampClient {
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    Bits32 get32// Return a 32-bit timestamp();
    Void get64// Return a 64-bit timestamp(Types.Timestamp64 *result);
    Void getFreq// Get the timestamp timer's frequency (in Hz)(Types.FreqHz *freq);
}
metaonly config ITimestampClient.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/ITimestampClient.xdc
metaonly config Types.Common$ common$;
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.
ITimestampClient.get32() // module-wide
index URL

Return a 32-bit timestamp

XDCspec declarations sourced in xdc/runtime/ITimestampClient.xdc
Bits32 get32();
RETURNS
Returns a 32-bit timestamp value. Use getFreq to convert this value into units of real time.
SEE
get64
ITimestampClient.get64() // module-wide
index URL

Return a 64-bit timestamp

XDCspec declarations sourced in xdc/runtime/ITimestampClient.xdc
Void get64(Types.Timestamp64 *result);
ARGUMENTS
result — pointer to 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide timestamp value where the current timestamp is written.
If the underlying hardware does not support 64-bit resolution, the hi field of result is always set to 0; see xdc.runtime.Types.Timestamp64. So, it is possible for the lo field to wrap around without any change to the hi field. Use getFreq to convert this value into units of real time.
SEE
get32
ITimestampClient.getFreq() // module-wide
index URL

Get the timestamp timer's frequency (in Hz)

XDCspec declarations sourced in xdc/runtime/ITimestampClient.xdc
Void getFreq(Types.FreqHz *freq);
ARGUMENTS
freq — pointer to a 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide frequency value where the timer's frequency (in Hz) is written; see xdc.runtime.Types.FreqHz. This function provides a way of converting timestamp values into units of real time.
SEE
get32, get64
generated on Thu, 08 Nov 2012 02:13:24 GMT


interface xdc.runtime.ITimestampClient

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== ITimestampClient.xdc ========
    15     */
    16    package xdc.runtime;
    17
    18    /*!
    19     *  ======== ITimestampClient ========
    20     *  Timestamp Client Interface
    21     *
    22     *  This interface defines the methods used by client applications to
    23     *  get timestamp values.  It is implemented by the
    24     *  `{@link xdc.runtime.Timestamp Timestamp}` module.
    25     */
    26    interface ITimestampClient {
    27
    28        /*!
    29         *  ======== get32 ========
    30         *  Return a 32-bit timestamp
    31         *
    32         *  @a(returns)
    33         *  Returns a 32-bit timestamp value.
    34         *  Use `{@link #getFreq}` to convert this value into units of real time.
    35         *
    36         *  @see #get64
    37         */
    38        Bits32 get32();
    39
    40        /*!
    41         *  ======== get64 ========
    42         *  Return a 64-bit timestamp
    43         *
    44         *  @param(result)  pointer to 64-bit result
    45         *
    46         *      This parameter is a pointer to a structure representing a 64-bit
    47         *      wide timestamp value where the current timestamp is written.
    48         *
    49         *      If the underlying hardware does not support 64-bit resolution, the
    50         *      `hi` field of `result` is always set to 0; see
    51         *      `{@link xdc.runtime.Types#Timestamp64}`.  So, it is possible for
    52         *      the `lo` field to wrap around without any change to the `hi` field.
    53         *      Use `{@link #getFreq}` to convert this value into units of real
    54         *      time.
    55         *
    56         *  @see #get32
    57         */
    58        Void get64(Types.Timestamp64 *result);
    59
    60        /*!
    61         *  ======== getFreq ========
    62         *  Get the timestamp timer's frequency (in Hz)
    63         *
    64         *  @param(freq)  pointer to a 64-bit result
    65         *
    66         *      This parameter is a pointer to a structure representing a 64-bit
    67         *      wide frequency value where the timer's frequency (in Hz)
    68         *      is written; see `{@link xdc.runtime.Types#FreqHz}`.
    69         *      This function provides a way of converting timestamp
    70         *      values into units of real time.
    71         *
    72         *  @see #get32
    73         *  @see #get64
    74         */
    75        Void getFreq(Types.FreqHz *freq);
    76    }
    77    /*
    78     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    79     */
    80


interface xdc.runtime.ITimestampProvider
index URL

Timestamp provider interface

This interface is implemented by platform-specific modules that "provide" underlying timestamp services for the xdc.runtime.Timestamp module. [ more ... ]
XDCspec summary sourced in xdc/runtime/ITimestampProvider.xdc
interface ITimestampProvider { ...
// inherits xdc.runtime.ITimestampClient
    // inherits xdc.runtime.IModule
XDCspec declarations sourced in xdc/runtime/ITimestampProvider.xdc
package xdc.runtime;
interface ITimestampProvider inherits ITimestampClient {
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    Bits32 get32// Return a 32-bit timestamp();
    Void get64// Return a 64-bit timestamp(Types.Timestamp64 *result);
    Void getFreq// Get the timestamp timer's frequency (in Hz)(Types.FreqHz *freq);
}
DETAILS
This interface is implemented by platform-specific modules that "provide" underlying timestamp services for the xdc.runtime.Timestamp module.
Only the xdc.runtime.Timestamp module and the xdc.runtime.ITimestampClient interface should be directly referenced by platform-independent applications.
This interface is part of a design pattern that includes the ITimestampClient interface and the Timestamp module. This pattern allows client code to:
  • use the platform-independent interfaces provided by either ITimestampClient and Timestamp and remain 100% portable
  • optionally leverage platform-specific capabilities of any module that implements ITimestampProvider and still always have access to the platform-independent methods specified by ITimestampClient (because ITimestampProvider inherits from ITimestampClient)
This pattern is in contrast to other "provider" interfaces that exist only to specify the methods necessary to enable "higher-level" modules; client code *never* accesses these provider interfaces directly, clients always only use the higher-level modules.
metaonly config ITimestampProvider.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/ITimestampProvider.xdc
metaonly config Types.Common$ common$;
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.
ITimestampProvider.get32() // module-wide
index URL

Return a 32-bit timestamp

XDCspec declarations sourced in xdc/runtime/ITimestampProvider.xdc
Bits32 get32();
RETURNS
Returns a 32-bit timestamp value. Use getFreq to convert this value into units of real time.
SEE
get64
ITimestampProvider.get64() // module-wide
index URL

Return a 64-bit timestamp

XDCspec declarations sourced in xdc/runtime/ITimestampProvider.xdc
Void get64(Types.Timestamp64 *result);
ARGUMENTS
result — pointer to 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide timestamp value where the current timestamp is written.
If the underlying hardware does not support 64-bit resolution, the hi field of result is always set to 0; see xdc.runtime.Types.Timestamp64. So, it is possible for the lo field to wrap around without any change to the hi field. Use getFreq to convert this value into units of real time.
SEE
get32
ITimestampProvider.getFreq() // module-wide
index URL

Get the timestamp timer's frequency (in Hz)

XDCspec declarations sourced in xdc/runtime/ITimestampProvider.xdc
Void getFreq(Types.FreqHz *freq);
ARGUMENTS
freq — pointer to a 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide frequency value where the timer's frequency (in Hz) is written; see xdc.runtime.Types.FreqHz. This function provides a way of converting timestamp values into units of real time.
SEE
get32, get64
generated on Thu, 08 Nov 2012 02:13:24 GMT


interface xdc.runtime.ITimestampProvider

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== ITimestampProvider.xdc ========
    15     */
    16    package xdc.runtime;
    17
    18    /*!
    19     *  ======== ITimestampProvider ========
    20     *  Timestamp provider interface
    21     *
    22     *  This interface is implemented by platform-specific modules that
    23     *  "provide" underlying timestamp services for the
    24     *  `{@link xdc.runtime.Timestamp}` module.
    25     *
    26     *  Only the `{@link xdc.runtime.Timestamp}` module and the
    27     *  `{@link xdc.runtime.ITimestampClient}` interface should be directly
    28     *  referenced by platform-independent applications.
    29     *
    30     *  This interface is part of a design pattern that includes the
    31     *  `ITimestampClient` interface and the `Timestamp` module.  This pattern
    32     *  allows client code to:
    33     *  @p(blist)
    34     *      - use the platform-independent interfaces provided by either
    35     *        `ITimestampClient` and `Timestamp` and remain 100% portable
    36     *      - optionally leverage platform-specific capabilities
    37     *        of any module that implements `ITimestampProvider` and still always
    38     *        have access to the platform-independent methods specified by
    39     *        `ITimestampClient` (because `ITimestampProvider` inherits from
    40     *        `ITimestampClient`)
    41     *  @p
    42     *  This pattern is in contrast to other "provider" interfaces that exist only
    43     *  to specify the methods necessary to enable "higher-level" modules; client
    44     *  code *never* accesses these provider interfaces directly, clients always
    45     *  only use the higher-level modules.
    46     */
    47    interface ITimestampProvider inherits ITimestampClient {
    48    }
    49    /*
    50     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    51     */
    52


module xdc.runtime.Log
index URL

Event logging manager

  • C synopsis
  • Individual elements
  • DETAILS
  • EXAMPLES
  • XDCscript usage
  • Individual elements
RTSC modules and the application code generate Log_Event events by calling the Log module's functions. The Log module then passes those events to an ILogger instance assigned to the event originating module, specified by that module's configuration parameter common$.logger. ILogger instances handle events, usually converting events to Log_EventRec records prior to recording, transmitting, or displaying them. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Log.xdc
#include <xdc/runtime/Log.h>
Functions
Void | Log_doPrint// Render an event as text via System_printf(Log_EventRec *evRec);
macro Void | Log_error0// Generate a Log "error event" with 0 arguments(String fmt);
macro Void | Log_error1// Generate a Log "error event" with 1 argument(String fmt, IArg a1);
macro Void | Log_error2// Generate a Log "error event" with 2 arguments(String fmt, IArg a1, IArg a2);
macro Void | Log_error3// Generate a Log "error event" with 3 arguments(String fmt, IArg a1, IArg a2, IArg a3);
macro Void | Log_error4// Generate a Log "error event" with 4 arguments(String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
macro Void | Log_error5// Generate a Log "error event" with 5 arguments(String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
macro Log_EventId | Log_getEventId// Get event ID of the specified (encoded) event(Log_Event evt);
macro Diags_Mask | Log_getMask// Get the Diags mask for the specified (encoded) event(Log_Event evt);
macro Void | Log_info0// Generate a Log "info event" with 0 arguments(String fmt);
macro Void | Log_info1// Generate a Log "info event" with 1 argument(String fmt, IArg a1);
macro Void | Log_info2// Generate a Log "info event" with 2 arguments(String fmt, IArg a1, IArg a2);
macro Void | Log_info3// Generate a Log "info event" with 3 arguments(String fmt, IArg a1, IArg a2, IArg a3);
macro Void | Log_info4// Generate a Log "info event" with 4 arguments(String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
macro Void | Log_info5// Generate a Log "info event" with 5 arguments(String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
macro Void | Log_print0// Generate a Log "print event" with 0 arguments(Diags_Mask mask, String fmt);
macro Void | Log_print1// Generate a Log "print event" with 1 argument(Diags_Mask mask, String fmt, IArg a1);
macro Void | Log_print2// Generate a Log "print event" with 2 arguments(Diags_Mask mask, String fmt, IArg a1, IArg a2);
macro Void | Log_print3// Generate a Log "print event" with 3 arguments(Diags_Mask mask, String fmt, IArg a1, IArg a2, IArg a3);
macro Void | Log_print4// Generate a Log "print event" with 4 arguments(Diags_Mask mask, String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
macro Void | Log_print5// Generate a Log "print event" with 5 arguments(Diags_Mask mask, String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
macro Void | Log_print6// Generate a Log "print event" with 6 arguments(Diags_Mask mask, String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6);
macro Void | Log_put0// Unconditionally put the specified Log event with 0 arguments(Log_Event evt, Types_ModuleId mid);
macro Void | Log_put1// Unconditionally put the specified Log event and 1 argument(Log_Event evt, Types_ModuleId mid, IArg a1);
macro Void | Log_put2// Unconditionally put the specified Log event and 2 arguments(Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
macro Void | Log_put4// Unconditionally put the specified Log event(Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
macro Void | Log_put8// Unconditionally put the specified Log event and 8 arguments(Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
macro Void | Log_warning0// Generate a Log "warning event" with 0 arguments(String fmt);
macro Void | Log_warning1// Generate a Log "warning event" with 1 argument(String fmt, IArg a1);
macro Void | Log_warning2// Generate a Log "warning event" with 2 arguments(String fmt, IArg a1, IArg a2);
macro Void | Log_warning3// Generate a Log "warning event" with 3 arguments(String fmt, IArg a1, IArg a2, IArg a3);
macro Void | Log_warning4// Generate a Log "warning event" with 4 arguments(String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
macro Void | Log_warning5// Generate a Log "warning event" with 5 arguments(String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
macro Void | Log_write0// Generate a Log event with 0 arguments(Log_Event evt);
macro Void | Log_write1// Generate a Log event with 1 argument(Log_Event evt, IArg a1);
macro Void | Log_write2// Generate a Log event with 2 arguments(Log_Event evt, IArg a1, IArg a2);
macro Void | Log_write3// Generate a Log event with 3 arguments(Log_Event evt, IArg a1, IArg a2, IArg a3);
macro Void | Log_write4// Generate a Log event with 4 arguments(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4);
macro Void | Log_write5// Generate a Log event with 5 arguments(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
macro Void | Log_write6// Generate a Log event with 6 arguments(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6);
macro Void | Log_write7// Generate a Log event with 7 arguments(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7);
macro Void | Log_write8// Generate a Log event with 8 arguments(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
Functions common to all target modules
 | Log_Module_getMask// Returns the diagnostics mask for this module, Log_Module_hasMask// Test whether this module has a diagnostics mask, Log_Module_heap// The heap from which this module allocates memory, Log_Module_id// Get this module's unique id, Log_Module_setMask// Set the diagnostics mask for this module, Log_Module_startupDone// Test if this module has completed startup
Defines
#define | Log_NUMARGS// Maximum number of arguments supported in Log events (Int)8
#define | Log_PRINTFID// The EventId for Log_print() events (Log_EventId)0
Typedefs
typedef opaque | Log_Event// Log event type;
typedef Types_RopeId | Log_EventId// Unique ID embedded in each Event;
typedef struct | Log_EventRec// The target representation of a recorded event ...
Constants
extern const Log_Event | Log_L_construct// Lifecycle event posted when an instance is constructed;
extern const Log_Event | Log_L_create// Lifecycle event posted when an instance is created;
extern const Log_Event | Log_L_delete// Lifecycle event posted when an instance is deleted;
extern const Log_Event | Log_L_destruct// Lifecycle event posted when an instance is destructed;
extern const Log_Event | Log_L_error// Error event posted by Log_errorX API;
extern const Log_Event | Log_L_info// Info event posted by Log_infoX API;
extern const Log_Event | Log_L_warning// Warning event posted by Log_warningX API;
DETAILS
RTSC modules and the application code generate Log_Event events by calling the Log module's functions. The Log module then passes those events to an ILogger instance assigned to the event originating module, specified by that module's configuration parameter common$.logger. ILogger instances handle events, usually converting events to Log_EventRec records prior to recording, transmitting, or displaying them.
All events generated by a target module are stored and displayed by an ILogger, examples of which are instances of xdc.runtime.LoggerBuf or xdc.runtime.LoggerSys. At runtime, modules generate events through this module, rather than invoking directly their ILoggers. By doing so, modules can be configured to use different ILogger implementations without any changes to their source code.
A logger instance can accept Log events from any module, but a module can put Log events to only one logger instance. There can be one or more logger instances in a system. All Log calls that are not in a module are controlled by the module xdc.runtime.Main. For example, top-level application code or any existing sources that simply call the Log or Assert methods implicitly use the logger associated with the Main module.
The generation of a Log event is controlled by a module's diagnostics mask, which is described in details in Diags. Each Log event is associated with a mask. Log events are generated only when a particular bit is set in both the Log event mask and the module's diagnostics mask. For example, a Log event mask with the USER1 bit set is generated only when the USER1 bit is also set in the module's diagnostics mask.
There are two ways to generate Log events:
  • Log_write(), which is tailored for module writers and takes full advantage of the XDC configuration model. For example, the message string associated with the Log event need not be a part of the final application, significantly reducing the "footprint overhead" of embedding diagnostics in deployed systems. The Log_write[0-8]() functions allow up to 8 values to be passed to the logger. They expect the logger to handle any formatting. A Log event type allows you to specify the type of event.
  • Log_print(), which is designed for arbitrary C code. The Log_print[0-6]() functions allow up to 6 values to be passed along with a printf-like format string to the logger. They handle printf-style formatting.
Both functions are controlled by the module's diagnostics mask. Their storage or output is defined by the logger that is assigned to the module that calls the Log methods or to the xdc.runtime.Main module if the caller is not part of a module.
The Log function call sites are implemented in such a way that an optimizer can completely eliminate Log code from the program if the Log functions have been permanently disabled at configuration time. If the Log functions are permanently turned on at configuration time, then the optimizer can eliminate all runtime conditional checking and simply invoke the Log functions directly. Runtime checking is performed only when the Log functions are configured to be runtime modifiable.
The Log calls can also be completely removed by defining the symbol xdc_runtime_Log_DISABLE_ALL. This can be done on the compile line, e.g. -Dxdc_runtime_Log_DISABLE_ALL. This will completely remove the Log statements from any code compiled with this flag, regardless of the application's logging configuration or your compiler's optimization settings.
It is also possible to remove all logging except for Log_error, Log_warning, or Log_info statements. This is done by first defining xdc_runtime_Log_DISABLE_ALL, followed by defining one or more of the symbols below to leave that type of logging enabled:
  • xdc_runtime_Log_ENABLE_ERROR
  • xdc_runtime_Log_ENABLE_WARNING
  • xdc_runtime_Log_ENABLE_INFO
For example, to disable all Log statements except for Log_error, add the following to the compile line:
      -Dxdc_runtime_Log_DISABLE_ALL -Dxdc_runtime_Log_ENABLE_ERROR
EXAMPLES
Example 1: The following example defines a Log event, uses that Log event in a module, and configures the program to generate the Log event. In this example, both USER1 and USER2 bits are set in the event mask. This means that if either bit is set in the module's diagnostics mask, then the Log event will be generated.
This is a part of the XDC specification file for the Mod module (Mod.xdc):
  import xdc.runtime.Diags;
  import xdc.runtime.Log;

  config Log.Event L_someEvent = {
      mask: Diags.USER1 | Diags.USER2,
      level: Diags.LEVEL1,
      msg: "my log event message, arg1: 0x%x, arg2: 0x%x"
  };
This is a part of the C code implementation of the Mod module:
  #include <xdc/runtime/Log.h>
  UInt x, y;

  Log_write2(Mod_L_someEvent, (IArg)x, (IArg)y);
The following configuration script demonstrates how the application might control the Log statements embedded in the Mod module at configuration time. In this case, the configuration script arranges for the Log statements within the Mod module (shown above) to always generate events. Without these configuration statements, no Log events would be generated by this module.
This is part of the XDC configuration file for the application:
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var LoggerSys = xdc.useModule('xdc.runtime.LoggerSys');
  var Mod = xdc.useModule('my.pkg.Mod');
  Mod.common$.diags_USER1 = Diags.ALWAYS_ON;
  Mod.common$.logger = LoggerSys.create();
Example 2: The following XDC configuration statements turn on enter and exit logging at configuration time for a module. Without any other changes in the runtime code, every time a module Mod's function is being called or exits, an event will be logged.
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var Mod = xdc.useModule('my.pkg.Mod');

  Mod.common$.diags_ENTER = Diags.ALWAYS_ON;
  Mod.common$.diags_EXIT = Diags.ALWAYS_ON;
Example 3: The following example configures a module to support enter and exit logging, but defers the actual activation and deactivation of the logging until runtime. See the Diags_setMask() function for details on specifying the control string.
This is a part of the XDC configuration file for the application:
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var Mod = xdc.useModule('my.pkg.Mod');

  Mod.common$.diags_ENTER = Diags.RUNTIME_OFF;
  Mod.common$.diags_EXIT = Diags.RUNTIME_OFF;
This is a part of the C code for the application:
  // turn on enter and exit logging in the module
  Diags_setMask("my.pkg.Mod+EX");

  // turn off enter and exit logging in the module
  Diags_setMask("my.pkg.Mod-EX");
const Log_NUMARGS
index URL

Maximum number of arguments supported in Log events

C synopsis target-domain
#define Log_NUMARGS (Int)8
const Log_PRINTFID
index URL

The EventId for Log_print() events

C synopsis target-domain
#define Log_PRINTFID (Log_EventId)0
typedef Log_Event
index URL

Log event type

C synopsis target-domain
typedef opaque Log_Event;
DETAILS
An Event is represented on the target as a 32-bit value that can be decoded offline to recover the Event information defined in a corresponding metaonly EventDesc. In addition, Events may be decoded at runtime via methods provided in this module; see getMask and getEventId.
When an event is "raised" a Types_Event is created which has the same event ID as the Log_Event but also encodes the module ID of the caller. This new event is passed to the underlying ILogger module along with any arguments associated with the event.
SEE
getMask, getEventId
typedef Log_EventId
index URL

Unique ID embedded in each Event

C synopsis target-domain
typedef Types_RopeId Log_EventId;
DETAILS
This ID must be used to compare two Events for equality. Event ids are not guaranteed to remain constant between different configurations of an application. For example, adding a module may cause the event ids of another module to change.
However, event ids declared by a module are guaranteed to be consecutive values starting from the first declared Log_Event and increasing to the last declared event. As a result, clients of a module can efficiently test ranges of events and modules can add new events, such as internal trace events, without breaking clients; simply be careful to add new events after any existing events in you module's .xdc specification.
SEE
getEventId, Event
struct Log_EventRec
index URL

The target representation of a recorded event

C synopsis target-domain
typedef struct Log_EventRec {
     Types_Timestamp64 tstamp;
    // time event was written
    Bits32 serial;
    // serial number of event
     Types_Event evt;
    // target encoding of an Event
    IArg arg[Log_NUMARGS];
    // arguments passed via Log_write/print
} Log_EventRec;
DETAILS
This structure defines how events are recorded on the target.
config Log_L_construct // module-wide
index URL

Lifecycle event posted when an instance is constructed

C synopsis target-domain
extern const Log_Event Log_L_construct;
config Log_L_create // module-wide
index URL

Lifecycle event posted when an instance is created

C synopsis target-domain
extern const Log_Event Log_L_create;
config Log_L_delete // module-wide
index URL

Lifecycle event posted when an instance is deleted

C synopsis target-domain
extern const Log_Event Log_L_delete;
config Log_L_destruct // module-wide
index URL

Lifecycle event posted when an instance is destructed

C synopsis target-domain
extern const Log_Event Log_L_destruct;
config Log_L_error // module-wide
index URL

Error event posted by Log_errorX API

C synopsis target-domain
extern const Log_Event Log_L_error;
DETAILS
This event is marked as a STATUS event and given the priority level of ERROR.
This event prints the Log call site (%$F) and a format string (%$S) which is recursively formatted with any additional arguments.
config Log_L_info // module-wide
index URL

Info event posted by Log_infoX API

C synopsis target-domain
extern const Log_Event Log_L_info;
DETAILS
This event is marked as an INFO event. The event priority is not specified in the event definition. Rather, it is specified as an argument to the Log_infoX APIs.
This event prints the Log call site (%$F) and a format string (%$S) which is recursively formatted with any addition arguments.
config Log_L_warning // module-wide
index URL

Warning event posted by Log_warningX API

C synopsis target-domain
extern const Log_Event Log_L_warning;
DETAILS
This event is marked as a STATUS event and given the priority level of WARNING.
This event prints the Log call site (%$F) and a format string (%$S) which is recursively formatted with any addition arguments.
Log_doPrint() // module-wide
index URL

Render an event as text via System_printf

C synopsis target-domain
Void Log_doPrint(Log_EventRec *evRec);
ARGUMENTS
evRec — a nonNULL pointer to an initialized Log_EventRec structure to be formated via System_printf.
DETAILS
This method is not gated and may make more than one call to System_printf. This utility method is typically used within the implementation of a logger which initializes Log_EventRec structures based on Log events produced by the application.
Log_error0() // module-wide
index URL

Generate a Log "error event" with 0 arguments

C synopsis target-domain
macro Void Log_error0(String fmt);
SEE
error5
Log_error1() // module-wide
index URL

Generate a Log "error event" with 1 argument

C synopsis target-domain
macro Void Log_error1(String fmt, IArg a1);
SEE
error5
Log_error2() // module-wide
index URL

Generate a Log "error event" with 2 arguments

C synopsis target-domain
macro Void Log_error2(String fmt, IArg a1, IArg a2);
SEE
error5
Log_error3() // module-wide
index URL

Generate a Log "error event" with 3 arguments

C synopsis target-domain
macro Void Log_error3(String fmt, IArg a1, IArg a2, IArg a3);
SEE
error5
Log_error4() // module-wide
index URL

Generate a Log "error event" with 4 arguments

C synopsis target-domain
macro Void Log_error4(String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
SEE
error5
Log_error5() // module-wide
index URL

Generate a Log "error event" with 5 arguments

C synopsis target-domain
macro Void Log_error5(String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
ARGUMENTS
fmt — a reference to a constant error string / fmt string
a1 — value for an additional parameter (e.g. an error code)
a2 — value for an additional parameter
a3 — value for an additional parameter
a4 — value for an additional parameter
a5 — value for an additional parameter
DETAILS
The Log_error APIs are intended to allow users to easily log error events in their code. Similar to the Log_print APIs, Log_error does not require that you define an event. You simply pass an informative error string which can optionally be formatted with additional arguments. The error is logged with the predefined event L_error.
Log_error prepends a string to the message which identifies it as an ERROR and specifies the filename and line number of the Log_error call site. A simple example:
  Log_error0("Invalid argument");
This event will be formatted as (assuming that the above call was line 35 of "MyCode.c")
  ERROR at "MyCode.c", line 35: Invalid argument
Users may provide additional information in the error event, such as a predefined error code or details of the error. These additional values will be used to format the string passed to Log_error.
Log_error does not use a variable length argument list--you must call the appropriate Log_errorX API based on the number of arguments.
SEE
for information about format strings.
EXAMPLES
The following example demonstrates a typical usage.
  Int myArg;

  Log_error1("Invalid argument: %d", myArg);
The above event is formatted as, for example:
  ERROR: "MyCode.c", line 35: Invalid argument: -1
Log_getEventId() // module-wide
index URL

Get event ID of the specified (encoded) event

C synopsis target-domain
macro Log_EventId Log_getEventId(Log_Event evt);
ARGUMENTS
evt — the Log event encoding a mask and event ID
DETAILS
This method is used to compare "known" Log events with "raised" Types_Event.
RETURNS
event ID of the specified event
SEE
Types.getEventId
Log_getMask() // module-wide
index URL

Get the Diags mask for the specified (encoded) event

C synopsis target-domain
macro Diags_Mask Log_getMask(Log_Event evt);
ARGUMENTS
evt — the Log event encoding a mask and event ID
RETURNS
Diags mask for the specified event
Log_info0() // module-wide
index URL

Generate a Log "info event" with 0 arguments

C synopsis target-domain
macro Void Log_info0(String fmt);
SEE
info5
Log_info1() // module-wide
index URL

Generate a Log "info event" with 1 argument

C synopsis target-domain
macro Void Log_info1(String fmt, IArg a1);
SEE
info5
Log_info2() // module-wide
index URL

Generate a Log "info event" with 2 arguments

C synopsis target-domain
macro Void Log_info2(String fmt, IArg a1, IArg a2);
SEE
info5
Log_info3() // module-wide
index URL

Generate a Log "info event" with 3 arguments

C synopsis target-domain
macro Void Log_info3(String fmt, IArg a1, IArg a2, IArg a3);
SEE
info5
Log_info4() // module-wide
index URL

Generate a Log "info event" with 4 arguments

C synopsis target-domain
macro Void Log_info4(String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
SEE
info5
Log_info5() // module-wide
index URL

Generate a Log "info event" with 5 arguments

C synopsis target-domain
macro Void Log_info5(String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
ARGUMENTS
fmt — reference to a constant event string / fmt string
a1 — value for an additional parameter (e.g. an event code)
a2 — value for an additional parameter
a3 — value for an additional parameter
a4 — value for an additional parameter
a5 — value for an additional parameter
DETAILS
The Log_info APIs are provided for easily logging generic "informational" events with call site information. They are similar to the Log_print APIs in that they do not require you to define an event-- you simply pass an informative printf-style string which can optionally be formatted with additional arguments. The info record is logged with the predefined event 'L_info'.
The Log_info APIs log the L_info event which uses the 'INFO' diags category. They do not allow you to specify an event priority.
Log_info prepends the filename and line number of the call site to the message.
EXAMPLES
The following example demonstrates a typical usage.
  Int load;

  Log_info1("Current load: %d", load);
The above event is formatted as, for example:
  "MyCode.c", line 15: Current load: 25
Log_print0() // module-wide
index URL

Generate a Log "print event" with 0 arguments

C synopsis target-domain
macro Void Log_print0(Diags_Mask mask, String fmt);
SEE
print6
Log_print1() // module-wide
index URL

Generate a Log "print event" with 1 argument

C synopsis target-domain
macro Void Log_print1(Diags_Mask mask, String fmt, IArg a1);
SEE
print6
Log_print2() // module-wide
index URL

Generate a Log "print event" with 2 arguments

C synopsis target-domain
macro Void Log_print2(Diags_Mask mask, String fmt, IArg a1, IArg a2);
SEE
print6
Log_print3() // module-wide
index URL

Generate a Log "print event" with 3 arguments

C synopsis target-domain
macro Void Log_print3(Diags_Mask mask, String fmt, IArg a1, IArg a2, IArg a3);
SEE
print6
Log_print4() // module-wide
index URL

Generate a Log "print event" with 4 arguments

C synopsis target-domain
macro Void Log_print4(Diags_Mask mask, String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
SEE
print6
Log_print5() // module-wide
index URL

Generate a Log "print event" with 5 arguments

C synopsis target-domain
macro Void Log_print5(Diags_Mask mask, String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
SEE
print6
Log_print6() // module-wide
index URL

Generate a Log "print event" with 6 arguments

C synopsis target-domain
macro Void Log_print6(Diags_Mask mask, String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6);
ARGUMENTS
mask — enable bits and optional detail level for this event
fmt — a printf style format string
a1 — value for first format conversion character
a2 — value for second format conversion character
a3 — value for third format conversion character
a4 — value for fourth format conversion character
a5 — value for fifth format conversion character
a6 — value for sixth format conversion character
DETAILS
As a convenience to C (as well as assembly language) programmers, the Log module provides a variation of the ever-popular printf function. The print[0-6] functions generate a Log "print event" and route it to the current module's logger.
The arguments passed to print[0-6] may be characters, integers, strings, or pointers. However, because the declared type of the arguments is IArg, all pointer arguments must be cast to an IArg type. IArg is an integral type large enough to hold any pointer or an int. So, casting a pointer to an IArg does not cause any loss of information and C's normal integer conversions make the cast unnecessary for integral arguments.
The format string can use the following conversion characters. However, it is important to recall that all arguments referenced by these conversion characters have been converted to an IArg prior to conversion; so, the use of "length modifiers" should be avoided.
  Conversion Character    Description
  ------------------------------------------------
  %c                      Character
  %d                      Signed integer
  %u                      Unsigned integer
  %x                      Unsigned hexadecimal integer
  %o                      Unsigned octal integer
  %s                      Character string
  %p                      Pointer
  %f                      Single precision floating point (float)
Format strings, while very convenient, are a well known source of portability problems: each format specification must precisely match the types of the arguments passed. Underlying "printf" functions use the format string to determine how far to advance through their argument list. For targets where pointer types and integers are the same size there are no problems. However, suppose a target's pointer type is larger than its integer type. In this case, because integer arguments are widened to be of type IArg, a format specification of "%d" causes an underlying printf() implementation to read the extended part of the integer argument as part of the next argument(!).
To get around this problem and still allow the use of "natural" format specifications (e.g., %d and %x with optional width specifications), System.aprintf() is used which assumes that all arguments have been widened to be of type IArg.
See System.printf for complete details.
The %f format specifier is used to print a single precision float value. Note that %f assumes that sizeof(Float) <= sizeof(IArg). Most clients that interpret float values expect that they are represented in IEEE 754 floating point format. Therefore, it is recommended that the float values be converted into that format prior to supplying the values to Log functions in cases where targets do not generate the float values in IEEE 754 floating point format by default.
The first argument to a Log_print call is the diags category to be associated with the event.
It is also possible to associate an event level with the event to enable filtering of events based on event level. Conceptually, it is best to regard the event level as completely separate from the event's diags category; however, the priority value actually occupies a part of the diags mask. For this reason, it is possible to specify an event level by OR'ing the level with the diags mask. For example, to print an Diags_INFO event of Diags_LEVEL2, you'd simply write: (Diags_INFO | Diags_LEVEL2)
Specifying an event level is optional. Log_print calls which do not specify a level will receive the highest priority by default.
EXAMPLES
The following example demonstrates a typical usage.
  String  list[];
  UInt    i;

  Log_print2(Diags_USER2, "list[%u] = %s\n", i, (IArg)list[i]);
Note that the IArg cast above is only necessary for pointer arguments; C's normal parameter conversions implicitly convert integral arguments.
To simplify the conversion from float arguments to IArg, the standard header xdc/std.h provides a macro, named floatToArg(), to do this conversion in a type safe manner. So, the following statement will print "float = 2.3456":
    Log_print1(Diags_USER1, "float = %f", floatToArg(2.34567));
Note that, if you are formatting events on the target, you must also add support for floating point to ASCII conversion to System.printf; for more information, see the System.extendedFormats reference documenation. For example:
      var System = xdc.useModule('xdc.runtime.System');
      System.extendedFormats = "%f";
Log_put0() // module-wide
index URL

Unconditionally put the specified Log event with 0 arguments

C synopsis target-domain
macro Void Log_put0(Log_Event evt, Types_ModuleId mid);
SEE
put4
Log_put1() // module-wide
index URL

Unconditionally put the specified Log event and 1 argument

C synopsis target-domain
macro Void Log_put1(Log_Event evt, Types_ModuleId mid, IArg a1);
SEE
put4
Log_put2() // module-wide
index URL

Unconditionally put the specified Log event and 2 arguments

C synopsis target-domain
macro Void Log_put2(Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
SEE
put4
Log_put4() // module-wide
index URL

Unconditionally put the specified Log event

C synopsis target-domain
macro Void Log_put4(Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
ARGUMENTS
evt — the Log event to put into the log
mid — module ID of the module putting the event
a1 — value for first format conversion character
a2 — value for second format conversion character
a3 — value for third format conversion character
a4 — value for fourth format conversion character
DETAILS
This method unconditionally puts the specified Event evt into the log. The Types.ModuleId mid should be the module ID of the module which is putting the event.
SEE
put8
Log_put8() // module-wide
index URL

Unconditionally put the specified Log event and 8 arguments

C synopsis target-domain
macro Void Log_put8(Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
SEE
put4
Log_warning0() // module-wide
index URL

Generate a Log "warning event" with 0 arguments

C synopsis target-domain
macro Void Log_warning0(String fmt);
SEE
warning5
Log_warning1() // module-wide
index URL

Generate a Log "warning event" with 1 argument

C synopsis target-domain
macro Void Log_warning1(String fmt, IArg a1);
SEE
warning5
Log_warning2() // module-wide
index URL

Generate a Log "warning event" with 2 arguments

C synopsis target-domain
macro Void Log_warning2(String fmt, IArg a1, IArg a2);
SEE
warning5
Log_warning3() // module-wide
index URL

Generate a Log "warning event" with 3 arguments

C synopsis target-domain
macro Void Log_warning3(String fmt, IArg a1, IArg a2, IArg a3);
SEE
warning5
Log_warning4() // module-wide
index URL

Generate a Log "warning event" with 4 arguments

C synopsis target-domain
macro Void Log_warning4(String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
SEE
warning5
Log_warning5() // module-wide
index URL

Generate a Log "warning event" with 5 arguments

C synopsis target-domain
macro Void Log_warning5(String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
ARGUMENTS
fmt — reference to a constant warning string / fmt string
a1 — value for an additional parameter (e.g. a warning code)
a2 — value for an additional parameter
a3 — value for an additional parameter
a4 — value for an additional parameter
a5 — value for an additional parameter
DETAILS
The Log_warning APIs provide the same features as the Log_error APIs, but are used to specifically log "warning" events.
The Log_warning APIs are equivalent to the Log_error APIs except that they use the predefined L_warning event. Log_warning prepends a string to the message which identifies it as a WARNING and specifies the filename and line number of the Log_warning call site.
SEE
error5
EXAMPLES
The following example demonstrates a typical usage.
  Int myArg;

  Log_warning1("Value may be too high: %d", myArg);
The above event is formatted as:
  WARNING: "MyCode.c", line 50: Value may be too high: 4096
Log_write0() // module-wide
index URL

Generate a Log event with 0 arguments

C synopsis target-domain
macro Void Log_write0(Log_Event evt);
SEE
write8
Log_write1() // module-wide
index URL

Generate a Log event with 1 argument

C synopsis target-domain
macro Void Log_write1(Log_Event evt, IArg a1);
SEE
write8
Log_write2() // module-wide
index URL

Generate a Log event with 2 arguments

C synopsis target-domain
macro Void Log_write2(Log_Event evt, IArg a1, IArg a2);
SEE
write8
Log_write3() // module-wide
index URL

Generate a Log event with 3 arguments

C synopsis target-domain
macro Void Log_write3(Log_Event evt, IArg a1, IArg a2, IArg a3);
SEE
write8
Log_write4() // module-wide
index URL

Generate a Log event with 4 arguments

C synopsis target-domain
macro Void Log_write4(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4);
SEE
write8
Log_write5() // module-wide
index URL

Generate a Log event with 5 arguments

C synopsis target-domain
macro Void Log_write5(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
SEE
write8
Log_write6() // module-wide
index URL

Generate a Log event with 6 arguments

C synopsis target-domain
macro Void Log_write6(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6);
SEE
write8
Log_write7() // module-wide
index URL

Generate a Log event with 7 arguments

C synopsis target-domain
macro Void Log_write7(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7);
SEE
write8
Log_write8() // module-wide
index URL

Generate a Log event with 8 arguments

C synopsis target-domain
macro Void Log_write8(Log_Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
ARGUMENTS
evt — the Log event to write
a1 — value for first format conversion character
a2 — value for second format conversion character
a3 — value for third format conversion character
a4 — value for fourth format conversion character
a5 — value for fifth format conversion character
a6 — value for sixth format conversion character
a7 — value for seventh format conversion character
a8 — value for eighth format conversion character
DETAILS
If the mask in the specified Log event has any bit set which is also set in the current module's diagnostics mask, then this call to write will "raise" the given Log event.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Log_Module_id();
// Get this module's unique id
Bool Log_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Log_Module_heap();
// The heap from which this module allocates memory
Bool Log_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Log_Module_getMask();
// Returns the diagnostics mask for this module
Void Log_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Log.xdc
var Log = xdc.useModule('xdc.runtime.Log');
module-wide constants & types
    const Log.NUMARGS// Maximum number of arguments supported in Log events = 8;
    const Log.PRINTFID// The EventId for Log_print() events = 0;
    var obj = new Log.EventDesc// Log event descriptor;
        obj.mask// event enable mask = Bits16 ...
        obj.level// event level relative to other events = Diags.EventLevel ...
        obj.msg// event "printf" message format string = String ...
    var obj = new Log.EventRec// The target representation of a recorded event;
        obj.tstamp// time event was written = Types.Timestamp64 ...
        obj.serial// serial number of event = Bits32 ...
        obj.evt// target encoding of an Event = Bits32 ...
        obj.arg// arguments passed via Log_write/print = IArg[Log.NUMARGS] ...
module-wide config parameters
     Log.L_construct// Lifecycle event posted when an instance is constructed = Log.EventDesc {
        mask: Diags.LIFECYCLE,
        msg: "<-- construct: %p('%s')"
    };
     Log.L_create// Lifecycle event posted when an instance is created = Log.EventDesc {
        mask: Diags.LIFECYCLE,
        msg: "<-- create: %p('%s')"
    };
     Log.L_delete// Lifecycle event posted when an instance is deleted = Log.EventDesc {
        mask: Diags.LIFECYCLE,
        msg: "--> delete: (%p)"
    };
     Log.L_destruct// Lifecycle event posted when an instance is destructed = Log.EventDesc {
        mask: Diags.LIFECYCLE,
        msg: "--> destruct: (%p)"
    };
     Log.L_error// Error event posted by Log_errorX API = Log.EventDesc {
        mask: Diags.STATUS,
        level: Diags.ERROR,
        msg: "ERROR: %$F%$S"
    };
     Log.L_info// Info event posted by Log_infoX API = Log.EventDesc {
        mask: Diags.INFO,
        msg: "%$F%$S"
    };
     Log.L_warning// Warning event posted by Log_warningX API = Log.EventDesc {
        mask: Diags.STATUS,
        level: Diags.WARNING,
        msg: "WARNING: %$F%$S"
    };
     Log.common$// Common module configuration parameters = Types.Common$ undefined;
const Log.NUMARGS
index URL

Maximum number of arguments supported in Log events

XDCscript usage meta-domain
const Log.NUMARGS = 8;
C SYNOPSIS
Log_NUMARGS
const Log.PRINTFID
index URL

The EventId for Log_print() events

XDCscript usage meta-domain
const Log.PRINTFID = 0;
C SYNOPSIS
Log_PRINTFID
metaonly struct Log.EventDesc
index URL

Log event descriptor

XDCscript usage meta-domain
var obj = new Log.EventDesc;
    obj.mask = Bits16 ...
    // event enable mask
    obj.level = Diags.EventLevel ...
    // event level relative to other events
    obj.msg = String ...
    // event "printf" message format string
DETAILS
Each Log event is defined by a Log event descriptor.
The mask defines which bits in the module's diagnostics mask enable this Log event. Events "posted" via Log_write are only written to the underlying logger if one of the mask's bits matches the caller's module diagnostics settings (see xdc.runtime.Types.common$).
The 'level' defines the event level of the event. While the diags bits selected in the 'mask' signify the "category" of the event (e.g. Entry/Exit, Analysis, Info), the 'level' field allows you to assign a "priority" or "detail level" to the event relative to other events in that category. There are four event levels defined by 'xdc.runtime.Diags.EventLevel'.
Filtering of events by level is handled by the ILogger implementation. ILogger implementations which also implement the IFilterLogger interface support filtering of events based on priority level.
Specifying an event level is optional. Events that don't specify a level will receive Diags.LEVEL1 by default, making them the highest priority and ensuring that they will not inadvertently be filtered out by level-based filtering.
The msg defines a printf style format string that defines how to render the arguments passed along the event in a Log_write call. For a description of the allowable format strings see print6.
SEE
write8, print6
struct Log.EventRec
index URL

The target representation of a recorded event

XDCscript usage meta-domain
var obj = new Log.EventRec;
    obj.tstamp = Types.Timestamp64 ...
    // time event was written
    obj.serial = Bits32 ...
    // serial number of event
    obj.evt = Bits32 ...
    // target encoding of an Event
    obj.arg = IArg[Log.NUMARGS] ...
    // arguments passed via Log_write/print
DETAILS
This structure defines how events are recorded on the target.
C SYNOPSIS
Log_EventRec
config Log.L_construct // module-wide
index URL

Lifecycle event posted when an instance is constructed

XDCscript usage meta-domain
Log.L_construct = Log.EventDesc {
    mask: Diags.LIFECYCLE,
    msg: "<-- construct: %p('%s')"
};
C SYNOPSIS
Log_L_construct
config Log.L_create // module-wide
index URL

Lifecycle event posted when an instance is created

XDCscript usage meta-domain
Log.L_create = Log.EventDesc {
    mask: Diags.LIFECYCLE,
    msg: "<-- create: %p('%s')"
};
C SYNOPSIS
Log_L_create
config Log.L_delete // module-wide
index URL

Lifecycle event posted when an instance is deleted

XDCscript usage meta-domain
Log.L_delete = Log.EventDesc {
    mask: Diags.LIFECYCLE,
    msg: "--> delete: (%p)"
};
C SYNOPSIS
Log_L_delete
config Log.L_destruct // module-wide
index URL

Lifecycle event posted when an instance is destructed

XDCscript usage meta-domain
Log.L_destruct = Log.EventDesc {
    mask: Diags.LIFECYCLE,
    msg: "--> destruct: (%p)"
};
C SYNOPSIS
Log_L_destruct
config Log.L_error // module-wide
index URL

Error event posted by Log_errorX API

XDCscript usage meta-domain
Log.L_error = Log.EventDesc {
    mask: Diags.STATUS,
    level: Diags.ERROR,
    msg: "ERROR: %$F%$S"
};
DETAILS
This event is marked as a STATUS event and given the priority level of ERROR.
This event prints the Log call site (%$F) and a format string (%$S) which is recursively formatted with any additional arguments.
C SYNOPSIS
Log_L_error
config Log.L_info // module-wide
index URL

Info event posted by Log_infoX API

XDCscript usage meta-domain
Log.L_info = Log.EventDesc {
    mask: Diags.INFO,
    msg: "%$F%$S"
};
DETAILS
This event is marked as an INFO event. The event priority is not specified in the event definition. Rather, it is specified as an argument to the Log_infoX APIs.
This event prints the Log call site (%$F) and a format string (%$S) which is recursively formatted with any addition arguments.
C SYNOPSIS
Log_L_info
config Log.L_warning // module-wide
index URL

Warning event posted by Log_warningX API

XDCscript usage meta-domain
Log.L_warning = Log.EventDesc {
    mask: Diags.STATUS,
    level: Diags.WARNING,
    msg: "WARNING: %$F%$S"
};
DETAILS
This event is marked as a STATUS event and given the priority level of WARNING.
This event prints the Log call site (%$F) and a format string (%$S) which is recursively formatted with any addition arguments.
C SYNOPSIS
Log_L_warning
metaonly config Log.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Log.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 Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.Log

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Log.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== Log ========
    19     *  Event logging manager
    20     *
    21     *  RTSC modules and the application code generate `{@link #Event Log_Event}`
    22     *  events by calling the `Log` module's functions. The `Log` module then
    23     *  passes those events to an `{@link ILogger}` instance assigned to the event
    24     *  originating module, specified by that module's configuration parameter
    25     *  `common$.logger`. `ILogger` instances handle events, usually converting
    26     *  events to `{@link #EventRec Log_EventRec}` records prior to recording,
    27     *  transmitting, or displaying them.
    28     *
    29     *  All events generated by a target module are stored and displayed by an
    30     *  `ILogger`, examples of which are instances of
    31     *  `{@link LoggerBuf xdc.runtime.LoggerBuf}` or
    32     *  `{@link LoggerSys xdc.runtime.LoggerSys}`. At runtime, modules
    33     *  generate events through this module, rather than invoking directly their
    34     *  `ILogger`s. By doing so,  modules can be configured to use different
    35     *  `ILogger` implementations without any changes to their source code.
    36     *
    37     *  A logger instance can accept `Log` events from any module, but a module
    38     *  can put `Log` events to only one logger instance. There can be one or
    39     *  more logger instances in a system. All `Log` calls that are not in a
    40     *  module are controlled by the module `{@link Main xdc.runtime.Main}`.
    41     *  For example, top-level application code or any existing sources that
    42     *  simply call the `Log` or `Assert` methods implicitly use the logger
    43     *  associated with the `Main` module.
    44     *
    45     *  The generation of a `Log` event is controlled by a module's diagnostics
    46     *  mask, which is described in details in `{@link Diags}`. Each `Log` event
    47     *  is associated with a mask. `Log` events are generated only when a
    48     *  particular bit is set in both the `Log` event mask
    49     *  and the module's diagnostics mask. For example, a `Log` event mask with
    50     *  the `{@link Diags#USER1 USER1}` bit set is generated only when the `USER1`
    51     *  bit is also set in the module's diagnostics mask.
    52     *
    53     *  There are two ways to generate `Log` events:
    54     *
    55     *  @p(blist)
    56     *  - `{@link #write8 Log_write()}`, which is tailored for module writers
    57     *  and takes full advantage of the XDC configuration model. For example,
    58     *  the message string associated with the `Log` event need not be a part of
    59     *  the final application, significantly reducing the "footprint overhead"
    60     *  of embedding diagnostics in deployed systems. The `Log_write[0-8]()`
    61     *  functions allow up to 8 values to be passed to the logger. They expect
    62     *  the logger to handle any formatting. A `Log` event type allows you to
    63     *  specify the type of event.
    64     *  - `{@link #print6 Log_print()}`, which is designed for arbitrary C code.
    65     *  The `Log_print[0-6]()` functions allow up to 6 values to be passed along
    66     *  with a printf-like format string to the logger. They handle printf-style
    67     *  formatting.
    68     *  @p
    69     *
    70     *  Both functions are controlled by the module's diagnostics mask. Their
    71     *  storage or output is defined by the logger that is assigned to the
    72     *  module that calls the `Log` methods or to the
    73     *  `{@link Main xdc.runtime.Main}` module if the caller is not part of a
    74     *  module.
    75     *
    76     *  The `Log` function call sites are implemented in such a way that an
    77     *  optimizer can completely eliminate `Log` code from the program if the
    78     *  `Log` functions have been permanently disabled at configuration time. If
    79     *  the `Log` functions are permanently turned on at configuration time,
    80     *  then the optimizer can eliminate all runtime conditional checking and
    81     *  simply invoke the `Log` functions directly. Runtime checking is performed
    82     *  only when the `Log` functions are configured to be runtime modifiable.
    83     *
    84     *  The Log calls can also be completely removed by defining the symbol
    85     *  `xdc_runtime_Log_DISABLE_ALL`. This can be done on the compile line, e.g.
    86     *  `-Dxdc_runtime_Log_DISABLE_ALL`. This will completely remove the `Log`
    87     *  statements from any code compiled with this flag, regardless of the
    88     *  application's logging configuration or your compiler's optimization
    89     *  settings.
    90     *
    91     *  It is also possible to remove all logging except for
    92     *  `{@link #error Log_error}`, `{@link #warning Log_warning}`, or
    93     *  `{@link #info Log_info}` statements. This is done by first defining
    94     *  `xdc_runtime_Log_DISABLE_ALL`, followed by defining one or more of the
    95     *  symbols below to leave that type of logging enabled:
    96     *  @p(blist)
    97     *  - `xdc_runtime_Log_ENABLE_ERROR`
    98     *  - `xdc_runtime_Log_ENABLE_WARNING`
    99     *  - `xdc_runtime_Log_ENABLE_INFO`
   100     *  @p
   101     *  For example, to disable all `Log` statements except for `Log_error`, add
   102     *  the following to the compile line:
   103     *  @p(code)
   104     *      -Dxdc_runtime_Log_DISABLE_ALL -Dxdc_runtime_Log_ENABLE_ERROR
   105     *  @p
   106     *
   107     *  @a(Examples)
   108     *  Example 1: The following example defines a `Log` event, uses that `Log`
   109     *  event in a module, and configures the program to generate the `Log`
   110     *  event. In this example, both `USER1` and `USER2` bits are set in the
   111     *  event mask. This means that if either bit is set in the module's
   112     *  diagnostics mask, then the `Log` event will be generated.
   113     *
   114     *  This is a part of the XDC specification file for the `Mod` module
   115     *  (Mod.xdc):
   116     *
   117     *  @p(code)
   118     *  import xdc.runtime.Diags;
   119     *  import xdc.runtime.Log;
   120     *
   121     *  config Log.Event L_someEvent = {
   122     *      mask: Diags.USER1 | Diags.USER2,
   123     *      level: Diags.LEVEL1,
   124     *      msg: "my log event message, arg1: 0x%x, arg2: 0x%x"
   125     *  };
   126     *  @p
   127     *
   128     *  This is a part of the C code implementation of the Mod module:
   129     *
   130     *  @p(code)
   131     *  #include <xdc/runtime/Log.h>
   132     *  UInt x, y;
   133     *
   134     *  Log_write2(Mod_L_someEvent, (IArg)x, (IArg)y);
   135     *  @p
   136     *
   137     *  The following configuration script demonstrates how the application might
   138     *  control the `Log` statements embedded in the `Mod` module at configuration
   139     *  time. In this case, the configuration script arranges for the `Log`
   140     *  statements within the `Mod` module (shown above) to always generate events.
   141     *  Without these configuration statements, no `Log` events would be generated
   142     *  by this module.
   143     *
   144     *  This is part of the XDC configuration file for the application:
   145     *
   146     *  @p(code)
   147     *  var Diags = xdc.useModule('xdc.runtime.Diags');
   148     *  var LoggerSys = xdc.useModule('xdc.runtime.LoggerSys');
   149     *  var Mod = xdc.useModule('my.pkg.Mod');
   150     *  Mod.common$.diags_USER1 = Diags.ALWAYS_ON;
   151     *  Mod.common$.logger = LoggerSys.create();
   152     *  @p
   153     *
   154     *  @p(html)
   155     *  <hr />
   156     *  @p
   157     *
   158     *  Example 2: The following XDC configuration statements turn on enter
   159     *  and exit logging at configuration time for a module. Without any other
   160     *  changes in the runtime code, every time a module `Mod`'s function is
   161     *  being called or exits, an event will be logged.
   162     *
   163     *  @p(code)
   164     *  var Diags = xdc.useModule('xdc.runtime.Diags');
   165     *  var Mod = xdc.useModule('my.pkg.Mod');
   166     *
   167     *  Mod.common$.diags_ENTER = Diags.ALWAYS_ON;
   168     *  Mod.common$.diags_EXIT = Diags.ALWAYS_ON;
   169     *  @p
   170     *
   171     *  @p(html)
   172     *  <hr />
   173     *  @p
   174     *
   175     *  Example 3: The following example configures a module to support enter and
   176     *  exit logging, but defers the actual activation and deactivation of the
   177     *  logging until runtime. See the `{@link Diags#setMask Diags_setMask()}`
   178     *  function for details on specifying the control string.
   179     *
   180     *  This is a part of the XDC configuration file for the application:
   181     *
   182     *  @p(code)
   183     *  var Diags = xdc.useModule('xdc.runtime.Diags');
   184     *  var Mod = xdc.useModule('my.pkg.Mod');
   185     *
   186     *  Mod.common$.diags_ENTER = Diags.RUNTIME_OFF;
   187     *  Mod.common$.diags_EXIT = Diags.RUNTIME_OFF;
   188     *  @p
   189     *
   190     *  This is a part of the C code for the application:
   191     *
   192     *  @p(code)
   193     *  // turn on enter and exit logging in the module
   194     *  Diags_setMask("my.pkg.Mod+EX");
   195     *
   196     *  // turn off enter and exit logging in the module
   197     *  Diags_setMask("my.pkg.Mod-EX");
   198     *  @p
   199     */
   200
   201    @CustomHeader
   202
   203    module Log {
   204
   205        /*!
   206         *  ======== NUMARGS ========
   207         *  Maximum number of arguments supported in `Log` events.
   208         */
   209        const Int NUMARGS = 8;
   210
   211        /*!
   212         *  ======== PRINTFID ========
   213         *  The `EventId` for `Log_print()` events
   214         */
   215        const EventId PRINTFID = 0;
   216
   217        /*!
   218         *  ======== EventDesc ========
   219         *  `Log` event descriptor
   220         *
   221         *  Each `Log` event is defined by a `Log` event descriptor.
   222         *
   223         *  The `mask` defines which bits in the module's diagnostics mask
   224         *  enable this `Log` event.  Events "posted" via `Log_write` are only
   225         *  written to the underlying logger if one of the mask's bits matches
   226         *  the caller's module diagnostics settings (see
   227         *  `{@link xdc.runtime.Types#common$}`).
   228         *
   229         *  The 'level' defines the event level of the event. While the diags
   230         *  bits selected in the 'mask' signify the "category" of the event (e.g.
   231         *  Entry/Exit, Analysis, Info), the 'level' field allows you to assign
   232         *  a "priority" or "detail level" to the event relative to other events in
   233         *  that category. There are four event levels defined by
   234         *  '{@link xdc.runtime.Diags#EventLevel}'.
   235         *
   236         *  Filtering of events by level is handled by the ILogger implementation.
   237         *  ILogger implementations which also implement the {@link IFilterLogger}
   238         *  interface support filtering of events based on priority level.
   239         *
   240         *  Specifying an event level is optional. Events that don't specify a
   241         *  level will receive Diags.LEVEL1 by default, making them the highest
   242         *  priority and ensuring that they will not inadvertently be filtered out
   243         *  by level-based filtering.
   244         *
   245         *  The `msg` defines a printf style format string that defines how to
   246         *  render the arguments passed along the event in a `Log_write` call.
   247         *  For a description of the allowable format strings see
   248         *  `{@link #print6}`.
   249         *
   250         *  @see #write8
   251         *  @see #print6
   252         */
   253        metaonly struct EventDesc {
   254            Diags.Mask          mask;   /*! event enable mask */
   255            Diags.EventLevel    level;  /*! event level relative to other events */
   256            String              msg;    /*! event "printf" message format string */
   257        };
   258
   259        /*!
   260         *  ======== EventRec ========
   261         *  The target representation of a recorded event
   262         *
   263         *  This structure defines how events are recorded on the target.
   264         */
   265        struct EventRec {
   266            Types.Timestamp64 tstamp;   /*! time event was written */
   267            Bits32 serial;              /*! serial number of event */
   268            Types.Event evt;            /*! target encoding of an Event */
   269            IArg arg[NUMARGS];          /*! arguments passed via Log_write/print */
   270        }
   271
   272        /*!
   273         *  ======== Event ========
   274         *  `Log` event type
   275         *
   276         *  An `Event` is represented on the target as a 32-bit value that can
   277         *  be decoded offline to recover the `Event` information defined in
   278         *  a corresponding metaonly `EventDesc`.  In addition, `Event`s may be
   279         *  decoded at runtime via methods provided in this module; see
   280         *  `{@link #getMask}` and `{@link #getEventId}`.
   281         *
   282         *  When an event is "raised" a `{@link Types#Event Types_Event}` is
   283         *  created which has the same event ID as the `Log_Event` but also
   284         *  encodes the module ID of the caller.  This new event is passed to
   285         *  the underlying `{@link ILogger}` module along with any arguments
   286         *  associated with the event.
   287         *
   288         *  @see #getMask
   289         *  @see #getEventId
   290         */
   291        @Encoded typedef EventDesc Event;
   292
   293        /*!
   294         *  ======== EventId ========
   295         *  Unique ID embedded in each `{@link #Event}`
   296         *
   297         *  This ID must be used to compare two `Event`s for equality.  Event
   298         *  ids are not guaranteed to remain constant between different
   299         *  configurations of an application.  For example, adding a module
   300         *  may cause the event ids of another module to change.
   301         *
   302         *  However, event ids declared by a module are guaranteed to be
   303         *  consecutive values starting from the first declared
   304         *  `{@link #Event Log_Event}` and increasing to the last declared
   305         *  event.  As a result, clients of a module can efficiently test ranges
   306         *  of events and modules can add new events, such as internal trace
   307         *  events, without breaking clients; simply be careful to add new events
   308         *  after any existing events in you module's `.xdc` specification.
   309         *
   310         *  @see #getEventId
   311         *  @see #Event
   312         */
   313        typedef Types.RopeId EventId;
   314
   315        /*!
   316         *  ======== L_construct ========
   317         *  Lifecycle event posted when an instance is constructed
   318         */
   319        config Log.Event L_construct = {
   320            mask: Diags.LIFECYCLE,
   321            msg: "<-- construct: %p('%s')"
   322        };
   323
   324        /*!
   325         *  ======== L_create ========
   326         *  Lifecycle event posted when an instance is created
   327         */
   328        config Log.Event L_create = {
   329            mask: Diags.LIFECYCLE,
   330            msg: "<-- create: %p('%s')"
   331        };
   332
   333        /*!
   334         *  ======== L_destruct ========
   335         *  Lifecycle event posted when an instance is destructed
   336         */
   337        config Log.Event L_destruct = {
   338            mask: Diags.LIFECYCLE,
   339            msg: "--> destruct: (%p)"
   340        };
   341
   342        /*!
   343         *  ======== L_delete ========
   344         *  Lifecycle event posted when an instance is deleted
   345         */
   346        config Log.Event L_delete = {
   347            mask: Diags.LIFECYCLE,
   348            msg: "--> delete: (%p)"
   349        };
   350
   351        /*!
   352         *  ======== L_error ========
   353         *  Error event posted by Log_errorX API
   354         *
   355         *  This event is marked as a STATUS event and given the priority level
   356         *  of ERROR.
   357         *
   358         *  This event prints the Log call site (%$F) and a format string (%$S)
   359         *  which is recursively formatted with any additional arguments.
   360         */
   361        config Log.Event L_error = {
   362            mask: Diags.STATUS,
   363            level: Diags.ERROR,
   364            msg: "ERROR: %$F%$S"
   365        };
   366
   367        /*!
   368         *  ======== L_warning ========
   369         *  Warning event posted by Log_warningX API
   370         *
   371         *  This event is marked as a STATUS event and given the priority level of
   372         *  WARNING.
   373         *
   374         *  This event prints the Log call site (%$F) and a format string (%$S)
   375         *  which is recursively formatted with any addition arguments.
   376         */
   377        config xdc.runtime.Log.Event L_warning = {
   378            mask: Diags.STATUS,
   379            level: Diags.WARNING,
   380            msg: "WARNING: %$F%$S"
   381        };
   382
   383        /*!
   384         *  ======== L_info ========
   385         *  Info event posted by Log_infoX API
   386         *
   387         *  This event is marked as an INFO event. The event priority is not
   388         *  specified in the event definition. Rather, it is specified as an
   389         *  argument to the Log_infoX APIs.
   390         *
   391         *  This event prints the Log call site (%$F) and a format string (%$S)
   392         *  which is recursively formatted with any addition arguments.
   393         */
   394        config xdc.runtime.Log.Event L_info = {
   395            mask: Diags.INFO,
   396            msg: "%$F%$S"
   397        };
   398
   399        /*!
   400         *  ======== L_start ========
   401         *  Benchmark event used to log the start of an operation
   402         *  @_nodoc
   403         *
   404         * @a(Example)
   405         *   The following C code shows how to log a simple
   406         *   benchmark 'start' event along with a user-specified
   407         *   format string describing the event.
   408         *
   409         *  @p(code)
   410         *  #include <xdc/runtime/Log.h>
   411         *  ...
   412         *  Log_write2(Log_L_start, (IArg)"My benchmark event", (IArg)myUniqueId);
   413         *  Log_write2(Log_L_stop, (IArg)"My benchmark event", (IArg)myUniqueId);
   414         *  @p
   415         *  @param(fmt)     a constant string that provides format specifiers for up to 6 additional parameters
   416         *  @param(id)      a unique ID used to match benchmark start and stop events
   417         */
   418        config xdc.runtime.Log.Event L_start = {
   419            mask: Diags.ANALYSIS,
   420            msg: "Start: %$S"};
   421
   422        /*!
   423         *  ======== L_stop ========
   424         *  Benchmark event used to log the end of an operation
   425         *  @_nodoc
   426         *
   427         *  @a(Example)
   428         *   The following C code shows how to log a simple
   429         *   benchmark 'stop' event along with a user-specified
   430         *   format string describing the event.
   431         *
   432         *  @p(code)
   433         *  #include <xdc/runtime/Log.h>
   434         *  ...
   435         *  Log_write2(Log_L_start, (IArg)"My benchmark event", (IArg)myUniqueId);
   436         *  Log_write2(Log_L_stop, (IArg)"My benchmark event", (IArg)myUniqueId);
   437         *  @p
   438         *  @param(fmt)     a constant string that provides format specifiers for up to 6 additional parameters
   439         *  @param(id)      a unique ID used to match benchmark start and stop events
   440         */
   441        config xdc.runtime.Log.Event L_stop = {
   442            mask: Diags.ANALYSIS,
   443            msg: "Stop: %$S"};
   444
   445        /*!
   446         *  ======== L_startInstance ========
   447         *  Benchmark event used to log the start of an operation instance
   448         *  @_nodoc
   449         *
   450         *  Event parameter provides instance data to differentiate
   451         *  between multiple instances that can run in parallel.
   452         *
   453         *  @a(Example)
   454         *   The following C code shows how to log a benchmark
   455         *   'startInstance' event along with a user-specified
   456         *   instance identifier and a format string describing the event.
   457         *
   458         *  @p(code)
   459         *  #include <xdc/runtime/Log.h>
   460         *  ...
   461         *  Log_write3(Log_L_startInstance, (IArg)"My benchmark event", (IArg)uniqueId, (IArg)instId);
   462         *  ...
   463         *  Log_write3(Log_L_stopInstance, (IArg)"My benchmark event", (IArg)uniqueId, (IArg)instId);
   464         *  @p
   465         *  @param(fmt)     a constant string that provides format specifiers for up to 6 additional parameters
   466         *  @param(id)      a unique ID used to match benchmark start and stop events
   467         *  @param(instId)  a unique instance ID that can be used to match and instance
   468         */
   469        config xdc.runtime.Log.Event L_startInstance = {
   470            mask: Diags.ANALYSIS,
   471            msg: "StartInstance: %$S"
   472        };
   473
   474        /*!
   475         *  ======== L_stopInstance ========
   476         *  Benchmark event used to log the end of an operation instance
   477         *  @_nodoc
   478         *
   479         *  Event parameter provides instance data to differentiate
   480         *  between multiple instances that can run in parallel.
   481         *
   482         * @a(Example)
   483         *   The following C code shows how to log a benchmark
   484         *   'stopInstance' event along with a user-specified
   485         *   instance identifier and a format string describing the event.
   486         *
   487         *  @p(code)
   488         *  #include <xdc/runtime/Log.h>
   489         *  ...
   490         *  Log_write3(Log_L_startInstance, (IArg)"My benchmark event", (IArg)uniqueId, (IArg)instId);
   491         *  ...
   492         *  Log_write3(Log_L_stopInstance, (IArg)"My benchmark event", (IArg)uniqueId, (IArg)instId);
   493         *  @p
   494         *  @param(fmt)     a constant string that provides format specifiers for up to 6 additional parameters
   495         *  @param(id)      a unique ID used to match benchmark start and stop events
   496         *  @param(instId)  a unique instance ID that can be used to match and instance
   497         */
   498        config xdc.runtime.Log.Event L_stopInstance = {
   499            mask: Diags.ANALYSIS,
   500            msg: "StopInstance: %$S"
   501        };
   502
   503        /*!
   504         *  ======== getMask ========
   505         *  Get the `Diags` mask for the specified (encoded) event
   506         *
   507         *  @param(evt) the `Log` event encoding a mask and event ID
   508         *
   509         *  @a(returns) `Diags` mask for the specified event
   510         */
   511        @Macro Diags.Mask getMask(Event evt);
   512
   513        /*!
   514         *  ======== getRope ========
   515         *  Get RopeId of the Event.msg for the specified (encoded) event
   516         *  @_nodoc
   517         */
   518        @Macro Text.RopeId getRope(Event evt);
   519
   520        /*!
   521         *  ======== getEventId ========
   522         *  Get event ID of the specified (encoded) event
   523         *
   524         *  This method is used to compare "known" `Log` events with
   525         *  "raised" `{@link Types#Event Types_Event}`.
   526         *
   527         *  @param(evt) the `Log` event encoding a mask and event ID
   528         *
   529         *  @a(returns) event ID of the specified event
   530         *
   531         *  @see Types#getEventId
   532         */
   533        @Macro EventId getEventId(Event evt);
   534
   535        /*!
   536         *  ======== print0 ========
   537         *  Generate a `Log` "print event" with 0 arguments
   538         *
   539         *  @see #print6
   540         */
   541        @Macro Void print0(Diags.Mask mask, String fmt);
   542
   543        /*!
   544         *  ======== print1 ========
   545         *  Generate a `Log` "print event" with 1 argument
   546         *
   547         *  @see #print6
   548         */
   549        @Macro Void print1(Diags.Mask mask, String fmt, IArg a1);
   550
   551        /*!
   552         *  ======== print2 ========
   553         *  Generate a `Log` "print event" with 2 arguments
   554         *
   555         *  @see #print6
   556         */
   557        @Macro Void print2(Diags.Mask mask, String fmt, IArg a1, IArg a2);
   558
   559        /*!
   560         *  ======== print3 ========
   561         *  Generate a `Log` "print event" with 3 arguments
   562         *
   563         *  @see #print6
   564         */
   565        @Macro Void print3(Diags.Mask mask, String fmt, IArg a1, IArg a2, IArg a3);
   566
   567        /*!
   568         *  ======== print4 ========
   569         *  Generate a `Log` "print event" with 4 arguments
   570         *
   571         *  @see #print6
   572         */
   573        @Macro Void print4(Diags.Mask mask, String fmt, IArg a1, IArg a2, IArg a3,
   574            IArg a4);
   575
   576        /*!
   577         *  ======== print5 ========
   578         *  Generate a `Log` "print event" with 5 arguments
   579         *
   580         *  @see #print6
   581         */
   582        @Macro Void print5(Diags.Mask mask, String fmt, IArg a1, IArg a2, IArg a3,
   583            IArg a4, IArg a5);
   584
   585        /*!
   586         *  ======== print6 ========
   587         *  Generate a `Log` "print event" with 6 arguments
   588         *
   589         *  As a convenience to C (as well as assembly language) programmers,
   590         *  the `Log` module provides a variation of the ever-popular `printf`
   591         *  function.
   592         *  The `print[0-6]` functions generate a `Log` "print event" and route
   593         *  it to the current module's logger.
   594         *
   595         *  The arguments passed to `print[0-6]` may be characters, integers,
   596         *  strings, or pointers.  However, because the declared type of the
   597         *  arguments is `{@link xdc IArg}`, all pointer arguments must be cast
   598         *  to an `IArg` type.  `IArg` is an integral type large enough to hold
   599         *  any pointer or an `int`.  So, casting a pointer to an `IArg` does
   600         *  not cause any loss of information and C's normal integer conversions
   601         *  make the cast unnecessary for integral arguments.
   602         *
   603         *  The format string can use the following conversion characters.
   604         *  However, it is important to recall that all arguments referenced by
   605         *  these conversion characters have been converted to an `IArg`
   606         *  prior to conversion; so, the use of "length modifiers" should be
   607         *  avoided.
   608         *
   609         *  @p(code)
   610         *  Conversion Character    Description
   611         *  ------------------------------------------------
   612         *  %c                      Character
   613         *  %d                      Signed integer
   614         *  %u                      Unsigned integer
   615         *  %x                      Unsigned hexadecimal integer
   616         *  %o                      Unsigned octal integer
   617         *  %s                      Character string
   618         *  %p                      Pointer
   619         *  %f                      Single precision floating point (float)
   620         *  @p
   621         *
   622         *  Format strings, while very convenient, are a well known source of
   623         *  portability problems: each format specification must precisely match
   624         *  the types of the arguments passed. Underlying "printf" functions use
   625         *  the format string to determine how far to advance through their
   626         *  argument list. For targets where pointer types and integers are the
   627         *  same size there are no problems.  However, suppose a target's pointer
   628         *  type is larger than its integer type. In this case, because integer
   629         *  arguments are widened to be of type `IArg`, a format specification of
   630         *  "%d" causes an underlying `printf()` implementation to read the
   631         *  extended part of the integer argument as part of the next argument(!).
   632         *
   633         *  To get around this problem and still allow the use of "natural"
   634         *  format specifications (e.g., `%d` and `%x` with optional width
   635         *  specifications), `{@link System#aprintf()}` is used which assumes
   636         *  that all arguments have been widened to be of type `IArg`.
   637         *
   638         *  See `{@link System#printf}` for complete details.
   639         *
   640         *  The `%f` format specifier is used to print a single precision float
   641         *  value. Note that `%f` assumes that sizeof(Float) <= sizeof(IArg).
   642         *  Most clients that interpret float values expect that they are
   643         *  represented in IEEE 754 floating point format. Therefore, it is
   644         *  recommended that the float values be converted into that format prior
   645         *  to supplying the values to `Log` functions in cases where targets do
   646         *  not generate the float values in IEEE 754 floating point format by
   647         *  default.
   648         *
   649         *  The first argument to a `Log_print` call is the diags category to be
   650         *  associated with the event.
   651         *
   652         *  It is also possible to associate an event level with the event to
   653         *  enable filtering of events based on event level. Conceptually, it is
   654         *  best to regard the event level as completely separate from the event's
   655         *  diags category; however, the priority value actually occupies a part
   656         *  of the diags mask. For this reason, it is possible to specify an event
   657         *  level by OR'ing the level with the diags mask. For example, to print
   658         *  an `Diags_INFO` event of `Diags_LEVEL2`, you'd simply write:
   659         *  (Diags_INFO | Diags_LEVEL2)
   660         *
   661         *  Specifying an event level is optional. `Log_print` calls which do not
   662         *  specify a level will receive the highest priority by default.
   663         *
   664         *  @param(mask)    enable bits and optional detail level for this event
   665         *  @param(fmt)     a `printf` style format string
   666         *  @param(a1)      value for first format conversion character
   667         *  @param(a2)      value for second format conversion character
   668         *  @param(a3)      value for third format conversion character
   669         *  @param(a4)      value for fourth format conversion character
   670         *  @param(a5)      value for fifth format conversion character
   671         *  @param(a6)      value for sixth format conversion character
   672         *
   673         *  @a(Examples)
   674         *  The following example demonstrates a typical usage.
   675         *  @p(code)
   676         *  String  list[];
   677         *  UInt    i;
   678         *
   679         *  Log_print2(Diags_USER2, "list[%u] = %s\n", i, (IArg)list[i]);
   680         *  @p
   681         *  Note that the `IArg` cast above is only necessary for pointer
   682         *  arguments; C's normal parameter conversions implicitly convert
   683         *  integral arguments.
   684         *
   685         *  To simplify the conversion from `float` arguments to `IArg`,
   686         *  the standard header `xdc/std.h` provides a macro, named floatToArg(),
   687         *  to do this conversion in a type safe manner.  So, the following
   688         *  statement will print "`float = 2.3456`":
   689         *  @p(code)
   690         *    Log_print1(Diags_USER1, "float = %f", floatToArg(2.34567));
   691         *  @p
   692         *
   693         *  Note that, if you are formatting events on the target, you must
   694         *  also add support for floating point to ASCII conversion to
   695         *  `{@link System#printf}`; for more information, see the
   696         *  `{@link System#extendedFormats}` reference documenation.  For example:
   697         *  @p(code)
   698         *      var System = xdc.useModule('xdc.runtime.System');
   699         *      System.extendedFormats = "%f";
   700         *  @p
   701         */
   702        @Macro Void print6(Diags.Mask mask, String fmt, IArg a1, IArg a2, IArg a3,
   703            IArg a4, IArg a5, IArg a6);
   704
   705        /*!
   706         *  ======== error0 ========
   707         *  Generate a `Log` "error event" with 0 arguments
   708         *
   709         *  @see #error5
   710         */
   711        @Macro Void error0(String fmt);
   712
   713        /*!
   714         *  ======== error1 ========
   715         *  Generate a `Log` "error event" with 1 argument
   716         *
   717         *  @see #error5
   718         */
   719        @Macro Void error1(String fmt, IArg a1);
   720
   721        /*!
   722         *  ======== error2 ========
   723         *  Generate a `Log` "error event" with 2 arguments
   724         *
   725         *  @see #error5
   726         */
   727        @Macro Void error2(String fmt, IArg a1, IArg a2);
   728
   729        /*!
   730         *  ======== error3 ========
   731         *  Generate a `Log` "error event" with 3 arguments
   732         *
   733         *  @see #error5
   734         */
   735        @Macro Void error3(String fmt, IArg a1, IArg a2, IArg a3);
   736
   737        /*!
   738         *  ======== error4 ========
   739         *  Generate a `Log` "error event" with 4 arguments
   740         *
   741         *  @see #error5
   742         */
   743        @Macro Void error4(String fmt, IArg a1, IArg a2, IArg a3,
   744            IArg a4);
   745
   746        /*!
   747         *  ======== error5 ========
   748         *  Generate a `Log` "error event" with 5 arguments
   749         *
   750         *  The Log_error APIs are intended to allow users to easily log error
   751         *  events in their code. Similar to the Log_print APIs, Log_error does not
   752         *  require that you define an event. You simply pass an informative error
   753         *  string which can optionally be formatted with additional arguments. The
   754         *  error is logged with the predefined event {@link #L_error}.
   755         *
   756         *  Log_error prepends a string to the message which identifies it as an
   757         *  ERROR and specifies the filename and line number of the Log_error call
   758         *  site. A simple example:
   759         *
   760         *  @p(code)
   761         *  Log_error0("Invalid argument");
   762         *  @p
   763         *  This event will be formatted as (assuming that the above call was line
   764         *  35 of "MyCode.c")
   765         *  @p(code)
   766         *  ERROR at "MyCode.c", line 35: Invalid argument
   767         *  @p
   768         *
   769         *  Users may provide additional information in the error event, such as
   770         *  a predefined error code or details of the error. These additional
   771         *  values will be used to format the string passed to Log_error.
   772         *  @see #print6 for information about format strings.
   773         *
   774         *  Log_error does not use a variable length argument list--you must call
   775         *  the appropriate Log_errorX API based on the number of arguments.
   776         *
   777         *  @param(fmt)      a reference to a constant error string / fmt string
   778         *  @param(a1)       value for an additional parameter (e.g. an error code)
   779         *  @param(a2)       value for an additional parameter
   780         *  @param(a3)       value for an additional parameter
   781         *  @param(a4)       value for an additional parameter
   782         *  @param(a5)       value for an additional parameter
   783         *
   784         *  @a(Examples)
   785         *  The following example demonstrates a typical usage.
   786         *  @p(code)
   787         *  Int myArg;
   788         *
   789         *  Log_error1("Invalid argument: %d", myArg);
   790         *  @p
   791         *  The above event is formatted as, for example:
   792         *  @p(code)
   793         *  ERROR: "MyCode.c", line 35: Invalid argument: -1
   794         *  @p
   795         */
   796        @Macro Void error5(String fmt, IArg a1, IArg a2, IArg a3,
   797            IArg a4, IArg a5);
   798
   799        /*!
   800         *  ======== warning0 ========
   801         *  Generate a `Log` "warning event" with 0 arguments
   802         *
   803         *  @see #warning5
   804         */
   805        @Macro Void warning0(String fmt);
   806
   807        /*!
   808         *  ======== warning1 ========
   809         *  Generate a `Log` "warning event" with 1 argument
   810         *
   811         *  @see #warning5
   812         */
   813        @Macro Void warning1(String fmt, IArg a1);
   814
   815        /*!
   816         *  ======== warning2 ========
   817         *  Generate a `Log` "warning event" with 2 arguments
   818         *
   819         *  @see #warning5
   820         */
   821        @Macro Void warning2(String fmt, IArg a1, IArg a2);
   822
   823        /*!
   824         *  ======== warning3 ========
   825         *  Generate a `Log` "warning event" with 3 arguments
   826         *
   827         *  @see #warning5
   828         */
   829        @Macro Void warning3(String fmt, IArg a1, IArg a2, IArg a3);
   830
   831        /*!
   832         *  ======== warning4 ========
   833         *  Generate a `Log` "warning event" with 4 arguments
   834         *
   835         *  @see #warning5
   836         */
   837        @Macro Void warning4(String fmt, IArg a1, IArg a2, IArg a3,
   838            IArg a4);
   839
   840        /*!
   841         *  ======== warning5 ========
   842         *  Generate a `Log` "warning event" with 5 arguments
   843         *
   844         *  The Log_warning APIs provide the same features as the Log_error APIs,
   845         *  but are used to specifically log "warning" events.
   846         *  @see #error5
   847         *
   848         *  The Log_warning APIs are equivalent to the Log_error APIs except that
   849         *  they use the predefined {@link #L_warning} event. Log_warning prepends
   850         *  a string to the message which identifies it as a WARNING and specifies
   851         *  the filename and line number of the Log_warning call site.
   852         *
   853         *  @param(fmt)     reference to a constant warning string / fmt string
   854         *  @param(a1)      value for an additional parameter (e.g. a warning code)
   855         *  @param(a2)      value for an additional parameter
   856         *  @param(a3)      value for an additional parameter
   857         *  @param(a4)      value for an additional parameter
   858         *  @param(a5)      value for an additional parameter
   859         *
   860         *  @a(Examples)
   861         *  The following example demonstrates a typical usage.
   862         *  @p(code)
   863         *  Int myArg;
   864         *
   865         *  Log_warning1("Value may be too high: %d", myArg);
   866         *  @p
   867         *  The above event is formatted as:
   868         *  @p(code)
   869         *  WARNING: "MyCode.c", line 50: Value may be too high: 4096
   870         *  @p
   871         */
   872        @Macro Void warning5(String fmt, IArg a1, IArg a2, IArg a3,
   873            IArg a4, IArg a5);
   874
   875        /*!
   876         *  ======== info0 ========
   877         *  Generate a `Log` "info event" with 0 arguments
   878         *
   879         *  @see #info5
   880         */
   881        @Macro Void info0(String fmt);
   882
   883        /*!
   884         *  ======== info1 ========
   885         *  Generate a `Log` "info event" with 1 argument
   886         *
   887         *  @see #info5
   888         */
   889        @Macro Void info1(String fmt, IArg a1);
   890
   891        /*!
   892         *  ======== info2 ========
   893         *  Generate a `Log` "info event" with 2 arguments
   894         *
   895         *  @see #info5
   896         */
   897        @Macro Void info2(String fmt, IArg a1, IArg a2);
   898
   899        /*!
   900         *  ======== info3 ========
   901         *  Generate a `Log` "info event" with 3 arguments
   902         *
   903         *  @see #info5
   904         */
   905        @Macro Void info3(String fmt, IArg a1, IArg a2, IArg a3);
   906
   907        /*!
   908         *  ======== info4 ========
   909         *  Generate a `Log` "info event" with 4 arguments
   910         *
   911         *  @see #info5
   912         */
   913        @Macro Void info4(String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
   914
   915        /*!
   916         *  ======== info5 ========
   917         *  Generate a `Log` "info event" with 5 arguments
   918         *
   919         *  The Log_info APIs are provided for easily logging generic
   920         *  "informational" events with call site information. They are similar to
   921         *  the Log_print APIs in that they do not require you to define an event--
   922         *  you simply pass an informative printf-style string which can optionally
   923         *  be formatted with additional arguments. The info record is logged with
   924         *  the predefined event '{@link #L_info}'.
   925         *
   926         *  The Log_info APIs log the {@link #L_info} event which uses the 'INFO'
   927         *  diags category. They do not allow you to specify an event priority.
   928         *
   929         *  Log_info prepends the filename and line number of the call site to the
   930         *  message.
   931         *
   932         *  @param(fmt)     reference to a constant event string / fmt string
   933         *  @param(a1)      value for an additional parameter (e.g. an event code)
   934         *  @param(a2)      value for an additional parameter
   935         *  @param(a3)      value for an additional parameter
   936         *  @param(a4)      value for an additional parameter
   937         *  @param(a5)      value for an additional parameter
   938         *
   939         *  @a(Examples)
   940         *  The following example demonstrates a typical usage.
   941         *  @p(code)
   942         *  Int load;
   943         *
   944         *  Log_info1("Current load: %d", load);
   945         *  @p
   946         *  The above event is formatted as, for example:
   947         *  @p(code)
   948         *  "MyCode.c", line 15: Current load: 25
   949         *  @p
   950         */
   951        @Macro Void info5(String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
   952
   953         /*!
   954         *  ======== put0 ========
   955         *  Unconditionally put the specified Log event with 0 arguments
   956         *
   957         *  @see #put4
   958         */
   959        @Macro Void put0(Log.Event evt, Types.ModuleId mid);
   960
   961        /*!
   962         *  ======== put1 ========
   963         *  Unconditionally put the specified Log event and 1 argument
   964         *
   965         *  @see #put4
   966         */
   967        @Macro Void put1(Log.Event evt, Types.ModuleId mid, IArg a1);
   968
   969        /*!
   970         *  ======== put2 ========
   971         *  Unconditionally put the specified Log event and 2 arguments
   972         *
   973         *  @see #put4
   974         */
   975         @Macro Void put2(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2);
   976
   977        /*!
   978         *  ======== put4 ========
   979         *  Unconditionally put the specified Log event
   980         *
   981         *  This method unconditionally puts the specified `{@link Event}`
   982         *  `evt` into the log. The `{@link Types#ModuleId}` `mid` should be the
   983         *  module ID of the module which is putting the event.
   984         *
   985         *  @param(evt)     the Log event to put into the log
   986         *  @param(mid)     module ID of the module putting the event
   987         *  @param(a1)      value for first format conversion character
   988         *  @param(a2)      value for second format conversion character
   989         *  @param(a3)      value for third format conversion character
   990         *  @param(a4)      value for fourth format conversion character
   991         *
   992         *  @see #put8
   993         */
   994        @Macro Void put4(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2,
   995                         IArg a3, IArg a4);
   996
   997        /*!
   998         *  ======== put8 ========
   999         *  Unconditionally put the specified Log event and 8 arguments
  1000         *
  1001         *  @see #put4
  1002         */
  1003        @Macro Void put8(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2,
  1004                         IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
  1005
  1006        /*!
  1007         *  ======== write0 ========
  1008         *  Generate a `Log` event with 0 arguments
  1009         *
  1010         *  @see #write8
  1011         */
  1012        @Macro Void write0(Event evt);
  1013
  1014        /*!
  1015         *  ======== write1 ========
  1016         *  Generate a `Log` event with 1 argument
  1017         *
  1018         *  @see #write8
  1019         */
  1020        @Macro Void write1(Event evt, IArg a1);
  1021
  1022        /*!
  1023         *  ======== write2 ========
  1024         *  Generate a `Log` event with 2 arguments
  1025         *
  1026         *  @see #write8
  1027         */
  1028        @Macro Void write2(Event evt, IArg a1, IArg a2);
  1029
  1030        /*!
  1031         *  ======== write3 ========
  1032         *  Generate a `Log` event with 3 arguments
  1033         *
  1034         *  @see #write8
  1035         */
  1036        @Macro Void write3(Event evt, IArg a1, IArg a2, IArg a3);
  1037
  1038        /*!
  1039         *  ======== write4 ========
  1040         *  Generate a `Log` event with 4 arguments
  1041         *
  1042         *  @see #write8
  1043         */
  1044        @Macro Void write4(Event evt, IArg a1, IArg a2, IArg a3, IArg a4);
  1045
  1046        /*!
  1047         *  ======== write5 ========
  1048         *  Generate a `Log` event with 5 arguments
  1049         *
  1050         *  @see #write8
  1051         */
  1052        @Macro Void write5(Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
  1053
  1054        /*!
  1055         *  ======== write6 ========
  1056         *  Generate a `Log` event with 6 arguments
  1057         *
  1058         *  @see #write8
  1059         */
  1060        @Macro Void write6(Event evt, IArg a1, IArg a2, IArg a3, IArg a4,
  1061                            IArg a5, IArg a6);
  1062
  1063        /*!
  1064         *  ======== write7 ========
  1065         *  Generate a `Log` event with 7 arguments
  1066         *
  1067         *  @see #write8
  1068         */
  1069        @Macro Void write7(Event evt, IArg a1, IArg a2, IArg a3, IArg a4,
  1070                            IArg a5, IArg a6, IArg a7);
  1071
  1072        /*!
  1073         *  ======== write8 ========
  1074         *  Generate a `Log` event with 8 arguments
  1075         *
  1076         *  If the mask in the specified `Log` event has any bit set which is
  1077         *  also set in the current module's diagnostics mask, then this call to
  1078         *  write will "raise" the given `Log` event.
  1079         *
  1080         *  @param(evt)     the `Log` event to write
  1081         *  @param(a1)      value for first format conversion character
  1082         *  @param(a2)      value for second format conversion character
  1083         *  @param(a3)      value for third format conversion character
  1084         *  @param(a4)      value for fourth format conversion character
  1085         *  @param(a5)      value for fifth format conversion character
  1086         *  @param(a6)      value for sixth format conversion character
  1087         *  @param(a7)      value for seventh format conversion character
  1088         *  @param(a8)      value for eighth format conversion character
  1089         */
  1090        @Macro Void write8(Event evt, IArg a1, IArg a2, IArg a3, IArg a4,
  1091                            IArg a5, IArg a6, IArg a7, IArg a8);
  1092
  1093        /*!
  1094         *  ======== doPrint ========
  1095         *  Render an event as text via `{@link System#printf System_printf}`
  1096         *
  1097         *  This method is not gated and may make more than one call to
  1098         *  `System_printf`.  This utility method is typically used within the
  1099         *  implementation of a logger which initializes
  1100         *  `{@link #EventRec Log_EventRec}` structures based on `Log` events
  1101         *  produced by the application.
  1102         *
  1103         *  @param(evRec)   a non`NULL` pointer to an initialized `Log_EventRec`
  1104         *                  structure to be formated via
  1105         *                  `{@link System#printf System_printf}`.
  1106         */
  1107        Void doPrint(EventRec *evRec);
  1108
  1109        /*!
  1110         *  @_nodoc
  1111         *  ======== lookupEventMessage ========
  1112         *  Returns the format string for the event with the given id.
  1113         */
  1114        function lookupEventMessage(eventId);
  1115
  1116        /*!
  1117         *  @_nodoc
  1118         *  ======== getTargetArgSize ========
  1119         *  Returns the target size of a record argument in bytes (not MAUs).
  1120         */
  1121        function getTargetArgSize();
  1122
  1123        /*!
  1124         *  @_nodoc
  1125         *  ======== lookupEventName ========
  1126         */
  1127        function lookupEventName(eventId);
  1128
  1129        /*!
  1130         *  @_nodoc
  1131         *  ======== lookupModuleName ========
  1132         */
  1133        function lookupModuleName(modId);
  1134
  1135        /*!
  1136         *  @_nodoc
  1137         *  ======== getTargetEventRecSize ========
  1138         *  Returns the record size in bytes (not MAUs).
  1139         */
  1140        function getTargetEventRecSize();
  1141
  1142    internal:
  1143
  1144        /*
  1145         *  ======== idToInfo ========
  1146         *  Map event ID strings into a string of the form <eventName>::<eventMsg>
  1147         */
  1148        metaonly config String idToInfo[string] = [];
  1149
  1150    }
  1151    /*
  1152     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
  1153     */
  1154


module xdc.runtime.LoggerBuf
index URL

A logger which stores Log events in a buffer

  • C synopsis
  • Individual elements
  • DETAILS
  • EXAMPLES
  • XDCscript usage
  • Individual elements
This module provides a logger which captures Log events to a buffer in realtime. The Log events stored in the buffer are unformatted; Log event formatting is deferred until some client reads the raw event data from the buffer. You can use LoggerBuf_flush() to process the Log events stored in the buffer and stream the formatted output to stdout (via System.printf). Alternatively, you can read a raw event (via getNextEntry) and send it to another client that has the resources to format the event for display. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/LoggerBuf.xdc
#include <xdc/runtime/LoggerBuf.h>
Functions
Void
LoggerBuf_construct// Initialize a new instance object inside the provided structure(LoggerBuf_Struct *structP, const LoggerBuf_Params *params, Error_Block *eb);
LoggerBuf_Handle
LoggerBuf_create// Allocate and initialize a new instance object and return its handle(const LoggerBuf_Params *params, Error_Block *eb);
Void
LoggerBuf_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(LoggerBuf_Handle *handleP);
Void
LoggerBuf_destruct// Finalize the instance object inside the provided structure(LoggerBuf_Struct *structP);
Void
LoggerBuf_flush// Read, clear, and output the contents of the log(LoggerBuf_Handle handle);
Void
LoggerBuf_flushAll// Flush logs of all instances that set exitFlush to true();
Int
LoggerBuf_getNextEntry// Fills the passed Log.EventRec with the next entry in the log(LoggerBuf_Handle handle, Log_EventRec *evtRec);
Void
LoggerBuf_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(LoggerBuf_Params *params);
Void
LoggerBuf_reset// Reset a log to empty state and enable it(LoggerBuf_Handle handle);
Functions common to all ILogger modules
Bool
LoggerBuf_disable// Disable a log(LoggerBuf_Handle handle);
Bool
LoggerBuf_enable// Enable a log(LoggerBuf_Handle handle);
Void
LoggerBuf_write0// Process a log event with 0 arguments(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid);
Void
LoggerBuf_write1// Process a log event with 1 arguments(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
Void
LoggerBuf_write2// Process a log event with 2 arguments(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
Void
LoggerBuf_write4// Process a log event with up to 4 arguments(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
Void
LoggerBuf_write8// Process a log event with up to 8 arguments(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
Functions common to all IFilterLogger modules
Diags_Mask
LoggerBuf_getFilterLevel// Returns the mask of diags categories currently set to the specified level(LoggerBuf_Handle handle, Diags_EventLevel level);
Void
LoggerBuf_setFilterLevel// Set the level of detail that instances will log(LoggerBuf_Handle handle, Diags_Mask mask, Diags_EventLevel filterLevel);
Functions common to all target instances
LoggerBuf_handle// Convert this instance structure pointer into an instance handle, LoggerBuf_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, LoggerBuf_Handle_downCast2// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure, LoggerBuf_Handle_label// The label associated with this instance object, LoggerBuf_Handle_name// The name of this instance object, LoggerBuf_Handle_upCast// unconditionally move one level up the inheritance hierarchy, LoggerBuf_Handle_upCast2// unconditionally move 2 levels up the inheritance hierarchy, LoggerBuf_Object_count// The number of statically-created instance objects, LoggerBuf_Object_first// The handle of the first dynamically-created instance object, or NULL, LoggerBuf_Object_get// The handle of the i-th statically-created instance object (array == NULL), LoggerBuf_Object_heap// The heap used to allocate dynamically-created instance objects, LoggerBuf_Object_next// The handle of the next dynamically-created instance object, or NULL, LoggerBuf_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
LoggerBuf_Module_getMask// Returns the diagnostics mask for this module, LoggerBuf_Module_hasMask// Test whether this module has a diagnostics mask, LoggerBuf_Module_heap// The heap from which this module allocates memory, LoggerBuf_Module_id// Get this module's unique id, LoggerBuf_Module_setMask// Set the diagnostics mask for this module, LoggerBuf_Module_startupDone// Test if this module has completed startup
Typedefs
typedef enum
LoggerBuf_BufType// Type of log buffer ...
typedef LoggerBuf_Object *
LoggerBuf_Handle// Client reference to an instance object;
typedef struct
LoggerBuf_Object// Opaque internal representation of an instance object LoggerBuf_Object;
typedef struct
LoggerBuf_Params// Instance config-params structure ...
typedef struct
LoggerBuf_Struct// Opaque client structure large enough to hold an instance object LoggerBuf_Struct;
Constants
extern const Bool
LoggerBuf_enableFlush// Flush all logs at system exit;
extern const Error_Id
LoggerBuf_E_badLevel// Error raised if get or setFilterLevel receives a bad level value;
extern const Bool
LoggerBuf_filterByLevel// Support filtering of events by event level;
extern const Diags_Mask
LoggerBuf_level1Mask// Mask of diags categories whose initial filtering level is Diags.LEVEL1;
extern const Diags_Mask
LoggerBuf_level2Mask// Mask of diags categories whose initial filtering level is Diags.LEVEL2;
extern const Diags_Mask
LoggerBuf_level3Mask// Mask of diags categories whose initial filtering level is Diags.LEVEL3;
extern const Diags_Mask
LoggerBuf_level4Mask// Mask of diags categories whose initial filtering level is Diags.LEVEL4;
extern const ILogger_Handle
LoggerBuf_statusLogger// Route all 'STATUS' (error and warning) events to this logger;
DETAILS
This module provides a logger which captures Log events to a buffer in realtime. The Log events stored in the buffer are unformatted; Log event formatting is deferred until some client reads the raw event data from the buffer. You can use LoggerBuf_flush() to process the Log events stored in the buffer and stream the formatted output to stdout (via System.printf). Alternatively, you can read a raw event (via getNextEntry) and send it to another client that has the resources to format the event for display.
The implementation of this logger is fast with minimal stack usage making it appropriate for a realtime application. This logger writes all Log events to a circular buffer. As a result, the execution time of all Log methods bound to this type of logger are deterministic (and quite short) because there are no additional memory allocation calls after the circular buffer was allocated.
If this logger is used in a preemptive environment, then an appropriate gate must be assigned to the module. For example, if events are generated from an interrupt context, then a gate that disables interrupts must be used.
  var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
  LoggerBuf.common$.gate = ...some gate instance...
If the buffer type is circular, the log buffer of size numEntries contains the last numEntries of Log events. If the buffer type is fixed, the log buffer contains the first numEntries events.
LoggerBuf supports routing of 'STATUS' events (errors and warnings) to a separate ILogger instance. This is helpful in preserving these critical events, which may otherwise be overwritten by lower priority events. This feature is disabled by default. See statusLogger.
LoggerBuf implements the IFilterLogger interface and optionally supports filtering of events based on their detail level. This feature is disabled by default. See IFilterLogger.
EXAMPLES
Configuration example: The following XDC configuration statements create a logger instance, assign it as the default logger for all modules, and enable USER1 logging in all modules of the package my.pkg. See the Diags.setMaskMeta() function for details on specifying the module names.
  var Defaults = xdc.useModule('xdc.runtime.Defaults');
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');

  LoggerBuf.enableFlush = true;
  var LoggerBufParams = new LoggerBuf.Params();
  LoggerBufParams.exitFlush = true;
  Defaults.common$.logger = LoggerBuf.create(LoggerBufParams);
  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
enum LoggerBuf_BufType
index URL

Type of log buffer

C synopsis target-domain
typedef enum LoggerBuf_BufType {
    LoggerBuf_BufType_CIRCULAR,
    // The log buffer wraps, overwriting old entries
    LoggerBuf_BufType_FIXED
    // The log buffer halts collection when full
} LoggerBuf_BufType;
config LoggerBuf_E_badLevel // module-wide
index URL

Error raised if get or setFilterLevel receives a bad level value

C synopsis target-domain
extern const Error_Id LoggerBuf_E_badLevel;
config LoggerBuf_enableFlush // module-wide
index URL

Flush all logs at system exit

C synopsis target-domain
extern const Bool LoggerBuf_enableFlush;
config LoggerBuf_filterByLevel // module-wide
index URL

Support filtering of events by event level

C synopsis target-domain
extern const Bool LoggerBuf_filterByLevel;
DETAILS
To improve logging performance, this feature can be disabled by setting filterByLevel to false.
See 'setFilterLevel' for an explanation of level filtering.
config LoggerBuf_level1Mask // module-wide
index URL

Mask of diags categories whose initial filtering level is Diags.LEVEL1

C synopsis target-domain
extern const Diags_Mask LoggerBuf_level1Mask;
DETAILS
See 'level4Mask' for details.
config LoggerBuf_level2Mask // module-wide
index URL

Mask of diags categories whose initial filtering level is Diags.LEVEL2

C synopsis target-domain
extern const Diags_Mask LoggerBuf_level2Mask;
DETAILS
See 'level4Mask' for details.
config LoggerBuf_level3Mask // module-wide
index URL

Mask of diags categories whose initial filtering level is Diags.LEVEL3

C synopsis target-domain
extern const Diags_Mask LoggerBuf_level3Mask;
DETAILS
See 'level4Mask' for details.
config LoggerBuf_level4Mask // module-wide
index URL

Mask of diags categories whose initial filtering level is Diags.LEVEL4

C synopsis target-domain
extern const Diags_Mask LoggerBuf_level4Mask;
DETAILS
If IFilterLogger.filterByLevel is true, then all LoggerBuf instances will filter incoming events based on their event level.
The LoggerBuf module allows for specifying a different filter level for every Diags bit. These filtering levels are module wide; LoggerBuf does not support specifying the levels on a per-instance basis.
The IFilterLogger.setFilterLevel function can be used to change the filtering levels at runtime.
The default filtering levels are assigned using the level1Mask - level4Mask config parameters. These are used to specify, for each of the four event levels, the set of bits which should filter at that level by default.
The default filtering configuration sets the filter level to Diags.LEVEL4 for all logging-related diags bits so that all events are logged by default.
config LoggerBuf_statusLogger // module-wide
index URL

Route all 'STATUS' (error and warning) events to this logger

C synopsis target-domain
extern const ILogger_Handle LoggerBuf_statusLogger;
DETAILS
If a statusLogger is specified, all LoggerBuf instances will check to determine if any of the events they receive are errors or warnings (if their diags mask includes the STATUS category), and will log these events to the statusLogger.
Error events are infrequent, but it's generally critical that they be seen. In a typical system, non-error events easily outnumber any error events, and the logger is likely to wrap, overwriting any error events. To protect these events from being overwritten and lost, they can be sent to their own separate logger to preserve them.
The default value is null, indicating that the STATUS events will just be logged by the logger they were sent to.
LoggerBuf_flushAll() // module-wide
index URL

Flush logs of all instances that set exitFlush to true

C synopsis target-domain
Void LoggerBuf_flushAll();
DETAILS
The user is responsible for making sure that no LoggerBuf instances are created or deleted during the execution of this function.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId LoggerBuf_Module_id();
// Get this module's unique id
Bool LoggerBuf_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle LoggerBuf_Module_heap();
// The heap from which this module allocates memory
Bool LoggerBuf_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 LoggerBuf_Module_getMask();
// Returns the diagnostics mask for this module
Void LoggerBuf_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct LoggerBuf_Object LoggerBuf_Object;
// Opaque internal representation of an instance object
typedef LoggerBuf_Object *LoggerBuf_Handle;
// Client reference to an instance object
typedef struct LoggerBuf_Struct LoggerBuf_Struct;
// Opaque client structure large enough to hold an instance object
LoggerBuf_Handle LoggerBuf_handle(LoggerBuf_Struct *structP);
// Convert this instance structure pointer into an instance handle
LoggerBuf_Struct *LoggerBuf_struct(LoggerBuf_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct LoggerBuf_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
     IHeap_Handle bufHeap;
    // The heap that contains the Log buffer for dynamic instances
     LoggerBuf_BufType bufType;
    // Log buffer type
    Bool exitFlush;
    // Flush log at system exit
    Int numEntries;
    // Number of entries in buffer
} LoggerBuf_Params;
Void LoggerBuf_Params_init(LoggerBuf_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config LoggerBuf_bufHeap // instance
index URL

The heap that contains the Log buffer for dynamic instances

C synopsis target-domain
struct LoggerBuf_Params {
     ...
     IHeap_Handle bufHeap;
DETAILS
The default value null means the buffer will be allocated from the Memory.defaultHeapInstance heap.
config LoggerBuf_bufType // instance
index URL

Log buffer type

C synopsis target-domain
struct LoggerBuf_Params {
     ...
     LoggerBuf_BufType bufType;
config LoggerBuf_exitFlush // instance
index URL

Flush log at system exit

C synopsis target-domain
struct LoggerBuf_Params {
     ...
    Bool exitFlush;
DETAILS
Only used when module parameter enableFlush is true.
config LoggerBuf_numEntries // instance
index URL

Number of entries in buffer

C synopsis target-domain
struct LoggerBuf_Params {
     ...
    Int numEntries;
DETAILS
Each entry is large enough to store one Log event containing up to 4 optional arguments. Events containing more than 4 arguments (such as those from Log.write5) use 2 entries.
numEntries must be a power of 2.
Instance Creation
index URL

C synopsis target-domain
LoggerBuf_Handle LoggerBuf_create(const LoggerBuf_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void LoggerBuf_construct(LoggerBuf_Struct *structP, const LoggerBuf_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
SEE
LoggerBuf.Params
Instance Deletion
index URL

C synopsis target-domain
Void LoggerBuf_delete(LoggerBuf_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void LoggerBuf_destruct(LoggerBuf_Struct *structP);
// Finalize the instance object inside the provided structure
LoggerBuf_disable() // instance
index URL

Disable a log

C synopsis target-domain
Bool LoggerBuf_disable(LoggerBuf_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
DETAILS
Events written to a disabled log are silently discarded.
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerBuf_enable() // instance
index URL

Enable a log

C synopsis target-domain
Bool LoggerBuf_enable(LoggerBuf_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerBuf_flush() // instance
index URL

Read, clear, and output the contents of the log

C synopsis target-domain
Void LoggerBuf_flush(LoggerBuf_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
DETAILS
This method reads, clears, and "prints" each Log event (via System.printf) in the log.
LoggerBuf_getFilterLevel() // instance
index URL

Returns the mask of diags categories currently set to the specified level

C synopsis target-domain
Diags_Mask LoggerBuf_getFilterLevel(LoggerBuf_Handle handle, Diags_EventLevel level);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
DETAILS
See 'setFilterLevel' for an explanation of level filtering.
LoggerBuf_getNextEntry() // instance
index URL

Fills the passed Log.EventRec with the next entry in the log

C synopsis target-domain
Int LoggerBuf_getNextEntry(LoggerBuf_Handle handle, Log_EventRec *evtRec);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
evtRec — pointer to a supplied EventRec object where the next entry in the log is copied to
DETAILS
This function is used to read and clear Log events from the buffer maintained by the LoggerBuf instance. The Log event can then be transmitted and displayed on a host.
A read pointer is maintained in the LoggerBuf instance and points to the next record to read. Entries are not necessarily returned in chronological order, since buffers of type BufType_CIRCULAR can wrap.
RETURNS
This function reports the number of entries actually read. The only values that can be returned are:
  • 0 no more entries to read
  • 1 or 2 read a complete entry written by write4 or write8
  • -1 cleared an incomplete/overwritten entry, more entries to read
LoggerBuf_reset() // instance
index URL

Reset a log to empty state and enable it

C synopsis target-domain
Void LoggerBuf_reset(LoggerBuf_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
WARNING
This method is not synchronized with other instance methods and, as a result, it must never be called when there is a chance that another instance method is currently in operation or when another method on this instance may preempt this call.
LoggerBuf_setFilterLevel() // instance
index URL

Set the level of detail that instances will log

C synopsis target-domain
Void LoggerBuf_setFilterLevel(LoggerBuf_Handle handle, Diags_Mask mask, Diags_EventLevel filterLevel);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
mask — The diags categories to set the level for
filterLevel — The new filtering level for the specified categories
DETAILS
Events with the specified level or higher will be logged, events below the specified level will be dropped.
Events are filtered first by diags category, then by level. If an event's diags category is disabled in the module's diags mask, then it will be filtered out regardless of level. The event will not even be passed to the logger.
This API allows for setting the filtering level for more than one diags category at a time. The mask parameter can be a single category or multiple categories combined, and the level will be set for all of those categories.
LoggerBuf_write0() // instance
index URL

Process a log event with 0 arguments

C synopsis target-domain
Void LoggerBuf_write0(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
DETAILS
Same as write4 except with 0 arguments rather than 4.
SEE
ILogger.write4()
LoggerBuf_write1() // instance
index URL

Process a log event with 1 arguments

C synopsis target-domain
Void LoggerBuf_write1(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
DETAILS
Same as write4 except with 1 arguments rather than 4.
SEE
ILogger.write4()
LoggerBuf_write2() // instance
index URL

Process a log event with 2 arguments

C synopsis target-domain
Void LoggerBuf_write2(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
DETAILS
Same as write4 except with 2 arguments rather than 4.
SEE
ILogger.write4()
LoggerBuf_write4() // instance
index URL

Process a log event with up to 4 arguments

C synopsis target-domain
Void LoggerBuf_write4(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
evt — event to be logged
mid — module ID of the module which logged the event
a1 — arbitrary argument passed by caller
DETAILS
The evt argument is of type Log.Event, which encodes the Log.EventId, the Diags.Mask, and the Diags.EventLevel of the event. The event ID can be obtained via Types.getEventId(evt), the Diags mask can be obtained via Diags.getMask(evt), and the event level can be obtained via Diags.getLevel(evt).
The modId argument is the module ID of the module that logged the event.
The event information can be used by the logger to handle different events specially. For example, the event ID can be used to compare against other known Log.Events.
      if (Log_getEventId(MY_EVENT) == Log_getEventId(evt)) {
          :
      }
The Diags mask and event level can be used for filtering of events based on event level (see IFilterLogger), or even routing events to separate loggers based on diags category (see, for example, LoggerBuf.statusLogger).
The Diags mask and event level are useful for handling the event, but are generally not recorded by the logger because they are not needed in decoding and displaying the event. A more suitable value to record is a Types.Event, which encodes the event ID and module ID. For example, the Log.EventRec type stores a Types.Event in its record definition. A Types.Event can be created using the Types.makeEvent API given the event ID and module ID.
The event ID value of 0 is used to indicate an event triggered by a call to one of the Log_print[0-6] methods. These methods take a format string rather than a Log_Event argument and, as a result, the event ID encoded in evt is 0 and the parameter a1 is the format string.
Non-zero event IDs can also be used to access the msg string associated with the Log.EventDesc that originally defined the Log event.
      Log_EventId id = Log_getEventId(evt));
      if (id != 0) {
          String msg = Text_ropeText(id);
          System_aprintf(msg, a1, a2, a3, a4);
      }
This works because an event's ID is simply an offset into a table of characters (maintained by the Text module) containing the event's msg string.
The arguments a1, a2, etc. are parameters that are to be interpreted according to the message format string associated with evt.
SEE
Log.Event, Log.EventDesc, Text.ropeText, Log.getEventId
LoggerBuf_write8() // instance
index URL

Process a log event with up to 8 arguments

C synopsis target-domain
Void LoggerBuf_write8(LoggerBuf_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
ARGUMENTS
handle — handle of a previously-created LoggerBuf instance object
DETAILS
Same as write4 except with 8 arguments rather than 4.
SEE
ILogger.write4()
Instance Convertors
index URL

C synopsis target-domain
IFilterLogger_Handle LoggerBuf_Handle_upCast(LoggerBuf_Handle handle);
// unconditionally move one level up the inheritance hierarchy
LoggerBuf_Handle LoggerBuf_Handle_downCast(IFilterLogger_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
ILogger_Handle LoggerBuf_Handle_upCast2(LoggerBuf_Handle handle);
// unconditionally move 2 levels up the inheritance hierarchy
LoggerBuf_Handle LoggerBuf_Handle_downCast2(ILogger_Handle handle);
// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int LoggerBuf_Object_count();
// The number of statically-created instance objects
LoggerBuf_Handle LoggerBuf_Object_get(LoggerBuf_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
LoggerBuf_Handle LoggerBuf_Object_first();
// The handle of the first dynamically-created instance object, or NULL
LoggerBuf_Handle LoggerBuf_Object_next(LoggerBuf_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle LoggerBuf_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *LoggerBuf_Handle_label(LoggerBuf_Handle handle, Types_Label *buf);
// The label associated with this instance object
String LoggerBuf_Handle_name(LoggerBuf_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/LoggerBuf.xdc
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
local proxy modules
     LoggerBuf.TimestampProxy// User supplied time-stamp proxy = ITimestampClient.Module null
         LoggerBuf.TimestampProxy.delegate$ = ITimestampClient.Module null
module-wide constants & types
    values of type LoggerBuf.BufType// Type of log buffer
        const LoggerBuf.BufType_CIRCULAR// The log buffer wraps, overwriting old entries;
        const LoggerBuf.BufType_FIXED// The log buffer halts collection when full;
    var obj = new LoggerBuf.BasicView// ;
        obj.label = String ...
        obj.lastSerial = Int ...
        obj.numEntries = Int ...
        obj.type = String ...
        obj.enabledFlag = Bool ...
    var obj = new LoggerBuf.RecordView// ;
        obj.serial = Int ...
        obj.timestampRaw = Long ...
        obj.modName = String ...
        obj.text = String ...
        obj.eventId = Int ...
        obj.eventName = String ...
        obj.arg0 = IArg ...
        obj.arg1 = IArg ...
        obj.arg2 = IArg ...
        obj.arg3 = IArg ...
        obj.arg4 = IArg ...
        obj.arg5 = IArg ...
        obj.arg6 = IArg ...
        obj.arg7 = IArg ...
    var obj = new LoggerBuf.StopModeData// Data added to the RTA MetaData file to support stop mode RTA;
        obj.bufferSymbol = String ...
        obj.bufferSize = Int ...
module-wide config parameters
     LoggerBuf.E_badLevel// Error raised if get or setFilterLevel receives a bad level value = Error.Desc {
        msg: "E_badLevel: Bad filter level value: %d"
    };
     LoggerBuf.enableFlush// Flush all logs at system exit = Bool false;
     LoggerBuf.filterByLevel// Support filtering of events by event level = Bool false;
     LoggerBuf.level1Mask// Mask of diags categories whose initial filtering level is Diags.LEVEL1 = Bits16 0;
     LoggerBuf.level2Mask// Mask of diags categories whose initial filtering level is Diags.LEVEL2 = Bits16 0;
     LoggerBuf.level3Mask// Mask of diags categories whose initial filtering level is Diags.LEVEL3 = Bits16 0;
     LoggerBuf.level4Mask// Mask of diags categories whose initial filtering level is Diags.LEVEL4 = Bits16 Diags.ALL_LOGGING;
     LoggerBuf.statusLogger// Route all 'STATUS' (error and warning) events to this logger = ILogger.Handle null;
     LoggerBuf.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     LoggerBuf.getMetaArgs// Returns any meta data needed to support RTA(Any inst, Any instNum) returns Any
per-instance config parameters
    var params = new LoggerBuf.Params// Instance config-params object;
        params.bufHeap// The heap that contains the Log buffer for dynamic instances = IHeap.Handle null;
        params.bufSection// Section name for the buffer managed by the static instance = String null;
        params.bufType// Log buffer type = LoggerBuf.BufType LoggerBuf.BufType_CIRCULAR;
        params.exitFlush// Flush log at system exit = Bool false;
        params.numEntries// Number of entries in buffer = Int 64;
per-instance creation
    var inst = LoggerBuf.create// Create an instance-object(params);
proxy LoggerBuf.TimestampProxy
index URL

User supplied time-stamp proxy

XDCscript usage meta-domain
LoggerBuf.TimestampProxy = ITimestampClient.Module null
// some delegate module inheriting the ITimestampClient interface
    LoggerBuf.TimestampProxy.delegate$ = ITimestampClient.Module null
    // explicit access to the currently bound delegate module
DETAILS
This proxy allows LoggerBuf to use a timestamp server different from the server used by xdc.runtime.Timestamp. However, if not supplied by a user, this proxy defaults to whichever timestamp server is used by Timestamp.
enum LoggerBuf.BufType
index URL

Type of log buffer

XDCscript usage meta-domain
values of type LoggerBuf.BufType
    const LoggerBuf.BufType_CIRCULAR;
    // The log buffer wraps, overwriting old entries
    const LoggerBuf.BufType_FIXED;
    // The log buffer halts collection when full
C SYNOPSIS
LoggerBuf_BufType
metaonly struct LoggerBuf.BasicView
index URL
XDCscript usage meta-domain
var obj = new LoggerBuf.BasicView;
    obj.label = String ...
    obj.lastSerial = Int ...
    obj.numEntries = Int ...
    obj.type = String ...
    obj.enabledFlag = Bool ...
metaonly struct LoggerBuf.RecordView
index URL
XDCscript usage meta-domain
var obj = new LoggerBuf.RecordView;
    obj.serial = Int ...
    obj.timestampRaw = Long ...
    obj.modName = String ...
    obj.text = String ...
    obj.eventId = Int ...
    obj.eventName = String ...
    obj.arg0 = IArg ...
    obj.arg1 = IArg ...
    obj.arg2 = IArg ...
    obj.arg3 = IArg ...
    obj.arg4 = IArg ...
    obj.arg5 = IArg ...
    obj.arg6 = IArg ...
    obj.arg7 = IArg ...
metaonly struct LoggerBuf.StopModeData
index URL

Data added to the RTA MetaData file to support stop mode RTA

XDCscript usage meta-domain
var obj = new LoggerBuf.StopModeData;
    obj.bufferSymbol = String ...
    obj.bufferSize = Int ...
config LoggerBuf.E_badLevel // module-wide
index URL

Error raised if get or setFilterLevel receives a bad level value

XDCscript usage meta-domain
LoggerBuf.E_badLevel = Error.Desc {
    msg: "E_badLevel: Bad filter level value: %d"
};
C SYNOPSIS
LoggerBuf_E_badLevel
config LoggerBuf.enableFlush // module-wide
index URL

Flush all logs at system exit

XDCscript usage meta-domain
LoggerBuf.enableFlush = Bool false;
C SYNOPSIS
LoggerBuf_enableFlush
config LoggerBuf.filterByLevel // module-wide
index URL

Support filtering of events by event level

XDCscript usage meta-domain
LoggerBuf.filterByLevel = Bool false;
DETAILS
To improve logging performance, this feature can be disabled by setting filterByLevel to false.
See 'setFilterLevel' for an explanation of level filtering.
C SYNOPSIS
LoggerBuf_filterByLevel
config LoggerBuf.level1Mask // module-wide
index URL

Mask of diags categories whose initial filtering level is Diags.LEVEL1

XDCscript usage meta-domain
LoggerBuf.level1Mask = Bits16 0;
DETAILS
See 'level4Mask' for details.
C SYNOPSIS
LoggerBuf_level1Mask
config LoggerBuf.level2Mask // module-wide
index URL

Mask of diags categories whose initial filtering level is Diags.LEVEL2

XDCscript usage meta-domain
LoggerBuf.level2Mask = Bits16 0;
DETAILS
See 'level4Mask' for details.
C SYNOPSIS
LoggerBuf_level2Mask
config LoggerBuf.level3Mask // module-wide
index URL

Mask of diags categories whose initial filtering level is Diags.LEVEL3

XDCscript usage meta-domain
LoggerBuf.level3Mask = Bits16 0;
DETAILS
See 'level4Mask' for details.
C SYNOPSIS
LoggerBuf_level3Mask
config LoggerBuf.level4Mask // module-wide
index URL

Mask of diags categories whose initial filtering level is Diags.LEVEL4

XDCscript usage meta-domain
LoggerBuf.level4Mask = Bits16 Diags.ALL_LOGGING;
DETAILS
If IFilterLogger.filterByLevel is true, then all LoggerBuf instances will filter incoming events based on their event level.
The LoggerBuf module allows for specifying a different filter level for every Diags bit. These filtering levels are module wide; LoggerBuf does not support specifying the levels on a per-instance basis.
The IFilterLogger.setFilterLevel function can be used to change the filtering levels at runtime.
The default filtering levels are assigned using the level1Mask - level4Mask config parameters. These are used to specify, for each of the four event levels, the set of bits which should filter at that level by default.
The default filtering configuration sets the filter level to Diags.LEVEL4 for all logging-related diags bits so that all events are logged by default.
C SYNOPSIS
LoggerBuf_level4Mask
config LoggerBuf.statusLogger // module-wide
index URL

Route all 'STATUS' (error and warning) events to this logger

XDCscript usage meta-domain
LoggerBuf.statusLogger = ILogger.Handle null;
DETAILS
If a statusLogger is specified, all LoggerBuf instances will check to determine if any of the events they receive are errors or warnings (if their diags mask includes the STATUS category), and will log these events to the statusLogger.
Error events are infrequent, but it's generally critical that they be seen. In a typical system, non-error events easily outnumber any error events, and the logger is likely to wrap, overwriting any error events. To protect these events from being overwritten and lost, they can be sent to their own separate logger to preserve them.
The default value is null, indicating that the STATUS events will just be logged by the logger they were sent to.
C SYNOPSIS
LoggerBuf_statusLogger
metaonly config LoggerBuf.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
LoggerBuf.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.
metaonly LoggerBuf.getMetaArgs() // module-wide
index URL

Returns any meta data needed to support RTA

XDCscript usage meta-domain
LoggerBuf.getMetaArgs(Any inst, Any instNum) returns Any
DETAILS
This meta data should be returned in the form of a structure which can be converted into XML. This data is added to the RTA XML file during the application's configuration, and can be accessed later through the xdc.rta.MetaData module.
The MetaData is returned per instance of the ILogger module. The instance object is passed to the function as the first argument.
The second argument is the index of the instance in the list of the ILogger's static instances.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LoggerBuf.Params;
// Instance config-params object
    params.bufHeap = IHeap.Handle null;
    // The heap that contains the Log buffer for dynamic instances
    params.bufSection = String null;
    // Section name for the buffer managed by the static instance
    params.bufType = LoggerBuf.BufType LoggerBuf.BufType_CIRCULAR;
    // Log buffer type
    params.exitFlush = Bool false;
    // Flush log at system exit
    params.numEntries = Int 64;
    // Number of entries in buffer
config LoggerBuf.bufHeap // instance
index URL

The heap that contains the Log buffer for dynamic instances

XDCscript usage meta-domain
var params = new LoggerBuf.Params;
...
params.bufHeap = IHeap.Handle null;
DETAILS
The default value null means the buffer will be allocated from the Memory.defaultHeapInstance heap.
C SYNOPSIS
null
config LoggerBuf.bufType // instance
index URL

Log buffer type

XDCscript usage meta-domain
var params = new LoggerBuf.Params;
...
params.bufType = LoggerBuf.BufType LoggerBuf.BufType_CIRCULAR;
C SYNOPSIS
null
config LoggerBuf.exitFlush // instance
index URL

Flush log at system exit

XDCscript usage meta-domain
var params = new LoggerBuf.Params;
...
params.exitFlush = Bool false;
DETAILS
Only used when module parameter enableFlush is true.
C SYNOPSIS
null
config LoggerBuf.numEntries // instance
index URL

Number of entries in buffer

XDCscript usage meta-domain
var params = new LoggerBuf.Params;
...
params.numEntries = Int 64;
DETAILS
Each entry is large enough to store one Log event containing up to 4 optional arguments. Events containing more than 4 arguments (such as those from Log.write5) use 2 entries.
numEntries must be a power of 2.
C SYNOPSIS
null
metaonly config LoggerBuf.bufSection // instance
index URL

Section name for the buffer managed by the static instance

XDCscript usage meta-domain
var params = new LoggerBuf.Params;
...
params.bufSection = String null;
DETAILS
The default section is the 'dataSection' in the platform.
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LoggerBuf.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LoggerBuf.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
SEE
LoggerBuf.Params
generated on Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.LoggerBuf

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== LoggerBuf.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== LoggerBuf ========
    19     *  A logger which stores `Log` events in a buffer.
    20     *
    21     *  This module provides a logger which captures `{@link Log}` events to a
    22     *  buffer in realtime. The `Log` events stored in the buffer are
    23     *  unformatted; `Log` event formatting is deferred until some client reads
    24     *  the raw event data from the buffer. You can use
    25     *  `{@link #flush LoggerBuf_flush()}` to process the `Log` events stored
    26     *  in the buffer and stream the formatted output to stdout
    27     *  (via `{@link System#printf}`).  Alternatively, you can read a raw event
    28     *  (via `{@link #getNextEntry}`) and send it to another client that
    29     *  has the resources to format the event for display.
    30     *
    31     *  The implementation of this logger is fast with minimal stack usage
    32     *  making it appropriate for a realtime application.
    33     *  This logger writes all `Log` events to a circular buffer.  As a
    34     *  result, the execution time of all `Log` methods bound to this type
    35     *  of logger are deterministic (and quite short) because there are no
    36     *  additional memory allocation calls after the circular buffer was
    37     *  allocated.
    38     *
    39     *  If this logger is used in a preemptive environment, then an appropriate
    40     *  gate must be assigned to the module. For example, if events are generated
    41     *  from an interrupt context, then a gate that disables interrupts
    42     *  must be used.
    43     *
    44     *  @p(code)
    45     *  var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
    46     *  LoggerBuf.common$.gate = ...some gate instance...
    47     *  @p
    48     *
    49     *  If the buffer type is circular, the log buffer of size
    50     *  `{@link #numEntries}` contains the last `numEntries` of `Log` events. If
    51     *  the buffer type is fixed, the log buffer contains the first
    52     *  `numEntries` events.
    53     *
    54     *  LoggerBuf supports routing of 'STATUS' events (errors and warnings) to a
    55     *  separate ILogger instance. This is helpful in preserving these critical
    56     *  events, which may otherwise be overwritten by lower priority events. This
    57     *  feature is disabled by default. See {@link #statusLogger}.
    58     *
    59     *  LoggerBuf implements the {@link IFilterLogger} interface and
    60     *  optionally supports filtering of events based on their detail level. This
    61     *  feature is disabled by default. See {@link IFilterLogger}.
    62     *
    63     *  @a(Examples)
    64     *  Configuration example: The following XDC configuration statements
    65     *  create a logger instance, assign it as the default logger for all
    66     *  modules, and enable `USER1` logging in all modules of the package
    67     *  `my.pkg`. See the `{@link Diags#setMaskMeta Diags.setMaskMeta()}` function
    68     *  for details on specifying the module names.
    69     *
    70     *  @p(code)
    71     *  var Defaults = xdc.useModule('xdc.runtime.Defaults');
    72     *  var Diags = xdc.useModule('xdc.runtime.Diags');
    73     *  var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
    74     *
    75     *  LoggerBuf.enableFlush = true;
    76     *  var LoggerBufParams = new LoggerBuf.Params();
    77     *  LoggerBufParams.exitFlush = true;
    78     *  Defaults.common$.logger = LoggerBuf.create(LoggerBufParams);
    79     *  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
    80     *  @p
    81     */
    82
    83    @ModuleStartup      /* Initialize static instances */
    84    @InstanceFinalize   /* this mod has cleanup fxn when instances are deleted */
    85    @InstanceInitError  /* instance create can fail */
    86    @Gated
    87
    88    module LoggerBuf inherits IFilterLogger {
    89
    90        /*!
    91         *  ======== BufType ========
    92         *  Type of log buffer
    93         */
    94        enum BufType {
    95            BufType_CIRCULAR,  /*! The log buffer wraps, overwriting old entries */
    96            BufType_FIXED      /*! The log buffer halts collection when full */
    97        };
    98
    99        metaonly struct BasicView {
   100            String label;
   101            Int lastSerial;
   102            Int numEntries;
   103            String type;
   104            Bool enabledFlag;
   105        };
   106
   107        metaonly struct RecordView {
   108            Int     serial;
   109            Long    timestampRaw;
   110            String  modName;
   111            String  text;
   112            Int     eventId;
   113            String  eventName;
   114            IArg    arg0;
   115            IArg    arg1;
   116            IArg    arg2;
   117            IArg    arg3;
   118            IArg    arg4;
   119            IArg    arg5;
   120            IArg    arg6;
   121            IArg    arg7;
   122        }
   123
   124        /*!
   125         *  ======== rovViewInfo ========
   126         *  @_nodoc
   127         */
   128        @Facet
   129        metaonly config xdc.rov.ViewInfo.Instance rovViewInfo =
   130            xdc.rov.ViewInfo.create({
   131                viewMap: [
   132                    ['Basic',
   133                        {
   134                            type: xdc.rov.ViewInfo.INSTANCE,
   135                            viewInitFxn: 'viewInitBasic',
   136                            structName: 'BasicView'
   137                        }
   138                    ],
   139                    ['Records',
   140                        {
   141                            type: xdc.rov.ViewInfo.INSTANCE_DATA,
   142                            viewInitFxn: 'viewInitRecords',
   143                            structName: 'RecordView'
   144                        }
   145                    ]
   146                ]
   147            });
   148
   149        /*!
   150         *  ======== StopModeData ========
   151         *  Data added to the RTA MetaData file to support stop mode RTA
   152         */
   153        @XmlDtd metaonly struct StopModeData {
   154            String bufferSymbol;
   155            Int bufferSize;
   156        }
   157
   158        /*!
   159         *  ======== E_badLevel ========
   160         *  Error raised if get or setFilterLevel receives a bad level value
   161         */
   162        config Error.Id E_badLevel =
   163            {msg: "E_badLevel: Bad filter level value: %d"};
   164
   165        /*!
   166         *  ======== TimestampProxy ========
   167         *  User supplied time-stamp proxy
   168         *
   169         *  This proxy allows `LoggerBuf` to use a timestamp server different
   170         *  from the server used by `{@link xdc.runtime.Timestamp}`. However, if
   171         *  not supplied by a user, this proxy defaults to whichever timestamp
   172         *  server is used by `Timestamp`.
   173         */
   174        proxy TimestampProxy inherits ITimestampClient;
   175
   176        /*!
   177         *  ======== enableFlush ========
   178         *  Flush all logs at system exit
   179         */
   180        config Bool enableFlush = false;
   181
   182        /*!
   183         *  ======== statusLogger ========
   184         *  Route all 'STATUS' (error and warning) events to this logger.
   185         *
   186         *  If a statusLogger is specified, all LoggerBuf instances will check to
   187         *  determine if any of the events they receive are errors or warnings (if
   188         *  their diags mask includes the STATUS category), and will log these
   189         *  events to the statusLogger.
   190         *
   191         *  Error events are infrequent, but it's generally critical that they be
   192         *  seen. In a typical system, non-error events easily outnumber any error
   193         *  events, and the logger is likely to wrap, overwriting any error events.
   194         *  To protect these events from being overwritten and lost, they can be
   195         *  sent to their own separate logger to preserve them.
   196         *
   197         *  The default value is null, indicating that the STATUS events will just
   198         *  be logged by the logger they were sent to.
   199         */
   200        config ILogger.Handle statusLogger = null;
   201
   202        /*!
   203         *  ======== level1Mask ========
   204         *  Mask of diags categories whose initial filtering level is Diags.LEVEL1
   205         *
   206         *  See '{@link #level4Mask}' for details.
   207         */
   208        config Diags.Mask level1Mask = 0;
   209
   210        /*!
   211         *  ======== level2Mask ========
   212         *  Mask of diags categories whose initial filtering level is Diags.LEVEL2
   213         *
   214         *  See '{@link #level4Mask}' for details.
   215         */
   216        config Diags.Mask level2Mask = 0;
   217
   218        /*!
   219         *  ======== level3Mask ========
   220         *  Mask of diags categories whose initial filtering level is Diags.LEVEL3
   221         *
   222         *  See '{@link #level4Mask}' for details.
   223         */
   224        config Diags.Mask level3Mask = 0;
   225
   226        /*!
   227         *  ======== level4Mask ========
   228         *  Mask of diags categories whose initial filtering level is Diags.LEVEL4
   229         *
   230         *  If `{@link IFilterLogger.filterByLevel}` is `true`, then all
   231         *  `LoggerBuf` instances will filter incoming events based on their
   232         *  event level.
   233         *
   234         *  The `LoggerBuf` module allows for specifying a different filter level
   235         *  for every `Diags` bit. These filtering levels are module wide;
   236         *  `LoggerBuf` does not support specifying the levels on a per-instance
   237         *  basis.
   238         *
   239         *  The `{@link IFilterLogger.setFilterLevel}` function can be used to
   240         *  change the filtering levels at runtime.
   241         *
   242         *  The default filtering levels are assigned using the `level1Mask` -
   243         *  `level4Mask` config parameters. These are used to specify, for each of
   244         *  the four event levels, the set of bits which should filter at that
   245         *  level by default.
   246         *
   247         *  The default filtering configuration sets the filter level to
   248         *  `Diags.LEVEL4` for all logging-related diags bits so that all events
   249         *  are logged by default.
   250         */
   251        config Diags.Mask level4Mask = Diags.ALL_LOGGING;
   252
   253        /*!
   254         *  ======== flushAll ========
   255         *  Flush logs of all instances that set `exitFlush` to true
   256         *
   257         *  The user is responsible for making sure that no `LoggerBuf` instances
   258         *  are created or deleted during the execution of this function.
   259         */
   260        Void flushAll();
   261
   262        /*!
   263         *  ======== flushAllInternal ========
   264         *  @_nodoc
   265         */
   266        Void flushAllInternal(Int stat);
   267
   268        /*!
   269         *  ======== initDecoder ========
   270         * @_nodoc
   271         *  Initialize the LoggerBufDecoder for use in the LoggerBuf 'Records' ROV
   272         *  view.
   273         */
   274        function initDecoder();
   275
   276    instance:
   277        /*!
   278         *  ======== create ========
   279         *  Create a `LoggerBuf` logger
   280         *
   281         *  @see LoggerBuf#Params
   282         */
   283        create();
   284
   285        /*!
   286         *  ======== numEntries ========
   287         *  Number of entries in buffer
   288         *
   289         *  Each entry is large enough to store one `Log` event containing up to
   290         *  4 optional arguments.  Events containing more than 4 arguments (such
   291         *  as those from `{@link Log#write5}`) use 2 entries.
   292         *
   293         *  `numEntries` must be a power of 2.
   294         */
   295        config Int numEntries = 64;
   296
   297        /*!
   298         *  ======== bufType ========
   299         *  Log buffer type
   300         */
   301        config BufType bufType = BufType_CIRCULAR;
   302
   303        /*!
   304         *  ======== exitFlush ========
   305         *  Flush log at system exit
   306         *
   307         *  Only used when module parameter `{@link #enableFlush}` is `true`.
   308         */
   309        config Bool exitFlush = false;
   310
   311        /*!
   312         *  ======== bufSection ========
   313         *  Section name for the buffer managed by the static instance.
   314         *
   315         *  The default section is the 'dataSection' in the platform.
   316         */
   317        metaonly config String bufSection = null;
   318
   319        /*!
   320         *  ======== bufHeap ========
   321         *  The heap that contains the `Log` buffer for dynamic instances.
   322         *
   323         *  The default value `null` means the buffer will be allocated from
   324         *  the `{@link Memory#defaultHeapInstance}` heap.
   325         */
   326        config IHeap.Handle bufHeap = null;
   327
   328        /*!
   329         *  ======== reset ========
   330         *  Reset a log to empty state and enable it
   331         *
   332         *  @a(WARNING)  This method is not synchronized with other instance
   333         *  methods and, as a result, it must never be called when there is a
   334         *  chance that another instance method is currently in operation or
   335         *  when another method on this instance may preempt this call.
   336         */
   337        Void reset();
   338
   339        /*!
   340         *  ======== flush ========
   341         *  Read, clear, and output the contents of the log
   342         *
   343         *  This method reads, clears, and "prints" each `Log` event (via
   344         *  `{@link System#printf}`) in the log.
   345         */
   346        Void flush();
   347
   348        /*!
   349         *  ======== getNextEntry ========
   350         *  Fills the passed `{@link Log#EventRec}` with the next entry in the log.
   351         *
   352         *  This function is used to read and clear `Log` events from the
   353         *  buffer maintained by the `LoggerBuf` instance. The `Log` event can
   354         *  then be transmitted and displayed on a host.
   355         *
   356         *  A read pointer is maintained in the `LoggerBuf` instance and
   357         *  points to the next record to read.  Entries are not necessarily
   358         *  returned in chronological order, since buffers of type
   359         *  `{@link #BufType_CIRCULAR}` can wrap.
   360         *
   361         *  @param(evtRec) pointer to a supplied `EventRec` object where the next
   362         *                 entry in the log is copied to
   363         *
   364         *  @a(returns)
   365         *  This function reports the number of entries actually read. The only
   366         *  values that can be returned are:
   367         *  @p(blist)
   368         *      - 0   no more entries to read
   369         *      - 1 or 2 read a complete entry written by `write4` or `write8`
   370         *      - -1  cleared an incomplete/overwritten entry, more entries to read
   371         */
   372        Int getNextEntry(Log.EventRec *evtRec);
   373
   374    internal:
   375
   376        Bool filterOutEvent(Diags.Mask mask);
   377
   378        const Int8 FULL = -1;
   379        const Int8 WRAP = 0;
   380
   381        const Int8 NEXT = 1;
   382
   383        struct Entry {
   384            Types.Timestamp64 tstamp;
   385            Bits32 serial;
   386            Types.Event evt;
   387            IArg arg1;
   388            IArg arg2;
   389            IArg arg3;
   390            IArg arg4;
   391        };
   392
   393        struct Module_State {
   394            Diags.Mask level1;
   395            Diags.Mask level2;
   396            Diags.Mask level3;
   397        };
   398
   399        struct Instance_State {
   400            IHeap.Handle bufHeap;
   401            Entry entryArr[];
   402            Entry *curEntry;
   403            Entry *endEntry;
   404            Entry *readEntry;
   405            Bits32 serial;
   406            Int16 numEntries;
   407            Int8 advance;
   408            Bool enabled;
   409            Bool flush;
   410        };
   411
   412    }
   413    /*
   414     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   415     */
   416


module xdc.runtime.LoggerCallback
index URL

A logger that passes events to a user supplied callback function

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in xdc/runtime/LoggerCallback.xdc
#include <xdc/runtime/LoggerCallback.h>
Functions
Void | LoggerCallback_construct// Initialize a new instance object inside the provided structure(LoggerCallback_Struct *structP, const LoggerCallback_Params *params);
LoggerCallback_Handle | LoggerCallback_create// Allocate and initialize a new instance object and return its handle(const LoggerCallback_Params *params, Error_Block *eb);
Void | LoggerCallback_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(LoggerCallback_Handle *handleP);
Void | LoggerCallback_destruct// Finalize the instance object inside the provided structure(LoggerCallback_Struct *structP);
Void | LoggerCallback_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(LoggerCallback_Params *params);
Functions common to all ILogger modules
Bool | LoggerCallback_disable// Disable a log(LoggerCallback_Handle handle);
Bool | LoggerCallback_enable// Enable a log(LoggerCallback_Handle handle);
Void | LoggerCallback_write0// Process a log event with 0 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid);
Void | LoggerCallback_write1// Process a log event with 1 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
Void | LoggerCallback_write2// Process a log event with 2 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
Void | LoggerCallback_write4// Process a log event with up to 4 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
Void | LoggerCallback_write8// Process a log event with up to 8 arguments(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
Functions common to all target instances
 | LoggerCallback_handle// Convert this instance structure pointer into an instance handle, LoggerCallback_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, LoggerCallback_Handle_label// The label associated with this instance object, LoggerCallback_Handle_name// The name of this instance object, LoggerCallback_Handle_upCast// unconditionally move one level up the inheritance hierarchy, LoggerCallback_Object_count// The number of statically-created instance objects, LoggerCallback_Object_first// The handle of the first dynamically-created instance object, or NULL, LoggerCallback_Object_get// The handle of the i-th statically-created instance object (array == NULL), LoggerCallback_Object_heap// The heap used to allocate dynamically-created instance objects, LoggerCallback_Object_next// The handle of the next dynamically-created instance object, or NULL, LoggerCallback_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | LoggerCallback_Module_getMask// Returns the diagnostics mask for this module, LoggerCallback_Module_hasMask// Test whether this module has a diagnostics mask, LoggerCallback_Module_heap// The heap from which this module allocates memory, LoggerCallback_Module_id// Get this module's unique id, LoggerCallback_Module_setMask// Set the diagnostics mask for this module, LoggerCallback_Module_startupDone// Test if this module has completed startup
Typedefs
typedef UArg | (*LoggerCallback_CreateInstFxn// Logger instance create callback function signature)(UArg);
typedef LoggerCallback_Object * | LoggerCallback_Handle// Client reference to an instance object;
typedef struct | LoggerCallback_Object// Opaque internal representation of an instance object LoggerCallback_Object;
typedef Void | (*LoggerCallback_OutputFxn// Character output callback function signature)(UArg,Log_EventRec*,Int);
typedef struct | LoggerCallback_Params// Instance config-params structure ...
typedef struct | LoggerCallback_Struct// Opaque client structure large enough to hold an instance object LoggerCallback_Struct;
Constants
extern const LoggerCallback_CreateInstFxn | LoggerCallback_createInstFxn// User supplied logger instance create function;
extern const LoggerCallback_OutputFxn | LoggerCallback_outputFxn// User supplied character callback function;
EXAMPLES
Configuration example: The following XDC configuration statements create a logger instance, plugs in the user defined functions, assign it as the default logger for all modules, and enable USER1 logging in all all modules of the package my.pkg. See the Diags.setMaskMeta() function for details on specifying the module names.
  var Defaults = xdc.useModule('xdc.runtime.Defaults');
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var LoggerCallback = xdc.useModule('xdc.runtime.LoggerCallback');
  LoggerCallback.outputFxn = "&userOutputFunc";
  LoggerCallback.createInstFxn = "&userCreateInstFunc";

  var loggerParams = new Logger.Params();
  loggerParams.arg = 1;
  Defaults.common$.logger = LoggerCallback.create(loggerParams);
  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
typedef LoggerCallback_CreateInstFxn
index URL

Logger instance create callback function signature

C synopsis target-domain
typedef UArg (*LoggerCallback_CreateInstFxn)(UArg);
DETAILS
LoggerCallback.arg is passed as an argument to this function. The return value from this function will be passed as an argument to the outputFxn. In case of multiple LoggerCallback instances, the return value can be used in outputFxn` to differentiate among the instances.
typedef LoggerCallback_OutputFxn
index URL

Character output callback function signature

C synopsis target-domain
typedef Void (*LoggerCallback_OutputFxn)(UArg,Log_EventRec*,Int);
DETAILS
The first argument is the parameter returned by the call to createInstFxn. The second argument is a pointer to Log.EventRec record. The third argument is the number of arguments inLog.EventRec
Note: Only evt and arg fields in Log_EventRec record are filled and passed to the user supplied function.
config LoggerCallback_createInstFxn // module-wide
index URL

User supplied logger instance create function

C synopsis target-domain
extern const LoggerCallback_CreateInstFxn LoggerCallback_createInstFxn;
DETAILS
This function is called when the LoggerCallback.create is called.
By default, this function is configured with a default create function. The default create function returns 0 always.
config LoggerCallback_outputFxn // module-wide
index URL

User supplied character callback function

C synopsis target-domain
extern const LoggerCallback_OutputFxn LoggerCallback_outputFxn;
DETAILS
This function is called when the Log module needs to output an event. e.g. Log.write4() or Log.print2()
By default, this function is configured with a default output function. The default function does nothing and returns.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId LoggerCallback_Module_id();
// Get this module's unique id
Bool LoggerCallback_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle LoggerCallback_Module_heap();
// The heap from which this module allocates memory
Bool LoggerCallback_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 LoggerCallback_Module_getMask();
// Returns the diagnostics mask for this module
Void LoggerCallback_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct LoggerCallback_Object LoggerCallback_Object;
// Opaque internal representation of an instance object
typedef LoggerCallback_Object *LoggerCallback_Handle;
// Client reference to an instance object
typedef struct LoggerCallback_Struct LoggerCallback_Struct;
// Opaque client structure large enough to hold an instance object
LoggerCallback_Handle LoggerCallback_handle(LoggerCallback_Struct *structP);
// Convert this instance structure pointer into an instance handle
LoggerCallback_Struct *LoggerCallback_struct(LoggerCallback_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct LoggerCallback_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
    UArg arg;
    // User supplied argument for the user supplied create function
} LoggerCallback_Params;
Void LoggerCallback_Params_init(LoggerCallback_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config LoggerCallback_arg // instance
index URL

User supplied argument for the user supplied create function

C synopsis target-domain
struct LoggerCallback_Params {
     ...
    UArg arg;
DETAILS
This user supplied argument will be passed back as an argument to the createInstFxn function. It can be used by the LoggerCallback.createInstFxn function at runtime to differentiate between the multiple logger instances configured in the user config script.
The user can skip configuring this argument. In such a case, the default value 0 will be passed back as an argument to the createInstFxn function.
Instance Creation
index URL

C synopsis target-domain
LoggerCallback_Handle LoggerCallback_create(const LoggerCallback_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void LoggerCallback_construct(LoggerCallback_Struct *structP, const LoggerCallback_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
Instance Deletion
index URL

C synopsis target-domain
Void LoggerCallback_delete(LoggerCallback_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void LoggerCallback_destruct(LoggerCallback_Struct *structP);
// Finalize the instance object inside the provided structure
LoggerCallback_disable() // instance
index URL

Disable a log

C synopsis target-domain
Bool LoggerCallback_disable(LoggerCallback_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Events written to a disabled log are silently discarded.
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerCallback_enable() // instance
index URL

Enable a log

C synopsis target-domain
Bool LoggerCallback_enable(LoggerCallback_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerCallback_write0() // instance
index URL

Process a log event with 0 arguments

C synopsis target-domain
Void LoggerCallback_write0(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Same as write4 except with 0 arguments rather than 4.
SEE
ILogger.write4()
LoggerCallback_write1() // instance
index URL

Process a log event with 1 arguments

C synopsis target-domain
Void LoggerCallback_write1(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Same as write4 except with 1 arguments rather than 4.
SEE
ILogger.write4()
LoggerCallback_write2() // instance
index URL

Process a log event with 2 arguments

C synopsis target-domain
Void LoggerCallback_write2(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Same as write4 except with 2 arguments rather than 4.
SEE
ILogger.write4()
LoggerCallback_write4() // instance
index URL

Process a log event with up to 4 arguments

C synopsis target-domain
Void LoggerCallback_write4(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
evt — event to be logged
mid — module ID of the module which logged the event
a1 — arbitrary argument passed by caller
DETAILS
The evt argument is of type Log.Event, which encodes the Log.EventId, the Diags.Mask, and the Diags.EventLevel of the event. The event ID can be obtained via Types.getEventId(evt), the Diags mask can be obtained via Diags.getMask(evt), and the event level can be obtained via Diags.getLevel(evt).
The modId argument is the module ID of the module that logged the event.
The event information can be used by the logger to handle different events specially. For example, the event ID can be used to compare against other known Log.Events.
      if (Log_getEventId(MY_EVENT) == Log_getEventId(evt)) {
          :
      }
The Diags mask and event level can be used for filtering of events based on event level (see IFilterLogger), or even routing events to separate loggers based on diags category (see, for example, LoggerBuf.statusLogger).
The Diags mask and event level are useful for handling the event, but are generally not recorded by the logger because they are not needed in decoding and displaying the event. A more suitable value to record is a Types.Event, which encodes the event ID and module ID. For example, the Log.EventRec type stores a Types.Event in its record definition. A Types.Event can be created using the Types.makeEvent API given the event ID and module ID.
The event ID value of 0 is used to indicate an event triggered by a call to one of the Log_print[0-6] methods. These methods take a format string rather than a Log_Event argument and, as a result, the event ID encoded in evt is 0 and the parameter a1 is the format string.
Non-zero event IDs can also be used to access the msg string associated with the Log.EventDesc that originally defined the Log event.
      Log_EventId id = Log_getEventId(evt));
      if (id != 0) {
          String msg = Text_ropeText(id);
          System_aprintf(msg, a1, a2, a3, a4);
      }
This works because an event's ID is simply an offset into a table of characters (maintained by the Text module) containing the event's msg string.
The arguments a1, a2, etc. are parameters that are to be interpreted according to the message format string associated with evt.
SEE
Log.Event, Log.EventDesc, Text.ropeText, Log.getEventId
LoggerCallback_write8() // instance
index URL

Process a log event with up to 8 arguments

C synopsis target-domain
Void LoggerCallback_write8(LoggerCallback_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
ARGUMENTS
handle — handle of a previously-created LoggerCallback instance object
DETAILS
Same as write4 except with 8 arguments rather than 4.
SEE
ILogger.write4()
Instance Convertors
index URL

C synopsis target-domain
ILogger_Handle LoggerCallback_Handle_upCast(LoggerCallback_Handle handle);
// unconditionally move one level up the inheritance hierarchy
LoggerCallback_Handle LoggerCallback_Handle_downCast(ILogger_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int LoggerCallback_Object_count();
// The number of statically-created instance objects
LoggerCallback_Handle LoggerCallback_Object_get(LoggerCallback_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
LoggerCallback_Handle LoggerCallback_Object_first();
// The handle of the first dynamically-created instance object, or NULL
LoggerCallback_Handle LoggerCallback_Object_next(LoggerCallback_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle LoggerCallback_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *LoggerCallback_Handle_label(LoggerCallback_Handle handle, Types_Label *buf);
// The label associated with this instance object
String LoggerCallback_Handle_name(LoggerCallback_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/LoggerCallback.xdc
var LoggerCallback = xdc.useModule('xdc.runtime.LoggerCallback');
module-wide config parameters
     LoggerCallback.createInstFxn// User supplied logger instance create function = UArg(*)(UArg) "&xdc_runtime_LoggerCallback_defaultCreate";
     LoggerCallback.outputFxn// User supplied character callback function = Void(*)(UArg,Log.EventRec*,Int) "&xdc_runtime_LoggerCallback_defaultOutput";
     LoggerCallback.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     LoggerCallback.getMetaArgs// Returns any meta data needed to support RTA(Any inst, Any instNum) returns Any
per-instance config parameters
    var params = new LoggerCallback.Params// Instance config-params object;
        params.arg// User supplied argument for the user supplied create function = UArg 0;
per-instance creation
    var inst = LoggerCallback.create// Create an instance-object(params);
config LoggerCallback.createInstFxn // module-wide
index URL

User supplied logger instance create function

XDCscript usage meta-domain
LoggerCallback.createInstFxn = UArg(*)(UArg) "&xdc_runtime_LoggerCallback_defaultCreate";
DETAILS
This function is called when the LoggerCallback.create is called.
By default, this function is configured with a default create function. The default create function returns 0 always.
C SYNOPSIS
LoggerCallback_createInstFxn
config LoggerCallback.outputFxn // module-wide
index URL

User supplied character callback function

XDCscript usage meta-domain
LoggerCallback.outputFxn = Void(*)(UArg,Log.EventRec*,Int) "&xdc_runtime_LoggerCallback_defaultOutput";
DETAILS
This function is called when the Log module needs to output an event. e.g. Log.write4() or Log.print2()
By default, this function is configured with a default output function. The default function does nothing and returns.
C SYNOPSIS
LoggerCallback_outputFxn
metaonly config LoggerCallback.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
LoggerCallback.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.
metaonly LoggerCallback.getMetaArgs() // module-wide
index URL

Returns any meta data needed to support RTA

XDCscript usage meta-domain
LoggerCallback.getMetaArgs(Any inst, Any instNum) returns Any
DETAILS
This meta data should be returned in the form of a structure which can be converted into XML. This data is added to the RTA XML file during the application's configuration, and can be accessed later through the xdc.rta.MetaData module.
The MetaData is returned per instance of the ILogger module. The instance object is passed to the function as the first argument.
The second argument is the index of the instance in the list of the ILogger's static instances.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LoggerCallback.Params;
// Instance config-params object
    params.arg = UArg 0;
    // User supplied argument for the user supplied create function
config LoggerCallback.arg // instance
index URL

User supplied argument for the user supplied create function

XDCscript usage meta-domain
var params = new LoggerCallback.Params;
...
params.arg = UArg 0;
DETAILS
This user supplied argument will be passed back as an argument to the createInstFxn function. It can be used by the LoggerCallback.createInstFxn function at runtime to differentiate between the multiple logger instances configured in the user config script.
The user can skip configuring this argument. In such a case, the default value 0 will be passed back as an argument to the createInstFxn function.
C SYNOPSIS
null
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LoggerCallback.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LoggerCallback.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
generated on Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.LoggerCallback

     1    /*
     2     *  Copyright (c) 2012 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== LoggerCallback.xdc ========
    15     */
    16    package xdc.runtime;
    17    /*!
    18     *  ======== LoggerCallback ========
    19     *  A logger that passes events to a user supplied callback function
    20     *
    21     *  @a(Examples)
    22     *  Configuration example: The following XDC configuration statements
    23     *  create a logger instance, plugs in the user defined functions, assign it as
    24     *  the default logger for all modules, and enable `USER1` logging in all
    25     *  all modules of the package `my.pkg`. See the
    26     *  `{@link Diags#setMaskMeta Diags.setMaskMeta()}` function for details on
    27     *  specifying the module names.
    28     *
    29     *  @p(code)
    30     *  var Defaults = xdc.useModule('xdc.runtime.Defaults');
    31     *  var Diags = xdc.useModule('xdc.runtime.Diags');
    32     *  var LoggerCallback = xdc.useModule('xdc.runtime.LoggerCallback');
    33     *  LoggerCallback.outputFxn = "&userOutputFunc";
    34     *  LoggerCallback.createInstFxn = "&userCreateInstFunc";
    35     *
    36     *  var loggerParams = new Logger.Params();
    37     *  loggerParams.arg = 1;
    38     *  Defaults.common$.logger = LoggerCallback.create(loggerParams);
    39     *  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
    40     *  @p
    41     */
    42    @ModuleStartup
    43    module LoggerCallback inherits ILogger {
    44
    45        /*!
    46         *  ======== OutputFxn ========
    47         *  Character output callback function signature
    48         *
    49         *  The first argument is the parameter returned by the call to
    50         *  `createInstFxn`.
    51         *  The second argument is a pointer to `{@link Log#EventRec}` record.
    52         *  The third argument is the number of arguments in`{@link Log#EventRec}`
    53         *
    54         *  Note: Only evt and arg fields in `Log_EventRec` record are filled and
    55         *        passed to the user supplied function.
    56         */
    57        typedef Void (*OutputFxn)(UArg, Log.EventRec *, Int);
    58
    59        /*!
    60         *  ======== CreateInstFxn ========
    61         *  Logger instance create callback function signature
    62         *
    63         *  `{@link LoggerCallback#arg} is passed as an argument to this function.
    64         *  The return value from this function will be passed as an argument
    65         *  to the `outputFxn`. In case of multiple LoggerCallback instances, the
    66         *  return value can be used in `outputFxn` to differentiate among the
    67         *  instances.
    68         */
    69        typedef UArg (*CreateInstFxn)(UArg);
    70
    71        /*!
    72         *  ======== outputFxn ========
    73         *  User supplied character callback function
    74         *
    75         *  This function is called when the `Log` module needs to output an event.
    76         *  e.g. `{@link Log#write4()}` or `{@link Log#print2()}`
    77         *
    78         *  By default, this function is configured with a default output function.
    79         *  The default function does nothing and returns.
    80         */
    81        config OutputFxn outputFxn = "&xdc_runtime_LoggerCallback_defaultOutput";
    82
    83        /*!
    84         *  ======== createInstFxn ========
    85         *  User supplied logger instance create function
    86         *
    87         *  This function is called when the `{@link LoggerCallback#create}` is
    88         *  called.
    89         *
    90         *  By default, this function is configured with a default create function.
    91         *  The default create function returns `0` always.
    92         */
    93        config CreateInstFxn createInstFxn = "&xdc_runtime_LoggerCallback_defaultCreate";
    94
    95    instance:
    96
    97        /*!
    98         *  ======== create ========
    99         *  Create a `LoggerCallback` logger instance
   100         */
   101        create();
   102
   103        /*!
   104         *  ======== arg ========
   105         *  User supplied argument for the user supplied create function.
   106         *
   107         *  This user supplied argument will be passed back as an argument to the
   108         *  `createInstFxn` function. It can be used by the
   109         *  `{@link LoggerCallback#createInstFxn}` function at runtime to
   110         *  differentiate between the multiple logger instances configured in the
   111         *  user config script.
   112         *
   113         *  The user can skip configuring this argument. In such a case, the
   114         *  default value `0` will be passed back as an argument to the
   115         *  `createInstFxn` function.
   116         */
   117        config UArg arg = 0;
   118
   119    internal:
   120
   121        struct Instance_State {
   122            Bool enabled;  /* Logger state */
   123            UArg context;  /* Logger instance */
   124            UArg arg;      /* Logger instance create argument */
   125        };
   126    }
   127    /*
   128     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   129     */
   130


module xdc.runtime.LoggerSys
index URL

A logger which routes events to the System_printf function

  • C synopsis
  • Individual elements
  • DETAILS
  • EXAMPLES
  • XDCscript usage
  • Individual elements
This logger processes log events as they are generated and routes them through the System_printf() function. The final disposition of the log event is dependent on which system provider has been assigned to the System.SupportProxy configuration parameter. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/LoggerSys.xdc
#include <xdc/runtime/LoggerSys.h>
Functions
Void | LoggerSys_construct// Initialize a new instance object inside the provided structure(LoggerSys_Struct *structP, const LoggerSys_Params *params);
LoggerSys_Handle | LoggerSys_create// Allocate and initialize a new instance object and return its handle(const LoggerSys_Params *params, Error_Block *eb);
Void | LoggerSys_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(LoggerSys_Handle *handleP);
Void | LoggerSys_destruct// Finalize the instance object inside the provided structure(LoggerSys_Struct *structP);
Void | LoggerSys_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(LoggerSys_Params *params);
Functions common to all ILogger modules
Bool | LoggerSys_disable// Disable a log(LoggerSys_Handle handle);
Bool | LoggerSys_enable// Enable a log(LoggerSys_Handle handle);
Void | LoggerSys_write0// Process a log event with 0 arguments(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid);
Void | LoggerSys_write1// Process a log event with 1 arguments(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
Void | LoggerSys_write2// Process a log event with 2 arguments(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
Void | LoggerSys_write4// Process a log event with up to 4 arguments(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
Void | LoggerSys_write8// Process a log event with up to 8 arguments(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
Functions common to all target instances
 | LoggerSys_handle// Convert this instance structure pointer into an instance handle, LoggerSys_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, LoggerSys_Handle_label// The label associated with this instance object, LoggerSys_Handle_name// The name of this instance object, LoggerSys_Handle_upCast// unconditionally move one level up the inheritance hierarchy, LoggerSys_Object_count// The number of statically-created instance objects, LoggerSys_Object_first// The handle of the first dynamically-created instance object, or NULL, LoggerSys_Object_get// The handle of the i-th statically-created instance object (array == NULL), LoggerSys_Object_heap// The heap used to allocate dynamically-created instance objects, LoggerSys_Object_next// The handle of the next dynamically-created instance object, or NULL, LoggerSys_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | LoggerSys_Module_getMask// Returns the diagnostics mask for this module, LoggerSys_Module_hasMask// Test whether this module has a diagnostics mask, LoggerSys_Module_heap// The heap from which this module allocates memory, LoggerSys_Module_id// Get this module's unique id, LoggerSys_Module_setMask// Set the diagnostics mask for this module, LoggerSys_Module_startupDone// Test if this module has completed startup
Typedefs
typedef LoggerSys_Object * | LoggerSys_Handle// Client reference to an instance object;
typedef struct | LoggerSys_Object// Opaque internal representation of an instance object LoggerSys_Object;
typedef struct | LoggerSys_Params// Instance config-params structure ...
typedef struct | LoggerSys_Struct// Opaque client structure large enough to hold an instance object LoggerSys_Struct;
DETAILS
This logger processes log events as they are generated and routes them through the System_printf() function. The final disposition of the log event is dependent on which system provider has been assigned to the System.SupportProxy configuration parameter.
Note that the log events are processed within the runtime context of the Log_write() or Log_print() function that generated the event. It is important to account for the processing overhead and stack usage imposed on the runtime context. The cost of this processing is defined by the implementation of the system provider.
EXAMPLES
Configuration example: The following XDC configuration statements create a logger instance, assign it as the default logger for all modules, and enable USER1 logging in all modules of the package my.pkg. See the Diags.setMaskMeta() function for details on specifying the module names.
  var Defaults = xdc.useModule('xdc.runtime.Defaults');
  var Diags = xdc.useModule('xdc.runtime.Diags');
  var LoggerSys = xdc.useModule('xdc.runtime.LoggerSys');

  var LoggerSysParams = new LoggerSys.Params();
  Defaults.common$.logger = LoggerSys.create(LoggerSysParams);
  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId LoggerSys_Module_id();
// Get this module's unique id
Bool LoggerSys_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle LoggerSys_Module_heap();
// The heap from which this module allocates memory
Bool LoggerSys_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 LoggerSys_Module_getMask();
// Returns the diagnostics mask for this module
Void LoggerSys_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct LoggerSys_Object LoggerSys_Object;
// Opaque internal representation of an instance object
typedef LoggerSys_Object *LoggerSys_Handle;
// Client reference to an instance object
typedef struct LoggerSys_Struct LoggerSys_Struct;
// Opaque client structure large enough to hold an instance object
LoggerSys_Handle LoggerSys_handle(LoggerSys_Struct *structP);
// Convert this instance structure pointer into an instance handle
LoggerSys_Struct *LoggerSys_struct(LoggerSys_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct LoggerSys_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} LoggerSys_Params;
Void LoggerSys_Params_init(LoggerSys_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
LoggerSys_Handle LoggerSys_create(const LoggerSys_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void LoggerSys_construct(LoggerSys_Struct *structP, const LoggerSys_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
The logger instance will route all log events it receives to the System.printf function.
Instance Deletion
index URL

C synopsis target-domain
Void LoggerSys_delete(LoggerSys_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void LoggerSys_destruct(LoggerSys_Struct *structP);
// Finalize the instance object inside the provided structure
LoggerSys_disable() // instance
index URL

Disable a log

C synopsis target-domain
Bool LoggerSys_disable(LoggerSys_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerSys instance object
DETAILS
Events written to a disabled log are silently discarded.
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerSys_enable() // instance
index URL

Enable a log

C synopsis target-domain
Bool LoggerSys_enable(LoggerSys_Handle handle);
ARGUMENTS
handle — handle of a previously-created LoggerSys instance object
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
LoggerSys_write0() // instance
index URL

Process a log event with 0 arguments

C synopsis target-domain
Void LoggerSys_write0(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid);
ARGUMENTS
handle — handle of a previously-created LoggerSys instance object
DETAILS
Same as write4 except with 0 arguments rather than 4.
SEE
ILogger.write4()
LoggerSys_write1() // instance
index URL

Process a log event with 1 arguments

C synopsis target-domain
Void LoggerSys_write1(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
ARGUMENTS
handle — handle of a previously-created LoggerSys instance object
DETAILS
Same as write4 except with 1 arguments rather than 4.
SEE
ILogger.write4()
LoggerSys_write2() // instance
index URL

Process a log event with 2 arguments

C synopsis target-domain
Void LoggerSys_write2(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
ARGUMENTS
handle — handle of a previously-created LoggerSys instance object
DETAILS
Same as write4 except with 2 arguments rather than 4.
SEE
ILogger.write4()
LoggerSys_write4() // instance
index URL

Process a log event with up to 4 arguments

C synopsis target-domain
Void LoggerSys_write4(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
ARGUMENTS
handle — handle of a previously-created LoggerSys instance object
evt — event to be logged
mid — module ID of the module which logged the event
a1 — arbitrary argument passed by caller
DETAILS
The evt argument is of type Log.Event, which encodes the Log.EventId, the Diags.Mask, and the Diags.EventLevel of the event. The event ID can be obtained via Types.getEventId(evt), the Diags mask can be obtained via Diags.getMask(evt), and the event level can be obtained via Diags.getLevel(evt).
The modId argument is the module ID of the module that logged the event.
The event information can be used by the logger to handle different events specially. For example, the event ID can be used to compare against other known Log.Events.
      if (Log_getEventId(MY_EVENT) == Log_getEventId(evt)) {
          :
      }
The Diags mask and event level can be used for filtering of events based on event level (see IFilterLogger), or even routing events to separate loggers based on diags category (see, for example, LoggerBuf.statusLogger).
The Diags mask and event level are useful for handling the event, but are generally not recorded by the logger because they are not needed in decoding and displaying the event. A more suitable value to record is a Types.Event, which encodes the event ID and module ID. For example, the Log.EventRec type stores a Types.Event in its record definition. A Types.Event can be created using the Types.makeEvent API given the event ID and module ID.
The event ID value of 0 is used to indicate an event triggered by a call to one of the Log_print[0-6] methods. These methods take a format string rather than a Log_Event argument and, as a result, the event ID encoded in evt is 0 and the parameter a1 is the format string.
Non-zero event IDs can also be used to access the msg string associated with the Log.EventDesc that originally defined the Log event.
      Log_EventId id = Log_getEventId(evt));
      if (id != 0) {
          String msg = Text_ropeText(id);
          System_aprintf(msg, a1, a2, a3, a4);
      }
This works because an event's ID is simply an offset into a table of characters (maintained by the Text module) containing the event's msg string.
The arguments a1, a2, etc. are parameters that are to be interpreted according to the message format string associated with evt.
SEE
Log.Event, Log.EventDesc, Text.ropeText, Log.getEventId
LoggerSys_write8() // instance
index URL

Process a log event with up to 8 arguments

C synopsis target-domain
Void LoggerSys_write8(LoggerSys_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
ARGUMENTS
handle — handle of a previously-created LoggerSys instance object
DETAILS
Same as write4 except with 8 arguments rather than 4.
SEE
ILogger.write4()
Instance Convertors
index URL

C synopsis target-domain
ILogger_Handle LoggerSys_Handle_upCast(LoggerSys_Handle handle);
// unconditionally move one level up the inheritance hierarchy
LoggerSys_Handle LoggerSys_Handle_downCast(ILogger_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int LoggerSys_Object_count();
// The number of statically-created instance objects
LoggerSys_Handle LoggerSys_Object_get(LoggerSys_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
LoggerSys_Handle LoggerSys_Object_first();
// The handle of the first dynamically-created instance object, or NULL
LoggerSys_Handle LoggerSys_Object_next(LoggerSys_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle LoggerSys_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *LoggerSys_Handle_label(LoggerSys_Handle handle, Types_Label *buf);
// The label associated with this instance object
String LoggerSys_Handle_name(LoggerSys_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/LoggerSys.xdc
var LoggerSys = xdc.useModule('xdc.runtime.LoggerSys');
local proxy modules
     LoggerSys.TimestampProxy// User supplied time-stamp proxy = ITimestampClient.Module null
         LoggerSys.TimestampProxy.delegate$ = ITimestampClient.Module null
module-wide config parameters
     LoggerSys.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     LoggerSys.getMetaArgs// Returns any meta data needed to support RTA(Any inst, Any instNum) returns Any
per-instance config parameters
    var params = new LoggerSys.Params// Instance config-params object;
per-instance creation
    var inst = LoggerSys.create// Create an instance-object(params);
proxy LoggerSys.TimestampProxy
index URL

User supplied time-stamp proxy

XDCscript usage meta-domain
LoggerSys.TimestampProxy = ITimestampClient.Module null
// some delegate module inheriting the ITimestampClient interface
    LoggerSys.TimestampProxy.delegate$ = ITimestampClient.Module null
    // explicit access to the currently bound delegate module
DETAILS
This proxy allows LoggerSys to use a timestamp server different from the server used by xdc.runtime.Timestamp. However, if not supplied by a user, this proxy defaults to whichever timestamp server is used by Timestamp.
metaonly config LoggerSys.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
LoggerSys.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.
metaonly LoggerSys.getMetaArgs() // module-wide
index URL

Returns any meta data needed to support RTA

XDCscript usage meta-domain
LoggerSys.getMetaArgs(Any inst, Any instNum) returns Any
DETAILS
This meta data should be returned in the form of a structure which can be converted into XML. This data is added to the RTA XML file during the application's configuration, and can be accessed later through the xdc.rta.MetaData module.
The MetaData is returned per instance of the ILogger module. The instance object is passed to the function as the first argument.
The second argument is the index of the instance in the list of the ILogger's static instances.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new LoggerSys.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new LoggerSys.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LoggerSys.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
The logger instance will route all log events it receives to the System.printf function.
generated on Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.LoggerSys

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== LoggerSys.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== LoggerSys ========
    19     *  A logger which routes events to the `System_printf` function.
    20     *
    21     *  This logger processes log events as they are generated and routes
    22     *  them through the `{@link System#printf System_printf()}` function.
    23     *  The final disposition of the log event is dependent on which system
    24     *  provider has been assigned to the
    25     *  `{@link System#SupportProxy System.SupportProxy}` configuration parameter.
    26     *
    27     *  Note that the log events are processed within the runtime context
    28     *  of the `{@link Log Log_write()}` or `{@link Log Log_print()}` function
    29     *  that generated the event. It is important to account for the processing
    30     *  overhead and stack usage imposed on the runtime context. The cost of
    31     *  this processing is defined by the implementation of the system provider.
    32     *
    33     *  @a(Examples)
    34     *  Configuration example: The following XDC configuration statements
    35     *  create a logger instance, assign it as the default logger for all
    36     *  modules, and enable `USER1` logging in all modules of the package
    37     *  `my.pkg`. See the `{@link Diags#setMaskMeta Diags.setMaskMeta()}` function
    38     *  for details on specifying the module names.
    39     *
    40     *  @p(code)
    41     *  var Defaults = xdc.useModule('xdc.runtime.Defaults');
    42     *  var Diags = xdc.useModule('xdc.runtime.Diags');
    43     *  var LoggerSys = xdc.useModule('xdc.runtime.LoggerSys');
    44     *
    45     *  var LoggerSysParams = new LoggerSys.Params();
    46     *  Defaults.common$.logger = LoggerSys.create(LoggerSysParams);
    47     *  Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);
    48     *  @p
    49     */
    50
    51    module LoggerSys inherits ILogger {
    52
    53        /*!
    54         *  ======== ITimestampProxy ========
    55         *  User supplied time-stamp proxy
    56         *
    57         *  This proxy allows `LoggerSys` to use a timestamp server different
    58         *  from the server used by `{@link xdc.runtime.Timestamp}`. However, if
    59         *  not supplied by a user, this proxy defaults to whichever timestamp
    60         *  server is used by `Timestamp`.
    61         */
    62        proxy TimestampProxy inherits ITimestampClient;
    63
    64    instance:
    65
    66        /*!
    67         *  ======== create ========
    68         *  Create a `LoggerSys` logger
    69         *
    70         *  The logger instance will route all log events it receives to
    71         *  the {@link System#printf} function.
    72         */
    73        create();
    74
    75    internal:
    76
    77        struct Instance_State {
    78            Bool enabled;
    79        };
    80    }
    81    /*
    82     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    83     */
    84


module xdc.runtime.Main
index URL

Configuration "stand-in" for application code

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module is used to enable "module" configuration of application code that is not part of a module. Configuration of this Main module is used for all code not in a module. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Main.xdc
#include <xdc/runtime/Main.h>
Functions common to all target modules
Main_Module_getMask// Returns the diagnostics mask for this module, Main_Module_hasMask// Test whether this module has a diagnostics mask, Main_Module_heap// The heap from which this module allocates memory, Main_Module_id// Get this module's unique id, Main_Module_setMask// Set the diagnostics mask for this module, Main_Module_startupDone// Test if this module has completed startup
DETAILS
This module is used to enable "module" configuration of application code that is not part of a module. Configuration of this Main module is used for all code not in a module.
For example, an ILogger "service provider" for all code that is not in a RTSC module can be configured by setting this module's logger; when code that is not in a module calls Log_print(), for example, this module's ILogger handles the event.
Since this module is "gated", the user can also assign a gate to this module for use by any code that is not in a module. This gate can be used to serialize access to global data by multiple threads in the system.
      #include <xdc/runtime/Main.h>
      #include <xdc/runtime/Gate.h>
          :
      int global = 0;
      int main() {
          :       // create a bunch of threads
      }

      void thread() {
          IArg key = Gate_enterModule();  // enter critical section
          global++;                       // safely update global data
          Gate_leaveModule(key);          // leave critical section
      }
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Main_Module_id();
// Get this module's unique id
Bool Main_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Main_Module_heap();
// The heap from which this module allocates memory
Bool Main_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Main_Module_getMask();
// Returns the diagnostics mask for this module
Void Main_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Main.xdc
var Main = xdc.useModule('xdc.runtime.Main');
module-wide config parameters
     Main.common$// Common module configuration parameters = Types.Common$ undefined;
metaonly config Main.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Main.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 Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.Main

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Main.xdc ========
    15     */
    16
    17    package xdc.runtime;
    18
    19    /*!
    20     *  ======== Main ========
    21     *  Configuration "stand-in" for application code.
    22     *
    23     *  This module is used to enable "module" configuration of application code
    24     *  that is not part of a module.  Configuration of this `Main` module is
    25     *  used for all code not in a module.
    26     *
    27     *  For example, an `ILogger` "service provider" for all code that is not in
    28     *  a RTSC module can be configured by setting this module's `logger`;  when
    29     *  code that is not in a module calls `Log_print()`, for example, this
    30     *  module's `ILogger` handles the event.
    31     *
    32     *  Since this module is "gated", the user can also assign a gate to this
    33     *  module for use by any code that is not in a module.  This gate can be used
    34     *  to serialize access to global data by multiple threads in the system.
    35     *  @p(code)
    36     *      #include <xdc/runtime/Main.h>
    37     *      #include <xdc/runtime/Gate.h>
    38     *          :
    39     *      int global = 0;
    40     *      int main() {
    41     *          :       // create a bunch of threads
    42     *      }
    43     *
    44     *      void thread() {
    45     *          IArg key = Gate_enterModule();  // enter critical section
    46     *          global++;                       // safely update global data
    47     *          Gate_leaveModule(key);          // leave critical section
    48     *      }
    49     *  @p
    50     */
    51    @Gated module Main {
    52
    53    };
    54
    55    /*
    56     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    57     */
    58


module xdc.runtime.Memory
index URL

Static and run-time memory manager

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
All memory allocations are performed either by
  Memory.staticPlace() at build time or through
  Memory_alloc() (or its varients Memory_calloc(),
  Memory_valloc(), etc.) at run-time.
[ more ... ]
C synopsis target-domain sourced in xdc/runtime/Memory.xdc
#include <xdc/runtime/Memory.h>
Functions
Ptr | Memory_alloc// Allocate a block of memory from a heap(IHeap_Handle heap, SizeT size, SizeT align, Error_Block *eb);
Ptr | Memory_calloc// Allocate a block of memory from a heap and zero out the contents(IHeap_Handle heap, SizeT size, SizeT align, Error_Block *eb);
Void | Memory_free// Frees the space if the heap manager offers such functionality(IHeap_Handle heap, Ptr block, SizeT size);
SizeT | Memory_getMaxDefaultTypeAlign// Return the largest alignment required by the target();
Void | Memory_getStats// Obtain statistics from a heap(IHeap_Handle heap, Memory_Stats *stats);
Bool | Memory_query// Test for a particular xdc.runtime.IHeap quality(IHeap_Handle heap, Int qual);
Ptr | Memory_valloc// Allocate a block of memory from a heap and initialize the contents to the value specified(IHeap_Handle heap, SizeT size, SizeT align, Char value, Error_Block *eb);
Functions common to all target modules
 | Memory_Module_getMask// Returns the diagnostics mask for this module, Memory_Module_hasMask// Test whether this module has a diagnostics mask, Memory_Module_heap// The heap from which this module allocates memory, Memory_Module_id// Get this module's unique id, Memory_Module_setMask// Set the diagnostics mask for this module, Memory_Module_startupDone// Test if this module has completed startup
Defines
#define | Memory_Q_BLOCKING// Blocking quality (Int)1
Typedefs
typedef UArg | Memory_Size// Type to be used to specify heap buffer sizes;
typedef struct | Memory_Stats// Memory heap statistics ...
Constants
extern const IHeap_Handle | Memory_defaultHeapInstance// The default heap;
DETAILS
All memory allocations are performed either by
  Memory.staticPlace() at build time or through
  Memory_alloc() (or its varients Memory_calloc(),
  Memory_valloc(), etc.) at run-time.
Run-time memory management is performed by modules that implement the xdc.runtime.IHeap interface. The Memory module itself simply provides a common interface for any variety of system and application specific memory management policies implemented by IHeap modules; for example, HeadStd and HeadMin.
Heap instances are created statically or dynamically via heap specific create functions and these instances are then passed as an input parameter to the Memory calls that have a xdc.runtime.IHeap.Handle parameter.
const Memory_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define Memory_Q_BLOCKING (Int)1
DETAILS
xdc.runtime.IHeaps with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
typedef Memory_Size
index URL

Type to be used to specify heap buffer sizes

C synopsis target-domain
typedef UArg Memory_Size;
struct Memory_Stats
index URL

Memory heap statistics

C synopsis target-domain
typedef struct Memory_Stats {
     Memory_Size totalSize;
     Memory_Size totalFreeSize;
     Memory_Size largestFreeSize;
} Memory_Stats;
FIELDS
totalSize — total size (in MADUs) of heap.
totalFreeSize — current size (in MADUs) of free memory in the heap
largestFreeSize — current largest contiguous free block (in MADUs)
DETAILS
This structure defines generic statistics that must be supplied by each module that implements the xdc.runtime.IHeap interface.
config Memory_defaultHeapInstance // module-wide
index URL

The default heap

C synopsis target-domain
extern const IHeap_Handle Memory_defaultHeapInstance;
DETAILS
If no heap is specified in the Memory module's methods (i.e. heap == NULL) defaultHeapInstance is used. If defaultHeapInstance is not set (or set to null), a xdc.runtime.HeapStd heap instance is created and assigned to this configuration parameter. The size of the heap is determined by the defaultHeapSize parameter.
By default, all modules are configured with a null instance heap. Instances created by modules with a null instance heap are allocated from the defaultHeapInstance heap.
Memory_alloc() // module-wide
index URL

Allocate a block of memory from a heap

C synopsis target-domain
Ptr Memory_alloc(IHeap_Handle heap, SizeT size, SizeT align, Error_Block *eb);
ARGUMENTS
heap — heap from which the memory is allocated
The heap is created by a module that implements the xdc.runtime.IHeap interface. If heap is NULL, the defaultHeapInstance is used.
size — requested memory block size (in MADUs)
align — alignment (in MADUs) of the block of memory
A value of 0 denotes maximum default type alignment.
eb — pointer to error block
RETURNS
If the allocation was successful, Memory_alloc() returns non-NULL pointer to the allocated and uninitialized block; otherwise it returns NULL and the error block will indicate the cause of the error.
Memory_calloc() // module-wide
index URL

Allocate a block of memory from a heap and zero out the contents

C synopsis target-domain
Ptr Memory_calloc(IHeap_Handle heap, SizeT size, SizeT align, Error_Block *eb);
ARGUMENTS
heap — heap from which the memory is allocated
The heap is created by a module that implements the xdc.runtime.IHeap interface. If heap is NULL, the defaultHeapInstance is used.
size — requested memory block size (in MADUs)
align — alignment (in MADUs) of the block of memory
A value of 0 denotes maximum default type alignment.
eb — pointer to error block
RETURNS
If the allocation was successful, Memory_calloc() returns non-NULL pointer to the allocated and initialized block; otherwise it returns NULL and the error block will indicate the cause of the error.
Memory_free() // module-wide
index URL

Frees the space if the heap manager offers such functionality

C synopsis target-domain
Void Memory_free(IHeap_Handle heap, Ptr block, SizeT size);
ARGUMENTS
heap — heap that the block of memory will be freed back to.
The heap is created by a module that implements the xdc.runtime.IHeap interface. If heap is NULL, the defaultHeapInstance is used.
block — block of memory to free back to the heap
size — size (in MADUs) of the block of memory to free.
Memory_getMaxDefaultTypeAlign() // module-wide
index URL

Return the largest alignment required by the target

C synopsis target-domain
SizeT Memory_getMaxDefaultTypeAlign();
DETAILS
getMaxDefaultTypeAlign returns the largest alignment required for all the standard base types supported by the current configuration's target (Program.build.target)
This is the runtime version of the getMaxDefaultTypeAlignMeta function.
RETURNS
Returns target-specific alignment in MADUs.
SEE
getMaxDefaultTypeAlignMeta
Memory_getStats() // module-wide
index URL

Obtain statistics from a heap

C synopsis target-domain
Void Memory_getStats(IHeap_Handle heap, Memory_Stats *stats);
ARGUMENTS
heap — the heap to get the statistics from
The heap is created by a module that implements the xdc.runtime.IHeap interface. If heap is NULL, the defaultHeapInstance is used.
stats — the output buffer for the returned statistics
Memory_query() // module-wide
index URL

Test for a particular xdc.runtime.IHeap quality

C synopsis target-domain
Bool Memory_query(IHeap_Handle heap, Int qual);
ARGUMENTS
heap — the heap to query
The heap is created by a module that implements the xdc.runtime.IHeap interface. If heap is NULL, the defaultHeapInstance is queried
qual — quality to test
For example: Q_BLOCKING.
DETAILS
There currently is only one quality, namely Q_BLOCKING.
RETURNS
If heap has the qual quality, this method returns TRUE, otherwise it returns FALSE.
Memory_valloc() // module-wide
index URL

Allocate a block of memory from a heap and initialize the contents to the value specified

C synopsis target-domain
Ptr Memory_valloc(IHeap_Handle heap, SizeT size, SizeT align, Char value, Error_Block *eb);
ARGUMENTS
heap — heap from which the memory is allocated
The heap is created by a module that implements the xdc.runtime.IHeap interface. If heap is NULL, the defaultHeapInstance is used.
size — requested memory block size (in MADUs)
align — alignment (in MADUs) of the block of memory
A value of 0 denotes maximum default type alignment.
value — value to initialize the contents of the block
eb — pointer to error block
RETURNS
If the allocation was successful, Memory_valloc() returns non-NULL pointer to the allocated and initialized block; otherwise it returns NULL and the error block will indicate the cause of the error.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Memory_Module_id();
// Get this module's unique id
Bool Memory_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Memory_Module_heap();
// The heap from which this module allocates memory
Bool Memory_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Memory_Module_getMask();
// Returns the diagnostics mask for this module
Void Memory_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Memory.xdc
var Memory = xdc.useModule('xdc.runtime.Memory');
module-wide constants & types
    const Memory.Q_BLOCKING// Blocking quality = 1;
    var obj = new Memory.Stats// Memory heap statistics;
        obj.totalSize = UArg ...
        obj.totalFreeSize = UArg ...
        obj.largestFreeSize = UArg ...
module-wide config parameters
     Memory.defaultHeapInstance// The default heap = IHeap.Handle undefined;
     Memory.common$// Common module configuration parameters = Types.Common$ undefined;
     Memory.defaultHeapSize// The size (in target MADUs) of the defaultHeapInstance = Int 0x1000;
module-wide functions
     Memory.getMaxDefaultTypeAlignMeta// Return the largest alignment required by the target() returns SizeT
     Memory.staticPlace// Statically places buffers(Any obj, SizeT align, String section) returns Bool
const Memory.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const Memory.Q_BLOCKING = 1;
DETAILS
xdc.runtime.IHeaps with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
C SYNOPSIS
Memory_Q_BLOCKING
struct Memory.Stats
index URL

Memory heap statistics

XDCscript usage meta-domain
var obj = new Memory.Stats;
    obj.totalSize = UArg ...
    obj.totalFreeSize = UArg ...
    obj.largestFreeSize = UArg ...
FIELDS
totalSize — total size (in MADUs) of heap.
totalFreeSize — current size (in MADUs) of free memory in the heap
largestFreeSize — current largest contiguous free block (in MADUs)
DETAILS
This structure defines generic statistics that must be supplied by each module that implements the xdc.runtime.IHeap interface.
C SYNOPSIS
Memory_Stats
config Memory.defaultHeapInstance // module-wide
index URL

The default heap

XDCscript usage meta-domain
Memory.defaultHeapInstance = IHeap.Handle undefined;
DETAILS
If no heap is specified in the Memory module's methods (i.e. heap == NULL) defaultHeapInstance is used. If defaultHeapInstance is not set (or set to null), a xdc.runtime.HeapStd heap instance is created and assigned to this configuration parameter. The size of the heap is determined by the defaultHeapSize parameter.
By default, all modules are configured with a null instance heap. Instances created by modules with a null instance heap are allocated from the defaultHeapInstance heap.
C SYNOPSIS
Memory_defaultHeapInstance
metaonly config Memory.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Memory.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.
metaonly config Memory.defaultHeapSize // module-wide
index URL

The size (in target MADUs) of the defaultHeapInstance

XDCscript usage meta-domain
Memory.defaultHeapSize = Int 0x1000;
DETAILS
This parameters is used when the defaultHeapInstance is not configured.
metaonly Memory.getMaxDefaultTypeAlignMeta() // module-wide
index URL

Return the largest alignment required by the target

XDCscript usage meta-domain
Memory.getMaxDefaultTypeAlignMeta() returns SizeT
DETAILS
This method scans the standard base types supported by the current configuration's target (Program.build.target) and returns the largest alignment required for these types.
RETURNS
Returns target-specific alignment in MADUs.
SEE
xdc.bld.ITarget.stdTypes
metaonly Memory.staticPlace() // module-wide
index URL

Statically places buffers

XDCscript usage meta-domain
Memory.staticPlace(Any obj, SizeT align, String section) returns Bool
ARGUMENTS
obj — object to place
This object always has the length property; obj.length determines the size of the allocated buffer for obj
align — the alignment required by obj
section — section name to contain obj
This parameter names the section where obj will be placed. If this parameter is null, no explicit placement is done.
DETAILS
This function places the object specified by obj into the specified memory section. The section string is a target-specific name that is interpreted by the underlying target tool-chain. In the case of TI tool-chains, this section can be a subsection (e.g. ".data:someSection").
The amount of memory that is created for obj is dependent on its size and the value of the property length. The length (number of elements in an array) is set before the staticPlace() is called. For example, setting obj.length = 5; before calling staticPlace(), will create 5 * sizeof (obj) MADUs of memory.
If 0 is specified for the alignment, the allocated buffer is aligned as determined by the target toolchain. For instance, if obj is an array of structs that have only 16-bit integers, the alignment would be on a 16-bit boundary.
All non-zero alignments must be a power of 2. Not all targets support directives that allow one to specify alignment. The readonly config parameter Program.build.target.alignDirectiveSupported can be used to determine if the target supports alignment directives.
RETURNS
Returns false if the alignment request cannot be honored. The obj is still placed regardless of the return code.
generated on Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.Memory

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Memory.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== Memory ========
    19     *  Static and run-time memory manager
    20     *
    21     *  All memory allocations are performed either by
    22     *  `{@link #staticPlace Memory.staticPlace()}` at build time or through
    23     *  `{@link #alloc Memory_alloc()}` (or its varients `Memory_calloc()`,
    24     *  `Memory_valloc()`, etc.) at run-time.
    25     *
    26     *  Run-time memory management is performed by modules that
    27     *  implement the `{@link xdc.runtime.IHeap}` interface.  The `Memory` module
    28     *  itself simply provides a common interface for any variety of system and
    29     *  application specific memory management policies implemented by `IHeap`
    30     *  modules; for example, `{@link HeadStd}` and `{@link HeadMin}`.
    31     *
    32     *  Heap instances are created statically or dynamically via heap specific
    33     *  create functions and these instances are then passed as an input
    34     *  parameter to the `Memory` calls that have a
    35     *  `{@link xdc.runtime.IHeap#Handle}` parameter.
    36     */
    37    module Memory {
    38
    39        /*!
    40         *  ======== Q_BLOCKING ========
    41         *  Blocking quality
    42         *
    43         *  `{@link xdc.runtime.IHeap}`s with this "quality" may cause the
    44         *  calling thread to block; i.e., suspend execution until another thread
    45         *  leaves the gate.
    46         */
    47        const Int Q_BLOCKING = 1;
    48
    49        /*!
    50         *  ======== Size ========
    51         *  Type to be used to specify heap buffer sizes
    52         */
    53        typedef UArg Size;
    54
    55        /*!
    56         *  ======== Stats ========
    57         *  Memory heap statistics
    58         *
    59         *  This structure defines generic statistics that must be supplied
    60         *  by each module that implements the `{@link xdc.runtime.IHeap}`
    61         *  interface.
    62         *
    63         *  @field(totalSize)         total size (in MADUs) of heap.
    64         *  @field(totalFreeSize)     current size (in MADUs) of free memory in
    65         *                            the heap
    66         *  @field(largestFreeSize)   current largest contiguous free block
    67         *                            (in MADUs)
    68         */
    69        struct Stats {
    70            Size totalSize;
    71            Size totalFreeSize;
    72            Size largestFreeSize;
    73         }
    74
    75        /*! @_nodoc */
    76        @XmlDtd
    77        metaonly struct Module_View {
    78            SizeT maxDefaultTypeAlignment;
    79        };
    80
    81        /*!
    82         *  ======== defaultHeapInstance ========
    83         *  The default heap.
    84         *
    85         *  If no heap is specified in the `Memory` module's methods (i.e.
    86         *  heap == `NULL`) `defaultHeapInstance` is used. If
    87         *  `defaultHeapInstance` is not set (or set to `null`), a
    88         *  `{@link xdc.runtime.HeapStd}` heap instance is created and assigned
    89         *  to this configuration parameter. The size of the heap is determined
    90         *  by the `{@link #defaultHeapSize}` parameter.
    91         *
    92         *  By default, all modules are configured with a `null` instance heap.
    93         *  Instances created by modules with a `null` instance heap are
    94         *  allocated from the `defaultHeapInstance` heap.
    95         */
    96        config IHeap.Handle defaultHeapInstance;
    97
    98        /*!
    99         *  ======== defaultHeapSize ========
   100         *  The size (in target MADUs) of the `defaultHeapInstance`.
   101         *
   102         *  This parameters is used when the `{@link #defaultHeapInstance}`
   103         *  is not configured.
   104         */
   105        metaonly config int defaultHeapSize = 0x1000;
   106
   107        /*!
   108         *  ======== alloc ========
   109         *  Allocate a block of memory from a heap.
   110         *
   111         *  @param(heap)    heap from which the memory is allocated
   112         *
   113         *                  The `heap` is created by a module that implements
   114         *                  the `{@link xdc.runtime.IHeap}` interface.
   115         *                  If `heap` is `NULL`, the
   116         *                  `{@link #defaultHeapInstance}` is used.
   117         *
   118         *  @param(size)    requested memory block size (in MADUs)
   119         *  @param(align)   alignment (in MADUs) of the block of memory
   120         *
   121         *                  A value of 0 denotes maximum default type alignment.
   122         *
   123         *  @param(eb)      pointer to error block
   124         *
   125         *  @a(returns)
   126         *  If the allocation was successful, `Memory_alloc()` returns non-`NULL`
   127         *  pointer to the allocated and uninitialized block; otherwise it returns
   128         *  `NULL` and the error block will indicate the cause of the error.
   129         */
   130        Ptr alloc(IHeap.Handle heap, SizeT size, SizeT align, Error.Block *eb);
   131
   132        /*!
   133         *  ======== calloc ========
   134         *  Allocate a block of memory from a heap and zero out the contents.
   135         *
   136         *  @param(heap)    heap from which the memory is allocated
   137         *
   138         *                  The `heap` is created by a module that implements
   139         *                  the `{@link xdc.runtime.IHeap}` interface.
   140         *                  If `heap` is `NULL`, the
   141         *                  `{@link #defaultHeapInstance}` is used.
   142         *
   143         *  @param(size)    requested memory block size (in MADUs)
   144         *  @param(align)   alignment (in MADUs) of the block of memory
   145         *
   146         *                  A value of 0 denotes maximum default type alignment.
   147         *
   148         *  @param(eb)      pointer to error block
   149         *
   150         *  @a(returns)
   151         *  If the allocation was successful, `Memory_calloc()` returns non-`NULL`
   152         *  pointer to the allocated and initialized block; otherwise it returns
   153         *  `NULL` and the error block will indicate the cause of the error.
   154         */
   155        Ptr calloc(IHeap.Handle heap, SizeT size, SizeT align, Error.Block *eb);
   156
   157        /*!
   158         *  ======== free ========
   159         *  Frees the space if the heap manager offers such functionality.
   160         *
   161         *  @param(heap)   heap that the block of memory will be freed back to.
   162         *
   163         *                 The `heap` is created by a module that implements
   164         *                 the `{@link xdc.runtime.IHeap}` interface.
   165         *                 If `heap` is `NULL`, the
   166         *                 `{@link #defaultHeapInstance}` is used.
   167         *
   168         *  @param(block)  block of memory to free back to the heap
   169         *  @param(size)   size (in MADUs) of the block of memory to free.
   170         *
   171         */
   172        Void free(IHeap.Handle heap, Ptr block, SizeT size);
   173
   174        /*!
   175         *  ======== getStats ========
   176         *  Obtain statistics from a heap.
   177         *
   178         *  @param(heap)    the heap to get the statistics from
   179         *
   180         *                  The `heap` is created by a module that implements
   181         *                  the `{@link xdc.runtime.IHeap}` interface.
   182         *                  If `heap` is `NULL`, the
   183         *                  `{@link #defaultHeapInstance}` is used.
   184         *
   185         *  @param(stats)   the output buffer for the returned statistics
   186         */
   187        Void getStats(IHeap.Handle heap, Stats *stats);
   188
   189        /*!
   190         *  ======== query ========
   191         *  Test for a particular `{@link xdc.runtime.IHeap}` quality.
   192         *
   193         *  There currently is only one quality, namely `{@link #Q_BLOCKING}`.
   194         *
   195         *  @param(heap)    the heap to query
   196         *
   197         *                  The `heap` is created by a module that implements
   198         *                  the `{@link xdc.runtime.IHeap}` interface.  If `heap`
   199         *                  is `NULL`, the `{@link #defaultHeapInstance}`
   200         *                  is queried
   201         *
   202         *  @param(qual)    quality to test
   203         *
   204         *                   For example: `{@link #Q_BLOCKING}`.
   205         *
   206         *  @a(returns)
   207         *  If `heap` has the `qual` quality, this method returns `TRUE`,
   208         *  otherwise it returns `FALSE`.
   209         */
   210        Bool query(IHeap.Handle heap, Int qual);
   211
   212        /*!
   213         *  ======== getMaxDefaultTypeAlignMeta ========
   214         *  Return the largest alignment required by the target
   215         *
   216         *  This method scans the standard base types supported by the current
   217         *  configuration's target
   218         *  (`{@link xdc.cfg.Program#build Program.build.target}`) and returns
   219         *  the largest alignment required for these types.
   220         *
   221         *  @a(returns)     Returns target-specific alignment in MADUs.
   222         *
   223         *  @see xdc.bld.ITarget#stdTypes
   224         */
   225        metaonly SizeT getMaxDefaultTypeAlignMeta();
   226
   227        /*!
   228         *  ======== getMaxDefaultTypeAlign ========
   229         *  Return the largest alignment required by the target
   230         *
   231         *  `getMaxDefaultTypeAlign` returns the largest alignment
   232         *   required for all the standard base types supported by the current
   233         *  configuration's target
   234         *  (`{@link xdc.cfg.Program#build Program.build.target}`)
   235         *
   236         *  This is the runtime version of the
   237         *  `{@link #getMaxDefaultTypeAlignMeta}` function.
   238         *
   239         *  @a(returns)     Returns target-specific alignment in MADUs.
   240         *
   241         *  @see #getMaxDefaultTypeAlignMeta
   242         */
   243        SizeT getMaxDefaultTypeAlign();
   244
   245        /*!
   246         *  ======== staticPlace ========
   247         *  Statically places buffers.
   248         *
   249         *  This function places the object specified by `obj` into the specified
   250         *  memory section. The section string is a target-specific name that is
   251         *  interpreted by the underlying target tool-chain.  In the case of TI
   252         *  tool-chains, this section can be a subsection (e.g.
   253         *  ".data:someSection").
   254         *
   255         *  The amount of memory that is created for `obj` is dependent on its
   256         *  size and the value of the property `length`. The length (number
   257         *  of elements in an array) is set before the `staticPlace()` is called.
   258         *  For example, setting `obj.length = 5;` before calling `staticPlace()`,
   259         *  will create `5 * sizeof (obj)` MADUs of memory.
   260         *
   261         *  If 0 is specified for the alignment, the allocated buffer is aligned
   262         *  as determined by the target toolchain. For instance, if `obj` is an
   263         *  array of structs that have only 16-bit integers, the alignment would
   264         *  be on a 16-bit boundary.
   265         *
   266         *  All non-zero alignments must be a power of 2. Not all targets support
   267         *  directives that allow one to specify alignment. The readonly config
   268         *  parameter
   269         *  `{@link xdc.cfg.Program#build Program.build.target.alignDirectiveSupported}`
   270         *  can be used to determine if the target supports alignment directives.
   271         *
   272         *  @param(obj)     object to place
   273         *
   274         *      This object always has the `length` property; `obj.length`
   275         *      determines the size of the allocated buffer for `obj`
   276         *
   277         *  @param(align)   the alignment required by `obj`
   278         *
   279         *  @param(section) section name to contain `obj`
   280         *
   281         *      This parameter names the section where `obj` will be placed.  If
   282         *      this parameter is `null`, no explicit placement is done.
   283         *
   284         *  @a(returns)
   285         *  Returns `false` if the alignment request cannot be honored. The `obj`
   286         *  is still placed regardless of the return code.
   287         */
   288        metaonly Bool staticPlace(any obj, SizeT align, String section);
   289
   290        /*!
   291         *  ======== valloc ========
   292         *  Allocate a block of memory from a heap and initialize the contents
   293         *  to the value specified.
   294         *
   295         *  @param(heap)    heap from which the memory is allocated
   296         *
   297         *                  The `heap` is created by a module that implements
   298         *                  the `{@link xdc.runtime.IHeap}` interface.
   299         *                  If `heap` is `NULL`, the
   300         *                  `{@link #defaultHeapInstance}` is used.
   301         *
   302         *  @param(size)    requested memory block size (in MADUs)
   303         *  @param(align)   alignment (in MADUs) of the block of memory
   304         *
   305         *                  A value of 0 denotes maximum default type alignment.
   306         *
   307         *  @param(value)   value to initialize the contents of the block
   308         *  @param(eb)      pointer to error block
   309         *
   310         *  @a(returns)
   311         *  If the allocation was successful, `Memory_valloc()` returns non-`NULL`
   312         *  pointer to the allocated and initialized block; otherwise it returns
   313         *  `NULL` and the error block will indicate the cause of the error.
   314         */
   315        Ptr valloc(IHeap.Handle heap, SizeT size, SizeT align, Char value,
   316                   Error.Block *eb);
   317
   318    internal:
   319
   320        proxy HeapProxy inherits IHeap;
   321
   322        struct Module_State {
   323            SizeT maxDefaultTypeAlign;
   324        }
   325    }
   326    /*
   327     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   328     */
   329


module xdc.runtime.Registry
index URL

Register modules that are not statically configured

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides a mechanism by which legacy C code can have its own module logging support, including having a name and its own diags mask. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Registry.xdc
#include <xdc/runtime/Registry.h>
Functions
Registry_Result | Registry_addModule// Add a runtime module to the registry with the specified name(Registry_Desc *desc, String modName);
Registry_Desc * | Registry_findById// Find registered module's descriptor from it's module ID(Types_ModuleId mid);
Registry_Desc * | Registry_findByName// Find the registered module with the given name(String modName);
Bool | Registry_getMask// Get the specified module's diagnostic mask(String name, Types_DiagsMask *mask);
Types_ModuleId | Registry_getModuleId// Get the module id associated with a specified module descriptor(Registry_Desc *desc);
String | Registry_getModuleName// Get the module name associated with a specified module descriptor(Registry_Desc *desc);
Registry_Desc * | Registry_getNextModule// Scan the current list of registered modules(Registry_Desc *desc);
Bool | Registry_isMember// Determines if the specified module ID belongs to a registered module(Types_ModuleId mid);
Functions common to all target modules
 | Registry_Module_getMask// Returns the diagnostics mask for this module, Registry_Module_hasMask// Test whether this module has a diagnostics mask, Registry_Module_heap// The heap from which this module allocates memory, Registry_Module_id// Get this module's unique id, Registry_Module_setMask// Set the diagnostics mask for this module, Registry_Module_startupDone// Test if this module has completed startup
Typedefs
typedef Types_RegDesc | Registry_Desc// Registry module descriptor;
typedef enum | Registry_Result// Status codes ...
DETAILS
This module provides a mechanism by which legacy C code can have its own module logging support, including having a name and its own diags mask.
Without the Registry, all logging done by legacy C code is handled by the xdc.runtime.Main module. This means that all Log events will be marked as coming from "xdc.runtime.Main", and there is only a single diagnostics mask for the runtime control of logging across all legacy C code. The Registry module allows legacy C code to have the same granular control over logging as statically defined RTSC modules.
To use the Registry module, legacy code must define the symbol Registry_CURDESC to be the name of an externally declared Registery_Desc structure. This symbol must be defined before the inclusion of any xdc/runtime header files. If any xdc/runtime header files are included before the definition of this symbol, the Registry module may not function properly.
Note: by defining this symbol on the compile line, rather than in the file, one can easily compile code to be used in one of two environments:
  1. a fixed configuration environment where modules are registered via Registry_addModule(), or
  2. a "normal" configurable environment in which this code is assumed to be part of the Main module.
The Registry_Desc structure must then be registered by calling Registry_addModule(). The structure is typically registered and initialized within main().
For example:
  //Define the required symbol, Registry_CURDESC, to this file's
  //Registry_Desc object
  #define Registry_CURDESC    mainDesc
  #include <xdc/runtime/Registry.h>

  //Declare the Registry_Desc object, the name is unimportant
  Registry_Desc mainDesc;

  Int main(Int argc, String argv[]) {

  //Register this file as a module "main"
  Registry_addModule(&mainDesc, "main");
Once registered, the legacy code may call Log APIs without any other change and the formatted Log events will show as coming from the registered modules. Also, the logging by the legacy code is now filtered by its own diagnostic mask. The bits of this mask can be set using Diags_setMask.
Continuing the previous example:
  //Initialize the legacy code's diags mask to enable USER1.
  Diags_setMask("main=1");
All events logged registered modules will be sent to the logger configured for the Registry module. For example, to configure the logger for use by all modules managed by Registry:
  Registry.common$.logger = LoggerBuf.create();
Since the registered modules are not known until runtime, it is not possible to statically configure the diagnostics masks for individual registered modules. However, it is possible to configure diagnostics categories to be permanently off or on for ALL registered modules. This is done by configuring the diagnostic mask for the Registry module. Diagnostic categories set to Diags.ALWAYS_OFF will be permanently off for all Registry modules. Categories set to Diags.ALWAYS_ON will be permanently on for all modules managed by Registry.
In order to enable runtime configuration of individual Registry module masks, all relevant diagnostic categories must be set to Diags.RUNTIME_OFF or Diags.RUNTIME_ON in the Registry module's mask.
enum Registry_Result
index URL

Status codes

C synopsis target-domain
typedef enum Registry_Result {
    Registry_SUCCESS,
    // The module was added successfully
    Registry_ALLOC_FAILED,
    // reserved
    Registry_ALREADY_ADDED,
    // The module has already been added or another module with the same name is present
    Registry_ALL_IDS_USED
    // No more module ids available for new modules
} Registry_Result;
typedef Registry_Desc
index URL

Registry module descriptor

C synopsis target-domain
typedef Types_RegDesc Registry_Desc;
Registry_addModule() // module-wide
index URL

Add a runtime module to the registry with the specified name

C synopsis target-domain
Registry_Result Registry_addModule(Registry_Desc *desc, String modName);
ARGUMENTS
desc — non-NULL pointer to a {#Desc Registry_Desc} structure.
modName — non-NULL string name of the module being registered.
DETAILS
The desc parameter and the modName string provided must both be permanent since the Registry will maintain references to both of these.
RETURNS
Registry_addModule returns one of the following Result status values indicating success or the cause of failure:
  • SUCCESS
  • ALREADY_ADDED
  • ALL_IDS_USED There are a total of 16,384 - 1 module ids available for use by Registry.
Registry_findById() // module-wide
index URL

Find registered module's descriptor from it's module ID

C synopsis target-domain
Registry_Desc *Registry_findById(Types_ModuleId mid);
ARGUMENTS
mid — any module id
RETURNS
If the ID mid is registered via Registry_addModule(), this function returns the pointer to the registered Registry_Desc structure; otherwise it returns NULL.
Registry_findByName() // module-wide
index URL

Find the registered module with the given name

C synopsis target-domain
Registry_Desc *Registry_findByName(String modName);
ARGUMENTS
modName — non-NULL string name of a registered module
RETURNS
If the name modName is registered via Registry_addModule(), this function returns the pointer to the registered Registry_Desc structure; otherwise it returns NULL.
Registry_getMask() // module-wide
index URL

Get the specified module's diagnostic mask

C synopsis target-domain
Bool Registry_getMask(String name, Types_DiagsMask *mask);
ARGUMENTS
modName — non-NULL string name of a registered module
mask — non-NULL pointer to a mask to be initialized to the the current state of the diagnostics mask associated with modName
RETURNS
The function returns TRUE if name identifies a registered module; otherwise, it return FALSE.
Registry_getModuleId() // module-wide
index URL

Get the module id associated with a specified module descriptor

C synopsis target-domain
Types_ModuleId Registry_getModuleId(Registry_Desc *desc);
ARGUMENTS
desc — non-NULL pointer to a {#Desc Registry_Desc} structure.
RETURNS
If the specified module descriptor has been initialized via a successful call to Registry_addModule(), this function returns the module id assigned by Registry_addModule(); otherwise, its return value is indeterminate.
Registry_getModuleName() // module-wide
index URL

Get the module name associated with a specified module descriptor

C synopsis target-domain
String Registry_getModuleName(Registry_Desc *desc);
ARGUMENTS
desc — non-NULL pointer to a {#Desc Registry_Desc} structure.
RETURNS
If the specified module descriptor has been initialized via a successful call to Registry_addModule(), this function returns the module name passed Registry_addModule(); otherwise, its return value is indeterminate.
Registry_getNextModule() // module-wide
index URL

Scan the current list of registered modules

C synopsis target-domain
Registry_Desc *Registry_getNextModule(Registry_Desc *desc);
ARGUMENTS
desc — optionally NULL pointer to a Registry_Desc structure. If desc is NULL, a pointer to the first structure is returned. If desc is non-NULL and equal to a previous return value of this function, a pointer to the "next" Registry_Desc structure is returned.
DETAILS
This function used to scan the list of all Registry_Desc structures currently being managed by the Registry module.
RETURNS
This function returns a non-NULL pointer to one of the Registry_Desc structures added via Registry_Desc structures or NULL in the case that
  • there are no more module's in the list after desc, or
  • there are no modules registered
Registry_isMember() // module-wide
index URL

Determines if the specified module ID belongs to a registered module

C synopsis target-domain
Bool Registry_isMember(Types_ModuleId mid);
ARGUMENTS
mid — any module id
RETURNS
This function returns TRUE if and only if the specified module id is a valid Registry module id. It does not search registered module ids, but simply checks if the id is within the range of valid Registry module ids.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Registry_Module_id();
// Get this module's unique id
Bool Registry_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Registry_Module_heap();
// The heap from which this module allocates memory
Bool Registry_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Registry_Module_getMask();
// Returns the diagnostics mask for this module
Void Registry_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Registry.xdc
var Registry = xdc.useModule('xdc.runtime.Registry');
module-wide constants & types
    values of type Registry.Result// Status codes
        const Registry.SUCCESS// The module was added successfully;
        const Registry.ALLOC_FAILED// reserved;
        const Registry.ALREADY_ADDED// The module has already been added or another module with the same name is present;
        const Registry.ALL_IDS_USED// No more module ids available for new modules;
module-wide config parameters
     Registry.common$// Common module configuration parameters = Types.Common$ undefined;
enum Registry.Result
index URL

Status codes

XDCscript usage meta-domain
values of type Registry.Result
    const Registry.SUCCESS;
    // The module was added successfully
    const Registry.ALLOC_FAILED;
    // reserved
    const Registry.ALREADY_ADDED;
    // The module has already been added or another module with the same name is present
    const Registry.ALL_IDS_USED;
    // No more module ids available for new modules
C SYNOPSIS
Registry_Result
metaonly config Registry.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Registry.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 Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.Registry

     1    /*!
     2     *  ======== Registry ========
     3     *  Register modules that are not statically configured
     4     *
     5     *  This module provides a mechanism by which legacy C code can have its own
     6     *  module logging support, including having a name and its own diags mask.
     7     *
     8     *  Without the `Registry`, all logging done by legacy C code is handled by the
     9     *  `xdc.runtime.Main` module. This means that all `{@link Log}` events will
    10     *  be marked as coming from "`xdc.runtime.Main`", and there is only a single
    11     *  diagnostics mask for the runtime control of logging across all legacy C
    12     *  code. The `Registry` module allows legacy C code to have the same granular
    13     *  control over logging as statically defined RTSC modules.
    14     *
    15     *  To use the `Registry` module, legacy code must define the symbol
    16     *  `Registry_CURDESC` to be the name of an externally declared
    17     *  `Registery_Desc` structure.  This symbol must be defined before the
    18     *  inclusion of any `xdc/runtime` header files. If any `xdc/runtime` header
    19     *  files are included before the definition of this symbol, the `Registry`
    20     *  module may not function properly.
    21     *
    22     *  Note: by defining this symbol on the compile line, rather than in the
    23     *  file, one can easily compile code to be used in one of two environments:
    24     *  @p(nlist)
    25     *    - a fixed configuration environment where modules are registered
    26     *      via `{@link #addModule Registry_addModule()}`, or
    27     *
    28     *    - a "normal" configurable environment in which this code is
    29     *      assumed to be part of the `{@link Main}` module.
    30     *  @p
    31     *  The `Registry_Desc` structure must then be registered by calling
    32     *  `{@link #addModule Registry_addModule()}`. The structure is typically
    33     *  registered and initialized within `main()`.
    34     *
    35     *  For example:
    36     *
    37     *  @p(code)
    38     *  //Define the required symbol, Registry_CURDESC, to this file's
    39     *  //Registry_Desc object
    40     *  #define Registry_CURDESC    mainDesc
    41     *  #include <xdc/runtime/Registry.h>
    42     *
    43     *  //Declare the Registry_Desc object, the name is unimportant
    44     *  Registry_Desc mainDesc;
    45     *
    46     *  Int main(Int argc, String argv[]) {
    47     *
    48     *  //Register this file as a module "main"
    49     *  Registry_addModule(&mainDesc, "main");
    50     *  @p
    51     *
    52     *  Once registered, the legacy code may call `{@link Log}` APIs without any
    53     *  other change and the formatted `Log` events will show as coming from the
    54     *  registered modules. Also, the logging by the legacy code is now filtered
    55     *  by its own diagnostic mask. The bits of this mask can be set using
    56     *  `{@link Diags#setMask Diags_setMask}`.
    57     *
    58     *  Continuing the previous example:
    59     *  @p(code)
    60     *  //Initialize the legacy code's diags mask to enable USER1.
    61     *  Diags_setMask("main=1");
    62     *  @p
    63     *
    64     *  All events logged registered modules will be sent to the logger configured
    65     *  for the `Registry` module. For example, to configure the logger for use by
    66     *  all modules managed by `Registry`:
    67     *  @p(code)
    68     *  Registry.common$.logger = LoggerBuf.create();
    69     *  @p
    70     *
    71     *  Since the registered modules are not known until runtime, it is not
    72     *  possible to statically configure the diagnostics masks for individual
    73     *  registered modules. However, it is possible to configure diagnostics
    74     *  categories to be permanently off or on for ALL registered modules. This
    75     *  is done by configuring the diagnostic mask for the `Registry` module.
    76     *  Diagnostic categories set to `{@link Diags#ALWAYS_OFF Diags.ALWAYS_OFF}`
    77     *  will be permanently off for all `Registry` modules. Categories set to
    78     *  `{@link Diags#ALWAYS_ON Diags.ALWAYS_ON}` will be
    79     *  permanently on for all modules managed by `Registry`.
    80     *
    81     *  In order to enable runtime configuration of individual `Registry` module
    82     *  masks, all relevant diagnostic categories must be set to
    83     *  `{@link Diags#RUNTIME_OFF Diags.RUNTIME_OFF}` or
    84     *  `{@link Diags#RUNTIME_ON Diags.RUNTIME_ON}` in the `Registry` module's
    85     *  mask.
    86     */
    87    @CustomHeader
    88    module Registry
    89    {
    90        /*!
    91         *  ======== RegisteredModuleView ========
    92         *  @_nodoc
    93         *  View element for the 'Registered Modules' ROV view.
    94         */
    95        metaonly struct RegisteredModuleView {
    96            String modName;
    97            Int id;
    98            String mask;
    99            Ptr descAddr;
   100        }
   101
   102        /*!
   103         *  ======== rovViewInfo ========
   104         *  @_nodoc
   105         */
   106        @Facet
   107        metaonly config xdc.rov.ViewInfo.Instance rovViewInfo =
   108            xdc.rov.ViewInfo.create({
   109                viewMap: [
   110                    ['Registered Modules',
   111                        {
   112                            type: xdc.rov.ViewInfo.MODULE_DATA,
   113                            viewInitFxn: 'viewInitRegisteredModules',
   114                            structName: 'RegisteredModuleView'
   115                        }
   116                    ]
   117                ]
   118            });
   119
   120        /*!
   121         *  ======== Result ========
   122         *  Status codes
   123         */
   124        enum Result {
   125            SUCCESS,        /*! The module was added successfully */
   126            ALLOC_FAILED,   /*! reserved */
   127            ALREADY_ADDED,  /*! The module has already been added  or another
   128                             *  module with the same name is present
   129                             */
   130            ALL_IDS_USED    /*! No more module ids available for new modules */
   131        };
   132
   133        /*!
   134         *  ======== RegDesc ========
   135         *  Registry module descriptor
   136         */
   137        typedef Types.RegDesc Desc;
   138
   139        /*!
   140         *  ======== addModule ========
   141         *  Add a runtime module to the registry with the specified name
   142         *
   143         *  The `desc` parameter and the `modName` string provided must both be
   144         *  permanent since the `Registry` will maintain references to both of
   145         *  these.
   146         *
   147         *  @param(desc)    non-`NULL` pointer to a `{#Desc Registry_Desc}`
   148         *                  structure.
   149         *  @param(modName) non-`NULL` string name of the module being registered.
   150         *
   151         *  @a(returns)
   152         *  `Registry_addModule` returns one of the following
   153         *  `{@link #Result Result}` status values indicating success or the
   154         *  cause of failure:
   155         *  @p(blist)
   156         *  - `{@link #SUCCESS SUCCESS}`
   157         *  - `{@link #ALREADY_ADDED ALREADY_ADDED}`
   158         *  - `{@link #ALL_IDS_USED ALL_IDS_USED}`  There are a total of 16,384 - 1
   159         *    module ids available for use by `Registry`.
   160         *  @p
   161         */
   162        Result addModule(Desc *desc, String modName);
   163
   164        /*!
   165         *  ======== findByName ========
   166         *  Find the registered module with the given name
   167         *
   168         *  @param(modName) non-`NULL` string name of a registered module
   169         *
   170         *  @a(returns)
   171         *  If the name `modName` is registered via
   172         *  `{@link #addModule Registry_addModule()}`, this function
   173         *  returns the pointer to the registered `Registry_Desc` structure;
   174         *  otherwise it returns `NULL`.
   175         */
   176        Desc *findByName(String modName);
   177
   178        /*!
   179         *  ======== findByNamePattern ========
   180         *  @_nodoc
   181         *  Find all registered modules matching the specified pattern.
   182         *
   183         *  This API is intended for use by Diags_setMask.
   184         *
   185         *  The name pattern can be an exact module name or it can contain '%'
   186         *  as a wildcard. The `len` parameter is the string length of the pattern.
   187         *
   188         *  This function returns one module at a time, but can be called
   189         *  repeatedly to find all modules matching the pattern. On the first
   190         *  call, pass `NULL` as the `prev` parameter. In all following calls,
   191         *  pass the last returned descriptor. This function returns `NULL` when
   192         *  it can't find any more modules matching the name pattern.
   193         */
   194        Desc *findByNamePattern(String namePat, Int len, Desc *prev);
   195
   196        /*!
   197         *  ======== findById ========
   198         *  Find registered module's descriptor from it's module ID
   199         *
   200         *  @param(mid) any module id
   201         *
   202         *  @a(returns)
   203         *  If the ID `mid` is registered via
   204         *  `{@link #addModule Registry_addModule()}`, this function
   205         *  returns the pointer to the registered `Registry_Desc` structure;
   206         *  otherwise it returns `NULL`.
   207         */
   208        Desc *findById(Types.ModuleId mid);
   209
   210        /*!
   211         *  ======== getMask ========
   212         *  Get the specified module's diagnostic mask
   213         *
   214         *  @param(modName) non-`NULL` string name of a registered module
   215         *  @param(mask)    non-`NULL` pointer to a mask to be initialized
   216         *                  to the the current state of the diagnostics mask
   217         *                  associated with `modName`
   218         *
   219         *  @a(returns)
   220         *  The function returns `TRUE` if `name` identifies a registered module;
   221         *  otherwise, it return `FALSE`.
   222         */
   223        Bool getMask(String name, Types.DiagsMask *mask);
   224
   225        /*!
   226         *  ======== isMember ========
   227         *  Determines if the specified module ID belongs to a registered module
   228         *
   229         *  @param(mid) any module id
   230         *
   231         *  @a(returns)
   232         *  This function returns `TRUE` if and only if the specified module id
   233         *  is a valid `Registry` module id. It does not search registered
   234         *  module ids, but simply checks if the id is within the range of valid
   235         *  `Registry` module ids.
   236         */
   237        Bool isMember(Types.ModuleId mid);
   238
   239        /*!
   240         *  ======== getNextModule ========
   241         *  Scan the current list of registered modules
   242         *
   243         *  This function used to scan the list of all `Registry_Desc` structures
   244         *  currently being managed by the `Registry` module.
   245         *
   246         *  @param(desc)    optionally `NULL` pointer to a `Registry_Desc`
   247         *                  structure.  If `desc` is `NULL`, a pointer to the
   248         *                  first structure is returned.  If `desc` is non-`NULL`
   249         *                  and equal to a previous return value of this function,
   250         *                  a pointer to the "next" `Registry_Desc` structure
   251         *                  is returned.
   252         *
   253         *  @a(returns)
   254         *  This function returns a non-`NULL` pointer to one of the
   255         *  `Registry_Desc` structures added via `Registry_Desc` structures or
   256         *  `NULL` in the case that
   257         *  @p(blist)
   258         *      - there are no more module's in the list after `desc`, or
   259         *      - there are no modules registered
   260         *  @p
   261         */
   262        Desc *getNextModule(Desc *desc);
   263
   264        /*!
   265         *  ======== getModuleName ========
   266         *  Get the module name associated with a specified module descriptor
   267         *
   268         *  @param(desc)    non-`NULL` pointer to a `{#Desc Registry_Desc}`
   269         *                  structure.
   270         *
   271         *  @a(returns)
   272         *  If the specified module descriptor has been initialized via a
   273         *  successful call to `{@link #addModule Registry_addModule()}`, this
   274         *  function returns the module name passed `Registry_addModule()`;
   275         *  otherwise, its return value is indeterminate.
   276         */
   277        String getModuleName(Desc *desc);
   278
   279        /*!
   280         *  ======== getModuleId ========
   281         *  Get the module id associated with a specified module descriptor
   282         *
   283         *  @param(desc)    non-`NULL` pointer to a `{#Desc Registry_Desc}`
   284         *                  structure.
   285         *
   286         *  @a(returns)
   287         *  If the specified module descriptor has been initialized via a
   288         *  successful call to `{@link #addModule Registry_addModule()}`, this
   289         *  function returns the module id assigned by `Registry_addModule()`;
   290         *  otherwise, its return value is indeterminate.
   291         */
   292        Types.ModuleId getModuleId(Desc *desc);
   293
   294    internal:
   295
   296        Desc *findByNameInList(String name, Desc *listHead);
   297        Void newModule(Desc *desc, String modName);
   298        Bool matchPattern(String pattern, Int len, String modName);
   299
   300        /* Functions for accessing the Registry at ROV-time. */
   301        function isMemberRov(modId);
   302        function lookupModIdRov(modId);
   303
   304        /*
   305         *  ======== Module_State ========
   306         */
   307        struct Module_State {
   308            Desc            *listHead;
   309            Types.ModuleId  curId;
   310        }
   311    }
   312    /*
   313     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   314     */
   315


module xdc.runtime.Reset

metaonly module xdc.runtime.Reset
index URL

Startup reset function manager

  • DETAILS
  • WARNING
  • SEE
  • XDCscript usage
  • Individual elements
This module defines an initial reset function and can be used without requiring any other xdc.runtime module. The reset function is called as early as possible in the application startup and is intended for platform-specific hardware initialization. [ more ... ]
XDCscript usage meta-domain sourced in xdc/runtime/Reset.xdc
var Reset = xdc.useModule('xdc.runtime.Reset');
module-wide config parameters
     Reset.fxns// List of functions to call at reset = Startup.InitFxn[] [ ];
DETAILS
This module defines an initial reset function and can be used without requiring any other xdc.runtime module. The reset function is called as early as possible in the application startup and is intended for platform-specific hardware initialization.
The reset function sequentially calls each of the functions added to the fxns array starting from index 0. If Startup.resetFxn is defined, it is called before any of the functions defined by the fxns array.
By providing an array of startup functions, rather than a single function as {@ilnk Startup} does, modules that need very early initialization can simply add their initialization to the list of functions to be called without having to implement a "chaining" mechanism or requiring the user to implement and maintain an application reset function.
WARNING
The reset function is _not_ supported on all platforms and, as a result, you should never place any "portable" code that is required for your application in this function. Use the @{link Startup} module to define required application startup functions.
SEE
Startup
config Reset.fxns // module-wide
index URL

List of functions to call at reset

XDCscript usage meta-domain
Reset.fxns = Startup.InitFxn[] [ ];
DETAILS
This array defines the functions that will be executed by the reset initialization function (xdc_runtime_Startup_reset__I) _in addition to_ the function specified by @{link Startup#resetFxn}.
The following code fragment shows how to add the externally defined function myReset() to this array.
      var Reset = xdc.useModule("xdc.runtime.Reset");
      Reset.fxns[Reset.fxns.length++] = "&myReset";
WARNING
Although the functions specified in fxns[] are ordinary C functions, they are often called _before_ the C runtime is fully initialized; e.g., they may be called _before_ static variables are initialized. Reset functions should only assume that a minimal execution stack has initialized.
SEE
Startup.resetFxn
generated on Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.Reset

     1    /*!
     2     *  ======== Reset ========
     3     *  Startup reset function manager
     4     *
     5     *  This module defines an initial reset function and can be used without
     6     *  requiring any other `xdc.runtime` module.  The reset function is called
     7     *  as early as possible in the application startup and is intended for
     8     *  platform-specific hardware initialization.
     9     *
    10     *  The reset function sequentially calls each of the functions added to the
    11     *  `{@link #fxns}` array starting from index 0.  If
    12     *  `{@link Startup#resetFxn Startup.resetFxn}` is defined, it is called
    13     *  before any of the functions defined by the `fxns` array.
    14     *
    15     *  By providing an array of startup functions, rather than a single function
    16     *  as `{@ilnk Startup}` does, modules that need very early initialization
    17     *  can simply add their initialization to the list of functions to be called
    18     *  without having to implement a "chaining" mechanism or requiring the user
    19     *  to implement and maintain an application reset function.
    20     *
    21     *  @a(Warning)
    22     *  The reset function is _not_ supported on all platforms and, as a result,
    23     *  you should never place any "portable" code that is required for your
    24     *  application in this function.  Use the `@{link Startup}` module to
    25     *  define required application startup functions.
    26     *
    27     *  @see Startup
    28     */
    29    @Template("xdc/runtime/Reset.xdt")
    30    metaonly module Reset
    31    {
    32        /*!
    33         *  ======== fxns ========
    34         *  List of functions to call at reset
    35         *
    36         *  This array defines the functions that will be executed by the reset
    37         *  initialization function (`xdc_runtime_Startup_reset__I`) _in addition
    38         *  to_ the function specified by `@{link Startup#resetFxn}`.
    39         *
    40         *  The following code fragment shows how to add the externally defined
    41         *  function `myReset()` to this array.
    42         *  @p(code)
    43         *      var Reset = xdc.useModule("xdc.runtime.Reset");
    44         *      Reset.fxns[Reset.fxns.length++] = "&myReset";
    45         *  @p
    46         *
    47         *  @a(Warning)
    48         *  Although the functions specified in `fxns[]` are ordinary C functions,
    49         *  they are often called _before_ the C runtime is fully initialized;
    50         *  e.g., they may be called _before_ static variables are initialized.
    51         *  Reset functions should only assume that a minimal execution stack has
    52         *  initialized.
    53         *
    54         *  @see Startup#resetFxn
    55         */
    56        metaonly config xdc.runtime.Startup.InitFxn fxns[] = [];
    57    }
    58    /*
    59     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    60     */
    61


module xdc.runtime.Rta
index URL

The Rta module contains target and configuration code for providing RTA support

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
The 'Command' enum defines the available control commands, and the 'CommandPacket' structure defines the format of commands received from the host. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Rta.xdc
#include <xdc/runtime/Rta.h>
Functions
Void | Rta_acknowledgeCmd// (Rta_ResponsePacket *resp);
Void | Rta_changePeriod// (Rta_ResponsePacket *resp, UArg period);
Void | Rta_disableLog// (Rta_ResponsePacket *resp, UArg log);
Void | Rta_enableLog// (Rta_ResponsePacket *resp, UArg log);
Void | Rta_getCpuSpeed// (Rta_ResponsePacket *resp);
Void | Rta_processCommand// Executes a command packet and prepares the response packet(Rta_CommandPacket *cmd, Rta_ResponsePacket *resp);
Void | Rta_readMask// (Rta_ResponsePacket *resp, UArg addr);
Void | Rta_resetLog// (Rta_ResponsePacket *resp, UArg log);
Void | Rta_writeMask// (Rta_ResponsePacket *resp, UArg addr, UArg val);
Functions common to all target modules
 | Rta_Module_getMask// Returns the diagnostics mask for this module, Rta_Module_hasMask// Test whether this module has a diagnostics mask, Rta_Module_heap// The heap from which this module allocates memory, Rta_Module_id// Get this module's unique id, Rta_Module_setMask// Set the diagnostics mask for this module, Rta_Module_startupDone// Test if this module has completed startup
Typedefs
typedef Int | Rta_Command// Command ids;
typedef struct | Rta_CommandPacket// Structure of command received from host TODO - Either the types should be changed to 32-bits, or the packet size information should be added to the RTA XML file ...
typedef struct | Rta_ResponsePacket// Structure of response packet sent back to host ...
Constants
extern const Assert_Id | Rta_A_invalidLogger// Assert if logger id in control command is invalid;
extern const String | Rta_controlTransportClassName// The name of the xdc.rta.IControlTransport class to use;
extern const String | Rta_dataTransportClassName// The name of the xdc.rta.IDataTransport class to use;
extern const Error_Id | Rta_E_badCommand// Error raised if Agent receives an invalid command;
extern const Log_Event | Rta_LD_cmdRcvd// Logged when the Agent receives a command;
extern const Log_Event | Rta_LD_writeMask// Logged when a diags mask is changed;
DETAILS
The 'Command' enum defines the available control commands, and the 'CommandPacket' structure defines the format of commands received from the host.
All commands should send back a response, even if only to acknowledge receipt and completion of the command. The format of the response is defined by the 'ResponsePacket' structure.
The Rta_processCommand can be used to process commands received from a host to call the appropriate API. Alternatively, the individual APIs can be called if not all of the defined commands are used.
enum Rta_Command
index URL

Command ids

C synopsis target-domain
typedef Int Rta_Command;
enum {
    Rta_Command_READ_MASK,
    Rta_Command_WRITE_MASK,
    Rta_Command_LOGGER_OFF,
    Rta_Command_LOGGER_ON,
    Rta_Command_GET_CPU_SPEED,
    Rta_Command_RESET_LOGGER,
    Rta_Command_CHANGE_PERIOD,
    Rta_Command_START_TX,
    Rta_Command_STOP_TX
} ;
struct Rta_CommandPacket
index URL

Structure of command received from host TODO - Either the types should be changed to 32-bits, or the packet size information should be added to the RTA XML file

C synopsis target-domain
typedef struct Rta_CommandPacket {
     Rta_Command cmdId;
    UArg arg0;
    UArg arg1;
} Rta_CommandPacket;
struct Rta_ResponsePacket
index URL

Structure of response packet sent back to host

C synopsis target-domain
typedef struct Rta_ResponsePacket {
     Rta_Command cmdId;
    UArg resp0;
    UArg resp1;
} Rta_ResponsePacket;
config Rta_A_invalidLogger // module-wide
index URL

Assert if logger id in control command is invalid

C synopsis target-domain
extern const Assert_Id Rta_A_invalidLogger;
config Rta_E_badCommand // module-wide
index URL

Error raised if Agent receives an invalid command

C synopsis target-domain
extern const Error_Id Rta_E_badCommand;
config Rta_LD_cmdRcvd // module-wide
index URL

Logged when the Agent receives a command

C synopsis target-domain
extern const Log_Event Rta_LD_cmdRcvd;
config Rta_LD_writeMask // module-wide
index URL

Logged when a diags mask is changed

C synopsis target-domain
extern const Log_Event Rta_LD_writeMask;
config Rta_controlTransportClassName // module-wide
index URL

The name of the xdc.rta.IControlTransport class to use

C synopsis target-domain
extern const String Rta_controlTransportClassName;
DETAILS
The class specified here can be used on the host for communicating with this target application to send control commands and receive responses.
config Rta_dataTransportClassName // module-wide
index URL

The name of the xdc.rta.IDataTransport class to use

C synopsis target-domain
extern const String Rta_dataTransportClassName;
DETAILS
The class specified here can be used on the host for reading RTA data from this target application.
Rta_acknowledgeCmd() // module-wide
index URL
C synopsis target-domain
Void Rta_acknowledgeCmd(Rta_ResponsePacket *resp);
Rta_changePeriod() // module-wide
index URL
C synopsis target-domain
Void Rta_changePeriod(Rta_ResponsePacket *resp, UArg period);
Rta_disableLog() // module-wide
index URL
C synopsis target-domain
Void Rta_disableLog(Rta_ResponsePacket *resp, UArg log);
Rta_enableLog() // module-wide
index URL
C synopsis target-domain
Void Rta_enableLog(Rta_ResponsePacket *resp, UArg log);
Rta_getCpuSpeed() // module-wide
index URL
C synopsis target-domain
Void Rta_getCpuSpeed(Rta_ResponsePacket *resp);
Rta_processCommand() // module-wide
index URL

Executes a command packet and prepares the response packet

C synopsis target-domain
Void Rta_processCommand(Rta_CommandPacket *cmd, Rta_ResponsePacket *resp);
ARGUMENTS
cmd — The CommandPacket to execute.
resp — The ResponsePacket to populate with the response.
DETAILS
This API will execute the command specified by the command packet argument, and will store the response information in the response packet argument.
Rta_readMask() // module-wide
index URL
C synopsis target-domain
Void Rta_readMask(Rta_ResponsePacket *resp, UArg addr);
Rta_resetLog() // module-wide
index URL
C synopsis target-domain
Void Rta_resetLog(Rta_ResponsePacket *resp, UArg log);
Rta_writeMask() // module-wide
index URL
C synopsis target-domain
Void Rta_writeMask(Rta_ResponsePacket *resp, UArg addr, UArg val);
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Rta_Module_id();
// Get this module's unique id
Bool Rta_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Rta_Module_heap();
// The heap from which this module allocates memory
Bool Rta_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Rta_Module_getMask();
// Returns the diagnostics mask for this module
Void Rta_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Rta.xdc
var Rta = xdc.useModule('xdc.runtime.Rta');
module-wide constants & types
    values of type Rta.Command// Command ids
        const Rta.Command_READ_MASK;
        const Rta.Command_WRITE_MASK;
        const Rta.Command_LOGGER_OFF;
        const Rta.Command_LOGGER_ON;
        const Rta.Command_GET_CPU_SPEED;
        const Rta.Command_RESET_LOGGER;
        const Rta.Command_CHANGE_PERIOD;
        const Rta.Command_START_TX;
        const Rta.Command_STOP_TX;
    var obj = new Rta.CommandPacket// Structure of command received from host TODO - Either the types should be changed to 32-bits, or the packet size information should be added to the RTA XML file;
        obj.cmdId = Rta.Command ...
        obj.arg0 = UArg ...
        obj.arg1 = UArg ...
    var obj = new Rta.ResponsePacket// Structure of response packet sent back to host;
        obj.cmdId = Rta.Command ...
        obj.resp0 = UArg ...
        obj.resp1 = UArg ...
module-wide config parameters
     Rta.A_invalidLogger// Assert if logger id in control command is invalid = Assert.Desc {
        msg: "A_invalidLogger: The logger id %d is invalid."
    };
     Rta.E_badCommand// Error raised if Agent receives an invalid command = Error.Desc {
        msg: "E_badCommand: Received invalid command, id: %d."
    };
     Rta.LD_cmdRcvd// Logged when the Agent receives a command = Log.EventDesc {
        mask: Diags.USER2,
        msg: "LD_cmdRcvd: Received command: %d, arg0: 0x%x, arg1: 0x%x"
    };
     Rta.LD_writeMask// Logged when a diags mask is changed = Log.EventDesc {
        mask: Diags.USER2,
        msg: "LD_writeMask: Mask addres: 0x%x, New mask value: 0x%x"
    };
     Rta.controlTransportClassName// The name of the xdc.rta.IControlTransport class to use = String "";
     Rta.dataTransportClassName// The name of the xdc.rta.IDataTransport class to use = String "";
     Rta.common$// Common module configuration parameters = Types.Common$ undefined;
enum Rta.Command
index URL

Command ids

XDCscript usage meta-domain
values of type Rta.Command
    const Rta.Command_READ_MASK;
    const Rta.Command_WRITE_MASK;
    const Rta.Command_LOGGER_OFF;
    const Rta.Command_LOGGER_ON;
    const Rta.Command_GET_CPU_SPEED;
    const Rta.Command_RESET_LOGGER;
    const Rta.Command_CHANGE_PERIOD;
    const Rta.Command_START_TX;
    const Rta.Command_STOP_TX;
C SYNOPSIS
Rta_Command
struct Rta.CommandPacket
index URL

Structure of command received from host TODO - Either the types should be changed to 32-bits, or the packet size information should be added to the RTA XML file

XDCscript usage meta-domain
var obj = new Rta.CommandPacket;
    obj.cmdId = Rta.Command ...
    obj.arg0 = UArg ...
    obj.arg1 = UArg ...
C SYNOPSIS
Rta_CommandPacket
struct Rta.ResponsePacket
index URL

Structure of response packet sent back to host

XDCscript usage meta-domain
var obj = new Rta.ResponsePacket;
    obj.cmdId = Rta.Command ...
    obj.resp0 = UArg ...
    obj.resp1 = UArg ...
C SYNOPSIS
Rta_ResponsePacket
config Rta.A_invalidLogger // module-wide
index URL

Assert if logger id in control command is invalid

XDCscript usage meta-domain
Rta.A_invalidLogger = Assert.Desc {
    msg: "A_invalidLogger: The logger id %d is invalid."
};
C SYNOPSIS
Rta_A_invalidLogger
config Rta.E_badCommand // module-wide
index URL

Error raised if Agent receives an invalid command

XDCscript usage meta-domain
Rta.E_badCommand = Error.Desc {
    msg: "E_badCommand: Received invalid command, id: %d."
};
C SYNOPSIS
Rta_E_badCommand
config Rta.LD_cmdRcvd // module-wide
index URL

Logged when the Agent receives a command

XDCscript usage meta-domain
Rta.LD_cmdRcvd = Log.EventDesc {
    mask: Diags.USER2,
    msg: "LD_cmdRcvd: Received command: %d, arg0: 0x%x, arg1: 0x%x"
};
C SYNOPSIS
Rta_LD_cmdRcvd
config Rta.LD_writeMask // module-wide
index URL

Logged when a diags mask is changed

XDCscript usage meta-domain
Rta.LD_writeMask = Log.EventDesc {
    mask: Diags.USER2,
    msg: "LD_writeMask: Mask addres: 0x%x, New mask value: 0x%x"
};
C SYNOPSIS
Rta_LD_writeMask
config Rta.controlTransportClassName // module-wide
index URL

The name of the xdc.rta.IControlTransport class to use

XDCscript usage meta-domain
Rta.controlTransportClassName = String "";
DETAILS
The class specified here can be used on the host for communicating with this target application to send control commands and receive responses.
C SYNOPSIS
Rta_controlTransportClassName
config Rta.dataTransportClassName // module-wide
index URL

The name of the xdc.rta.IDataTransport class to use

XDCscript usage meta-domain
Rta.dataTransportClassName = String "";
DETAILS
The class specified here can be used on the host for reading RTA data from this target application.
C SYNOPSIS
Rta_dataTransportClassName
metaonly config Rta.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Rta.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 Thu, 08 Nov 2012 02:13:25 GMT


module xdc.runtime.Rta

     1    /*
     2     *  ======== Rta.xdc ========
     3     */
     4
     5    package xdc.runtime;
     6
     7    /*!
     8     *  ======== Rta ========
     9     *  The Rta module contains target and configuration code for providing RTA
    10     *  support.
    11     *
    12     *  The 'Command' enum defines the available control commands, and the
    13     *  'CommandPacket' structure defines the format of commands received from
    14     *  the host.
    15     *
    16     *  All commands should send back a response, even if only to acknowledge
    17     *  receipt and completion of the command. The format of the response
    18     *  is defined by the 'ResponsePacket' structure.
    19     *
    20     *  The Rta_processCommand can be used to process commands received from a
    21     *  host to call the appropriate API. Alternatively, the individual APIs can
    22     *  be called if not all of the defined commands are used.
    23     */
    24    module Rta {
    25
    26        /*! Logged when the Agent receives a command */
    27        config Log.Event LD_cmdRcvd = {
    28            mask: Diags.USER2,
    29            msg: "LD_cmdRcvd: Received command: %d, arg0: 0x%x, arg1: 0x%x"
    30        };
    31
    32        /*! Logged when a diags mask is changed */
    33        config Log.Event LD_writeMask = {
    34            mask: Diags.USER2,
    35            msg: "LD_writeMask: Mask addres: 0x%x, New mask value: 0x%x"
    36        };
    37
    38        /*! Assert if logger id in control command is invalid. */
    39        config Assert.Id A_invalidLogger = {
    40            msg: "A_invalidLogger: The logger id %d is invalid."
    41        };
    42
    43        /*! Error raised if Agent receives an invalid command. */
    44        config Error.Id E_badCommand  = {
    45            msg: "E_badCommand: Received invalid command, id: %d."
    46        };
    47
    48        /*! Command ids */
    49        enum Command : Int {
    50            Command_READ_MASK = 0,
    51            Command_WRITE_MASK = 1,
    52            Command_LOGGER_OFF = 2,
    53            Command_LOGGER_ON = 3,
    54            Command_GET_CPU_SPEED = 4,
    55            Command_RESET_LOGGER = 5,
    56            Command_CHANGE_PERIOD = 6,
    57            Command_START_TX = 7,
    58            Command_STOP_TX = 8
    59        };
    60
    61        /*!
    62         * Structure of command received from host
    63         * TODO - Either the types should be changed to 32-bits, or the packet
    64         * size information should be added to the RTA XML file.
    65         */
    66        struct CommandPacket {
    67            Command  cmdId;
    68            UArg     arg0;
    69            UArg     arg1;
    70        }
    71
    72        /*! Structure of response packet sent back to host */
    73        struct ResponsePacket {
    74            Command  cmdId;
    75            UArg     resp0;
    76            UArg     resp1;
    77        }
    78
    79        /*!
    80         *  ======== dataTransportClassName =========
    81         *  The name of the xdc.rta.IDataTransport class to use.
    82         *
    83         *  The class specified here can be used on the host for reading RTA data
    84         *  from this target application.
    85         */
    86        config String dataTransportClassName = "";
    87
    88        /*!
    89         *  ======== controlTransportClassName ========
    90         *  The name of the xdc.rta.IControlTransport class to use.
    91         *
    92         *  The class specified here can be used on the host for communicating with
    93         *  this target application to send control commands and receive responses.
    94         */
    95        config String controlTransportClassName = "";
    96
    97        /*!
    98         *  ======== processCommand ========
    99         *  Executes a command packet and prepares the response packet.
   100         *
   101         *  This API will execute the command specified by the command packet
   102         *  argument, and will store the response information in the response
   103         *  packet argument.
   104         *
   105         *  @param(cmd)    The CommandPacket to execute.
   106         *  @param(resp)   The ResponsePacket to populate with the response.
   107         */
   108        Void processCommand(CommandPacket *cmd, ResponsePacket *resp);
   109
   110        /*!
   111         *  ======== acknowledgeCmd ========
   112         */
   113        Void acknowledgeCmd(ResponsePacket *resp);
   114
   115        /*!
   116         *  ======== readMask ========
   117         */
   118        Void readMask(ResponsePacket *resp, UArg addr);
   119
   120        /*!
   121         *  ======== writeMask ========
   122         */
   123        Void writeMask(ResponsePacket *resp, UArg addr, UArg val);
   124
   125        /*!
   126         *  ======== enableLog ========
   127         */
   128        Void enableLog(ResponsePacket *resp, UArg log);
   129
   130        /*!
   131         *  ======== disableLog ========
   132         */
   133        Void disableLog(ResponsePacket *resp, UArg log);
   134
   135        /*!
   136         *  ======== getCpuSpeed ========
   137         */
   138        Void getCpuSpeed(ResponsePacket *resp);
   139
   140        /*!
   141         *  ======== resetLog ========
   142         */
   143        Void resetLog(ResponsePacket *resp, UArg log);
   144
   145        /*!
   146         *  ======== changePeriod ========
   147         */
   148        Void changePeriod(ResponsePacket *resp, UArg period);
   149
   150        /*!
   151         *  @_nodoc
   152         *  ======== genRta ========
   153         *  Generates the Rta XML file.
   154         */
   155        function genRta(outputFileName);
   156
   157    }
   158    /*
   159     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   160     */
   161


module xdc.runtime.Startup
index URL

The xdc.runtime startup bootstrap

  • C synopsis
  • Individual elements
  • DETAILS
  • STARTUP SEQUENCE
  • MODULE INITIALIZATION
  • XDCscript usage
  • Individual elements
This module manages the very early startup initialization that occurs before C's main() function is invoked. This initialization typically consists of setting hardware specific registers that control watchdog timers, access to memory, cache settings, clock speeds, etc. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Startup.xdc
#include <xdc/runtime/Startup.h>
Functions
Void | Startup_exec// Execute the startup functions of all resident modules();
Bool | Startup_rtsDone// Query the state of the xdc.runtime package();
Functions common to all target modules
 | Startup_Module_getMask// Returns the diagnostics mask for this module, Startup_Module_hasMask// Test whether this module has a diagnostics mask, Startup_Module_heap// The heap from which this module allocates memory, Startup_Module_id// Get this module's unique id, Startup_Module_setMask// Set the diagnostics mask for this module, Startup_Module_startupDone// Test if this module has completed startup
Defines
#define | Startup_DONE// Returned from module startup functions no further calls are required (Int)-1
#define | Startup_NOTDONE// Initial value of state argument passed to module startup functions (Int)0
Typedefs
typedef Void | (*Startup_InitFxn// Type of function assignable to firstFxns, lastFxns, or resetFxn)();
Constants
extern const Startup_InitFxn | Startup_firstFxns// List of functions called before module startup[length];
extern const Startup_InitFxn | Startup_lastFxns// List of functions called after module startup[length];
extern const Int | Startup_maxPasses// Max number of iterations over the set of startup functions;
DETAILS
This module manages the very early startup initialization that occurs before C's main() function is invoked. This initialization typically consists of setting hardware specific registers that control watchdog timers, access to memory, cache settings, clock speeds, etc.
In addition to configuration parameters that allow the user to add custom startup functions, this module also provides services that allow modules to automatically add initialiazation functions to the startup sequence.
STARTUP SEQUENCE
The following list defines the startup sequence and, in particular, when user provided startup functions are invoked:
  1. CPU is initialized and initial C stack setup is performed.
  2. The function specified by Startup.resetFxn is called. Startup.resetFxn is called only on platforms where reset is performed before running a program. For example, boot code for all TI targets invokes Startup.resetFxn, but this function is not invoked on Microsoft targets.
  3. C runtime initialization is performed.
  4. Functions from the array Startup.firstFxns are called.
  5. All Mod_Module_startup functions (see Module Initialization below) are called in a loop until all such functions return Startup_DONE or the maxPasses threshold is reached.
  6. Functions from the array Startup.lastFxns are called.
  7. The function main is called.
The steps 4 - 6 occur during C++ static object initialization. Since the ANSI C++ Language Standard does not provide a means to control the order of C++ constructors, if a C++ constructor uses an XDC module, there is no guarantee that the module's startup function already ran. Therefore, any C++ constructor that needs XDC modules' services should call Startup_exec first to force all startup related functions from steps 4 - 6 to run, before the constructor uses any XDC module.
Also, if a target does not support C++, the steps 4 - 6 will not run automatically. It is then up to a user's code to invoke Startup_exec, possibly as the first step in main.
MODULE INITIALIZATION
Every module can optionally define a startup function which is called before main(). Modules declare that they want to participate in this startup sequence via the @ModuleStartup attribute in the module's spec file. Modules that use this attribute must also implement the following startup function:
      Int Mod_Module_startup(Int state);
where "Mod" is the name of the module requesting startup support.
The parameter to the startup function serves as "state variable" whose initial value will be Startup_NOTDONE. If startup() returns a value other than Startup_DONE, it will be called in a subsequent pass with this return value passed in as state. To ensure this process terminates, no startup function is ever called more than maxPasses times.
For situations in which the startup of one module depends upon another having completed its startup processing, the following function is automatically defined for all modules and proxies:
      Bool Mod_Module_startupDone();
where "Mod" is the name of some module or proxy. These predicates can be used as guards inside of a startup function to probe whether a particular module has completed its own startup processing. As a convenience, the function Startup_rtsDone() probes the necessary set of xdc.runtime modules required to support instance create() functions, and should be called before any startup-time instance creation and/or memory allocation is performed.
      Int Mod_Module_startup(Int state)
      {
          if (!Startup_rtsDone()) {
              return (Startup_NOTDONE);
          }
              .
              .
              .
          return (Startup_DONE);
      }
const Startup_DONE
index URL

Returned from module startup functions no further calls are required

C synopsis target-domain
#define Startup_DONE (Int)-1
const Startup_NOTDONE
index URL

Initial value of state argument passed to module startup functions

C synopsis target-domain
#define Startup_NOTDONE (Int)0
typedef Startup_InitFxn
index URL

Type of function assignable to firstFxns, lastFxns, or resetFxn

C synopsis target-domain
typedef Void (*Startup_InitFxn)();
config Startup_firstFxns // module-wide
index URL

List of functions called before module startup

C synopsis target-domain
extern const Startup_InitFxn Startup_firstFxns[length];
config Startup_lastFxns // module-wide
index URL

List of functions called after module startup

C synopsis target-domain
extern const Startup_InitFxn Startup_lastFxns[length];
config Startup_maxPasses // module-wide
index URL

Max number of iterations over the set of startup functions

C synopsis target-domain
extern const Int Startup_maxPasses;
Startup_exec() // module-wide
index URL

Execute the startup functions of all resident modules

C synopsis target-domain
Void Startup_exec();
DETAILS
Note that this function is idempotent, and can be called at any point in the platform/target startup sequence in which "ordinary" C functions can execute. By default, this function is called as part of the standard C++ static initialization sequence.
If your target compiler does not support C++, this function must be called at least once prior to using any xdc.runtime modules. Simply call this function at the very beginning of main().
Startup_rtsDone() // module-wide
index URL

Query the state of the xdc.runtime package

C synopsis target-domain
Bool Startup_rtsDone();
DETAILS
This function is used by module startup functions to determine when it is possible to use the xdc.runtime modules; e.g. to allocate memory, create instances managed by some module (even those outside the xdc.runtime package), call a Log function, etc.
RETURNS
Returns TRUE when all xdc.runtime modules have completed initialization.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Startup_Module_id();
// Get this module's unique id
Bool Startup_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Startup_Module_heap();
// The heap from which this module allocates memory
Bool Startup_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Startup_Module_getMask();
// Returns the diagnostics mask for this module
Void Startup_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Startup.xdc
var Startup = xdc.useModule('xdc.runtime.Startup');
module-wide constants & types
    const Startup.DONE// Returned from module startup functions no further calls are required = -1;
    const Startup.NOTDONE// Initial value of state argument passed to module startup functions = 0;
module-wide config parameters
     Startup.firstFxns// List of functions called before module startup = Startup.InitFxn[length] [ ];
     Startup.lastFxns// List of functions called after module startup = Startup.InitFxn[length] [ ];
     Startup.maxPasses// Max number of iterations over the set of startup functions = Int 32;
     Startup.common$// Common module configuration parameters = Types.Common$ undefined;
     Startup.resetFxn// Function to be called by during initialization = Void(*)() null;
const Startup.DONE
index URL

Returned from module startup functions no further calls are required

XDCscript usage meta-domain
const Startup.DONE = -1;
C SYNOPSIS
Startup_DONE
const Startup.NOTDONE
index URL

Initial value of state argument passed to module startup functions

XDCscript usage meta-domain
const Startup.NOTDONE = 0;
C SYNOPSIS
Startup_NOTDONE
config Startup.firstFxns // module-wide
index URL

List of functions called before module startup

XDCscript usage meta-domain
Startup.firstFxns = Startup.InitFxn[length] [ ];
C SYNOPSIS
Startup_firstFxns
config Startup.lastFxns // module-wide
index URL

List of functions called after module startup

XDCscript usage meta-domain
Startup.lastFxns = Startup.InitFxn[length] [ ];
C SYNOPSIS
Startup_lastFxns
config Startup.maxPasses // module-wide
index URL

Max number of iterations over the set of startup functions

XDCscript usage meta-domain
Startup.maxPasses = Int 32;
C SYNOPSIS
Startup_maxPasses
metaonly config Startup.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Startup.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.
metaonly config Startup.resetFxn // module-wide
index URL

Function to be called by during initialization

XDCscript usage meta-domain
Startup.resetFxn = Void(*)() null;
DETAILS
This function is called only on platforms where reset is performed before running the program. The purpose of this function is to set up the hardware registers (cache, external memory interface, etc.) before any other code executes.
generated on Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.Startup

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Startup.xdc ========
    15     */
    16
    17    package xdc.runtime;
    18
    19    /*!
    20     *  ======== Startup ========
    21     *  The `xdc.runtime` startup bootstrap
    22     *
    23     *  This module manages the very early startup initialization that occurs
    24     *  before C's `main()` function is invoked.  This initialization typically
    25     *  consists of setting hardware specific registers that control watchdog
    26     *  timers, access to memory, cache settings, clock speeds, etc.
    27     *
    28     *  In addition to configuration parameters that allow the user to add custom
    29     *  startup functions, this module also provides services that allow modules
    30     *  to automatically add initialiazation functions to the startup sequence.
    31     *
    32     *  @a(Startup Sequence)
    33     *  The following list defines the startup sequence and, in particular, when
    34     *  user provided startup functions are invoked:
    35     *  @p(nlist)
    36     *   - CPU is initialized and initial C stack setup is performed.
    37     *   - The function specified by `Startup.resetFxn` is called.
    38     *     `Startup.resetFxn` is called only on platforms where reset is performed
    39     *     before running a program. For example, boot code for all TI targets
    40     *     invokes `Startup.resetFxn`, but this function is not invoked on
    41     *     Microsoft targets.
    42     *   - C runtime initialization is performed.
    43     *   - Functions from the array `Startup.firstFxns` are called.
    44     *   - All `Mod_Module_startup` functions (see Module Initialization below)
    45     *     are called in a loop until all such functions return
    46     *     `{@link #Startup_DONE}` or the `{@link #maxPasses}` threshold is
    47     *     reached.
    48     *   - Functions from the array `Startup.lastFxns` are called.
    49     *   - The function `main` is called.
    50     *  @p
    51     *     The steps 4 - 6 occur during C++ static object initialization. Since
    52     *     the ANSI C++ Language Standard does not provide a means to control
    53     *     the order of C++ constructors, if a C++ constructor uses an XDC module,
    54     *     there is no guarantee that the module's startup function already ran.
    55     *     Therefore, any C++ constructor that needs XDC modules' services should
    56     *     call `Startup_exec` first to force all startup related functions from
    57     *     steps 4 - 6 to run, before the constructor uses any XDC module.
    58     *  @p
    59     *     Also, if a target does not support C++, the steps 4 - 6 will not run
    60     *     automatically. It is then up to a user's code to invoke `Startup_exec`,
    61     *     possibly as the first step in `main`.
    62     *  @p
    63     *
    64     *  @a(Module Initialization)
    65     *  Every module can optionally define a startup function which is called
    66     *  before `main()`.  Modules declare that they want to participate in this
    67     *  startup sequence via the `@ModuleStartup` attribute in the module's spec
    68     *  file.  Modules that use this attribute must also implement the following
    69     *  startup function:
    70     *  @p(code)
    71     *      Int Mod_Module_startup(Int state);
    72     *  @p
    73     *  where "Mod" is the name of the module requesting startup support.
    74     *
    75     *  The parameter to the startup function serves as "state variable" whose
    76     *  initial value will be `Startup_NOTDONE`. If `startup()` returns a value
    77     *  other than `Startup_DONE`, it will be called in a subsequent pass with this
    78     *  return value passed in as `state`.  To ensure this process terminates,
    79     *  no startup function is ever called more than `{@link #maxPasses}`
    80     *  times.
    81     *
    82     *  For situations in which the startup of one module depends upon another
    83     *  having completed its startup processing, the following function is
    84     *  automatically defined for all modules and proxies:
    85     *  @p(code)
    86     *      Bool Mod_Module_startupDone();
    87     *  @p
    88     *  where "Mod" is the name of some module or proxy.  These predicates can
    89     *  be used as guards inside of a startup function to probe whether a
    90     *  particular module has completed its own startup processing.  As a
    91     *  convenience, the function `Startup_rtsDone()` probes the necessary set of
    92     *  `xdc.runtime` modules required to support instance `create()` functions, and
    93     *  should be called before any startup-time instance creation and/or
    94     *  memory allocation is performed.
    95     *  @p(code)
    96     *      Int Mod_Module_startup(Int state)
    97     *      {
    98     *          if (!Startup_rtsDone()) {
    99     *              return (Startup_NOTDONE);
   100     *          }
   101     *              .
   102     *              .
   103     *              .
   104     *          return (Startup_DONE);
   105     *      }
   106     *  @p
   107     *
   108     */
   109    @Template("./Startup.xdt")
   110
   111    module Startup {
   112
   113        /*!
   114         *  ======== DONE ========
   115         *  Returned from module startup functions no further calls are required
   116         */
   117        const Int DONE = -1;
   118
   119        /*!
   120         *  ======== NOTDONE ========
   121         *  Initial value of state argument passed to module startup functions
   122         */
   123        const Int NOTDONE = 0;
   124
   125        /*!
   126         *  ======== ModuleView ========
   127         *  @_nodoc
   128         */
   129        metaonly struct ModuleView {
   130            Bool    rtsStartupDone;
   131            Bool    startupBegun;
   132            String  resetFxn;
   133            String  firstFxns[];
   134            String  lastFxns[];
   135        }
   136
   137        /*!
   138         *  ======== StartupStateView ========
   139         *  @_nodoc
   140         */
   141        metaonly struct StartupStateView {
   142            Int     order;
   143            String  moduleName;
   144            String  done;
   145        }
   146
   147        /*!
   148         *  ======== rovViewInfo ========
   149         *  @_nodoc
   150         */
   151        @Facet
   152        metaonly config xdc.rov.ViewInfo.Instance rovViewInfo =
   153            xdc.rov.ViewInfo.create({
   154                viewMap: [
   155                    ['Module',
   156                        {
   157                            type: xdc.rov.ViewInfo.MODULE,
   158                            viewInitFxn: 'viewInitModule',
   159                            structName: 'ModuleView'
   160                        }
   161                    ],
   162                    ['Startup State',
   163                        {
   164                            type: xdc.rov.ViewInfo.MODULE_DATA,
   165                            viewInitFxn: 'viewInitStartupState',
   166                            structName: 'StartupStateView'
   167                        }
   168                    ]
   169                ]
   170            });
   171
   172        /*!
   173         *  ======== maxPasses ========
   174         *  Max number of iterations over the set of startup functions
   175         */
   176        config Int maxPasses = 32;
   177
   178        /*!
   179         *  ======== InitFxn ========
   180         *  Type of function assignable to `firstFxns`, `lastFxns`, or `resetFxn`
   181         */
   182        typedef Void (*InitFxn)();
   183
   184        /*!
   185         *  ======== firstFxns ========
   186         *  List of functions called before module startup
   187         *
   188         */
   189        config InitFxn firstFxns[length] = [];
   190
   191        /*!
   192         *  ======== lastFxns ========
   193         *  List of functions called after module startup
   194         *
   195         */
   196        config InitFxn lastFxns[length] = [];
   197
   198        /*!
   199         *  ======== resetFxn ========
   200         *  Function to be called by during initialization
   201         *
   202         *  This function is called only on platforms where reset is performed
   203         *  before running the program. The purpose of this function is to set up
   204         *  the hardware registers (cache, external memory interface, etc.) before
   205         *  any other code executes.
   206         *
   207         */
   208        metaonly config InitFxn resetFxn = null;
   209
   210        /*!
   211         *  ======== exec ========
   212         *  Execute the startup functions of all resident modules
   213         *
   214         *  Note that this function is idempotent, and can be called at any point
   215         *  in the platform/target startup sequence in which "ordinary" C functions
   216         *  can execute.  By default, this function is called as part of the
   217         *  standard C++ static initialization sequence.
   218         *
   219         *  If your target compiler does not support C++, this function must be
   220         *  called at least once prior to using any `xdc.runtime` modules.
   221         *  Simply call this function at the very beginning of `main()`.
   222         */
   223        Void exec();
   224
   225        /*!
   226         *  ======== rtsDone ========
   227         *  Query the state of the `xdc.runtime` package
   228         *
   229         *  This function is used by module startup functions to determine
   230         *  when it is possible to use the `xdc.runtime` modules; e.g. to
   231         *  allocate memory, create instances managed by some module (even
   232         *  those outside the `xdc.runtime` package), call a `Log` function,
   233         *  etc.
   234         *
   235         *  @a(returns)
   236         *  Returns `TRUE` when all `xdc.runtime` modules have completed
   237         *  initialization.
   238         */
   239        Bool rtsDone();
   240
   241    internal:
   242
   243        /*!
   244         *  ======== reset ========
   245         *  Application-specific reset function
   246         *
   247         *  This function is defined in `Startup.xdt`
   248         *  (`xdc_runtime_Startup_reset__I`) and is called as early as
   249         *  possible in the program initialization process; for many platforms,
   250         *  it is called prior the the initialization of the C runtime
   251         *  environment.
   252         */
   253        Void reset();
   254
   255        Void startMods(Int state[], Int len);
   256        readonly config Void (*startModsFxn)(Int[], Int) = startMods;
   257
   258        extern Void execImplFxn() = xdc_runtime_Startup_exec__I;
   259
   260        readonly config Void (*execImpl)() = execImplFxn;
   261
   262        typedef Int (*SFxn)(Int);
   263        config SFxn sfxnTab[];
   264
   265        /*!
   266         *  ======== sfxnRts ========
   267         *  Array of runtime modules' startup functions
   268         *
   269         *  This array also contains startup functions of the modules that inherit
   270         *  from interfaces in `xdc.runtime`. Functions added to this array are
   271         *  called only once before the startup procedure for all modules begins.
   272         */
   273        config Bool sfxnRts[];
   274
   275        struct Module_State {
   276            Int *stateTab;      /* initially null */
   277            Bool execFlag;      /* if true, startup code processing started */
   278            Bool rtsDoneFlag;
   279        };
   280
   281    }
   282    /*
   283     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   284     */
   285


module xdc.runtime.SysCallback
index URL

ISystemSupport implementation for user callback functions

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides a implementation of the ISystemSupport interface that simply calls back the user defined functions to enable the System module's functionality. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/SysCallback.xdc
#include <xdc/runtime/SysCallback.h>
Functions common to all ISystemSupport modules
Void | SysCallback_abort// Backend for System.abort()(String str);
Void | SysCallback_exit// Backend for System.exit()(Int stat);
Void | SysCallback_flush// Backend for System.flush()();
Void | SysCallback_putch// Backend for System.printf() and System.putch()(Char ch);
Bool | SysCallback_ready// Test if character output can proceed();
Functions common to all target modules
 | SysCallback_Module_getMask// Returns the diagnostics mask for this module, SysCallback_Module_hasMask// Test whether this module has a diagnostics mask, SysCallback_Module_heap// The heap from which this module allocates memory, SysCallback_Module_id// Get this module's unique id, SysCallback_Module_setMask// Set the diagnostics mask for this module, SysCallback_Module_startupDone// Test if this module has completed startup
Typedefs
typedef Void | (*SysCallback_AbortFxn// Abort function signature)(String);
typedef Void | (*SysCallback_ExitFxn// Exit function signature)(Int);
typedef Void | (*SysCallback_FlushFxn// Flush function signature)();
typedef Void | (*SysCallback_PutchFxn// Putch function signature)(Char);
typedef Bool | (*SysCallback_ReadyFxn// Ready function signature)();
Constants
extern const SysCallback_AbortFxn | SysCallback_abortFxn// User supplied abort function;
extern const SysCallback_ExitFxn | SysCallback_exitFxn// User supplied exit function;
extern const SysCallback_FlushFxn | SysCallback_flushFxn// User supplied flush function;
extern const SysCallback_PutchFxn | SysCallback_putchFxn// User supplied character output function;
extern const SysCallback_ReadyFxn | SysCallback_readyFxn// User supplied ready function;
DETAILS
This module provides a implementation of the ISystemSupport interface that simply calls back the user defined functions to enable the System module's functionality.
Configuration is as shown below.
  var SysCallback = xdc.useModule('xdc.runtime.SysCallback');
  SysCallback.abortFxn = "&userAbort";
  SysCallback.exitFxn  = "&userExit";
  SysCallback.flushFxn = "&userFlush";
  SysCallback.putchFxn = "&userPutch";
  SysCallback.readyFxn = "&userReady";
typedef SysCallback_AbortFxn
index URL

Abort function signature

C synopsis target-domain
typedef Void (*SysCallback_AbortFxn)(String);
typedef SysCallback_ExitFxn
index URL

Exit function signature

C synopsis target-domain
typedef Void (*SysCallback_ExitFxn)(Int);
typedef SysCallback_FlushFxn
index URL

Flush function signature

C synopsis target-domain
typedef Void (*SysCallback_FlushFxn)();
typedef SysCallback_PutchFxn
index URL

Putch function signature

C synopsis target-domain
typedef Void (*SysCallback_PutchFxn)(Char);
typedef SysCallback_ReadyFxn
index URL

Ready function signature

C synopsis target-domain
typedef Bool (*SysCallback_ReadyFxn)();
config SysCallback_abortFxn // module-wide
index URL

User supplied abort function

C synopsis target-domain
extern const SysCallback_AbortFxn SysCallback_abortFxn;
DETAILS
This function is called when the application calls System.abort() function. If the user supplied funtion returns, the abort function of the ANSI C Standard library is called. For more information see the System.abort() documentation.
By default, this function is configured with a default abort function. This default abort function spins forever and never returns.
config SysCallback_exitFxn // module-wide
index URL

User supplied exit function

C synopsis target-domain
extern const SysCallback_ExitFxn SysCallback_exitFxn;
DETAILS
This function is called when the application calls System.exit() function. If the user supplied function returns, the ANSI C Standard Library atexit processing will be completed. For more information see the System.exit() documentation.
By default, this function is configured with a default exit function. The default exit function does nothing and returns.
config SysCallback_flushFxn // module-wide
index URL

User supplied flush function

C synopsis target-domain
extern const SysCallback_FlushFxn SysCallback_flushFxn;
DETAILS
This function is called when the application calls System.flush() function.
By default, this function is configured with a default flush function. The default flush function does nothing and returns.
config SysCallback_putchFxn // module-wide
index URL

User supplied character output function

C synopsis target-domain
extern const SysCallback_PutchFxn SysCallback_putchFxn;
DETAILS
This function is called whenever the System module needs to output a character; e.g., during System.printf() or System.putch().
By default, this function is configured with a default putch function. The default putch function drops the characters.
config SysCallback_readyFxn // module-wide
index URL

User supplied ready function

C synopsis target-domain
extern const SysCallback_ReadyFxn SysCallback_readyFxn;
DETAILS
This function is called by the System module prior to performing any character output to check if the SystemSupport module is ready to accept the character. For more information see the ISystemSupport.ready() documentation.
By default, this function is configured with a default ready function. The default ready function returns TRUE always.
SysCallback_abort() // module-wide
index URL

Backend for System.abort()

C synopsis target-domain
Void SysCallback_abort(String str);
ARGUMENTS
str — message to output just prior to aborting
If non-NULL, this string should be output just prior to terminating.
DETAILS
This function is called by System.abort() prior to calling the ANSI C Standard library function abort(). So, to ensure the abort processing of the system's ANSI C Standard library completes, this function should return to its caller.
SysCallback_exit() // module-wide
index URL

Backend for System.exit()

C synopsis target-domain
Void SysCallback_exit(Int stat);
ARGUMENTS
stat — status value passed to all "atexit" handlers
This value is passed to all "atexit" handles bound via System.atexit(). If the application exits via the ANSI C Standard exit() function rather than via System_exit(), stat will be equal to System.STATUS_UNKNOWN.
DETAILS
This function is called as part the normal "atexit" processing performed by the ANSI C Standard Library's exit() function; System.exit() directly calls ANSI exit().
This function is called after all "atexit" handlers bound via System.atexit() are run and it is always called while "inside" the the System gate.
To ensure that all exit processing of the system's ANSI C Standard Library completes, this function should return to its caller. Exit handlers bound using the ANSI C Standard Library atexit() function may run before or after this function.
SEE
System.atexit
SysCallback_flush() // module-wide
index URL

Backend for System.flush()

C synopsis target-domain
Void SysCallback_flush();
DETAILS
This function is simply called by System_flush to output any characters buffered by the underlying SystemSupport module to an output device.
SysCallback_putch() // module-wide
index URL

Backend for System.printf() and System.putch()

C synopsis target-domain
Void SysCallback_putch(Char ch);
ARGUMENTS
ch — character to output
DETAILS
Output a single character. This function is called by System_printf() to write each character of formated output specified by its arguments.
SysCallback_ready() // module-wide
index URL

Test if character output can proceed

C synopsis target-domain
Bool SysCallback_ready();
DETAILS
This function is called by System prior to performing any character output. If this function returns FALSE, the System functions that would normally call putch() simply return (with an appropriate error status) without ever calling putch.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SysCallback_Module_id();
// Get this module's unique id
Bool SysCallback_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SysCallback_Module_heap();
// The heap from which this module allocates memory
Bool SysCallback_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SysCallback_Module_getMask();
// Returns the diagnostics mask for this module
Void SysCallback_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/SysCallback.xdc
var SysCallback = xdc.useModule('xdc.runtime.SysCallback');
module-wide config parameters
     SysCallback.abortFxn// User supplied abort function = Void(*)(String) "&xdc_runtime_SysCallback_defaultAbort";
     SysCallback.exitFxn// User supplied exit function = Void(*)(Int) "&xdc_runtime_SysCallback_defaultExit";
     SysCallback.flushFxn// User supplied flush function = Void(*)() "&xdc_runtime_SysCallback_defaultFlush";
     SysCallback.putchFxn// User supplied character output function = Void(*)(Char) "&xdc_runtime_SysCallback_defaultPutch";
     SysCallback.readyFxn// User supplied ready function = Bool(*)() "&xdc_runtime_SysCallback_defaultReady";
     SysCallback.common$// Common module configuration parameters = Types.Common$ undefined;
config SysCallback.abortFxn // module-wide
index URL

User supplied abort function

XDCscript usage meta-domain
SysCallback.abortFxn = Void(*)(String) "&xdc_runtime_SysCallback_defaultAbort";
DETAILS
This function is called when the application calls System.abort() function. If the user supplied funtion returns, the abort function of the ANSI C Standard library is called. For more information see the System.abort() documentation.
By default, this function is configured with a default abort function. This default abort function spins forever and never returns.
C SYNOPSIS
SysCallback_abortFxn
config SysCallback.exitFxn // module-wide
index URL

User supplied exit function

XDCscript usage meta-domain
SysCallback.exitFxn = Void(*)(Int) "&xdc_runtime_SysCallback_defaultExit";
DETAILS
This function is called when the application calls System.exit() function. If the user supplied function returns, the ANSI C Standard Library atexit processing will be completed. For more information see the System.exit() documentation.
By default, this function is configured with a default exit function. The default exit function does nothing and returns.
C SYNOPSIS
SysCallback_exitFxn
config SysCallback.flushFxn // module-wide
index URL

User supplied flush function

XDCscript usage meta-domain
SysCallback.flushFxn = Void(*)() "&xdc_runtime_SysCallback_defaultFlush";
DETAILS
This function is called when the application calls System.flush() function.
By default, this function is configured with a default flush function. The default flush function does nothing and returns.
C SYNOPSIS
SysCallback_flushFxn
config SysCallback.putchFxn // module-wide
index URL

User supplied character output function

XDCscript usage meta-domain
SysCallback.putchFxn = Void(*)(Char) "&xdc_runtime_SysCallback_defaultPutch";
DETAILS
This function is called whenever the System module needs to output a character; e.g., during System.printf() or System.putch().
By default, this function is configured with a default putch function. The default putch function drops the characters.
C SYNOPSIS
SysCallback_putchFxn
config SysCallback.readyFxn // module-wide
index URL

User supplied ready function

XDCscript usage meta-domain
SysCallback.readyFxn = Bool(*)() "&xdc_runtime_SysCallback_defaultReady";
DETAILS
This function is called by the System module prior to performing any character output to check if the SystemSupport module is ready to accept the character. For more information see the ISystemSupport.ready() documentation.
By default, this function is configured with a default ready function. The default ready function returns TRUE always.
C SYNOPSIS
SysCallback_readyFxn
metaonly config SysCallback.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SysCallback.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 Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.SysCallback

     1    /*
     2     *  Copyright (c) 2012 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== SysCallback.xdc ========
    15     */
    16    package xdc.runtime;
    17
    18    /*!
    19     *  ======== SysCallback ========
    20     *  ISystemSupport implementation for user callback functions
    21     *
    22     *  This module provides a implementation of the `{@link ISystemSupport}`
    23     *  interface that simply calls back the user defined functions to enable the
    24     *  System module's functionality.
    25     *
    26     *  Configuration is as shown below.
    27     *  @p(code)
    28     *
    29     *  var SysCallback = xdc.useModule('xdc.runtime.SysCallback');
    30     *  SysCallback.abortFxn = "&userAbort";
    31     *  SysCallback.exitFxn  = "&userExit";
    32     *  SysCallback.flushFxn = "&userFlush";
    33     *  SysCallback.putchFxn = "&userPutch";
    34     *  SysCallback.readyFxn = "&userReady";
    35     *
    36     *  @p
    37     *
    38     */
    39    module SysCallback inherits xdc.runtime.ISystemSupport {
    40        /*!
    41         *  ======== AbortFxn ========
    42         *  Abort function signature
    43         */
    44        typedef Void (*AbortFxn)(String);
    45
    46        /*!
    47         *  ======== ExitFxn ========
    48         *  Exit function signature
    49         */
    50        typedef Void (*ExitFxn)(Int);
    51
    52        /*!
    53         *  ======== FlushFxn ========
    54         *  Flush function signature
    55         */
    56        typedef Void (*FlushFxn)();
    57
    58        /*!
    59         *  ======== PutchFxn ========
    60         *  Putch function signature
    61         */
    62        typedef Void (*PutchFxn)(Char);
    63
    64        /*!
    65         *  ======== ReadyFxn ========
    66         *  Ready function signature
    67         */
    68        typedef Bool (*ReadyFxn)();
    69
    70        /*!
    71         *  ======== abortFxn =========
    72         *  User supplied abort function
    73         *
    74         *  This function is called when the application calls
    75         *  `{@link System#abort()}` function. If the user supplied funtion
    76         *  returns, the abort function of the ANSI C Standard library is called.
    77         *  For more information see the `{@link System#abort()}` documentation.
    78         *
    79         *  By default, this function is configured with a default abort function.
    80         *  This default abort function spins forever and never returns.
    81         */
    82        config AbortFxn abortFxn = "&xdc_runtime_SysCallback_defaultAbort";
    83
    84        /*!
    85         *  ======== exitFxn =========
    86         *  User supplied exit function
    87         *
    88         *  This function is called when the application calls
    89         *  `{@link System#exit()}` function. If the user supplied function
    90         *  returns, the ANSI C Standard Library atexit processing will be
    91         *  completed. For more information see the `{@link System#exit()}`
    92         *  documentation.
    93         *
    94         *  By default, this function is configured with a default exit function.
    95         *  The default exit function does nothing and returns.
    96         */
    97        config ExitFxn exitFxn = "&xdc_runtime_SysCallback_defaultExit";
    98
    99        /*!
   100         *  ======== flushFxn =========
   101         *  User supplied flush function
   102         *
   103         *  This function is called when the application calls
   104         *  `{@link System#flush()}` function.
   105         *
   106         *  By default, this function is configured with a default flush function.
   107         *  The default flush function does nothing and returns.
   108         */
   109        config FlushFxn flushFxn = "&xdc_runtime_SysCallback_defaultFlush";
   110
   111        /*!
   112         *  ======== putchFxn =========
   113         *  User supplied character output function
   114         *
   115         *  This function is called whenever the `System` module needs to output
   116         *  a character; e.g., during `{@link System#printf()}` or
   117         *  `{@link System#putch()}`.
   118         *
   119         *  By default, this function is configured with a default putch function.
   120         *  The default putch function drops the characters.
   121         */
   122        config PutchFxn putchFxn = "&xdc_runtime_SysCallback_defaultPutch";
   123
   124        /*!
   125         *  ======== readyFxn =========
   126         *  User supplied ready function
   127         *
   128         *  This function is called by the `System` module prior to performing any
   129         *  character output to check if the `SystemSupport` module is ready to
   130         *  accept the character. For more information see the
   131         * `{@link ISystemSupport#ready()}` documentation.
   132         *
   133         *  By default, this function is configured with a default ready function.
   134         *  The default ready function returns `TRUE` always.
   135         */
   136        config ReadyFxn readyFxn = "&xdc_runtime_SysCallback_defaultReady";
   137    }
   138    /*
   139     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   140     */
   141


module xdc.runtime.SysMin
index URL

Minimal implementation of ISystemSupport

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This implementation provides a fully functional implementation of all methods specified by ISystemSupport. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/SysMin.xdc
#include <xdc/runtime/SysMin.h>
Functions common to all ISystemSupport modules
Void | SysMin_abort// Backend for System.abort()(String str);
Void | SysMin_exit// Backend for System.exit()(Int stat);
Void | SysMin_flush// Backend for System.flush()();
Void | SysMin_putch// Backend for System.printf() and System.putch()(Char ch);
Bool | SysMin_ready// Test if character output can proceed();
Functions common to all target modules
 | SysMin_Module_getMask// Returns the diagnostics mask for this module, SysMin_Module_hasMask// Test whether this module has a diagnostics mask, SysMin_Module_heap// The heap from which this module allocates memory, SysMin_Module_id// Get this module's unique id, SysMin_Module_setMask// Set the diagnostics mask for this module, SysMin_Module_startupDone// Test if this module has completed startup
Typedefs
typedef Void | (*SysMin_OutputFxn// Output characters in the specified buffer)(Char*,UInt);
Constants
extern const SizeT | SysMin_bufSize// Size (in MAUs) of the output;
extern const Bool | SysMin_flushAtExit// Flush the internal buffer during exit or abort;
extern const SysMin_OutputFxn | SysMin_outputFxn// User suplied character output function;
DETAILS
This implementation provides a fully functional implementation of all methods specified by ISystemSupport.
The module maintains an internal buffer (with a configurable size) that stores on the "output". When full, the data is over-written. When System_flush() is called the characters in the internal buffer are "output" using the user configuratble outputFxn.
As with all ISystemSupport modules, this module is the back-end for the System module; application code does not directly call these functions.
typedef SysMin_OutputFxn
index URL

Output characters in the specified buffer

C synopsis target-domain
typedef Void (*SysMin_OutputFxn)(Char*,UInt);
DETAILS
The first parameter is a pointer to a buffer of characters to be output. The second parameter is the number of characters in the buffer to output.
This function may be called with 0 as the second parameter. In this case, the function should simply return.
config SysMin_bufSize // module-wide
index URL

Size (in MAUs) of the output

C synopsis target-domain
extern const SizeT SysMin_bufSize;
DETAILS
An internal buffer of this size is allocated. All output is stored in this internal buffer.
If 0 is specified for the size, no buffer is created.
config SysMin_flushAtExit // module-wide
index URL

Flush the internal buffer during exit or abort

C synopsis target-domain
extern const Bool SysMin_flushAtExit;
DETAILS
If the application's target is a TI target, the internal buffer is flushed via the HOSTwrite function in the TI C Run Time Support (RTS) library.
If the application's target is not a TI target, the internal buffer is flushed to stdout via fwrite(..., stdout).
Setting this parameter to false reduces the footprint of the application at the expense of not getting output when the application ends via a System_exit(), System_abort(), exit() or abort().
config SysMin_outputFxn // module-wide
index URL

User suplied character output function

C synopsis target-domain
extern const SysMin_OutputFxn SysMin_outputFxn;
DETAILS
If this parameter is set to a non-null value, the specified function will be called by to output characters buffered within SysMin.
For example, if you define a function named myOutputFxn, the following configuration fragment will cause SysMin to call myOutputFxn whenever the character buffer is flushed.
      var SysMin = xdc.useModule("xdc.runtime.SysMin");
      SysMin.outputFxn = "&myOutputFxn";
If this parameter is not set, a default function will be used which uses the ANSI C Standard Library function fwrite() (or HOSTwrite in the TI C Run Time Support library) to output accumulated output characters.
SEE
OutputFxn
SysMin_abort() // module-wide
index URL

Backend for System.abort()

C synopsis target-domain
Void SysMin_abort(String str);
ARGUMENTS
str — message to output just prior to aborting
If non-NULL, this string should be output just prior to terminating.
message to output just prior to aborting
If non-NULL, this string should be output just prior to terminating.
DETAILS
This function is called by System.abort() prior to calling the ANSI C Standard library function abort(). So, to ensure the abort processing of the system's ANSI C Standard library completes, this function should return to its caller.
This abort function writes the string to the internal output buffer and then gives all internal output to the outputFxn function if the flushAtExit configuration parameter is true.
SEE
ISystemSupport.abort
SysMin_exit() // module-wide
index URL

Backend for System.exit()

C synopsis target-domain
Void SysMin_exit(Int stat);
ARGUMENTS
stat — status value passed to all "atexit" handlers
This value is passed to all "atexit" handles bound via System.atexit(). If the application exits via the ANSI C Standard exit() function rather than via System_exit(), stat will be equal to System.STATUS_UNKNOWN.
DETAILS
This function is called as part the normal "atexit" processing performed by the ANSI C Standard Library's exit() function; System.exit() directly calls ANSI exit().
This function is called after all "atexit" handlers bound via System.atexit() are run and it is always called while "inside" the the System gate.
To ensure that all exit processing of the system's ANSI C Standard Library completes, this function should return to its caller. Exit handlers bound using the ANSI C Standard Library atexit() function may run before or after this function.
This exit function gives all internal output to the outputFxn function if the flushAtExit configuration parameter is true.
SEE
System.atexit, ISystemSupport.exit
SysMin_flush() // module-wide
index URL

Backend for System.flush()

C synopsis target-domain
Void SysMin_flush();
DETAILS
This function is simply called by System_flush to output any characters buffered by the underlying SystemSupport module to an output device.
The flush writes the contents of the internal character buffer via the outputFxn function.
WARNING
The System gate is used for thread safety during the entire flush operation, so care must be taken when flushing with this ISystemSupport module. Depending on the nature of the System gate, your application's interrupt latency may become a function of the bufSize parameter!
SEE
ISystemSupport.flush
SysMin_putch() // module-wide
index URL

Backend for System.printf() and System.putch()

C synopsis target-domain
Void SysMin_putch(Char ch);
ARGUMENTS
ch — character to output
DETAILS
Output a single character. This function is called by System_printf() to write each character of formated output specified by its arguments.
Places the character into an internal buffer. The flush sends the internal buffer to the outputFxn function. The internal buffer is also sent to the SysMin_outputFxn function by exit and abort if the flushAtExit configuration parameter is true.
SEE
ISystemSupport.putch
SysMin_ready() // module-wide
index URL

Test if character output can proceed

C synopsis target-domain
Bool SysMin_ready();
DETAILS
This function is called by System prior to performing any character output. If this function returns FALSE, the System functions that would normally call putch() simply return (with an appropriate error status) without ever calling putch.
This function returns true if the internal buffer is non-zero.
SEE
ISystemSupport.ready
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SysMin_Module_id();
// Get this module's unique id
Bool SysMin_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SysMin_Module_heap();
// The heap from which this module allocates memory
Bool SysMin_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SysMin_Module_getMask();
// Returns the diagnostics mask for this module
Void SysMin_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/SysMin.xdc
var SysMin = xdc.useModule('xdc.runtime.SysMin');
module-wide constants & types
    var obj = new SysMin.BufferEntryView// ;
        obj.entry = String ...
    var obj = new SysMin.ModuleView// ;
        obj.outBuf = Ptr ...
        obj.outBufIndex = UInt ...
        obj.wrapped = Bool ...
module-wide config parameters
     SysMin.bufSize// Size (in MAUs) of the output = SizeT 1024;
     SysMin.flushAtExit// Flush the internal buffer during exit or abort = Bool true;
     SysMin.outputFxn// User suplied character output function = Void(*)(Char*,UInt) null;
     SysMin.common$// Common module configuration parameters = Types.Common$ undefined;
     SysMin.sectionName// Section where the internal character output buffer is placed = String null;
metaonly struct SysMin.BufferEntryView
index URL
XDCscript usage meta-domain
var obj = new SysMin.BufferEntryView;
    obj.entry = String ...
metaonly struct SysMin.ModuleView
index URL
XDCscript usage meta-domain
var obj = new SysMin.ModuleView;
    obj.outBuf = Ptr ...
    obj.outBufIndex = UInt ...
    obj.wrapped = Bool ...
config SysMin.bufSize // module-wide
index URL

Size (in MAUs) of the output

XDCscript usage meta-domain
SysMin.bufSize = SizeT 1024;
DETAILS
An internal buffer of this size is allocated. All output is stored in this internal buffer.
If 0 is specified for the size, no buffer is created.
C SYNOPSIS
SysMin_bufSize
config SysMin.flushAtExit // module-wide
index URL

Flush the internal buffer during exit or abort

XDCscript usage meta-domain
SysMin.flushAtExit = Bool true;
DETAILS
If the application's target is a TI target, the internal buffer is flushed via the HOSTwrite function in the TI C Run Time Support (RTS) library.
If the application's target is not a TI target, the internal buffer is flushed to stdout via fwrite(..., stdout).
Setting this parameter to false reduces the footprint of the application at the expense of not getting output when the application ends via a System_exit(), System_abort(), exit() or abort().
C SYNOPSIS
SysMin_flushAtExit
config SysMin.outputFxn // module-wide
index URL

User suplied character output function

XDCscript usage meta-domain
SysMin.outputFxn = Void(*)(Char*,UInt) null;
DETAILS
If this parameter is set to a non-null value, the specified function will be called by to output characters buffered within SysMin.
For example, if you define a function named myOutputFxn, the following configuration fragment will cause SysMin to call myOutputFxn whenever the character buffer is flushed.
      var SysMin = xdc.useModule("xdc.runtime.SysMin");
      SysMin.outputFxn = "&myOutputFxn";
If this parameter is not set, a default function will be used which uses the ANSI C Standard Library function fwrite() (or HOSTwrite in the TI C Run Time Support library) to output accumulated output characters.
SEE
OutputFxn
C SYNOPSIS
SysMin_outputFxn
metaonly config SysMin.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SysMin.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.
metaonly config SysMin.sectionName // module-wide
index URL

Section where the internal character output buffer is placed

XDCscript usage meta-domain
SysMin.sectionName = String null;
DETAILS
The default is to have no explicit placement; i.e., the linker is free to place it anywhere in the memory map.
generated on Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.SysMin

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== SysMin.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== SysMin ========
    19     *
    20     *  Minimal implementation of `{@link ISystemSupport}`.
    21     *
    22     *  This implementation provides a fully functional implementation of
    23     *  all methods specified by `ISystemSupport`.
    24     *
    25     *  The module maintains an internal buffer (with a configurable size)
    26     *  that stores on the "output". When full, the data is over-written.  When
    27     *  `System_flush()` is called the characters in the internal buffer are
    28     *  "output" using the user configuratble `{@link #outputFxn}`.
    29     *
    30     *  As with all `ISystemSupport` modules, this module is the back-end for the
    31     *  `{@link System}` module; application code does not directly call these
    32     *  functions.
    33     */
    34
    35    @Template("./SysMin.xdt")
    36    @ModuleStartup
    37    module SysMin inherits xdc.runtime.ISystemSupport {
    38
    39        metaonly struct ModuleView {
    40            Ptr outBuf;
    41            UInt outBufIndex;
    42            Bool wrapped;    /* has the buffer wrapped */
    43        };
    44
    45        metaonly struct BufferEntryView {
    46            String entry;
    47        }
    48
    49        /*!
    50         *  ======== rovViewInfo ========
    51         *  @_nodoc
    52         */
    53        @Facet
    54        metaonly config xdc.rov.ViewInfo.Instance rovViewInfo =
    55            xdc.rov.ViewInfo.create({
    56                viewMap: [
    57                    ['Module',
    58                        {
    59                            type: xdc.rov.ViewInfo.MODULE,
    60                            viewInitFxn: 'viewInitModule',
    61                            structName: 'ModuleView'
    62                        }
    63                    ],
    64                    ['OutputBuffer',
    65                        {
    66                            type: xdc.rov.ViewInfo.MODULE_DATA,
    67                            viewInitFxn: 'viewInitOutputBuffer',
    68                            structName: 'BufferEntryView'
    69                        }
    70                    ]
    71                ]
    72            });
    73
    74        /*!
    75         *  ======== bufSize ========
    76         *  Size (in MAUs) of the output.
    77         *
    78         *  An internal buffer of this size is allocated. All output is stored
    79         *  in this internal buffer.
    80         *
    81         *  If 0 is specified for the size, no buffer is created.
    82         */
    83        config SizeT bufSize = 1024;
    84
    85        /*!
    86         *  ======== flushAtExit ========
    87         *  Flush the internal buffer during `{@link #exit}` or `{@link #abort}`.
    88         *
    89         *  If the application's target is a TI target, the internal buffer is
    90         *  flushed via the `HOSTwrite` function in the TI C Run Time Support
    91         *  (RTS) library.
    92         *
    93         *  If the application's target is not a TI target, the internal buffer
    94         *  is flushed to `stdout` via `fwrite(..., stdout)`.
    95         *
    96         *  Setting this parameter to `false` reduces the footprint of the
    97         *  application at the expense of not getting output when the application
    98         *  ends via a `System_exit()`, `System_abort()`, `exit()` or `abort()`.
    99         */
   100        config Bool flushAtExit = true;
   101
   102        /*!
   103         *  ======== sectionName ========
   104         *  Section where the internal character output buffer is placed
   105         *
   106         *  The default is to have no explicit placement; i.e., the linker is
   107         *  free to place it anywhere in the memory map.
   108         */
   109        metaonly config String sectionName = null;
   110
   111        /*!
   112         *  ======== OutputFxn ========
   113         *  Output characters in the specified buffer
   114         *
   115         *  The first parameter is a pointer to a buffer of characters to be
   116         *  output.  The second parameter is the number of characters in the
   117         *  buffer to output.
   118         *
   119         *  This function may be called with 0 as the second parameter.  In this
   120         *  case, the function should simply return.
   121         *
   122         */
   123        typedef Void (*OutputFxn)(Char *, UInt);
   124
   125        /*!
   126         *  ======== outputFxn ========
   127         *  User suplied character output function
   128         *
   129         *  If this parameter is set to a non-`null` value, the specified
   130         *  function will be called by to output characters buffered within
   131         *  `SysMin`.
   132         *
   133         *  For example, if you define a function named `myOutputFxn`, the
   134         *  following configuration fragment will cause `SysMin` to call
   135         *  `myOutputFxn` whenever the character buffer is flushed.
   136         *  @p(code)
   137         *      var SysMin = xdc.useModule("xdc.runtime.SysMin");
   138         *      SysMin.outputFxn = "&myOutputFxn";
   139         *  @p
   140         *
   141         *  If this parameter is not set, a default function will be used which
   142         *  uses the ANSI C Standard Library function `fwrite()` (or `HOSTwrite`
   143         *  in the TI C Run Time Support library) to output
   144         *  accumulated output characters.
   145         *
   146         *  @see #OutputFxn
   147         */
   148        config OutputFxn outputFxn = null;
   149
   150        /*!
   151         *  ======== abort ========
   152         *  Backend for `{@link System#abort()}`
   153         *
   154         *  This abort function writes the string to the internal
   155         *  output buffer and then gives all internal output to the
   156         *  `{@link #outputFxn}` function if the `{@link #flushAtExit}`
   157         *  configuration parameter is true.
   158         *
   159         *  @param(str)  message to output just prior to aborting
   160         *
   161         *      If non-`NULL`, this string should be output just prior to
   162         *      terminating.
   163         *
   164         *  @see ISystemSupport#abort
   165         */
   166        override Void abort(String str);
   167
   168        /*!
   169         *  ======== exit ========
   170         *  Backend for `{@link System#exit()}`
   171         *
   172         *  This exit function gives all internal output to the
   173         *  `{@link #outputFxn}` function if the `{@link #flushAtExit}`
   174         *  configuration parameter is true.
   175         *
   176         *  @see ISystemSupport#exit
   177         */
   178        override Void exit(Int stat);
   179
   180        /*!
   181         *  ======== flush ========
   182         *  Backend for `{@link System#flush()}`
   183         *
   184         *  The `flush` writes the contents of the internal character buffer
   185         *  via the `{@link #outputFxn}` function.
   186         *
   187         *  @a(Warning)
   188         *  The `{@link System}` gate is used for thread safety during the
   189         *  entire flush operation, so care must be taken when flushing with
   190         *  this `ISystemSupport` module.  Depending on the nature of the
   191         *  `System` gate, your application's interrupt latency
   192         *  may become a function of the `bufSize` parameter!
   193         *
   194         *  @see ISystemSupport#flush
   195         */
   196        override Void flush();
   197
   198        /*!
   199         *  ======== putch ========
   200         *  Backend for `{@link System#printf()}` and `{@link System#putch()}`
   201         *
   202         *  Places the character into an internal buffer. The `{@link #flush}`
   203         *  sends the internal buffer to the `{@link #outputFxn}` function.
   204         *  The internal buffer is also sent to the `SysMin_outputFxn`
   205         *  function by `{@link #exit}` and `{@link #abort}` if the
   206         *  `{@link #flushAtExit}` configuration parameter is true.
   207         *
   208         *  @see ISystemSupport#putch
   209         */
   210        override Void putch(Char ch);
   211
   212        /*!
   213         *  ======== ready ========
   214         *  Test if character output can proceed
   215         *
   216         *  This function returns true if the internal buffer is non-zero.
   217         *
   218         *  @see ISystemSupport#ready
   219         */
   220        override Bool ready();
   221
   222    internal:
   223
   224        /*
   225         * ======== output ========
   226         *  SysMin_output__I is generated based on bufSize.
   227         *
   228         *  This function is generated so that the code does not contain a call to
   229         *  HOSTwrite if bufSize is 0. Otherwise, if bufSize is 0, the compiler
   230         *  would optimize out the HOSTwrite function, leaving a 0-length symbol.
   231         *  If the a client later tried to pull in HOSTwrite, there would be a
   232         *  symbol error.
   233         *
   234         *  This generated function is accessed through an internal config so
   235         *  that it is an indirect call in the ROM case, but optimized to a direct
   236         *  call in the RAM case.
   237         */
   238        Void output(Char *buf, UInt size);
   239        readonly config OutputFxn outputFunc = '&xdc_runtime_SysMin_output__I';
   240
   241        struct Module_State {
   242            Char outbuf[];  /* the output buffer */
   243            UInt outidx;    /* index within outbuf to next Char to write */
   244            Bool wrapped;   /* has the index (outidx) wrapped */
   245        }
   246    }
   247    /*
   248     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   249     */
   250


module xdc.runtime.SysStd
index URL

Implementation of ISystemSupport using ANSI C Standard Library

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This implementation provides a fully functional implementation of all methods specified by ISystemSupport. As with all ISystemSupport modules, this module is the back-end for the System module. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/SysStd.xdc
#include <xdc/runtime/SysStd.h>
Functions common to all ISystemSupport modules
Void | SysStd_abort// Backend for System.abort()(String str);
Void | SysStd_exit// Backend for System.exit()(Int stat);
Void | SysStd_flush// Backend for System.flush()();
Void | SysStd_putch// Backend for System.printf() and System.putch()(Char ch);
Bool | SysStd_ready// Test if character output can proceed();
Functions common to all target modules
 | SysStd_Module_getMask// Returns the diagnostics mask for this module, SysStd_Module_hasMask// Test whether this module has a diagnostics mask, SysStd_Module_heap// The heap from which this module allocates memory, SysStd_Module_id// Get this module's unique id, SysStd_Module_setMask// Set the diagnostics mask for this module, SysStd_Module_startupDone// Test if this module has completed startup
DETAILS
This implementation provides a fully functional implementation of all methods specified by ISystemSupport. As with all ISystemSupport modules, this module is the back-end for the System module.
This implementation relies on the target's runtime support libraries (i.e. fflush() and putchar()). Therefore the functions are re-entrant (thread-safe) if the underlying rts library is re-entrant.
SysStd_abort() // module-wide
index URL

Backend for System.abort()

C synopsis target-domain
Void SysStd_abort(String str);
ARGUMENTS
str — message to output just prior to aborting
If non-NULL, this string should be output just prior to terminating.
DETAILS
This function is called by System.abort() prior to calling the ANSI C Standard library function abort(). So, to ensure the abort processing of the system's ANSI C Standard library completes, this function should return to its caller.
This abort function writes the string via putchar() and flushes via fflush() to stdout.
SEE
ISystemSupport.abort
SysStd_exit() // module-wide
index URL

Backend for System.exit()

C synopsis target-domain
Void SysStd_exit(Int stat);
ARGUMENTS
stat — status value passed to all "atexit" handlers
This value is passed to all "atexit" handles bound via System.atexit(). If the application exits via the ANSI C Standard exit() function rather than via System_exit(), stat will be equal to System.STATUS_UNKNOWN.
DETAILS
This function is called as part the normal "atexit" processing performed by the ANSI C Standard Library's exit() function; System.exit() directly calls ANSI exit().
This function is called after all "atexit" handlers bound via System.atexit() are run and it is always called while "inside" the the System gate.
To ensure that all exit processing of the system's ANSI C Standard Library completes, this function should return to its caller. Exit handlers bound using the ANSI C Standard Library atexit() function may run before or after this function.
This exit function flushes via fflush() to stdout.
SEE
System.atexit, ISystemSupport.exit
SysStd_flush() // module-wide
index URL

Backend for System.flush()

C synopsis target-domain
Void SysStd_flush();
DETAILS
This function is simply called by System_flush to output any characters buffered by the underlying SystemSupport module to an output device.
This flush function flushes via fflush() to stdout.
SEE
ISystemSupport.flush
SysStd_putch() // module-wide
index URL

Backend for System.printf() and System.putch()

C synopsis target-domain
Void SysStd_putch(Char ch);
ARGUMENTS
ch — character to output
DETAILS
Output a single character. This function is called by System_printf() to write each character of formated output specified by its arguments.
This function outputs the character via putchar().
SEE
ISystemSupport.putch
SysStd_ready() // module-wide
index URL

Test if character output can proceed

C synopsis target-domain
Bool SysStd_ready();
DETAILS
This function is called by System prior to performing any character output. If this function returns FALSE, the System functions that would normally call putch() simply return (with an appropriate error status) without ever calling putch.
This always returns TRUE.
SEE
ISystemSupport.ready
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SysStd_Module_id();
// Get this module's unique id
Bool SysStd_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SysStd_Module_heap();
// The heap from which this module allocates memory
Bool SysStd_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SysStd_Module_getMask();
// Returns the diagnostics mask for this module
Void SysStd_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/SysStd.xdc
var SysStd = xdc.useModule('xdc.runtime.SysStd');
module-wide config parameters
     SysStd.common$// Common module configuration parameters = Types.Common$ undefined;
metaonly config SysStd.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SysStd.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 Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.SysStd

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== SysStd.xdc ========
    15     */
    16
    17    package xdc.runtime;
    18
    19    /*!
    20     *  ======== SysStd ========
    21     *  Implementation of `{@link ISystemSupport}` using ANSI C Standard Library
    22     *
    23     *  This implementation provides a fully functional implementation of
    24     *  all methods specified by `ISystemSupport`. As with all
    25     *  `ISystemSupport` modules, this module is the back-end for the
    26     *  `{@link System}` module.
    27     *
    28     *  This implementation relies on the target's runtime support libraries
    29     *  (i.e. `fflush()` and `putchar()`). Therefore the  functions are re-entrant
    30     *  (thread-safe) if the underlying rts library is re-entrant.
    31     */
    32    module SysStd inherits xdc.runtime.ISystemSupport {
    33        /*!
    34         *  ======== abort ========
    35         *  Backend for `{@link System#abort()}`
    36         *
    37         *  This abort function writes the string via `putchar()`
    38         *  and flushes via `fflush()` to `stdout`.
    39         *
    40         *  @see ISystemSupport#abort
    41         */
    42        override Void abort(String str);
    43
    44        /*!
    45         *  ======== exit ========
    46         *  Backend for `{@link System#exit()}`
    47         *
    48         *  This exit function flushes via `fflush()` to `stdout`.
    49         *
    50         *  @see ISystemSupport#exit
    51         */
    52        override Void exit(Int stat);
    53
    54        /*!
    55         *  ======== flush ========
    56         *  Backend for `{@link System#flush()}`
    57         *
    58         *  This flush function flushes via `fflush()` to `stdout`.
    59         *
    60         *  @see ISystemSupport#flush
    61         */
    62        override Void flush();
    63
    64        /*!
    65         *  ======== putch ========
    66         *  Backend for `{@link System#printf()}` and `{@link System#putch()}`
    67         *
    68         *  This function outputs the character via `putchar()`.
    69         *
    70         *  @see ISystemSupport#putch
    71         */
    72        override Void putch(Char ch);
    73
    74        /*!
    75         *  ======== ready ========
    76         *  Test if character output can proceed
    77         *
    78         *  This always returns TRUE.
    79         *
    80         *  @see ISystemSupport#ready
    81         */
    82        override Bool ready();
    83    }
    84    /*
    85     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    86     */
    87


module xdc.runtime.System
index URL

Basic system services

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides basic low-level "system" services; e.g., character output, printf-like output, and exit handling. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/System.xdc
#include <xdc/runtime/System.h>
Functions
Void | System_abort// Print a message and abort currently running executable(String str);
Int | System_aprintf// printf where all optional arguments are IArgs(String fmt, ...);
Int | System_asprintf// sprintf where all optional arguments are IArgs(Char buf[], String fmt, ...);
Bool | System_atexit// Add an exit handler(System_AtexitHandler handler);
Int | System_avprintf// vprintf where all optional arguments are IArgs(String fmt, VaList va);
Int | System_avsprintf// vsprintf where all optional arguments are IArgs(Char buf[], String fmt, VaList va);
Void | System_exit// Exit currently running executable(Int stat);
Void | System_flush// Flush standard System I/O();
Int | System_printf// A smaller faster printf(String fmt, ...);
Void | System_putch// Output a single character(Char ch);
Int | System_sprintf// Write formated output to a character buffer(Char buf[], String fmt, ...);
Int | System_vprintf// A VaList printf(String fmt, VaList va);
Int | System_vsprintf// A VaList sprintf(Char buf[], String fmt, VaList va);
Functions common to all target modules
 | System_Module_getMask// Returns the diagnostics mask for this module, System_Module_hasMask// Test whether this module has a diagnostics mask, System_Module_heap// The heap from which this module allocates memory, System_Module_id// Get this module's unique id, System_Module_setMask// Set the diagnostics mask for this module, System_Module_startupDone// Test if this module has completed startup
Defines
#define | System_STATUS_UNKNOWN// Unknown exit status value (Int)0xCAFE
Typedefs
typedef Void | (*System_AtexitHandler// System's atexit function prototype)(Int);
Constants
extern const Assert_Id | System_A_cannotFitIntoArg// Assert that the target's Float type fits in an IArg;
extern const Int | System_maxAtexitHandlers// Maximum number of dynamic atexit handlers allowed in the system;
DETAILS
This module provides basic low-level "system" services; e.g., character output, printf-like output, and exit handling.
This module is gated and other modules use its gate via the Gate.enterSystem and Gate.leaveSystem. The System gate must be enterable by any thread in a multi-threaded environments. For example, in many real-time multi-threaded environments some types of threads, such as Interrupt Service Routines (ISRs), are not allowed to call operations that block the caller. In such an environment, either the System gate must disable all interrupts or ISRs must never call a function in the xdc.runtime package.
const System_STATUS_UNKNOWN
index URL

Unknown exit status value

C synopsis target-domain
#define System_STATUS_UNKNOWN (Int)0xCAFE
DETAILS
When the program exits by calling System_exit() the System's atexit functions are passed the status value passed to System_exit(). However, if the program exits using the ANSI C Standard Library exit() function, the System's atexit functions are passed System_STATUS_UNKNOWN; ANSI C atexit functions are not passed the exit status.
typedef System_AtexitHandler
index URL

System's atexit function prototype

C synopsis target-domain
typedef Void (*System_AtexitHandler)(Int);
DETAILS
Fuctions of this type can be added to the list of functions that are executed during application termination.
SEE
atexit
config System_A_cannotFitIntoArg // module-wide
index URL

Assert that the target's Float type fits in an IArg

C synopsis target-domain
extern const Assert_Id System_A_cannotFitIntoArg;
DETAILS
This assertion is triggered when the %f format specifier is used, the argument treated as an IArg, but for the current target sizeof(Float) > sizeof(IArg).
config System_maxAtexitHandlers // module-wide
index URL

Maximum number of dynamic atexit handlers allowed in the system

C synopsis target-domain
extern const Int System_maxAtexitHandlers;
DETAILS
Maximum number of System atexit handlers set during runtime via the System.atexit function.
System_abort() // module-wide
index URL

Print a message and abort currently running executable

C synopsis target-domain
Void System_abort(String str);
ARGUMENTS
str — abort message (not a format string)
DETAILS
This is called when an executable abnormally terminates. The System gate is entered, the SupportProxy's abort function is called and abort is called. No exit functions bound via System_atexit() or the ANSI C Standard Library atexit() functions are executed.
System_aprintf() // module-wide
index URL

printf where all optional arguments are IArgs

C synopsis target-domain
Int System_aprintf(String fmt, ...);
DETAILS
This function will treat each argument as though it was widened to be of type IArg prior to being passed to the printf function
SEE
printf
System_asprintf() // module-wide
index URL

sprintf where all optional arguments are IArgs

C synopsis target-domain
Int System_asprintf(Char buf[], String fmt, ...);
DETAILS
This function will treat each argument as though it was widened to be of type IArg prior to being passed to the sprintf function.
SEE
sprintf
System_atexit() // module-wide
index URL

Add an exit handler

C synopsis target-domain
Bool System_atexit(System_AtexitHandler handler);
ARGUMENTS
handler — the AtexitHandler to invoke during system exit processing.
DETAILS
System_atexit pushes handler onto an internal stack of functions to be executed when system is exiting (e.g. System_exit or exit is called). Up to maxAtexitHandlers functions can be specified in this manner. During the exit processing, the functions are popped off the internal stack and called until the stack is empty.
The System gate is entered before the System_atexit functions are called.
The SupportProxy's ISystemSupport.exit function is called after all the atexit functions are called.
RETURNS
If FALSE is returned, the exit handler was not added and it will not be called during an exit.
System_avprintf() // module-wide
index URL

vprintf where all optional arguments are IArgs

C synopsis target-domain
Int System_avprintf(String fmt, VaList va);
DETAILS
This function will treat each argument as though it was widened to be of type IArg prior to being passed to the vprintf function.
SEE
vprintf
System_avsprintf() // module-wide
index URL

vsprintf where all optional arguments are IArgs

C synopsis target-domain
Int System_avsprintf(Char buf[], String fmt, VaList va);
DETAILS
This function is identical to sprintf except that its arguments are passed via a VaList (a "varargs list").
This function will treat each argument as though it was widened to be of type IArg prior to being passed to the vsprintf function
SEE
vsprintf
System_exit() // module-wide
index URL

Exit currently running executable

C synopsis target-domain
Void System_exit(Int stat);
ARGUMENTS
stat — exit status to return to calling environment.
DETAILS
This function is called when an executable needs to terminate normally. This function sets the exit code and simply calls exit. All functions bound via System_atexit or the ANSI C Standar Library atexit function are then executed. The SupportProxy's exit function is called during this time.
System_flush() // module-wide
index URL

Flush standard System I/O

C synopsis target-domain
Void System_flush();
DETAILS
This function causes any buffered output characters are "written" to the output device.
The SupportProxy's flush function is called by this function.
System_printf() // module-wide
index URL

A smaller faster printf

C synopsis target-domain
Int System_printf(String fmt, ...);
ARGUMENTS
fmt — a 'printf-style' format string
DETAILS
This function behaves much like the ANSI C Standard printf but does not support the full range of format strings specified by the C Standard. In addition, several non-standard format specifiers are recognized.
FORMAT STRINGS
The format string is a character string composed of zero or more directives: ordinary characters (not %), which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments. Each conversion specification is introduced by the character %, and ends with a conversion specifier. In between there may be (in this order) zero or more flags, an optional minimum field width, an optional precision and an optional length modifier.
FLAGS
The following flags are supported:
-
The converted value is to be left adjusted on the field boundary (the default is right justification.)
0
The value should be zero padded. For d, i, o, u, and x conversions, the converted value is padded on the left with zeros rather than blanks.
FIELD WIDTH
The optional field width specifier is a decimal digit string (with nonzero first digit) specifying a minimum field width. If the converted value has fewer characters than the field width, it will be padded with spaces on the left (or right, if the left-adjustment flag has been given). Instead of a decimal digit string one may write * to specify that the field width is given in the next argument. A negative field width is taken as a '-' flag followed by a positive field width.
PRECISION
The optional precision specifier is a period ('.') followed by an optional decimal digit string. Instead of a decimal digit string one may write * to specify that the precision is given in the next argument which must be of type int.
If the precision is given as just '.', or the precision is negative, the precision is taken to be zero. This gives the minimum number of digits to appear for d, i, o, u, and x conversions, or the maximum number of characters to be printed from a string for s conversions.
LENGTH MODIFIERS
The optional length modifier is a single character from the following list.
l
A following integer conversion corresponds to a long int or unsigned long int argument
CONVERSION SPECIFIERS
The following conversion specifiers are supported.
d, i
signed integer
u
unsigned decimal
x
unsigned hex
o
unsigned octal
p
pointer (@ + hex num)
c
character
s
string
EXTENDED CONVERSION SPECIFIERS
The following conversion specifiers are optionally supported. See the extendedFormats configuration parameter for more information about how to enable these conversion specifiers.
f
decimal floating point.
$
non-ANSI conversion prefix. This prefix indicates that the next character identifies a non-ANSI standard conversion. See the next section for details.
NON ANSI CONVERSION SPECIFIERS
Among the extended conversion specifiers are unique specifiers which are not part of ANSI printf. These are specified using a $, for example %$L.
These unique specifiers do not support the minimum field width attribute. Certain specifiers have additional restrictions; see below.
'$L'
The argument is treated as a pointer to a Types.Label and is converted to an appropriate string.
'$F'
Displays a file and line number; used for displaying the call site. This specifier consumes two arguments, the file and line number, in that order. See an example below.
'$S'
The argument is treated as a format string, and is recursively formatted using any following arguments. This specifier does not support the use of the "precision" field for specifying maximum string length.
The following are example uses of the %$F and %$S format specifiers.
In this call using %$F, the compiler recognizes these symbols and fills in the file and line number.
  System_printf("%$F", __FILE__, __LINE__);
This call outputs, for example,
  "MyCode.c", line 35:
Here is an example using %$S, passing a recursive format string.
  System_printf("Msg: %$S", "My msg, code: %d", 5);
This outputs:
  Msg: My msg, code: 5
RETURNS
printf returns the number of characters printed.
System_putch() // module-wide
index URL

Output a single character

C synopsis target-domain
Void System_putch(Char ch);
ARGUMENTS
ch — character to be output.
DETAILS
The SupportProxy's putch function is called by this function.
System_sprintf() // module-wide
index URL

Write formated output to a character buffer

C synopsis target-domain
Int System_sprintf(Char buf[], String fmt, ...);
ARGUMENTS
buf — a character output buffer
fmt — a 'printf-style' format string
DETAILS
This function is identical to printf except that the output is copied to the specified character buffer buf followed by a terminating '\0' character.
RETURNS
sprintf returns the number of characters output not including the '\0' termination character.
System_vprintf() // module-wide
index URL

A VaList printf

C synopsis target-domain
Int System_vprintf(String fmt, VaList va);
ARGUMENTS
fmt — a standard 'printf-style' format string.
va — an args list that points to the arguments referenced by the fmt string
DETAILS
This function is identical to printf except that its arguments are passed via a VaList (a "varargs list").
RETURNS
vprintf returns the number of characters output.
System_vsprintf() // module-wide
index URL

A VaList sprintf

C synopsis target-domain
Int System_vsprintf(Char buf[], String fmt, VaList va);
ARGUMENTS
buf — a character output buffer
fmt — a standard 'printf-style' format string.
va — an arguments list that points to the arguments referenced by the fmt string
DETAILS
This function is identical to sprintf except that its arguments are passed via a VaList (a "varargs list").
RETURNS
vsprintf returns the number of characters output.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId System_Module_id();
// Get this module's unique id
Bool System_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle System_Module_heap();
// The heap from which this module allocates memory
Bool System_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 System_Module_getMask();
// Returns the diagnostics mask for this module
Void System_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/System.xdc
var System = xdc.useModule('xdc.runtime.System');
local proxy modules
     System.SupportProxy// The implementation module of the low-level system functions = ISystemSupport.Module null
         System.SupportProxy.delegate$ = ISystemSupport.Module null
module-wide constants & types
    const System.STATUS_UNKNOWN// Unknown exit status value = 0xCAFE;
module-wide config parameters
     System.A_cannotFitIntoArg// Assert that the target's Float type fits in an IArg = Assert.Desc {
        msg: "A_cannotFitIntoArg: sizeof(Float) > sizeof(Arg)"
    };
     System.maxAtexitHandlers// Maximum number of dynamic atexit handlers allowed in the system = Int 8;
     System.common$// Common module configuration parameters = Types.Common$ undefined;
     System.extendedFormats// Optional conversions supported by System_printf = String "%$L%$S%$F";
module-wide functions
     System.atexitMeta// Add an exit handler during configuration(Void(*)(Int) handler) returns Void
proxy System.SupportProxy
index URL

The implementation module of the low-level system functions

XDCscript usage meta-domain
System.SupportProxy = ISystemSupport.Module null
// some delegate module inheriting the ISystemSupport interface
    System.SupportProxy.delegate$ = ISystemSupport.Module null
    // explicit access to the currently bound delegate module
DETAILS
This configuration parameter allows one to "bind" a different implementation of the low-level services required to implement System.
      var System = xdc.useModule("xdc.runtime.System");
      var SysStd = xdc.useModule("xdc.runtime.SysStd");
      System.SupportProxy = SysStd;
If this parameter is not set, it defaults to SysMin.
const System.STATUS_UNKNOWN
index URL

Unknown exit status value

XDCscript usage meta-domain
const System.STATUS_UNKNOWN = 0xCAFE;
DETAILS
When the program exits by calling System_exit() the System's atexit functions are passed the status value passed to System_exit(). However, if the program exits using the ANSI C Standard Library exit() function, the System's atexit functions are passed System_STATUS_UNKNOWN; ANSI C atexit functions are not passed the exit status.
C SYNOPSIS
System_STATUS_UNKNOWN
config System.A_cannotFitIntoArg // module-wide
index URL

Assert that the target's Float type fits in an IArg

XDCscript usage meta-domain
System.A_cannotFitIntoArg = Assert.Desc {
    msg: "A_cannotFitIntoArg: sizeof(Float) > sizeof(Arg)"
};
DETAILS
This assertion is triggered when the %f format specifier is used, the argument treated as an IArg, but for the current target sizeof(Float) > sizeof(IArg).
C SYNOPSIS
System_A_cannotFitIntoArg
config System.maxAtexitHandlers // module-wide
index URL

Maximum number of dynamic atexit handlers allowed in the system

XDCscript usage meta-domain
System.maxAtexitHandlers = Int 8;
DETAILS
Maximum number of System atexit handlers set during runtime via the System.atexit function.
C SYNOPSIS
System_maxAtexitHandlers
metaonly config System.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
System.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.
metaonly config System.extendedFormats // module-wide
index URL

Optional conversions supported by System_printf

XDCscript usage meta-domain
System.extendedFormats = String "%$L%$S%$F";
DETAILS
This string specifies the set of optional argument conversion specifiers required by the application. By reducing the number of optional conversions understood by the System printf methods, it is possible to significantly reduce the code size footprint of the System module. This configuration parameter enables one to balance printf functionality against code size footprint.
The format of this string is simply a concatenated list of the desired conversion specifiers (with the leading % character). For example, to support both %f and %$L set extendedFormats to "%$L%f".
To disable all optional converstions, set extendedFormats to null or the empty string ("").
For a complete list of supported extensions, see the System_printf "Extended_Format_Specifiers" section.
NOTE
If an optional conversion is used by some part of the application and it is not specified in extendedFormats, the conversion character(s) and leading % are treated as ordinary characters to be output. As a result, all subsequent arguments will almost certainly be converted using the wrong conversion specifier!
SEE
printf
metaonly System.atexitMeta() // module-wide
index URL

Add an exit handler during configuration

XDCscript usage meta-domain
System.atexitMeta(Void(*)(Int) handler) returns Void
ARGUMENTS
handler — the AtexitHandler to invoke during system exit processing.
DETAILS
This is the static counterpart to System_atexit(). This method can be used to add atexit handlers at configuration time. These handlers do not count against the maxAtexitHandlers.
generated on Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.System

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== System.xdc ========
    15     */
    16
    17    package xdc.runtime;
    18
    19    /*!
    20     *  ======== System ========
    21     *  Basic system services
    22     *
    23     *  This module provides basic low-level "system" services; e.g.,
    24     *  character output, `printf`-like output, and exit handling.
    25     *
    26     *  This module is gated and other modules use its gate via the
    27     *  `{@link Gate#enterSystem}` and `{@link Gate#leaveSystem}`. The
    28     *  `System` gate must be enterable by any thread in a multi-threaded
    29     *  environments.  For example, in many real-time multi-threaded environments
    30     *  some types of threads, such as Interrupt Service Routines (ISRs), are not
    31     *  allowed to call operations that block the caller.  In such an environment,
    32     *  either the `System` gate must disable all interrupts or ISRs must never
    33     *  call a function in the `xdc.runtime` package.
    34     */
    35
    36    @Template("./System.xdt")
    37    @Gated
    38    @ModuleStartup
    39    module System {
    40
    41        /*!
    42         *  ======== AtexitHandler ========
    43         *  `System`'s atexit function prototype.
    44         *
    45         *  Fuctions of this type can be added to the list of functions that
    46         *  are executed during application termination.
    47         *
    48         *  @see #atexit
    49         */
    50        typedef Void (*AtexitHandler)(Int);
    51
    52        /*!
    53         *  ======== STATUS_UNKNOWN ========
    54         *  Unknown exit status value
    55         *
    56         *  When the program exits by calling {@link #exit System_exit()} the
    57         *  `System`'s `atexit` functions are passed the status value passed to
    58         *  `System_exit()`.  However, if the program exits using
    59         *  the ANSI C Standard Library `exit()` function, the `System`'s `atexit`
    60         *  functions are passed `System_STATUS_UNKNOWN`; ANSI C `atexit`
    61         *  functions are not passed the exit status.
    62         */
    63        const Int STATUS_UNKNOWN = 0xCAFE;
    64
    65        /*! @_nodoc */
    66        @XmlDtd
    67        metaonly struct Module_View {
    68            String  atexitHandlers[];
    69            Int     numAtexitHandlers;
    70        };
    71
    72        /*! @_nodoc */
    73        metaonly struct PathEntryView {
    74            String entry;
    75        }
    76
    77        /*!
    78         *  ======== rovViewInfo ========
    79         *  @_nodoc
    80         */
    81        @Facet
    82        metaonly config xdc.rov.ViewInfo.Instance rovViewInfo =
    83            xdc.rov.ViewInfo.create({
    84                viewMap: [
    85                    ['XDCROOT',
    86                        {
    87                            type: xdc.rov.ViewInfo.MODULE_DATA,
    88                            viewInitFxn: 'viewInitXdcRoot',
    89                            structName: 'PathEntryView'
    90                        }
    91                    ],
    92                    ['XDCPATH',
    93                        {
    94                            type: xdc.rov.ViewInfo.MODULE_DATA,
    95                            viewInitFxn: 'viewInitXdcPath',
    96                            structName: 'PathEntryView'
    97                        }
    98                    ],
    99                ]
   100            });
   101
   102        /*!
   103         *  ======== A_cannotFitIntoArg ========
   104         *  Assert that the target's `Float` type fits in an `IArg`
   105         *
   106         *  This assertion is triggered when the `%f` format specifier is used,
   107         *  the argument treated as an `IArg`, but for the current target
   108         *  `sizeof(Float)` > `sizeof(IArg)`.
   109         */
   110        config Assert.Id A_cannotFitIntoArg = {
   111            msg: "A_cannotFitIntoArg: sizeof(Float) > sizeof(Arg)"
   112        };
   113
   114        /*!
   115         *  ======== extendedFormats ========
   116         *  Optional conversions supported by `{@link #printf System_printf}`
   117         *
   118         *  This string specifies the set of optional argument conversion
   119         *  specifiers required by the application.  By reducing the number of
   120         *  optional conversions understood by the `System {@link #printf}`
   121         *  methods, it is possible to significantly reduce the code size
   122         *  footprint of the `System` module.  This configuration parameter
   123         *  enables one to balance `printf` functionality against code size
   124         *  footprint.
   125         *
   126         *  The format of this string is simply a concatenated list of the desired
   127         *  conversion specifiers (with the leading `%` character).  For example,
   128         *  to support both `%f` and `%$L` set `extendedFormats` to `"%$L%f"`.
   129         *
   130         *  To disable all optional converstions, set `extendedFormats` to `null`
   131         *  or the empty string ("").
   132         *
   133         *  For a complete list of supported extensions, see the
   134         *  `{@link #printf System_printf}` "Extended_Format_Specifiers" section.
   135         *
   136         *  @a(Note)
   137         *  If an optional conversion is used by some part of the application and
   138         *  it is not specified in `extendedFormats`, the conversion character(s)
   139         *  and leading `%` are treated as ordinary characters to be output.  As
   140         *  a result, all subsequent arguments will almost certainly be converted
   141         *  using the wrong conversion specifier!
   142         *
   143         *  @see #printf
   144         */
   145        metaonly config String extendedFormats = "%$L%$S%$F";
   146
   147        /*!
   148         *  ======== SupportProxy ========
   149         *  The implementation module of the low-level system functions.
   150         *
   151         *  This configuration parameter allows one to "bind" a different
   152         *  implementation of the low-level services required to implement
   153         *  `System`.
   154         *  @p(code)
   155         *      var System = xdc.useModule("xdc.runtime.System");
   156         *      var SysStd = xdc.useModule("xdc.runtime.SysStd");
   157         *      System.SupportProxy = SysStd;
   158         *  @p
   159         *
   160         *  If this parameter is not set, it defaults to `{@link SysMin}`.
   161         */
   162        proxy SupportProxy inherits ISystemSupport;
   163
   164        /*!
   165         *  ======== maxAtexitHandlers ========
   166         *  Maximum number of dynamic atexit handlers allowed in the system.
   167         *
   168         *  Maximum number of `System` `atexit` handlers set during runtime via
   169         *  the `{@link System#atexit}` function.
   170         *
   171         */
   172        config Int maxAtexitHandlers = 8;
   173
   174        /*!
   175         *  ======== abort ========
   176         *  Print a message and abort currently running executable.
   177         *
   178         *  This is called when an executable abnormally terminates.
   179         *  The `System` gate is entered, the
   180         *  `{@link #SupportProxy}`'s `abort` function is called
   181         *  and `abort` is called.
   182         *  No exit functions bound via `System_atexit()` or the ANSI C Standard
   183         *  Library `atexit()` functions are executed.
   184         *
   185         *  @param(str) abort message (not a format string)
   186         */
   187        Void abort(String str);
   188
   189        /*!
   190         *  ======== atexit ========
   191         *  Add an exit handler
   192         *
   193         *  `System_atexit` pushes `handler` onto an internal stack of functions
   194         *  to be executed when system is exiting (e.g. `System_exit` or `exit` is
   195         *  called). Up to `{@link #maxAtexitHandlers}` functions can be specified
   196         *  in this manner.  During the exit processing, the functions are popped
   197         *  off the internal stack and called until the stack is empty.
   198         *
   199         *  The `System` gate is entered before the `System_atexit` functions
   200         *  are called.
   201         *
   202         *  The `SupportProxy`'s `{@link ISystemSupport#exit}` function is called
   203         *  after all the atexit functions are called.
   204         *
   205         *  @param(handler) the `AtexitHandler` to invoke during system
   206         *                  exit processing.
   207         *
   208         *  @a(returns)
   209         *  If `FALSE` is returned, the exit handler was not added and it will
   210         *  not be called during an exit.
   211         */
   212        Bool atexit(AtexitHandler handler);
   213
   214        /*!
   215         *  ======== atexitMeta ========
   216         *  Add an exit handler during configuration
   217         *
   218         *  This is the static counterpart to `System_atexit()`. This method can
   219         *  be used to add `atexit` handlers at configuration time.  These
   220         *  handlers do not count against the `maxAtexitHandlers`.
   221         *
   222         *  @param(handler) the `AtexitHandler` to invoke during system
   223         *                  exit processing.
   224         */
   225        metaonly Void atexitMeta(AtexitHandler handler);
   226
   227        /*!
   228         *  ======== exit ========
   229         *  Exit currently running executable.
   230         *
   231         *  This function is called when an executable needs to terminate
   232         *  normally.  This function sets the exit code and simply calls `exit`.
   233         *  All functions bound via `System_atexit` or the ANSI C Standar Library
   234         *  `atexit` function are then executed. The `{@link #SupportProxy}`'s
   235         *  `exit` function is called during this time.
   236         *
   237         *  @param(stat)    exit status to return to calling environment.
   238         */
   239        Void exit(Int stat);
   240
   241        /*!
   242         *  ======== putch ========
   243         *  Output a single character
   244         *
   245         *  The `{@link #SupportProxy}`'s `putch` function is called
   246         *  by this function.
   247         *
   248         *  @param(ch) character to be output.
   249         */
   250        Void putch(Char ch);
   251
   252        /*!
   253         *  ======== flush ========
   254         *  Flush standard System I/O
   255         *
   256         *  This function causes any buffered output characters are "written"
   257         *  to the output device.
   258         *
   259         *  The `{@link #SupportProxy}`'s `flush` function is called
   260         *  by this function.
   261         */
   262        Void flush();
   263
   264        /*!
   265         *  ======== printf ========
   266         *  A smaller faster printf
   267         *
   268         *  This function behaves much like the ANSI C Standard `printf`
   269         *  but does not support the full range of format strings specified by
   270         *  the C Standard.  In addition, several non-standard format specifiers
   271         *  are recognized.
   272         *
   273         *  @a(Format Strings)
   274         *  The format string is a character string composed of zero or
   275         *  more directives: ordinary characters (not %), which are copied
   276         *  unchanged to the output stream; and conversion specifications, each of
   277         *  which results in fetching zero or more subsequent arguments.  Each
   278         *  conversion specification is introduced by the character %, and ends
   279         *  with a conversion specifier.  In between there may be (in this order)
   280         *  zero or more flags, an optional minimum field width, an optional
   281         *  precision and an optional length modifier.
   282         *
   283         *  @a(Flags)
   284         *  The following flags are supported:
   285         *  @p(dlist)
   286         *      - `-`
   287         *          The converted value is to be left adjusted on the field
   288         *          boundary (the default is right justification.)
   289         *      - `0`
   290         *          The value should be zero padded. For d, i, o, u, and x
   291         *          conversions, the converted value is padded on the left
   292         *          with zeros rather than blanks.
   293         *  @p
   294         *
   295         *  @a(Field Width)
   296         *  The optional field width specifier is a decimal digit string (with
   297         *  nonzero first digit) specifying a minimum field width. If the
   298         *  converted value has fewer characters than the field width, it will
   299         *  be padded with spaces on the left (or right, if the left-adjustment
   300         *  flag has been given).  Instead of a decimal digit string one may
   301         *  write `*` to specify that the field width is given in the next
   302         *  argument.  A negative field width is taken as a '-' flag followed
   303         *  by a positive field width.
   304         *
   305         *  @a(Precision)
   306         *  The optional precision specifier is a period ('.') followed by an
   307         *  optional decimal digit string.  Instead of a decimal digit string
   308         *  one may write `*` to specify that the precision is given in the
   309         *  next argument which must be of type int.
   310         *
   311         *  If the precision is given as just '.', or the precision is
   312         *  negative, the precision is taken to be zero.  This gives the
   313         *  minimum number of digits to appear for d, i, o, u, and x
   314         *  conversions, or the maximum number of characters to be printed from
   315         *  a string for s conversions.
   316         *
   317         *  @a(Length Modifiers)
   318         *  The optional length modifier is a single character from the following
   319         *  list.
   320         *  @p(dlist)
   321         *      - `l`
   322         *          A  following integer conversion corresponds to a long int
   323         *          or unsigned long int argument
   324         *
   325         *  @p
   326         *
   327         *  @a(Conversion Specifiers)
   328         *  The following conversion specifiers are supported.
   329         *  @p(dlist)
   330         *      - `d`, `i`
   331         *          signed integer
   332         *      - `u`
   333         *          unsigned decimal
   334         *      - `x`
   335         *          unsigned hex
   336         *      - `o`
   337         *          unsigned octal
   338         *      - `p`
   339         *          pointer (@ + hex num)
   340         *      - `c`
   341         *          character
   342         *      - `s`
   343         *          string
   344         *  @p
   345         *  @a(Extended Conversion Specifiers)
   346         *  The following conversion specifiers are optionally supported.  See
   347         *  the `{@link #extendedFormats}` configuration parameter for more
   348         *  information about how to enable these conversion specifiers.
   349         *
   350         *  @p(dlist)
   351         *      - `f`
   352         *          decimal floating point.
   353         *      - `$`
   354         *          non-ANSI conversion prefix.  This prefix indicates that the
   355         *          next character identifies a non-ANSI standard conversion. See
   356         *          the next section for details.
   357         *  @p
   358         *
   359         *  @a(Non ANSI Conversion Specifiers)
   360         *  Among the extended conversion specifiers are unique specifiers which
   361         *  are not part of ANSI printf. These are specified using a $, for
   362         *  example %$L.
   363         *
   364         *  These unique specifiers do not support the minimum field width
   365         *  attribute. Certain specifiers have additional restrictions; see below.
   366         *
   367         *  @p(dlist)
   368         *      - '$L'
   369         *          The argument is treated as a pointer to a `{@link Types#Label}`
   370         *          and is converted to an appropriate string.
   371         *      - '$F'
   372         *          Displays a file and line number; used for displaying the call
   373         *          site. This specifier consumes two arguments, the file and line
   374         *          number, in that order. See an example below.
   375         *      - '$S'
   376         *          The argument is treated as a format string, and is recursively
   377         *          formatted using any following arguments. This specifier does
   378         *          not support the use of the "precision" field for specifying
   379         *          maximum string length.
   380         *  @p
   381         *
   382         *  The following are example uses of the %$F and %$S format specifiers.
   383         *
   384         *  In this call using %$F, the compiler recognizes these symbols and
   385         *  fills in the file and line number.
   386         *  @p(code)
   387         *  System_printf("%$F", __FILE__, __LINE__);
   388         *  @p
   389         *  This call outputs, for example,
   390         *  @p(code)
   391         *  "MyCode.c", line 35:
   392         *  @p
   393         *  Here is an example using %$S, passing a recursive format string.
   394         *  @p(code)
   395         *  System_printf("Msg: %$S", "My msg, code: %d", 5);
   396         *  @p
   397         *  This outputs:
   398         *  @p(code)
   399         *  Msg: My msg, code: 5
   400         *  @p
   401         *
   402         *  @param(fmt) a 'printf-style' format string
   403         *
   404         *  @a(returns)
   405         *  `printf` returns the number of characters printed.
   406         */
   407        Int printf(String fmt, ...);
   408
   409        /*!
   410         *  ======== aprintf ========
   411         *  `{@link #printf}` where all optional arguments are `IArg`s
   412         *
   413         *  This function will treat each argument as though it was widened to be
   414         *  of type `IArg` prior to being passed to the `{@link #printf}` function
   415         *
   416         *  @see #printf
   417         */
   418        Int aprintf(String fmt, ...);
   419
   420        /*!
   421         *  ======== sprintf ========
   422         *  Write formated output to a character buffer
   423         *
   424         *  This function is identical to `{@link #printf}` except that the
   425         *  output is copied to the specified character buffer `buf` followed
   426         *  by a terminating '\0' character.
   427         *
   428         *  @param(buf) a character output buffer
   429         *  @param(fmt) a 'printf-style' format string
   430         *
   431         *  @a(returns)
   432         *  `sprintf` returns the number of characters output not including the
   433         *  '\0' termination character.
   434         */
   435        Int sprintf(Char buf[], String fmt, ...);
   436
   437        /*!
   438         *  ======== asprintf ========
   439         *  `{@link #sprintf}` where all optional arguments are `IArg`s
   440         *
   441         *  This function will treat each argument as though it was widened to be
   442         *  of type `IArg` prior to being passed to the `{@link #sprintf}`
   443         *  function.
   444         *
   445         *  @see #sprintf
   446         */
   447        Int asprintf(Char buf[], String fmt, ...);
   448
   449        /*!
   450         *  ======== vprintf ========
   451         *  A VaList printf
   452         *
   453         *  This function is identical to `{@link #printf}` except that its
   454         *  arguments are passed via a VaList (a "varargs list").
   455         *
   456         *  @param(fmt) a standard 'printf-style' format string.
   457         *  @param(va)  an args list that points to the arguments referenced
   458         *              by the fmt string
   459         *
   460         *  @a(returns)
   461         *  `vprintf` returns the number of characters output.
   462         */
   463        Int vprintf(String fmt, VaList va);
   464
   465        /*!
   466         *  ======== avprintf ========
   467         *  `{@link #vprintf}` where all optional arguments are `IArg`s
   468         *
   469         *  This function will treat each argument as though it was widened to be
   470         *  of type `IArg` prior to being passed to the `{@link #vprintf}`
   471         *  function.
   472         *
   473         *  @see #vprintf
   474         */
   475        Int avprintf(String fmt, VaList va);
   476
   477        /*!
   478         *  ======== vsprintf ========
   479         *  A `VaList` sprintf
   480         *
   481         *  This function is identical to `{@link #sprintf}` except that
   482         *  its arguments are passed via a `VaList` (a "varargs list").
   483         *
   484         *  @param(buf) a character output buffer
   485         *  @param(fmt) a standard '`printf`-style' format string.
   486         *  @param(va)  an arguments list that points to the arguments referenced
   487         *              by the `fmt` string
   488         *
   489         *  @a(returns)
   490         *  `vsprintf` returns the number of characters output.
   491         */
   492        Int vsprintf(Char buf[], String fmt, VaList va);
   493
   494        /*!
   495         *  ======== avsprintf ========
   496         *  `{@link #vsprintf}` where all optional arguments are `IArg`s
   497         *
   498         *  This function is identical to `{@link #sprintf}` except that
   499         *  its arguments are passed via a `VaList` (a "varargs list").
   500         *
   501         *  This function will treat each argument as though it was widened to be
   502         *  of type `IArg` prior to being passed to the `vsprintf` function
   503         *
   504         *  @see #vsprintf
   505         */
   506        Int avsprintf(Char buf[], String fmt, VaList va);
   507
   508    internal:
   509
   510        /*! struct used to keep track of state during doPrint */
   511        struct ParseData {
   512            Int     width;      /* width in format specifier */
   513            Bool    lFlag;      /* length modifier flag */
   514            Bool    lJust;      /* left justify flag */
   515            Int     precis;     /* precision in format specifier */
   516            Int     len;        /* length of formatted number */
   517            Int     zpad;       /* leading zero pad flag */
   518            Char    *end;       /* pointer to end of local buf to hold num */
   519            Bool    aFlag;      /* deal with vars on stack as IArgs */
   520            Char    *ptr;       /* ptr to local buf after filling in num */
   521        };
   522
   523        /*! typedef for generated functions to process extended formats */
   524        typedef Int (*ExtendFxn)(Char **, Char **, VaList *, ParseData *);
   525
   526        /*! config parameter used to call generated function  */
   527        readonly config ExtendFxn extendFxn = '&xdc_runtime_System_printfExtend__I';
   528
   529        /*
   530         * ======== printfExtend ========
   531         *  System_printfExtend is generated based on extendedFormats string
   532         *
   533         *  This generated function is accessed through an internal config so
   534         *  that it is an indirect call in the ROM case, but optimized to a direct
   535         *  call in the RAM case.
   536         *
   537         * @_nodoc
   538         */
   539        Int printfExtend (Char **bufp, Char **fmt, VaList *va, ParseData *parse);
   540
   541        /*!
   542         *  ======== exitFxns ========
   543         *  @_nodoc
   544         *  List of functions statically plugged to be called at exit
   545         *
   546         */
   547        metaonly config AtexitHandler exitFxns[];
   548
   549        /*!
   550         *  ======== mprintf ========
   551         *  @_nodoc
   552         */
   553        function mprintf(fmt, args);
   554
   555        /*!
   556         *  ======== doPrint ========
   557         *  @_nodoc
   558         */
   559        Int doPrint(Char buf[], String fmt, VaList *pva, Bool aFlag);
   560
   561        /*!
   562         *  ======== formatNum ========
   563         *  @_nodoc
   564         *
   565         */
   566        Char *formatNum(Char *ptr, UInt32 n, Int zpad, Int base);
   567
   568        /*!
   569         *  ======== lastFxn ========
   570         *  @_nodoc
   571         *
   572         *  Calls atexit() after all other modules have been initialized
   573         *  This used to be done in System_Module_startup() but this caused
   574         *  problems since atexit() uses a heap which isn't necessarily
   575         *  initialized.
   576         */
   577        Void lastFxn();
   578
   579        /*!
   580         *  ======== putchar ========
   581         *  @_nodoc
   582         *
   583         *  Write character ch to the buffer and, if the buffer pointer is
   584         *  non-`NULL`, update the buffer pointer.
   585         */
   586        Void putchar(Char **bufp, Char ch);
   587
   588        /*!
   589         *  ======== rtsExit ========
   590         *  @_nodoc
   591         */
   592        Void rtsExit();
   593
   594        /*!
   595         *  ======== Module_State ========
   596         *  @_nodoc
   597         */
   598        struct Module_State {
   599            AtexitHandler  atexitHandlers[];   /* array of atexit handlers       */
   600            Int            numAtexitHandlers;  /* Current num of atexit handlers */
   601            Int            exitStatus;         /* status for exit handlers       */
   602        };
   603    }
   604    /*
   605     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   606     */
   607


module xdc.runtime.Text
index URL

Runtime text handling services

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module efficiently manages a collection of strings that have common substrings. Collections with a high degree of commonality are stored in much less space than as ordinary table of independent C strings. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Text.xdc
#include <xdc/runtime/Text.h>
Functions
Int | Text_putLab// Convert label to an ASCII character sequence(Types_Label *lab, Char **bufp, Int len);
Int | Text_putMod// Convert module ID to its ASCII name(Types_ModuleId mid, Char **bufp, Int len);
Int | Text_putSite// Convert call site structure to an ASCII character sequence(Types_Site *site, Char **bufp, Int len);
Functions common to all target modules
 | Text_Module_getMask// Returns the diagnostics mask for this module, Text_Module_hasMask// Test whether this module has a diagnostics mask, Text_Module_heap// The heap from which this module allocates memory, Text_Module_id// Get this module's unique id, Text_Module_setMask// Set the diagnostics mask for this module, Text_Module_startupDone// Test if this module has completed startup
Typedefs
typedef Types_Label | Text_Label// ;
Constants
extern const Bool | Text_isLoaded// Ensure character-strings are loaded in target memory;
extern const String | Text_nameEmpty// Default NULL instance name;
extern const String | Text_nameStatic// Default static instance name;
extern const String | Text_nameUnknown// Default unknowable instance name;
DETAILS
This module efficiently manages a collection of strings that have common substrings. Collections with a high degree of commonality are stored in much less space than as ordinary table of independent C strings.
To further save space, the "compressed" representation need not even be loaded in the target's memory; see isLoaded.
The total space available for the compressed representation of text strings is limited to 64K characters; each string is represented by a 16-bit "rope id".
typedef Text_Label
index URL
C synopsis target-domain
typedef Types_Label Text_Label;
config Text_isLoaded // module-wide
index URL

Ensure character-strings are loaded in target memory

C synopsis target-domain
extern const Bool Text_isLoaded;
DETAILS
Character strings managed by this module are allocated together with other character strings, and loaded to the target, when this parameter is set to its default value true. If this parameter is set to false, the character strings managed by Text are separated in their own section xdc.noload, which is not loaded to the target.
NOTE
For TI and GNU targets, the section xdc.noload is not loaded to the target, but it can overlay other output sections. If the linker allocates xdc.noload so that it overlaps the section that contains character strings when isLoaded is false, ROV/RTA functionality can be affected. In such a case, an error message is displayed that indicates the overlap between xdc.noload and another section, whose name depends on the target (.const on TI targets, .rodata on GNU targets). The user can solve that problem by specifying an address for xdc.noload to unconfigured memory, and ensure that .const and xdc.noload do not overlap.
      Program.sectMap["xdc.noload"] = new prog.SectionSpec();
      Program.sectMap["xdc.noload"].loadAddress = 0x50000000;
config Text_nameEmpty // module-wide
index URL

Default NULL instance name

C synopsis target-domain
extern const String Text_nameEmpty;
DETAILS
The name used if the instance's name has been set to NULL.
config Text_nameStatic // module-wide
index URL

Default static instance name

C synopsis target-domain
extern const String Text_nameStatic;
DETAILS
The name of an instance if the name exists but it's not loaded on the target.
config Text_nameUnknown // module-wide
index URL

Default unknowable instance name

C synopsis target-domain
extern const String Text_nameUnknown;
DETAILS
The name of an instance if the module's instances are configured to not have names.
Text_putLab() // module-wide
index URL

Convert label to an ASCII character sequence

C synopsis target-domain
Int Text_putLab(Types_Label *lab, Char **bufp, Int len);
ARGUMENTS
lab — address of the label to interpret
bufp — address of the output buffer pointer or NULL
If bufp is NULL, the label's characters are output via System.putch().
len — maximum number of characters to generate
If len is negative, the number of characters to be generated is not limited.
DETAILS
This function converts a Types.Label to a sequence of ASCII characters, writes the characters to the supplied buffer, updates the buffer pointer to point to the location after the last output character, and returns the number of characters output.
No more than len characters will be output. If the label would otherwise be longer, the output is truncated at the point where a potential overflow is detected. The return value always reflects the number of characters output, but it may be less than len.
Label structures can be initialized from any module's instance handle using the module's Mod_Handle_label() method. See Types.Label for more information.
RETURNS
The return value always reflects the number of characters output, but it may be less than len.
SEE
Types.Label
Text_putMod() // module-wide
index URL

Convert module ID to its ASCII name

C synopsis target-domain
Int Text_putMod(Types_ModuleId mid, Char **bufp, Int len);
ARGUMENTS
mid — ID of the module
bufp — address of the output buffer pointer or NULL
If bufp is NULL, the module's name characters are output via System.putch().
len — maximum number of characters to generate
If len is negative, the number of characters to be generated is not limited.
DETAILS
This function converts a Types.ModuleId to a sequence of ASCII characters, writes the characters to the supplied buffer, updates the buffer pointer to point to the location after the last output character, and returns the number of characters output.
No more than len characters will be output. If the module name would otherwise be longer, the output is truncated at the point where a potential overflow is detected. The return value always reflects the number of characters output, but it may be less than len.
RETURNS
The return value always reflects the number of characters output, but it may be less than len.
Text_putSite() // module-wide
index URL

Convert call site structure to an ASCII character sequence

C synopsis target-domain
Int Text_putSite(Types_Site *site, Char **bufp, Int len);
ARGUMENTS
site — address of the call site structure to interpret
bufp — address of the output buffer pointer or NULL
If bufp is NULL, the site's name characters are output via System.putch().
len — maximum number of characters to generate
If len is negative, the number of characters to be generated is not limited.
DETAILS
This function converts a Types.Site to a sequence of ASCII characters, writes the characters to the supplied buffer, updates the buffer pointer to point to the location after the last output character, and returns the number of characters output.
No more than len characters will be output. If the sequence would otherwise be longer, the output is truncated at the point where a potential overflow is detected.
RETURNS
The return value always reflects the number of characters output, but it may be less than len.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Text_Module_id();
// Get this module's unique id
Bool Text_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Text_Module_heap();
// The heap from which this module allocates memory
Bool Text_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Text_Module_getMask();
// Returns the diagnostics mask for this module
Void Text_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Text.xdc
var Text = xdc.useModule('xdc.runtime.Text');
module-wide config parameters
     Text.isLoaded// Ensure character-strings are loaded in target memory = Bool true;
     Text.nameEmpty// Default NULL instance name = String "{empty-instance-name}";
     Text.nameStatic// Default static instance name = String "{static-instance-name}";
     Text.nameUnknown// Default unknowable instance name = String "{unknown-instance-name}";
     Text.common$// Common module configuration parameters = Types.Common$ undefined;
config Text.isLoaded // module-wide
index URL

Ensure character-strings are loaded in target memory

XDCscript usage meta-domain
Text.isLoaded = Bool true;
DETAILS
Character strings managed by this module are allocated together with other character strings, and loaded to the target, when this parameter is set to its default value true. If this parameter is set to false, the character strings managed by Text are separated in their own section xdc.noload, which is not loaded to the target.
NOTE
For TI and GNU targets, the section xdc.noload is not loaded to the target, but it can overlay other output sections. If the linker allocates xdc.noload so that it overlaps the section that contains character strings when isLoaded is false, ROV/RTA functionality can be affected. In such a case, an error message is displayed that indicates the overlap between xdc.noload and another section, whose name depends on the target (.const on TI targets, .rodata on GNU targets). The user can solve that problem by specifying an address for xdc.noload to unconfigured memory, and ensure that .const and xdc.noload do not overlap.
      Program.sectMap["xdc.noload"] = new prog.SectionSpec();
      Program.sectMap["xdc.noload"].loadAddress = 0x50000000;
C SYNOPSIS
Text_isLoaded
config Text.nameEmpty // module-wide
index URL

Default NULL instance name

XDCscript usage meta-domain
Text.nameEmpty = String "{empty-instance-name}";
DETAILS
The name used if the instance's name has been set to NULL.
C SYNOPSIS
Text_nameEmpty
config Text.nameStatic // module-wide
index URL

Default static instance name

XDCscript usage meta-domain
Text.nameStatic = String "{static-instance-name}";
DETAILS
The name of an instance if the name exists but it's not loaded on the target.
C SYNOPSIS
Text_nameStatic
config Text.nameUnknown // module-wide
index URL

Default unknowable instance name

XDCscript usage meta-domain
Text.nameUnknown = String "{unknown-instance-name}";
DETAILS
The name of an instance if the module's instances are configured to not have names.
C SYNOPSIS
Text_nameUnknown
metaonly config Text.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Text.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 Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.Text

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ========= Text.xdc ========
    15     */
    16
    17    package xdc.runtime;
    18
    19    /*!
    20     *  ======== Text ========
    21     *  Runtime text handling services
    22     *
    23     *  This module efficiently manages a collection of strings that have
    24     *  common substrings.  Collections with a high degree of commonality
    25     *  are stored in much less space than as ordinary table of independent
    26     *  C strings.
    27     *
    28     *  To further save space, the "compressed" representation need not even
    29     *  be loaded in the target's memory; see `{@link #isLoaded}`.
    30     *
    31     *  The total space available for the compressed representation of text
    32     *  strings is limited to 64K characters; each string is represented by
    33     *  a 16-bit "rope id".
    34     */
    35    @Template("./Text.xdt")
    36    module Text {
    37
    38        /*!
    39         *  ======== CordAddr ========
    40         *  @_nodoc
    41         */
    42        typedef Types.CordAddr CordAddr;
    43
    44        /*!
    45         *  ======== Label ========
    46         */
    47        typedef Types.Label Label;
    48
    49        /*!
    50         *  ======== RopeId ========
    51         *  @_nodoc
    52         *
    53         *  A rope id is a 16-bit value whose most-significant bit indicates
    54         *  whether the lower 15-bits are an offset into the string table
    55         *  `charTab` or an offset into the "node" table `nodeTab`.
    56         *
    57         *  The node id 0 represents the empty string "".
    58         */
    59        typedef Types.RopeId RopeId;
    60
    61        /*!
    62         *  ======== Module_View ========
    63         *  @_nodoc
    64         */
    65        @XmlDtd
    66        metaonly struct Module_View {
    67            Ptr charBase;
    68            Ptr nodeBase;
    69        };
    70
    71        /*!
    72         *  ======== nameUnknown ========
    73         *  Default unknowable instance name
    74         *
    75         *  The name of an instance if the module's instances are configured to
    76         *  not have names.
    77         */
    78        config String nameUnknown = "{unknown-instance-name}";
    79
    80        /*!
    81         *  ======== nameEmpty ========
    82         *  Default `NULL` instance name
    83         *
    84         *  The name used if the instance's name has been set to `NULL`.
    85         */
    86        config String nameEmpty = "{empty-instance-name}";
    87
    88        /*!
    89         *  ======== nameStatic ========
    90         *  Default static instance name
    91         *
    92         *  The name of an instance if the name exists but it's not loaded
    93         *  on the target.
    94         */
    95        config String nameStatic = "{static-instance-name}";
    96
    97        /*!
    98         *  ======== isLoaded ========
    99         *  Ensure character-strings are loaded in target memory
   100         *
   101         *  Character strings managed by this module are allocated together
   102         *  with other character strings, and loaded to the target, when this
   103         *  parameter is set to its default value `true`. If this parameter is
   104         *  set to `false`, the character strings managed by Text are separated
   105         *  in their own section `xdc.noload`, which is not loaded to the target.
   106         *
   107         *  @a(Note)
   108         *  For TI and GNU targets, the section `xdc.noload` is not loaded to
   109         *  the target, but it can overlay other output sections. If the linker
   110         *  allocates `xdc.noload` so that it overlaps the section that contains
   111         *  character strings when `isLoaded` is `false`, ROV/RTA functionality
   112         *  can be affected. In such a case, an error message is displayed that
   113         *  indicates the overlap between `xdc.noload` and another section, whose
   114         *  name depends on the target (.`const` on TI targets, `.rodata` on
   115         *  GNU targets).
   116         *  The user can solve that problem by specifying an address for
   117         *  `xdc.noload` to unconfigured memory, and ensure that `.const` and
   118         *  `xdc.noload` do not overlap.
   119         *  @p(code)
   120         *      Program.sectMap["xdc.noload"] = new prog.SectionSpec();
   121         *      Program.sectMap["xdc.noload"].loadAddress = 0x50000000;
   122         *  @p
   123         */
   124        config Bool isLoaded = true;
   125
   126        /*!
   127         *  ======== cordText ========
   128         *  Return `NULL` if cord is in `charTab` and `isLoaded` is `FALSE`
   129         *  @_nodoc
   130         */
   131        String cordText(CordAddr cord);
   132
   133        /*!
   134         *  ======== ropeText ========
   135         *  Convert rope to an ordinary C string
   136         *
   137         *  Convert rope to an ordinary C string or to NULL if rope refers
   138         *  to a node in nodeTab
   139         *
   140         *  @_nodoc
   141         */
   142        String ropeText(RopeId rope);
   143
   144        /*!
   145         *  ======== matchRope ========
   146         *  Compare pattern string `pat` to String identified by `rope`.
   147         *  @_nodoc
   148         *
   149         *  @a(pre-conditions)
   150         *  @p(blist)
   151         *      - lenp must be less than or equal to the length of pat
   152         *  @p
   153
   154         *  @a(post-conditions)
   155         *  @p(blist)
   156         *      - lenp is decreased by the length of any matching prefix
   157         *  @p
   158         *
   159         *  Returns:
   160         *  @p(blist)
   161         *      - -1  `pat` does not match string
   162         *      - 0   string is a prefix of pattern
   163         *      - 1   wildcard match
   164         *  @p
   165         */
   166        Int matchRope(RopeId rope, String pat, Int *lenp);
   167
   168        /*!
   169         *  ======== putLab ========
   170         *  Convert label to an ASCII character sequence
   171         *
   172         *  This function converts a `{@link Types#Label}` to a sequence of
   173         *  ASCII characters, writes the characters to the supplied buffer,
   174         *  updates the buffer pointer to point to the location after the last
   175         *  output character, and returns the number of characters output.
   176         *
   177         *  No more than `len` characters will be output.  If the label would
   178         *  otherwise be longer, the output is truncated at the point where a
   179         *  potential overflow is detected. The return value always reflects the
   180         *  number of characters output, but it may be less than `len`.
   181         *
   182         *  Label structures can be initialized from any module's instance handle
   183         *  using the module's `Mod_Handle_label()` method.  See
   184         *  `{@link Types#Label}` for more information.
   185         *
   186         *  @param(lab)    address of the label to interpret
   187         *  @param(bufp)   address of the output buffer pointer or `NULL`
   188         *
   189         *                 If `bufp` is `NULL`, the label's characters are
   190         *                 output via `{@link System#putch()}`.
   191         *
   192         *  @param(len)    maximum number of characters to generate
   193         *
   194         *                 If `len` is negative, the number of characters to be
   195         *                 generated is not limited.
   196         *
   197         *  @a(returns)
   198         *  The return value always reflects the number of characters output,
   199         *  but it may be less than `len`.
   200         *
   201         *  @see Types#Label
   202         */
   203        Int putLab(Types.Label *lab, Char **bufp, Int len);
   204
   205        /*!
   206         *  ======== putMod ========
   207         *  Convert module ID to its ASCII name
   208         *
   209         *  This function converts a `{@link Types#ModuleId}` to a sequence of
   210         *  ASCII characters, writes the characters to the supplied buffer,
   211         *  updates the buffer pointer to point to the location after the last
   212         *  output character, and returns the number of characters output.
   213         *
   214         *  No more than `len` characters will be output.  If the module name would
   215         *  otherwise be longer, the output is truncated at the point where a
   216         *  potential overflow is detected. The return value always reflects the
   217         *  number of characters output, but it may be less than `len`.
   218         *
   219         *  @param(mid)    ID of the module
   220         *  @param(bufp)   address of the output buffer pointer or `NULL`
   221         *
   222         *                 If `bufp` is `NULL`, the module's name characters are
   223         *                 output via `{@link System#putch()}`.
   224         *
   225         *  @param(len)    maximum number of characters to generate
   226         *
   227         *                 If `len` is negative, the number of characters to be
   228         *                 generated is not limited.
   229         *
   230         *  @a(returns)
   231         *  The return value always reflects the number of characters output,
   232         *  but it may be less than `len`.
   233         */
   234        Int putMod(Types.ModuleId mid, Char **bufp, Int len);
   235
   236        /*!
   237         *  ======== putSite ========
   238         *  Convert call site structure to an ASCII character sequence
   239         *
   240         *  This function converts a `{@link Types#Site}` to a sequence of
   241         *  ASCII characters, writes the characters to the supplied buffer,
   242         *  updates the buffer pointer to point to the location after the last
   243         *  output character, and returns the number of characters output.
   244         *
   245         *  No more than `len` characters will be output.  If the sequence would
   246         *  otherwise be longer, the output is truncated at the point where a
   247         *  potential overflow is detected.
   248         *
   249         *  @param(site)   address of the call site structure to interpret
   250         *  @param(bufp)   address of the output buffer pointer or `NULL`
   251         *
   252         *                 If `bufp` is `NULL`, the site's name characters are
   253         *                 output via `{@link System#putch()}`.
   254         *
   255         *  @param(len)    maximum number of characters to generate
   256         *
   257         *                 If `len` is negative, the number of characters to be
   258         *                 generated is not limited.
   259         *
   260         *  @a(returns)
   261         *  The return value always reflects the number of characters output,
   262         *  but it may be less than `len`.
   263         */
   264        Int putSite(Types.Site *site, Char **bufp, Int len);
   265
   266    internal:
   267
   268        struct Node {
   269            Types.RopeId left;
   270            Types.RopeId right;
   271        };
   272
   273        typedef Bool (*RopeVisitor)(Ptr, String);
   274
   275        struct MatchVisState {
   276            String pat;
   277            Int *lenp;
   278            Int res;
   279        };
   280
   281        struct PrintVisState {
   282            Char **bufp;
   283            Int len;
   284            Int res;
   285        };
   286
   287        /* charTab[] and nodeTab[] are the "compressed" representation of
   288         * target strings used to name instances, modules, packages, ...
   289         *
   290         * The predefined node id 0 represents the empty string.
   291         */
   292        config Char charTab[] = [0];
   293        config Node nodeTab[] = [{left: 0, right: 0}];
   294
   295        config Int16 charCnt = 1;
   296        config Int16 nodeCnt = 1;
   297
   298        /*
   299         * The module ids are allocated as follows:
   300         * 0x1 - 0x4000     unnamed modules
   301         * 0x4001 - 0x7FFF  registry modules
   302         * 0x8000 - 0xFFFF  named modules
   303         *
   304         * See 'genModNames' in Text.xs
   305         *
   306         * TODO - We may be able to set unnamedModsLastId based on the config
   307         *        to give the Registry more room, but then the Registry id range
   308         *        would not be a constant.
   309         */
   310        config UInt16 unnamedModsLastId = 0x4000;
   311        config UInt16 registryModsLastId = 0x7FFF;
   312
   313    /* unnamedModCnt can be used to define a constant that allows external
   314     * modules to define their own module IDs that don't conflict with the
   315     * statically configured modules; e.g., the dlog example could use this
   316     */
   317    //    config Int16 unnamedModCnt = 0;
   318
   319        function defineRopeCord(text);
   320        function defineRopeNode(left, right);
   321
   322        function fetchAddr(raddr);
   323        function fetchCord(cid);
   324        function fetchId(rid);
   325        function fetchNode(nid);
   326
   327        function genModNames();
   328        function genPkgName();
   329
   330        Bool matchVisFxn(Ptr p, String s);
   331        Bool printVisFxn(Ptr p, String s);
   332
   333        Void visitRope(RopeId rope, Fxn visFxn, Ptr visState);
   334        Void visitRope2(RopeId rope, Fxn visFxn, Ptr visState, String stack[]);
   335
   336        typedef Void (*VisitRopeFxn)(RopeId, Fxn, Ptr);
   337        typedef Void (*VisitRopeFxn2)(RopeId, Fxn, Ptr, String[]);
   338
   339        config VisitRopeFxn visitRopeFxn = visitRope;
   340
   341        config VisitRopeFxn2 visitRopeFxn2 = visitRope2;
   342
   343        Int xprintf(Char **bufp, String fmt, ...);
   344
   345        struct Module_State {
   346            Ptr charBase;
   347            Ptr nodeBase;
   348        };
   349    }
   350    /*
   351     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   352     */
   353


module xdc.runtime.Timestamp
index URL

Timestamp services

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides xdc.runtime.ITimestampClient APIs for the xdc Runtime Support Library. Calls to these APIs are forwarded to a platform specific xdc.runtime.ITimestampProvider implementation. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Timestamp.xdc
#include <xdc/runtime/Timestamp.h>
Functions common to all ITimestampClient modules
Bits32 | Timestamp_get32// Return a 32-bit timestamp();
Void | Timestamp_get64// Return a 64-bit timestamp(Types_Timestamp64 *result);
Void | Timestamp_getFreq// Get the timestamp timer's frequency (in Hz)(Types_FreqHz *freq);
Functions common to all target modules
 | Timestamp_Module_getMask// Returns the diagnostics mask for this module, Timestamp_Module_hasMask// Test whether this module has a diagnostics mask, Timestamp_Module_heap// The heap from which this module allocates memory, Timestamp_Module_id// Get this module's unique id, Timestamp_Module_setMask// Set the diagnostics mask for this module, Timestamp_Module_startupDone// Test if this module has completed startup
DETAILS
This module provides xdc.runtime.ITimestampClient APIs for the xdc Runtime Support Library. Calls to these APIs are forwarded to a platform specific xdc.runtime.ITimestampProvider implementation.
A user can attach their own ITimestampProvider module using the following config file command:
  xdc.runtime.Timestamp.SupportProxy = xdc.useModule("usersTimestampProvider");
If no such SupportProxy initialization is done, the xdc.runtime.TimestampNull ITimestampProvider implementation, which provides null stubs for the APIs, will be attached by default.
If the user is developing code using CCS, the xdc.runtime.TimestampStd ITimestampProvider implementation, which uses the ANSI C clock() function, may provide a satisfactory timestamp source (remember to enable the profile clock in CCS).
To use the TimestampStd implementation, add the following to your config script:
  xdc.runtime.Timestamp.SupportProxy = xdc.useModule("xdc.runtime.TimestampStd");
Timestamp_get32() // module-wide
index URL

Return a 32-bit timestamp

C synopsis target-domain
Bits32 Timestamp_get32();
RETURNS
Returns a 32-bit timestamp value. Use getFreq to convert this value into units of real time.
SEE
get64
Timestamp_get64() // module-wide
index URL

Return a 64-bit timestamp

C synopsis target-domain
Void Timestamp_get64(Types_Timestamp64 *result);
ARGUMENTS
result — pointer to 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide timestamp value where the current timestamp is written.
If the underlying hardware does not support 64-bit resolution, the hi field of result is always set to 0; see xdc.runtime.Types.Timestamp64. So, it is possible for the lo field to wrap around without any change to the hi field. Use getFreq to convert this value into units of real time.
SEE
get32
Timestamp_getFreq() // module-wide
index URL

Get the timestamp timer's frequency (in Hz)

C synopsis target-domain
Void Timestamp_getFreq(Types_FreqHz *freq);
ARGUMENTS
freq — pointer to a 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide frequency value where the timer's frequency (in Hz) is written; see xdc.runtime.Types.FreqHz. This function provides a way of converting timestamp values into units of real time.
SEE
get32, get64
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Timestamp_Module_id();
// Get this module's unique id
Bool Timestamp_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Timestamp_Module_heap();
// The heap from which this module allocates memory
Bool Timestamp_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Timestamp_Module_getMask();
// Returns the diagnostics mask for this module
Void Timestamp_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Timestamp.xdc
var Timestamp = xdc.useModule('xdc.runtime.Timestamp');
local proxy modules
     Timestamp.SupportProxy// User supplied time stamp provider module = ITimestampProvider.Module null
         Timestamp.SupportProxy.delegate$ = ITimestampProvider.Module null
module-wide config parameters
     Timestamp.common$// Common module configuration parameters = Types.Common$ undefined;
proxy Timestamp.SupportProxy
index URL

User supplied time stamp provider module

XDCscript usage meta-domain
Timestamp.SupportProxy = ITimestampProvider.Module null
// some delegate module inheriting the ITimestampProvider interface
    Timestamp.SupportProxy.delegate$ = ITimestampProvider.Module null
    // explicit access to the currently bound delegate module
DETAILS
The SupportProxy module provides application/platform specific implementations of the xdc.runtime.ITimestampProvider APIs.
If not explicitly supplied by the user, this proxy defaults to xdc.runtime.TimestampNull, which provides null stubs for all of the ITimestampProvider APIs.
metaonly config Timestamp.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Timestamp.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 Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.Timestamp

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Timestamp.xdc ========
    15     */
    16
    17    package xdc.runtime;
    18
    19    /*!
    20     *  ======== Timestamp ========
    21     *  Timestamp services
    22     *
    23     *  This module provides `{@link xdc.runtime.ITimestampClient}` APIs for
    24     *  the xdc Runtime Support Library. Calls to these APIs are forwarded
    25     *  to a platform specific `{@link xdc.runtime.ITimestampProvider}`
    26     *  implementation.
    27     *
    28     *  A user can attach their own ITimestampProvider module
    29     *  using the following config file command:
    30     *  @p(code)
    31     *
    32     *  xdc.runtime.Timestamp.SupportProxy = xdc.useModule("usersTimestampProvider");
    33     *  @p
    34     *  If no such `{@link #SupportProxy SupportProxy}` initialization is done,
    35     *  the `{@link xdc.runtime.TimestampNull}` ITimestampProvider implementation,
    36     *  which provides null stubs for the APIs, will be attached by default.
    37     *
    38     *  If the user is developing code using CCS, the
    39     *  `{@link xdc.runtime.TimestampStd}`
    40     *  ITimestampProvider implementation, which uses the ANSI C clock()
    41     *  function, may provide a satisfactory timestamp source (remember to
    42     *  enable the profile clock in CCS).
    43     *
    44     *  To use the TimestampStd implementation, add the following to
    45     *  your config script:
    46     *  @p(code)
    47     *
    48     *  xdc.runtime.Timestamp.SupportProxy = xdc.useModule("xdc.runtime.TimestampStd");
    49     *  @p
    50     */
    51    module Timestamp inherits ITimestampClient {
    52
    53        /*!
    54         *  ======== SupportProxy ========
    55         *  User supplied time stamp provider module.
    56         *
    57         *  The SupportProxy module provides application/platform
    58         *  specific implementations of the
    59         *  `{@link xdc.runtime.ITimestampProvider}` APIs.
    60         *
    61         *  If not explicitly supplied by the user, this proxy defaults to
    62         *  `{@link xdc.runtime.TimestampNull}`,
    63         *  which provides null stubs for all of the ITimestampProvider APIs.
    64         */
    65        proxy SupportProxy inherits ITimestampProvider;
    66    }
    67    /*
    68     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    69     */
    70


module xdc.runtime.TimestampNull
index URL

Empty implementation of ITimestampProvider

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in xdc/runtime/TimestampNull.xdc
#include <xdc/runtime/TimestampNull.h>
Functions common to all ITimestampClient modules
Bits32 | TimestampNull_get32// Return a 32-bit timestamp();
Void | TimestampNull_get64// Return a 64-bit timestamp(Types_Timestamp64 *result);
Void | TimestampNull_getFreq// Get the timestamp timer's frequency (in Hz)(Types_FreqHz *freq);
Functions common to all target modules
 | TimestampNull_Module_getMask// Returns the diagnostics mask for this module, TimestampNull_Module_hasMask// Test whether this module has a diagnostics mask, TimestampNull_Module_heap// The heap from which this module allocates memory, TimestampNull_Module_id// Get this module's unique id, TimestampNull_Module_setMask// Set the diagnostics mask for this module, TimestampNull_Module_startupDone// Test if this module has completed startup
TimestampNull_get32() // module-wide
index URL

Return a 32-bit timestamp

C synopsis target-domain
Bits32 TimestampNull_get32();
RETURNS
Returns a 32-bit timestamp value. Use getFreq to convert this value into units of real time.
SEE
get64
TimestampNull_get64() // module-wide
index URL

Return a 64-bit timestamp

C synopsis target-domain
Void TimestampNull_get64(Types_Timestamp64 *result);
ARGUMENTS
result — pointer to 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide timestamp value where the current timestamp is written.
If the underlying hardware does not support 64-bit resolution, the hi field of result is always set to 0; see xdc.runtime.Types.Timestamp64. So, it is possible for the lo field to wrap around without any change to the hi field. Use getFreq to convert this value into units of real time.
SEE
get32
TimestampNull_getFreq() // module-wide
index URL

Get the timestamp timer's frequency (in Hz)

C synopsis target-domain
Void TimestampNull_getFreq(Types_FreqHz *freq);
ARGUMENTS
freq — pointer to a 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide frequency value where the timer's frequency (in Hz) is written; see xdc.runtime.Types.FreqHz. This function provides a way of converting timestamp values into units of real time.
SEE
get32, get64
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId TimestampNull_Module_id();
// Get this module's unique id
Bool TimestampNull_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle TimestampNull_Module_heap();
// The heap from which this module allocates memory
Bool TimestampNull_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 TimestampNull_Module_getMask();
// Returns the diagnostics mask for this module
Void TimestampNull_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/TimestampNull.xdc
var TimestampNull = xdc.useModule('xdc.runtime.TimestampNull');
module-wide config parameters
     TimestampNull.common$// Common module configuration parameters = Types.Common$ undefined;
metaonly config TimestampNull.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
TimestampNull.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 Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.TimestampNull

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    package xdc.runtime;
    14
    15    /*!
    16     *  ======== TimestampNull ========
    17     *  Empty implementation of `{@link ITimestampProvider}`
    18     */
    19    module TimestampNull inherits ITimestampProvider {}
    20    /*
    21     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    22     */
    23


module xdc.runtime.TimestampStd
index URL

Implementation of ITimestampProvider using ANSI C clock()

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in xdc/runtime/TimestampStd.xdc
#include <xdc/runtime/TimestampStd.h>
Functions common to all ITimestampClient modules
Bits32 | TimestampStd_get32// Return a 32-bit timestamp();
Void | TimestampStd_get64// Return a 64-bit timestamp(Types_Timestamp64 *result);
Void | TimestampStd_getFreq// Get the timestamp timer's frequency (in Hz)(Types_FreqHz *freq);
Functions common to all target modules
 | TimestampStd_Module_getMask// Returns the diagnostics mask for this module, TimestampStd_Module_hasMask// Test whether this module has a diagnostics mask, TimestampStd_Module_heap// The heap from which this module allocates memory, TimestampStd_Module_id// Get this module's unique id, TimestampStd_Module_setMask// Set the diagnostics mask for this module, TimestampStd_Module_startupDone// Test if this module has completed startup
TimestampStd_get32() // module-wide
index URL

Return a 32-bit timestamp

C synopsis target-domain
Bits32 TimestampStd_get32();
RETURNS
Returns a 32-bit timestamp value. Use getFreq to convert this value into units of real time.
SEE
get64
TimestampStd_get64() // module-wide
index URL

Return a 64-bit timestamp

C synopsis target-domain
Void TimestampStd_get64(Types_Timestamp64 *result);
ARGUMENTS
result — pointer to 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide timestamp value where the current timestamp is written.
If the underlying hardware does not support 64-bit resolution, the hi field of result is always set to 0; see xdc.runtime.Types.Timestamp64. So, it is possible for the lo field to wrap around without any change to the hi field. Use getFreq to convert this value into units of real time.
SEE
get32
TimestampStd_getFreq() // module-wide
index URL

Get the timestamp timer's frequency (in Hz)

C synopsis target-domain
Void TimestampStd_getFreq(Types_FreqHz *freq);
ARGUMENTS
freq — pointer to a 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide frequency value where the timer's frequency (in Hz) is written; see xdc.runtime.Types.FreqHz. This function provides a way of converting timestamp values into units of real time.
SEE
get32, get64
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId TimestampStd_Module_id();
// Get this module's unique id
Bool TimestampStd_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle TimestampStd_Module_heap();
// The heap from which this module allocates memory
Bool TimestampStd_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 TimestampStd_Module_getMask();
// Returns the diagnostics mask for this module
Void TimestampStd_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/TimestampStd.xdc
var TimestampStd = xdc.useModule('xdc.runtime.TimestampStd');
module-wide config parameters
     TimestampStd.common$// Common module configuration parameters = Types.Common$ undefined;
metaonly config TimestampStd.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
TimestampStd.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 Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.TimestampStd

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    package xdc.runtime;
    14
    15    /*!
    16     *  ======== TimestampStd ========
    17     *  Implementation of `{@link ITimestampProvider}` using ANSI C `clock()`
    18     */
    19    module TimestampStd inherits ITimestampProvider {}
    20    /*
    21     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    22     */
    23


module xdc.runtime.Types
index URL

Basic constants and types

  • C synopsis
  • Individual elements
  • DETAILS
  • EXAMPLES
  • XDCscript usage
  • Individual elements
This module defines basic constants and types used throughout the xdc.runtime package and, in some cases, in every module. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/Types.xdc
#include <xdc/runtime/Types.h>
Functions
macro Types_RopeId | Types_getEventId// Get event ID of the specified event(Types_Event evt);
macro Types_ModuleId | Types_getModuleId// Get the module ID for the specified event(Types_Event evt);
macro Types_Event | Types_makeEvent// Make an Event from an Event ID and a module ID(Types_RopeId id, Types_ModuleId callSite);
Functions common to all target modules
 | Types_Module_getMask// Returns the diagnostics mask for this module, Types_Module_hasMask// Test whether this module has a diagnostics mask, Types_Module_heap// The heap from which this module allocates memory, Types_Module_id// Get this module's unique id, Types_Module_setMask// Set the diagnostics mask for this module, Types_Module_startupDone// Test if this module has completed startup
Typedefs
typedef enum | Types_CreatePolicy// Instance creation policy ...
typedef Bits16 | Types_DiagsMask// ;
typedef Bits32 | Types_Event// ILogger event encoding;
typedef struct | Types_FreqHz// Frequency-in-hertz struct ...
typedef struct | Types_Label// Instance label struct ...
typedef Bits16 | Types_ModuleId// Unique module identifier;
typedef struct | Types_RegDesc// Registry module descriptor ...
typedef struct | Types_Site// Error site description struct ...
typedef struct | Types_Timestamp64// 64-bit timestamp struct ...
DETAILS
This module defines basic constants and types used throughout the xdc.runtime package and, in some cases, in every module.
The Common$ structure defined by the Types module is available for (or common to) all modules. Every field of the Common$ structure is a configuration parameter that may be set within a configuration script for any module (not just the xdc.runtime modules). The fields of this structure are typically read by the modules in the xdc.runtime package at configuration time to control the generation of data structures that are embedded in the application and referenced by these modules at runtime.
Every module has a configuration parameter named common$ that is of type Common$. This allows the user of any module to control the module's diagnostics, where its instances are allocated, how they are allocated, and (for gated modules) what gate it should use to protect critical sections.
EXAMPLES
Configuration example: The following configuration script specifies that the instance objects managed by the Memory module in the xdc.runtime package should be placed in the ".fast" memory section and that ENTRY diagnostics should be available at runtime.
      var Memory = xdc.useModule('xdc.runtime.Memory");
      Memory.common$.instanceSection = ".fast";
      Memory.common$.diags_ENTRY = Diags.RUNTIME_OFF
Note that by setting Memory.common$.diags_ENTRY to Diags.RUNTIME_OFF we are both enabling ENTRY events and specifying that they are initially disabled; they must be explicitly enabled at runtime. See the Diags modules for additional information.
enum Types_CreatePolicy
index URL

Instance creation policy

C synopsis target-domain
typedef enum Types_CreatePolicy {
    Types_STATIC_POLICY,
    // static creation only; no runtime create/delete
    Types_CREATE_POLICY,
    // dynamic creation, but no deletion
    Types_DELETE_POLICY
    // dynamic creation and deletion
} Types_CreatePolicy;
typedef Types_DiagsMask
index URL
C synopsis target-domain
typedef Bits16 Types_DiagsMask;
typedef Types_Event
index URL

ILogger event encoding

C synopsis target-domain
typedef Bits32 Types_Event;
DETAILS
Whereas a Log.Event encodes an event ID and a mask, a Types_Event encodes the same event ID and the module ID of the module containing the call site that generated the Types_Event.
typedef Types_ModuleId
index URL

Unique module identifier

C synopsis target-domain
typedef Bits16 Types_ModuleId;
DETAILS
Module IDs are assigned at configuration time based in the set of modules that are "used" in the application. So, although each module has a unique 16-bit ID at runtime this ID may vary between configurations of the application.
To save precious data space, module names are managed by the Text module and it is this table that is used to assign module IDs. If the table is maintained on the target, the module ID is an "index" into this table; otherwise, the module ID is simply a unique integer less than the total number of modules in the application.
Although module IDs are not independent of an application's configuration, a module's ID may be compared to a runtime value symbolically. Every module has a (generated) method that returns the module's ID; e.g., a module named Task has a method named Task_Module_id() which returns Task's module ID.
      #include <xdc/runtime/Types.h>
      #include <ti/sysbios/knl/Task.h>
         :
      void checkId(Types_ModuleId modId) {
          if (Task_Module_id() == modId) {
              System_printf("Task module");
          }
      }
struct Types_FreqHz
index URL

Frequency-in-hertz struct

C synopsis target-domain
typedef struct Types_FreqHz {
    Bits32 hi;
    // most significant 32-bits of frequency
    Bits32 lo;
    // least significant 32-bits of frequency
} Types_FreqHz;
struct Types_Label
index URL

Instance label struct

C synopsis target-domain
typedef struct Types_Label {
    Ptr handle;
    // instance object address
     Types_ModuleId modId;
    // corresponding module id
    String iname;
    // name supplied during instance creation
    Bool named;
    // true, if iname is available
} Types_Label;
DETAILS
Label structures are used to provide human readable names for instance handles.
It is possible to initialize a Label from any instance handle. All modules that support instances provide a method named Mod_Handle_label() which, given an instance handle and a pointer to a Label structure, initializes the structure with all available information. For example, the following code fragment initializes a Label from an instance of the HeapMin module.
      HeapMin_Handle heap;
      Types_Label label;
      HeapMin_Handle_label(heap, &label);
Unless you explicitly disable it, System_printf can be used to convert a pointer to a Label into an human readable "instance name". Continuing with the example above, the following line can be used to print the an instance's label.
      System_printf("heap instance name: %$L\n", &label);
SEE
System.printf, System.extendedFormats, Text.putLabel
struct Types_RegDesc
index URL

Registry module descriptor

C synopsis target-domain
typedef struct Types_RegDesc {
     Types_RegDesc *next;
    String modName;
     Types_ModuleId id;
     Types_DiagsMask mask;
} Types_RegDesc;
struct Types_Site
index URL

Error site description struct

C synopsis target-domain
typedef struct Types_Site {
     Types_ModuleId mod;
    // module id of this site
    String file;
    // filename of this site
    Int line;
    // line number of this site
} Types_Site;
FIELDS
mod — the module id of the module containing the call site
file — the name of the file containing the call site or NULL; some call sites omit the file name to save data space.
line — the line number within the file named
DETAILS
This structure describes the location of the line that raised an error.
struct Types_Timestamp64
index URL

64-bit timestamp struct

C synopsis target-domain
typedef struct Types_Timestamp64 {
    Bits32 hi;
    // most significant 32-bits of timestamp
    Bits32 lo;
    // least significant 32-bits of timestamp
} Types_Timestamp64;
DETAILS
Some platforms only support 32-bit timestamps. In this case, the most significant 32-bits are always set to 0.
Types_getEventId() // module-wide
index URL

Get event ID of the specified event

C synopsis target-domain
macro Types_RopeId Types_getEventId(Types_Event evt);
ARGUMENTS
evt — an event created via makeEvent
DETAILS
This method is used to get an ID that can be compared to other "known" IDs. For example, after a Types_Event is generated, the following code determines if the event corresponds to a Log.L_create event:
      Bool isCreateEvent(Types_Event evt) {
          return (Log_getEventId(Log_L_create) == Types_getEventId(evt));
      }
RETURNS
This function returns the event ID of a specified event.
Types_getModuleId() // module-wide
index URL

Get the module ID for the specified event

C synopsis target-domain
macro Types_ModuleId Types_getModuleId(Types_Event evt);
ARGUMENTS
evt — an event created via makeEvent
RETURNS
This function returns the module ID of a specified event.
Types_makeEvent() // module-wide
index URL

Make an Event from an Event ID and a module ID

C synopsis target-domain
macro Types_Event Types_makeEvent(Types_RopeId id, Types_ModuleId callSite);
ARGUMENTS
id — ID of the event itself
callSite — the module from which this event originated
RETURNS
This function returns an event.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Types_Module_id();
// Get this module's unique id
Bool Types_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Types_Module_heap();
// The heap from which this module allocates memory
Bool Types_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Types_Module_getMask();
// Returns the diagnostics mask for this module
Void Types_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/Types.xdc
var Types = xdc.useModule('xdc.runtime.Types');
module-wide constants & types
    values of type Types.CreatePolicy// Instance creation policy
        const Types.STATIC_POLICY// static creation only; no runtime create/delete;
        const Types.CREATE_POLICY// dynamic creation, but no deletion;
        const Types.DELETE_POLICY// dynamic creation and deletion;
    var obj = new Types.Common$// Common module config struct;
        obj.diags_ASSERT// module's Diags assert mode = Diags.Mode ...
        obj.diags_ENTRY// module's function entry Diags mode = Diags.Mode ...
        obj.diags_EXIT// module's function exit Diags mode = Diags.Mode ...
        obj.diags_INTERNAL// module's internal assert mode = Diags.Mode ...
        obj.diags_LIFECYCLE// module's instance lifecycle mode = Diags.Mode ...
        obj.diags_STATUS// module's errors and warnings = Diags.Mode ...
        obj.diags_USER1// module's user1 Diags mode = Diags.Mode ...
        obj.diags_USER2// module's user2 Diags mode = Diags.Mode ...
        obj.diags_USER3// module's user3 Diags mode = Diags.Mode ...
        obj.diags_USER4// module's user4 Diags mode = Diags.Mode ...
        obj.diags_USER5// module's user5 Diags mode = Diags.Mode ...
        obj.diags_USER6// module's user6 Diags mode = Diags.Mode ...
        obj.diags_USER7// module's user7 Diags mode = Diags.Mode ...
        obj.diags_INFO// module's informational event mode = Diags.Mode ...
        obj.diags_USER8// module's user8 Diags mode = Diags.Mode ...
        obj.diags_ANALYSIS// module's Diags analysis mode = Diags.Mode ...
        obj.fxntab = Bool ...
        obj.gate// module's gate = IGateProvider.Handle ...
        obj.gateParams// gate params for module created gates = Ptr ...
        obj.instanceHeap// module's instance heap = IHeap.Handle ...
        obj.instanceSection// memory section for module's instances = String ...
        obj.logger// module's logger = ILogger.Handle ...
        obj.memoryPolicy// module's memory policy = Types.CreatePolicy ...
        obj.namedInstance// true => instances have string names = Bool ...
        obj.namedModule// true => module's name is on target = Bool ...
        obj.romPatchTable = Bool ...
    var obj = new Types.FreqHz// Frequency-in-hertz struct;
        obj.hi// most significant 32-bits of frequency = Bits32 ...
        obj.lo// least significant 32-bits of frequency = Bits32 ...
    var obj = new Types.Label// Instance label struct;
        obj.handle// instance object address = Ptr ...
        obj.modId// corresponding module id = Bits16 ...
        obj.iname// name supplied during instance creation = String ...
        obj.named// true, if iname is available = Bool ...
    var obj = new Types.RegDesc// Registry module descriptor;
        obj.next = Types.RegDesc* ...
        obj.modName = String ...
        obj.id = Bits16 ...
        obj.mask = Bits16 ...
    var obj = new Types.Site// Error site description struct;
        obj.mod// module id of this site = Bits16 ...
        obj.file// filename of this site = String ...
        obj.line// line number of this site = Int ...
    var obj = new Types.Timestamp64// 64-bit timestamp struct;
        obj.hi// most significant 32-bits of timestamp = Bits32 ...
        obj.lo// least significant 32-bits of timestamp = Bits32 ...
module-wide config parameters
     Types.common$// Common module configuration parameters = Types.Common$ undefined;
enum Types.CreatePolicy
index URL

Instance creation policy

XDCscript usage meta-domain
values of type Types.CreatePolicy
    const Types.STATIC_POLICY;
    // static creation only; no runtime create/delete
    const Types.CREATE_POLICY;
    // dynamic creation, but no deletion
    const Types.DELETE_POLICY;
    // dynamic creation and deletion
C SYNOPSIS
Types_CreatePolicy
metaonly struct Types.Common$
index URL

Common module config struct

XDCscript usage meta-domain
var obj = new Types.Common$;
    obj.diags_ASSERT = Diags.Mode ...
    // module's Diags assert mode
    obj.diags_ENTRY = Diags.Mode ...
    // module's function entry Diags mode
    obj.diags_EXIT = Diags.Mode ...
    // module's function exit Diags mode
    obj.diags_INTERNAL = Diags.Mode ...
    // module's internal assert mode
    obj.diags_LIFECYCLE = Diags.Mode ...
    // module's instance lifecycle mode
    obj.diags_STATUS = Diags.Mode ...
    // module's errors and warnings
    obj.diags_USER1 = Diags.Mode ...
    // module's user1 Diags mode
    obj.diags_USER2 = Diags.Mode ...
    // module's user2 Diags mode
    obj.diags_USER3 = Diags.Mode ...
    // module's user3 Diags mode
    obj.diags_USER4 = Diags.Mode ...
    // module's user4 Diags mode
    obj.diags_USER5 = Diags.Mode ...
    // module's user5 Diags mode
    obj.diags_USER6 = Diags.Mode ...
    // module's user6 Diags mode
    obj.diags_USER7 = Diags.Mode ...
    // module's user7 Diags mode
    obj.diags_INFO = Diags.Mode ...
    // module's informational event mode
    obj.diags_USER8 = Diags.Mode ...
    // module's user8 Diags mode
    obj.diags_ANALYSIS = Diags.Mode ...
    // module's Diags analysis mode
    obj.fxntab = Bool ...
    obj.gate = IGateProvider.Handle ...
    // module's gate
    obj.gateParams = Ptr ...
    // gate params for module created gates
    obj.instanceHeap = IHeap.Handle ...
    // module's instance heap
    obj.instanceSection = String ...
    // memory section for module's instances
    obj.logger = ILogger.Handle ...
    // module's logger
    obj.memoryPolicy = Types.CreatePolicy ...
    // module's memory policy
    obj.namedInstance = Bool ...
    // true => instances have string names
    obj.namedModule = Bool ...
    // true => module's name is on target
    obj.romPatchTable = Bool ...
FIELDS
diags_ASSERT — The Diags.ASSERT bit of a module's diagnostics mask.
diags_ENTRY — The Diags.ENTRY category of a module's diagnostics mask.
diags_EXIT — The Diags.EXIT category of a module's diagnostics mask.
diags_INTERNAL — The Diags.INTERNAL bit of a module's diagnostics mask.
diags_LIFECYCLE — The Diags.LIFECYCLE category of a module's diagnostics mask.
diags_STATUS — The Diags.STATUS category of a module's diagnostics mask.
diags_USER1 — The Diags.USER1 category of a module's diagnostics mask.
diags_USER2 — The Diags.USER2 category of a module's diagnostics mask.
diags_USER3 — The Diags.USER3 category of a module's diagnostics mask.
diags_USER4 — The Diags.USER4 category of a module's diagnostics mask.
diags_USER5 — The Diags.USER5 category of a module's diagnostics mask.
diags_USER6 — The Diags.USER6 category of a module's diagnostics mask.
diags_USER7 — The Diags.USER7 category of a module's diagnostics mask. The bit for this category has been repurposed for the Diags.INFO category, so the use of USER7 has been deprecated.
diags_INFO — The Diags.INFO category of a module's diagnostics mask.
diags_USER8 — The Diags.USER8 category of a module's diagnostics mask. The bit for this category has been repurposed for the Diags.ANALYSIS category, so the use of USER8 has been deprecated.
diags_ANALYSIS — The Diags.ANALYSIS category of a module's diagnostics mask.
fxntab — This configurtation parameter is only applicable to modules that inherit an interface and have instance objects. Setting fxntab to false can save some data space but also prevents the application from using instance objects through abstract interfaces.
Function tables are used whenever it's necessary to call a module's methods via an abstract interface; e.g., the Memory module calls methods defined by the IHeap interface but there may be several distinct modules that implement this interface. In order for this type of call to be possible, instance objects contain a reference to a function table containing the instance module's functions; the caller gets the module's function from the instance object and calls through a function pointer. Every module that inherits an interface has such a table and modules that do not inherit an interface do not have a function table.
If this configuration parameter is set to false, the module's instance objects will NOT be initialized with a reference to their module's function table and, since the function table will not be referenced by the application, the resulting executable will be smaller. However, if this parameter is false you must never attempt to use this module's instance objects via reference this module through an abstract interface. Since this is often hard to determine, especially as an application evolves over time, you should only set this parameter to false when you are absolutely sure that the module's functions are always only being directly called and you need to absolutely minimize the data footprint of your application.
The default for this parameter is true.
gate — A handle to the module-level IGateProvider instance to be used when this module calls functions from Gate
gateParams — Gate parameters used by this module to create the gates used when this module calls Gate_allocInstance
instanceHeap — Identifies the heap from which this module should allocate memory.
instanceSection — Identifies the section in which instances created by this module should be placed.
logger — The handle of the logger instance used by the module. All log events generated by the module are routed to this logger instance. See ILogger for details on the logger interface. See LoggerBuf and LoggerSys for two examples of logger modules provided by the xdc.runtime package.
memoryPolicy — Specifies whether this module should allow static object creation only (STATIC_POLICY), dynamic object creation but not deletion (CREATE_POLICY), or both dynamic object creation and deletion (DELETE_POLICY).
namedInstance — If set to true, each instance object is given an additional field to hold a string name that is used when displaying information about an instance. Setting this to true increases the size of the module's instance objects by a single word but improves the usability of tools that display instance objects. If set to false, assignments of instance names are silently ignored. This allows one to remove instance name support to save space without having to change any source code. See IInstance.name for details.
namedModule — If set to true, this module's string name is retained on the target so that it can be displayed as part of Log and Error events. Setting this to false saves data space in the application at the expense of readability of log and error messages associated with this module.
Note: setting this to false also prevents one from controlling the module's diagnostics at runtime via Diags.setMask(). This method uses the module's name to lookup the module's diagnostics mask. It is still possible to control the module's diagnostics at design-time from a configuration script.
DETAILS
Every module contains this structure during the configuration phase. The fields of this structure are set in configuration scripts and referenced by the modules in the xdc.runtime package. For default values of these fields, see Defaults.
SEE
Diags, Defaults
struct Types.FreqHz
index URL

Frequency-in-hertz struct

XDCscript usage meta-domain
var obj = new Types.FreqHz;
    obj.hi = Bits32 ...
    // most significant 32-bits of frequency
    obj.lo = Bits32 ...
    // least significant 32-bits of frequency
C SYNOPSIS
Types_FreqHz
struct Types.Label
index URL

Instance label struct

XDCscript usage meta-domain
var obj = new Types.Label;
    obj.handle = Ptr ...
    // instance object address
    obj.modId = Bits16 ...
    // corresponding module id
    obj.iname = String ...
    // name supplied during instance creation
    obj.named = Bool ...
    // true, if iname is available
DETAILS
Label structures are used to provide human readable names for instance handles.
It is possible to initialize a Label from any instance handle. All modules that support instances provide a method named Mod_Handle_label() which, given an instance handle and a pointer to a Label structure, initializes the structure with all available information. For example, the following code fragment initializes a Label from an instance of the HeapMin module.
      HeapMin_Handle heap;
      Types_Label label;
      HeapMin_Handle_label(heap, &label);
Unless you explicitly disable it, System_printf can be used to convert a pointer to a Label into an human readable "instance name". Continuing with the example above, the following line can be used to print the an instance's label.
      System_printf("heap instance name: %$L\n", &label);
SEE
System.printf, System.extendedFormats, Text.putLabel
C SYNOPSIS
Types_Label
struct Types.RegDesc
index URL

Registry module descriptor

XDCscript usage meta-domain
var obj = new Types.RegDesc;
    obj.next = Types.RegDesc* ...
    obj.modName = String ...
    obj.id = Bits16 ...
    obj.mask = Bits16 ...
C SYNOPSIS
Types_RegDesc
struct Types.Site
index URL

Error site description struct

XDCscript usage meta-domain
var obj = new Types.Site;
    obj.mod = Bits16 ...
    // module id of this site
    obj.file = String ...
    // filename of this site
    obj.line = Int ...
    // line number of this site
FIELDS
mod — the module id of the module containing the call site
file — the name of the file containing the call site or NULL; some call sites omit the file name to save data space.
line — the line number within the file named
DETAILS
This structure describes the location of the line that raised an error.
C SYNOPSIS
Types_Site
struct Types.Timestamp64
index URL

64-bit timestamp struct

XDCscript usage meta-domain
var obj = new Types.Timestamp64;
    obj.hi = Bits32 ...
    // most significant 32-bits of timestamp
    obj.lo = Bits32 ...
    // least significant 32-bits of timestamp
DETAILS
Some platforms only support 32-bit timestamps. In this case, the most significant 32-bits are always set to 0.
C SYNOPSIS
Types_Timestamp64
metaonly config Types.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Types.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 Thu, 08 Nov 2012 02:13:26 GMT


module xdc.runtime.Types

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Types.xdc ========
    15     */
    16
    17    package xdc.runtime;
    18
    19    /*!
    20     *  ======== Types ========
    21     *  Basic constants and types
    22     *
    23     *  This module defines basic constants and types used throughout the
    24     *  `xdc.runtime` package and, in some cases, in every module.
    25     *
    26     *  The `{@link #Common$ Common$}` structure defined by the `Types` module
    27     *  is available for (or common to) all modules. Every field of the
    28     *  `Common$` structure is a configuration parameter that may be set within
    29     *  a configuration script for any module (not just the
    30     *  `xdc.runtime` modules). The fields of this structure are typically read
    31     *  by the modules in the `xdc.runtime` package at configuration time to
    32     *  control the generation of data structures that are embedded in the
    33     *  application and referenced by these modules at runtime.
    34     *
    35     *  Every module has a configuration parameter named
    36     *  `{@link #common$ common$}` that is of type `Common$`. This allows the user
    37     *  of any module to control the module's diagnostics, where its instances
    38     *  are allocated, how they are allocated, and (for gated modules) what
    39     *  gate it should use to protect critical sections.
    40     *
    41     *  @a(Examples)
    42     *  Configuration example: The following configuration script specifies
    43     *  that the instance objects managed by the `Memory` module in the
    44     *  `xdc.runtime` package should be placed in the ".fast" memory section
    45     *  and that `ENTRY` diagnostics should be available at runtime.
    46     *
    47     *  @p(code)
    48     *      var Memory = xdc.useModule('xdc.runtime.Memory");
    49     *      Memory.common$.instanceSection = ".fast";
    50     *      Memory.common$.diags_ENTRY = Diags.RUNTIME_OFF
    51     *  @p
    52     *
    53     *  Note that by setting `Memory.common$.diags_ENTRY` to `Diags.RUNTIME_OFF`
    54     *  we are both enabling `ENTRY` events and specifying that they are initially
    55     *  disabled; they must be explicitly enabled at runtime. See the
    56     *  `{@link Diags}` modules for additional information.
    57     */
    58
    59    @CustomHeader
    60
    61    module Types {
    62
    63        /*!
    64         *  ======== ModuleId ========
    65         *  Unique module identifier
    66         *
    67         *  Module IDs are assigned at configuration time based in the set
    68         *  of modules that are "used" in the application.  So, although each
    69         *  module has a unique 16-bit ID at runtime this ID may vary between
    70         *  configurations of the application.
    71         *
    72         *  To save precious data space, module names are managed by the
    73         *  `{@link Text}` module and it is this table that is used to assign
    74         *  module IDs.  If the table is maintained on the target, the module ID
    75         *  is an "index" into this table; otherwise, the module ID is simply
    76         *  a unique integer less than the total number of modules in the
    77         *  application.
    78         *
    79         *  Although module IDs are not independent of an application's
    80         *  configuration, a module's ID may be compared to a runtime value
    81         *  symbolically.  Every module has a (generated) method that returns
    82         *  the module's ID; e.g., a module named `Task` has a method named
    83         *  `Task_Module_id()` which returns `Task`'s module ID.
    84         *
    85         *  @p(code)
    86         *      #include <xdc/runtime/Types.h>
    87         *      #include <ti/sysbios/knl/Task.h>
    88         *         :
    89         *      void checkId(Types_ModuleId modId) {
    90         *          if (Task_Module_id() == modId) {
    91         *              System_printf("Task module");
    92         *          }
    93         *      }
    94         *  @p
    95         */
    96        typedef Bits16 ModuleId;
    97
    98        typedef Bits16 DiagsMask;
    99
   100        /*!
   101         *  ======== Event ========
   102         *  `{@link ILogger}` event encoding
   103         *
   104         *  Whereas a `{@link Log#Event}` encodes an event ID and a mask, a
   105         *  `Types_Event` encodes the same event ID and the module ID of the
   106         *  module containing the call site that generated the `Types_Event`.
   107         */
   108        typedef Bits32 Event;
   109
   110        /*!
   111         *  ======== getEventId ========
   112         *  Get event ID of the specified event
   113         *
   114         *  This method is used to get an ID that can be compared to other
   115         *  "known" IDs.  For example, after a `{@link #Event Types_Event}` is
   116         *  generated, the following code determines if the event
   117         *  corresponds to a `{@link Log#L_create}` event:
   118         *  @p(code)
   119         *      Bool isCreateEvent(Types_Event evt) {
   120         *          return (Log_getEventId(Log_L_create) == Types_getEventId(evt));
   121         *      }
   122         *  @p
   123         *
   124         *  @param(evt) an event created via `{@link #makeEvent}`
   125         *
   126         *  @a(returns) This function returns the event ID of a specified event.
   127         */
   128        @Macro RopeId getEventId(Event evt);
   129
   130        /*!
   131         *  ======== getModuleId ========
   132         *  Get the module ID for the specified event
   133         *
   134         *  @param(evt) an event created via `{@link #makeEvent}`
   135         *
   136         *  @a(returns) This function returns the module ID of a specified event.
   137         */
   138        @Macro ModuleId getModuleId(Event evt);
   139
   140        /*!
   141         *  ======== makeEvent ========
   142         *  Make an Event from an Event ID and a module ID
   143         *
   144         *  @param(id)          ID of the event itself
   145         *  @param(callSite)    the module from which this event originated
   146         *
   147         *  @a(returns) This function returns an event.
   148         */
   149        @Macro Event makeEvent(RopeId id, ModuleId callSite);
   150
   151        /*!
   152         *  ======== EventId ========
   153         *  @_nodoc
   154         *
   155         *  Deprecated name for `Types.Event`; ids are often encoded as a field
   156         *  in the event itself.
   157         */
   158        typedef Event EventId;
   159
   160        /*! @_nodoc */
   161        struct CordAddr__;
   162
   163        /*! @_nodoc */
   164        typedef CordAddr__ *CordAddr;
   165
   166        /*! @_nodoc */
   167        struct GateRef__;
   168
   169        /*! @_nodoc */
   170        typedef GateRef__ *GateRef;
   171
   172        /*! @_nodoc */
   173        typedef Bits16 RopeId;
   174
   175        /*!
   176         *  ======== CreatePolicy ========
   177         *  Instance creation policy
   178         */
   179        enum CreatePolicy {
   180            STATIC_POLICY,  /*! static creation only; no runtime create/delete */
   181            CREATE_POLICY,  /*! dynamic creation, but no deletion */
   182            DELETE_POLICY   /*! dynamic creation and deletion */
   183        };
   184
   185        /*!
   186         *  ======== Label ========
   187         *  Instance label struct
   188         *
   189         *  Label structures are used to provide human readable names for
   190         *  instance handles.
   191         *
   192         *  It is possible to initialize a `Label` from any instance handle.  All
   193         *  modules that support instances provide a method named
   194         *  `Mod_Handle_label()` which, given an instance handle and a pointer to
   195         *  a `Label` structure, initializes the structure with all available
   196         *  information.  For example, the following code fragment initializes a
   197         *  `Label` from an instance of the `HeapMin` module.
   198         *  @p(code)
   199         *      HeapMin_Handle heap;
   200         *      Types_Label label;
   201         *      HeapMin_Handle_label(heap, &label);
   202         *  @p
   203         *
   204         *  Unless you explicitly disable it, `{@link System#printf System_printf}`
   205         *  can be used to convert a pointer to a `Label` into an human readable
   206         *  "instance name".  Continuing with the example above, the following
   207         *  line can be used to print the an instance's label.
   208         *  @p(code)
   209         *      System_printf("heap instance name: %$L\n", &label);
   210         *  @p
   211         *
   212         *  @see System#printf, System#extendedFormats
   213         *  @see Text#putLabel
   214         */
   215        struct Label {
   216            Ptr handle;         /*! instance object address */
   217            ModuleId modId;     /*! corresponding module id */
   218            String iname;       /*! name supplied during instance creation */
   219            Bool named;         /*! true, if `iname` is available */
   220        };
   221
   222        /*!
   223         *  ======== Site ========
   224         *  Error site description struct
   225         *
   226         *  This structure describes the location of the line that raised
   227         *  an error.
   228         *
   229         *  @field(mod) the module id of the module containing the call site
   230         *  @field(file) the name of the file containing the call site or `NULL`;
   231         *               some call sites omit the file name to save data space.
   232         *  @field(line) the line number within the file named
   233         */
   234        struct Site {
   235            ModuleId mod;   /*! module id of this site */
   236            String file;    /*! filename of this site */
   237            Int line;       /*! line number of this site */
   238        };
   239
   240        /*!
   241         *  ======== Timestamp64 ========
   242         *  64-bit timestamp struct
   243         *
   244         *  Some platforms only support 32-bit timestamps.  In this case,
   245         *  the most significant 32-bits are always set to 0.
   246         */
   247        struct Timestamp64 {
   248            Bits32 hi;      /*! most significant 32-bits of timestamp */
   249            Bits32 lo;      /*! least significant 32-bits of timestamp */
   250        };
   251
   252        /*!
   253         *  ======== FreqHz ========
   254         *  Frequency-in-hertz struct
   255         */
   256        struct FreqHz {
   257            Bits32 hi;      /*! most significant 32-bits of frequency */
   258            Bits32 lo;      /*! least significant 32-bits of frequency */
   259        };
   260
   261        /*!
   262         *  ======== RegDesc ========
   263         *  Registry module descriptor
   264         */
   265        struct RegDesc {
   266            RegDesc         *next;
   267            String          modName;
   268            Types.ModuleId  id;
   269            DiagsMask       mask;
   270        };
   271
   272        /*!
   273         *  ======== Common$ ========
   274         *  Common module config struct
   275         *
   276         *  Every module contains this structure during the configuration
   277         *  phase. The fields of this structure are set in configuration scripts
   278         *  and referenced by the modules in the `xdc.runtime` package. For default
   279         *  values of these fields, see `{@link Defaults}`.
   280         *
   281         *  @field(diags_ASSERT) The `{@link Diags#ASSERT}` bit of a module's
   282         *  diagnostics mask.
   283         *
   284         *  @field(diags_ENTRY) The `{@link Diags#ENTRY}` category of a module's
   285         *  diagnostics mask.
   286         *
   287         *  @field(diags_EXIT) The `{@link Diags#EXIT}` category of a module's
   288         *  diagnostics mask.
   289         *
   290         *  @field(diags_INTERNAL) The `{@link Diags#INTERNAL}` bit of a module's
   291         *  diagnostics mask.
   292         *
   293         *  @field(diags_LIFECYCLE) The `{@link Diags#LIFECYCLE}` category of a
   294         *  module's diagnostics mask.
   295         *
   296         *  @field(diags_STATUS) The `{@link Diags#STATUS}` category of a module's
   297         *  diagnostics mask.
   298         *
   299         *  @field(diags_USER1) The `{@link Diags#USER1}` category of a module's
   300         *  diagnostics mask.
   301         *
   302         *  @field(diags_USER2) The `{@link Diags#USER2}` category of a module's
   303         *  diagnostics mask.
   304         *
   305         *  @field(diags_USER3) The `{@link Diags#USER3}` category of a module's
   306         *  diagnostics mask.
   307         *
   308         *  @field(diags_USER4) The `{@link Diags#USER4}` category of a module's
   309         *  diagnostics mask.
   310         *
   311         *  @field(diags_USER5) The `{@link Diags#USER5}` category of a module's
   312         *  diagnostics mask.
   313         *
   314         *  @field(diags_USER6) The `{@link Diags#USER6}` category of a module's
   315         *  diagnostics mask.
   316         *
   317         *  @field(diags_USER7) The `{@link Diags#USER7}` category of a module's
   318         *  diagnostics mask. The bit for this category has been repurposed for the
   319         *  `{@link Diags#INFO}` category, so the use of USER7 has been deprecated.
   320         *
   321         *  @field(diags_INFO) The `{@link Diags#INFO}` category of a module's
   322         *  diagnostics mask.
   323         *
   324         *  @field(diags_USER8) The `{@link Diags#USER8}` category of a module's
   325         *  diagnostics mask. The bit for this category has been repurposed for the
   326         *  `{@link Diags#ANALYSIS}` category, so the use of USER8 has been
   327         *  deprecated.
   328         *
   329         *  @field(diags_ANALYSIS) The `{@link Diags#ANALYSIS}` category of a
   330         *  module's diagnostics mask.
   331         *
   332         *  @field(fxntab)
   333         *  This configurtation parameter is only applicable to modules that
   334         *  inherit an interface and have instance objects.  Setting `fxntab`
   335         *  to `false` can save some data space but also prevents the
   336         *  application from using instance objects through abstract interfaces.
   337         *
   338         *  Function tables are used whenever it's necessary to call a module's
   339         *  methods via an abstract interface; e.g., the `{@link Memory}` module
   340         *  calls methods defined by the `{@link IHeap}` interface but there may
   341         *  be several distinct modules that implement this interface.  In order
   342         *  for this type of call to be possible, instance objects contain a
   343         *  reference to a function table containing the instance module's
   344         *  functions; the caller gets the module's function from the instance
   345         *  object and calls through a function pointer.  Every module that
   346         *  inherits an interface has such a table and modules that do not
   347         *  inherit an interface do not have a function table.
   348         *
   349         *  If this configuration parameter is set to `false`, the module's
   350         *  instance objects will NOT be initialized with a reference to their
   351         *  module's function table and, since the function table will not
   352         *  be referenced by the application, the resulting executable will be
   353         *  smaller.  However, if this parameter is `false` you must never
   354         *  attempt to use this module's instance objects via reference this
   355         *  module through an abstract interface.  Since this is often hard to
   356         *  determine, especially as an application evolves over time, you should
   357         *  only set this parameter to `false` when you are absolutely sure that
   358         *  the module's functions are always only being directly called and you
   359         *  need to absolutely minimize the data footprint of your application.
   360         *
   361         *  The default for this parameter is `true`.
   362         *
   363         *  @field(gate) A handle to the module-level `{@link IGateProvider}`
   364         *  instance to be used when this module calls functions from
   365         *  `{@link Gate}`
   366         *
   367         *  @field(gateParams) `Gate` parameters used by this module to create
   368         *  the gates used when this module calls
   369         *  `{@link Gate#allocInstance() Gate_allocInstance}`
   370         *
   371         *  @field(instanceHeap) Identifies the heap from which this module
   372         *  should allocate memory.
   373         *
   374         *  @field(instanceSection) Identifies the section in which instances
   375         *  created by this module should be placed.
   376         *
   377         *  @field(logger) The handle of the logger instance used by the module.
   378         *  All log events generated by the module are routed to this logger
   379         *  instance. See `{@link ILogger}` for details on the logger interface.
   380         *  See `{@link LoggerBuf}` and `{@link LoggerSys}` for two examples of
   381         *  logger modules provided by the `{@link xdc.runtime}` package.
   382         *
   383         *  @field(memoryPolicy) Specifies whether this module should allow
   384         *  static object creation only (`{@link #CreatePolicy STATIC_POLICY}`),
   385         *  dynamic object creation but not deletion
   386         *  (`{@link #CreatePolicy CREATE_POLICY}`), or both dynamic object
   387         *  creation and deletion (`{@link #CreatePolicy DELETE_POLICY}`).
   388         *
   389         *  @field(namedInstance) If set to `true`, each instance object is
   390         *  given an additional field to hold a string name that is used
   391         *  when displaying information about an instance. Setting this to
   392         *  `true` increases the size of the module's instance objects by a
   393         *  single word but improves the usability of tools that display
   394         *  instance objects.  If set to `false`, assignments of instance
   395         *  names are silently ignored.  This allows one to remove instance
   396         *  name support to save space without having to change any source code.
   397         *  See `{@link xdc.runtime.IInstance#name IInstance.name}` for details.
   398         *
   399         *  @field(namedModule) If set to `true`, this module's string name
   400         *  is retained on the target so that it can be displayed as part
   401         *  of `{@link Log}` and `{@link Error}` events. Setting this to `false`
   402         *  saves data space in the application at the expense of readability
   403         *  of log and error messages associated with this module.
   404         *
   405         *  Note: setting this to `false` also prevents one from controlling the
   406         *  module's diagnostics at runtime via `{@link Diags#setMask()}`.
   407         *  This method uses the module's name to lookup the module's
   408         *  diagnostics mask.  It is still possible to control the module's
   409         *  diagnostics at design-time from a configuration script.
   410         *
   411         *  @see Diags, Defaults
   412         */
   413        metaonly struct Common$ {
   414            Diags.Mode diags_ASSERT;    /*! module's Diags assert mode */
   415            Diags.Mode diags_ENTRY;     /*! module's function entry Diags mode */
   416            Diags.Mode diags_EXIT;      /*! module's function exit Diags mode */
   417            Diags.Mode diags_INTERNAL;  /*! module's internal assert mode */
   418            Diags.Mode diags_LIFECYCLE; /*! module's instance lifecycle mode */
   419            Diags.Mode diags_STATUS;    /*! module's errors and warnings */
   420            Diags.Mode diags_USER1;     /*! module's user1 Diags mode */
   421            Diags.Mode diags_USER2;     /*! module's user2 Diags mode */
   422            Diags.Mode diags_USER3;     /*! module's user3 Diags mode */
   423            Diags.Mode diags_USER4;     /*! module's user4 Diags mode */
   424            Diags.Mode diags_USER5;     /*! module's user5 Diags mode */
   425            Diags.Mode diags_USER6;     /*! module's user6 Diags mode */
   426            Diags.Mode diags_USER7;     /*! module's user7 Diags mode */
   427            Diags.Mode diags_INFO;      /*! module's informational event mode */
   428            Diags.Mode diags_USER8;     /*! module's user8 Diags mode */
   429            Diags.Mode diags_ANALYSIS;  /*! module's Diags analysis mode */
   430            Bool fxntab;                /*! @_nodoc enable function tables */
   431            IGateProvider.Handle gate;  /*! module's gate */
   432            Ptr gateParams;             /*! gate params for module created gates */
   433            IHeap.Handle instanceHeap;  /*! module's instance heap */
   434            String instanceSection;     /*! memory section for module's instances*/
   435            ILogger.Handle logger;      /*! module's logger */
   436            CreatePolicy memoryPolicy;  /*! module's memory policy */
   437            Bool namedInstance;         /*! true => instances have string names */
   438            Bool namedModule;           /*! true => module's name is on target */
   439            Bool romPatchTable;         /*! @_nodoc */
   440        }
   441
   442        /*!
   443         *  ======== RtaDecoderData ========
   444         *  @_nodoc
   445         *
   446         *  loggers
   447         *    name - Used to identify the logger in GUI
   448         *    bufferSym - For stop-mode; symbol at which the logger's entry
   449         *                buffer can be found
   450         *    bufferLen - For stop-mode; length of the logger's entry buffer in
   451         *                MAUs
   452         */
   453        @XmlDtd metaonly struct RtaDecoderData {
   454            String targetName;
   455            String binaryParser;
   456            String endian;
   457            Int bitsPerChar;
   458            Int argSize;
   459            Int eventSize;
   460            String dataTransportClassName;
   461            String controlTransportClassName;
   462            struct {
   463                String name;
   464                String type;
   465                Any metaArgs;
   466            } loggers[ ];
   467            struct {
   468                Int id;
   469                String logger;
   470                String diagsMask;
   471            } modMap[string];
   472            struct {
   473                Int id;
   474                String msg;
   475            } evtMap[string];
   476        };
   477
   478        /*!
   479         *  ======== ViewInfo ========
   480         *  @_nodoc
   481         *  XGconf view descriptor.
   482         */
   483        metaonly struct ViewInfo {
   484            String viewType;
   485            String viewFxn;
   486            String fields[];
   487        }
   488
   489    internal:
   490
   491        typedef Bits32 LogEvent;
   492
   493        typedef Void (*LoggerFxn0)(Ptr, LogEvent, ModuleId);
   494        typedef Void (*LoggerFxn1)(Ptr, LogEvent, ModuleId, IArg);
   495        typedef Void (*LoggerFxn2)(Ptr, LogEvent, ModuleId, IArg, IArg);
   496        typedef Void (*LoggerFxn4)(Ptr, LogEvent, ModuleId, IArg, IArg, IArg, IArg);
   497        typedef Void (*LoggerFxn8)(Ptr, LogEvent, ModuleId, IArg, IArg, IArg, IArg,
   498                                   IArg, IArg, IArg, IArg);
   499
   500        struct Vec {
   501            Int len;
   502            Ptr arr;
   503        };
   504
   505        /*
   506         *  ======== Link ========
   507         *  Link used to maintain atomic linked lists
   508         */
   509        struct Link {
   510            Link *next;
   511            Link *prev;
   512        };
   513
   514        /*
   515         *  ======== InstHdr ========
   516         *  Header for all runtime created instance objects
   517         */
   518        struct InstHdr {
   519            Link link;
   520        }
   521
   522        /*
   523         *  ======== PrmsHdr ========
   524         *  Header for all _Params structures
   525         */
   526        struct PrmsHdr {
   527            SizeT size;     /* size of the entire parameter structure */
   528            Ptr self;       /* pointer to self; used to check params are init'd */
   529            Ptr modFxns;
   530            Ptr instPrms;
   531        }
   532
   533        /*
   534         *  ======== Base ========
   535         *  Header for all module vtables
   536         */
   537        struct Base {
   538            Base *base;     /* points to inherited interface base */
   539        }
   540
   541        /*
   542         *  ======== SysFxns ========
   543         *  Deprecated.  Use SysFxns2 instead
   544         */
   545        struct SysFxns {
   546            Ptr (*__create)(Ptr, SizeT, const Ptr, const Ptr, SizeT, Error.Block*);
   547            Void (*__delete)(Ptr);
   548            Label *(*__label)(Ptr, Label *);
   549            ModuleId __mid;
   550        }
   551
   552        /*
   553         *  ======== SysFxns2 ========
   554         *  System data embedded in module's vtable
   555         */
   556        struct SysFxns2 {
   557            Ptr (*__create)(Ptr, SizeT, const Ptr, const UChar *, SizeT, Error.Block *);
   558            Void (*__delete)(Ptr);
   559            Label *(*__label)(Ptr, Label *);
   560            ModuleId __mid;
   561        }
   562
   563    }
   564    /*
   565     *  @(#) xdc.runtime; 2, 1, 0,394; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   566     */
   567


package xdc.runtime.knl
index URL

XDC Runtime support for OS-related primitives

XDCspec declarations sourced in xdc/runtime/knl/package.xdc
package xdc.runtime.knl [1, 0, 0] {
    interface ICacheSupport;
    // Interface for OS specific back-end
    interface IGateProcessSupport;
    // Interface for OS specific back-end
    interface IGateThreadSupport;
    // Interface for OS specific back-end
    interface ISemProcessSupport;
    // Interface for OS specific back-end
    interface ISemThreadSupport;
    // Interface for OS specific back-end
    interface ISemaphore;
    // Interface implemented by all front-end semaphore providers
    interface ISync;
    // OS independent synchronization
    interface IThreadSupport;
    // Interface for OS specific back-end
    module Cache;
    // Cache Services
    module CacheSupportNull;
    // Empty ICacheSupport implementation
    module GateH;
    // Provides APIs to protect critical sections when an IGate.Handle is available
    module GateProcess;
    // Provides protection of critical sections across processes
    module GateProcessSupportNull;
    // Empty IGateProcessSupport implementation
    module GateThread;
    // Provides protection of critical sections across threads
    module GateThreadSupportNull;
    // Empty IGateProcessSupport implementation
    module SemProcess;
    // SemProcess Manager
    module SemThread;
    // SemThread Manager
    module Semaphore;
    // Provides semaphore services when an ISemaphore.Handle is available
    module Sync;
    // Provides synchronization APIs when an ISync.Handle is available
    module SyncGeneric;
    // Generic ISync implementation
    module SyncNull;
    // Empty ISync implementation used mainly for testing
    module SyncSemThread;
    // A ISync implementation based on a SemThread. [EXPERIMENTAL]
    module Thread;
    // Thread services
}
generated on Thu, 08 Nov 2012 02:13:30 GMT


package xdc.runtime.knl

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== package.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== xdc.runtime.knl ========
    19     *  XDC Runtime support for OS-related primitives
    20     */
    21    package xdc.runtime.knl [1,0,0]
    22    {
    23        module GateH;
    24        module Semaphore;
    25        module Thread;
    26        module Sync;
    27
    28        module GateThread;
    29        module GateProcess;
    30        module SemThread;
    31        module SemProcess;
    32        module SyncGeneric;
    33        module SyncNull;
    34        module SyncSemThread;
    35        module Cache;
    36        module CacheSupportNull;
    37        module GateThreadSupportNull;
    38        module GateProcessSupportNull;
    39
    40        interface ISemaphore;
    41        interface ISync;
    42
    43        interface IGateThreadSupport;
    44        interface IGateProcessSupport;
    45        interface ISemThreadSupport;
    46        interface ISemProcessSupport;
    47        interface IThreadSupport;
    48        interface ICacheSupport;
    49    }
    50    /*
    51     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    52     */
    53


module xdc.runtime.knl.Cache
index URL

Cache Services

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
The Cache module provide APIs to allow applications to maintain cache coherency. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/knl/Cache.xdc
#include <xdc/runtime/knl/Cache.h>
Functions
Bool | Cache_inv// Invalidate range of memory for all cache(s)(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
Bool | Cache_wait// Wait for a previous cache operation to complete(Error_Block *eb);
Bool | Cache_wb// Writes back a range of memory from all cache(s)(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
Bool | Cache_wbInv// Write back and invalidate range of memory(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
Functions common to all target modules
 | Cache_Module_getMask// Returns the diagnostics mask for this module, Cache_Module_hasMask// Test whether this module has a diagnostics mask, Cache_Module_heap// The heap from which this module allocates memory, Cache_Module_id// Get this module's unique id, Cache_Module_setMask// Set the diagnostics mask for this module, Cache_Module_startupDone// Test if this module has completed startup
DETAILS
The Cache module provide APIs to allow applications to maintain cache coherency.
This module will use an OS specific delegate (back-end) to manipulate the cache. This module has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used.
Here is an example showing how the proxy is bound to an BIOS 6.x specific delegate.
  var Cache = xdc.useModule('xdc.runtime.knl.Cache');
  Cache.Proxy = xdc.useModule('ti.sysbios.xdcruntime.CacheSupport');
Typically the package containing the delegates have a Settings module that will bind all xdc.runtime.knl proxies. The following example sets up all the xdc.runtime.knl proxies.
  xdc.useModule("ti.sysbios.xdcruntime.Settings");
Cache_inv() // module-wide
index URL

Invalidate range of memory for all cache(s)

C synopsis target-domain
Bool Cache_inv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
ARGUMENTS
blockPtr — start address of range to be invalidated
byteCnt — number of bytes to be invalidated
wait — wait until the operation is completed
eb — error block
DETAILS
Invalidate the range of memory within the specified starting address and byte count. The range of addresses operated on gets quantized to whole cache lines in each cache. All lines in range are invalidated for all cache types.
RETURNS
true for success; false for error.
Cache_wait() // module-wide
index URL

Wait for a previous cache operation to complete

C synopsis target-domain
Bool Cache_wait(Error_Block *eb);
ARGUMENTS
eb — error block
DETAILS
Wait for the cache wb/wbInv/inv operation to complete. A cache operation is not truly complete until it has worked its way through all buffering and all memory writes have landed in the source memory.
RETURNS
true for success; false for error.
Cache_wb() // module-wide
index URL

Writes back a range of memory from all cache(s)

C synopsis target-domain
Bool Cache_wb(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
ARGUMENTS
blockPtr — start address of range to be invalidated
byteCnt — number of bytes to be invalidated
wait — wait until the operation is completed
eb — error block
DETAILS
Writes back the range of memory within the specified starting address and byte count. The range of addresses operated on gets quantized to whole cache lines in each cache. All lines within the range are left valid in all caches and the data within the range will be written back to the source memory.
RETURNS
true for success; false for error.
Cache_wbInv() // module-wide
index URL

Write back and invalidate range of memory

C synopsis target-domain
Bool Cache_wbInv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
ARGUMENTS
blockPtr — start address of range to be invalidated
byteCnt — number of bytes to be invalidated
wait — wait until the operation is completed
eb — error block
DETAILS
Writes back and invalidates the range of memory within the specified starting address and byte count. The range of addresses operated on gets quantized to whole cache lines in each cache. All lines within the range are written back to the source memory and then invalidated for all cache types.
RETURNS
true for success; false for error.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Cache_Module_id();
// Get this module's unique id
Bool Cache_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Cache_Module_heap();
// The heap from which this module allocates memory
Bool Cache_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Cache_Module_getMask();
// Returns the diagnostics mask for this module
Void Cache_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/knl/Cache.xdc
var Cache = xdc.useModule('xdc.runtime.knl.Cache');
local proxy modules
     Cache.Proxy// ICacheSupport proxy = ICacheSupport.Module null
         Cache.Proxy.delegate$ = ICacheSupport.Module null
module-wide config parameters
     Cache.common$// Common module configuration parameters = Types.Common$ undefined;
proxy Cache.Proxy
index URL

ICacheSupport proxy

XDCscript usage meta-domain
Cache.Proxy = ICacheSupport.Module null
// some delegate module inheriting the ICacheSupport interface
    Cache.Proxy.delegate$ = ICacheSupport.Module null
    // explicit access to the currently bound delegate module
DETAILS
Cache will use this proxy to access the cache hardware using OS specific APIs.
metaonly config Cache.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Cache.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 Thu, 08 Nov 2012 02:13:29 GMT


module xdc.runtime.knl.Cache

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Cache.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18    import xdc.runtime.knl.ICacheSupport;
    19
    20    /*!
    21     *  ======== Cache ========
    22     *  Cache Services
    23     *
    24     *  The Cache module provide APIs to allow applications to maintain cache
    25     *  coherency.
    26     *
    27     *  This module will use an OS specific delegate (back-end) to manipulate the
    28     *  cache.
    29     *  This module has a module wide config parameter {@link #Proxy} which needs to
    30     *  be bound to an OS specific delegate before this module can be used.
    31     *
    32     *  Here is an example showing how the proxy is bound to an BIOS 6.x specific
    33     *  delegate.
    34     *
    35     *  @p(code)
    36     *  var Cache = xdc.useModule('xdc.runtime.knl.Cache');
    37     *  Cache.Proxy = xdc.useModule('ti.sysbios.xdcruntime.CacheSupport');
    38     *  @p
    39     *
    40     *  Typically the package containing the delegates have a Settings module that
    41     *  will bind all {@link xdc.runtime.knl} proxies. The following
    42     *  example sets up all the xdc.runtime.knl proxies.
    43     *
    44     *  @p(code)
    45     *  xdc.useModule("ti.sysbios.xdcruntime.Settings");
    46     *  @p
    47     */
    48
    49    module Cache
    50    {
    51        /*!
    52         *  ======== Proxy ========
    53         *  ICacheSupport proxy
    54         *
    55         *  Cache will use this proxy to access the cache hardware using
    56         *  OS specific APIs.
    57         */
    58        proxy Proxy inherits ICacheSupport;
    59
    60        /*!
    61         *  ======== inv ========
    62         *  Invalidate range of memory for all cache(s)
    63         *
    64         *  Invalidate the range of memory within the specified starting
    65         *  address and byte count.  The range of addresses operated on
    66         *  gets quantized to whole cache lines in each cache.  All lines
    67         *  in range are invalidated for all cache types.
    68         *
    69         *  @param(blockPtr) start address of range to be invalidated
    70         *  @param(byteCnt)  number of bytes to be invalidated
    71         *  @param(wait)     wait until the operation is completed
    72         *  @param(eb)       error block
    73         *  @a(returns)  true for success; false for error.
    74         */
    75        Bool inv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
    76
    77        /*!
    78         *  ======== wb ========
    79         *  Writes back a range of memory from all cache(s)
    80         *
    81         *  Writes back the range of memory within the specified starting
    82         *  address and byte count.  The range of addresses operated on
    83         *  gets quantized to whole cache lines in each cache.  All lines
    84         *  within the range are left valid in all caches and the data
    85         *  within the range will be written back to the source memory.
    86         *
    87         *  @param(blockPtr) start address of range to be invalidated
    88         *  @param(byteCnt)  number of bytes to be invalidated
    89         *  @param(wait)     wait until the operation is completed
    90         *  @param(eb)       error block
    91         *  @a(returns)  true for success; false for error.
    92         */
    93        Bool wb(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
    94
    95        /*!
    96         *  ======== wbInv ========
    97         *  Write back and invalidate range of memory.
    98         *
    99         *  Writes back and invalidates the range of memory within the
   100         *  specified starting address and byte count.  The range of
   101         *  addresses operated on gets quantized to whole cache lines in
   102         *  each cache.  All lines within the range are written back to the
   103         *  source memory and then invalidated for all cache types.
   104         *
   105         *  @param(blockPtr) start address of range to be invalidated
   106         *  @param(byteCnt)  number of bytes to be invalidated
   107         *  @param(wait)     wait until the operation is completed
   108         *  @param(eb)       error block
   109         *  @a(returns)  true for success; false for error.
   110         */
   111        Bool wbInv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
   112
   113        /*!
   114         *  ======== wait ========
   115         *  Wait for a previous cache operation to complete
   116         *
   117         *  Wait for the cache wb/wbInv/inv operation to complete.  A cache
   118         *  operation is not truly complete until it has worked its way
   119         *  through all buffering and all memory writes have landed in the
   120         *  source memory.
   121         *
   122         *  @param(eb)       error block
   123         *  @a(returns)  true for success; false for error.
   124         */
   125        Bool wait(Error.Block *eb);
   126    }
   127    /*
   128     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   129     */
   130


module xdc.runtime.knl.CacheSupportNull
index URL

Empty ICacheSupport implementation

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in xdc/runtime/knl/CacheSupportNull.xdc
#include <xdc/runtime/knl/CacheSupportNull.h>
Functions common to all ICacheSupport modules
Bool | CacheSupportNull_inv// Invalidates range of memory(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
Bool | CacheSupportNull_wait// Wait for a previous cache operation to complete(Error_Block *eb);
Bool | CacheSupportNull_wb// Writes a range of memory from all cache(s)(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
Bool | CacheSupportNull_wbInv// Writes back and invalidates range fo memory(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
Functions common to all target modules
 | CacheSupportNull_Module_getMask// Returns the diagnostics mask for this module, CacheSupportNull_Module_hasMask// Test whether this module has a diagnostics mask, CacheSupportNull_Module_heap// The heap from which this module allocates memory, CacheSupportNull_Module_id// Get this module's unique id, CacheSupportNull_Module_setMask// Set the diagnostics mask for this module, CacheSupportNull_Module_startupDone// Test if this module has completed startup
CacheSupportNull_inv() // module-wide
index URL

Invalidates range of memory

C synopsis target-domain
Bool CacheSupportNull_inv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
ARGUMENTS
blockPtr — start address of range to be invalidated
byteCnt — number of bytes to be invalidated
wait — wait until the operation is completed
eb — error block
DETAILS
Invalidate the range of memory within the specified starting address and byte count. The range of addresses operated on gets quantized to whole cache lines in each cache. All lines in range are invalidated for all the 'type' caches.
RETURNS
true for success; false for error.
CacheSupportNull_wait() // module-wide
index URL

Wait for a previous cache operation to complete

C synopsis target-domain
Bool CacheSupportNull_wait(Error_Block *eb);
DETAILS
Wait for the cache wb/wbInv/inv operation to complete. A cache operation is not truly complete until it has worked its way through all buffering and all memory writes have landed in the source memory.
RETURNS
true for success; false for error.
CacheSupportNull_wb() // module-wide
index URL

Writes a range of memory from all cache(s)

C synopsis target-domain
Bool CacheSupportNull_wb(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
ARGUMENTS
blockPtr — start address of range to be invalidated
byteCnt — number of bytes to be invalidated
wait — wait until the operation is completed
eb — error block
DETAILS
Writes the range of memory within the specified starting address and byte count. The range of addresses operated on gets quantized to whole cache lines in each cache. All lines within the range are left valid in the 'type' caches and the data within the range will be written to the source memory.
RETURNS
true for success; false for error.
CacheSupportNull_wbInv() // module-wide
index URL

Writes back and invalidates range fo memory

C synopsis target-domain
Bool CacheSupportNull_wbInv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error_Block *eb);
ARGUMENTS
blockPtr — start address of range to be invalidated
byteCnt — number of bytes to be invalidated
wait — wait until the operation is completed
eb — error block
DETAILS
Writes and invalidates the range of memory within the specified starting address and byte count. The range of addresses operated on gets quantized to whole cache lines in each cache. All lines within the range are written to the source memory and then invalidated for all 'type' caches.
RETURNS
true for success; false for error.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId CacheSupportNull_Module_id();
// Get this module's unique id
Bool CacheSupportNull_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle CacheSupportNull_Module_heap();
// The heap from which this module allocates memory
Bool CacheSupportNull_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 CacheSupportNull_Module_getMask();
// Returns the diagnostics mask for this module
Void CacheSupportNull_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/knl/CacheSupportNull.xdc
var CacheSupportNull = xdc.useModule('xdc.runtime.knl.CacheSupportNull');
module-wide config parameters
     CacheSupportNull.common$// Common module configuration parameters = Types.Common$ undefined;
metaonly config CacheSupportNull.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
CacheSupportNull.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 Thu, 08 Nov 2012 02:13:29 GMT


module xdc.runtime.knl.CacheSupportNull

     1    /*!
     2     *  ======== CacheSupport.xdc ========
     3     *  Empty ICacheSupport implementation
     4     */
     5
     6    module CacheSupportNull inherits ICacheSupport
     7    {
     8
     9    }
    10    /*
    11     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    12     */
    13


module xdc.runtime.knl.GateH
index URL

Provides APIs to protect critical sections when an IGate.Handle is available

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
An application can isolate itself from IGate implementations by using this module. The application must first obtain an IGate.Handle. It can get such a handle by directly calling GateThread.create or GateProcess.create. Then the application can use the generic APIs provided by this module. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/knl/GateH.xdc
#include <xdc/runtime/knl/GateH.h>
Functions
IArg | GateH_enter// Enter a gate(IGateProvider_Handle hdl);
Void | GateH_leave// Leave a gate(IGateProvider_Handle hdl, IArg key);
Functions common to all target modules
 | GateH_Module_getMask// Returns the diagnostics mask for this module, GateH_Module_hasMask// Test whether this module has a diagnostics mask, GateH_Module_heap// The heap from which this module allocates memory, GateH_Module_id// Get this module's unique id, GateH_Module_setMask// Set the diagnostics mask for this module, GateH_Module_startupDone// Test if this module has completed startup
DETAILS
An application can isolate itself from IGate implementations by using this module. The application must first obtain an IGate.Handle. It can get such a handle by directly calling GateThread.create or GateProcess.create. Then the application can use the generic APIs provided by this module.
The underlying gates are nexting in nature and users have to leave the gate as many times as they entered it.
GateH_enter() // module-wide
index URL

Enter a gate

C synopsis target-domain
IArg GateH_enter(IGateProvider_Handle hdl);
ARGUMENTS
hdl — IGateProvider.Handle
RETURNS
key
GateH_leave() // module-wide
index URL

Leave a gate

C synopsis target-domain
Void GateH_leave(IGateProvider_Handle hdl, IArg key);
ARGUMENTS
hdl — IGateProvider.Handle
key — key returned by enter();
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId GateH_Module_id();
// Get this module's unique id
Bool GateH_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle GateH_Module_heap();
// The heap from which this module allocates memory
Bool GateH_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GateH_Module_getMask();
// Returns the diagnostics mask for this module
Void GateH_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/knl/GateH.xdc
var GateH = xdc.useModule('xdc.runtime.knl.GateH');
local proxy modules
     GateH.Proxy// Proxy used for optimization = IGateProvider.Module null
         GateH.Proxy.delegate$ = IGateProvider.Module null
         GateH.Proxy.abstractInstances$ = false
module-wide config parameters
     GateH.common$// Common module configuration parameters = Types.Common$ undefined;
proxy GateH.Proxy
index URL

Proxy used for optimization

XDCscript usage meta-domain
GateH.Proxy = IGateProvider.Module null
// some delegate module inheriting the IGateProvider interface
    GateH.Proxy.delegate$ = IGateProvider.Module null
    // explicit access to the currently bound delegate module
    GateH.Proxy.abstractInstances$ = false
    // use indirect runtime function calls if true
DETAILS
If ALL IGateProvider.Handles used by GateH are created using the same module (e.g GateProcess) then setting this Proxy to GateProcess and setting GateH.Proxy.abstractInstances$ = false, causes GateH APIs can have better performance.
metaonly config GateH.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
GateH.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 Thu, 08 Nov 2012 02:13:29 GMT


module xdc.runtime.knl.GateH

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== GateH.xdc ========
    15     */
    16
    17    import xdc.runtime.IGateProvider;
    18
    19    /*!
    20     *  ======== GateH ========
    21     *  Provides APIs to protect critical sections when an IGate.Handle is
    22     *  available.
    23     *
    24      * An application can isolate itself from IGate implementations by using
    25     *  this module. The application must first obtain an IGate.Handle.
    26     *  It can get such a handle by directly calling {@link GateThread#create} or
    27     *  {@link GateProcess#create}. Then the application can use the generic
    28     *  APIs provided by this module.
    29     *
    30     *  The underlying gates are nexting in nature and users have to leave
    31     *  the gate as many times as they entered it.
    32     */
    33
    34    module GateH
    35    {
    36        /*!
    37         *  Proxy used for optimization.
    38         *
    39         *  If ALL IGateProvider.Handles used by GateH are created using the same
    40         *  module (e.g GateProcess) then setting this Proxy to GateProcess and
    41         *  setting GateH.Proxy.abstractInstances$ = false, causes
    42         *  GateH APIs can have better performance.
    43         */
    44        proxy Proxy inherits IGateProvider;
    45
    46        /*!
    47         * ======== enter ========
    48         * Enter a gate
    49         *
    50         * @param(hdl)    IGateProvider.Handle
    51         * @a(returns)    key
    52         */
    53        IArg enter(IGateProvider.Handle hdl);
    54
    55        /*!
    56         * ======== leave ========
    57         * Leave a gate
    58         *
    59         * @param(hdl)    IGateProvider.Handle
    60         * @param(key)    key returned by enter();
    61         */
    62        Void leave(IGateProvider.Handle hdl, IArg key);
    63    }
    64    /*
    65     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    66     */
    67


module xdc.runtime.knl.GateProcess
index URL

Provides protection of critical sections across processes

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides services through its proxy IGateProcessSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/knl/GateProcess.xdc
#include <xdc/runtime/knl/GateProcess.h>
Functions
Void | GateProcess_construct// Initialize a new instance object inside the provided structure(GateProcess_Struct *structP, const GateProcess_Params *params, Error_Block *eb);
GateProcess_Handle | GateProcess_create// Allocate and initialize a new instance object and return its handle(const GateProcess_Params *params, Error_Block *eb);
Void | GateProcess_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(GateProcess_Handle *handleP);
Void | GateProcess_destruct// Finalize the instance object inside the provided structure(GateProcess_Struct *structP);
Int | GateProcess_getReferenceCount// Get the number of processes with references to this Gate(GateProcess_Handle handle, Error_Block *eb);
Void | GateProcess_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(GateProcess_Params *params);
Functions common to all IGateProvider modules
IArg | GateProcess_enter// Enter this gate(GateProcess_Handle handle);
Void | GateProcess_leave// Leave this gate(GateProcess_Handle handle, IArg key);
Bool | GateProcess_query// Runtime test for a particular gate quality(Int qual);
Functions common to all target instances
 | GateProcess_handle// Convert this instance structure pointer into an instance handle, GateProcess_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, GateProcess_Handle_label// The label associated with this instance object, GateProcess_Handle_name// The name of this instance object, GateProcess_Handle_upCast// unconditionally move one level up the inheritance hierarchy, GateProcess_Object_count// The number of statically-created instance objects, GateProcess_Object_first// The handle of the first dynamically-created instance object, or NULL, GateProcess_Object_get// The handle of the i-th statically-created instance object (array == NULL), GateProcess_Object_heap// The heap used to allocate dynamically-created instance objects, GateProcess_Object_next// The handle of the next dynamically-created instance object, or NULL, GateProcess_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | GateProcess_Module_getMask// Returns the diagnostics mask for this module, GateProcess_Module_hasMask// Test whether this module has a diagnostics mask, GateProcess_Module_heap// The heap from which this module allocates memory, GateProcess_Module_id// Get this module's unique id, GateProcess_Module_setMask// Set the diagnostics mask for this module, GateProcess_Module_startupDone// Test if this module has completed startup
Defines
#define | GateProcess_GETREFCOUNT_FAILED// Status returned by getReferenceCount when there is an error (Int)-1
#define | GateProcess_Q_BLOCKING// Blocking quality (Int)1
#define | GateProcess_Q_PREEMPTING// Preempting quality (Int)2
Typedefs
typedef GateProcess_Object * | GateProcess_Handle// Client reference to an instance object;
typedef struct | GateProcess_Object// Opaque internal representation of an instance object GateProcess_Object;
typedef struct | GateProcess_Params// Instance config-params structure ...
typedef struct | GateProcess_Struct// Opaque client structure large enough to hold an instance object GateProcess_Struct;
Constants
extern const Assert_Id | GateProcess_A_invalidKey// Assert when an invalid key is passed to create;
DETAILS
This module provides services through its proxy IGateProcessSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used.
Here is an example showing how the proxy is bound to an BIOS 6.x specific delegate.
  var GateProcess = xdc.useModule('xdc.runtime.knl.GateProcess');
  GateProcess.Proxy =
      xdc.useModule('ti.sysbios.xdcruntime.GateProcessSupport');
Typically the package containing the delegates have a Settings module that will bind all xdc.runtime.knl proxies. The following example sets up all the xdc.runtime.knl proxies.
  xdc.useModule("ti.sysbios.xdcruntime.Settings");
const GateProcess_GETREFCOUNT_FAILED
index URL

Status returned by getReferenceCount when there is an error

C synopsis target-domain
#define GateProcess_GETREFCOUNT_FAILED (Int)-1
const GateProcess_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define GateProcess_Q_BLOCKING (Int)1
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
const GateProcess_Q_PREEMPTING
index URL

Preempting quality

C synopsis target-domain
#define GateProcess_Q_PREEMPTING (Int)2
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
config GateProcess_A_invalidKey // module-wide
index URL

Assert when an invalid key is passed to create

C synopsis target-domain
extern const Assert_Id GateProcess_A_invalidKey;
GateProcess_query() // module-wide
index URL

Runtime test for a particular gate quality

C synopsis target-domain
Bool GateProcess_query(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId GateProcess_Module_id();
// Get this module's unique id
Bool GateProcess_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle GateProcess_Module_heap();
// The heap from which this module allocates memory
Bool GateProcess_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GateProcess_Module_getMask();
// Returns the diagnostics mask for this module
Void GateProcess_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct GateProcess_Object GateProcess_Object;
// Opaque internal representation of an instance object
typedef GateProcess_Object *GateProcess_Handle;
// Client reference to an instance object
typedef struct GateProcess_Struct GateProcess_Struct;
// Opaque client structure large enough to hold an instance object
GateProcess_Handle GateProcess_handle(GateProcess_Struct *structP);
// Convert this instance structure pointer into an instance handle
GateProcess_Struct *GateProcess_struct(GateProcess_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct GateProcess_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
    Int key;
    // globally unique key for SysV-style semaphore
} GateProcess_Params;
Void GateProcess_Params_init(GateProcess_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config GateProcess_key // instance
index URL

globally unique key for SysV-style semaphore

C synopsis target-domain
struct GateProcess_Params {
     ...
    Int key;
DETAILS
This is a required parameter.
Instance Creation
index URL

C synopsis target-domain
GateProcess_Handle GateProcess_create(const GateProcess_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void GateProcess_construct(GateProcess_Struct *structP, const GateProcess_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function creates a new GateProcess object which is initialized to count. All gates created with the same key reference the same underlying synchronization object and work between processes. For compatibility with the IGateProvider interface the argument key is passes in the params struct rather than as a full argument, but it is required. Therefore calling this function with a NULL params struct is illegal.
Instance Deletion
index URL

C synopsis target-domain
Void GateProcess_delete(GateProcess_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void GateProcess_destruct(GateProcess_Struct *structP);
// Finalize the instance object inside the provided structure
GateProcess_enter() // instance
index URL

Enter this gate

C synopsis target-domain
IArg GateProcess_enter(GateProcess_Handle handle);
ARGUMENTS
handle — handle of a previously-created GateProcess instance object
DETAILS
Each gate provider can implement mutual exclusion using different algorithms; e.g., disabling all scheduling, disabling the scheduling of all threads below a specified "priority level", suspending the caller when the gate has been entered by another thread and re-enabling it when the the other thread leaves the gate. However, in all cases, after this method returns that caller has exclusive access to the data protected by this gate.
A thread may reenter a gate without blocking or failing.
RETURNS
Returns a "key" that is used to leave this gate; this value is used to restore thread preemption to the state that existed just prior to entering this gate.
GateProcess_getReferenceCount() // instance
index URL

Get the number of processes with references to this Gate

C synopsis target-domain
Int GateProcess_getReferenceCount(GateProcess_Handle handle, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created GateProcess instance object
eb — Pointer to Error.Block
RETURNS
Returns the number of processes that possess a reference to this gate, or GETREFCOUNT_FAILED if an error occured.
GateProcess_leave() // instance
index URL

Leave this gate

C synopsis target-domain
Void GateProcess_leave(GateProcess_Handle handle, IArg key);
ARGUMENTS
handle — handle of a previously-created GateProcess instance object
key — the value returned by a matching call to enter
DETAILS
This method is only called by threads that have previously entered this gate via enter. After this method returns, the caller must not access the data structure protected by this gate (unless the caller has entered the gate more than once and other calls to leave remain to balance the number of previous calls to enter).
Instance Convertors
index URL

C synopsis target-domain
IGateProvider_Handle GateProcess_Handle_upCast(GateProcess_Handle handle);
// unconditionally move one level up the inheritance hierarchy
GateProcess_Handle GateProcess_Handle_downCast(IGateProvider_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int GateProcess_Object_count();
// The number of statically-created instance objects
GateProcess_Handle GateProcess_Object_get(GateProcess_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
GateProcess_Handle GateProcess_Object_first();
// The handle of the first dynamically-created instance object, or NULL
GateProcess_Handle GateProcess_Object_next(GateProcess_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle GateProcess_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *GateProcess_Handle_label(GateProcess_Handle handle, Types_Label *buf);
// The label associated with this instance object
String GateProcess_Handle_name(GateProcess_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/GateProcess.xdc
var GateProcess = xdc.useModule('xdc.runtime.knl.GateProcess');
local proxy modules
     GateProcess.Proxy// Proxy that needs to be bound to an OS specific delegate = IGateProcessSupport.Module null
         GateProcess.Proxy.delegate$ = IGateProcessSupport.Module null
         GateProcess.Proxy.abstractInstances$ = false
module-wide constants & types
    const GateProcess.GETREFCOUNT_FAILED// Status returned by getReferenceCount when there is an error = -1;
    const GateProcess.Q_BLOCKING// Blocking quality = 1;
    const GateProcess.Q_PREEMPTING// Preempting quality = 2;
module-wide config parameters
     GateProcess.A_invalidKey// Assert when an invalid key is passed to create = Assert.Desc {
        msg: "A_invalidKey: the key must be set to a non-default value"
    };
     GateProcess.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     GateProcess.queryMeta// Configuration time test for a particular gate quality(Int qual) returns Bool
per-instance config parameters
    var params = new GateProcess.Params// Instance config-params object;
        params.key// globally unique key for SysV-style semaphore = Int -1;
per-instance creation
    var inst = GateProcess.create// Create an instance-object(params);
proxy GateProcess.Proxy
index URL

Proxy that needs to be bound to an OS specific delegate

XDCscript usage meta-domain
GateProcess.Proxy = IGateProcessSupport.Module null
// some delegate module inheriting the IGateProcessSupport interface
    GateProcess.Proxy.delegate$ = IGateProcessSupport.Module null
    // explicit access to the currently bound delegate module
    GateProcess.Proxy.abstractInstances$ = false
    // use indirect runtime function calls if true
const GateProcess.GETREFCOUNT_FAILED
index URL

Status returned by getReferenceCount when there is an error

XDCscript usage meta-domain
const GateProcess.GETREFCOUNT_FAILED = -1;
C SYNOPSIS
GateProcess_GETREFCOUNT_FAILED
const GateProcess.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const GateProcess.Q_BLOCKING = 1;
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
C SYNOPSIS
GateProcess_Q_BLOCKING
const GateProcess.Q_PREEMPTING
index URL

Preempting quality

XDCscript usage meta-domain
const GateProcess.Q_PREEMPTING = 2;
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
C SYNOPSIS
GateProcess_Q_PREEMPTING
config GateProcess.A_invalidKey // module-wide
index URL

Assert when an invalid key is passed to create

XDCscript usage meta-domain
GateProcess.A_invalidKey = Assert.Desc {
    msg: "A_invalidKey: the key must be set to a non-default value"
};
C SYNOPSIS
GateProcess_A_invalidKey
metaonly config GateProcess.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
GateProcess.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.
metaonly GateProcess.queryMeta() // module-wide
index URL

Configuration time test for a particular gate quality

XDCscript usage meta-domain
GateProcess.queryMeta(Int qual) returns Bool
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GateProcess.Params;
// Instance config-params object
    params.key = Int -1;
    // globally unique key for SysV-style semaphore
config GateProcess.key // instance
index URL

globally unique key for SysV-style semaphore

XDCscript usage meta-domain
var params = new GateProcess.Params;
...
params.key = Int -1;
DETAILS
This is a required parameter.
C SYNOPSIS
null
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GateProcess.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GateProcess.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function creates a new GateProcess object which is initialized to count. All gates created with the same key reference the same underlying synchronization object and work between processes. For compatibility with the IGateProvider interface the argument key is passes in the params struct rather than as a full argument, but it is required. Therefore calling this function with a NULL params struct is illegal.
generated on Thu, 08 Nov 2012 02:13:29 GMT


module xdc.runtime.knl.GateProcess

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== GateProcess.xdc ========
    15     */
    16
    17    import xdc.runtime.Assert;
    18    import xdc.runtime.Error;
    19    import xdc.runtime.IGateProvider;
    20    import xdc.runtime.knl.IGateProcessSupport;
    21
    22    /*!
    23     *  ======== GateProcess ========
    24     *  Provides protection of critical sections across processes.
    25     *
    26     *  This module provides services through its proxy
    27     *  IGateProcessSupport interface. It has a module wide config parameter
    28     *  {@link #Proxy} which needs to be bound to an OS specific delegate before
    29     *  this module can be used.
    30     *
    31     *  Here is an example showing how the proxy is bound to an BIOS 6.x specific
    32     *  delegate.
    33     *
    34     *  @p(code)
    35     *  var GateProcess = xdc.useModule('xdc.runtime.knl.GateProcess');
    36     *  GateProcess.Proxy =
    37     *      xdc.useModule('ti.sysbios.xdcruntime.GateProcessSupport');
    38     *  @p
    39     *
    40     *  Typically the package containing the delegates have a Settings module that
    41     *  will bind all {@link xdc.runtime.knl} proxies. The following
    42     *  example sets up all the xdc.runtime.knl proxies.
    43     *
    44     *  @p(code)
    45     *  xdc.useModule("ti.sysbios.xdcruntime.Settings");
    46     *  @p
    47     */
    48    @InstanceInitError      /* because initialization can fail */
    49    @InstanceFinalize       /* have to GateProcess_Proxy_delete(gate) on delete */
    50
    51    module GateProcess inherits IGateProvider
    52    {
    53        /*! Status returned by {@link #getReferenceCount} when there is an error */
    54        const Int GETREFCOUNT_FAILED = -1;
    55
    56        /*! Proxy that needs to be bound to an OS specific delegate. */
    57        proxy Proxy inherits IGateProcessSupport;
    58
    59        /*! Assert when  an invalid key is passed to create */
    60        config Assert.Id A_invalidKey = {
    61            msg: "A_invalidKey: the key must be set to a non-default value"
    62        };
    63
    64    instance:
    65
    66        /*!
    67         *  globally unique key for SysV-style semaphore
    68         *
    69         *  This is a required parameter.
    70         */
    71        config Int key = -1;
    72
    73       /*!
    74        *  ======== create ========
    75        *  Create a GateProcess object.
    76        *
    77        *  This function creates a new `GateProcess` object which is initialized to
    78        *  count.  All gates created with the same key reference the same
    79        *  underlying synchronization object and work between processes.  For
    80        *  compatibility with the IGateProvider interface the argument key is
    81        *  passes in the params struct rather than as a full argument, but it is
    82        *  required.  Therefore calling this function with a `NULL` params struct
    83        *  is illegal.
    84        */
    85        override create();
    86
    87        /*!
    88         *  ======== getReferenceCount ========
    89         *  Get the number of processes with references to this Gate.
    90         *
    91         *  @param(eb)        Pointer to Error.Block
    92         *  @a(returns)       Returns the number of processes that possess a
    93         *                    reference to this gate, or GETREFCOUNT_FAILED if an
    94         *            error occured.
    95         */
    96        Int getReferenceCount(Error.Block *eb);
    97
    98    internal:
    99
   100        struct Instance_State {
   101            Proxy.Handle proxyHandle;
   102        }
   103    }
   104    /*
   105     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   106     */
   107


module xdc.runtime.knl.GateProcessSupportNull
index URL

Empty IGateProcessSupport implementation

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in xdc/runtime/knl/GateProcessSupportNull.xdc
#include <xdc/runtime/knl/GateProcessSupportNull.h>
Functions
Void
GateProcessSupportNull_construct// Initialize a new instance object inside the provided structure(GateProcessSupportNull_Struct *structP, const GateProcessSupportNull_Params *params);
GateProcessSupportNull_Handle
GateProcessSupportNull_create// Allocate and initialize a new instance object and return its handle(const GateProcessSupportNull_Params *params, Error_Block *eb);
Void
GateProcessSupportNull_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(GateProcessSupportNull_Handle *handleP);
Void
GateProcessSupportNull_destruct// Finalize the instance object inside the provided structure(GateProcessSupportNull_Struct *structP);
Void
GateProcessSupportNull_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(GateProcessSupportNull_Params *params);
Functions common to all IGateProvider modules
IArg
GateProcessSupportNull_enter// Enter this gate(GateProcessSupportNull_Handle handle);
Void
GateProcessSupportNull_leave// Leave this gate(GateProcessSupportNull_Handle handle, IArg key);
Bool
GateProcessSupportNull_query// Runtime test for a particular gate quality(Int qual);
Functions common to all IGateProcessSupport modules
Int
GateProcessSupportNull_getReferenceCount// Get the number of processes with references to this Gate(GateProcessSupportNull_Handle handle, Error_Block *err);
Functions common to all target instances
GateProcessSupportNull_handle// Convert this instance structure pointer into an instance handle, GateProcessSupportNull_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, GateProcessSupportNull_Handle_downCast2// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure, GateProcessSupportNull_Handle_downCast3// conditionally move 3 levels down the inheritance hierarchy; NULL upon failure, GateProcessSupportNull_Handle_label// The label associated with this instance object, GateProcessSupportNull_Handle_name// The name of this instance object, GateProcessSupportNull_Handle_upCast// unconditionally move one level up the inheritance hierarchy, GateProcessSupportNull_Handle_upCast2// unconditionally move 2 levels up the inheritance hierarchy, GateProcessSupportNull_Handle_upCast3// unconditionally move 3 levels up the inheritance hierarchy, GateProcessSupportNull_Object_count// The number of statically-created instance objects, GateProcessSupportNull_Object_first// The handle of the first dynamically-created instance object, or NULL, GateProcessSupportNull_Object_get// The handle of the i-th statically-created instance object (array == NULL), GateProcessSupportNull_Object_heap// The heap used to allocate dynamically-created instance objects, GateProcessSupportNull_Object_next// The handle of the next dynamically-created instance object, or NULL, GateProcessSupportNull_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
GateProcessSupportNull_Module_getMask// Returns the diagnostics mask for this module, GateProcessSupportNull_Module_hasMask// Test whether this module has a diagnostics mask, GateProcessSupportNull_Module_heap// The heap from which this module allocates memory, GateProcessSupportNull_Module_id// Get this module's unique id, GateProcessSupportNull_Module_setMask// Set the diagnostics mask for this module, GateProcessSupportNull_Module_startupDone// Test if this module has completed startup
Defines
#define
GateProcessSupportNull_GETREFCOUNT_FAILED// Status returned by getReferenceCount when there is an error (Int)-1
#define
GateProcessSupportNull_Q_BLOCKING// Blocking quality (Int)1
#define
GateProcessSupportNull_Q_PREEMPTING// Preempting quality (Int)2
Typedefs
typedef GateProcessSupportNull_Object *
GateProcessSupportNull_Handle// Client reference to an instance object;
typedef struct
GateProcessSupportNull_Object// Opaque internal representation of an instance object GateProcessSupportNull_Object;
typedef struct
GateProcessSupportNull_Params// Instance config-params structure ...
typedef struct
GateProcessSupportNull_Struct// Opaque client structure large enough to hold an instance object GateProcessSupportNull_Struct;
const GateProcessSupportNull_GETREFCOUNT_FAILED
index URL

Status returned by getReferenceCount when there is an error

C synopsis target-domain
#define GateProcessSupportNull_GETREFCOUNT_FAILED (Int)-1
const GateProcessSupportNull_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define GateProcessSupportNull_Q_BLOCKING (Int)1
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
const GateProcessSupportNull_Q_PREEMPTING
index URL

Preempting quality

C synopsis target-domain
#define GateProcessSupportNull_Q_PREEMPTING (Int)2
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
GateProcessSupportNull_query() // module-wide
index URL

Runtime test for a particular gate quality

C synopsis target-domain
Bool GateProcessSupportNull_query(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId GateProcessSupportNull_Module_id();
// Get this module's unique id
Bool GateProcessSupportNull_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle GateProcessSupportNull_Module_heap();
// The heap from which this module allocates memory
Bool GateProcessSupportNull_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GateProcessSupportNull_Module_getMask();
// Returns the diagnostics mask for this module
Void GateProcessSupportNull_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct GateProcessSupportNull_Object GateProcessSupportNull_Object;
// Opaque internal representation of an instance object
typedef GateProcessSupportNull_Object *GateProcessSupportNull_Handle;
// Client reference to an instance object
typedef struct GateProcessSupportNull_Struct GateProcessSupportNull_Struct;
// Opaque client structure large enough to hold an instance object
GateProcessSupportNull_Handle GateProcessSupportNull_handle(GateProcessSupportNull_Struct *structP);
// Convert this instance structure pointer into an instance handle
GateProcessSupportNull_Struct *GateProcessSupportNull_struct(GateProcessSupportNull_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct GateProcessSupportNull_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
    Int key;
    // globally unique key for SysV-style semaphore
} GateProcessSupportNull_Params;
Void GateProcessSupportNull_Params_init(GateProcessSupportNull_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config GateProcessSupportNull_key // instance
index URL

globally unique key for SysV-style semaphore

C synopsis target-domain
struct GateProcessSupportNull_Params {
     ...
    Int key;
Instance Creation
index URL

C synopsis target-domain
GateProcessSupportNull_Handle GateProcessSupportNull_create(const GateProcessSupportNull_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void GateProcessSupportNull_construct(GateProcessSupportNull_Struct *structP, const GateProcessSupportNull_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function creates a new GateProcess object which is initialized to count. All gates created with the same key reference the same underlying synchronization object and work between processes. The underlying synchronization object should be automatically deleted when all references to it have been deleted, and the reference count should An implementation for a platform on which this is technically impossible (e.g. an operating system that does not support multiple processes) may provide a 'toy' implemenation with behavior matching that of IGateProcessSupport.
Instance Deletion
index URL

C synopsis target-domain
Void GateProcessSupportNull_delete(GateProcessSupportNull_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void GateProcessSupportNull_destruct(GateProcessSupportNull_Struct *structP);
// Finalize the instance object inside the provided structure
GateProcessSupportNull_enter() // instance
index URL

Enter this gate

C synopsis target-domain
IArg GateProcessSupportNull_enter(GateProcessSupportNull_Handle handle);
ARGUMENTS
handle — handle of a previously-created GateProcessSupportNull instance object
DETAILS
Each gate provider can implement mutual exclusion using different algorithms; e.g., disabling all scheduling, disabling the scheduling of all threads below a specified "priority level", suspending the caller when the gate has been entered by another thread and re-enabling it when the the other thread leaves the gate. However, in all cases, after this method returns that caller has exclusive access to the data protected by this gate.
A thread may reenter a gate without blocking or failing.
RETURNS
Returns a "key" that is used to leave this gate; this value is used to restore thread preemption to the state that existed just prior to entering this gate.
GateProcessSupportNull_getReferenceCount() // instance
index URL

Get the number of processes with references to this Gate

C synopsis target-domain
Int GateProcessSupportNull_getReferenceCount(GateProcessSupportNull_Handle handle, Error_Block *err);
ARGUMENTS
handle — handle of a previously-created GateProcessSupportNull instance object
err — Pointer to Error.Block
RETURNS
Returns the number of processes that possess a reference to this gate, or GETREFCOUNT_FAILED if an error occured. A 'toy' implementation should always return 0.
GateProcessSupportNull_leave() // instance
index URL

Leave this gate

C synopsis target-domain
Void GateProcessSupportNull_leave(GateProcessSupportNull_Handle handle, IArg key);
ARGUMENTS
handle — handle of a previously-created GateProcessSupportNull instance object
key — the value returned by a matching call to enter
DETAILS
This method is only called by threads that have previously entered this gate via enter. After this method returns, the caller must not access the data structure protected by this gate (unless the caller has entered the gate more than once and other calls to leave remain to balance the number of previous calls to enter).
Instance Convertors
index URL

C synopsis target-domain
IGateProcessSupport_Handle GateProcessSupportNull_Handle_upCast(GateProcessSupportNull_Handle handle);
// unconditionally move one level up the inheritance hierarchy
GateProcessSupportNull_Handle GateProcessSupportNull_Handle_downCast(IGateProcessSupport_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
IGateThreadSupport_Handle GateProcessSupportNull_Handle_upCast2(GateProcessSupportNull_Handle handle);
// unconditionally move 2 levels up the inheritance hierarchy
GateProcessSupportNull_Handle GateProcessSupportNull_Handle_downCast2(IGateThreadSupport_Handle handle);
// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure
IGateProvider_Handle GateProcessSupportNull_Handle_upCast3(GateProcessSupportNull_Handle handle);
// unconditionally move 3 levels up the inheritance hierarchy
GateProcessSupportNull_Handle GateProcessSupportNull_Handle_downCast3(IGateProvider_Handle handle);
// conditionally move 3 levels down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int GateProcessSupportNull_Object_count();
// The number of statically-created instance objects
GateProcessSupportNull_Handle GateProcessSupportNull_Object_get(GateProcessSupportNull_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
GateProcessSupportNull_Handle GateProcessSupportNull_Object_first();
// The handle of the first dynamically-created instance object, or NULL
GateProcessSupportNull_Handle GateProcessSupportNull_Object_next(GateProcessSupportNull_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle GateProcessSupportNull_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *GateProcessSupportNull_Handle_label(GateProcessSupportNull_Handle handle, Types_Label *buf);
// The label associated with this instance object
String GateProcessSupportNull_Handle_name(GateProcessSupportNull_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/GateProcessSupportNull.xdc
var GateProcessSupportNull = xdc.useModule('xdc.runtime.knl.GateProcessSupportNull');
module-wide constants & types
    const GateProcessSupportNull.GETREFCOUNT_FAILED// Status returned by getReferenceCount when there is an error = -1;
    const GateProcessSupportNull.Q_BLOCKING// Blocking quality = 1;
    const GateProcessSupportNull.Q_PREEMPTING// Preempting quality = 2;
module-wide config parameters
     GateProcessSupportNull.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     GateProcessSupportNull.queryMeta// Configuration time test for a particular gate quality(Int qual) returns Bool
per-instance config parameters
    var params = new GateProcessSupportNull.Params// Instance config-params object;
        params.key// globally unique key for SysV-style semaphore = Int -1;
per-instance creation
    var inst = GateProcessSupportNull.create// Create an instance-object(params);
const GateProcessSupportNull.GETREFCOUNT_FAILED
index URL

Status returned by getReferenceCount when there is an error

XDCscript usage meta-domain
const GateProcessSupportNull.GETREFCOUNT_FAILED = -1;
C SYNOPSIS
GateProcessSupportNull_GETREFCOUNT_FAILED
const GateProcessSupportNull.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const GateProcessSupportNull.Q_BLOCKING = 1;
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
C SYNOPSIS
GateProcessSupportNull_Q_BLOCKING
const GateProcessSupportNull.Q_PREEMPTING
index URL

Preempting quality

XDCscript usage meta-domain
const GateProcessSupportNull.Q_PREEMPTING = 2;
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
C SYNOPSIS
GateProcessSupportNull_Q_PREEMPTING
metaonly config GateProcessSupportNull.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
GateProcessSupportNull.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.
metaonly GateProcessSupportNull.queryMeta() // module-wide
index URL

Configuration time test for a particular gate quality

XDCscript usage meta-domain
GateProcessSupportNull.queryMeta(Int qual) returns Bool
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GateProcessSupportNull.Params;
// Instance config-params object
    params.key = Int -1;
    // globally unique key for SysV-style semaphore
config GateProcessSupportNull.key // instance
index URL

globally unique key for SysV-style semaphore

XDCscript usage meta-domain
var params = new GateProcessSupportNull.Params;
...
params.key = Int -1;
C SYNOPSIS
null
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GateProcessSupportNull.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GateProcessSupportNull.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function creates a new GateProcess object which is initialized to count. All gates created with the same key reference the same underlying synchronization object and work between processes. The underlying synchronization object should be automatically deleted when all references to it have been deleted, and the reference count should An implementation for a platform on which this is technically impossible (e.g. an operating system that does not support multiple processes) may provide a 'toy' implemenation with behavior matching that of IGateProcessSupport.
generated on Thu, 08 Nov 2012 02:13:29 GMT


module xdc.runtime.knl.GateProcessSupportNull

     1    /*!
     2     *  ======== GateProcessSupportNull.xdc ========
     3     *  Empty IGateProcessSupport implementation
     4     */
     5
     6    module GateProcessSupportNull inherits IGateProcessSupport
     7    {
     8    }
     9    /*
    10     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    11     */
    12


module xdc.runtime.knl.GateThread
index URL

Provides protection of critical sections across threads

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module provides services through its proxy IGateThreadSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/knl/GateThread.xdc
#include <xdc/runtime/knl/GateThread.h>
Functions
Void | GateThread_construct// Initialize a new instance object inside the provided structure(GateThread_Struct *structP, const GateThread_Params *params, Error_Block *eb);
GateThread_Handle | GateThread_create// Allocate and initialize a new instance object and return its handle(const GateThread_Params *params, Error_Block *eb);
Void | GateThread_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(GateThread_Handle *handleP);
Void | GateThread_destruct// Finalize the instance object inside the provided structure(GateThread_Struct *structP);
Void | GateThread_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(GateThread_Params *params);
Functions common to all IGateProvider modules
IArg | GateThread_enter// Enter this gate(GateThread_Handle handle);
Void | GateThread_leave// Leave this gate(GateThread_Handle handle, IArg key);
Bool | GateThread_query// Runtime test for a particular gate quality(Int qual);
Functions common to all target instances
 | GateThread_handle// Convert this instance structure pointer into an instance handle, GateThread_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, GateThread_Handle_label// The label associated with this instance object, GateThread_Handle_name// The name of this instance object, GateThread_Handle_upCast// unconditionally move one level up the inheritance hierarchy, GateThread_Object_count// The number of statically-created instance objects, GateThread_Object_first// The handle of the first dynamically-created instance object, or NULL, GateThread_Object_get// The handle of the i-th statically-created instance object (array == NULL), GateThread_Object_heap// The heap used to allocate dynamically-created instance objects, GateThread_Object_next// The handle of the next dynamically-created instance object, or NULL, GateThread_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | GateThread_Module_getMask// Returns the diagnostics mask for this module, GateThread_Module_hasMask// Test whether this module has a diagnostics mask, GateThread_Module_heap// The heap from which this module allocates memory, GateThread_Module_id// Get this module's unique id, GateThread_Module_setMask// Set the diagnostics mask for this module, GateThread_Module_startupDone// Test if this module has completed startup
Defines
#define | GateThread_Q_BLOCKING// Blocking quality (Int)1
#define | GateThread_Q_PREEMPTING// Preempting quality (Int)2
Typedefs
typedef GateThread_Object * | GateThread_Handle// Client reference to an instance object;
typedef struct | GateThread_Object// Opaque internal representation of an instance object GateThread_Object;
typedef struct | GateThread_Params// Instance config-params structure ...
typedef struct | GateThread_Struct// Opaque client structure large enough to hold an instance object GateThread_Struct;
DETAILS
This module provides services through its proxy IGateThreadSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used.
Here is an example showing how the proxy is bound to an BIOS 6.x specific delegate.
  var GateThread = xdc.useModule('xdc.runtime.knl.GateThread');
  GateThread.Proxy =
      xdc.useModule('ti.sysbios.xdcruntime.GateThreadSupport');
Typically the package containing the delegates have a Settings module that will bind all xdc.runtime.knl proxies. The following example sets up all the xdc.runtime.knl proxies.
  xdc.useModule("ti.sysbios.xdcruntime.Settings");
const GateThread_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define GateThread_Q_BLOCKING (Int)1
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
const GateThread_Q_PREEMPTING
index URL

Preempting quality

C synopsis target-domain
#define GateThread_Q_PREEMPTING (Int)2
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
GateThread_query() // module-wide
index URL

Runtime test for a particular gate quality

C synopsis target-domain
Bool GateThread_query(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId GateThread_Module_id();
// Get this module's unique id
Bool GateThread_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle GateThread_Module_heap();
// The heap from which this module allocates memory
Bool GateThread_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GateThread_Module_getMask();
// Returns the diagnostics mask for this module
Void GateThread_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct GateThread_Object GateThread_Object;
// Opaque internal representation of an instance object
typedef GateThread_Object *GateThread_Handle;
// Client reference to an instance object
typedef struct GateThread_Struct GateThread_Struct;
// Opaque client structure large enough to hold an instance object
GateThread_Handle GateThread_handle(GateThread_Struct *structP);
// Convert this instance structure pointer into an instance handle
GateThread_Struct *GateThread_struct(GateThread_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct GateThread_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} GateThread_Params;
Void GateThread_Params_init(GateThread_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
GateThread_Handle GateThread_create(const GateThread_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void GateThread_construct(GateThread_Struct *structP, const GateThread_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
Instance Deletion
index URL

C synopsis target-domain
Void GateThread_delete(GateThread_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void GateThread_destruct(GateThread_Struct *structP);
// Finalize the instance object inside the provided structure
GateThread_enter() // instance
index URL

Enter this gate

C synopsis target-domain
IArg GateThread_enter(GateThread_Handle handle);
ARGUMENTS
handle — handle of a previously-created GateThread instance object
DETAILS
Each gate provider can implement mutual exclusion using different algorithms; e.g., disabling all scheduling, disabling the scheduling of all threads below a specified "priority level", suspending the caller when the gate has been entered by another thread and re-enabling it when the the other thread leaves the gate. However, in all cases, after this method returns that caller has exclusive access to the data protected by this gate.
A thread may reenter a gate without blocking or failing.
RETURNS
Returns a "key" that is used to leave this gate; this value is used to restore thread preemption to the state that existed just prior to entering this gate.
GateThread_leave() // instance
index URL

Leave this gate

C synopsis target-domain
Void GateThread_leave(GateThread_Handle handle, IArg key);
ARGUMENTS
handle — handle of a previously-created GateThread instance object
key — the value returned by a matching call to enter
DETAILS
This method is only called by threads that have previously entered this gate via enter. After this method returns, the caller must not access the data structure protected by this gate (unless the caller has entered the gate more than once and other calls to leave remain to balance the number of previous calls to enter).
Instance Convertors
index URL

C synopsis target-domain
IGateProvider_Handle GateThread_Handle_upCast(GateThread_Handle handle);
// unconditionally move one level up the inheritance hierarchy
GateThread_Handle GateThread_Handle_downCast(IGateProvider_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int GateThread_Object_count();
// The number of statically-created instance objects
GateThread_Handle GateThread_Object_get(GateThread_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
GateThread_Handle GateThread_Object_first();
// The handle of the first dynamically-created instance object, or NULL
GateThread_Handle GateThread_Object_next(GateThread_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle GateThread_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *GateThread_Handle_label(GateThread_Handle handle, Types_Label *buf);
// The label associated with this instance object
String GateThread_Handle_name(GateThread_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/GateThread.xdc
var GateThread = xdc.useModule('xdc.runtime.knl.GateThread');
local proxy modules
     GateThread.Proxy// Proxy that needs to be bound to an OS specific delegate = IGateThreadSupport.Module null
         GateThread.Proxy.delegate$ = IGateThreadSupport.Module null
         GateThread.Proxy.abstractInstances$ = false
module-wide constants & types
    const GateThread.Q_BLOCKING// Blocking quality = 1;
    const GateThread.Q_PREEMPTING// Preempting quality = 2;
module-wide config parameters
     GateThread.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     GateThread.queryMeta// Configuration time test for a particular gate quality(Int qual) returns Bool
per-instance config parameters
    var params = new GateThread.Params// Instance config-params object;
per-instance creation
    var inst = GateThread.create// Create an instance-object(params);
proxy GateThread.Proxy
index URL

Proxy that needs to be bound to an OS specific delegate

XDCscript usage meta-domain
GateThread.Proxy = IGateThreadSupport.Module null
// some delegate module inheriting the IGateThreadSupport interface
    GateThread.Proxy.delegate$ = IGateThreadSupport.Module null
    // explicit access to the currently bound delegate module
    GateThread.Proxy.abstractInstances$ = false
    // use indirect runtime function calls if true
const GateThread.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const GateThread.Q_BLOCKING = 1;
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
C SYNOPSIS
GateThread_Q_BLOCKING
const GateThread.Q_PREEMPTING
index URL

Preempting quality

XDCscript usage meta-domain
const GateThread.Q_PREEMPTING = 2;
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
C SYNOPSIS
GateThread_Q_PREEMPTING
metaonly config GateThread.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
GateThread.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.
metaonly GateThread.queryMeta() // module-wide
index URL

Configuration time test for a particular gate quality

XDCscript usage meta-domain
GateThread.queryMeta(Int qual) returns Bool
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GateThread.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GateThread.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GateThread.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
generated on Thu, 08 Nov 2012 02:13:29 GMT


module xdc.runtime.knl.GateThread

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== GateThread.xdc ========
    15     */
    16
    17    import xdc.runtime.IGateProvider;
    18    import xdc.runtime.knl.IGateThreadSupport;
    19
    20    /*!
    21     *  ======== GateThread ========
    22     *  Provides protection of critical sections across threads.
    23     *
    24     *  This module provides services through its proxy
    25     *  IGateThreadSupport interface. It has a module wide config parameter
    26     *  {@link #Proxy} which needs to be bound to an OS specific delegate before
    27     *  this module can be used.
    28     *
    29     *  Here is an example showing how the proxy is bound to an BIOS 6.x specific
    30     *  delegate.
    31     *
    32     *  @p(code)
    33     *  var GateThread = xdc.useModule('xdc.runtime.knl.GateThread');
    34     *  GateThread.Proxy =
    35     *      xdc.useModule('ti.sysbios.xdcruntime.GateThreadSupport');
    36     *  @p
    37     *
    38     *  Typically the package containing the delegates have a Settings module that
    39     *  will bind all {@link xdc.runtime.knl} proxies. The following
    40     *  example sets up all the xdc.runtime.knl proxies.
    41     *
    42     *  @p(code)
    43     *  xdc.useModule("ti.sysbios.xdcruntime.Settings");
    44     *  @p
    45     */
    46
    47    @InstanceInitError      /* because initialization can fail */
    48    @InstanceFinalize       /* have to Gate_Proxy_delete(sem) on delete */
    49
    50    module GateThread inherits IGateProvider
    51    {
    52        /*! Proxy that needs to be bound to an OS specific delegate. */
    53        proxy Proxy inherits IGateThreadSupport;
    54
    55    internal:
    56
    57        struct Instance_State {
    58            Proxy.Handle proxyHandle;
    59        }
    60
    61    }
    62    /*
    63     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    64     */
    65


module xdc.runtime.knl.GateThreadSupportNull
index URL

Empty IGateProcessSupport implementation

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in xdc/runtime/knl/GateThreadSupportNull.xdc
#include <xdc/runtime/knl/GateThreadSupportNull.h>
Functions
Void
GateThreadSupportNull_construct// Initialize a new instance object inside the provided structure(GateThreadSupportNull_Struct *structP, const GateThreadSupportNull_Params *params);
GateThreadSupportNull_Handle
GateThreadSupportNull_create// Allocate and initialize a new instance object and return its handle(const GateThreadSupportNull_Params *params, Error_Block *eb);
Void
GateThreadSupportNull_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(GateThreadSupportNull_Handle *handleP);
Void
GateThreadSupportNull_destruct// Finalize the instance object inside the provided structure(GateThreadSupportNull_Struct *structP);
Void
GateThreadSupportNull_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(GateThreadSupportNull_Params *params);
Functions common to all IGateProvider modules
IArg
GateThreadSupportNull_enter// Enter this gate(GateThreadSupportNull_Handle handle);
Void
GateThreadSupportNull_leave// Leave this gate(GateThreadSupportNull_Handle handle, IArg key);
Bool
GateThreadSupportNull_query// Runtime test for a particular gate quality(Int qual);
Functions common to all target instances
GateThreadSupportNull_handle// Convert this instance structure pointer into an instance handle, GateThreadSupportNull_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, GateThreadSupportNull_Handle_downCast2// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure, GateThreadSupportNull_Handle_label// The label associated with this instance object, GateThreadSupportNull_Handle_name// The name of this instance object, GateThreadSupportNull_Handle_upCast// unconditionally move one level up the inheritance hierarchy, GateThreadSupportNull_Handle_upCast2// unconditionally move 2 levels up the inheritance hierarchy, GateThreadSupportNull_Object_count// The number of statically-created instance objects, GateThreadSupportNull_Object_first// The handle of the first dynamically-created instance object, or NULL, GateThreadSupportNull_Object_get// The handle of the i-th statically-created instance object (array == NULL), GateThreadSupportNull_Object_heap// The heap used to allocate dynamically-created instance objects, GateThreadSupportNull_Object_next// The handle of the next dynamically-created instance object, or NULL, GateThreadSupportNull_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
GateThreadSupportNull_Module_getMask// Returns the diagnostics mask for this module, GateThreadSupportNull_Module_hasMask// Test whether this module has a diagnostics mask, GateThreadSupportNull_Module_heap// The heap from which this module allocates memory, GateThreadSupportNull_Module_id// Get this module's unique id, GateThreadSupportNull_Module_setMask// Set the diagnostics mask for this module, GateThreadSupportNull_Module_startupDone// Test if this module has completed startup
Defines
#define
GateThreadSupportNull_Q_BLOCKING// Blocking quality (Int)1
#define
GateThreadSupportNull_Q_PREEMPTING// Preempting quality (Int)2
Typedefs
typedef GateThreadSupportNull_Object *
GateThreadSupportNull_Handle// Client reference to an instance object;
typedef struct
GateThreadSupportNull_Object// Opaque internal representation of an instance object GateThreadSupportNull_Object;
typedef struct
GateThreadSupportNull_Params// Instance config-params structure ...
typedef struct
GateThreadSupportNull_Struct// Opaque client structure large enough to hold an instance object GateThreadSupportNull_Struct;
const GateThreadSupportNull_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define GateThreadSupportNull_Q_BLOCKING (Int)1
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
const GateThreadSupportNull_Q_PREEMPTING
index URL

Preempting quality

C synopsis target-domain
#define GateThreadSupportNull_Q_PREEMPTING (Int)2
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
GateThreadSupportNull_query() // module-wide
index URL

Runtime test for a particular gate quality

C synopsis target-domain
Bool GateThreadSupportNull_query(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId GateThreadSupportNull_Module_id();
// Get this module's unique id
Bool GateThreadSupportNull_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle GateThreadSupportNull_Module_heap();
// The heap from which this module allocates memory
Bool GateThreadSupportNull_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GateThreadSupportNull_Module_getMask();
// Returns the diagnostics mask for this module
Void GateThreadSupportNull_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct GateThreadSupportNull_Object GateThreadSupportNull_Object;
// Opaque internal representation of an instance object
typedef GateThreadSupportNull_Object *GateThreadSupportNull_Handle;
// Client reference to an instance object
typedef struct GateThreadSupportNull_Struct GateThreadSupportNull_Struct;
// Opaque client structure large enough to hold an instance object
GateThreadSupportNull_Handle GateThreadSupportNull_handle(GateThreadSupportNull_Struct *structP);
// Convert this instance structure pointer into an instance handle
GateThreadSupportNull_Struct *GateThreadSupportNull_struct(GateThreadSupportNull_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct GateThreadSupportNull_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} GateThreadSupportNull_Params;
Void GateThreadSupportNull_Params_init(GateThreadSupportNull_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
GateThreadSupportNull_Handle GateThreadSupportNull_create(const GateThreadSupportNull_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void GateThreadSupportNull_construct(GateThreadSupportNull_Struct *structP, const GateThreadSupportNull_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
Instance Deletion
index URL

C synopsis target-domain
Void GateThreadSupportNull_delete(GateThreadSupportNull_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void GateThreadSupportNull_destruct(GateThreadSupportNull_Struct *structP);
// Finalize the instance object inside the provided structure
GateThreadSupportNull_enter() // instance
index URL

Enter this gate

C synopsis target-domain
IArg GateThreadSupportNull_enter(GateThreadSupportNull_Handle handle);
ARGUMENTS
handle — handle of a previously-created GateThreadSupportNull instance object
DETAILS
Each gate provider can implement mutual exclusion using different algorithms; e.g., disabling all scheduling, disabling the scheduling of all threads below a specified "priority level", suspending the caller when the gate has been entered by another thread and re-enabling it when the the other thread leaves the gate. However, in all cases, after this method returns that caller has exclusive access to the data protected by this gate.
A thread may reenter a gate without blocking or failing.
RETURNS
Returns a "key" that is used to leave this gate; this value is used to restore thread preemption to the state that existed just prior to entering this gate.
GateThreadSupportNull_leave() // instance
index URL

Leave this gate

C synopsis target-domain
Void GateThreadSupportNull_leave(GateThreadSupportNull_Handle handle, IArg key);
ARGUMENTS
handle — handle of a previously-created GateThreadSupportNull instance object
key — the value returned by a matching call to enter
DETAILS
This method is only called by threads that have previously entered this gate via enter. After this method returns, the caller must not access the data structure protected by this gate (unless the caller has entered the gate more than once and other calls to leave remain to balance the number of previous calls to enter).
Instance Convertors
index URL

C synopsis target-domain
IGateThreadSupport_Handle GateThreadSupportNull_Handle_upCast(GateThreadSupportNull_Handle handle);
// unconditionally move one level up the inheritance hierarchy
GateThreadSupportNull_Handle GateThreadSupportNull_Handle_downCast(IGateThreadSupport_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
IGateProvider_Handle GateThreadSupportNull_Handle_upCast2(GateThreadSupportNull_Handle handle);
// unconditionally move 2 levels up the inheritance hierarchy
GateThreadSupportNull_Handle GateThreadSupportNull_Handle_downCast2(IGateProvider_Handle handle);
// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int GateThreadSupportNull_Object_count();
// The number of statically-created instance objects
GateThreadSupportNull_Handle GateThreadSupportNull_Object_get(GateThreadSupportNull_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
GateThreadSupportNull_Handle GateThreadSupportNull_Object_first();
// The handle of the first dynamically-created instance object, or NULL
GateThreadSupportNull_Handle GateThreadSupportNull_Object_next(GateThreadSupportNull_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle GateThreadSupportNull_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *GateThreadSupportNull_Handle_label(GateThreadSupportNull_Handle handle, Types_Label *buf);
// The label associated with this instance object
String GateThreadSupportNull_Handle_name(GateThreadSupportNull_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/GateThreadSupportNull.xdc
var GateThreadSupportNull = xdc.useModule('xdc.runtime.knl.GateThreadSupportNull');
module-wide constants & types
    const GateThreadSupportNull.Q_BLOCKING// Blocking quality = 1;
    const GateThreadSupportNull.Q_PREEMPTING// Preempting quality = 2;
module-wide config parameters
     GateThreadSupportNull.common$// Common module configuration parameters = Types.Common$ undefined;
module-wide functions
     GateThreadSupportNull.queryMeta// Configuration time test for a particular gate quality(Int qual) returns Bool
per-instance config parameters
    var params = new GateThreadSupportNull.Params// Instance config-params object;
per-instance creation
    var inst = GateThreadSupportNull.create// Create an instance-object(params);
const GateThreadSupportNull.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const GateThreadSupportNull.Q_BLOCKING = 1;
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
C SYNOPSIS
GateThreadSupportNull_Q_BLOCKING
const GateThreadSupportNull.Q_PREEMPTING
index URL

Preempting quality

XDCscript usage meta-domain
const GateThreadSupportNull.Q_PREEMPTING = 2;
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
C SYNOPSIS
GateThreadSupportNull_Q_PREEMPTING
metaonly config GateThreadSupportNull.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
GateThreadSupportNull.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.
metaonly GateThreadSupportNull.queryMeta() // module-wide
index URL

Configuration time test for a particular gate quality

XDCscript usage meta-domain
GateThreadSupportNull.queryMeta(Int qual) returns Bool
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GateThreadSupportNull.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GateThreadSupportNull.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GateThreadSupportNull.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
generated on Thu, 08 Nov 2012 02:13:29 GMT


module xdc.runtime.knl.GateThreadSupportNull

     1    /*!
     2     *  ======== GateThreadSupportNull.xdc ========
     3     *  Empty IGateProcessSupport implementation
     4     */
     5
     6    module GateThreadSupportNull inherits IGateThreadSupport
     7    {
     8    }
     9    /*
    10     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    11     */
    12


interface xdc.runtime.knl.ICacheSupport
index URL

Interface for OS specific back-end

The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.Cache module.
XDCspec summary sourced in xdc/runtime/knl/ICacheSupport.xdc
interface ICacheSupport { ...
// inherits xdc.runtime.IModule
XDCspec declarations sourced in xdc/runtime/knl/ICacheSupport.xdc
package xdc.runtime.knl;
interface ICacheSupport {
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    Bool inv// Invalidates range of memory(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
    Bool wait// Wait for a previous cache operation to complete(Error.Block *eb);
    Bool wb// Writes a range of memory from all cache(s)(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
    Bool wbInv// Writes back and invalidates range fo memory(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
}
metaonly config ICacheSupport.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/knl/ICacheSupport.xdc
metaonly config Types.Common$ common$;
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.
ICacheSupport.inv() // module-wide
index URL

Invalidates range of memory

XDCspec declarations sourced in xdc/runtime/knl/ICacheSupport.xdc
Bool inv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
ARGUMENTS
blockPtr — start address of range to be invalidated
byteCnt — number of bytes to be invalidated
wait — wait until the operation is completed
eb — error block
DETAILS
Invalidate the range of memory within the specified starting address and byte count. The range of addresses operated on gets quantized to whole cache lines in each cache. All lines in range are invalidated for all the 'type' caches.
RETURNS
true for success; false for error.
ICacheSupport.wait() // module-wide
index URL

Wait for a previous cache operation to complete

XDCspec declarations sourced in xdc/runtime/knl/ICacheSupport.xdc
Bool wait(Error.Block *eb);
DETAILS
Wait for the cache wb/wbInv/inv operation to complete. A cache operation is not truly complete until it has worked its way through all buffering and all memory writes have landed in the source memory.
RETURNS
true for success; false for error.
ICacheSupport.wb() // module-wide
index URL

Writes a range of memory from all cache(s)

XDCspec declarations sourced in xdc/runtime/knl/ICacheSupport.xdc
Bool wb(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
ARGUMENTS
blockPtr — start address of range to be invalidated
byteCnt — number of bytes to be invalidated
wait — wait until the operation is completed
eb — error block
DETAILS
Writes the range of memory within the specified starting address and byte count. The range of addresses operated on gets quantized to whole cache lines in each cache. All lines within the range are left valid in the 'type' caches and the data within the range will be written to the source memory.
RETURNS
true for success; false for error.
ICacheSupport.wbInv() // module-wide
index URL

Writes back and invalidates range fo memory

XDCspec declarations sourced in xdc/runtime/knl/ICacheSupport.xdc
Bool wbInv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
ARGUMENTS
blockPtr — start address of range to be invalidated
byteCnt — number of bytes to be invalidated
wait — wait until the operation is completed
eb — error block
DETAILS
Writes and invalidates the range of memory within the specified starting address and byte count. The range of addresses operated on gets quantized to whole cache lines in each cache. All lines within the range are written to the source memory and then invalidated for all 'type' caches.
RETURNS
true for success; false for error.
generated on Thu, 08 Nov 2012 02:13:29 GMT


interface xdc.runtime.knl.ICacheSupport

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== ICacheSupport.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18
    19    /*!
    20     *  ======== ICacheSupport ========
    21     *  Interface for OS specific back-end.
    22     *
    23     *  The {@link xdc.runtime.knl} package contains modules that provide typical
    24     *  OS services. These xdc.runtime.knl modules require proxies to be
    25     *  bound to an OS specific delegate. This specifies the interface to
    26     *  be implemented by the OS specific delegate for
    27     *  {@link xdc.runtime.knl#Cache} module.
    28     *
    29     */
    30
    31    interface ICacheSupport
    32    {
    33        /*!
    34         *  ======== inv ========
    35         *  Invalidates range of memory.
    36         *
    37         *  Invalidate the range of memory within the specified starting
    38         *  address and byte count.  The range of addresses operated on
    39         *  gets quantized to whole cache lines in each cache.  All lines
    40         *  in range are invalidated for all the 'type' caches.
    41         *
    42         *  @param(blockPtr) start address of range to be invalidated
    43         *  @param(byteCnt)  number of bytes to be invalidated
    44         *  @param(wait)     wait until the operation is completed
    45         *  @param(eb)       error block
    46         *  @a(returns)  true for success; false for error.
    47         */
    48        Bool inv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
    49
    50        /*!
    51         *  ======== wb ========
    52         *  Writes a range of memory from all cache(s)
    53         *
    54         *  Writes the range of memory within the specified starting
    55         *  address and byte count.  The range of addresses operated on
    56         *  gets quantized to whole cache lines in each cache.  All lines
    57         *  within the range are left valid in the 'type' caches and the data
    58         *  within the range will be written      to the source memory.
    59         *
    60         *  @param(blockPtr) start address of range to be invalidated
    61         *  @param(byteCnt)  number of bytes to be invalidated
    62         *  @param(wait)     wait until the operation is completed
    63         *  @param(eb)       error block
    64         *  @a(returns)  true for success; false for error.
    65         */
    66        Bool wb(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
    67
    68        /*!
    69         *  ======== wbInv ========
    70         *  Writes back and invalidates range fo memory.
    71         *
    72         *  Writes and invalidates the range of memory within the
    73         *  specified starting address and byte count.  The range of
    74         *  addresses operated on gets quantized to whole cache lines in
    75         *  each cache.  All lines within the range are written      to the
    76         *  source memory and then invalidated for all 'type' caches.
    77         *
    78         *  @param(blockPtr) start address of range to be invalidated
    79         *  @param(byteCnt)  number of bytes to be invalidated
    80         *  @param(wait)     wait until the operation is completed
    81         *  @param(eb)       error block
    82         *  @a(returns)  true for success; false for error.
    83         */
    84        Bool wbInv(Ptr blockPtr, SizeT byteCnt, Bool wait, Error.Block *eb);
    85
    86        /*!
    87         *  ======== wait ========
    88         *  Wait for a previous cache operation to complete
    89         *
    90         *  Wait for the cache wb/wbInv/inv operation to complete.  A cache
    91         *  operation is not truly complete until it has worked its way
    92         *  through all buffering and all memory writes have landed in the
    93         *  source memory.
    94         *
    95         *  @a(returns)  true for success; false for error.
    96         */
    97        Bool wait(Error.Block *eb);
    98
    99    }
   100    /*
   101     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   102     */
   103


interface xdc.runtime.knl.IGateProcessSupport
index URL

Interface for OS specific back-end

  • C synopsis
  • Individual elements
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.GateProcess module. [ more ... ]
XDCspec summary sourced in xdc/runtime/knl/IGateProcessSupport.xdc
interface IGateProcessSupport { ...
// inherits xdc.runtime.knl.IGateThreadSupport
    // inherits xdc.runtime.IGateProvider
        // inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
package xdc.runtime.knl;
interface IGateProcessSupport inherits IGateThreadSupport {
module-wide constants & types
    const Int GETREFCOUNT_FAILED// Status returned by getReferenceCount when there is an error = -1;
    const Int Q_BLOCKING// Blocking quality = 1;
    const Int Q_PREEMPTING// Preempting quality = 2;
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    Bool query// Runtime test for a particular gate quality(Int qual);
    metaonly Bool queryMeta// Configuration time test for a particular gate quality(Int qual);
instance:
per-instance config parameters
    config Int key// globally unique key for SysV-style semaphore = -1;
per-instance creation
     create// Create an instance-object();
per-instance functions
    IArg enter// Enter this gate();
    Int getReferenceCount// Get the number of processes with references to this Gate(Error.Block *err);
    Void leave// Leave this gate(IArg key);
}
DETAILS
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.GateProcess module.
The implementation of IGateThreadSupport should try to implement a gate that supports priority inversion.
const IGateProcessSupport.GETREFCOUNT_FAILED
index URL

Status returned by getReferenceCount when there is an error

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
const Int GETREFCOUNT_FAILED = -1;
const IGateProcessSupport.Q_BLOCKING
index URL

Blocking quality

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
const Int Q_BLOCKING = 1;
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
const IGateProcessSupport.Q_PREEMPTING
index URL

Preempting quality

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
const Int Q_PREEMPTING = 2;
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
metaonly config IGateProcessSupport.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
metaonly config Types.Common$ common$;
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.
IGateProcessSupport.query() // module-wide
index URL

Runtime test for a particular gate quality

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
Bool query(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
metaonly IGateProcessSupport.queryMeta() // module-wide
index URL

Configuration time test for a particular gate quality

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
metaonly Bool queryMeta(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
config IGateProcessSupport.key // instance
index URL

globally unique key for SysV-style semaphore

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
config Int key = -1;
Instance Creation
index URL

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
create();
// Create an instance-object
DETAILS
This function creates a new GateProcess object which is initialized to count. All gates created with the same key reference the same underlying synchronization object and work between processes. The underlying synchronization object should be automatically deleted when all references to it have been deleted, and the reference count should An implementation for a platform on which this is technically impossible (e.g. an operating system that does not support multiple processes) may provide a 'toy' implemenation with behavior matching that of IGateProcessSupport.
IGateProcessSupport.enter() // instance
index URL

Enter this gate

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
IArg enter();
DETAILS
Each gate provider can implement mutual exclusion using different algorithms; e.g., disabling all scheduling, disabling the scheduling of all threads below a specified "priority level", suspending the caller when the gate has been entered by another thread and re-enabling it when the the other thread leaves the gate. However, in all cases, after this method returns that caller has exclusive access to the data protected by this gate.
A thread may reenter a gate without blocking or failing.
RETURNS
Returns a "key" that is used to leave this gate; this value is used to restore thread preemption to the state that existed just prior to entering this gate.
IGateProcessSupport.getReferenceCount() // instance
index URL

Get the number of processes with references to this Gate

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
Int getReferenceCount(Error.Block *err);
ARGUMENTS
err — Pointer to Error.Block
RETURNS
Returns the number of processes that possess a reference to this gate, or GETREFCOUNT_FAILED if an error occured. A 'toy' implementation should always return 0.
IGateProcessSupport.leave() // instance
index URL

Leave this gate

XDCspec declarations sourced in xdc/runtime/knl/IGateProcessSupport.xdc
Void leave(IArg key);
ARGUMENTS
key — the value returned by a matching call to enter
DETAILS
This method is only called by threads that have previously entered this gate via enter. After this method returns, the caller must not access the data structure protected by this gate (unless the caller has entered the gate more than once and other calls to leave remain to balance the number of previous calls to enter).
generated on Thu, 08 Nov 2012 02:13:29 GMT


interface xdc.runtime.knl.IGateProcessSupport

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== IGateProcessSupport.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18
    19    /*!
    20     *  ======== IGateProcessSupport ========
    21     *  Interface for OS specific back-end.
    22     *
    23     *  The {@link xdc.runtime.knl} package contains modules that provide typical
    24     *  OS services. These xdc.runtime.knl modules require proxies to be
    25     *  bound to an OS specific delegate. This specifies the interface to
    26     *  be implemented by the OS specific delegate for
    27     *  {@link xdc.runtime.knl#GateProcess} module.
    28     *
    29     *  The implementation of IGateThreadSupport should try to implement a gate
    30     *  that supports priority inversion.
    31     */
    32    interface IGateProcessSupport inherits IGateThreadSupport
    33    {
    34
    35        /*! Status returned by {@link #getReferenceCount} when there is an error */
    36        const Int GETREFCOUNT_FAILED = -1;
    37
    38    instance:
    39
    40        config Int key = -1; /*! globally unique key for SysV-style semaphore */
    41
    42       /*!
    43        *  ======== create ========
    44        *  Create a GateProcess object.
    45        *
    46        *  This function creates a new `GateProcess` object which is initialized to
    47        *  count.  All gates created with the same key reference the same
    48        *  underlying synchronization object and work between processes.  The
    49        *  underlying synchronization object should be automatically deleted when
    50        *  all references to it have been deleted, and the reference count should
    51        *  An implementation for a platform on which this is technically impossible
    52        *  (e.g. an operating system that does not support multiple processes) may
    53        *  provide a 'toy' implemenation with behavior matching that of
    54        *  IGateProcessSupport.
    55        */
    56        override create();
    57
    58        /*!
    59         *  ======== getReferenceCount ========
    60         *  Get the number of processes with references to this Gate.
    61         *
    62         *  @param(err)     Pointer to Error.Block
    63         *  @a(returns)     Returns the number of processes that possess a
    64         *          reference to this gate, or GETREFCOUNT_FAILED if an
    65         *          error occured.
    66         *                  A 'toy' implementation should always return 0.
    67         */
    68        Int getReferenceCount(Error.Block* err);
    69
    70    }
    71    /*
    72     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    73     */
    74


interface xdc.runtime.knl.IGateThreadSupport
index URL

Interface for OS specific back-end

  • C synopsis
  • Individual elements
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.GateThread module. [ more ... ]
XDCspec summary sourced in xdc/runtime/knl/IGateThreadSupport.xdc
interface IGateThreadSupport { ...
// inherits xdc.runtime.IGateProvider
    // inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/knl/IGateThreadSupport.xdc
package xdc.runtime.knl;
interface IGateThreadSupport inherits IGateProvider {
module-wide constants & types
    const Int Q_BLOCKING// Blocking quality = 1;
    const Int Q_PREEMPTING// Preempting quality = 2;
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    Bool query// Runtime test for a particular gate quality(Int qual);
    metaonly Bool queryMeta// Configuration time test for a particular gate quality(Int qual);
instance:
per-instance creation
     create// Create an instance-object();
per-instance functions
    IArg enter// Enter this gate();
    Void leave// Leave this gate(IArg key);
}
DETAILS
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.GateThread module.
The implementation of IGateThreadSupport should try to implement a gate that supports priority inversion.
See xdc.runtime.knl for more details.
const IGateThreadSupport.Q_BLOCKING
index URL

Blocking quality

XDCspec declarations sourced in xdc/runtime/knl/IGateThreadSupport.xdc
const Int Q_BLOCKING = 1;
DETAILS
Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
const IGateThreadSupport.Q_PREEMPTING
index URL

Preempting quality

XDCspec declarations sourced in xdc/runtime/knl/IGateThreadSupport.xdc
const Int Q_PREEMPTING = 2;
DETAILS
Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.
metaonly config IGateThreadSupport.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/knl/IGateThreadSupport.xdc
metaonly config Types.Common$ common$;
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.
IGateThreadSupport.query() // module-wide
index URL

Runtime test for a particular gate quality

XDCspec declarations sourced in xdc/runtime/knl/IGateThreadSupport.xdc
Bool query(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
metaonly IGateThreadSupport.queryMeta() // module-wide
index URL

Configuration time test for a particular gate quality

XDCspec declarations sourced in xdc/runtime/knl/IGateThreadSupport.xdc
metaonly Bool queryMeta(Int qual);
ARGUMENTS
qual — constant describing a quality
RETURNS
Returns TRUE if the gate has the given quality, and FALSE otherwise, which includes the case when the gate does not recognize the constant describing the quality.
Instance Creation
index URL

XDCspec declarations sourced in xdc/runtime/knl/IGateThreadSupport.xdc
create();
// Create an instance-object
IGateThreadSupport.enter() // instance
index URL

Enter this gate

XDCspec declarations sourced in xdc/runtime/knl/IGateThreadSupport.xdc
IArg enter();
DETAILS
Each gate provider can implement mutual exclusion using different algorithms; e.g., disabling all scheduling, disabling the scheduling of all threads below a specified "priority level", suspending the caller when the gate has been entered by another thread and re-enabling it when the the other thread leaves the gate. However, in all cases, after this method returns that caller has exclusive access to the data protected by this gate.
A thread may reenter a gate without blocking or failing.
RETURNS
Returns a "key" that is used to leave this gate; this value is used to restore thread preemption to the state that existed just prior to entering this gate.
IGateThreadSupport.leave() // instance
index URL

Leave this gate

XDCspec declarations sourced in xdc/runtime/knl/IGateThreadSupport.xdc
Void leave(IArg key);
ARGUMENTS
key — the value returned by a matching call to enter
DETAILS
This method is only called by threads that have previously entered this gate via enter. After this method returns, the caller must not access the data structure protected by this gate (unless the caller has entered the gate more than once and other calls to leave remain to balance the number of previous calls to enter).
generated on Thu, 08 Nov 2012 02:13:29 GMT


interface xdc.runtime.knl.IGateThreadSupport

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== IGateThreadSupport.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== IGateThreadSupport ========
    19     *  Interface for OS specific back-end.
    20     *
    21     *  The {@link xdc.runtime.knl} package contains modules that provide typical
    22     *  OS services. These xdc.runtime.knl modules require proxies to be
    23     *  bound to an OS specific delegate. This specifies the interface to
    24     *  be implemented by the OS specific delegate for
    25     *  {@link xdc.runtime.knl#GateThread} module.
    26     *
    27     *  The implementation of IGateThreadSupport should try to implement a gate
    28     *  that supports priority inversion.
    29     *
    30     *  See {@link xdc.runtime.knl} for more details.
    31     */
    32    interface IGateThreadSupport inherits xdc.runtime.IGateProvider
    33    {
    34
    35    }
    36    /*
    37     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    38     */
    39


interface xdc.runtime.knl.ISemaphore
index URL

Interface implemented by all front-end semaphore providers

  • C synopsis
  • Individual elements
SemThread and SemProcess. [EXPERIMENTAL] Semaphores can be used for synchronization and mutual exclusion. [ more ... ]
XDCspec summary sourced in xdc/runtime/knl/ISemaphore.xdc
interface ISemaphore { ...
// inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/knl/ISemaphore.xdc
package xdc.runtime.knl;
interface ISemaphore {
module-wide constants & types
    const UInt FOREVER// Used as the timeout value to specify wait forever = ~(0);
    enum Mode// Types of semaphores {
         Mode_COUNTING// Counting semaphore,
         Mode_BINARY// Binary Semaphore
    };
    enum PendStatus// Error codes returned by Semaphore_pend {
         PendStatus_ERROR,
         PendStatus_TIMEOUT,
         PendStatus_SUCCESS
    };
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
instance:
per-instance config parameters
    config ISemaphore.Mode mode// Semaphore mode. Default is COUNTING = ISemaphore.Mode_COUNTING;
per-instance functions
    Int pend// Wait for the semaphore to become available(UInt timeout, Error.Block *eb);
    Bool post// Increment the semaphore count(Error.Block *eb);
}
DETAILS
SemThread and SemProcess. [EXPERIMENTAL] Semaphores can be used for synchronization and mutual exclusion.
pend() is used to wait for a semaphore. The timeout parameter allows the caller to wait until a timeout, wait indefinitely, or not wait at all. The return value indicates whether or not the wait was successful.
post() is used to signal a semaphore. If no thread is waiting on the semaphore, then post() increments the semaphore count (for binary semaphores, the count is always 0 or 1).
const ISemaphore.FOREVER
index URL

Used as the timeout value to specify wait forever

XDCspec declarations sourced in xdc/runtime/knl/ISemaphore.xdc
const UInt FOREVER = ~(0);
enum ISemaphore.Mode
index URL

Types of semaphores

XDCspec declarations sourced in xdc/runtime/knl/ISemaphore.xdc
enum Mode {
    Mode_COUNTING,
    // Counting semaphore
    Mode_BINARY
    // Binary Semaphore
};
enum ISemaphore.PendStatus
index URL

Error codes returned by Semaphore_pend

XDCspec declarations sourced in xdc/runtime/knl/ISemaphore.xdc
enum PendStatus {
    PendStatus_ERROR,
    PendStatus_TIMEOUT,
    PendStatus_SUCCESS
};
metaonly config ISemaphore.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/knl/ISemaphore.xdc
metaonly config Types.Common$ common$;
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.
config ISemaphore.mode // instance
index URL

Semaphore mode. Default is COUNTING

XDCspec declarations sourced in xdc/runtime/knl/ISemaphore.xdc
config ISemaphore.Mode mode = ISemaphore.Mode_COUNTING;
DETAILS
When mode is BINARY , the semaphore has only two states, available and unavailable. When mode is COUNTING, the semaphore keeps track of number of times a semaphore is posted.
ISemaphore.pend() // instance
index URL

Wait for the semaphore to become available

XDCspec declarations sourced in xdc/runtime/knl/ISemaphore.xdc
Int pend(UInt timeout, Error.Block *eb);
ARGUMENTS
timeout — timeout in microseconds
eb — error block
DETAILS
  • PendStatus_ERROR if an error occured.
  • PendStatus_TIMEOUT denotes timeout.
  • PendStatus_SUCCESS semaphore was decremented. details.
RETURNS
refer to description above
ISemaphore.post() // instance
index URL

Increment the semaphore count

XDCspec declarations sourced in xdc/runtime/knl/ISemaphore.xdc
Bool post(Error.Block *eb);
ARGUMENTS
eb — error block
RETURNS
true for success, false for error in error block
generated on Thu, 08 Nov 2012 02:13:29 GMT


interface xdc.runtime.knl.ISemaphore

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13
    14    /*
    15     *  ======== ISemaphore.xdc ========
    16     */
    17
    18    import xdc.runtime.Error;
    19
    20    /*!
    21     *  ======== ISemaphore ========
    22     *  Interface implemented by all front-end semaphore providers.
    23     *
    24     *  {@link #SemThread} and {@link #SemProcess}. [EXPERIMENTAL]
    25     *  Semaphores can be used for synchronization and mutual exclusion.
    26     *
    27     *  pend() is used to wait for a semaphore. The timeout parameter allows the
    28     *  caller to wait until a timeout, wait indefinitely, or not wait at all.
    29     *  The return value indicates whether or not the wait was successful.
    30     *
    31     *  post() is used to signal a semaphore. If no thread is waiting on the
    32     *  semaphore, then post() increments the semaphore count (for binary
    33     *  semaphores, the count is always 0 or 1).
    34     *
    35     */
    36    interface ISemaphore {
    37
    38        /*!
    39         *  ======== PendStatus ========
    40         *  Error codes returned by Semaphore_pend
    41         */
    42        enum PendStatus {
    43            PendStatus_ERROR = -1,
    44            PendStatus_TIMEOUT = 0,
    45            PendStatus_SUCCESS = 1
    46        };
    47
    48        /*! Used as the timeout value to specify wait forever */
    49        const UInt FOREVER = ~(0);
    50
    51        /*! Types of semaphores. */
    52        enum Mode {
    53            Mode_COUNTING,  /*! Counting semaphore. */
    54            Mode_BINARY     /*! Binary Semaphore. */
    55        };
    56
    57    instance:
    58
    59        /*!
    60         *  ======== mode ========
    61         *  Semaphore mode. Default is COUNTING.
    62         *
    63         *  When mode is BINARY , the semaphore has only two states, available
    64         *  and unavailable. When mode is COUNTING, the semaphore keeps track of
    65         *  number of times a semaphore is posted.
    66         */
    67        config Mode mode = Mode_COUNTING;
    68
    69        /*!
    70         *  ======== pend ========
    71         *  Wait for the semaphore to become available.
    72         *
    73         *  @p(blist)
    74         *  -{@link #PendStatus_ERROR} if an error occured.
    75         *  -{@link #PendStatus_TIMEOUT} denotes timeout.
    76         *  -{@link #PendStatus_SUCCESS} semaphore was decremented.
    77         *    details.
    78         *  @p
    79         *
    80         *  @param(timeout) timeout in microseconds
    81         *  @param(eb)      error block
    82         *  @a(returns)     refer to description above
    83         */
    84        Int pend(UInt timeout, Error.Block *eb);
    85
    86        /*!
    87         *  ======== post ========
    88         *  Increment the semaphore count.
    89         *
    90         *  @param(eb)      error block
    91         *  @a(returns)     true for success, false for error in error block
    92         */
    93        Bool post(Error.Block *eb);
    94    }
    95    /*
    96     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    97     */
    98


interface xdc.runtime.knl.ISemProcessSupport
index URL

Interface for OS specific back-end

  • C synopsis
  • Individual elements
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules however require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.SemProcess module. [ more ... ]
XDCspec summary sourced in xdc/runtime/knl/ISemProcessSupport.xdc
interface ISemProcessSupport { ...
// inherits xdc.runtime.knl.ISemaphore
    // inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/knl/ISemProcessSupport.xdc
package xdc.runtime.knl;
interface ISemProcessSupport inherits ISemaphore {
module-wide constants & types
    const UInt FOREVER// Used as the timeout value to specify wait forever = ~(0);
    enum Mode// Types of semaphores {
         Mode_COUNTING// Counting semaphore,
         Mode_BINARY// Binary Semaphore
    };
    enum PendStatus// Error codes returned by Semaphore_pend {
         PendStatus_ERROR,
         PendStatus_TIMEOUT,
         PendStatus_SUCCESS
    };
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
instance:
per-instance config parameters
    config ISemaphore.Mode mode// Semaphore mode. Default is COUNTING = ISemaphore.Mode_COUNTING;
per-instance creation
     create// Create an instance-object(Int count, Int key);
per-instance functions
    Int pend// Wait for the semaphore to become available(UInt timeout, Error.Block *eb);
    Bool post// Increment the semaphore count(Error.Block *eb);
}
DETAILS
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules however require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.SemProcess module.
create() takes a 32-bit integer key parameter to be used for identifying the semaphore to create across processes. For example, for Linux System V semaphores, the key is necessary so that different processes can access the same semaphore.
const ISemProcessSupport.FOREVER
index URL

Used as the timeout value to specify wait forever

XDCspec declarations sourced in xdc/runtime/knl/ISemProcessSupport.xdc
const UInt FOREVER = ~(0);
enum ISemProcessSupport.Mode
index URL

Types of semaphores

XDCspec declarations sourced in xdc/runtime/knl/ISemProcessSupport.xdc
enum Mode {
    Mode_COUNTING,
    // Counting semaphore
    Mode_BINARY
    // Binary Semaphore
};
enum ISemProcessSupport.PendStatus
index URL

Error codes returned by Semaphore_pend

XDCspec declarations sourced in xdc/runtime/knl/ISemProcessSupport.xdc
enum PendStatus {
    PendStatus_ERROR,
    PendStatus_TIMEOUT,
    PendStatus_SUCCESS
};
metaonly config ISemProcessSupport.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/knl/ISemProcessSupport.xdc
metaonly config Types.Common$ common$;
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.
config ISemProcessSupport.mode // instance
index URL

Semaphore mode. Default is COUNTING

XDCspec declarations sourced in xdc/runtime/knl/ISemProcessSupport.xdc
config ISemaphore.Mode mode = ISemaphore.Mode_COUNTING;
DETAILS
When mode is BINARY , the semaphore has only two states, available and unavailable. When mode is COUNTING, the semaphore keeps track of number of times a semaphore is posted.
Instance Creation
index URL

XDCspec declarations sourced in xdc/runtime/knl/ISemProcessSupport.xdc
create(Int count, Int key);
// Create an instance-object
ARGUMENTS
count — initial semaphore count
key — globally unique key
DETAILS
This function creates a new SemProcess object which is initialized to count. All semaphores created with the same key reference the same underlying synchronization object and work between processes. The underlying synchronization object should be automatically deleted when all references to it have been deleted, and the reference count should be maintained consistently across process forks or similar operations. An implementation for a platform on which this is technically impossible (e.g. an operating system that does not support multiple processes) may provide a 'toy' implementation with behavior matching that of ISemProcessSupport.
ISemProcessSupport.pend() // instance
index URL

Wait for the semaphore to become available

XDCspec declarations sourced in xdc/runtime/knl/ISemProcessSupport.xdc
Int pend(UInt timeout, Error.Block *eb);
ARGUMENTS
timeout — timeout in microseconds
eb — error block
DETAILS
  • PendStatus_ERROR if an error occured.
  • PendStatus_TIMEOUT denotes timeout.
  • PendStatus_SUCCESS semaphore was decremented. details.
RETURNS
refer to description above
ISemProcessSupport.post() // instance
index URL

Increment the semaphore count

XDCspec declarations sourced in xdc/runtime/knl/ISemProcessSupport.xdc
Bool post(Error.Block *eb);
ARGUMENTS
eb — error block
RETURNS
true for success, false for error in error block
generated on Thu, 08 Nov 2012 02:13:29 GMT


interface xdc.runtime.knl.ISemProcessSupport

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== ISemProcessSupport.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18
    19    /*!
    20     *  ======== ISemProcessSupport ========
    21     *  Interface for OS specific back-end.
    22     *
    23     *  The {@link xdc.runtime.knl} package contains modules that provide typical
    24     *  OS services. These xdc.runtime.knl modules however require proxies to be
    25     *  bound to an OS specific delegate. This specifies the interface to
    26     *  be implemented by the OS specific delegate for
    27     *  {@link xdc.runtime.knl#SemProcess} module.
    28     *
    29     *  create() takes a 32-bit integer key parameter to be used for identifying
    30     *  the semaphore to create across processes. For example, for Linux System V
    31     *  semaphores, the key is necessary so that different processes can access
    32     *  the same semaphore.
    33     */
    34    interface ISemProcessSupport inherits ISemaphore
    35    {
    36
    37    instance:
    38
    39       /*!
    40        *  ======== create ========
    41        *  Create a SemProcess object.
    42        *
    43        *  This function creates a new `SemProcess` object which is
    44        *  initialized to count.
    45        *  All semaphores created with the same key reference the same
    46        *  underlying synchronization object and work between processes.  The
    47        *  underlying synchronization object should be automatically deleted when
    48        *  all references to it have been deleted, and the reference count should
    49        *  be maintained consistently across process forks or similar operations.
    50        *  An implementation for a platform on which this is technically impossible
    51        *  (e.g. an operating system that does not support multiple processes) may
    52        *  provide a 'toy' implementation with behavior matching that of
    53        *  `{@link ISemProcessSupport}`.
    54        *
    55        *  @param(count)    initial semaphore count
    56        *  @param(key)      globally unique key
    57        */
    58        create(Int count, Int key);
    59
    60    }
    61    /*
    62     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    63     */
    64


interface xdc.runtime.knl.ISemThreadSupport
index URL

Interface for OS specific back-end

  • C synopsis
  • Individual elements
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.SemThread module. [ more ... ]
XDCspec summary sourced in xdc/runtime/knl/ISemThreadSupport.xdc
interface ISemThreadSupport { ...
// inherits xdc.runtime.knl.ISemaphore
    // inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
package xdc.runtime.knl;
interface ISemThreadSupport inherits ISemaphore {
module-wide constants & types
    const UInt FOREVER// Used as the timeout value to specify wait forever = ~(0);
    enum Mode// Types of semaphores {
         Mode_COUNTING// Counting semaphore,
         Mode_BINARY// Binary Semaphore
    };
    enum PendStatus// Error codes returned by Semaphore_pend {
         PendStatus_ERROR,
         PendStatus_TIMEOUT,
         PendStatus_SUCCESS
    };
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
instance:
per-instance config parameters
    config ISemaphore.Mode mode// Semaphore mode. Default is COUNTING = ISemaphore.Mode_COUNTING;
per-instance creation
     create// Create an instance-object(Int count);
per-instance functions
    Int pend// Wait for the semaphore to become available(UInt timeout, Error.Block *eb);
    Bool post// Increment the semaphore count(Error.Block *eb);
}
DETAILS
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.SemThread module.
This interface adds the create() function.
const ISemThreadSupport.FOREVER
index URL

Used as the timeout value to specify wait forever

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
const UInt FOREVER = ~(0);
enum ISemThreadSupport.Mode
index URL

Types of semaphores

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
enum Mode {
    Mode_COUNTING,
    // Counting semaphore
    Mode_BINARY
    // Binary Semaphore
};
enum ISemThreadSupport.PendStatus
index URL

Error codes returned by Semaphore_pend

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
enum PendStatus {
    PendStatus_ERROR,
    PendStatus_TIMEOUT,
    PendStatus_SUCCESS
};
metaonly config ISemThreadSupport.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
metaonly config Types.Common$ common$;
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.
config ISemThreadSupport.mode // instance
index URL

Semaphore mode. Default is COUNTING

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
config ISemaphore.Mode mode = ISemaphore.Mode_COUNTING;
DETAILS
When mode is BINARY , the semaphore has only two states, available and unavailable. When mode is COUNTING, the semaphore keeps track of number of times a semaphore is posted.
Instance Creation
index URL

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
create(Int count);
// Create an instance-object
ARGUMENTS
count — initial semaphore count
DETAILS
This function creates a new Semaphore object which is initialized to count.
ISemThreadSupport.pend() // instance
index URL

Wait for the semaphore to become available

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
Int pend(UInt timeout, Error.Block *eb);
ARGUMENTS
timeout — timeout in microseconds
eb — error block
DETAILS
  • PendStatus_ERROR if an error occured.
  • PendStatus_TIMEOUT denotes timeout.
  • PendStatus_SUCCESS semaphore was decremented. details.
RETURNS
refer to description above
ISemThreadSupport.post() // instance
index URL

Increment the semaphore count

XDCspec declarations sourced in xdc/runtime/knl/ISemThreadSupport.xdc
Bool post(Error.Block *eb);
ARGUMENTS
eb — error block
RETURNS
true for success, false for error in error block
generated on Thu, 08 Nov 2012 02:13:29 GMT


interface xdc.runtime.knl.ISemThreadSupport

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== ISemThreadSupport.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== ISemThreadSupport ========
    19     *  Interface for OS specific back-end.
    20     *
    21     *  The {@link xdc.runtime.knl} package contains modules that provide typical
    22     *  OS services. These xdc.runtime.knl modules require proxies to be
    23     *  bound to an OS specific delegate. This specifies the interface to
    24     *  be implemented by the OS specific delegate for
    25     *  {@link xdc.runtime.knl#SemThread} module.
    26     *
    27     *  This interface adds the create() function.
    28     */
    29    interface ISemThreadSupport inherits ISemaphore
    30    {
    31
    32    instance:
    33
    34       /*!
    35        *  ======== create ========
    36        *  Create a Semaphore object
    37        *
    38        *  This function creates a new Semaphore object which is initialized to
    39        *  count.
    40        *
    41        *  @param(count)    initial semaphore count
    42        */
    43        create(Int count);
    44    }
    45    /*
    46     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    47     */
    48


interface xdc.runtime.knl.ISync
index URL

OS independent synchronization

  • C synopsis
  • Individual elements
This interface allows clients to select method of synchronization in an OS independent way. [ more ... ]
XDCspec summary sourced in xdc/runtime/knl/ISync.xdc
interface ISync { ...
// inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
package xdc.runtime.knl;
interface ISync {
module-wide constants & types
    const UInt NO_WAIT// Used to specify no waiting = 0;
    const Int Q_BLOCKING// Blocking quality = 1;
    const UInt WAIT_FOREVER// Used to wait forever = ~(0);
    enum WaitStatus// Error codes returned by ISync_wait {
         WaitStatus_ERROR,
         WaitStatus_TIMEOUT,
         WaitStatus_SUCCESS
    };
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
instance:
per-instance creation
     create// Create an instance-object();
per-instance functions
    Bool query// Query for a particular quality(Int qual);
    Void signal// Called at completion of an activity();
    Int wait// Called to wait/poll for completion of an activity(UInt timeout, Error.Block *eb);
}
DETAILS
This interface allows clients to select method of synchronization in an OS independent way.
Modules that require the user to pick a synchronization method, will request a Handle. Clients of such modules can pick a blocking ISync implementation or a non-blocking implementation.
This interface specifies two main functions signal and wait. These two functions are always used in pairs in modules that use ISync instances. The signal() function is used to signal completion of an activity. The wait() function will allow the module to block or poll for completion of the same activity.
ISync mandates that the sync mechanism be binary and not support counters. Although the wait() function seems meaningless in the case of non-blocking sync, it allows modules to be written generically and support all ISync implementations. For non-blocking ISync the wait() function will return WaitStatus_TIMEOUT to denote timeout.
const ISync.NO_WAIT
index URL

Used to specify no waiting

XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
const UInt NO_WAIT = 0;
const ISync.Q_BLOCKING
index URL

Blocking quality

XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
const Int Q_BLOCKING = 1;
DETAILS
Implementations with this "quality" may cause the calling thread to block;
const ISync.WAIT_FOREVER
index URL

Used to wait forever

XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
const UInt WAIT_FOREVER = ~(0);
enum ISync.WaitStatus
index URL

Error codes returned by ISync_wait

XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
enum WaitStatus {
    WaitStatus_ERROR,
    WaitStatus_TIMEOUT,
    WaitStatus_SUCCESS
};
metaonly config ISync.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
metaonly config Types.Common$ common$;
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.
Instance Creation
index URL

XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
create();
// Create an instance-object
ISync.query() // instance
index URL

Query for a particular quality

XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
Bool query(Int qual);
ARGUMENTS
qual — quality
RETURNS
TRUE or FALSE.
DETAILS
FALSE is returned if quality not supported.
ISync.signal() // instance
index URL

Called at completion of an activity

XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
Void signal();
DETAILS
This function is non-blocking. It is also required that the underlying sync be binary in nature.
This function does not take an Error.Block intentionally because it can be called from ISR context.
ISync.wait() // instance
index URL

Called to wait/poll for completion of an activity

XDCspec declarations sourced in xdc/runtime/knl/ISync.xdc
Int wait(UInt timeout, Error.Block *eb);
ARGUMENTS
timeout — Timeout in microseconds
eb — Hist Pointer to Error.Block
RETURNS
Refer to description above
DETAILS
This function can block. Non-blocking implementations should return WaitStatus_TIMEOUT to indicate a timeout.
  • WaitStatus_ERROR if an error occured.
  • WaitStatus_TIMEOUT denotes timeout.
  • WaitStatus_SUCCESS semaphore was decremented.
generated on Thu, 08 Nov 2012 02:13:29 GMT


interface xdc.runtime.knl.ISync

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== ISync.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18
    19    /*!
    20     *  ======== ISync ========
    21     *  OS independent synchronization
    22     *
    23     *  This interface allows clients to select method of synchronization in an OS
    24     *  independent way.
    25     *
    26     *  Modules that require the user to pick a synchronization method, will
    27     *  request a `{@link #Handle}`. Clients of such modules can pick a blocking
    28     *  `ISync` implementation  or a non-blocking implementation.
    29     *
    30     *  This interface specifies two main functions `{@link #signal}` and
    31     *  `{@link #wait}`. These two functions are always used in pairs in modules
    32     *  that use `ISync` instances. The `signal()` function is used to signal
    33     *  completion of an activity. The `wait()` function will allow the module to
    34     *  block or poll for completion of the same activity.
    35     *
    36     *  `ISync` mandates that the sync mechanism be binary and not support counters.
    37     *  Although the `wait()` function seems meaningless in the case of
    38     *  non-blocking sync, it allows modules to be written generically and support
    39     *  all `ISync` implementations. For non-blocking `ISync` the `wait()` function
    40     *  will return `WaitStatus_TIMEOUT` to denote timeout.
    41     */
    42
    43    interface ISync
    44    {
    45        /*!
    46         *  ======== WaitStatus ========
    47         *  Error codes returned by ISync_wait
    48         */
    49        enum WaitStatus {
    50            WaitStatus_ERROR = -1,
    51            WaitStatus_TIMEOUT = 0,
    52            WaitStatus_SUCCESS = 1
    53        };
    54
    55        /*!
    56         *  ======== Q_BLOCKING ========
    57         *  Blocking quality
    58         *
    59         *  Implementations with this "quality" may cause the calling thread to
    60         *  block;
    61         */
    62        const Int Q_BLOCKING = 1;
    63
    64        /*! Used to wait forever */
    65        const UInt WAIT_FOREVER = ~(0);
    66
    67        /*! Used to specify no waiting */
    68        const UInt NO_WAIT = 0;
    69
    70    instance:
    71        /*!
    72         *  ======== create ========
    73         *  Create an ISync instance.
    74         */
    75        create();
    76
    77        /*!
    78         *  ======== query ========
    79         *  Query for a particular quality.
    80         *
    81         *  FALSE is returned if quality not supported.
    82         *
    83         *  @param(qual)    quality
    84         *  @b(returns)     TRUE or FALSE.
    85         */
    86        Bool query(Int qual);
    87
    88        /*!
    89         *  ======== signal ========
    90         *  Called at completion of an activity.
    91         *
    92         *  This function is non-blocking. It is also required that the underlying
    93         *  sync be binary in nature.
    94         *
    95         *  This function does not take an Error.Block intentionally because
    96         *  it can be called from ISR context.
    97         */
    98        Void signal();
    99
   100        /*!
   101         *  ======== wait ========
   102         *  Called to wait/poll for completion of an activity.
   103         *
   104         *  This function can block. Non-blocking implementations should return
   105         *  WaitStatus_TIMEOUT to indicate a timeout.
   106         *
   107         *  @p(blist)
   108         *  -{@link #WaitStatus_ERROR} if an error occured.
   109         *  -{@link #WaitStatus_TIMEOUT} denotes timeout.
   110         *  -{@link #WaitStatus_SUCCESS} semaphore was decremented.
   111         *  @p
   112         *
   113         *  @param(timeout)     Timeout in microseconds
   114         *  @param(eb)Hist      Pointer to Error.Block
   115         *  @b(returns)         Refer to description above
   116         */
   117        Int wait(UInt timeout, Error.Block *eb);
   118    }
   119    /*
   120     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   121     */
   122


interface xdc.runtime.knl.IThreadSupport
index URL

Interface for OS specific back-end

  • C synopsis
  • Individual elements
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.Thread module. [ more ... ]
XDCspec summary sourced in xdc/runtime/knl/IThreadSupport.xdc
interface IThreadSupport { ...
// inherits xdc.runtime.IModule
instance: ...
XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
package xdc.runtime.knl;
interface IThreadSupport {
module-wide constants & types
    const Int GETPRI_FAILED// The error status for getPriority when an error is captured in the Error.Block = -2;
    const Int INVALID_OS_PRIORITY// Invalid OS priority value = 0;
    enum CompStatus// Status returned by compareOsPriorities when an error occurs {
         CompStatus_ERROR,
         CompStatus_LOWER,
         CompStatus_EQUAL,
         CompStatus_HIGHER
    };
    enum Priority// Thread priorities which are mapped to OS specific value by Proxy {
         Priority_INVALID,
         Priority_LOWEST,
         Priority_BELOW_NORMAL,
         Priority_NORMAL,
         Priority_ABOVE_NORMAL,
         Priority_HIGHEST
    };
    typedef Void (*RunFxn// typedef for function that gets called when the Thread runs)(IArg);
    struct Stat// Struct to hold thread statistics from stat {
        SizeT stackSize;
        SizeT stackUsed;
    };
module-wide config parameters
    metaonly config Types.Common$ common$// Common module configuration parameters;
module-wide functions
    Int compareOsPriorities// Compare two priority values and find out which one represents a higher priority(Int p1, Int p2, Error.Block *eb);
     IThreadSupport.Handle self// Acquire the currently executing thread's handle(Error.Block *eb);
    Bool sleep// Sleep for certain number of microseconds(UInt timeout, Error.Block *eb);
    Bool start// Start threads running(Error.Block *eb);
    Bool yield// Yield the currently scheduled thread(Error.Block *eb);
instance:
per-instance config parameters
    config IArg arg// Thread function argument. Default is NULL = null;
    config Int osPriority// OS specific thread priority = IThreadSupport.INVALID_OS_PRIORITY;
    config IThreadSupport.Priority priority// Thread priority = IThreadSupport.Priority_NORMAL;
    config SizeT stackSize// Thread stack size. If left at zero, OS default is used = 0;
    config Ptr tls// User-specified thread local storage data = null;
per-instance creation
     create// Create an instance-object(IThreadSupport.RunFxn fxn);
per-instance functions
    Ptr getOsHandle// Get the OS thread handle();
    Int getOsPriority// Obtain a thread's os specific priority(Error.Block *eb);
     IThreadSupport.Priority getPriority// Obtain a thread's priority(Error.Block *eb);
    Ptr getTls// Obtain a thread's local storage pointer();
    Bool join// Join on a Thread(Error.Block *eb);
    Bool setOsPriority// Set a thread's priority(Int newPri, Error.Block *eb);
    Bool setPriority// Set a thread's priority(IThreadSupport.Priority newPri, Error.Block *eb);
    Void setTls// Set a thread's local storage pointer(Ptr tls);
    Bool stat// Obtain a thread's stats(IThreadSupport.Stat *buf, Error.Block *eb);
}
DETAILS
The xdc.runtime.knl package contains modules that provide typical OS services. These xdc.runtime.knl modules require proxies to be bound to an OS specific delegate. This specifies the interface to be implemented by the OS specific delegate for xdc.runtime.knl.Thread module.
Refer to xdc.runtime.knl.Thread for more details on the APIs.
const IThreadSupport.GETPRI_FAILED
index URL

The error status for getPriority when an error is captured in the Error.Block

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
const Int GETPRI_FAILED = -2;
const IThreadSupport.INVALID_OS_PRIORITY
index URL

Invalid OS priority value

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
const Int INVALID_OS_PRIORITY = 0;
enum IThreadSupport.CompStatus
index URL

Status returned by compareOsPriorities when an error occurs

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
enum CompStatus {
    CompStatus_ERROR,
    CompStatus_LOWER,
    CompStatus_EQUAL,
    CompStatus_HIGHER
};
enum IThreadSupport.Priority
index URL

Thread priorities which are mapped to OS specific value by Proxy

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
enum Priority {
    Priority_INVALID,
    Priority_LOWEST,
    Priority_BELOW_NORMAL,
    Priority_NORMAL,
    Priority_ABOVE_NORMAL,
    Priority_HIGHEST
};
typedef IThreadSupport.RunFxn
index URL

typedef for function that gets called when the Thread runs

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
typedef Void (*RunFxn)(IArg);
struct IThreadSupport.Stat
index URL

Struct to hold thread statistics from stat

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
struct Stat {
    SizeT stackSize;
    SizeT stackUsed;
};
metaonly config IThreadSupport.common$ // module-wide
index URL

Common module configuration parameters

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
metaonly config Types.Common$ common$;
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.
IThreadSupport.compareOsPriorities() // module-wide
index URL

Compare two priority values and find out which one represents a higher priority

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Int compareOsPriorities(Int p1, Int p2, Error.Block *eb);
ARGUMENTS
p1 — priority one
p2 — priority two
eb — Pointer to Error.Block
DETAILS
Refer to xdc.runtime.knl.Thread.compareOsPriorities for more details.
  • CompStatus_ERROR if an error occured
  • CompStatus_LOWER if p1 is lower than p2
  • CompStatus_EQUAL if p1=p2
  • CompStatus_HIGHER if p1 is higher than p2 details.
RETURNS
Refer to description above
IThreadSupport.self() // module-wide
index URL

Acquire the currently executing thread's handle

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
IThreadSupport.Handle self(Error.Block *eb);
ARGUMENTS
eb — Pointer to Error.Block
DETAILS
Refer to xdc.runtime.knl.Thread.self for more details.
RETURNS
Handle in case of success; null for error;
IThreadSupport.sleep() // module-wide
index URL

Sleep for certain number of microseconds

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Bool sleep(UInt timeout, Error.Block *eb);
ARGUMENTS
timeout — timeout in microseconds
eb — Pointer to Error.Block
DETAILS
Refer to xdc.runtime.knl.Thread.sleep for more details.
RETURNS
true for success; false for failure
IThreadSupport.start() // module-wide
index URL

Start threads running

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Bool start(Error.Block *eb);
ARGUMENTS
eb — Pointer to Error.Block
DETAILS
Refer to xdc.runtime.knl.Thread.start for more details.
RETURNS
true for success; false for failure
IThreadSupport.yield() // module-wide
index URL

Yield the currently scheduled thread

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Bool yield(Error.Block *eb);
ARGUMENTS
eb — Pointer to Error.Block
DETAILS
Refer to xdc.runtime.knl.Thread.yield for more details.
RETURNS
true for success; false for failure
config IThreadSupport.arg // instance
index URL

Thread function argument. Default is NULL

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
config IArg arg = null;
config IThreadSupport.osPriority // instance
index URL

OS specific thread priority

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
config Int osPriority = IThreadSupport.INVALID_OS_PRIORITY;
DETAILS
Used to specify an OS specific value for priority. If set this value takes precedence over priority.
config IThreadSupport.priority // instance
index URL

Thread priority

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
config IThreadSupport.Priority priority = IThreadSupport.Priority_NORMAL;
DETAILS
Thread defines several constants which allows applications to select a priority in an OS independent way. Priority_LOWEST, Priority_BELOW_NORMAL, Priority_NORMAL, Priority_ABOVE_NORMAL and Priority_HIGHEST. These values get mapped to OS specific priorities by the OS specific delegate.
config IThreadSupport.stackSize // instance
index URL

Thread stack size. If left at zero, OS default is used

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
config SizeT stackSize = 0;
config IThreadSupport.tls // instance
index URL

User-specified thread local storage data

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
config Ptr tls = null;
Instance Creation
index URL

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
create(IThreadSupport.RunFxn fxn);
// Create an instance-object
ARGUMENTS
fxn — function for new thread to begin execution
DETAILS
This function spawns a new thread calling the function fxn.
IThreadSupport.getOsHandle() // instance
index URL

Get the OS thread handle

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Ptr getOsHandle();
RETURNS
null in case of error
IThreadSupport.getOsPriority() // instance
index URL

Obtain a thread's os specific priority

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Int getOsPriority(Error.Block *eb);
ARGUMENTS
eb — Pointer to Error.Block
DETAILS
For OSes that support dynamic priority boosting, the value returned is the base priority of the thread.
Refer to xdc.runtime.knl.Thread.getOsPriority for more details.
RETURNS
thread priority in case of success; GETPRI_FAILED in case of error;
IThreadSupport.getPriority() // instance
index URL

Obtain a thread's priority

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
IThreadSupport.Priority getPriority(Error.Block *eb);
ARGUMENTS
eb — Pointer to Error.Block
DETAILS
Refer to xdc.runtime.knl.Thread.getPriority for more details.
RETURNS
thread priority in case of success; Priority_INVALID in case of error;
IThreadSupport.getTls() // instance
index URL

Obtain a thread's local storage pointer

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Ptr getTls();
RETURNS
null in case of error
IThreadSupport.join() // instance
index URL

Join on a Thread

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Bool join(Error.Block *eb);
ARGUMENTS
eb — Pointer to Error.Block
DETAILS
Refer to xdc.runtime.knl.Thread.join for more details.
RETURNS
true for success; false for failure
IThreadSupport.setOsPriority() // instance
index URL

Set a thread's priority

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Bool setOsPriority(Int newPri, Error.Block *eb);
ARGUMENTS
newPri — new thread priority
eb — Pointer to Error.Block
DETAILS
This API sets the base priority of the thread on OSes that support dynamic priority boosting
Refer to xdc.runtime.knl.Thread.setOsPriority for more details.
RETURNS
true for success; false for failure
IThreadSupport.setPriority() // instance
index URL

Set a thread's priority

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Bool setPriority(IThreadSupport.Priority newPri, Error.Block *eb);
ARGUMENTS
newPri — new thread priority
eb — Pointer to Error.Block
DETAILS
Refer to xdc.runtime.knl.Thread.setPriority for more details.
RETURNS
true for success; false for failure
IThreadSupport.setTls() // instance
index URL

Set a thread's local storage pointer

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Void setTls(Ptr tls);
ARGUMENTS
tls — thread tls
IThreadSupport.stat() // instance
index URL

Obtain a thread's stats

XDCspec declarations sourced in xdc/runtime/knl/IThreadSupport.xdc
Bool stat(IThreadSupport.Stat *buf, Error.Block *eb);
ARGUMENTS
buf — Pointer to Stat
eb — Pointer to Error.Block
RETURNS
true for success; false for failure
generated on Thu, 08 Nov 2012 02:13:29 GMT


interface xdc.runtime.knl.IThreadSupport

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== IThreadSupport.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18
    19    /*!
    20     *  ======== IThreadSupport ========
    21     *  Interface for OS specific back-end.
    22     *
    23     *  The {@link xdc.runtime.knl} package contains modules that provide typical
    24     *  OS services. These xdc.runtime.knl modules require proxies to be
    25     *  bound to an OS specific delegate. This specifies the interface to
    26     *  be implemented by the OS specific delegate for
    27     *  {@link xdc.runtime.knl.Thread} module.
    28     *
    29     *  Refer to {@link xdc.runtime.knl.Thread} for more details on the APIs.
    30     */
    31    interface IThreadSupport
    32    {
    33        /*! Thread priorities which are mapped to OS specific value by Proxy */
    34        enum Priority {
    35        Priority_INVALID,
    36            Priority_LOWEST,
    37            Priority_BELOW_NORMAL,
    38            Priority_NORMAL,
    39            Priority_ABOVE_NORMAL,
    40            Priority_HIGHEST
    41        };
    42
    43        /*! Invalid OS priority value */
    44        const Int INVALID_OS_PRIORITY = 0;
    45
    46        /*!
    47         *  The error status for {@link #getPriority} when an error is captured in
    48         *  the  Error.Block.
    49         */
    50        const Int GETPRI_FAILED = -2;
    51
    52        /*! Status returned by {@link #compareOsPriorities} when an error occurs */
    53        enum CompStatus {
    54            CompStatus_ERROR = -2,
    55        CompStatus_LOWER = -1,
    56        CompStatus_EQUAL = 0,
    57        CompStatus_HIGHER = 1
    58        };
    59
    60        /*! typedef for function that gets called when the Thread runs. */
    61        typedef Void (*RunFxn)(IArg);
    62
    63        /*! Struct to hold thread statistics from {@link #stat} */
    64        struct Stat {
    65            SizeT stackSize;
    66            SizeT stackUsed;
    67        }
    68
    69        /*!
    70         *  ======== self ========
    71         *  Acquire the currently executing thread's handle.
    72         *
    73         *  Refer to {@link xdc.runtime.knl.Thread#self} for more details.
    74         *
    75         *  @param(eb)     Pointer to Error.Block
    76         *  @a(returns)    Handle in case of success; null for error;
    77         */
    78        Handle self(Error.Block* eb);
    79
    80        /*!
    81         *  ======== start ========
    82         *  Start threads running.
    83         *
    84         *  Refer to {@link xdc.runtime.knl.Thread#start} for more details.
    85         *
    86         *  @param(eb)     Pointer to Error.Block
    87         *  @a(returns)    true for success; false for failure
    88         */
    89        Bool start(Error.Block* eb);
    90
    91        /*!
    92         *  ======== yield ========
    93         *  Yield the currently scheduled thread.
    94         *
    95         *  Refer to {@link xdc.runtime.knl.Thread#yield} for more details.
    96         *
    97         *  @param(eb)     Pointer to Error.Block
    98         *  @a(returns)    true for success; false for failure
    99         */
   100        Bool yield(Error.Block* eb);
   101
   102        /*!
   103         *  ======== compareOsPriorities ========
   104         *  Compare two priority values and find out which one represents a
   105         *  higher priority.
   106         *
   107         *  Refer to {@link xdc.runtime.knl.Thread#compareOsPriorities} for more
   108         *  details.
   109         *
   110         *  @p(blist)
   111         *  -{@link #CompStatus_ERROR} if an error occured
   112         *  -{@link #CompStatus_LOWER} if p1 is lower than p2
   113         *  -{@link #CompStatus_EQUAL} if p1=p2
   114         *  -{@link #CompStatus_HIGHER} if p1 is higher than p2
   115         *    details.
   116         *  @p
   117         *
   118         *  @param(p1)      priority one
   119         *  @param(p2)      priority two
   120         *  @param(eb)      Pointer to Error.Block
   121         *  @a(returns)     Refer to description above
   122         */
   123        Int compareOsPriorities(Int p1, Int p2, Error.Block *eb);
   124
   125        /*!
   126         *  ======== sleep ========
   127         *  Sleep for certain number of microseconds
   128         *
   129         *  Refer to {@link xdc.runtime.knl.Thread#sleep} for more details.
   130         *
   131         *  @param(timeout)     timeout in microseconds
   132         *  @param(eb)          Pointer to Error.Block
   133         *  @a(returns)         true for success; false for failure
   134         */
   135        Bool sleep(UInt timeout, Error.Block *eb);
   136
   137    instance:
   138
   139        /*! Thread function argument. Default is NULL. */
   140        config IArg arg = null;
   141
   142        /*!
   143         *  ======== priority ========
   144         *  Thread priority
   145         *
   146         *  Thread defines several constants which allows applications to select
   147         *  a priority in an OS independent way. Priority_LOWEST,
   148         *  Priority_BELOW_NORMAL, Priority_NORMAL, Priority_ABOVE_NORMAL and
   149         *  Priority_HIGHEST. These values get mapped to OS specific priorities
   150         *  by the OS specific delegate.
   151         */
   152        config Priority priority = Priority_NORMAL;
   153
   154        /*!
   155         *  ======== osPriority ========
   156         *  OS specific thread priority
   157         *
   158         *  Used to specify an OS specific value for priority. If set this value
   159         *  takes precedence over {@link #priority}.
   160         */
   161        config Int osPriority = INVALID_OS_PRIORITY;
   162
   163        /*! Thread stack size. If left at zero, OS default is used */
   164        config SizeT stackSize = 0;
   165
   166        /*! User-specified thread local storage data. */
   167        config Ptr tls = null;
   168
   169        /*!
   170         *  ======== create ========
   171         *  Create a Thread object.
   172         *
   173         *  This function spawns a new thread calling the function fxn.
   174         *
   175         *  @param(fxn) function for new thread to begin execution
   176         */
   177        create(RunFxn fxn);
   178
   179        /*!
   180         *  ======== join ========
   181         *  Join on a Thread.
   182         *
   183         *  Refer to {@link xdc.runtime.knl.Thread#join} for more details.
   184         *
   185         *  @param(eb)     Pointer to Error.Block
   186         *  @a(returns)    true for success; false for failure
   187         */
   188        Bool join(Error.Block* eb);
   189
   190        /*!
   191         *  ======== getPriority ========
   192         *  Obtain a thread's priority.
   193         *
   194         *  Refer to {@link xdc.runtime.knl.Thread#getPriority} for more details.
   195         *
   196         *  @param(eb)     Pointer to Error.Block
   197         *  @a(returns)    thread priority in case of success; Priority_INVALID in
   198         *                 case of error;
   199         */
   200        Priority getPriority(Error.Block* eb);
   201
   202        /*!
   203         *  ======== setPriority ========
   204         *  Set a thread's priority.
   205         *
   206         *  Refer to {@link xdc.runtime.knl.Thread#setPriority} for more details.
   207         *
   208         *  @param(newPri)    new thread priority
   209         *  @param(eb)        Pointer to Error.Block
   210         *  @a(returns)       true for success; false for failure
   211         */
   212        Bool setPriority(Priority newPri, Error.Block* eb);
   213
   214        /*!
   215         *  ======== getOsPriority ========
   216         *  Obtain a thread's os specific priority.
   217         *
   218         *  For OSes that support dynamic priority boosting, the value returned
   219         *  is the base priority of the thread.
   220         *
   221         *  Refer to {@link xdc.runtime.knl.Thread#getOsPriority} for more details.
   222         *
   223         *  @param(eb)      Pointer to Error.Block
   224         *  @a(returns)     thread priority in case of success; GETPRI_FAILED in
   225         *                  case of error;
   226         */
   227        Int getOsPriority(Error.Block *eb);
   228
   229        /*!
   230         *  ======== setOsPriority ========
   231         *  Set a thread's priority.
   232         *
   233         *  This API sets the base priority of the thread on OSes that
   234         *  support dynamic priority boosting
   235         *
   236         *  Refer to {@link xdc.runtime.knl.Thread#setOsPriority} for more details.
   237         *
   238         *  @param(newPri)  new thread priority
   239         *  @param(eb)      Pointer to Error.Block
   240         *  @a(returns)     true for success; false for failure
   241         */
   242        Bool setOsPriority(Int newPri, Error.Block *eb);
   243
   244        /*!
   245         *  ======== getOsHandle ========
   246         *  Get the OS thread handle
   247         *
   248         *   @a(returns)     null in case of error
   249         */
   250        Ptr getOsHandle();
   251
   252        /*!
   253         *  ======== getTls ========
   254         *  Obtain a thread's local storage pointer
   255         *
   256         *  @a(returns)     null in case of error
   257         */
   258        Ptr getTls();
   259
   260        /*!
   261         *  ======== setTls ========
   262         *  Set a thread's local storage pointer.
   263         *
   264         *  @param(tls)     thread tls
   265         */
   266        Void setTls(Ptr tls);
   267
   268
   269        /*!
   270         *  ======== stat ========
   271         *  Obtain a thread's stats
   272         *
   273         *  @param(buf)    Pointer to Stat
   274         *  @param(eb)     Pointer to Error.Block
   275         *  @a(returns)    true for success; false for failure
   276         */
   277        Bool stat(Stat* buf, Error.Block* eb);
   278
   279    }
   280    /*
   281     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   282     */
   283


module xdc.runtime.knl.Semaphore
index URL

Provides semaphore services when an ISemaphore.Handle is available

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
An application can isolate itself from ISemaphore implementations by using this module. The application must first obtain an ISemaphore.Handle. It make get such a handle by directly calling SemThread.create or SemProcess.create. Then the application can use the generic APIs provided by this module.
C synopsis target-domain sourced in xdc/runtime/knl/Semaphore.xdc
#include <xdc/runtime/knl/Semaphore.h>
Functions
Int | Semaphore_pend// Wait for the semaphore to have a nonzero count, then decrement it(ISemaphore_Handle sem, UInt timeout, Error_Block *eb);
Bool | Semaphore_post// Increment the semaphore count(ISemaphore_Handle sem, Error_Block *eb);
Functions common to all target modules
 | Semaphore_Module_getMask// Returns the diagnostics mask for this module, Semaphore_Module_hasMask// Test whether this module has a diagnostics mask, Semaphore_Module_heap// The heap from which this module allocates memory, Semaphore_Module_id// Get this module's unique id, Semaphore_Module_setMask// Set the diagnostics mask for this module, Semaphore_Module_startupDone// Test if this module has completed startup
Defines
#define | Semaphore_FOREVER// Used as the timeout value to specify wait forever (UInt)ISemaphore.FOREVER
Typedefs
typedef enum | Semaphore_PendStatus// Error codes returned by Semaphore_pend ...
const Semaphore_FOREVER
index URL

Used as the timeout value to specify wait forever

C synopsis target-domain
#define Semaphore_FOREVER (UInt)ISemaphore.FOREVER
enum Semaphore_PendStatus
index URL

Error codes returned by Semaphore_pend

C synopsis target-domain
typedef enum Semaphore_PendStatus {
    Semaphore_PendStatus_ERROR,
    Semaphore_PendStatus_TIMEOUT,
    Semaphore_PendStatus_SUCCESS
} Semaphore_PendStatus;
Semaphore_pend() // module-wide
index URL

Wait for the semaphore to have a nonzero count, then decrement it

C synopsis target-domain
Int Semaphore_pend(ISemaphore_Handle sem, UInt timeout, Error_Block *eb);
ARGUMENTS
sem — ISemaphore.Handle to be used
timeout — timeout in microseconds or Semaphore_FOREVER to wait forever
eb — Pointer to Error.Block
DETAILS
The function returns one of the following:
  • PendStatus_ERROR if an error occured.
  • PendStatus_TIMEOUT denotes timeout.
  • PendStatus_SUCCESS semaphore was decremented.
RETURNS
status returned. (refer to above description)
Semaphore_post() // module-wide
index URL

Increment the semaphore count

C synopsis target-domain
Bool Semaphore_post(ISemaphore_Handle sem, Error_Block *eb);
ARGUMENTS
sem — ISemaphore.Handle to be used
eb — Pointer to Error.Block
RETURNS
true for success, false for error in Error block.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Semaphore_Module_id();
// Get this module's unique id
Bool Semaphore_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Semaphore_Module_heap();
// The heap from which this module allocates memory
Bool Semaphore_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Semaphore_Module_getMask();
// Returns the diagnostics mask for this module
Void Semaphore_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/knl/Semaphore.xdc
var Semaphore = xdc.useModule('xdc.runtime.knl.Semaphore');
local proxy modules
     Semaphore.Proxy// Proxy used for optimization = ISemaphore.Module null
         Semaphore.Proxy.delegate$ = ISemaphore.Module null
         Semaphore.Proxy.abstractInstances$ = false
module-wide constants & types
    const Semaphore.FOREVER// Used as the timeout value to specify wait forever = ISemaphore.FOREVER;
    values of type Semaphore.PendStatus// Error codes returned by Semaphore_pend
        const Semaphore.PendStatus_ERROR;
        const Semaphore.PendStatus_TIMEOUT;
        const Semaphore.PendStatus_SUCCESS;
module-wide config parameters
     Semaphore.common$// Common module configuration parameters = Types.Common$ undefined;
proxy Semaphore.Proxy
index URL

Proxy used for optimization

XDCscript usage meta-domain
Semaphore.Proxy = ISemaphore.Module null
// some delegate module inheriting the ISemaphore interface
    Semaphore.Proxy.delegate$ = ISemaphore.Module null
    // explicit access to the currently bound delegate module
    Semaphore.Proxy.abstractInstances$ = false
    // use indirect runtime function calls if true
DETAILS
If ALL ISemaphore.Handles were created using the same module (e.g SemProcess) then setting this Proxy to SemProcess and setting Semaphore.Proxy.abstractInstances$ = false, Semaphore APIs can have better performance.
const Semaphore.FOREVER
index URL

Used as the timeout value to specify wait forever

XDCscript usage meta-domain
const Semaphore.FOREVER = ISemaphore.FOREVER;
C SYNOPSIS
Semaphore_FOREVER
enum Semaphore.PendStatus
index URL

Error codes returned by Semaphore_pend

XDCscript usage meta-domain
values of type Semaphore.PendStatus
    const Semaphore.PendStatus_ERROR;
    const Semaphore.PendStatus_TIMEOUT;
    const Semaphore.PendStatus_SUCCESS;
C SYNOPSIS
Semaphore_PendStatus
metaonly config Semaphore.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Semaphore.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 Thu, 08 Nov 2012 02:13:30 GMT


module xdc.runtime.knl.Semaphore

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Semaphore.xdc ========
    15     */
    16
    17    import xdc.runtime.Assert;
    18    import xdc.runtime.Error;
    19    import xdc.runtime.knl.ISemaphore;
    20
    21    /*!
    22     *  ======== Semaphore ========
    23     *  Provides semaphore services when an ISemaphore.Handle is available.
    24     *
    25     *  An application can isolate itself from ISemaphore implementations by using
    26     *  this module. The application must first obtain an ISemaphore.Handle.
    27     *  It make get such a handle by directly calling {@link SemThread#create} or
    28     *  {@link SemProcess#create}. Then the application can use the generic
    29     *  APIs provided by this module.
    30     */
    31
    32    module Semaphore
    33    {
    34        /*!
    35         *  ======== PendStatus ========
    36         *  Error codes returned by Semaphore_pend
    37         */
    38        enum PendStatus {
    39            PendStatus_ERROR = -1,
    40            PendStatus_TIMEOUT = 0,
    41            PendStatus_SUCCESS = 1
    42        };
    43
    44        /*! Used as the timeout value to specify wait forever */
    45        const UInt FOREVER = ISemaphore.FOREVER;
    46
    47        /*!
    48         *  Proxy used for optimization.
    49         *
    50         *  If ALL ISemaphore.Handles were created using the same module
    51         *  (e.g SemProcess) then setting this Proxy to SemProcess and
    52         *  setting Semaphore.Proxy.abstractInstances$ = false,
    53         *  Semaphore APIs can have better performance.
    54         */
    55        proxy Proxy inherits ISemaphore;
    56
    57        /*!
    58         *  ======== pend ========
    59         *  Wait for the semaphore to have a nonzero count, then decrement it.
    60         *
    61         *  The function returns one of the following:
    62         *  @p(blist)
    63         *  -{@link #PendStatus_ERROR} if an error occured.
    64         *  -{@link #PendStatus_TIMEOUT} denotes timeout.
    65         *  -{@link #PendStatus_SUCCESS} semaphore was decremented.
    66         *
    67         *  @p
    68         *
    69         *  @param(sem)     ISemaphore.Handle to be used
    70         *  @param(timeout) timeout in microseconds or
    71         *  {@link #FOREVER Semaphore_FOREVER} to wait forever
    72         *  @param(eb)      Pointer to Error.Block
    73         *  @a(returns)     status returned. (refer to above description)
    74         */
    75        Int pend(ISemaphore.Handle sem, UInt timeout, Error.Block *eb);
    76
    77        /*!
    78         *  ======== post ========
    79         *  Increment the semaphore count.
    80         *
    81         *  @param(sem)     ISemaphore.Handle to be used
    82         *  @param(eb)      Pointer to Error.Block
    83         *  @a(returns)     true for success, false for error in Error block.
    84         */
    85        Bool post(ISemaphore.Handle sem, Error.Block *eb);
    86    }
    87    /*
    88     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    89     */
    90


module xdc.runtime.knl.SemProcess
index URL

SemProcess Manager

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module manages multi-process semaphores through its proxy ISemProcessSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/knl/SemProcess.xdc
#include <xdc/runtime/knl/SemProcess.h>
Functions
Void | SemProcess_construct// Initialize a new instance object inside the provided structure(SemProcess_Struct *structP, Int count, UInt32 key, const SemProcess_Params *params, Error_Block *eb);
SemProcess_Handle | SemProcess_create// Allocate and initialize a new instance object and return its handle(Int count, UInt32 key, const SemProcess_Params *params, Error_Block *eb);
Void | SemProcess_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(SemProcess_Handle *handleP);
Void | SemProcess_destruct// Finalize the instance object inside the provided structure(SemProcess_Struct *structP);
Void | SemProcess_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(SemProcess_Params *params);
Functions common to all ISemaphore modules
Int | SemProcess_pend// Wait for the semaphore to become available(SemProcess_Handle handle, UInt timeout, Error_Block *eb);
Bool | SemProcess_post// Increment the semaphore count(SemProcess_Handle handle, Error_Block *eb);
Functions common to all target instances
 | SemProcess_handle// Convert this instance structure pointer into an instance handle, SemProcess_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, SemProcess_Handle_label// The label associated with this instance object, SemProcess_Handle_name// The name of this instance object, SemProcess_Handle_upCast// unconditionally move one level up the inheritance hierarchy, SemProcess_Object_count// The number of statically-created instance objects, SemProcess_Object_first// The handle of the first dynamically-created instance object, or NULL, SemProcess_Object_get// The handle of the i-th statically-created instance object (array == NULL), SemProcess_Object_heap// The heap used to allocate dynamically-created instance objects, SemProcess_Object_next// The handle of the next dynamically-created instance object, or NULL, SemProcess_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | SemProcess_Module_getMask// Returns the diagnostics mask for this module, SemProcess_Module_hasMask// Test whether this module has a diagnostics mask, SemProcess_Module_heap// The heap from which this module allocates memory, SemProcess_Module_id// Get this module's unique id, SemProcess_Module_setMask// Set the diagnostics mask for this module, SemProcess_Module_startupDone// Test if this module has completed startup
Defines
#define | SemProcess_FOREVER// Used as the timeout value to specify wait forever (UInt)~(0)
Typedefs
typedef SemProcess_Object * | SemProcess_Handle// Client reference to an instance object;
typedef enum | SemProcess_Mode// Types of semaphores ...
typedef struct | SemProcess_Object// Opaque internal representation of an instance object SemProcess_Object;
typedef struct | SemProcess_Params// Instance config-params structure ...
typedef enum | SemProcess_PendStatus// Error codes returned by Semaphore_pend ...
typedef struct | SemProcess_Struct// Opaque client structure large enough to hold an instance object SemProcess_Struct;
DETAILS
This module manages multi-process semaphores through its proxy ISemProcessSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used.
Here is an example showing how the proxy is bound to an BIOS 6.x specific delegate.
  var SemProcess = xdc.useModule('xdc.runtime.knl.SemProcess');
  SemProcess.Proxy = xdc.useModule('ti.sysbios.xdcruntime.SemProcessSupport');
Typically the package containing the delegates have a Settings module that will bind all xdc.runtime.knl proxies. The following example sets up all the xdc.runtime.knl proxies.
  xdc.useModule("ti.sysbios.xdcruntime.Settings");
const SemProcess_FOREVER
index URL

Used as the timeout value to specify wait forever

C synopsis target-domain
#define SemProcess_FOREVER (UInt)~(0)
enum SemProcess_Mode
index URL

Types of semaphores

C synopsis target-domain
typedef enum SemProcess_Mode {
    SemProcess_Mode_COUNTING,
    // Counting semaphore
    SemProcess_Mode_BINARY
    // Binary Semaphore
} SemProcess_Mode;
enum SemProcess_PendStatus
index URL

Error codes returned by Semaphore_pend

C synopsis target-domain
typedef enum SemProcess_PendStatus {
    SemProcess_PendStatus_ERROR,
    SemProcess_PendStatus_TIMEOUT,
    SemProcess_PendStatus_SUCCESS
} SemProcess_PendStatus;
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SemProcess_Module_id();
// Get this module's unique id
Bool SemProcess_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SemProcess_Module_heap();
// The heap from which this module allocates memory
Bool SemProcess_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SemProcess_Module_getMask();
// Returns the diagnostics mask for this module
Void SemProcess_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct SemProcess_Object SemProcess_Object;
// Opaque internal representation of an instance object
typedef SemProcess_Object *SemProcess_Handle;
// Client reference to an instance object
typedef struct SemProcess_Struct SemProcess_Struct;
// Opaque client structure large enough to hold an instance object
SemProcess_Handle SemProcess_handle(SemProcess_Struct *structP);
// Convert this instance structure pointer into an instance handle
SemProcess_Struct *SemProcess_struct(SemProcess_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct SemProcess_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
     ISemaphore_Mode mode;
    // Semaphore mode. Default is COUNTING
} SemProcess_Params;
Void SemProcess_Params_init(SemProcess_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config SemProcess_mode // instance
index URL

Semaphore mode. Default is COUNTING

C synopsis target-domain
struct SemProcess_Params {
     ...
     ISemaphore_Mode mode;
DETAILS
When mode is BINARY , the semaphore has only two states, available and unavailable. When mode is COUNTING, the semaphore keeps track of number of times a semaphore is posted.
Instance Creation
index URL

C synopsis target-domain
SemProcess_Handle SemProcess_create(Int count, UInt32 key, const SemProcess_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void SemProcess_construct(SemProcess_Struct *structP, Int count, UInt32 key, const SemProcess_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure
ARGUMENTS
count — initial semaphore count
key — globally unique key for SysV-style semaphore
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function creates a new SemProcess object which is initialized to count. All semaphores created with the same key reference the same underlying synchronization object and work between processes.
Instance Deletion
index URL

C synopsis target-domain
Void SemProcess_delete(SemProcess_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void SemProcess_destruct(SemProcess_Struct *structP);
// Finalize the instance object inside the provided structure
SemProcess_pend() // instance
index URL

Wait for the semaphore to become available

C synopsis target-domain
Int SemProcess_pend(SemProcess_Handle handle, UInt timeout, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created SemProcess instance object
timeout — timeout in microseconds
eb — error block
DETAILS
  • PendStatus_ERROR if an error occured.
  • PendStatus_TIMEOUT denotes timeout.
  • PendStatus_SUCCESS semaphore was decremented. details.
RETURNS
refer to description above
SemProcess_post() // instance
index URL

Increment the semaphore count

C synopsis target-domain
Bool SemProcess_post(SemProcess_Handle handle, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created SemProcess instance object
eb — error block
RETURNS
true for success, false for error in error block
Instance Convertors
index URL

C synopsis target-domain
ISemaphore_Handle SemProcess_Handle_upCast(SemProcess_Handle handle);
// unconditionally move one level up the inheritance hierarchy
SemProcess_Handle SemProcess_Handle_downCast(ISemaphore_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int SemProcess_Object_count();
// The number of statically-created instance objects
SemProcess_Handle SemProcess_Object_get(SemProcess_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
SemProcess_Handle SemProcess_Object_first();
// The handle of the first dynamically-created instance object, or NULL
SemProcess_Handle SemProcess_Object_next(SemProcess_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle SemProcess_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *SemProcess_Handle_label(SemProcess_Handle handle, Types_Label *buf);
// The label associated with this instance object
String SemProcess_Handle_name(SemProcess_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/SemProcess.xdc
var SemProcess = xdc.useModule('xdc.runtime.knl.SemProcess');
local proxy modules
     SemProcess.Proxy// Proxy that needs to be bound to an OS specific delegate = ISemProcessSupport.Module null
         SemProcess.Proxy.delegate$ = ISemProcessSupport.Module null
         SemProcess.Proxy.abstractInstances$ = false
module-wide constants & types
    const SemProcess.FOREVER// Used as the timeout value to specify wait forever = ~(0);
    values of type SemProcess.Mode// Types of semaphores
        const SemProcess.Mode_COUNTING// Counting semaphore;
        const SemProcess.Mode_BINARY// Binary Semaphore;
    values of type SemProcess.PendStatus// Error codes returned by Semaphore_pend
        const SemProcess.PendStatus_ERROR;
        const SemProcess.PendStatus_TIMEOUT;
        const SemProcess.PendStatus_SUCCESS;
module-wide config parameters
     SemProcess.common$// Common module configuration parameters = Types.Common$ undefined;
per-instance config parameters
    var params = new SemProcess.Params// Instance config-params object;
        params.mode// Semaphore mode. Default is COUNTING = ISemaphore.Mode ISemaphore.Mode_COUNTING;
per-instance creation
    var inst = SemProcess.create// Create an instance-object(Int count, UInt32 key, params);
proxy SemProcess.Proxy
index URL

Proxy that needs to be bound to an OS specific delegate

XDCscript usage meta-domain
SemProcess.Proxy = ISemProcessSupport.Module null
// some delegate module inheriting the ISemProcessSupport interface
    SemProcess.Proxy.delegate$ = ISemProcessSupport.Module null
    // explicit access to the currently bound delegate module
    SemProcess.Proxy.abstractInstances$ = false
    // use indirect runtime function calls if true
const SemProcess.FOREVER
index URL

Used as the timeout value to specify wait forever

XDCscript usage meta-domain
const SemProcess.FOREVER = ~(0);
C SYNOPSIS
SemProcess_FOREVER
enum SemProcess.Mode
index URL

Types of semaphores

XDCscript usage meta-domain
values of type SemProcess.Mode
    const SemProcess.Mode_COUNTING;
    // Counting semaphore
    const SemProcess.Mode_BINARY;
    // Binary Semaphore
C SYNOPSIS
SemProcess_Mode
enum SemProcess.PendStatus
index URL

Error codes returned by Semaphore_pend

XDCscript usage meta-domain
values of type SemProcess.PendStatus
    const SemProcess.PendStatus_ERROR;
    const SemProcess.PendStatus_TIMEOUT;
    const SemProcess.PendStatus_SUCCESS;
C SYNOPSIS
SemProcess_PendStatus
metaonly config SemProcess.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SemProcess.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.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SemProcess.Params;
// Instance config-params object
    params.mode = ISemaphore.Mode ISemaphore.Mode_COUNTING;
    // Semaphore mode. Default is COUNTING
config SemProcess.mode // instance
index URL

Semaphore mode. Default is COUNTING

XDCscript usage meta-domain
var params = new SemProcess.Params;
...
params.mode = ISemaphore.Mode ISemaphore.Mode_COUNTING;
DETAILS
When mode is BINARY , the semaphore has only two states, available and unavailable. When mode is COUNTING, the semaphore keeps track of number of times a semaphore is posted.
C SYNOPSIS
null
Instance Creation
index URL

XDCscript usage meta-domain
var params = new SemProcess.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = SemProcess.create(Int count, UInt32 key, params);
// Create an instance-object
ARGUMENTS
count — initial semaphore count
key — globally unique key for SysV-style semaphore
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function creates a new SemProcess object which is initialized to count. All semaphores created with the same key reference the same underlying synchronization object and work between processes.
generated on Thu, 08 Nov 2012 02:13:29 GMT


module xdc.runtime.knl.SemProcess

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== SemProcess.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18    import xdc.runtime.knl.ISemaphore;
    19    import xdc.runtime.knl.ISemProcessSupport;
    20
    21    /*!
    22     *  ======== SemProcess ========
    23     *  SemProcess Manager
    24     *
    25     *  This module manages multi-process semaphores through its proxy
    26     *  ISemProcessSupport interface. It has a module wide config parameter
    27     *  {@link #Proxy} which needs to be bound to an OS specific delegate before
    28     *  this module can be used.
    29     *
    30     *  Here is an example showing how the proxy is bound to an BIOS 6.x specific
    31     *  delegate.
    32     *
    33     *  @p(code)
    34     *  var SemProcess = xdc.useModule('xdc.runtime.knl.SemProcess');
    35     *  SemProcess.Proxy = xdc.useModule('ti.sysbios.xdcruntime.SemProcessSupport');
    36     *  @p
    37     *
    38     *  Typically the package containing the delegates have a Settings module that
    39     *  will bind all {@link xdc.runtime.knl} proxies. The following
    40     *  example sets up all the xdc.runtime.knl proxies.
    41     *
    42     *  @p(code)
    43     *  xdc.useModule("ti.sysbios.xdcruntime.Settings");
    44     *  @p
    45     */
    46
    47    @InstanceInitError      /* because initialization can fail */
    48    @InstanceFinalize       /* have to Semaphore_Proxy_delete(sem) on delete */
    49
    50    module SemProcess inherits ISemaphore
    51    {
    52
    53        /*! Proxy that needs to be bound to an OS specific delegate. */
    54        proxy Proxy inherits ISemProcessSupport;
    55
    56    instance:
    57
    58       /*!
    59        *  ======== create ========
    60        *  Create a SemProcess object
    61        *
    62        *  This function creates a new `SemProcess` object which is initialized to
    63        *  count.  All semaphores created with the same key reference the same
    64        *  underlying synchronization object and work between processes.
    65        *
    66        *  @param(count)    initial semaphore count
    67        *  @param(key)      globally unique key for SysV-style semaphore
    68        */
    69        create(Int count, UInt32 key);
    70
    71    internal:
    72
    73        struct Instance_State {
    74            Proxy.Handle proxyHandle;
    75        }
    76    }
    77    /*
    78     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:13; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    79     */
    80


module xdc.runtime.knl.SemThread
index URL

SemThread Manager

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module manages semaphores through its proxy ISemThreadSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/knl/SemThread.xdc
#include <xdc/runtime/knl/SemThread.h>
Functions
Void | SemThread_construct// Initialize a new instance object inside the provided structure(SemThread_Struct *structP, Int count, const SemThread_Params *params, Error_Block *eb);
SemThread_Handle | SemThread_create// Allocate and initialize a new instance object and return its handle(Int count, const SemThread_Params *params, Error_Block *eb);
Void | SemThread_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(SemThread_Handle *handleP);
Void | SemThread_destruct// Finalize the instance object inside the provided structure(SemThread_Struct *structP);
Void | SemThread_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(SemThread_Params *params);
Functions common to all ISemaphore modules
Int | SemThread_pend// Wait for the semaphore to become available(SemThread_Handle handle, UInt timeout, Error_Block *eb);
Bool | SemThread_post// Increment the semaphore count(SemThread_Handle handle, Error_Block *eb);
Functions common to all target instances
 | SemThread_handle// Convert this instance structure pointer into an instance handle, SemThread_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, SemThread_Handle_label// The label associated with this instance object, SemThread_Handle_name// The name of this instance object, SemThread_Handle_upCast// unconditionally move one level up the inheritance hierarchy, SemThread_Object_count// The number of statically-created instance objects, SemThread_Object_first// The handle of the first dynamically-created instance object, or NULL, SemThread_Object_get// The handle of the i-th statically-created instance object (array == NULL), SemThread_Object_heap// The heap used to allocate dynamically-created instance objects, SemThread_Object_next// The handle of the next dynamically-created instance object, or NULL, SemThread_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | SemThread_Module_getMask// Returns the diagnostics mask for this module, SemThread_Module_hasMask// Test whether this module has a diagnostics mask, SemThread_Module_heap// The heap from which this module allocates memory, SemThread_Module_id// Get this module's unique id, SemThread_Module_setMask// Set the diagnostics mask for this module, SemThread_Module_startupDone// Test if this module has completed startup
Defines
#define | SemThread_FOREVER// Used as the timeout value to specify wait forever (UInt)~(0)
Typedefs
typedef SemThread_Object * | SemThread_Handle// Client reference to an instance object;
typedef enum | SemThread_Mode// Types of semaphores ...
typedef struct | SemThread_Object// Opaque internal representation of an instance object SemThread_Object;
typedef struct | SemThread_Params// Instance config-params structure ...
typedef enum | SemThread_PendStatus// Error codes returned by Semaphore_pend ...
typedef struct | SemThread_Struct// Opaque client structure large enough to hold an instance object SemThread_Struct;
DETAILS
This module manages semaphores through its proxy ISemThreadSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used.
Here is an example showing how the proxy is bound to an BIOS 6.x specific delegate.
  var SemThread = xdc.useModule('xdc.runtime.knl.SemThread');
  SemThread.Proxy = xdc.useModule('ti.sysbios.xdcruntime.SemThreadSupport');
Typically the package containing the delegates have a Settings module that will bind all xdc.runtime.knl proxies. The following example sets up all the xdc.runtime.knl proxies.
  xdc.useModule("ti.sysbios.xdcruntime.Settings");
const SemThread_FOREVER
index URL

Used as the timeout value to specify wait forever

C synopsis target-domain
#define SemThread_FOREVER (UInt)~(0)
enum SemThread_Mode
index URL

Types of semaphores

C synopsis target-domain
typedef enum SemThread_Mode {
    SemThread_Mode_COUNTING,
    // Counting semaphore
    SemThread_Mode_BINARY
    // Binary Semaphore
} SemThread_Mode;
enum SemThread_PendStatus
index URL

Error codes returned by Semaphore_pend

C synopsis target-domain
typedef enum SemThread_PendStatus {
    SemThread_PendStatus_ERROR,
    SemThread_PendStatus_TIMEOUT,
    SemThread_PendStatus_SUCCESS
} SemThread_PendStatus;
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SemThread_Module_id();
// Get this module's unique id
Bool SemThread_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SemThread_Module_heap();
// The heap from which this module allocates memory
Bool SemThread_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SemThread_Module_getMask();
// Returns the diagnostics mask for this module
Void SemThread_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct SemThread_Object SemThread_Object;
// Opaque internal representation of an instance object
typedef SemThread_Object *SemThread_Handle;
// Client reference to an instance object
typedef struct SemThread_Struct SemThread_Struct;
// Opaque client structure large enough to hold an instance object
SemThread_Handle SemThread_handle(SemThread_Struct *structP);
// Convert this instance structure pointer into an instance handle
SemThread_Struct *SemThread_struct(SemThread_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct SemThread_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
     ISemaphore_Mode mode;
    // Semaphore mode. Default is COUNTING
} SemThread_Params;
Void SemThread_Params_init(SemThread_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config SemThread_mode // instance
index URL

Semaphore mode. Default is COUNTING

C synopsis target-domain
struct SemThread_Params {
     ...
     ISemaphore_Mode mode;
DETAILS
When mode is BINARY , the semaphore has only two states, available and unavailable. When mode is COUNTING, the semaphore keeps track of number of times a semaphore is posted.
Instance Creation
index URL

C synopsis target-domain
SemThread_Handle SemThread_create(Int count, const SemThread_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void SemThread_construct(SemThread_Struct *structP, Int count, const SemThread_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure
ARGUMENTS
count — initial semaphore count
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function creates a new SemThread object which is initialized to count.
Instance Deletion
index URL

C synopsis target-domain
Void SemThread_delete(SemThread_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void SemThread_destruct(SemThread_Struct *structP);
// Finalize the instance object inside the provided structure
SemThread_pend() // instance
index URL

Wait for the semaphore to become available

C synopsis target-domain
Int SemThread_pend(SemThread_Handle handle, UInt timeout, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created SemThread instance object
timeout — timeout in microseconds
eb — error block
DETAILS
  • PendStatus_ERROR if an error occured.
  • PendStatus_TIMEOUT denotes timeout.
  • PendStatus_SUCCESS semaphore was decremented. details.
RETURNS
refer to description above
SemThread_post() // instance
index URL

Increment the semaphore count

C synopsis target-domain
Bool SemThread_post(SemThread_Handle handle, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created SemThread instance object
eb — error block
RETURNS
true for success, false for error in error block
Instance Convertors
index URL

C synopsis target-domain
ISemaphore_Handle SemThread_Handle_upCast(SemThread_Handle handle);
// unconditionally move one level up the inheritance hierarchy
SemThread_Handle SemThread_Handle_downCast(ISemaphore_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int SemThread_Object_count();
// The number of statically-created instance objects
SemThread_Handle SemThread_Object_get(SemThread_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
SemThread_Handle SemThread_Object_first();
// The handle of the first dynamically-created instance object, or NULL
SemThread_Handle SemThread_Object_next(SemThread_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle SemThread_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *SemThread_Handle_label(SemThread_Handle handle, Types_Label *buf);
// The label associated with this instance object
String SemThread_Handle_name(SemThread_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/SemThread.xdc
var SemThread = xdc.useModule('xdc.runtime.knl.SemThread');
local proxy modules
     SemThread.Proxy// Proxy that needs to be bound to an OS specific delegate = ISemThreadSupport.Module null
         SemThread.Proxy.delegate$ = ISemThreadSupport.Module null
         SemThread.Proxy.abstractInstances$ = false
module-wide constants & types
    const SemThread.FOREVER// Used as the timeout value to specify wait forever = ~(0);
    values of type SemThread.Mode// Types of semaphores
        const SemThread.Mode_COUNTING// Counting semaphore;
        const SemThread.Mode_BINARY// Binary Semaphore;
    values of type SemThread.PendStatus// Error codes returned by Semaphore_pend
        const SemThread.PendStatus_ERROR;
        const SemThread.PendStatus_TIMEOUT;
        const SemThread.PendStatus_SUCCESS;
module-wide config parameters
     SemThread.common$// Common module configuration parameters = Types.Common$ undefined;
per-instance config parameters
    var params = new SemThread.Params// Instance config-params object;
        params.mode// Semaphore mode. Default is COUNTING = ISemaphore.Mode ISemaphore.Mode_COUNTING;
per-instance creation
    var inst = SemThread.create// Create an instance-object(Int count, params);
proxy SemThread.Proxy
index URL

Proxy that needs to be bound to an OS specific delegate

XDCscript usage meta-domain
SemThread.Proxy = ISemThreadSupport.Module null
// some delegate module inheriting the ISemThreadSupport interface
    SemThread.Proxy.delegate$ = ISemThreadSupport.Module null
    // explicit access to the currently bound delegate module
    SemThread.Proxy.abstractInstances$ = false
    // use indirect runtime function calls if true
const SemThread.FOREVER
index URL

Used as the timeout value to specify wait forever

XDCscript usage meta-domain
const SemThread.FOREVER = ~(0);
C SYNOPSIS
SemThread_FOREVER
enum SemThread.Mode
index URL

Types of semaphores

XDCscript usage meta-domain
values of type SemThread.Mode
    const SemThread.Mode_COUNTING;
    // Counting semaphore
    const SemThread.Mode_BINARY;
    // Binary Semaphore
C SYNOPSIS
SemThread_Mode
enum SemThread.PendStatus
index URL

Error codes returned by Semaphore_pend

XDCscript usage meta-domain
values of type SemThread.PendStatus
    const SemThread.PendStatus_ERROR;
    const SemThread.PendStatus_TIMEOUT;
    const SemThread.PendStatus_SUCCESS;
C SYNOPSIS
SemThread_PendStatus
metaonly config SemThread.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SemThread.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.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SemThread.Params;
// Instance config-params object
    params.mode = ISemaphore.Mode ISemaphore.Mode_COUNTING;
    // Semaphore mode. Default is COUNTING
config SemThread.mode // instance
index URL

Semaphore mode. Default is COUNTING

XDCscript usage meta-domain
var params = new SemThread.Params;
...
params.mode = ISemaphore.Mode ISemaphore.Mode_COUNTING;
DETAILS
When mode is BINARY , the semaphore has only two states, available and unavailable. When mode is COUNTING, the semaphore keeps track of number of times a semaphore is posted.
C SYNOPSIS
null
Instance Creation
index URL

XDCscript usage meta-domain
var params = new SemThread.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = SemThread.create(Int count, params);
// Create an instance-object
ARGUMENTS
count — initial semaphore count
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function creates a new SemThread object which is initialized to count.
generated on Thu, 08 Nov 2012 02:13:30 GMT


module xdc.runtime.knl.SemThread

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== SemThread.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18    import xdc.runtime.knl.ISemaphore;
    19    import xdc.runtime.knl.ISemThreadSupport;
    20
    21    /*!
    22     *  ======== SemThread ========
    23     *  SemThread Manager.
    24     *
    25     *  This module manages semaphores through its proxy ISemThreadSupport
    26     *  interface. It has a module wide config parameter
    27     *  {@link #Proxy} which needs to be bound to an OS specific delegate before
    28     *  this module can be used.
    29     *
    30     *  Here is an example showing how the proxy is bound to an BIOS 6.x specific
    31     *  delegate.
    32     *
    33     *  @p(code)
    34     *  var SemThread = xdc.useModule('xdc.runtime.knl.SemThread');
    35     *  SemThread.Proxy = xdc.useModule('ti.sysbios.xdcruntime.SemThreadSupport');
    36     *  @p
    37     *
    38     *  Typically the package containing the delegates have a Settings module that
    39     *  will bind all {@link xdc.runtime.knl} proxies. The following
    40     *  example sets up all the xdc.runtime.knl proxies.
    41     *
    42     *  @p(code)
    43     *  xdc.useModule("ti.sysbios.xdcruntime.Settings");
    44     *  @p
    45     */
    46
    47    @InstanceInitError      /* because initialization can fail */
    48    @InstanceFinalize       /* have to SemThread_Proxy_delete(sem) on delete */
    49
    50    module SemThread inherits ISemaphore
    51    {
    52
    53        /*! Proxy that needs to be bound to an OS specific delegate. */
    54        proxy Proxy inherits ISemThreadSupport;
    55
    56    instance:
    57
    58       /*!
    59        *  ======== create ========
    60        *  Create a SemThread object.
    61        *
    62        *  This function creates a new `SemThread` object which is initialized to
    63        *  count.
    64        *
    65        *  @param(count)    initial semaphore count
    66        */
    67        create(Int count);
    68
    69    internal:
    70
    71        struct Instance_State {
    72            Proxy.Handle proxyHandle;
    73        }
    74
    75    }
    76    /*
    77     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    78     */
    79


module xdc.runtime.knl.Sync
index URL

Provides synchronization APIs when an ISync.Handle is available

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
The application must first obtain an ISync.Handle. It can get such a handle by directly calling SyncGeneric.create or SyncSemThread.create. Then the application can use the generic APIs provided by this module.
C synopsis target-domain sourced in xdc/runtime/knl/Sync.xdc
#include <xdc/runtime/knl/Sync.h>
Functions
Bool | Sync_query// Query for a particular quality(ISync_Handle sync, Int qual);
Void | Sync_signal// Called at completion of an activity(ISync_Handle sync);
Int | Sync_wait// Called to wait/poll for completion of an activity(ISync_Handle sync, UInt timeout, Error_Block *eb);
Functions common to all target modules
 | Sync_Module_getMask// Returns the diagnostics mask for this module, Sync_Module_hasMask// Test whether this module has a diagnostics mask, Sync_Module_heap// The heap from which this module allocates memory, Sync_Module_id// Get this module's unique id, Sync_Module_setMask// Set the diagnostics mask for this module, Sync_Module_startupDone// Test if this module has completed startup
Defines
#define | Sync_NO_WAIT// Used to specify no waiting (UInt)ISync.NO_WAIT
#define | Sync_WAIT_FOREVER// Used to wait forever (UInt)ISync.WAIT_FOREVER
Typedefs
typedef enum | Sync_WaitStatus// Error codes returned by Sync_wait ...
const Sync_NO_WAIT
index URL

Used to specify no waiting

C synopsis target-domain
#define Sync_NO_WAIT (UInt)ISync.NO_WAIT
const Sync_WAIT_FOREVER
index URL

Used to wait forever

C synopsis target-domain
#define Sync_WAIT_FOREVER (UInt)ISync.WAIT_FOREVER
enum Sync_WaitStatus
index URL

Error codes returned by Sync_wait

C synopsis target-domain
typedef enum Sync_WaitStatus {
    Sync_WaitStatus_ERROR,
    Sync_WaitStatus_TIMEOUT,
    Sync_WaitStatus_SUCCESS
} Sync_WaitStatus;
Sync_query() // module-wide
index URL

Query for a particular quality

C synopsis target-domain
Bool Sync_query(ISync_Handle sync, Int qual);
ARGUMENTS
sync — sync handle
qual — quality
DETAILS
FALSE is returned if quality not supported.
RETURNS
TRUE or FALSE.
Sync_signal() // module-wide
index URL

Called at completion of an activity

C synopsis target-domain
Void Sync_signal(ISync_Handle sync);
ARGUMENTS
sync — sync handle
DETAILS
This function is non-blocking. It is also required that the underlying sync be binary in nature.
Sync_wait() // module-wide
index URL

Called to wait/poll for completion of an activity

C synopsis target-domain
Int Sync_wait(ISync_Handle sync, UInt timeout, Error_Block *eb);
ARGUMENTS
sync — sync handle
timeout — timeout in microseconds
DETAILS
This function can block and typically waits for a semaphore to become available.
Non-blocking implementations should return WaitStatus_TIMEOUT.
RETURNS
  • WaitStatus_ERROR if an error occured.
  • WaitStatus_TIMEOUT denotes timeout.
  • WaitStatus_SUCCESS semaphore was decremented.
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Sync_Module_id();
// Get this module's unique id
Bool Sync_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Sync_Module_heap();
// The heap from which this module allocates memory
Bool Sync_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Sync_Module_getMask();
// Returns the diagnostics mask for this module
Void Sync_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/runtime/knl/Sync.xdc
var Sync = xdc.useModule('xdc.runtime.knl.Sync');
local proxy modules
     Sync.Proxy// Platform-specific implementation = ISync.Module null
         Sync.Proxy.delegate$ = ISync.Module null
         Sync.Proxy.abstractInstances$ = false
module-wide constants & types
    const Sync.NO_WAIT// Used to specify no waiting = ISync.NO_WAIT;
    const Sync.WAIT_FOREVER// Used to wait forever = ISync.WAIT_FOREVER;
    values of type Sync.WaitStatus// Error codes returned by Sync_wait
        const Sync.WaitStatus_ERROR;
        const Sync.WaitStatus_TIMEOUT;
        const Sync.WaitStatus_SUCCESS;
module-wide config parameters
     Sync.common$// Common module configuration parameters = Types.Common$ undefined;
proxy Sync.Proxy
index URL

Platform-specific implementation

XDCscript usage meta-domain
Sync.Proxy = ISync.Module null
// some delegate module inheriting the ISync interface
    Sync.Proxy.delegate$ = ISync.Module null
    // explicit access to the currently bound delegate module
    Sync.Proxy.abstractInstances$ = false
    // use indirect runtime function calls if true
DETAILS
If ALL ISync.Handles were created using the same module (e.g SyncSemProcess), then setting Proxy to SyncSemProcess and Sync.Proxy.abstractInstances$ to false will improve the performance of the Sync APIs.
const Sync.NO_WAIT
index URL

Used to specify no waiting

XDCscript usage meta-domain
const Sync.NO_WAIT = ISync.NO_WAIT;
C SYNOPSIS
Sync_NO_WAIT
const Sync.WAIT_FOREVER
index URL

Used to wait forever

XDCscript usage meta-domain
const Sync.WAIT_FOREVER = ISync.WAIT_FOREVER;
C SYNOPSIS
Sync_WAIT_FOREVER
enum Sync.WaitStatus
index URL

Error codes returned by Sync_wait

XDCscript usage meta-domain
values of type Sync.WaitStatus
    const Sync.WaitStatus_ERROR;
    const Sync.WaitStatus_TIMEOUT;
    const Sync.WaitStatus_SUCCESS;
C SYNOPSIS
Sync_WaitStatus
metaonly config Sync.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Sync.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 Thu, 08 Nov 2012 02:13:30 GMT


module xdc.runtime.knl.Sync

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Sync.xdc ========
    15     */
    16    import xdc.runtime.Error;
    17    import xdc.runtime.Assert;
    18    import xdc.runtime.knl.ISync;
    19
    20    /*!
    21     *  ======== Sync ========
    22     *  Provides synchronization APIs when an ISync.Handle is available
    23     *
    24     *  The application must first obtain an ISync.Handle.
    25     *  It can get such a handle by directly calling {@link SyncGeneric#create} or
    26     *  {@link SyncSemThread#create}. Then the application can use the generic
    27     *  APIs provided by this module.
    28     */
    29
    30    module Sync
    31    {
    32        /*!
    33         *  ======== WaitStatus ========
    34         *  Error codes returned by Sync_wait
    35         */
    36        enum WaitStatus {
    37            WaitStatus_ERROR = -1,
    38            WaitStatus_TIMEOUT = 0,
    39            WaitStatus_SUCCESS = 1
    40        };
    41
    42        /*!
    43         *  ======== WAIT_FOREVER ========
    44         *  Used to wait forever
    45         */
    46        const UInt WAIT_FOREVER = ISync.WAIT_FOREVER;
    47
    48        /*!
    49         *  ======== NO_WAIT ========
    50         *  Used to specify no waiting
    51         */
    52        const UInt NO_WAIT = ISync.NO_WAIT;
    53
    54        /*!
    55         *  ======== Proxy ========
    56         *  Platform-specific implementation
    57         *
    58         *  If ALL `ISync.Handles` were created using the same module
    59         *  (e.g SyncSemProcess), then setting `Proxy` to `SyncSemProcess` and
    60         *  `Sync.Proxy.abstractInstances$` to `false` will improve the
    61         *  performance of the `Sync` APIs.
    62         */
    63        proxy Proxy inherits ISync;
    64
    65        /*!
    66         *  ======== query ========
    67         *  Query for a particular quality
    68         *
    69         *  FALSE is returned if quality not supported.
    70         *
    71         *  @param(sync)    sync handle
    72         *  @param(qual)    quality
    73         *
    74         *  @a(returns)     TRUE or FALSE.
    75         */
    76        Bool query(ISync.Handle sync, Int qual);
    77
    78        /*!
    79         *  ======== signal ========
    80         *  Called at completion of an activity.
    81         *
    82         *  This function is non-blocking. It is also required that the underlying
    83         *  sync be binary in nature.
    84         *
    85         *  @param(sync)    sync handle
    86         */
    87        Void signal(ISync.Handle sync);
    88
    89        /*!
    90         *  ======== wait ========
    91         *  Called to wait/poll for completion of an activity.
    92         *
    93         *  This function can block and typically waits for a semaphore to become
    94         *  available.
    95         *
    96         *  Non-blocking implementations should return {@link #WaitStatus_TIMEOUT}.
    97         *
    98         *  @param(sync)        sync handle
    99         *  @param(timeout)     timeout in microseconds
   100         *
   101         *  @a(returns)
   102         *  @p(blist)
   103         *  -{@link #WaitStatus_ERROR} if an error occured.
   104         *  -{@link #WaitStatus_TIMEOUT} denotes timeout.
   105         *  -{@link #WaitStatus_SUCCESS} semaphore was decremented.
   106         *  @p
   107         */
   108        Int wait(ISync.Handle sync, UInt timeout, Error.Block *eb);
   109    }
   110    /*
   111     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   112     */
   113


module xdc.runtime.knl.SyncGeneric
index URL

Generic ISync implementation

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module allows users to plug in their own functions for signal, wait and query.
C synopsis target-domain sourced in xdc/runtime/knl/SyncGeneric.xdc
#include <xdc/runtime/knl/SyncGeneric.h>
Functions
Void | SyncGeneric_construct// Initialize a new instance object inside the provided structure(SyncGeneric_Struct *structP, const SyncGeneric_Params *params);
SyncGeneric_Handle | SyncGeneric_create// Allocate and initialize a new instance object and return its handle(const SyncGeneric_Params *params, Error_Block *eb);
Void | SyncGeneric_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(SyncGeneric_Handle *handleP);
Void | SyncGeneric_destruct// Finalize the instance object inside the provided structure(SyncGeneric_Struct *structP);
Void | SyncGeneric_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(SyncGeneric_Params *params);
Functions common to all ISync modules
Bool | SyncGeneric_query// Query for a particular quality(SyncGeneric_Handle handle, Int qual);
Void | SyncGeneric_signal// Called at completion of an activity(SyncGeneric_Handle handle);
Int | SyncGeneric_wait// Called to wait/poll for completion of an activity(SyncGeneric_Handle handle, UInt timeout, Error_Block *eb);
Functions common to all target instances
 | SyncGeneric_handle// Convert this instance structure pointer into an instance handle, SyncGeneric_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, SyncGeneric_Handle_label// The label associated with this instance object, SyncGeneric_Handle_name// The name of this instance object, SyncGeneric_Handle_upCast// unconditionally move one level up the inheritance hierarchy, SyncGeneric_Object_count// The number of statically-created instance objects, SyncGeneric_Object_first// The handle of the first dynamically-created instance object, or NULL, SyncGeneric_Object_get// The handle of the i-th statically-created instance object (array == NULL), SyncGeneric_Object_heap// The heap used to allocate dynamically-created instance objects, SyncGeneric_Object_next// The handle of the next dynamically-created instance object, or NULL, SyncGeneric_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | SyncGeneric_Module_getMask// Returns the diagnostics mask for this module, SyncGeneric_Module_hasMask// Test whether this module has a diagnostics mask, SyncGeneric_Module_heap// The heap from which this module allocates memory, SyncGeneric_Module_id// Get this module's unique id, SyncGeneric_Module_setMask// Set the diagnostics mask for this module, SyncGeneric_Module_startupDone// Test if this module has completed startup
Defines
#define | SyncGeneric_NO_WAIT// Used to specify no waiting (UInt)0
#define | SyncGeneric_Q_BLOCKING// Blocking quality (Int)1
#define | SyncGeneric_WAIT_FOREVER// Used to wait forever (UInt)~(0)
Typedefs
typedef SyncGeneric_Object * | SyncGeneric_Handle// Client reference to an instance object;
typedef struct | SyncGeneric_Object// Opaque internal representation of an instance object SyncGeneric_Object;
typedef struct | SyncGeneric_Params// Instance config-params structure ...
typedef Bool | (*SyncGeneric_QueryFunc// typedef for user specified wait function)(Int);
typedef Void | (*SyncGeneric_SignalFunc// typedef for user specified signal function)(UArg);
typedef struct | SyncGeneric_Struct// Opaque client structure large enough to hold an instance object SyncGeneric_Struct;
typedef Bool | (*SyncGeneric_WaitFunc// typedef for user specified wait function)(UArg,UInt);
typedef enum | SyncGeneric_WaitStatus// Error codes returned by ISync_wait ...
const SyncGeneric_NO_WAIT
index URL

Used to specify no waiting

C synopsis target-domain
#define SyncGeneric_NO_WAIT (UInt)0
const SyncGeneric_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define SyncGeneric_Q_BLOCKING (Int)1
DETAILS
Implementations with this "quality" may cause the calling thread to block;
const SyncGeneric_WAIT_FOREVER
index URL

Used to wait forever

C synopsis target-domain
#define SyncGeneric_WAIT_FOREVER (UInt)~(0)
enum SyncGeneric_WaitStatus
index URL

Error codes returned by ISync_wait

C synopsis target-domain
typedef enum SyncGeneric_WaitStatus {
    SyncGeneric_WaitStatus_ERROR,
    SyncGeneric_WaitStatus_TIMEOUT,
    SyncGeneric_WaitStatus_SUCCESS
} SyncGeneric_WaitStatus;
typedef SyncGeneric_QueryFunc
index URL

typedef for user specified wait function

C synopsis target-domain
typedef Bool (*SyncGeneric_QueryFunc)(Int);
typedef SyncGeneric_SignalFunc
index URL

typedef for user specified signal function

C synopsis target-domain
typedef Void (*SyncGeneric_SignalFunc)(UArg);
typedef SyncGeneric_WaitFunc
index URL

typedef for user specified wait function

C synopsis target-domain
typedef Bool (*SyncGeneric_WaitFunc)(UArg,UInt);
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SyncGeneric_Module_id();
// Get this module's unique id
Bool SyncGeneric_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SyncGeneric_Module_heap();
// The heap from which this module allocates memory
Bool SyncGeneric_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SyncGeneric_Module_getMask();
// Returns the diagnostics mask for this module
Void SyncGeneric_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct SyncGeneric_Object SyncGeneric_Object;
// Opaque internal representation of an instance object
typedef SyncGeneric_Object *SyncGeneric_Handle;
// Client reference to an instance object
typedef struct SyncGeneric_Struct SyncGeneric_Struct;
// Opaque client structure large enough to hold an instance object
SyncGeneric_Handle SyncGeneric_handle(SyncGeneric_Struct *structP);
// Convert this instance structure pointer into an instance handle
SyncGeneric_Struct *SyncGeneric_struct(SyncGeneric_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct SyncGeneric_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
    UArg signalArg;
    // user signal function arg
     SyncGeneric_QueryFunc userQuery;
    // user query function
     SyncGeneric_SignalFunc userSignal;
    // user signal function
     SyncGeneric_WaitFunc userWait;
    // user wait function
    UArg waitArg;
    // user wait function arg
} SyncGeneric_Params;
Void SyncGeneric_Params_init(SyncGeneric_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config SyncGeneric_signalArg // instance
index URL

user signal function arg

C synopsis target-domain
struct SyncGeneric_Params {
     ...
    UArg signalArg;
config SyncGeneric_userQuery // instance
index URL

user query function

C synopsis target-domain
struct SyncGeneric_Params {
     ...
     SyncGeneric_QueryFunc userQuery;
config SyncGeneric_userSignal // instance
index URL

user signal function

C synopsis target-domain
struct SyncGeneric_Params {
     ...
     SyncGeneric_SignalFunc userSignal;
config SyncGeneric_userWait // instance
index URL

user wait function

C synopsis target-domain
struct SyncGeneric_Params {
     ...
     SyncGeneric_WaitFunc userWait;
config SyncGeneric_waitArg // instance
index URL

user wait function arg

C synopsis target-domain
struct SyncGeneric_Params {
     ...
    UArg waitArg;
Instance Creation
index URL

C synopsis target-domain
SyncGeneric_Handle SyncGeneric_create(const SyncGeneric_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void SyncGeneric_construct(SyncGeneric_Struct *structP, const SyncGeneric_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
Instance Deletion
index URL

C synopsis target-domain
Void SyncGeneric_delete(SyncGeneric_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void SyncGeneric_destruct(SyncGeneric_Struct *structP);
// Finalize the instance object inside the provided structure
SyncGeneric_query() // instance
index URL

Query for a particular quality

C synopsis target-domain
Bool SyncGeneric_query(SyncGeneric_Handle handle, Int qual);
ARGUMENTS
handle — handle of a previously-created SyncGeneric instance object
qual — quality
RETURNS
TRUE or FALSE.
DETAILS
FALSE is returned if quality not supported.
SyncGeneric_signal() // instance
index URL

Called at completion of an activity

C synopsis target-domain
Void SyncGeneric_signal(SyncGeneric_Handle handle);
ARGUMENTS
handle — handle of a previously-created SyncGeneric instance object
DETAILS
This function is non-blocking. It is also required that the underlying sync be binary in nature.
This function does not take an Error.Block intentionally because it can be called from ISR context.
SyncGeneric_wait() // instance
index URL

Called to wait/poll for completion of an activity

C synopsis target-domain
Int SyncGeneric_wait(SyncGeneric_Handle handle, UInt timeout, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created SyncGeneric instance object
timeout — Timeout in microseconds
eb — Hist Pointer to Error.Block
RETURNS
Refer to description above
DETAILS
This function can block. Non-blocking implementations should return WaitStatus_TIMEOUT to indicate a timeout.
  • WaitStatus_ERROR if an error occured.
  • WaitStatus_TIMEOUT denotes timeout.
  • WaitStatus_SUCCESS semaphore was decremented.
Instance Convertors
index URL

C synopsis target-domain
ISync_Handle SyncGeneric_Handle_upCast(SyncGeneric_Handle handle);
// unconditionally move one level up the inheritance hierarchy
SyncGeneric_Handle SyncGeneric_Handle_downCast(ISync_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int SyncGeneric_Object_count();
// The number of statically-created instance objects
SyncGeneric_Handle SyncGeneric_Object_get(SyncGeneric_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
SyncGeneric_Handle SyncGeneric_Object_first();
// The handle of the first dynamically-created instance object, or NULL
SyncGeneric_Handle SyncGeneric_Object_next(SyncGeneric_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle SyncGeneric_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *SyncGeneric_Handle_label(SyncGeneric_Handle handle, Types_Label *buf);
// The label associated with this instance object
String SyncGeneric_Handle_name(SyncGeneric_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/SyncGeneric.xdc
var SyncGeneric = xdc.useModule('xdc.runtime.knl.SyncGeneric');
module-wide constants & types
    const SyncGeneric.NO_WAIT// Used to specify no waiting = 0;
    const SyncGeneric.Q_BLOCKING// Blocking quality = 1;
    const SyncGeneric.WAIT_FOREVER// Used to wait forever = ~(0);
    values of type SyncGeneric.WaitStatus// Error codes returned by ISync_wait
        const SyncGeneric.WaitStatus_ERROR;
        const SyncGeneric.WaitStatus_TIMEOUT;
        const SyncGeneric.WaitStatus_SUCCESS;
module-wide config parameters
     SyncGeneric.common$// Common module configuration parameters = Types.Common$ undefined;
per-instance config parameters
    var params = new SyncGeneric.Params// Instance config-params object;
        params.signalArg// user signal function arg = UArg null;
        params.userQuery// user query function = Bool(*)(Int) null;
        params.userSignal// user signal function = Void(*)(UArg) null;
        params.userWait// user wait function = Bool(*)(UArg,UInt) null;
        params.waitArg// user wait function arg = UArg null;
per-instance creation
    var inst = SyncGeneric.create// Create an instance-object(params);
const SyncGeneric.NO_WAIT
index URL

Used to specify no waiting

XDCscript usage meta-domain
const SyncGeneric.NO_WAIT = 0;
C SYNOPSIS
SyncGeneric_NO_WAIT
const SyncGeneric.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const SyncGeneric.Q_BLOCKING = 1;
DETAILS
Implementations with this "quality" may cause the calling thread to block;
C SYNOPSIS
SyncGeneric_Q_BLOCKING
const SyncGeneric.WAIT_FOREVER
index URL

Used to wait forever

XDCscript usage meta-domain
const SyncGeneric.WAIT_FOREVER = ~(0);
C SYNOPSIS
SyncGeneric_WAIT_FOREVER
enum SyncGeneric.WaitStatus
index URL

Error codes returned by ISync_wait

XDCscript usage meta-domain
values of type SyncGeneric.WaitStatus
    const SyncGeneric.WaitStatus_ERROR;
    const SyncGeneric.WaitStatus_TIMEOUT;
    const SyncGeneric.WaitStatus_SUCCESS;
C SYNOPSIS
SyncGeneric_WaitStatus
metaonly config SyncGeneric.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SyncGeneric.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.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SyncGeneric.Params;
// Instance config-params object
    params.signalArg = UArg null;
    // user signal function arg
    params.userQuery = Bool(*)(Int) null;
    // user query function
    params.userSignal = Void(*)(UArg) null;
    // user signal function
    params.userWait = Bool(*)(UArg,UInt) null;
    // user wait function
    params.waitArg = UArg null;
    // user wait function arg
config SyncGeneric.signalArg // instance
index URL

user signal function arg

XDCscript usage meta-domain
var params = new SyncGeneric.Params;
...
params.signalArg = UArg null;
C SYNOPSIS
null
config SyncGeneric.userQuery // instance
index URL

user query function

XDCscript usage meta-domain
var params = new SyncGeneric.Params;
...
params.userQuery = Bool(*)(Int) null;
C SYNOPSIS
null
config SyncGeneric.userSignal // instance
index URL

user signal function

XDCscript usage meta-domain
var params = new SyncGeneric.Params;
...
params.userSignal = Void(*)(UArg) null;
C SYNOPSIS
null
config SyncGeneric.userWait // instance
index URL

user wait function

XDCscript usage meta-domain
var params = new SyncGeneric.Params;
...
params.userWait = Bool(*)(UArg,UInt) null;
C SYNOPSIS
null
config SyncGeneric.waitArg // instance
index URL

user wait function arg

XDCscript usage meta-domain
var params = new SyncGeneric.Params;
...
params.waitArg = UArg null;
C SYNOPSIS
null
Instance Creation
index URL

XDCscript usage meta-domain
var params = new SyncGeneric.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = SyncGeneric.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
generated on Thu, 08 Nov 2012 02:13:30 GMT


module xdc.runtime.knl.SyncGeneric

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== SyncGeneric.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== SyncGeneric ========
    19     *  Generic ISync implementation
    20     *
    21     *  This module allows users to plug in their own
    22     *  functions for signal, wait and query.
    23     */
    24
    25    module SyncGeneric inherits xdc.runtime.knl.ISync
    26    {
    27        /*! typedef for user specified signal function */
    28        typedef Void (*SignalFunc)(UArg);
    29
    30        /*! typedef for user specified wait function */
    31        typedef Bool (*WaitFunc)(UArg, UInt);
    32
    33        /*! typedef for user specified wait function */
    34        typedef Bool (*QueryFunc)(Int);
    35
    36    instance:
    37        /*! user signal function */
    38        config SignalFunc userSignal = null;
    39
    40        /*! user signal function arg */
    41        config UArg signalArg = null;
    42
    43        /*! user wait function */
    44        config WaitFunc  userWait = null;
    45
    46        /*! user wait function arg */
    47        config UArg waitArg = null;
    48
    49        /*! user query function */
    50        config QueryFunc userQuery = null;
    51
    52    internal:
    53
    54        /* -------- Internal Structures -------- */
    55        struct Instance_State {
    56            SignalFunc  userSignal;
    57            UArg        signalArg;
    58            WaitFunc    userWait;
    59            UArg        waitArg;
    60            QueryFunc   userQuery;
    61        };
    62
    63    }
    64    /*
    65     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    66     */
    67


module xdc.runtime.knl.SyncNull
index URL

Empty ISync implementation used mainly for testing

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
C synopsis target-domain sourced in xdc/runtime/knl/SyncNull.xdc
#include <xdc/runtime/knl/SyncNull.h>
Functions
Void | SyncNull_construct// Initialize a new instance object inside the provided structure(SyncNull_Struct *structP, const SyncNull_Params *params);
SyncNull_Handle | SyncNull_create// Allocate and initialize a new instance object and return its handle(const SyncNull_Params *params, Error_Block *eb);
Void | SyncNull_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(SyncNull_Handle *handleP);
Void | SyncNull_destruct// Finalize the instance object inside the provided structure(SyncNull_Struct *structP);
Void | SyncNull_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(SyncNull_Params *params);
Functions common to all ISync modules
Bool | SyncNull_query// Query for a particular quality(SyncNull_Handle handle, Int qual);
Void | SyncNull_signal// Called at completion of an activity(SyncNull_Handle handle);
Int | SyncNull_wait// Called to wait/poll for completion of an activity(SyncNull_Handle handle, UInt timeout, Error_Block *eb);
Functions common to all target instances
 | SyncNull_handle// Convert this instance structure pointer into an instance handle, SyncNull_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, SyncNull_Handle_label// The label associated with this instance object, SyncNull_Handle_name// The name of this instance object, SyncNull_Handle_upCast// unconditionally move one level up the inheritance hierarchy, SyncNull_Object_count// The number of statically-created instance objects, SyncNull_Object_first// The handle of the first dynamically-created instance object, or NULL, SyncNull_Object_get// The handle of the i-th statically-created instance object (array == NULL), SyncNull_Object_heap// The heap used to allocate dynamically-created instance objects, SyncNull_Object_next// The handle of the next dynamically-created instance object, or NULL, SyncNull_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | SyncNull_Module_getMask// Returns the diagnostics mask for this module, SyncNull_Module_hasMask// Test whether this module has a diagnostics mask, SyncNull_Module_heap// The heap from which this module allocates memory, SyncNull_Module_id// Get this module's unique id, SyncNull_Module_setMask// Set the diagnostics mask for this module, SyncNull_Module_startupDone// Test if this module has completed startup
Defines
#define | SyncNull_NO_WAIT// Used to specify no waiting (UInt)0
#define | SyncNull_Q_BLOCKING// Blocking quality (Int)1
#define | SyncNull_WAIT_FOREVER// Used to wait forever (UInt)~(0)
Typedefs
typedef SyncNull_Object * | SyncNull_Handle// Client reference to an instance object;
typedef struct | SyncNull_Object// Opaque internal representation of an instance object SyncNull_Object;
typedef struct | SyncNull_Params// Instance config-params structure ...
typedef struct | SyncNull_Struct// Opaque client structure large enough to hold an instance object SyncNull_Struct;
typedef enum | SyncNull_WaitStatus// Error codes returned by ISync_wait ...
const SyncNull_NO_WAIT
index URL

Used to specify no waiting

C synopsis target-domain
#define SyncNull_NO_WAIT (UInt)0
const SyncNull_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define SyncNull_Q_BLOCKING (Int)1
DETAILS
Implementations with this "quality" may cause the calling thread to block;
const SyncNull_WAIT_FOREVER
index URL

Used to wait forever

C synopsis target-domain
#define SyncNull_WAIT_FOREVER (UInt)~(0)
enum SyncNull_WaitStatus
index URL

Error codes returned by ISync_wait

C synopsis target-domain
typedef enum SyncNull_WaitStatus {
    SyncNull_WaitStatus_ERROR,
    SyncNull_WaitStatus_TIMEOUT,
    SyncNull_WaitStatus_SUCCESS
} SyncNull_WaitStatus;
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SyncNull_Module_id();
// Get this module's unique id
Bool SyncNull_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SyncNull_Module_heap();
// The heap from which this module allocates memory
Bool SyncNull_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SyncNull_Module_getMask();
// Returns the diagnostics mask for this module
Void SyncNull_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct SyncNull_Object SyncNull_Object;
// Opaque internal representation of an instance object
typedef SyncNull_Object *SyncNull_Handle;
// Client reference to an instance object
typedef struct SyncNull_Struct SyncNull_Struct;
// Opaque client structure large enough to hold an instance object
SyncNull_Handle SyncNull_handle(SyncNull_Struct *structP);
// Convert this instance structure pointer into an instance handle
SyncNull_Struct *SyncNull_struct(SyncNull_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct SyncNull_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} SyncNull_Params;
Void SyncNull_Params_init(SyncNull_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
SyncNull_Handle SyncNull_create(const SyncNull_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void SyncNull_construct(SyncNull_Struct *structP, const SyncNull_Params *params);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
Instance Deletion
index URL

C synopsis target-domain
Void SyncNull_delete(SyncNull_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void SyncNull_destruct(SyncNull_Struct *structP);
// Finalize the instance object inside the provided structure
SyncNull_query() // instance
index URL

Query for a particular quality

C synopsis target-domain
Bool SyncNull_query(SyncNull_Handle handle, Int qual);
ARGUMENTS
handle — handle of a previously-created SyncNull instance object
qual — quality
RETURNS
TRUE or FALSE.
DETAILS
FALSE is returned if quality not supported.
SyncNull_signal() // instance
index URL

Called at completion of an activity

C synopsis target-domain
Void SyncNull_signal(SyncNull_Handle handle);
ARGUMENTS
handle — handle of a previously-created SyncNull instance object
DETAILS
This function is non-blocking. It is also required that the underlying sync be binary in nature.
This function does not take an Error.Block intentionally because it can be called from ISR context.
SyncNull_wait() // instance
index URL

Called to wait/poll for completion of an activity

C synopsis target-domain
Int SyncNull_wait(SyncNull_Handle handle, UInt timeout, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created SyncNull instance object
timeout — Timeout in microseconds
eb — Hist Pointer to Error.Block
RETURNS
Refer to description above
DETAILS
This function can block. Non-blocking implementations should return WaitStatus_TIMEOUT to indicate a timeout.
  • WaitStatus_ERROR if an error occured.
  • WaitStatus_TIMEOUT denotes timeout.
  • WaitStatus_SUCCESS semaphore was decremented.
Instance Convertors
index URL

C synopsis target-domain
ISync_Handle SyncNull_Handle_upCast(SyncNull_Handle handle);
// unconditionally move one level up the inheritance hierarchy
SyncNull_Handle SyncNull_Handle_downCast(ISync_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int SyncNull_Object_count();
// The number of statically-created instance objects
SyncNull_Handle SyncNull_Object_get(SyncNull_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
SyncNull_Handle SyncNull_Object_first();
// The handle of the first dynamically-created instance object, or NULL
SyncNull_Handle SyncNull_Object_next(SyncNull_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle SyncNull_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *SyncNull_Handle_label(SyncNull_Handle handle, Types_Label *buf);
// The label associated with this instance object
String SyncNull_Handle_name(SyncNull_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/SyncNull.xdc
var SyncNull = xdc.useModule('xdc.runtime.knl.SyncNull');
module-wide constants & types
    const SyncNull.NO_WAIT// Used to specify no waiting = 0;
    const SyncNull.Q_BLOCKING// Blocking quality = 1;
    const SyncNull.WAIT_FOREVER// Used to wait forever = ~(0);
    values of type SyncNull.WaitStatus// Error codes returned by ISync_wait
        const SyncNull.WaitStatus_ERROR;
        const SyncNull.WaitStatus_TIMEOUT;
        const SyncNull.WaitStatus_SUCCESS;
module-wide config parameters
     SyncNull.common$// Common module configuration parameters = Types.Common$ undefined;
per-instance config parameters
    var params = new SyncNull.Params// Instance config-params object;
per-instance creation
    var inst = SyncNull.create// Create an instance-object(params);
const SyncNull.NO_WAIT
index URL

Used to specify no waiting

XDCscript usage meta-domain
const SyncNull.NO_WAIT = 0;
C SYNOPSIS
SyncNull_NO_WAIT
const SyncNull.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const SyncNull.Q_BLOCKING = 1;
DETAILS
Implementations with this "quality" may cause the calling thread to block;
C SYNOPSIS
SyncNull_Q_BLOCKING
const SyncNull.WAIT_FOREVER
index URL

Used to wait forever

XDCscript usage meta-domain
const SyncNull.WAIT_FOREVER = ~(0);
C SYNOPSIS
SyncNull_WAIT_FOREVER
enum SyncNull.WaitStatus
index URL

Error codes returned by ISync_wait

XDCscript usage meta-domain
values of type SyncNull.WaitStatus
    const SyncNull.WaitStatus_ERROR;
    const SyncNull.WaitStatus_TIMEOUT;
    const SyncNull.WaitStatus_SUCCESS;
C SYNOPSIS
SyncNull_WaitStatus
metaonly config SyncNull.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SyncNull.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.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SyncNull.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new SyncNull.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = SyncNull.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
generated on Thu, 08 Nov 2012 02:13:30 GMT


module xdc.runtime.knl.SyncNull

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== SyncNull.xdc ========
    15     */
    16
    17    /*!
    18     *  ======== SyncNull ========
    19     *  Empty ISync implementation used mainly for testing
    20     */
    21
    22    module SyncNull inherits xdc.runtime.knl.ISync
    23    {
    24    }
    25    /*
    26     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    27     */
    28


module xdc.runtime.knl.SyncSemThread
index URL

A ISync implementation based on a SemThread. [EXPERIMENTAL]

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module implements the ti.sdo.utils.ISync interface using the xdc.runtime.knl.SemThread module.
C synopsis target-domain sourced in xdc/runtime/knl/SyncSemThread.xdc
#include <xdc/runtime/knl/SyncSemThread.h>
Functions
Void | SyncSemThread_construct// Initialize a new instance object inside the provided structure(SyncSemThread_Struct *structP, const SyncSemThread_Params *params, Error_Block *eb);
SyncSemThread_Handle | SyncSemThread_create// Allocate and initialize a new instance object and return its handle(const SyncSemThread_Params *params, Error_Block *eb);
Void | SyncSemThread_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(SyncSemThread_Handle *handleP);
Void | SyncSemThread_destruct// Finalize the instance object inside the provided structure(SyncSemThread_Struct *structP);
Void | SyncSemThread_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(SyncSemThread_Params *params);
Functions common to all ISync modules
Bool | SyncSemThread_query// Query for a particular quality(SyncSemThread_Handle handle, Int qual);
Void | SyncSemThread_signal// Called at completion of an activity(SyncSemThread_Handle handle);
Int | SyncSemThread_wait// Called to wait/poll for completion of an activity(SyncSemThread_Handle handle, UInt timeout, Error_Block *eb);
Functions common to all target instances
 | SyncSemThread_handle// Convert this instance structure pointer into an instance handle, SyncSemThread_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, SyncSemThread_Handle_label// The label associated with this instance object, SyncSemThread_Handle_name// The name of this instance object, SyncSemThread_Handle_upCast// unconditionally move one level up the inheritance hierarchy, SyncSemThread_Object_count// The number of statically-created instance objects, SyncSemThread_Object_first// The handle of the first dynamically-created instance object, or NULL, SyncSemThread_Object_get// The handle of the i-th statically-created instance object (array == NULL), SyncSemThread_Object_heap// The heap used to allocate dynamically-created instance objects, SyncSemThread_Object_next// The handle of the next dynamically-created instance object, or NULL, SyncSemThread_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | SyncSemThread_Module_getMask// Returns the diagnostics mask for this module, SyncSemThread_Module_hasMask// Test whether this module has a diagnostics mask, SyncSemThread_Module_heap// The heap from which this module allocates memory, SyncSemThread_Module_id// Get this module's unique id, SyncSemThread_Module_setMask// Set the diagnostics mask for this module, SyncSemThread_Module_startupDone// Test if this module has completed startup
Defines
#define | SyncSemThread_NO_WAIT// Used to specify no waiting (UInt)0
#define | SyncSemThread_Q_BLOCKING// Blocking quality (Int)1
#define | SyncSemThread_WAIT_FOREVER// Used to wait forever (UInt)~(0)
Typedefs
typedef SyncSemThread_Object * | SyncSemThread_Handle// Client reference to an instance object;
typedef struct | SyncSemThread_Object// Opaque internal representation of an instance object SyncSemThread_Object;
typedef struct | SyncSemThread_Params// Instance config-params structure ...
typedef struct | SyncSemThread_Struct// Opaque client structure large enough to hold an instance object SyncSemThread_Struct;
typedef enum | SyncSemThread_WaitStatus// Error codes returned by ISync_wait ...
const SyncSemThread_NO_WAIT
index URL

Used to specify no waiting

C synopsis target-domain
#define SyncSemThread_NO_WAIT (UInt)0
const SyncSemThread_Q_BLOCKING
index URL

Blocking quality

C synopsis target-domain
#define SyncSemThread_Q_BLOCKING (Int)1
DETAILS
Implementations with this "quality" may cause the calling thread to block;
const SyncSemThread_WAIT_FOREVER
index URL

Used to wait forever

C synopsis target-domain
#define SyncSemThread_WAIT_FOREVER (UInt)~(0)
enum SyncSemThread_WaitStatus
index URL

Error codes returned by ISync_wait

C synopsis target-domain
typedef enum SyncSemThread_WaitStatus {
    SyncSemThread_WaitStatus_ERROR,
    SyncSemThread_WaitStatus_TIMEOUT,
    SyncSemThread_WaitStatus_SUCCESS
} SyncSemThread_WaitStatus;
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId SyncSemThread_Module_id();
// Get this module's unique id
Bool SyncSemThread_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle SyncSemThread_Module_heap();
// The heap from which this module allocates memory
Bool SyncSemThread_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 SyncSemThread_Module_getMask();
// Returns the diagnostics mask for this module
Void SyncSemThread_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct SyncSemThread_Object SyncSemThread_Object;
// Opaque internal representation of an instance object
typedef SyncSemThread_Object *SyncSemThread_Handle;
// Client reference to an instance object
typedef struct SyncSemThread_Struct SyncSemThread_Struct;
// Opaque client structure large enough to hold an instance object
SyncSemThread_Handle SyncSemThread_handle(SyncSemThread_Struct *structP);
// Convert this instance structure pointer into an instance handle
SyncSemThread_Struct *SyncSemThread_struct(SyncSemThread_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct SyncSemThread_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
} SyncSemThread_Params;
Void SyncSemThread_Params_init(SyncSemThread_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Creation
index URL

C synopsis target-domain
SyncSemThread_Handle SyncSemThread_create(const SyncSemThread_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void SyncSemThread_construct(SyncSemThread_Struct *structP, const SyncSemThread_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
Instance Deletion
index URL

C synopsis target-domain
Void SyncSemThread_delete(SyncSemThread_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void SyncSemThread_destruct(SyncSemThread_Struct *structP);
// Finalize the instance object inside the provided structure
SyncSemThread_query() // instance
index URL

Query for a particular quality

C synopsis target-domain
Bool SyncSemThread_query(SyncSemThread_Handle handle, Int qual);
ARGUMENTS
handle — handle of a previously-created SyncSemThread instance object
qual — quality
RETURNS
TRUE or FALSE.
DETAILS
FALSE is returned if quality not supported.
SyncSemThread_signal() // instance
index URL

Called at completion of an activity

C synopsis target-domain
Void SyncSemThread_signal(SyncSemThread_Handle handle);
ARGUMENTS
handle — handle of a previously-created SyncSemThread instance object
DETAILS
This function is non-blocking. It is also required that the underlying sync be binary in nature.
This function does not take an Error.Block intentionally because it can be called from ISR context.
SyncSemThread_wait() // instance
index URL

Called to wait/poll for completion of an activity

C synopsis target-domain
Int SyncSemThread_wait(SyncSemThread_Handle handle, UInt timeout, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created SyncSemThread instance object
timeout — Timeout in microseconds
eb — Hist Pointer to Error.Block
RETURNS
Refer to description above
DETAILS
This function can block. Non-blocking implementations should return WaitStatus_TIMEOUT to indicate a timeout.
  • WaitStatus_ERROR if an error occured.
  • WaitStatus_TIMEOUT denotes timeout.
  • WaitStatus_SUCCESS semaphore was decremented.
Instance Convertors
index URL

C synopsis target-domain
ISync_Handle SyncSemThread_Handle_upCast(SyncSemThread_Handle handle);
// unconditionally move one level up the inheritance hierarchy
SyncSemThread_Handle SyncSemThread_Handle_downCast(ISync_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins
index URL

C synopsis target-domain
Int SyncSemThread_Object_count();
// The number of statically-created instance objects
SyncSemThread_Handle SyncSemThread_Object_get(SyncSemThread_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
SyncSemThread_Handle SyncSemThread_Object_first();
// The handle of the first dynamically-created instance object, or NULL
SyncSemThread_Handle SyncSemThread_Object_next(SyncSemThread_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle SyncSemThread_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *SyncSemThread_Handle_label(SyncSemThread_Handle handle, Types_Label *buf);
// The label associated with this instance object
String SyncSemThread_Handle_name(SyncSemThread_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/SyncSemThread.xdc
var SyncSemThread = xdc.useModule('xdc.runtime.knl.SyncSemThread');
module-wide constants & types
    const SyncSemThread.NO_WAIT// Used to specify no waiting = 0;
    const SyncSemThread.Q_BLOCKING// Blocking quality = 1;
    const SyncSemThread.WAIT_FOREVER// Used to wait forever = ~(0);
    values of type SyncSemThread.WaitStatus// Error codes returned by ISync_wait
        const SyncSemThread.WaitStatus_ERROR;
        const SyncSemThread.WaitStatus_TIMEOUT;
        const SyncSemThread.WaitStatus_SUCCESS;
module-wide config parameters
     SyncSemThread.common$// Common module configuration parameters = Types.Common$ undefined;
per-instance config parameters
    var params = new SyncSemThread.Params// Instance config-params object;
per-instance creation
    var inst = SyncSemThread.create// Create an instance-object(params);
const SyncSemThread.NO_WAIT
index URL

Used to specify no waiting

XDCscript usage meta-domain
const SyncSemThread.NO_WAIT = 0;
C SYNOPSIS
SyncSemThread_NO_WAIT
const SyncSemThread.Q_BLOCKING
index URL

Blocking quality

XDCscript usage meta-domain
const SyncSemThread.Q_BLOCKING = 1;
DETAILS
Implementations with this "quality" may cause the calling thread to block;
C SYNOPSIS
SyncSemThread_Q_BLOCKING
const SyncSemThread.WAIT_FOREVER
index URL

Used to wait forever

XDCscript usage meta-domain
const SyncSemThread.WAIT_FOREVER = ~(0);
C SYNOPSIS
SyncSemThread_WAIT_FOREVER
enum SyncSemThread.WaitStatus
index URL

Error codes returned by ISync_wait

XDCscript usage meta-domain
values of type SyncSemThread.WaitStatus
    const SyncSemThread.WaitStatus_ERROR;
    const SyncSemThread.WaitStatus_TIMEOUT;
    const SyncSemThread.WaitStatus_SUCCESS;
C SYNOPSIS
SyncSemThread_WaitStatus
metaonly config SyncSemThread.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
SyncSemThread.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.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new SyncSemThread.Params;
// Instance config-params object
Instance Creation
index URL

XDCscript usage meta-domain
var params = new SyncSemThread.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = SyncSemThread.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
generated on Thu, 08 Nov 2012 02:13:30 GMT


module xdc.runtime.knl.SyncSemThread

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== SyncSemThread.xdc ========
    15     */
    16
    17    import xdc.runtime.knl.SemThread;
    18
    19    /*!
    20     *  ======== SyncSemThread ========
    21     *  A ISync implementation based on a SemThread. [EXPERIMENTAL]
    22     *
    23     *  This module implements the {@link ti.sdo.utils.ISync} interface
    24     *  using the {@link xdc.runtime.knl.SemThread} module.
    25     */
    26
    27    @InstanceInitError      /* instance initialization can fail */
    28    @InstanceFinalize       /* instances require finalization */
    29
    30    module SyncSemThread inherits xdc.runtime.knl.ISync
    31    {
    32
    33    internal:  /* not for client use */
    34
    35        struct Instance_State {
    36            SemThread.Handle    semThread;
    37        };
    38    }
    39    /*
    40     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    41     */
    42


module xdc.runtime.knl.Thread
index URL

Thread services

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module manages threads through a proxy which inherits from IThreadSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used. [ more ... ]
C synopsis target-domain sourced in xdc/runtime/knl/Thread.xdc
#include <xdc/runtime/knl/Thread.h>
Functions
Int | Thread_compareOsPriorities// Compare two os specific priority values and find out which one represents a higher priority(Int p1, Int p2, Error_Block *eb);
Void | Thread_construct// Initialize a new instance object inside the provided structure(Thread_Struct *structP, Thread_RunFxn fxn, const Thread_Params *params, Error_Block *eb);
Thread_Handle | Thread_create// Allocate and initialize a new instance object and return its handle(Thread_RunFxn fxn, const Thread_Params *params, Error_Block *eb);
Void | Thread_delete// Finalize and free this previously allocated instance object, setting the referenced handle to NULL(Thread_Handle *handleP);
Void | Thread_destruct// Finalize the instance object inside the provided structure(Thread_Struct *structP);
Ptr | Thread_getOsHandle// Get the OS thread handle(Thread_Handle handle);
Int | Thread_getOsPriority// Obtain a thread's OS specific priority(Thread_Handle handle, Error_Block *eb);
Thread_Priority | Thread_getPriority// Obtain a thread's priority(Thread_Handle handle, Error_Block *eb);
Ptr | Thread_getTls// Obtain a thread's local storage(Thread_Handle handle);
Bool | Thread_join// Block calling thread until given thread terminates(Thread_Handle handle, Error_Block *eb);
Void | Thread_Params_init// Initialize this config-params structure with supplier-specified defaults before instance creation(Thread_Params *params);
Thread_Handle | Thread_self// Return the currently executing thread's handle(Error_Block *eb);
Bool | Thread_setOsPriority// Set a thread's priority(Thread_Handle handle, Int newPri, Error_Block *eb);
Bool | Thread_setPriority// Set a thread's priority(Thread_Handle handle, Thread_Priority newPri, Error_Block *eb);
Void | Thread_setTls// Change a thread's local storage(Thread_Handle handle, Ptr tls);
Bool | Thread_sleep// Sleep for given number of microseconds(UInt timeout, Error_Block *eb);
Bool | Thread_start// Start threads running(Error_Block *eb);
Bool | Thread_stat// Get thread statistics(Thread_Handle handle, Thread_Stat *buf, Error_Block *eb);
Bool | Thread_yield// Yield the currently scheduled thread(Error_Block *eb);
Functions common to all target instances
 | Thread_handle// Convert this instance structure pointer into an instance handle, Thread_Handle_label// The label associated with this instance object, Thread_Handle_name// The name of this instance object, Thread_Object_count// The number of statically-created instance objects, Thread_Object_first// The handle of the first dynamically-created instance object, or NULL, Thread_Object_get// The handle of the i-th statically-created instance object (array == NULL), Thread_Object_heap// The heap used to allocate dynamically-created instance objects, Thread_Object_next// The handle of the next dynamically-created instance object, or NULL, Thread_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
 | Thread_Module_getMask// Returns the diagnostics mask for this module, Thread_Module_hasMask// Test whether this module has a diagnostics mask, Thread_Module_heap// The heap from which this module allocates memory, Thread_Module_id// Get this module's unique id, Thread_Module_setMask// Set the diagnostics mask for this module, Thread_Module_startupDone// Test if this module has completed startup
Defines
#define | Thread_GETPRI_FAILED// Status returned by getPri when an error occurs (Int)-2
#define | Thread_INVALID_OS_PRIORITY// Invalid OS priority value (Int)0
Typedefs
typedef enum | Thread_CompStatus// Status returned by compareOsPriorities when an error occurs ...
typedef Thread_Object * | Thread_Handle// Client reference to an instance object;
typedef struct | Thread_Object// Opaque internal representation of an instance object Thread_Object;
typedef struct | Thread_Params// Instance config-params structure ...
typedef enum | Thread_Priority// Thread priorities which are mapped to OS specific value by Proxy ...
typedef Void | (*Thread_RunFxn// Typedef for thread function)(IArg);
typedef struct | Thread_Stat// Struct to hold thread statistics from stat ...
typedef struct | Thread_Struct// Opaque client structure large enough to hold an instance object Thread_Struct;
Constants
extern const Assert_Id | Thread_A_zeroTimeout// Assert when timeout passed to sleep is zero;
extern const SizeT | Thread_defaultStackSize// Default thread stack size;
DETAILS
This module manages threads through a proxy which inherits from IThreadSupport interface. It has a module wide config parameter Proxy which needs to be bound to an OS specific delegate before this module can be used.
Here is an example showing how the proxy is bound to a BIOS 6.x specific delegate.
  var Thread = xdc.useModule('xdc.runtime.knl.Thread');
  Thread.Proxy = xdc.useModule('ti.sysbios.xdcruntime.ThreadSupport');
Typically a package containing the delegates has a Settings module that will bind all xdc.runtime.knl proxies. The following example sets up all the xdc.runtime.knl proxies.
  xdc.useModule('ti.sysbios.xdcruntime.Settings');
const Thread_GETPRI_FAILED
index URL

Status returned by getPri when an error occurs

C synopsis target-domain
#define Thread_GETPRI_FAILED (Int)-2
const Thread_INVALID_OS_PRIORITY
index URL

Invalid OS priority value

C synopsis target-domain
#define Thread_INVALID_OS_PRIORITY (Int)0
enum Thread_CompStatus
index URL

Status returned by compareOsPriorities when an error occurs

C synopsis target-domain
typedef enum Thread_CompStatus {
    Thread_CompStatus_ERROR,
    Thread_CompStatus_LOWER,
    Thread_CompStatus_EQUAL,
    Thread_CompStatus_HIGHER
} Thread_CompStatus;
enum Thread_Priority
index URL

Thread priorities which are mapped to OS specific value by Proxy

C synopsis target-domain
typedef enum Thread_Priority {
    Thread_Priority_INVALID,
    Thread_Priority_LOWEST,
    Thread_Priority_BELOW_NORMAL,
    Thread_Priority_NORMAL,
    Thread_Priority_ABOVE_NORMAL,
    Thread_Priority_HIGHEST
} Thread_Priority;
typedef Thread_RunFxn
index URL

Typedef for thread function

C synopsis target-domain
typedef Void (*Thread_RunFxn)(IArg);
struct Thread_Stat
index URL

Struct to hold thread statistics from stat

C synopsis target-domain
typedef struct Thread_Stat {
    SizeT stackSize;
    SizeT stackUsed;
} Thread_Stat;
config Thread_A_zeroTimeout // module-wide
index URL

Assert when timeout passed to sleep is zero

C synopsis target-domain
extern const Assert_Id Thread_A_zeroTimeout;
config Thread_defaultStackSize // module-wide
index URL

Default thread stack size

C synopsis target-domain
extern const SizeT Thread_defaultStackSize;
Thread_compareOsPriorities() // module-wide
index URL

Compare two os specific priority values and find out which one represents a higher priority

C synopsis target-domain
Int Thread_compareOsPriorities(Int p1, Int p2, Error_Block *eb);
ARGUMENTS
p1 — priority one
p2 — priority two
eb — Pointer to Error.Block
DETAILS
  • CompStatus_ERROR if an error occured
  • CompStatus_LOWER if p1 is lower than p2
  • CompStatus_EQUAL if p1=p2
  • CompStatus_HIGHER if p1 is higher than p2 details.
RETURNS
refer to description above
Thread_self() // module-wide
index URL

Return the currently executing thread's handle

C synopsis target-domain
Thread_Handle Thread_self(Error_Block *eb);
ARGUMENTS
eb — Pointer to Error.Block
RETURNS
Returns a handle to the currently executing thread. If the current thread is the main thread, this function returns NULL. NULL is also returned in case of error.
Thread_sleep() // module-wide
index URL

Sleep for given number of microseconds

C synopsis target-domain
Bool Thread_sleep(UInt timeout, Error_Block *eb);
ARGUMENTS
timeout — timeout in microseconds
eb — Pointer to Error.Block
DETAILS
This function is gauranteed to sleep for at least as long as the timeout value but the actual sleep time may be longer. NOTE: The timeout value cannot be zero.
RETURNS
true for success; false for error
Thread_start() // module-wide
index URL

Start threads running

C synopsis target-domain
Bool Thread_start(Error_Block *eb);
ARGUMENTS
eb — Pointer to Error.Block
DETAILS
This function can be used to start all statically created threads, and all threads created dynamically before this function is called. Any thread created after this function is called, starts automatically. (i.e., there is no need to call Thread_start() more than once).
RETURNS
true for success; false for error
Thread_yield() // module-wide
index URL

Yield the currently scheduled thread

C synopsis target-domain
Bool Thread_yield(Error_Block *eb);
ARGUMENTS
eb — Pointer to Error.Block
RETURNS
true for success; false for error
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Thread_Module_id();
// Get this module's unique id
Bool Thread_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Thread_Module_heap();
// The heap from which this module allocates memory
Bool Thread_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Thread_Module_getMask();
// Returns the diagnostics mask for this module
Void Thread_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types
index URL

C synopsis target-domain
typedef struct Thread_Object Thread_Object;
// Opaque internal representation of an instance object
typedef Thread_Object *Thread_Handle;
// Client reference to an instance object
typedef struct Thread_Struct Thread_Struct;
// Opaque client structure large enough to hold an instance object
Thread_Handle Thread_handle(Thread_Struct *structP);
// Convert this instance structure pointer into an instance handle
Thread_Struct *Thread_struct(Thread_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters
index URL

C synopsis target-domain
typedef struct Thread_Params {
// Instance config-params structure
     IInstance_Params *instance;
    // Common per-instance configs
    IArg arg;
    // Thread function argument. Default is 0
    Int osPriority;
    // OS specific thread priority
     Thread_Priority priority;
    // Specify the new thread's priority
    SizeT stackSize;
    // Thread stack size
    Ptr tls;
    // Thread local storage
} Thread_Params;
Void Thread_Params_init(Thread_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
config Thread_arg // instance
index URL

Thread function argument. Default is 0

C synopsis target-domain
struct Thread_Params {
     ...
    IArg arg;
config Thread_osPriority // instance
index URL

OS specific thread priority

C synopsis target-domain
struct Thread_Params {
     ...
    Int osPriority;
DETAILS
Used to specify an OS specific value for priority. If set this value takes precedence over priority.
config Thread_priority // instance
index URL

Specify the new thread's priority

C synopsis target-domain
struct Thread_Params {
     ...
     Thread_Priority priority;
DETAILS
Thread defines several constants which allows applications to select a priority in an OS independent way: Priority_LOWEST, Priority_BELOW_NORMAL, Priority_NORMAL, Priority_ABOVE_NORMAL and Priority_HIGHEST. These values get mapped to OS specific priorities by the OS specific delegate.
config Thread_stackSize // instance
index URL

Thread stack size

C synopsis target-domain
struct Thread_Params {
     ...
    SizeT stackSize;
DETAILS
The default value of 0 means that defaultStackSize is used.
config Thread_tls // instance
index URL

Thread local storage

C synopsis target-domain
struct Thread_Params {
     ...
    Ptr tls;
DETAILS
User data associated with a thread. Must persist for the life of the thread.
Instance Creation
index URL

C synopsis target-domain
Thread_Handle Thread_create(Thread_RunFxn fxn, const Thread_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
Void Thread_construct(Thread_Struct *structP, Thread_RunFxn fxn, const Thread_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure
ARGUMENTS
fxn — function for new thread to begin execution
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function spawns a new thread calling the function fxn.
Instance Deletion
index URL

C synopsis target-domain
Void Thread_delete(Thread_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
Void Thread_destruct(Thread_Struct *structP);
// Finalize the instance object inside the provided structure
Thread_getOsHandle() // instance
index URL

Get the OS thread handle

C synopsis target-domain
Ptr Thread_getOsHandle(Thread_Handle handle);
ARGUMENTS
handle — handle of a previously-created Thread instance object
RETURNS
OS thread handle
Thread_getOsPriority() // instance
index URL

Obtain a thread's OS specific priority

C synopsis target-domain
Int Thread_getOsPriority(Thread_Handle handle, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created Thread instance object
eb — Pointer to Error.Block
DETAILS
For OSes that support dynamic priority boosting, the value returned is the base priority of the thread.
RETURNS
thread priority in case of success; GETPRI_FAILED in case of error;
Thread_getPriority() // instance
index URL

Obtain a thread's priority

C synopsis target-domain
Thread_Priority Thread_getPriority(Thread_Handle handle, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created Thread instance object
eb — Pointer to Error.Block
DETAILS
For OSes that support dynamic priority boosting, this function retrieves the base priority of the thread.
RETURNS
thread priority in case of success; PRIORITY_INVALID in case of error;
Thread_getTls() // instance
index URL

Obtain a thread's local storage

C synopsis target-domain
Ptr Thread_getTls(Thread_Handle handle);
ARGUMENTS
handle — handle of a previously-created Thread instance object
RETURNS
null when tls has not been set.
Thread_join() // instance
index URL

Block calling thread until given thread terminates

C synopsis target-domain
Bool Thread_join(Thread_Handle handle, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created Thread instance object
eb — Pointer to Error.Block
DETAILS
Use this functions to ensure that a thread has terminated. It is OK to call this function on a thread that has already terminated.
RETURNS
true for success; false for error
Thread_setOsPriority() // instance
index URL

Set a thread's priority

C synopsis target-domain
Bool Thread_setOsPriority(Thread_Handle handle, Int newPri, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created Thread instance object
newPri — new thread priority
eb — Pointer to Error.Block
DETAILS
This API sets the base priority of the thread on OSes that support dynamic priority boosting
RETURNS
true for success; false for error
Thread_setPriority() // instance
index URL

Set a thread's priority

C synopsis target-domain
Bool Thread_setPriority(Thread_Handle handle, Thread_Priority newPri, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created Thread instance object
newPri — new thread priority
eb — Pointer to Error.Block
DETAILS
For OSes that support dynamic priority boosting, this function changes the base priority of the thread.
RETURNS
true for success; false for error
Thread_setTls() // instance
index URL

Change a thread's local storage

C synopsis target-domain
Void Thread_setTls(Thread_Handle handle, Ptr tls);
ARGUMENTS
handle — handle of a previously-created Thread instance object
tls — tls
Thread_stat() // instance
index URL

Get thread statistics

C synopsis target-domain
Bool Thread_stat(Thread_Handle handle, Thread_Stat *buf, Error_Block *eb);
ARGUMENTS
handle — handle of a previously-created Thread instance object
buf — Pointer to Stat
eb — Pointer to Error.Block
RETURNS
true for success; false for failure
Instance Built-Ins
index URL

C synopsis target-domain
Int Thread_Object_count();
// The number of statically-created instance objects
Thread_Handle Thread_Object_get(Thread_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
Thread_Handle Thread_Object_first();
// The handle of the first dynamically-created instance object, or NULL
Thread_Handle Thread_Object_next(Thread_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
IHeap_Handle Thread_Object_heap();
// The heap used to allocate dynamically-created instance objects
Types_Label *Thread_Handle_label(Thread_Handle handle, Types_Label *buf);
// The label associated with this instance object
String Thread_Handle_name(Thread_Handle handle);
// The name of this instance object
XDCscript usage meta-domain sourced in xdc/runtime/knl/Thread.xdc
var Thread = xdc.useModule('xdc.runtime.knl.Thread');
local proxy modules
     Thread.Proxy// Proxy that needs to be bound to an OS specific delegate = IThreadSupport.Module null
         Thread.Proxy.delegate$ = IThreadSupport.Module null
         Thread.Proxy.abstractInstances$ = false
module-wide constants & types
    const Thread.GETPRI_FAILED// Status returned by getPri when an error occurs = -2;
    const Thread.INVALID_OS_PRIORITY// Invalid OS priority value = 0;
    values of type Thread.CompStatus// Status returned by compareOsPriorities when an error occurs
        const Thread.CompStatus_ERROR;
        const Thread.CompStatus_LOWER;
        const Thread.CompStatus_EQUAL;
        const Thread.CompStatus_HIGHER;
    values of type Thread.Priority// Thread priorities which are mapped to OS specific value by Proxy
        const Thread.Priority_INVALID;
        const Thread.Priority_LOWEST;
        const Thread.Priority_BELOW_NORMAL;
        const Thread.Priority_NORMAL;
        const Thread.Priority_ABOVE_NORMAL;
        const Thread.Priority_HIGHEST;
    var obj = new Thread.Stat// Struct to hold thread statistics from stat;
        obj.stackSize = SizeT ...
        obj.stackUsed = SizeT ...
module-wide config parameters
     Thread.A_zeroTimeout// Assert when timeout passed to sleep is zero = Assert.Desc {
        msg: "A_zeroTimeout: Timeout value annot be zero"
    };
     Thread.defaultStackSize// Default thread stack size = SizeT 0;
     Thread.common$// Common module configuration parameters = Types.Common$ undefined;
per-instance config parameters
    var params = new Thread.Params// Instance config-params object;
        params.arg// Thread function argument. Default is 0 = IArg 0;
        params.osPriority// OS specific thread priority = Int Thread.INVALID_OS_PRIORITY;
        params.priority// Specify the new thread's priority = Thread.Priority Thread.Priority_NORMAL;
        params.stackSize// Thread stack size = SizeT 0;
        params.tls// Thread local storage = Ptr null;
per-instance creation
    var inst = Thread.create// Create an instance-object(Void(*)(IArg) fxn, params);
proxy Thread.Proxy
index URL

Proxy that needs to be bound to an OS specific delegate

XDCscript usage meta-domain
Thread.Proxy = IThreadSupport.Module null
// some delegate module inheriting the IThreadSupport interface
    Thread.Proxy.delegate$ = IThreadSupport.Module null
    // explicit access to the currently bound delegate module
    Thread.Proxy.abstractInstances$ = false
    // use indirect runtime function calls if true
const Thread.GETPRI_FAILED
index URL

Status returned by getPri when an error occurs

XDCscript usage meta-domain
const Thread.GETPRI_FAILED = -2;
C SYNOPSIS
Thread_GETPRI_FAILED
const Thread.INVALID_OS_PRIORITY
index URL

Invalid OS priority value

XDCscript usage meta-domain
const Thread.INVALID_OS_PRIORITY = 0;
C SYNOPSIS
Thread_INVALID_OS_PRIORITY
enum Thread.CompStatus
index URL

Status returned by compareOsPriorities when an error occurs

XDCscript usage meta-domain
values of type Thread.CompStatus
    const Thread.CompStatus_ERROR;
    const Thread.CompStatus_LOWER;
    const Thread.CompStatus_EQUAL;
    const Thread.CompStatus_HIGHER;
C SYNOPSIS
Thread_CompStatus
enum Thread.Priority
index URL

Thread priorities which are mapped to OS specific value by Proxy

XDCscript usage meta-domain
values of type Thread.Priority
    const Thread.Priority_INVALID;
    const Thread.Priority_LOWEST;
    const Thread.Priority_BELOW_NORMAL;
    const Thread.Priority_NORMAL;
    const Thread.Priority_ABOVE_NORMAL;
    const Thread.Priority_HIGHEST;
C SYNOPSIS
Thread_Priority
struct Thread.Stat
index URL

Struct to hold thread statistics from stat

XDCscript usage meta-domain
var obj = new Thread.Stat;
    obj.stackSize = SizeT ...
    obj.stackUsed = SizeT ...
C SYNOPSIS
Thread_Stat
config Thread.A_zeroTimeout // module-wide
index URL

Assert when timeout passed to sleep is zero

XDCscript usage meta-domain
Thread.A_zeroTimeout = Assert.Desc {
    msg: "A_zeroTimeout: Timeout value annot be zero"
};
C SYNOPSIS
Thread_A_zeroTimeout
config Thread.defaultStackSize // module-wide
index URL

Default thread stack size

XDCscript usage meta-domain
Thread.defaultStackSize = SizeT 0;
C SYNOPSIS
Thread_defaultStackSize
metaonly config Thread.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Thread.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.
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Thread.Params;
// Instance config-params object
    params.arg = IArg 0;
    // Thread function argument. Default is 0
    params.osPriority = Int Thread.INVALID_OS_PRIORITY;
    // OS specific thread priority
    params.priority = Thread.Priority Thread.Priority_NORMAL;
    // Specify the new thread's priority
    params.stackSize = SizeT 0;
    // Thread stack size
    params.tls = Ptr null;
    // Thread local storage
config Thread.arg // instance
index URL

Thread function argument. Default is 0

XDCscript usage meta-domain
var params = new Thread.Params;
...
params.arg = IArg 0;
C SYNOPSIS
null
config Thread.osPriority // instance
index URL

OS specific thread priority

XDCscript usage meta-domain
var params = new Thread.Params;
...
params.osPriority = Int Thread.INVALID_OS_PRIORITY;
DETAILS
Used to specify an OS specific value for priority. If set this value takes precedence over priority.
C SYNOPSIS
null
config Thread.priority // instance
index URL

Specify the new thread's priority

XDCscript usage meta-domain
var params = new Thread.Params;
...
params.priority = Thread.Priority Thread.Priority_NORMAL;
DETAILS
Thread defines several constants which allows applications to select a priority in an OS independent way: Priority_LOWEST, Priority_BELOW_NORMAL, Priority_NORMAL, Priority_ABOVE_NORMAL and Priority_HIGHEST. These values get mapped to OS specific priorities by the OS specific delegate.
C SYNOPSIS
null
config Thread.stackSize // instance
index URL

Thread stack size

XDCscript usage meta-domain
var params = new Thread.Params;
...
params.stackSize = SizeT 0;
DETAILS
The default value of 0 means that defaultStackSize is used.
C SYNOPSIS
null
config Thread.tls // instance
index URL

Thread local storage

XDCscript usage meta-domain
var params = new Thread.Params;
...
params.tls = Ptr null;
DETAILS
User data associated with a thread. Must persist for the life of the thread.
C SYNOPSIS
null
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Thread.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Thread.create(Void(*)(IArg) fxn, params);
// Create an instance-object
ARGUMENTS
fxn — function for new thread to begin execution
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
DETAILS
This function spawns a new thread calling the function fxn.
generated on Thu, 08 Nov 2012 02:13:30 GMT


module xdc.runtime.knl.Thread

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved.
     3     *  This program and the accompanying materials are made available under the
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * */
    13    /*
    14     *  ======== Thread.xdc ========
    15     */
    16
    17    import xdc.runtime.Error;
    18    import xdc.runtime.Assert;
    19    import xdc.runtime.knl.IThreadSupport;
    20
    21    /*!
    22     *  ======== Thread ========
    23     *  Thread services.
    24     *
    25     *  This module manages threads through a proxy which inherits from
    26     *  IThreadSupport interface. It has a module wide config parameter
    27     *  {@link #Proxy} which needs to be bound to an OS specific delegate before
    28     *  this module can be used.
    29     *
    30     *  Here is an example showing how the proxy is bound to a BIOS 6.x specific
    31     *  delegate.
    32     *
    33     *  @p(code)
    34     *  var Thread = xdc.useModule('xdc.runtime.knl.Thread');
    35     *  Thread.Proxy = xdc.useModule('ti.sysbios.xdcruntime.ThreadSupport');
    36     *  @p
    37     *
    38     *  Typically a package containing the delegates has a Settings module that
    39     *  will bind all {@link xdc.runtime.knl} proxies. The following
    40     *  example sets up all the xdc.runtime.knl proxies.
    41     *
    42     *  @p(code)
    43     *  xdc.useModule('ti.sysbios.xdcruntime.Settings');
    44     *  @p
    45     */
    46
    47    @InstanceInitError      /* because initialization can fail */
    48    @InstanceFinalize       /* have to Thread_Proxy_delete(sem) on delete */
    49
    50    module Thread
    51    {
    52        /*! Thread priorities which are mapped to OS specific value by Proxy */
    53        enum Priority {
    54            Priority_INVALID,
    55            Priority_LOWEST,
    56            Priority_BELOW_NORMAL,
    57            Priority_NORMAL,
    58            Priority_ABOVE_NORMAL,
    59            Priority_HIGHEST
    60        };
    61
    62        /*! Invalid OS priority value */
    63        const Int INVALID_OS_PRIORITY = 0;
    64
    65        /*! Status returned by {@link #getPri} when an error occurs */
    66        const Int GETPRI_FAILED = -2;
    67
    68        /*! Status returned by {@link #compareOsPriorities} when an error occurs */
    69        enum CompStatus {
    70            CompStatus_ERROR = -2,
    71            CompStatus_LOWER = -1,
    72            CompStatus_EQUAL = 0,
    73            CompStatus_HIGHER = 1
    74        };
    75
    76        /*! Proxy that needs to be bound to an OS specific delegate. */
    77        proxy Proxy inherits IThreadSupport;
    78
    79        /*! Typedef for thread function */
    80        typedef Void (*RunFxn)(IArg);
    81
    82        /*! Struct to hold thread statistics from {@link #stat} */
    83        struct Stat {
    84            SizeT stackSize;
    85            SizeT stackUsed;
    86        }
    87
    88        /*! Assert when  timeout passed to {@link #sleep} is zero */
    89        config Assert.Id A_zeroTimeout= {
    90            msg: "A_zeroTimeout: Timeout value annot be zero"
    91        };
    92
    93        /*! Default thread stack size. */
    94        config SizeT defaultStackSize = 0;
    95
    96        /*!
    97         *  ======== self ========
    98         *  Return the currently executing thread's handle
    99         *
   100         *  @param(eb)      Pointer to Error.Block
   101         *  @a(returns)     Returns a handle to the currently executing thread.
   102         *                  If the current thread is the main thread, this function
   103         *                  returns `NULL`. NULL is also returned in case of error.
   104         */
   105        @DirectCall
   106        Handle self(Error.Block *eb);
   107
   108        /*!
   109         *  ======== start ========
   110         *  Start threads running
   111         *
   112         *  This function can be used to start all statically created threads,
   113         *  and all threads created dynamically before this function is called.
   114         *  Any thread created after this function is called, starts automatically.
   115         *  (i.e., there is no need to call Thread_start() more than once).
   116         *
   117         *  @param(eb)      Pointer to Error.Block
   118         *  @a(returns)     true for success; false for error
   119         */
   120        Bool start(Error.Block *eb);
   121
   122        /*!
   123         *  ======== yield ========
   124         *  Yield the currently scheduled thread
   125         *
   126         *  @param(eb)      Pointer to Error.Block
   127         *  @a(returns)     true for success; false for error
   128         */
   129        Bool yield(Error.Block *eb);
   130
   131        /*!
   132         *  ======== compareOsPriorities ========
   133         *  Compare two os specific priority values and find out which one
   134         *  represents a higher priority.
   135         *
   136         *  @p(blist)
   137         *  -{@link #CompStatus_ERROR} if an error occured
   138         *  -{@link #CompStatus_LOWER} if p1 is lower than p2
   139         *  -{@link #CompStatus_EQUAL} if p1=p2
   140         *  -{@link #CompStatus_HIGHER} if p1 is higher than p2
   141         *    details.
   142         *  @p
   143         *
   144         *  @param(p1)      priority one
   145         *  @param(p2)      priority two
   146         *  @param(eb)      Pointer to Error.Block
   147         *  @a(returns)     refer to description above
   148         */
   149        Int compareOsPriorities(Int p1, Int p2, Error.Block *eb);
   150
   151        /*!
   152         *  ======== sleep ========
   153         *  Sleep for given number of microseconds
   154         *
   155         *  This function is gauranteed to sleep for at least as long as the
   156         *  timeout value but the actual sleep time may be longer. NOTE:
   157         *  The timeout value cannot be zero.
   158         *
   159         *  @param(timeout)     timeout in microseconds
   160         *  @param(eb)          Pointer to Error.Block
   161         *  @a(returns)         true for success; false for error
   162         */
   163        Bool sleep(UInt timeout, Error.Block *eb);
   164
   165    instance:
   166
   167        /*! Thread function argument. Default is 0. */
   168        config IArg arg = 0;
   169
   170        /*!
   171         *  ======== priority ========
   172         *  Specify the new thread's priority
   173         *
   174         *  Thread defines several constants which allows applications to select
   175         *  a priority in an OS independent way: Priority_LOWEST,
   176         *  Priority_BELOW_NORMAL, Priority_NORMAL, Priority_ABOVE_NORMAL and
   177         *  Priority_HIGHEST. These values get mapped to OS specific priorities
   178         *  by the OS specific delegate.
   179         */
   180        config Priority priority = Priority_NORMAL;
   181
   182        /*!
   183         *  ======== osPriority ========
   184         *  OS specific thread priority
   185         *
   186         *  Used to specify an OS specific value for priority. If set this value
   187         *  takes precedence over {@link #priority}.
   188         */
   189        config Int osPriority = INVALID_OS_PRIORITY;
   190
   191        /*!
   192         *  ======== stackSize ========
   193         *  Thread stack size
   194         *
   195         *  The default value of 0 means that `{@link #defaultStackSize}` is used.
   196         */
   197        config SizeT stackSize = 0;
   198
   199        /*!
   200         *  ======== tls ========
   201         *  Thread local storage.
   202         *
   203         *  User data associated with a thread. Must persist for the life of
   204         *  the thread.
   205         */
   206        config Ptr tls = null;
   207
   208        /*!
   209         *  ======== create ========
   210         *  Create a Thread object
   211         *
   212         *  This function spawns a new thread calling the function fxn.
   213         *
   214         *  @param(fxn)     function for new thread to begin execution
   215         */
   216        create(RunFxn fxn);
   217
   218        /*!
   219         *  ======== join ========
   220         *  Block calling thread until given thread terminates.
   221         *
   222         *  Use this functions to ensure that a thread has terminated. It is OK to
   223         *  call this function on a thread that has already terminated.
   224         *
   225         *  @param(eb)      Pointer to Error.Block
   226         *  @a(returns)     true for success; false for error
   227         */
   228        Bool join(Error.Block *eb);
   229
   230        /*!
   231         *  ======== getPriority ========
   232         *  Obtain a thread's priority.
   233         *
   234         *  For OSes that support dynamic priority boosting, this function
   235         *  retrieves the base priority of the thread.
   236         *
   237         *  @param(eb)      Pointer to Error.Block
   238         *  @a(returns)     thread priority in case of success; PRIORITY_INVALID in
   239         *                  case of error;
   240         */
   241        Priority getPriority(Error.Block *eb);
   242
   243        /*!
   244         *  ======== setPriority ========
   245         *  Set a thread's priority.
   246         *
   247         *  For OSes that support dynamic priority boosting, this function
   248         *  changes the base priority of the thread.
   249         *
   250         *  @param(newPri)  new thread priority
   251         *  @param(eb)      Pointer to Error.Block
   252         *  @a(returns)     true for success; false for error
   253         */
   254        Bool setPriority(Priority newPri, Error.Block *eb);
   255
   256        /*!
   257         *  ======== getOsPriority ========
   258         *  Obtain a thread's OS specific priority.
   259         *
   260         *  For OSes that support dynamic priority boosting, the value returned
   261         *  is the base priority of the thread.
   262         *
   263         *  @param(eb)      Pointer to Error.Block
   264         *  @a(returns)     thread priority in case of success; GETPRI_FAILED in
   265         *                  case of error;
   266         */
   267        Int getOsPriority(Error.Block *eb);
   268
   269        /*!
   270         *  ======== setOsPriority ========
   271         *  Set a thread's priority.
   272         *
   273         *  This API sets the base priority of the thread on OSes that
   274         *  support dynamic priority boosting
   275         *
   276         *  @param(newPri)  new thread priority
   277         *  @param(eb)      Pointer to Error.Block
   278         *  @a(returns)     true for success; false for error
   279         */
   280        Bool setOsPriority(Int newPri, Error.Block *eb);
   281
   282        /*!
   283         *  ======== getOsHandle ========
   284         *  Get the OS thread handle
   285         *
   286         *   @a(returns)     OS thread handle
   287         */
   288        Ptr getOsHandle();
   289
   290        /*!
   291         *  ======== getTls ========
   292         *  Obtain a thread's local storage.
   293         *
   294         *   @a(returns)     null when tls has not been set.
   295         */
   296        Ptr getTls();
   297
   298        /*!
   299         *  ======== setTls ========
   300         *  Change a thread's local storage.
   301         *
   302         *  @param(tls)     tls
   303         */
   304        Void setTls(Ptr tls);
   305
   306        /*!
   307         *  ======== stat ========
   308         *  Get thread statistics
   309         *
   310         *  @param(buf)     Pointer to Stat
   311         *  @param(eb)      Pointer to Error.Block
   312         *  @a(returns)     true for success; false for failure
   313         */
   314        Bool stat(Stat* buf, Error.Block *eb);
   315
   316    internal:
   317
   318        struct Instance_State {
   319            Thread.Proxy.Handle proxyHandle; /*! handle for real implementation */
   320            Ptr                 tls;         /*! store tls parameter */
   321        }
   322    }
   323    /*
   324     *  @(#) xdc.runtime.knl; 1, 0, 0,204; 11-3-2012 15:19:14; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   325     */
   326


package xdc.services.getset
index URL

Callback notification on RTSC config parameters

XDCspec declarations sourced in xdc/services/getset/package.xdc
package xdc.services.getset [1, 0, 0] {
    module GetSet;
    // Callback notification on RTSC config parameters
}
SEE
JavaDoc (No Frames), (Frames)
generated on Thu, 08 Nov 2012 02:13:46 GMT


package xdc.services.getset

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  Callback notification on RTSC config parameters.
    15     *
    16     *  @see ./doc-files/xdc/services/getset/package-summary.html JavaDoc (No Frames)
    17     *  @see ./doc-files/index.html (Frames)
    18     */
    19    package xdc.services.getset [1,0,0] {
    20        module GetSet;
    21    }


module xdc.services.getset.GetSet

metaonly module xdc.services.getset.GetSet
index URL

Callback notification on RTSC config parameters

  • DETAILS
  • SEE
  • XDCscript usage
  • Individual elements
Lets user code receive a notification whenever a config param of a module or instance is read or modified. [ more ... ]
XDCscript usage meta-domain sourced in xdc/services/getset/GetSet.xdc
var GetSet = xdc.useModule('xdc.services.getset.GetSet');
module-wide config parameters
     GetSet.debug// Print execution trace info showing the flow of getters and setters = Bool false;
     GetSet.maxIterations// Limit the number of iterations allowed for a group to converge, to help debug. The default value of 0 means no limit = Int 0;
     GetSet.maxStackDepth// Set the maximum allowed depth of recursively nested setters, as a debugging aid. The default value of 0 means no limit = Int 0;
module-wide functions
     GetSet.createGroup// Create a group of related setter functions() returns Any
     GetSet.init// Add support for getters and setters to all fields of an object(Any obj) returns Any
     GetSet.onGet// Add a getter function to a field(Any obj, Any sel, Any getter) returns Any
     GetSet.onSet// Add a setter function to a field(Any obj, Any sel, Any setter) returns Any
DETAILS
Lets user code receive a notification whenever a config param of a module or instance is read or modified.
SEE
JavaDoc
config GetSet.debug // module-wide
index URL

Print execution trace info showing the flow of getters and setters

XDCscript usage meta-domain
GetSet.debug = Bool false;
config GetSet.maxIterations // module-wide
index URL

Limit the number of iterations allowed for a group to converge, to help debug. The default value of 0 means no limit

XDCscript usage meta-domain
GetSet.maxIterations = Int 0;
config GetSet.maxStackDepth // module-wide
index URL

Set the maximum allowed depth of recursively nested setters, as a debugging aid. The default value of 0 means no limit

XDCscript usage meta-domain
GetSet.maxStackDepth = Int 0;
GetSet.createGroup() // module-wide
index URL

Create a group of related setter functions

XDCscript usage meta-domain
GetSet.createGroup() returns Any
DETAILS
The purpose of a group is to control interactions between setters. If each setter acts like an interrupt, then a group is like an interrupt controller that determines when setters are permitted to run.
Each group is non-reentrant. Once any setter in the group is running, it runs to completion before any other setter in the same group may run. This allows the setters to modify internal state without interference from other setters that operate on the same internal state.
Each group runs to completion. When a setter in the group runs, it might modify other config params and cause further setters in the same group to run. All of these complete before control is returned to the original execution flow. From the point of view of code outside the group, all the setters ran as an atomic operation.
Groups may be interrupted. When a setter modifies a config param that is being monitored by a second group, the second group starts running immediately. It will run to completion before returning control to the first group. So the first group sees the second group as atomic. This allows groups to be tested independently, and combined without affecting their behavior.
Cycles aren't permitted in the execution flow between groups. If a setter gets triggered from a group that has already been interrupted, it is deferred and run when control eventually returns to its own group. Cycles between groups can break the appearance of atomic execution, and so should be avoided when possible.
RETURNS
A Java object of class Group. Can then use Group.onSet() to add functions to the group.
EXAMPLE
The following example code forces the values of the config params ModA.a and ModB.b to be equal:
    var group = GetSet.createGroup();
    group.onSet(ModA, "a", function aToB(){ ModB.b = ModA.a; });
    group.onSet(ModB, "b", function bToA(){ ModA.a = ModB.b; });
GetSet.init() // module-wide
index URL

Add support for getters and setters to all fields of an object

XDCscript usage meta-domain
GetSet.init(Any obj) returns Any
DETAILS
Initializes getter and setter support for every field of the object. The object can be a module, instance, or structure.
This is a convenience function. The onSet and onGet functions already add support to the one field of interest. The init function is useful mostly to make fields visible to global setters and getters, for example for debugging.
GetSet.onGet() // module-wide
index URL

Add a getter function to a field

XDCscript usage meta-domain
GetSet.onGet(Any obj, Any sel, Any getter) returns Any
DETAILS
Each getter acts like an interrupt that is triggered by a read a field of an object. The field could be a config param of a module or an instance, or a field of a struct.
EXAMPLE
The following example prints a message on any read of a config param named cfg in module pkg.Mod:
    GetSet.onGet(Mod, "cfg", function(sel, val) {
        // prints "pkg.Mod.cfg returned <value>"
        print(this.$name + "." + sel + " returned " + val);
    });
GetSet.onSet() // module-wide
index URL

Add a setter function to a field

XDCscript usage meta-domain
GetSet.onSet(Any obj, Any sel, Any setter) returns Any
DETAILS
Each setter acts like an interrupt that is triggered by modifying a field of an object. The field could be a config param of a module or an instance, or a field of a struct.
Setters execute only when the field actually changes value. They do not execute if the field's current value is written back to it.
Setters may themselves modify fields, and so trigger other setters. The original execution flow resumes when all fields stop changing value. In the case of cycles between setters, typically this means that at least one setter executes twice and makes no further changes the second time through.
If the setter throws a JavaScript Error or Java exception, then the field's original value is restored. The exception bubbles back through the call stack, so that if a setter caused a cascade of changes, all are restored to their original values.
EXAMPLE
The following example prints a message on any write to a config param named cfg in module pkg.Mod:
    GetSet.onSet(Mod, "cfg", function(sel, val, oldVal, exception) {
        // prints "pkg.Mod.cfg set to <value>"
        print(this.$name + "." + sel + " changed to " + val);
        // prints previous value before change
        print("  was " + oldVal);
    });
The following example makes it an error to change Mod.cfg:
    GetSet.onSet(Mod, "cfg", function(sel, val, oldVal, exception) {
        // don't throw an exception if already recovering from one
        if (!exception) {
            throw new Error("You'll never change me!");
        }
    });
generated on Thu, 08 Nov 2012 02:13:46 GMT


module xdc.services.getset.GetSet

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  Callback notification on RTSC config parameters.
    15     *
    16     *  Lets user code receive a notification whenever a
    17     *  config param of a module or instance is read or modified.
    18     *
    19     *  @see ./doc-files/xdc/services/getset/package-summary.html JavaDoc
    20     */
    21    metaonly module GetSet
    22    {
    23        /*!
    24         *  ======== onGet ========
    25         *  Add a getter function to a field.
    26         *
    27         *  Each getter acts like an interrupt that is triggered by a read
    28         *  a field of an object. The field could be a config param of a module
    29         *  or an instance, or a field of a struct.
    30         *
    31         *  @a(example)
    32         *  The following example prints a message on any read of a
    33         *  config param named `cfg` in module `pkg.Mod`:
    34         *  @p(code)
    35         *    GetSet.onGet(Mod, "cfg", function(sel, val) {
    36         *        // prints "pkg.Mod.cfg returned <value>"
    37         *        print(this.$name + "." + sel + " returned " + val);
    38         *    });
    39         *  @p
    40         */
    41        function onGet(obj, sel, getter);
    42
    43        /*!
    44         *  ======== onSet ========
    45         *  Add a setter function to a field.
    46         *
    47         *  Each setter acts like an interrupt that is triggered by modifying
    48         *  a field of an object. The field could be a config param of a module
    49         *  or an instance, or a field of a struct.
    50         *
    51         *  Setters execute only when the field actually changes value. They do
    52         *  not execute if the field's current value is written back to it.
    53         *
    54         *  Setters may themselves modify fields, and so trigger other setters.
    55         *  The original execution flow resumes when all fields stop changing
    56         *  value. In the case of cycles between setters, typically this means
    57         *  that at least one setter executes twice and makes no further
    58         *  changes the second time through.
    59         *
    60         *  If the setter throws a JavaScript Error or Java exception, then
    61         *  the field's original value is restored. The exception bubbles back
    62         *  through the call stack, so that if a setter caused a cascade of
    63         *  changes, all are restored to their original values.
    64         *
    65         *  @a(example)
    66         *  The following example prints a message on any write to a
    67         *  config param named `cfg` in module `pkg.Mod`:
    68         *  @p(code)
    69         *    GetSet.onSet(Mod, "cfg", function(sel, val, oldVal, exception) {
    70         *        // prints "pkg.Mod.cfg set to <value>"
    71         *        print(this.$name + "." + sel + " changed to " + val);
    72         *        // prints previous value before change
    73         *        print("  was " + oldVal);
    74         *    });
    75         *  @p
    76         *
    77         *  @a(example)
    78         *  The following example makes it an error to change `Mod.cfg`:
    79         *  @p(code)
    80         *    GetSet.onSet(Mod, "cfg", function(sel, val, oldVal, exception) {
    81         *        // don't throw an exception if already recovering from one
    82         *        if (!exception) {
    83         *            throw new Error("You'll never change me!");
    84         *        }
    85         *    });
    86         *  @p
    87         */
    88        function onSet(obj, sel, setter);
    89
    90        /*!
    91         *  ======== createGroup ========
    92         *  Create a group of related setter functions.
    93         *
    94         *  The purpose of a group is to control interactions between setters.
    95         *  If each setter acts like an interrupt, then a group is like an
    96         *  interrupt controller that determines when setters are permitted
    97         *  to run.
    98         *
    99         *  Each group is non-reentrant. Once any setter in the group is
   100         *  running, it runs to completion before any other setter in the
   101         *  same group may run. This allows the setters to modify internal
   102         *  state without interference from other setters that operate on
   103         *  the same internal state.
   104         *
   105         *  Each group runs to completion. When a setter in the group runs, it
   106         *  might modify other config params and cause further setters in the
   107         *  same group to run. All of these complete before control is returned
   108         *  to the original execution flow. From the point of view of code
   109         *  outside the group, all the setters ran as an atomic operation.
   110         *
   111         *  Groups may be interrupted. When a setter modifies a config param
   112         *  that is being monitored by a second group, the second group starts
   113         *  running immediately. It will run to completion before returning
   114         *  control to the first group. So the first group sees the second
   115         *  group as atomic. This allows groups to be tested independently,
   116         *  and combined without affecting their behavior.
   117         *
   118         *  Cycles aren't permitted in the execution flow between groups. If a
   119         *  setter gets triggered from a group that has already been interrupted,
   120         *  it is deferred and run when control eventually returns to its own
   121         *  group. Cycles between groups can break the appearance of atomic
   122         *  execution, and so should be avoided when possible.
   123         *
   124         *  @a(returns)
   125         *  A Java object of class
   126         *    {@link ./doc-files/xdc/services/getset/Group.html Group}.
   127         *  Can then use Group.onSet() to add functions to the group.
   128         *
   129         *  @a(example)
   130         *  The following example code forces the values of the config params
   131         *  `ModA.a` and `ModB.b` to be equal:
   132         *  @p(code)
   133         *    var group = GetSet.createGroup();
   134         *    group.onSet(ModA, "a", function aToB(){ ModB.b = ModA.a; });
   135         *    group.onSet(ModB, "b", function bToA(){ ModA.a = ModB.b; });
   136         *  @p
   137         */
   138        function createGroup();
   139
   140        /*!
   141         *  ======== init ========
   142         *  Add support for getters and setters to all fields of an object.
   143         *
   144         *  Initializes getter and setter support for every field of
   145         *  the object. The object can be a module, instance, or structure.
   146         *
   147         *  This is a convenience function. The `onSet` and `onGet` functions
   148         *  already add support to the one field of interest. The `init`
   149         *  function is useful mostly to make fields visible to global setters
   150         *  and getters, for example for debugging.
   151         */
   152        function init(obj);
   153
   154        /*!
   155         *  ======== debug ========
   156         *  Print execution trace info showing the flow of getters and setters.
   157         */
   158        config Bool debug = false;
   159
   160        /*!
   161         *  ======== maxIterations ========
   162         *  Limit the number of iterations allowed for a group to converge, to
   163         *  help debug. The default value of 0 means no limit.
   164         */
   165        config int maxIterations = 0;
   166
   167        /*!
   168         *  ======== maxStackDepth ========
   169         *  Set the maximum allowed depth of recursively nested setters, as
   170         *  a debugging aid. The default value of 0 means no limit.
   171         */
   172        config int maxStackDepth = 0;
   173    }


package xdc.services.global
index URL

Common XDC utility classes

XDCspec declarations sourced in xdc/services/global/package.xdc
package xdc.services.global [1, 0, 0] {
    module Clock;
    // Elapsed time measurement functions
    module Trace;
    // Trace support
}
generated on Thu, 08 Nov 2012 02:13:46 GMT


package xdc.services.global

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== xdc.services.global ========
    14     *  Common XDC utility classes
    15     */
    16    package xdc.services.global [1, 0, 0]
    17    {
    18        module Clock;
    19        module Trace;
    20    }
    21    /*
    22     *  @(#) xdc.services.global; 1, 0, 0,394; 11-3-2012 15:19:16; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    23     */
    24


module xdc.services.global.Clock

metaonly module xdc.services.global.Clock
index URL

Elapsed time measurement functions

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/services/global/Clock.xdc
var Clock = xdc.useModule('xdc.services.global.Clock');
module-wide config parameters
     Clock.enable// Enable output from this module = Bool false;
     Clock.showMemory// Enable memory usage output = Bool false;
module-wide functions
     Clock.getElapsedTime// Get elapsed time from last reset() returns Any
     Clock.print// Report elapsed time from last reset(String msg) returns Void
     Clock.reset// Set elapsed time to 0() returns Void
config Clock.enable // module-wide
index URL

Enable output from this module

XDCscript usage meta-domain
Clock.enable = Bool false;
DETAILS
If false, all output is suppressed
config Clock.showMemory // module-wide
index URL

Enable memory usage output

XDCscript usage meta-domain
Clock.showMemory = Bool false;
DETAILS
If false, memory usage output is suppressed
Clock.getElapsedTime() // module-wide
index URL

Get elapsed time from last reset

XDCscript usage meta-domain
Clock.getElapsedTime() returns Any
Clock.print() // module-wide
index URL

Report elapsed time from last reset

XDCscript usage meta-domain
Clock.print(String msg) returns Void
Clock.reset() // module-wide
index URL

Set elapsed time to 0

XDCscript usage meta-domain
Clock.reset() returns Void
generated on Thu, 08 Nov 2012 02:13:46 GMT


module xdc.services.global.Clock

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== Clock ========
    14     *  Elapsed time measurement functions
    15     */
    16    metaonly module Clock {
    17
    18        /*!
    19         *  ======== getElapsedTime ========
    20         *  Get elapsed time from last reset
    21         */
    22        function getElapsedTime();
    23
    24        /*!
    25         *  ======== enable ========
    26         *  Enable output from this module
    27         *
    28         *  If false, all output is suppressed
    29         */
    30        config Bool enable = false;
    31
    32        /*!
    33         *  ======== showMemory ========
    34         *  Enable memory usage output
    35         *
    36         *  If false, memory usage output is suppressed
    37         */
    38        config Bool showMemory = false;
    39
    40        /*!
    41         *  ======== print ========
    42         *  Report elapsed time from last reset
    43         */
    44        void print(String msg);
    45
    46        /*!
    47         *  ======== reset ========
    48         *  Set elapsed time to 0
    49         */
    50        void reset();
    51    }
    52    /*
    53     *  @(#) xdc.services.global; 1, 0, 0,394; 11-3-2012 15:19:16; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    54     */
    55


module xdc.services.global.Trace

metaonly module xdc.services.global.Trace
index URL

Trace support

  • XDCscript usage
  • Individual elements
This module allows system integrators to selectively enable trace statements, from within XDCscripts. Trace statements can be selected based on the file (capsule) and the package in which they are located. For example, trace statements from file Mod.xs in package myPkgs.pkgA' can be enabled either with Trace.capsuleEnable(["myPkgs/pkgA/Mod"]) or with Trace.packageEnable(["myPkgs.pkgA"])`. [ more ... ]
XDCscript usage meta-domain sourced in xdc/services/global/Trace.xdc
var Trace = xdc.useModule('xdc.services.global.Trace');
module-wide config parameters
     Trace.packageLoad// Enable trace of loaded packages = Bool false;
     Trace.useModule// Enable trace of used modules = Bool false;
module-wide functions
     Trace.addSupergroup// Add a group that contains other groups(String supergroup, String[] subgroups) returns Void
     Trace.capsuleEnable// Enable trace output from selected capsules(String[] capsules) returns String[]
     Trace.groupEnable// Enable trace output from selected groups(String[] groups) returns String[]
     Trace.packageEnable// Enable trace output from selected packages(String[] packages) returns String[]
     Trace.setLevel// Set the verbosity level(Int level) returns Int
DETAILS
This module allows system integrators to selectively enable trace statements, from within XDCscripts. Trace statements can be selected based on the file (capsule) and the package in which they are located. For example, trace statements from file Mod.xs in package myPkgs.pkgA' can be enabled either with Trace.capsuleEnable(["myPkgs/pkgA/Mod"]) or with Trace.packageEnable(["myPkgs.pkgA"])`.
Trace statements can also belong to groups, strings defined by package producers when they need to group related trace statements, distributed across different modules and packages, into trace units that can be disabled or enabled as a whole. If some of the trace statements from file Mod.xs are tagged to belong to a group "init", the following will activate them:
  Trace.groupEnable(["init"]);
Each trace statement by default belongs to the group "all". To activate all trace statements:
  Trace.setLevel(2);
  Trace.groupEnable(["all"]);
config Trace.packageLoad // module-wide
index URL

Enable trace of loaded packages

XDCscript usage meta-domain
Trace.packageLoad = Bool false;
DETAILS
This setting enables the messages related to loading packages. If true, whenever a package is loaded, the following info is displayed:
  • name of a package loading another package
  • name of the loaded package
  • repository from which the package is being loaded
config Trace.useModule // module-wide
index URL

Enable trace of used modules

XDCscript usage meta-domain
Trace.useModule = Bool false;
DETAILS
This setting enables the messages that inform when the function xdc.useModule() is invoked on a module, and when a module's module$use function is invoked.
Trace.addSupergroup() // module-wide
index URL

Add a group that contains other groups

XDCscript usage meta-domain
Trace.addSupergroup(String supergroup, String[] subgroups) returns Void
ARGUMENTS
supergroup — name of the new group
subgroups — array of the existing trace groups
DETAILS
This function allows giving a name to an array of existing trace groups.
Trace.capsuleEnable() // module-wide
index URL

Enable trace output from selected capsules

XDCscript usage meta-domain
Trace.capsuleEnable(String[] capsules) returns String[]
ARGUMENTS
capsules — array of capsule names
DETAILS
Capsules are either XDCscript files or Java source files. The function parameter is treated as an array of JavaScript regular expressions, therefore it can contain partial capsule names.
If this function is invoked repeatedly, each new call replaces the array of currently enabled capsules with the array supplied as the parameter. The array of the currently enabled capsules is returned. If the function is invoked with a zero-length array, it returns the currently enabled capsules, but it also leaves them active. Therefore, the sequence of calls that would add new capsules instead of replacing the current ones is:
  var current = Trace.capsuleEnable([]);
  current[current.length++] = "pkg/ModA.xs";
  current[current.length++] = "pkg/ModB.xs";
  Trace.capsuleEnable(current);
To disable trace for all capsules, the function must be invoked with an empty string as the only element of the array.
  Trace.capsuleEnable([""]);
RETURN
array of currently enabled capsule names
Trace.groupEnable() // module-wide
index URL

Enable trace output from selected groups

XDCscript usage meta-domain
Trace.groupEnable(String[] groups) returns String[]
ARGUMENTS
groups — array of groups
DETAILS
A group is a string defined by package producers when they need to group related trace statements, distributed across different modules and packages, into trace units that can be disabled or enabled as a whole. The function parameter is treated as an array of JavaScript regular expressions, therefore it can contain partial group names.
If this function is invoked repeatedly, each new call replaces the array of currently enabled groups with the array supplied as the parameter. The array of the currently enabled groups is returned. If the function is invoked with a zero-length array, it returns the currently enabled groups, but it also leaves them active. Therefore, the sequence of calls that would add new groups instead of replacing the current ones is:
  var current = Trace.groupEnable([]);
  current[current.length++] = "libPkgs";
  Trace.groupEnable(current);
To disable trace for all groups, the function must be invoked with an empty string as the only element of the array.
  Trace.groupEnable([""]);
RETURN
array of currently enabled groups
Trace.packageEnable() // module-wide
index URL

Enable trace output from selected packages

XDCscript usage meta-domain
Trace.packageEnable(String[] packages) returns String[]
ARGUMENTS
packages — array of package names
DETAILS
Packages that can be enabled through this function are RTSC packages and Java packages. The function parameter is treated as an array of JavaScript regular expressions, therefore it can contain partial package names.
If this function is invoked repeatedly, each new call replaces the array of currently enabled packages with the array supplied as the parameter. The array of the currently enabled packages is returned. If the function is invoked with a zero-length array, it returns the currently enabled packages, but it also leaves them active. Therefore, the sequence of calls that would add new packages instead of replacing the current ones is:
  var current = Trace.packageEnable([]);
  current[current.length++] = "ti.targets";
  Trace.packageEnable(current);
To disable trace for all packages, the function must be invoked with an empty string as the only element of the array.
  Trace.packageEnable([""]);
RETURN
array of currently enabled package names
Trace.setLevel() // module-wide
index URL

Set the verbosity level

XDCscript usage meta-domain
Trace.setLevel(Int level) returns Int
DETAILS
This function limits trace output to trace statement tagged with level equal or lower than this function's parameter. By default, the verbosity level is set to 0, which is the least verbose level. The most verbose level is 2.
generated on Thu, 08 Nov 2012 02:13:46 GMT


module xdc.services.global.Trace

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== Trace ========
    14     *  Trace support
    15     *
    16     *  This module allows system integrators to selectively enable trace
    17     *  statements, from within XDCscripts. Trace statements can be selected
    18     *  based on the file (capsule) and the package in which they are located.
    19     *  For example, trace statements from file `Mod.xs` in package `myPkgs.pkgA'
    20     *  can be enabled either with `Trace.capsuleEnable(["myPkgs/pkgA/Mod"])` or
    21     *  with `Trace.packageEnable(["myPkgs.pkgA"])`.
    22     *
    23     *  Trace statements can also belong to groups, strings defined by package
    24     *  producers when they need to group related trace statements, distributed
    25     *  across different modules and packages, into trace units that can be
    26     *  disabled or enabled as a whole. If some of the trace statements from file
    27     *  `Mod.xs` are tagged to belong to a group "init", the following will
    28     *  activate them:
    29     *  @p(code)
    30     *  Trace.groupEnable(["init"]);
    31     *  @p
    32     *
    33     *  Each trace statement by default belongs to the group "all". To activate
    34     *  all trace statements:
    35     *  @p(code)
    36     *  Trace.setLevel(2);
    37     *  Trace.groupEnable(["all"]);
    38     *  @p
    39     *
    40     */
    41    metaonly module Trace {
    42
    43        typedef String StringArray[];
    44
    45        /*!
    46         *  ======== level ========
    47         *  @_nodoc
    48         *  Select the amount of printed messages
    49         */
    50        config Int level = 0;
    51
    52        /*!
    53         *  ======== capsules ========
    54         *  @_nodoc
    55         *  Array of regular expressions enabling trace in capsules
    56         */
    57        config StringArray capsules = [];
    58
    59        /*!
    60         *  ======== packages ========
    61         *  @_nodoc
    62         *  Array of regular expressions enabling trace in packages
    63         */
    64        config StringArray packages = [];
    65
    66        /*!
    67         *  ======== groups ========
    68         *  @_nodoc
    69         *  Array of regular expressions enabling trace in groups
    70         */
    71        config StringArray groups = [];
    72
    73        /*!
    74         *  ======== packageLoad ========
    75         *  Enable trace of loaded packages
    76         *
    77         *  This setting enables the messages related to loading packages.
    78         *  If `true`, whenever a package is loaded, the following info is
    79         *  displayed:
    80         *  @p(blist)
    81         *  - name of a package loading another package
    82         *  - name of the loaded package
    83         *  - repository from which the package is being loaded
    84         *  @p
    85         */
    86        config Bool packageLoad = false;
    87
    88        /*!
    89         *  ======== useModule ========
    90         *  Enable trace of used modules
    91         *
    92         *  This setting enables the messages that inform when the function
    93         *  `xdc.useModule()` is invoked on a module, and when a module's
    94         *  `module$use` function is invoked.
    95         */
    96        config Bool useModule = false;
    97
    98        /*!
    99         *  ======== addSupergroup ========
   100         *  Add a group that contains other groups
   101         *
   102         *  This function allows giving a name to an array of existing
   103         *  trace groups.
   104         *
   105         *  @param(supergroup)      name of the new group
   106         *  @param(subgroups)       array of the existing trace groups
   107         */
   108        Void addSupergroup(String supergroup, StringArray subgroups);
   109
   110        /*!
   111         *  ======== capsuleEnable ========
   112         *  Enable trace output from selected capsules
   113         *
   114         *  Capsules are either XDCscript files or Java source files. The
   115         *  function parameter is treated as an array of JavaScript
   116         *  regular expressions, therefore it can contain partial capsule
   117         *  names.
   118         *
   119         *  If this function is invoked repeatedly, each new call replaces
   120         *  the array of currently enabled capsules with the array supplied
   121         *  as the parameter. The array of the currently enabled capsules is
   122         *  returned. If the function is invoked with a zero-length array, it
   123         *  returns the currently enabled capsules, but it also leaves them
   124         *  active. Therefore, the sequence of calls that would add new
   125         *  capsules instead of replacing the current ones is:
   126         *  @p(code)
   127         *  var current = Trace.capsuleEnable([]);
   128         *  current[current.length++] = "pkg/ModA.xs";
   129         *  current[current.length++] = "pkg/ModB.xs";
   130         *  Trace.capsuleEnable(current);
   131         *  @p
   132         *
   133         *  To disable trace for all capsules, the function must be invoked
   134         *  with an empty string as the only element of the array.
   135         *  @p(code)
   136         *  Trace.capsuleEnable([""]);
   137         *  @p
   138         *
   139         *  @param(capsules)        array of capsule names
   140         *
   141         *  @a(return)              array of currently enabled capsule names
   142         */
   143        StringArray capsuleEnable(StringArray capsules);
   144
   145        /*!
   146         *  ======== groupEnable ========
   147         *  Enable trace output from selected groups
   148         *
   149         *  A group is a string defined by package producers when they need to
   150         *  group related trace statements, distributed across different
   151         *  modules and packages, into trace units that can be disabled or
   152         *  enabled as a whole. The function parameter is treated as an array
   153         *  of JavaScript regular expressions, therefore it can contain partial
   154         *  group names.
   155         *
   156         *  If this function is invoked repeatedly, each new call replaces
   157         *  the array of currently enabled groups with the array supplied
   158         *  as the parameter. The array of the currently enabled groups is
   159         *  returned. If the function is invoked with a zero-length array, it
   160         *  returns the currently enabled groups, but it also leaves them
   161         *  active. Therefore, the sequence of calls that would add new groups
   162         *  instead of replacing the current ones is:
   163         *  @p(code)
   164         *  var current = Trace.groupEnable([]);
   165         *  current[current.length++] = "libPkgs";
   166         *  Trace.groupEnable(current);
   167         *  @p
   168         *
   169         *  To disable trace for all groups, the function must be invoked
   170         *  with an empty string as the only element of the array.
   171         *  @p(code)
   172         *  Trace.groupEnable([""]);
   173         *  @p
   174         *
   175         *  @param(groups)  array of groups
   176         *
   177         *  @a(return)      array of currently enabled groups
   178         */
   179        StringArray groupEnable(StringArray groups);
   180
   181        /*!
   182         *  ======== packageEnable ========
   183         *  Enable trace output from selected packages
   184         *
   185         *  Packages that can be enabled through this function are RTSC
   186         *  packages and Java packages. The function parameter is treated as
   187         *  an array of JavaScript regular expressions, therefore it can
   188         *  contain partial package names.
   189         *
   190         *  If this function is invoked repeatedly, each new call replaces
   191         *  the array of currently enabled packages with the array supplied
   192         *  as the parameter. The array of the currently enabled packages is
   193         *  returned. If the function is invoked with a zero-length array, it
   194         *  returns the currently enabled packages, but it also leaves them
   195         *  active. Therefore, the sequence of calls that would add new
   196         *  packages instead of replacing the current ones is:
   197         *  @p(code)
   198         *  var current = Trace.packageEnable([]);
   199         *  current[current.length++] = "ti.targets";
   200         *  Trace.packageEnable(current);
   201         *  @p
   202         *
   203         *  To disable trace for all packages, the function must be invoked
   204         *  with an empty string as the only element of the array.
   205         *  @p(code)
   206         *  Trace.packageEnable([""]);
   207         *  @p
   208         *
   209         *  @param(packages)        array of package names
   210         *
   211         *  @a(return)              array of currently enabled package names
   212         */
   213        StringArray packageEnable(StringArray packages);
   214
   215        /*!
   216         *  ======== setLevel ========
   217         *  Set the verbosity level
   218         *
   219         *  This function limits trace output to trace statement tagged with
   220         *  level equal or lower than this function's parameter. By default,
   221         *  the verbosity level is set to 0, which is the least verbose level.
   222         *  The most verbose level is 2.
   223         */
   224        Int setLevel(Int level);
   225
   226        /*!
   227         *  ======== start ========
   228         *  @_nodoc
   229         *  Activate trace
   230         */
   231        Void start();
   232    }
   233    /*
   234     *  @(#) xdc.services.global; 1, 0, 0,394; 11-3-2012 15:19:16; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   235     */
   236


package xdc.services.spec
index URL

Java classes to access XDCspec information

  • DETAILS
  • NOTE
  • XDCSCRIPT EXAMPLES
  • SEE
This package contains several Java classes that enable clients to retrieve inforation about modules, interfaces, and packages from their specification files (i.e., *.xdc files). Being Java classes, the APIs provided are available to both Java applications and XDCscripts (via the $spec property of the module, interface, or package). [ more ... ]
XDCspec declarations sourced in xdc/services/spec/package.xdc
requires xdc.shelf;
package xdc.services.spec [1, 0, 0, 0] {
}
DETAILS
This package contains several Java classes that enable clients to retrieve inforation about modules, interfaces, and packages from their specification files (i.e., *.xdc files). Being Java classes, the APIs provided are available to both Java applications and XDCscripts (via the $spec property of the module, interface, or package).
[Pkg]
Package related information available from a package's $spec property.
[Unit]
Module (or interface) related information available from a module's (or interface's) $spec property.
NOTE
When accessing the Java methods provided by this package via XDCscript, you can either either use their liternames (e.g., getName()) or use the JavaBeans pattern of getters and setters in which the method getName() can be accessed via just name. The examples below provide examples of how this pattern can be used.
XDCSCRIPT EXAMPLES
Get the declared name of a module:
      var Mod = xdc.module('pkg.Mod');
      print("Module declared as " + Mod.$spec.getName());
This same example can be written using the JavaBean pattern as follows:
      var Mod = xdc.module('pkg.Mod');
      print("Module declared as " + Mod.$spec.name);
SEE
Javadoc
generated on Thu, 08 Nov 2012 02:13:45 GMT


package xdc.services.spec

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.shelf;
    13
    14    /*!
    15     *  ======== xdc.services.spec ========
    16     *
    17     *  Java classes to access XDCspec information
    18     *
    19     *  This package contains several Java classes that enable clients to
    20     *  retrieve inforation about modules, interfaces, and packages from their
    21     *  specification files (i.e., `*.xdc` files).  Being Java classes, the APIs
    22     *  provided are available to both Java applications and XDCscripts (via the
    23     *  `$spec` property of the module, interface, or package).
    24     *
    25     *  @p(dlist)
    26     *      - `{@link ./doc-files/javadoc/xdc/services/spec/Pkg.html [Pkg]}`
    27      *       Package related information available from a package's `$spec`
    28     *        property.
    29     *      - `{@link ./doc-files/javadoc/xdc/services/spec/Unit.html [Unit]}`
    30     *        Module (or interface) related information available from a
    31     *        module's (or interface's) `$spec` property.
    32     *  @p
    33     *
    34     *  @a(Note)
    35     *  When accessing the Java methods provided by this package via XDCscript,
    36     *  you can either either use their liternames (e.g., `getName()`) or use
    37     *  the JavaBeans pattern of getters and setters in which the method
    38     *  `getName()` can be accessed via just `name`.  The examples below provide
    39     *  examples of how this pattern can be used.
    40     *
    41     *  @a(XDCscript Examples)
    42     *  Get the declared name of a module:
    43     *  @p(code)
    44     *      var Mod = xdc.module('pkg.Mod');
    45     *      print("Module declared as " + Mod.$spec.getName());
    46     *  @p
    47     *
    48     *  This same example can be written using the JavaBean pattern as follows:
    49     *  @p(code)
    50     *      var Mod = xdc.module('pkg.Mod');
    51     *      print("Module declared as " + Mod.$spec.name);
    52     *  @p
    53     *
    54     *  @see ./doc-files/javadoc/index.html Javadoc
    55     */
    56    package xdc.services.spec [1, 0, 0, 0] {
    57
    58    }
    59    /*
    60     *  @(#) xdc.services.spec; 1, 0, 0, 0,393; 11-3-2012 15:19:24; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    61     */
    62


package xdc.shelf
index URL

Container for third party jars required by XDCtools

The following jars are part of this package: [ more ... ]
XDCspec declarations sourced in xdc/shelf/package.xdc
package xdc.shelf [1, 0, 0] {
}
DETAILS
The following jars are part of this package:
Jar | Version | License | From | Description
js.jar | 1.6R6 | MPL 1.1 (note) | http://www.mozilla.org/rhino | Java implementation of JavaScript 1.5
antlr.jar | 3.1.1 | BSD | http://www.antlr.org | LR parser generator used to implement the RTSC IDL
tar.jar | 2.5 | Public Domain | http://www.trustice.com/java/tar | tar file reader
In addition to the jars above, XDCtools requires the following third-party software:
Name | Version | License | From | Description
gmake | 3.81 | GPL v2 | http://savannah.gnu.org/projects/make | command run by the `xdc` command to create and build packages
J2SE Runtime Environment(JRE) | 1.6.0_34 | Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX | http://java.sun.com/j2se/1.5.0 | XDCtools core functionality is implemented in Java. Also required by the Rhino JavaScript engine shipped with XDCtools.
Although the following tools are not required, they are optionally shipped with XDCtools distributions to ensure consistent behavior across various development platforms.
Exe | Version | License | From | Description
zip, unzip | 2.3 and 5.50 | info-zip | http://www.info-zip.org | command line utilities to zip and unzip package releases
tar | 1.13 | GPL v2 | http://www.gnu.org/software/tar | command line utilities to archive package directories
sh | cygwin 1.5.25-15 | GPL v2 | http://cygwin.com | (Windows only) korn shell compatible shell used by GNU make
All other files that are part of XDCtools are licensed under either EPL v1.0 or dual-licensed under EDL v1.0.
generated on Thu, 08 Nov 2012 02:13:44 GMT


package xdc.shelf

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== xdc.shelf ========
    14     *  Container for third party jars required by XDCtools
    15     *
    16     *  The following jars are part of this package:
    17     *  @p(html)
    18         <table border="1">
    19         <tr>
    20           <th>Jar</th>
    21           <th>Version</th>
    22           <th>License</th>
    23           <th>From</th>
    24           <th>Description</th>
    25         </tr>
    26         <tr>
    27           <td>js.jar</td>
    28           <td>1.6R6</td>
    29           <td><a href="./doc-files/rhino/MPL-1.1.txt">MPL 1.1</a>
    30               (<a href="./doc-files/rhino/Rhino_License.htm">note</a>)</td>
    31           <td><a href="http://www.mozilla.org/rhino">
    32               http://www.mozilla.org/rhino</a></td>
    33           <td>Java implementation of JavaScript 1.5</td>
    34         </tr>
    35         <tr>
    36           <td>antlr.jar</td>
    37           <td>3.1.1</td>
    38           <td><a href="./doc-files/antlr/LICENSE.txt">BSD</a></td>
    39           <td><a href="http://www.antlr.org">http://www.antlr.org</a></td>
    40           <td>LR parser generator used to implement the RTSC IDL</td>
    41         </tr>
    42         <tr>
    43           <td>tar.jar</td>
    44           <td>2.5</td>
    45           <td>Public Domain</td>
    46           <td><a href="http://www.trustice.com/java/tar">
    47               http://www.trustice.com/java/tar</a></td>
    48           <td>tar file reader</td>
    49         </tr>
    50         </table>
    51
    52     *  @p
    53     *  In addition to the jars above, XDCtools requires the following
    54     *  third-party software:
    55     *  @p(html)
    56
    57         <table border="1">
    58         <tr>
    59           <th>Name</th>
    60           <th>Version</th>
    61           <th>License</th>
    62           <th>From</th>
    63           <th>Description</th>
    64         </tr>
    65         <tr>
    66           <td>gmake</td>
    67           <td>3.81</td>
    68           <td><a href="./doc-files/gmake/COPYING">GPL v2</a></td>
    69           <td><a href="http://savannah.gnu.org/projects/make">
    70               http://savannah.gnu.org/projects/make</a></td>
    71           <td>command run by the `xdc` command to create and build packages</td>
    72         </tr>
    73         <tr>
    74           <td>J2SE Runtime Environment(JRE)</td>
    75           <td>1.6.0_34</td>
    76           <td><a href="http://java.com/license">Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX</a></td>
    77           <td><a href="http://www.oracle.com/technetwork/java/javase/">
    78               http://java.sun.com/j2se/1.5.0</a></td>
    79           <td>XDCtools core functionality is implemented in Java. Also required by the Rhino JavaScript engine shipped with XDCtools.</td>
    80         </tr>
    81         </table>
    82     *  @p
    83     *
    84     *  Although the following tools are not required, they are optionally shipped
    85     *  with XDCtools distributions to ensure consistent behavior across various
    86     *  development platforms.
    87     *  @p(html)
    88         <table border="1">
    89         <tr>
    90           <th>Exe</th>
    91           <th>Version</th>
    92           <th>License</th>
    93           <th>From</th>
    94           <th>Description</th>
    95         </tr>
    96         <tr>
    97           <td>zip, unzip</td>
    98           <td>2.3 and 5.50</td>
    99           <td><a href="./doc-files/zip/LICENSE.txt">info-zip</a></td>
   100           <td><a href="http://www.info-zip.org">http://www.info-zip.org</a></td>
   101           <td>command line utilities to zip and unzip package releases</td>
   102         </tr>
   103         <tr>
   104           <td>tar</td>
   105           <td>1.13</td>
   106           <td><a href="./doc-files/tar/COPYING">GPL v2</a></td>
   107           <td><a href="http://www.gnu.org/software/tar">
   108               http://www.gnu.org/software/tar</a></td>
   109           <td>command line utilities to archive package directories</td>
   110         </tr>
   111         <tr>
   112           <td>sh</td>
   113           <td>cygwin 1.5.25-15</td>
   114           <td><a href="./doc-files/cygwin/COPYING.txt">GPL v2</a></td>
   115           <td><a href="http://cygwin.com">http://cygwin.com</a></td>
   116           <td>(Windows only) korn shell compatible shell used by GNU make</td>
   117         </tr>
   118         </table>
   119     *  @p
   120     *  All other files that are part of XDCtools are licensed under either
   121     *  {@link ./doc-files/eclipse/epl-v10.html EPL v1.0} or dual-licensed under
   122     *  {@link ./doc-files/eclipse/edl-v10.html EDL v1.0}.
   123     */
   124    package xdc.shelf [1, 0, 0] {
   125    }


package xdc.shelf.local
index URL

Container for third party jars required to rebuild XDCtools

XDCspec declarations sourced in xdc/shelf/local/package.xdc
package xdc.shelf.local [1, 0, 0] {
}
generated on Thu, 08 Nov 2012 02:13:44 GMT


package xdc.shelf.local

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== xdc.shelf.local ========
    15     *  Container for third party jars required to rebuild XDCtools
    16     */
    17    package xdc.shelf.local [1, 0, 0] {
    18    }


package xdc.tools
index URL

Command line tool support

XDCspec declarations sourced in xdc/tools/package.xdc
package xdc.tools [1, 0, 0, 0] {
    interface ICmd;
    // Generic xdc-script (xs) command
    module Cmdr;
    // Command line tool context
}
generated on Thu, 08 Nov 2012 02:13:33 GMT


package xdc.tools

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== xdc.tools ========
    14     *  Command line tool support
    15     */
    16    package xdc.tools [1, 0, 0, 0] {
    17        interface ICmd;
    18        interface IProductView;
    19        interface IRtscProductTemplate;
    20        module Cmdr;
    21        module ResourceBundle;
    22    }
    23    /*
    24     *  @(#) xdc.tools; 1, 0, 0, 0,406; 11-3-2012 15:19:30; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    25     */
    26


module xdc.tools.Cmdr

metaonly module xdc.tools.Cmdr
index URL

Command line tool context

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/tools/Cmdr.xdc
var Cmdr = xdc.useModule('xdc.tools.Cmdr');
module-wide constants & types
    values of type Cmdr.Context//
        const Cmdr.SHELL;
        const Cmdr.SCRIPT;
per-instance config parameters
    var params = new Cmdr.Params// Instance config-params object;
        params.tid// = Int 0;
per-instance creation
    var inst = Cmdr.create// Create an instance-object(Any cmdmod, params);
per-instance functions
     inst.error// Throw an error exception with the specified message(Any msg) returns Any
     inst.getopts// Parse command-line arguments into config params(Any inst, Any args) returns Any
     inst.info// Output informational message to stdout(Any msg) returns Any
     inst.time// Output elapsed time since command start to stderr(Any msg) returns Any
     inst.usage// Output command usage message to stderr(Any msg) returns Any
     inst.verbose// Set verbose flag as specified(Any flag) returns Any
     inst.warning// Output specified warning message to stderr(Any msg) returns Any
enum Cmdr.Context
index URL
XDCscript usage meta-domain
values of type Cmdr.Context
    const Cmdr.SHELL;
    const Cmdr.SCRIPT;
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Cmdr.Params;
// Instance config-params object
    params.tid = Int 0;
    //
config Cmdr.tid // instance
index URL
XDCscript usage meta-domain
var params = new Cmdr.Params;
...
params.tid = Int 0;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Cmdr.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Cmdr.create(Any cmdmod, params);
// Create an instance-object
Cmdr.error() // instance
index URL

Throw an error exception with the specified message

XDCscript usage meta-domain
inst.error(Any msg) returns Any
DETAILS
If msg is null or the empty string (""), the message "fatal error" is used.
Cmdr.getopts() // instance
index URL

Parse command-line arguments into config params

XDCscript usage meta-domain
inst.getopts(Any inst, Any args) returns Any
ARGUMENTS
inst — instance with config parameters to set
args — an array of command-line arguments
DETAILS
This function accepts an array of command-line arguments, and uses them to set the values of config parameters in a module instance. Parsing is controlled by the XDC declarations of the instance config params.
USAGE
The following command-line argument syntaxes are supported, following the syntax supported by GNU getopt() and getopt_long():
    -f                a boolean flag with short name
    -f value          a number or string with short name
    -fvalue
    -f=value
    --longname        a boolean flag with long name
    --longname value  a number or string with long name
    --longname=value  a number or string with long name
In addition the following non-standard syntaxes are supported:
    -f:value
    --longnamevalue
    --longname:value
DECLARATION
The long and short names of the config parameter are declared by the @CommandOption() attribute of the XDC spec language. For example to declare a boolean flag with a short name of "-f" and a long name of "--flag", and a default value of false:
     @ CommandOption("f,flag")
     config Bool myFlag = false;
Options of type Bool with no argument are assigned the value "true". The types String and Int can also be used, and always require an argument to be given on the command line.
COMBINING SHORT FLAGS
Short-name options can be combined on the command line where there is no ambiguity, for example the following usages are equivalent:
    -a -b -c -f filename
    -abcf filename
MULTIPLE OCCURRENCES
If the config param is declared as an array, the option may be used multiple times on the command line and each occurence will be recorded. For example the following records all -I options, in order:
    @ CommandOption("I")
    config String includeDirs[] = [];
REQUIRED OPTIONS
If the config param has no default value declared, then it is required on the command line.
RETURNS
The following return values are used to determine whether or not to proceed with the command and, if not, what the exit status of the command should be.
undefined
the command options have been successfully parsed and the command should be run.
0 (zero)
the command options have been successfully parsed and the command does not need to be run and should exit with a successful exit status (0).
non-zero integral value
an error occured in the parsing the options and the command should not be run and should exit with a non-zero exit status.
Cmdr.info() // instance
index URL

Output informational message to stdout

XDCscript usage meta-domain
inst.info(Any msg) returns Any
Cmdr.time() // instance
index URL

Output elapsed time since command start to stderr

XDCscript usage meta-domain
inst.time(Any msg) returns Any
Cmdr.usage() // instance
index URL

Output command usage message to stderr

XDCscript usage meta-domain
inst.usage(Any msg) returns Any
DETAILS
If msg is defined and non-empty, the command name and msg are output before the usage information.
Cmdr.verbose() // instance
index URL

Set verbose flag as specified

XDCscript usage meta-domain
inst.verbose(Any flag) returns Any
Cmdr.warning() // instance
index URL

Output specified warning message to stderr

XDCscript usage meta-domain
inst.warning(Any msg) returns Any
generated on Thu, 08 Nov 2012 02:13:33 GMT


module xdc.tools.Cmdr

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== Cmdr ========
    14     *  Command line tool context
    15     */
    16    metaonly module Cmdr {
    17
    18        enum Context { SHELL, SCRIPT };
    19
    20    instance:
    21
    22        /*!
    23         *  ======== context ========
    24         *  @_nodoc
    25         */
    26        config Context context = SHELL;
    27
    28        /*
    29         *  ======== tid ========
    30         *  @_nodoc
    31         */
    32        config Int tid = 0;
    33
    34        /*!
    35         *  ======== socket ========
    36         *  @_nodoc
    37         */
    38        config Any socket = null;
    39
    40        /*
    41         *  ======== create ========
    42         */
    43        create(Any cmdmod);
    44
    45        /*!
    46         *  ======== error ========
    47         *  Throw an error exception with the specified message
    48         *
    49         *  If `msg` is null or the empty string (""), the message
    50         *  `"fatal error"` is used.
    51         */
    52        function error(msg);
    53
    54        /*!
    55         *  ======== getopts ========
    56         *  Parse command-line arguments into config params.
    57         *
    58         *  This function accepts an array of command-line arguments, and
    59         *  uses them to set the values of config parameters in a module
    60         *  instance. Parsing is controlled by the XDC declarations of the
    61         *  instance config params.
    62         *
    63         *  @a(Usage)
    64         *  The following command-line argument syntaxes are supported,
    65         *  following the syntax supported by GNU getopt() and getopt_long():
    66         *
    67         *  @p(code)
    68         *    -f                a boolean flag with short name
    69         *    -f value          a number or string with short name
    70         *    -fvalue
    71         *    -f=value
    72         *    --longname        a boolean flag with long name
    73         *    --longname value  a number or string with long name
    74         *    --longname=value  a number or string with long name
    75         *  @p
    76         *
    77         *  In addition the following non-standard syntaxes are supported:
    78         *  @p(code)
    79         *    -f:value
    80         *    --longnamevalue
    81         *    --longname:value
    82         *  @p
    83         *
    84         *  @a(Declaration)
    85         *  The long and short names of the config parameter are declared
    86         *  by the @CommandOption() attribute of the XDC spec language. For
    87         *  example to declare a boolean flag with a short name of "-f" and
    88         *  a long name of "--flag", and a default value of false:
    89         *  @p(code)
    90         *     @ CommandOption("f,flag")
    91         *     config Bool myFlag = false;
    92         *  @p
    93         *
    94         *  Options of type Bool with no argument are assigned the value
    95         *  "true". The types String and Int can also be used, and always
    96         *  require an argument to be given on the command line.
    97         *
    98         *  @a(Combining Short Flags)
    99         *  Short-name options can be combined on the command line where there
   100         *  is no ambiguity, for example the following usages are equivalent:
   101         *  @p(code)
   102         *    -a -b -c -f filename
   103         *    -abcf filename
   104         *  @p
   105         *
   106         *  @a(Multiple Occurrences)
   107         *  If the config param is declared as an array, the option may
   108         *  be used multiple times on the command line and each occurence
   109         *  will be recorded. For example the following records all -I
   110         *  options, in order:
   111         *  @p(code)
   112         *    @ CommandOption("I")
   113         *    config String includeDirs[] = [];
   114         *  @p
   115         *
   116         *  @a(Required Options)
   117         *  If the config param has no default value declared, then it
   118         *  is required on the command line.
   119         *
   120         *  @a(Returns)
   121         *  The following return values are used to determine whether or not to
   122         *  proceed with the command and, if not, what the exit status of the
   123         *  command should be.
   124         *  @p(dlist)
   125         *      - `undefined`
   126         *        the command options have been successfully parsed and the
   127         *        command should be run.
   128         *      - `0` (zero)
   129         *        the command options have been successfully parsed and the
   130         *        command does not need to be run and should exit with a
   131         *        successful exit status (0).
   132         *      - non-zero integral value
   133         *        an error occured in the parsing the options and the
   134         *        command should not be run and should exit with a non-zero
   135         *        exit status.
   136         *
   137         *  @param(inst)  instance with config parameters to set
   138         *  @param(args)  an array of command-line arguments
   139         */
   140        function getopts(inst, args);
   141
   142        /*!
   143         *  ======== info ========
   144         *  Output informational message to stdout
   145         */
   146        function info(msg);
   147
   148        /*!
   149         *  ======== read ========
   150         *  @_nodoc
   151         */
   152        function read();
   153
   154        /*!
   155         *  ======== time ========
   156         *  Output elapsed time since command start to stderr
   157         */
   158        function time(msg);
   159
   160        /*!
   161         *  ======== usage ========
   162         *  Output command usage message to stderr
   163         *
   164         *  If `msg` is defined and non-empty, the command name and `msg` are
   165         *  output before the usage information.
   166         */
   167        function usage(msg);
   168
   169        /*!
   170         *  ======== verbose ========
   171         *  Set verbose flag as specified
   172         */
   173        function verbose(flag);
   174
   175        /*!
   176         *  ======== warning ========
   177         *  Output specified warning message to stderr
   178         */
   179        function warning(msg);
   180
   181        /*!
   182         *  ======== write ========
   183         *  @_nodoc
   184         */
   185        function write(s);
   186    }
   187    /*
   188     *  @(#) xdc.tools; 1, 0, 0, 0,406; 11-3-2012 15:19:30; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   189     */
   190


interface xdc.tools.ICmd

metaonly interface xdc.tools.ICmd
index URL

Generic xdc-script (xs) command

  • DETAILS
  • COMMAND LINE EXAMPLE
  • XDCSCRIPT EXAMPLE
Modules that implement this interface can serve as "commands" that can be executed from the command line (via xs) or from within XDCscript scripts (without having to fork a separate process to run xs). [ more ... ]
XDCspec summary sourced in xdc/tools/ICmd.xdc
metaonly interface ICmd { ...
instance: ...
XDCspec declarations sourced in xdc/tools/ICmd.xdc
package xdc.tools;
metaonly interface ICmd {
module-wide config parameters
    config String usage// Usage for this command[] = [ ];
module-wide functions
     function exec// xs script entry point(args);
     function main// xs shell entry point(args);
instance:
per-instance functions
    Any run// Underlying implementation(Cmdr.Instance cmdr, String args[]);
}
DETAILS
Modules that implement this interface can serve as "commands" that can be executed from the command line (via xs) or from within XDCscript scripts (without having to fork a separate process to run xs).
COMMAND LINE EXAMPLE
The following example runs the xdc.tools.path tool from the command line to get an array of names of all packages below the current working directory (".").
      xs xdc.tools.path -n -a -PR .
XDCSCRIPT EXAMPLE
The following example runs the xdc.tools.path tool from within a script to get an array of names of all packages below the current working directory (".").
      var Main = xdc.module('xdc.tools.path.Main');
      var result = Main.exec(["-n", "-a", "-PR", "."]);
config ICmd.usage // module-wide
index URL

Usage for this command

XDCspec declarations sourced in xdc/tools/ICmd.xdc
config String usage[] = [ ];
ICmd.exec() // module-wide
index URL

xs script entry point

XDCspec declarations sourced in xdc/tools/ICmd.xdc
function exec(args);
ICmd.main() // module-wide
index URL

xs shell entry point

XDCspec declarations sourced in xdc/tools/ICmd.xdc
function main(args);
ICmd.run() // instance
index URL

Underlying implementation

XDCspec declarations sourced in xdc/tools/ICmd.xdc
Any run(Cmdr.Instance cmdr, String args[]);
generated on Thu, 08 Nov 2012 02:13:33 GMT


interface xdc.tools.ICmd

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== ICmd ========
    15     *  Generic xdc-script (xs) command
    16     *
    17     *  Modules that implement this interface can serve as "commands" that
    18     *  can be executed from the command line (via `xs`) or from within
    19     *  XDCscript scripts (without having to fork a separate process to run
    20     *  `xs`).
    21     *
    22     *  @a(Command Line Example)
    23     *  The following example runs the `xdc.tools.path` tool from the command
    24     *  line to get an array of names of all packages below the current
    25     *  working directory (".").
    26     *  @p(code)
    27     *      xs xdc.tools.path -n -a -PR .
    28     *  @p
    29     *
    30     *  @a(XDCscript Example)
    31     *  The following example runs the `xdc.tools.path` tool from within
    32     *  a script to get an array of names of all packages below the current
    33     *  working directory (".").
    34     *  @p(code)
    35     *      var Main = xdc.module('xdc.tools.path.Main');
    36     *      var result = Main.exec(["-n", "-a", "-PR", "."]);
    37     *  @p
    38     */
    39    metaonly interface ICmd {
    40
    41        //! Usage for this command
    42        config String usage[] = [];
    43
    44        //! `xs` shell entry point
    45        final function main(args);
    46
    47        //! `xs` script entry point
    48        final function exec(args);
    49
    50    instance:
    51
    52        //! Underlying implementation
    53        Any run(Cmdr.Instance cmdr, String args[]);
    54    }
    55    /*
    56     *  @(#) xdc.tools; 1, 0, 0, 0,406; 11-3-2012 15:19:30; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    57     */
    58


package xdc.tools.cdoc
index URL

RTSC documentation generator

  • USAGE
  • OPTIONS
  • DETAILS
  • EXAMPLES
  • NOTE
cdoc is a package documentation generation utility. It builds a directory of browsable HTML documentation using the meta- information stored in RTSC packages. [ more ... ]
XDCspec declarations sourced in xdc/tools/cdoc/package.xdc
package xdc.tools.cdoc [1, 0, 0, 0] {
    module Example;
    // XDOC markup language examples for modules and interfaces
    module Main;
    // Command implementation
    module Markup;
    // XDCspec doc markup language examples
}
USAGE
xs xdc.tools.cdoc [--help]
    [-od:dir] [-title text] [--start package] [--indexonly] [--doxytags file] [--doxybase dir] [-h] [-n] [-b] [-s] [-P pkg-dir...|-Pr repo-dir...|-A]
OPTIONS
-od
Place the generated files in the named directory
-title
Generated HTML pages will show the string in the page title
--start
Set start page to specified package

The opening page is, by default, the documentation for the alphabetically first package processed. This option allows you to explicitly specify the package used.

If "" is specified, the start page will be blank.

If the package specified is not processed, no warning or error results; it is assumed that when the documentation is used the specified package documentation will exist.

-s
Include .xdc file sources

In the generated documentation for each .xdc file, link to a pretty-printed view of the .xdc file source text.

-P
The subsequent directories are package directories

Generates documentation for each of the specified packages.

-Pr
The subsequent directories are repositories of packages

Generates documentation for all packages rooted in each of the specified repositories.

-A
Generate documentation for all packages on the package path
-b
Generate a single "big" output
-h
Generate html pages only, not table of contents or index
-n
Generate nodoc'd docs
--quiet
Quiet mode
--indexonly
Generate index and table of contents only
--doxytags
Process doxygen links, using this argument as the tag file
--doxybase
The directory containing doxygen html files
--style
Use specified style sheet
DETAILS
cdoc is a package documentation generation utility. It builds a directory of browsable HTML documentation using the meta- information stored in RTSC packages.
This utility is invoked via the XDCtools xs command. In the examples below we assume that the alias cdoc is defined as follows:
      $(XDCROOT)/xs xdc.tools.cdoc
where $(XDCROOT) is the installation directory of the XDCtools toolset.
EXAMPLES
In the examples below we assume that the alias cdoc is defined as $(XDCROOT)/xs xdc.tools.cdoc, where $(XDCROOT) is the installation directory of the XDCtools toolset.
1. To generate documentation for the package in the current working directory:
      cdoc
Since no package is specified and no output directory is specified, documentation is generated for the package in the current working directory and the output is placed in the package's ./package/cdoc sub-directory.
2. To generate documentation with the title "My Packages" for all packages installed in the myPackages repository:
      cdoc -title "My Packages" -Pr myPackages
Since no output directory was specified and documentation will be for more than one package, the generated files are placed in the directory ./cdoc.
3. To generate documentation for the package located in ./ti/bios and put results in the directory ./html.
      cdoc -od:html -P ti/bios
NOTE
cdoc processes the XML files that are generated *after* a package is built (actually after the .interfaces goal is built). One must first build a package before generating its documentation. If you change a .xdc file and re-run cdoc without rebuilding the package, the change in the .xdc file will not show up in the generated docs.
When interatively updating a package's .xdc files and examining the generated documentation, it is useful to define a command alias that first "compiles" the package's .xdc files and then runs the cdoc tool. For example, if your shell is Korn shell compatible, the following command alias ensures that any changes in .xdc files will show up in the generated documents:
      function cdoc {
          $XDCROOT/xdc .interfaces
          $XDCROOT/xs xdc.tools.cdoc $*
      }
generated on Thu, 08 Nov 2012 02:13:34 GMT


package xdc.tools.cdoc

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== xdc.tools.cdoc ========
    15     *  RTSC Document Generator Tool
    16     */
    17    package xdc.tools.cdoc [1,0,0,0] {
    18        module Main;
    19        module Markup;
    20        module Example;
    21    }
    22
    23    /*
    24     *  @(#) xdc.tools.cdoc; 1, 0, 0, 0,294; 11-3-2012 15:19:32; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    25     */
    26


module xdc.tools.cdoc.Example
index URL

XDOC markup language examples for modules and interfaces

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
This module demonstrates the features of XDOC on the declarations of an XDC module. View the source text of this .xdc file for details on how to use these examples.
C synopsis target-domain sourced in xdc/tools/cdoc/Example.xdc
#include <xdc/tools/cdoc/Example.h>
Functions
Void | Example_aFunction// Example function documentation(Int aParam);
Functions common to all target modules
 | Example_Module_getMask// Returns the diagnostics mask for this module, Example_Module_hasMask// Test whether this module has a diagnostics mask, Example_Module_heap// The heap from which this module allocates memory, Example_Module_id// Get this module's unique id, Example_Module_setMask// Set the diagnostics mask for this module, Example_Module_startupDone// Test if this module has completed startup
Typedefs
typedef struct | Example_ACmd// Example "tagged union" documentation ...
typedef enum | Example_AnEnum// Example enum documentation ...
typedef struct | Example_AStruct// Example structure declaration ...
typedef Int | Example_ATypedEnum// Example typed enumeration;
typedef union | Example_AUnion// Example union documentation ...
Constants
extern const Example_AUnion | Example_u// Example statically initialized union documentation;
enum Example_ATypedEnum
index URL

Example typed enumeration

C synopsis target-domain
typedef Int Example_ATypedEnum;
enum {
    Example_LOOP,
    Example_PRINT
} ;
VALUES
LOOP — example "typed" enum value documentation
DETAILS
This declaration defines a new type named ATypedEnum which is an alias of Int and two constants of type ATypedEnum.
Unlike ordinary C enums, where the compiler is free to choose an arbitrary type for enums, this declaration ensures that the new type is of a specific named type (in this case, Int).
enum Example_AnEnum
index URL

Example enum documentation

C synopsis target-domain
typedef enum Example_AnEnum {
    Example_AVALUE
} Example_AnEnum;
VALUES
AVALUE — example enum value documentation
struct Example_ACmd
index URL

Example "tagged union" documentation

C synopsis target-domain
typedef struct Example_ACmd {
     Example_ATypedEnum cmdId;
    union {
        struct {
            Int count;
        } loop;
        struct {
            String msg;
        } print;
    } args;
} Example_ACmd;
FIELDS
args — example structure field documentation
DETAILS
This structure illustrates the "tagged union" pattern: one field of the structure indicates how to interpret the rest of the structure.
struct Example_AStruct
index URL

Example structure declaration

C synopsis target-domain
typedef struct Example_AStruct {
    Int aField;
} Example_AStruct;
FIELDS
aField — example field documentation
union Example_AUnion
index URL

Example union documentation

C synopsis target-domain
typedef union Example_AUnion {
    String aString;
    Int anInt;
} Example_AUnion;
FIELDS
aString — example union field documentation
config Example_u // module-wide
index URL

Example statically initialized union documentation

C synopsis target-domain
extern const Example_AUnion Example_u;
Example_aFunction() // module-wide
index URL

Example function documentation

C synopsis target-domain
Void Example_aFunction(Int aParam);
ARGUMENTS
aParam — example function parameter documentation
Module-Wide Built-Ins
index URL

C synopsis target-domain
Types_ModuleId Example_Module_id();
// Get this module's unique id
Bool Example_Module_startupDone();
// Test if this module has completed startup
IHeap_Handle Example_Module_heap();
// The heap from which this module allocates memory
Bool Example_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Example_Module_getMask();
// Returns the diagnostics mask for this module
Void Example_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
XDCscript usage meta-domain sourced in xdc/tools/cdoc/Example.xdc
var Example = xdc.useModule('xdc.tools.cdoc.Example');
module-wide constants & types
    values of type Example.ATypedEnum// Example typed enumeration
        const Example.LOOP;
        const Example.PRINT;
    values of type Example.AnEnum// Example enum documentation
        const Example.AVALUE;
    var obj = new Example.ACmd// Example "tagged union" documentation;
        obj.cmdId = Example.ATypedEnum ...
        obj.args = Example.__struct__1 ...
    var obj = new Example.AStruct// Example structure declaration;
        obj.aField = Int ...
    var obj = new Example.AUnion// Example union documentation;
        obj.aString = String ...
module-wide config parameters
     Example.u// Example statically initialized union documentation = Example.AUnion {
        aString: 'hello',
        anInt: 1234
    };
     Example.common$// Common module configuration parameters = Types.Common$ undefined;
enum Example.ATypedEnum
index URL

Example typed enumeration

XDCscript usage meta-domain
values of type Example.ATypedEnum
    const Example.LOOP;
    const Example.PRINT;
VALUES
LOOP — example "typed" enum value documentation
DETAILS
This declaration defines a new type named ATypedEnum which is an alias of Int and two constants of type ATypedEnum.
Unlike ordinary C enums, where the compiler is free to choose an arbitrary type for enums, this declaration ensures that the new type is of a specific named type (in this case, Int).
C SYNOPSIS
Example_ATypedEnum
enum Example.AnEnum
index URL

Example enum documentation

XDCscript usage meta-domain
values of type Example.AnEnum
    const Example.AVALUE;
VALUES
AVALUE — example enum value documentation
C SYNOPSIS
Example_AnEnum
struct Example.ACmd
index URL

Example "tagged union" documentation

XDCscript usage meta-domain
var obj = new Example.ACmd;
    obj.cmdId = Example.ATypedEnum ...
    obj.args = Example.__struct__1 ...
FIELDS
args — example structure field documentation
DETAILS
This structure illustrates the "tagged union" pattern: one field of the structure indicates how to interpret the rest of the structure.
C SYNOPSIS
Example_ACmd
struct Example.AStruct
index URL

Example structure declaration

XDCscript usage meta-domain
var obj = new Example.AStruct;
    obj.aField = Int ...
FIELDS
aField — example field documentation
C SYNOPSIS
Example_AStruct
union Example.AUnion
index URL

Example union documentation

XDCscript usage meta-domain
var obj = new Example.AUnion;
    obj.aString = String ...
FIELDS
aString — example union field documentation
C SYNOPSIS
Example_AUnion
config Example.u // module-wide
index URL

Example statically initialized union documentation

XDCscript usage meta-domain
Example.u = Example.AUnion {
    aString: 'hello',
    anInt: 1234
};
C SYNOPSIS
Example_u
metaonly config Example.common$ // module-wide
index URL

Common module configuration parameters

XDCscript usage meta-domain
Example.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 Thu, 08 Nov 2012 02:13:33 GMT


module xdc.tools.cdoc.Example

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    package xdc.tools.cdoc;
    13
    14    /*!
    15     *  ======== Example ========
    16     *  XDOC markup language examples for modules and interfaces
    17     *
    18     *  This module demonstrates the features of XDOC on the declarations
    19     *  of an XDC module. View the source text of this .xdc file for details
    20     *  on how to use these examples.
    21     */
    22    module Example {
    23        /*!
    24         *  ======== AStruct ========
    25         *  Example structure declaration
    26         *
    27         * @field(aField) example field documentation
    28         */
    29        struct AStruct {
    30            Int aField;
    31        };
    32
    33        /*!
    34         *  ======== aFunction ========
    35         *  Example function documentation
    36         *
    37         * @param(aParam) example function parameter documentation
    38         */
    39        Void aFunction(Int aParam);
    40
    41        /*!
    42         *  ======== AnEnum ========
    43         *  Example enum documentation
    44         *
    45         *  @value(AVALUE)  example enum value documentation
    46         */
    47        enum AnEnum {
    48            AVALUE
    49        };
    50        /*!
    51         *  ======== AUnion ========
    52         *  Example union documentation
    53         *
    54         *  @field(aString) example union field documentation
    55         */
    56        union AUnion {
    57            String aString;
    58            Int anInt;
    59        };
    60
    61        /*!
    62         *  ======== u ========
    63         *  Example statically initialized union documentation
    64         */
    65        config AUnion u = {aString: 'hello', anInt: 1234};
    66
    67        /*!
    68         *  ======== ATypedEnum ========
    69         *  Example typed enumeration
    70         *
    71         *  This declaration defines a new type named ATypedEnum which is
    72         *  an alias of Int and two constants of type ATypedEnum.
    73         *
    74         *  Unlike ordinary C enums, where the compiler is free to choose an
    75         *  arbitrary type for enums, this declaration ensures that the new
    76         *  type is of a specific named type (in this case, Int).
    77         *
    78         *  @value(LOOP)  example "typed" enum value documentation
    79         */
    80        enum ATypedEnum : Int {
    81            LOOP = 6,
    82            PRINT = 28
    83        };
    84
    85        /*!
    86         *  ======== ACmd ========
    87         *  Example "tagged union" documentation
    88         *
    89         *  This structure illustrates the "tagged union" pattern: one
    90         *  field of the structure indicates how to interpret the rest of the
    91         *  structure.
    92         *
    93         * @field(args) example structure field documentation
    94         */
    95        struct ACmd {
    96            ATypedEnum cmdId;
    97            union  {
    98                struct {
    99                    Int count;
   100                } loop;
   101
   102                struct {
   103                    String msg;
   104                } print;
   105            } args;
   106        };
   107
   108    }
   109    /*
   110     *  @(#) xdc.tools.cdoc; 1, 0, 0, 0,294; 11-3-2012 15:19:32; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   111     */
   112


module xdc.tools.cdoc.Main

metaonly module xdc.tools.cdoc.Main
index URL

Command implementation

  • DETAILS
  • EXAMPLES
  • NOTE
  • XDCscript usage
  • Individual elements
cdoc is a package documentation generation utility. It builds a directory of browsable HTML documentation using the meta- information stored in RTSC packages. [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/cdoc/Main.xdc
var Main = xdc.useModule('xdc.tools.cdoc.Main');
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        '[-od:dir] [-title text] [--start package] [--indexonly] [--doxytags file] [--doxybase dir] [-h] [-n] [-b] [-s] [-P pkg-dir...|-Pr repo-dir...|-A]'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.aopt// Generate documentation for all packages on the package path = Bool false;
        params.bopt// Generate a single "big" output = Bool false;
        params.doxybase// The directory containing doxygen html files = String null;
        params.doxytags// Process doxygen links, using this argument as the tag file = String null;
        params.hopt// Generate html pages only, not table of contents or index = Bool false;
        params.iopt// Generate index and table of contents only = Bool false;
        params.nopt// Generate nodoc'd docs = Bool false;
        params.outdir// Place the generated files in the named directory = String null;
        params.popt// The subsequent directories are package directories = Bool false;
        params.qopt// Quiet mode = Bool false;
        params.ropt// The subsequent directories are repositories of packages = Bool false;
        params.sopt// Include .xdc file sources = Bool false;
        params.start// Set start page to specified package = String null;
        params.style// Use specified style sheet = String null;
        params.title// Generated HTML pages will show the string in the page title = String null;
per-instance functions
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
DETAILS
cdoc is a package documentation generation utility. It builds a directory of browsable HTML documentation using the meta- information stored in RTSC packages.
This utility is invoked via the XDCtools xs command. In the examples below we assume that the alias cdoc is defined as follows:
      $(XDCROOT)/xs xdc.tools.cdoc
where $(XDCROOT) is the installation directory of the XDCtools toolset.
EXAMPLES
In the examples below we assume that the alias cdoc is defined as $(XDCROOT)/xs xdc.tools.cdoc, where $(XDCROOT) is the installation directory of the XDCtools toolset.
1. To generate documentation for the package in the current working directory:
      cdoc
Since no package is specified and no output directory is specified, documentation is generated for the package in the current working directory and the output is placed in the package's ./package/cdoc sub-directory.
2. To generate documentation with the title "My Packages" for all packages installed in the myPackages repository:
      cdoc -title "My Packages" -Pr myPackages
Since no output directory was specified and documentation will be for more than one package, the generated files are placed in the directory ./cdoc.
3. To generate documentation for the package located in ./ti/bios and put results in the directory ./html.
      cdoc -od:html -P ti/bios
NOTE
cdoc processes the XML files that are generated *after* a package is built (actually after the .interfaces goal is built). One must first build a package before generating its documentation. If you change a .xdc file and re-run cdoc without rebuilding the package, the change in the .xdc file will not show up in the generated docs.
When interatively updating a package's .xdc files and examining the generated documentation, it is useful to define a command alias that first "compiles" the package's .xdc files and then runs the cdoc tool. For example, if your shell is Korn shell compatible, the following command alias ensures that any changes in .xdc files will show up in the generated documents:
      function cdoc {
          $XDCROOT/xdc .interfaces
          $XDCROOT/xs xdc.tools.cdoc $*
      }
config Main.usage // module-wide
index URL

Usage for this command

XDCscript usage meta-domain
Main.usage = String[] [
    '[-od:dir] [-title text] [--start package] [--indexonly] [--doxytags file] [--doxybase dir] [-h] [-n] [-b] [-s] [-P pkg-dir...|-Pr repo-dir...|-A]'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.aopt = Bool false;
    // Generate documentation for all packages on the package path
    params.bopt = Bool false;
    // Generate a single "big" output
    params.doxybase = String null;
    // The directory containing doxygen html files
    params.doxytags = String null;
    // Process doxygen links, using this argument as the tag file
    params.hopt = Bool false;
    // Generate html pages only, not table of contents or index
    params.iopt = Bool false;
    // Generate index and table of contents only
    params.nopt = Bool false;
    // Generate nodoc'd docs
    params.outdir = String null;
    // Place the generated files in the named directory
    params.popt = Bool false;
    // The subsequent directories are package directories
    params.qopt = Bool false;
    // Quiet mode
    params.ropt = Bool false;
    // The subsequent directories are repositories of packages
    params.sopt = Bool false;
    // Include .xdc file sources
    params.start = String null;
    // Set start page to specified package
    params.style = String null;
    // Use specified style sheet
    params.title = String null;
    // Generated HTML pages will show the string in the page title
config Main.aopt // instance
index URL

Generate documentation for all packages on the package path

XDCscript usage meta-domain
var params = new Main.Params;
...
params.aopt = Bool false;
config Main.bopt // instance
index URL

Generate a single "big" output

XDCscript usage meta-domain
var params = new Main.Params;
...
params.bopt = Bool false;
config Main.doxybase // instance
index URL

The directory containing doxygen html files

XDCscript usage meta-domain
var params = new Main.Params;
...
params.doxybase = String null;
config Main.doxytags // instance
index URL

Process doxygen links, using this argument as the tag file

XDCscript usage meta-domain
var params = new Main.Params;
...
params.doxytags = String null;
config Main.hopt // instance
index URL

Generate html pages only, not table of contents or index

XDCscript usage meta-domain
var params = new Main.Params;
...
params.hopt = Bool false;
config Main.iopt // instance
index URL

Generate index and table of contents only

XDCscript usage meta-domain
var params = new Main.Params;
...
params.iopt = Bool false;
config Main.nopt // instance
index URL

Generate nodoc'd docs

XDCscript usage meta-domain
var params = new Main.Params;
...
params.nopt = Bool false;
config Main.outdir // instance
index URL

Place the generated files in the named directory

XDCscript usage meta-domain
var params = new Main.Params;
...
params.outdir = String null;
config Main.popt // instance
index URL

The subsequent directories are package directories

XDCscript usage meta-domain
var params = new Main.Params;
...
params.popt = Bool false;
DETAILS
Generates documentation for each of the specified packages.
config Main.qopt // instance
index URL

Quiet mode

XDCscript usage meta-domain
var params = new Main.Params;
...
params.qopt = Bool false;
config Main.ropt // instance
index URL

The subsequent directories are repositories of packages

XDCscript usage meta-domain
var params = new Main.Params;
...
params.ropt = Bool false;
DETAILS
Generates documentation for all packages rooted in each of the specified repositories.
config Main.sopt // instance
index URL

Include .xdc file sources

XDCscript usage meta-domain
var params = new Main.Params;
...
params.sopt = Bool false;
DETAILS
In the generated documentation for each .xdc file, link to a pretty-printed view of the .xdc file source text.
config Main.start // instance
index URL

Set start page to specified package

XDCscript usage meta-domain
var params = new Main.Params;
...
params.start = String null;
DETAILS
The opening page is, by default, the documentation for the alphabetically first package processed. This option allows you to explicitly specify the package used.
If "" is specified, the start page will be blank.
If the package specified is not processed, no warning or error results; it is assumed that when the documentation is used the specified package documentation will exist.
config Main.style // instance
index URL

Use specified style sheet

XDCscript usage meta-domain
var params = new Main.Params;
...
params.style = String null;
config Main.title // instance
index URL

Generated HTML pages will show the string in the page title

XDCscript usage meta-domain
var params = new Main.Params;
...
params.title = String null;
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:34 GMT


module xdc.tools.cdoc.Main

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    package xdc.tools.cdoc;
    13
    14    /*!
    15     *  ======== xdc.tools.cdoc.Main ========
    16     *  RTSC documentation generator
    17     *
    18     *  cdoc is a package documentation generation utility. It builds a
    19     *  directory of browsable HTML documentation using the meta-
    20     *  information stored in RTSC packages.
    21     *
    22     *  This utility is invoked via the XDCtools `xs` command.  In the
    23     *  examples below we assume that the alias `cdoc` is defined as
    24     *  follows:
    25     *  @p(code)
    26     *      $(XDCROOT)/xs xdc.tools.cdoc
    27     *  @p
    28     *  where $(XDCROOT) is the installation directory of the XDCtools toolset.
    29     *
    30     *  @a(Examples)
    31     *  In the examples below we assume that the alias `cdoc` is defined as
    32     *  `$(XDCROOT)/xs xdc.tools.cdoc`, where `$(XDCROOT)` is the installation
    33     *  directory of the XDCtools toolset.
    34     *
    35     *  1. To generate documentation for the package in the current working
    36     *  directory:
    37     *  @p(code)
    38     *      cdoc
    39     *  @p
    40     *  Since no package is specified and no output directory is specified,
    41     *  documentation is generated for the package in the current working
    42     *  directory and the output is placed in the package's `./package/cdoc`
    43     *  sub-directory.
    44     *
    45     *  2. To generate documentation with the title "My Packages" for all
    46     *  packages installed in the `myPackages` repository:
    47     *  @p(code)
    48     *      cdoc -title "My Packages" -Pr myPackages
    49     *  @p
    50     *  Since no output directory was specified and documentation will be for
    51     *  more than one package, the generated files are placed in the directory
    52     *  `./cdoc`.
    53     *
    54     *  3. To generate documentation for the package located in `./ti/bios` and
    55     *  put results in the directory `./html`.
    56     *  @p(code)
    57     *      cdoc -od:html -P ti/bios
    58     *  @p
    59     *
    60     *  @a(Note)
    61     *  `cdoc` processes the XML files that are generated *after* a package
    62     *  is built (actually after the `.interfaces` goal is built).  One must first
    63     *  build a package before generating its documentation.  If you change a
    64     *  `.xdc` file and re-run `cdoc` without rebuilding the package, the change
    65     *  in the `.xdc` file will not show up in the generated docs.
    66     *
    67     *  When interatively updating a package's .xdc files and examining the
    68     *  generated documentation, it is useful to define a command alias that
    69     *  first "compiles" the package's .xdc files and then runs the cdoc tool.
    70     *  For example, if your shell is Korn shell compatible, the following
    71     *  command alias ensures that any changes in .xdc files will show up in the
    72     *  generated documents:
    73     *  @p(code)
    74     *      function cdoc {
    75     *          $XDCROOT/xdc .interfaces
    76     *          $XDCROOT/xs xdc.tools.cdoc $*
    77     *      }
    78     *  @p
    79     */
    80
    81    metaonly module Main inherits xdc.tools.ICmd {
    82        override config String usage[] = [
    83            '[-od:dir] [-title text] [--start package] [--indexonly] [--doxytags file] [--doxybase dir] [-h] [-n] [-b] [-s] [-P pkg-dir...|-Pr repo-dir...|-A]'
    84        ];
    85
    86    instance:
    87
    88        /*!
    89         * Place the generated files in the named directory.
    90         */
    91        @CommandOption("-od")
    92        config String outdir = null;
    93
    94        /*!
    95         *  Generated HTML pages will show the string in the page title
    96         */
    97        @CommandOption("-title")
    98        config String title = null;
    99
   100        /*!
   101         *  Set start page to specified package
   102         *
   103         *  The opening page is, by default, the documentation for the
   104         *  alphabetically first package processed.  This option allows
   105         *  you to explicitly specify the package used.
   106         *
   107         *  If "" is specified, the start page will be blank.
   108         *
   109         *  If the package specified is not processed, no warning or error
   110         *  results; it is assumed that when the documentation is used the
   111         *  specified package documentation will exist.
   112         */
   113        @CommandOption("--start")
   114        config String start = null;
   115
   116        /*!
   117         *  Include .xdc file sources
   118         *
   119         *  In the generated documentation for each .xdc file, link
   120         *  to a pretty-printed view of the .xdc file source text.
   121         */
   122        @CommandOption("s")
   123        config Bool sopt = false;
   124
   125        /*!
   126         * The subsequent directories are package directories.
   127         *
   128         * Generates documentation for each of the specified packages.
   129         */
   130        @CommandOption("P")
   131        config Bool popt = false;
   132
   133        /*!
   134         * The subsequent directories are repositories of packages.
   135         *
   136         * Generates documentation for all packages rooted in each of
   137         * the specified repositories.
   138         */
   139        @CommandOption("-Pr")
   140        config Bool ropt = false;
   141
   142        /*!
   143         * Generate documentation for all packages on the package path.
   144         */
   145        @CommandOption("A")
   146        config Bool aopt = false;
   147
   148        /*!
   149         *  Generate a single "big" output
   150         */
   151        @CommandOption("b")
   152        config Bool bopt = false;
   153
   154        /*!
   155         *  Generate html pages only, not table of contents or index
   156         */
   157        @CommandOption("h")
   158        config Bool hopt = false;
   159
   160        /*!
   161         *  Generate nodoc'd docs
   162         */
   163        @CommandOption("n")
   164        config Bool nopt = false;
   165
   166        /*!
   167         *  Quiet mode
   168         */
   169        @CommandOption("--quiet")
   170        config Bool qopt = false;
   171
   172        /*!
   173         *  Generate index and table of contents only
   174         */
   175        @CommandOption("--indexonly")
   176        config Bool iopt = false;
   177
   178        /*!
   179         *  Process doxygen links, using this argument
   180         *  as the tag file
   181         */
   182        @CommandOption("--doxytags")
   183        config String doxytags = null;
   184
   185        /*!
   186         *  The directory containing doxygen html files
   187         */
   188        @CommandOption("--doxybase")
   189        config String doxybase = null;
   190
   191        /*!
   192         *  Use specified style sheet
   193         */
   194        @CommandOption("--style")
   195        config String style = null;
   196    }
   197
   198
   199    /*
   200     *  @(#) xdc.tools.cdoc; 1, 0, 0, 0,294; 11-3-2012 15:19:32; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   201     */
   202


module xdc.tools.cdoc.Markup

metaonly module xdc.tools.cdoc.Markup
index URL

XDCspec doc markup language examples

  • DETAILS
  • HEADINGS
  • PARAGRAPH FORMATTING
  • CHARACTER FORMATTING
  • LIST TYPES
  • CDOC HYPERLINKS
  • SEE
  • EXTERNAL HTML LINKS
  • LINKING TO OTHER DOCUMENTATION FILES
  • LINKING TO DOXYGEN DOCUMENTATION
  • XDCscript usage
  • Individual elements
This module demonstrates the features of XDCspec doc and gives usage examples for the XDCspec doc markup language. View the source text of this .xdc file for details on how to use these examples. [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/cdoc/Markup.xdc
var Markup = xdc.useModule('xdc.tools.cdoc.Markup');
DETAILS
This module demonstrates the features of XDCspec doc and gives usage examples for the XDCspec doc markup language. View the source text of this .xdc file for details on how to use these examples.
HEADINGS
Major headings can be inserted into the document using the following syntax:
    @tag(headingText)
The available tags are:
@a(headingText)
Add a heading to the end ("a" for "after") of the details section.
@b(headingText)
Add a heading to the start ("b" for "before") of the details section.
Since XDCtools 3.05, @a and @b tags can accept space characters in headings. Prior to this, heading text could contain no spaces.
PARAGRAPH FORMATTING
Paragraphs can be marked in several different styles using the following syntax:
 @p(style)
  paragraph text here...

  another paragraph...
 @p
The available paragraph styles are:
@p(text) or @p
Plain text -- this is the default.
@p(code)
Fragments of source code or pseudo-code. Paragraphs of this type are rendered in a fixed-width font.
@p(html)
HTML markup. Paragraphs of this type are copied directly into the XDCspec doc output, with no interpretation.
CHARACTER FORMATTING
LIST TYPES
Lists in several styles can be created using the syntax:
 @p(style)
  - first list item
    continued...
  - second list item
 @p
The available list styles are bulleted list, numbered list, and definition list, and they look like this:
  • The blist bulleted list style is an unnumbered, unordered list
  • Rendered using the HTML <UL> element.
  1. The nlist numbered list style is an ordered, numbered list
  2. Rendered using the HTML <OL> element.
Definition List
The dlist definition list style has a minor heading for each item in the list
Rendering
Rendered using the HTML <DL> element.
CDOC HYPERLINKS
HTML hyperlinks between XDCspec doc pages can be inserted using the inline keyword. link takes as a parameter the name of an XDCspec element, and optionally some additional formatting text. The XDCspec element can name a package, a module or interface, or a declaration within a module or interface. The general syntax is:
    {@link [pkgName.][modName][#decl][suffText] [altText]}
where:
pkgName
is the name of a package.
modName
is the name of a module or interface within the package.
decl
is the name of a declaration within the module or interface, for example a function or config parameter. Note that decl is delimited by a '#' character to distinguish it from the name of a package, module or interface.
suffText
is text to be appended to the text of the link. For example, '()' might be appended to denote a void function. The suffix text must contain no spaces.
altText
is alternate text to be used instead of the XDCspec name of the link target.
Write this: | To reference this:
{@link pkgName} | a package
{@link pkgName.moduleName} | a module
{@link moduleName} | a module in the same package
{@link pkgName.moduleName#declName} | a decl in a module
{@link moduleName#declName} | a decl in the same package
{@link #declName} | a decl in the same module
{@link #declName(arg1,arg2)} | a function with explicit args given in suffText
{@link #declName defined here} | a decl with the explicit link text "defined here"
Examples are:
Example.AStruct
xdc.tools.cdoc.Example
a struct with alternate text
SEE
Example.AStruct
EXTERNAL HTML LINKS
Documentation can also include HTML hyperlinks to web sites, using the syntax:
    {@link http://serverName/pathName[#anchor] [altText]}
The URL must include a resource type, typically "http:" or "ftp:".
Examples are:
http://ti.com
Texas Instruments
LINKING TO OTHER DOCUMENTATION FILES
It is possible to deliver other documentation files along with a package, and link to it from XDCspec doc. The documentation files must be placed in a subdirectory of the package with the name 'doc-files'. Hyperlinks to files in this directory are created using the syntax:
    {@link ./doc-files/filename[#anchor] [altText]}
    {@link pkgDir/doc-files/fileName[#anchor] [altText]}
The file name is specified using the same syntax as the xdc.findFile() function. That is, filenames within the current package must begin with "./". Links to files in other packages must use the fully qualified package name, with slashes ('/') instead of dots ('.') in the name.
Write this: | To reference this:
{@link ./doc-files/filename } | a file in the current package
{@link pkgDir/doc-files/filename } | a file in another package
Examples are:
./doc-files/example.html
xdc/tools/cdoc/doc-files/example.html
LINKING TO DOXYGEN DOCUMENTATION
It is possible to link to Doxygen documentation. Hyperlinks to are created using the syntax:
    {@link doxy(name)}
In and SEE section use:
    doxy(name)

To link to: | Use: | Example:
File | filePrefix.fileSuffix | doxy(Engine.h)
Function | functionName() | doxy(Engine_open())
#define | #defineName | doxy(#Engine_GTNAME)
Struct | structName | doxy(IALG_Fxns)
Struct field | structName::structField | doxy(IALG_Fxns::algAlloc)
Enum | enumName | doxy(IALG_MemAttrs)
Enumerator | enumName::enumerator | doxy(IALG_MemAttrs::IALG_PERSIST)
Typedef | ::typedefName | doxy(::Engine_Handle)
Variable | #variableName | doxy(#Engine_ATTRS)
See xdc.tools.cdoc usage for how to specify the location of the Doxygen files.
generated on Thu, 08 Nov 2012 02:13:34 GMT


module xdc.tools.cdoc.Markup

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    package xdc.tools.cdoc;
    13
    14    /*!
    15     * XDCspec doc markup language examples
    16     *
    17     * This module demonstrates the features of XDCspec doc and gives usage
    18     * examples for the XDCspec doc markup language. View the source text of this
    19     * .xdc file for details on how to use these examples.
    20     *
    21     * @a(HEADINGS)
    22     * Major headings can be inserted into the document using the following
    23     * syntax:
    24     * @p(code)
    25     *    @@tag(headingText)
    26     * @p
    27     *
    28     * The available tags are:
    29     * @p(dlist)
    30     *    - `@@a(headingText)`
    31     *      Add a heading to the end ("a" for "after") of the details section.
    32     *    - `@@b(headingText)`
    33     *      Add a heading to the start ("b" for "before") of the details section.
    34     * @p
    35     *
    36     * Since XDCtools 3.05, @@a and @@b tags can accept space characters in headings.
    37     * Prior to this, heading text could contain no spaces.
    38     *
    39     * @a(PARAGRAPH FORMATTING)
    40     * Paragraphs can be marked in several different styles using the
    41     * following syntax:
    42     * @p(code)
    43     * @@p(style)
    44     *  paragraph text here...
    45     *
    46     *  another paragraph...
    47     * @@p
    48     * @p
    49     *
    50     * The available paragraph styles are:
    51     * @p(dlist)
    52     *    - `@@p(text) or @@p`
    53     *       Plain text -- this is the default.
    54     *    - `@@p(code)`
    55     *       Fragments of source code or pseudo-code. Paragraphs of this
    56     *       type are rendered in a fixed-width font.
    57     *    - `@@p(html)`
    58     *       HTML markup. Paragraphs of this type are copied directly into the
    59     *       XDCspec doc output, with no interpretation.
    60     * @p
    61     *
    62     * @a(CHARACTER FORMATTING)
    63     *
    64     * @a(LIST TYPES)
    65     * Lists in several styles can be created using the syntax:
    66     * @p(code)
    67     * @@p(style)
    68     *  - first list item
    69     *    continued...
    70     *  - second list item
    71     * @@p
    72     * @p
    73     * The available list styles are bulleted list, numbered list, and
    74     * definition list, and they look like this:
    75     * @p(blist)
    76     *    -  The `blist` bulleted list style is an unnumbered, unordered list
    77     *    -  Rendered using the HTML `<UL>` element.
    78     * @p
    79     * @p(nlist)
    80     *    - The `nlist` numbered list style is an ordered, numbered list
    81     *    - Rendered using the HTML `<OL>` element.
    82     * @p
    83     * @p(dlist)
    84     *    - `Definition List`
    85     *       The `dlist` definition list style has a minor heading for
    86     *       each item in the list
    87     *    - `Rendering`
    88     *       Rendered using the HTML `<DL>` element.
    89     * @p
    90     *
    91     * @a(CDOC HYPERLINKS)
    92     * HTML hyperlinks between XDCspec doc pages can be inserted using the
    93     * `{@link}` inline keyword. `link` takes as a parameter the name of an XDCspec
    94     * element, and optionally some additional formatting text. The
    95     * XDCspec element can name a package, a module or interface, or a
    96     * declaration within a module or interface. The general syntax is:
    97     * @p(code)
    98     *    {@@link [pkgName.][modName][#decl][suffText] [altText]}
    99     * @p
   100     * where:
   101     * @p(dlist)
   102     *    - `pkgName`
   103     *       is the name of a package.
   104     *    - `modName`
   105     *       is the name of a module or interface within the package.
   106     *    - `decl`
   107     *       is the name of a declaration within the module or interface,
   108     *       for example a function or config parameter.
   109     *       Note that `decl` is delimited by a '`#`' character to distinguish
   110     *       it from the name of a package, module or interface.
   111     *    - `suffText`
   112     *       is text to be appended to the text of the link. For example, '`()`'
   113     *       might be appended to denote a void function. The suffix text must
   114     *       contain no spaces.
   115     *    - `altText`
   116     *       is alternate text to be used instead of the XDCspec name of the
   117     *       link target.
   118     * @p
   119     *
   120     * @p(html)
   121     * <table cellSpacing="2" cellPadding="2" width="100%" border="1">
   122     *   <tbody>
   123     *   <tr>
   124     *     <th><B>Write this:</B></th>
   125     *     <th><B>To reference this:</B></th></tr>
   126     *   <tr>
   127     *     <td>{@@link <i>pkgName</i>}</td>
   128     *     <td>a package</td></tr>
   129     *   <tr>
   130     *     <td>{@@link <i>pkgName</i>.<i>moduleName</i>}</td>
   131     *     <td>a module</td></tr>
   132     *   <tr>
   133     *     <td>{@@link <i>moduleName</i>}</td>
   134     *     <td>a module in the same package</td></tr>
   135     *   <tr>
   136     *     <td>{@@link <i>pkgName</i>.<i>moduleName</i>#<i>declName</i>}</td>
   137     *     <td>a decl in a module</td></tr>
   138     *   <tr>
   139     *     <td>{@@link <i>moduleName</i>#<i>declName</i>}</td>
   140     *     <td>a decl in the same package</td></tr>
   141     *   <tr>
   142     *     <td>{@@link #<i>declName</i>}</td>
   143     *     <td>a decl in the same module</td></tr>
   144     *   <tr>
   145     *     <td>{@@link #<i>declName</i>(<i>arg1</i>,<i>arg2</i>)}</td>
   146     *     <td>a function with explicit args given in <i>suffText</i></td></tr>
   147     *   <tr>
   148     *     <td>{@@link #<i>declName</i> defined here}</td>
   149     *     <td>a decl with the explicit link text "defined here"</td></tr>
   150     *   </tbody>
   151     * </table>
   152     * @p
   153     *
   154     * Examples are:
   155     * @p(dlist)
   156     *    - {@link Example#AStruct}
   157     *    - {@link xdc.tools.cdoc.Example}
   158     *    - {@link Example#AStruct a struct with alternate text}
   159     * @p
   160     *
   161     * @see Example#AStruct
   162     *
   163     * @a(EXTERNAL HTML LINKS)
   164     * Documentation can also include HTML hyperlinks to web sites, using
   165     * the syntax:
   166     * @p(code)
   167     *    {@@link http://serverName/pathName[#anchor] [altText]}
   168     * @p
   169     * The URL must include a resource type, typically "http:" or "ftp:".
   170     *
   171     * Examples are:
   172     * @p(dlist)
   173     *    - {@link http://ti.com}
   174     *    - {@link http://ti.com Texas Instruments}
   175     * @p
   176     *
   177     * @a(LINKING TO OTHER DOCUMENTATION FILES)
   178     * It is possible to deliver other documentation files along with a
   179     * package, and link to it from XDCspec doc. The documentation files must
   180     * be placed in a subdirectory of the package with the name `'doc-files'`.
   181     * Hyperlinks to files in this directory are created using the syntax:
   182     * @p(code)
   183     *    {@@link ./doc-files/filename[#anchor] [altText]}
   184     *    {@@link pkgDir/doc-files/fileName[#anchor] [altText]}
   185     * @p
   186     *
   187     * The file name is specified using the same syntax as the `xdc.findFile()`
   188     * function. That is, filenames within the current package must begin with "./".
   189     * Links to files in other packages must use the fully qualified package name,
   190     * with slashes ('/') instead of dots ('.') in the name.
   191     *
   192     * @p(html)
   193     * <table cellSpacing="2" cellPadding="2" border="1">
   194     *   <tbody>
   195     *   <tr>
   196     *     <th><B>Write this:</B></th>
   197     *     <th><B>To reference this:</B></th></tr>
   198     *   <tr>
   199     *     <td>{@@link ./doc-files/<i>filename</i> }</td>
   200     *     <td>a file in the current package</td></tr>
   201     *   <tr>
   202     *     <td>{@@link <i>pkgDir</i>/doc-files/<i>filename</i> }</td>
   203     *     <td>a file in another package</td></tr>
   204     *   </tbody>
   205     * </table>
   206     * @p
   207     *
   208     * Examples are:
   209     * @p(dlist)
   210     *    - {@link ./doc-files/example.html}
   211     *    - {@link xdc/tools/cdoc/doc-files/example.html}
   212     * @p
   213     *
   214     * @a(LINKING TO DOXYGEN DOCUMENTATION)
   215     * It is possible to link to Doxygen documentation.
   216     * Hyperlinks to are created using the syntax:
   217     * @p(code)
   218     *    {@@link doxy(name)}
   219     * @p
   220     * In and SEE section use:
   221     * @p(code)
   222     *    doxy(name)
   223     * @p
   224     *
   225     * @p(html)
   226     * <table cellSpacing="2" cellPadding="2" border="1">
   227     *   <tbody>
   228     *   <tr>
   229     *     <th><B>To link to:</B></th>
   230     *     <th><B>Use:</B></th>
   231     *     <th><B>Example:</B></th></tr>
   232     *   <tr>
   233     *     <td>File</td>
   234     *     <td><i>filePrefix</i><B>.</B><i>fileSuffix</i></td>
   235     *     <td>doxy(Engine.h)</td></tr>
   236     *     <td>Function</td>
   237     *     <td><i>functionName</i><B>()</B></td>
   238     *     <td>doxy(Engine_open())</td></tr>
   239     *     <td>#define</td>
   240     *     <td><B>#</B><i>defineName</i></td>
   241     *     <td>doxy(#Engine_GTNAME)</td></tr>
   242     *     <td>Struct</td>
   243     *     <td><i>structName</i></td>
   244     *     <td>doxy(IALG_Fxns)</td></tr>
   245     *     <td>Struct field</td>
   246     *     <td><i>structName</i><B>::</B><i>structField</i></td>
   247     *     <td>doxy(IALG_Fxns::algAlloc)</td></tr>
   248     *     <td>Enum</td>
   249     *     <td><i>enumName</i></td>
   250     *     <td>doxy(IALG_MemAttrs)</td></tr>
   251     *     <td>Enumerator</td>
   252     *     <td><i>enumName</i><B>::</B><i>enumerator</i></td>
   253     *     <td>doxy(IALG_MemAttrs::IALG_PERSIST)</td></tr>
   254     *     <td>Typedef</td>
   255     *     <td><B>::</B><i>typedefName</i></td>
   256     *     <td>doxy(::Engine_Handle)</td></tr>
   257     *     <td>Variable</td>
   258     *     <td><B>#</B><i>variableName</i></td>
   259     *     <td>doxy(#Engine_ATTRS)</td></tr>
   260     *   </tbody>
   261     * </table>
   262     * @p
   263     *
   264     * See xdc.tools.cdoc usage for how to specify the location of the Doxygen files.
   265     *
   266     */
   267    metaonly module Markup {
   268    }
   269    /*
   270     *  @(#) xdc.tools.cdoc; 1, 0, 0, 0,294; 11-3-2012 15:19:32; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
   271     */
   272


package xdc.tools.cdoc.sg
index URL

Interactive Package Documentation Browser

XDCspec declarations sourced in xdc/tools/cdoc/sg/package.xdc
requires xdc.tools.sg;
package xdc.tools.cdoc.sg {
    module Main;
    // Interactive Package Documentation Browser
}
USAGE
      xs xdc.tools.cdoc.sg [unit-name ...] [-Pr rdir ...]
This tool is used to interactively browse package documentation for all packages found in the specified repositories rdir .... If no repositories are specified after the optional -Pr flag, the repositories in the current package path are used.
If one or more "unit-names" are specified, the corresponding package, module, or interface reference pages are opened during startup.
This utility is invoked via the XDC xs command, where the alias xs is defined as follows:
      $XDCROOT/xs
and $XDCROOT is the installation directory of the XDC toolset.
generated on Thu, 08 Nov 2012 02:13:34 GMT


package xdc.tools.cdoc.sg

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.tools.sg;
    13
    14    /*!
    15     *  ======== xdc.tools.cdoc.sg ========
    16     *  Interactive Package Documentation Browser
    17     *
    18     *  @b(Usage)
    19     *  @p(code)
    20     *      xs xdc.tools.cdoc.sg [unit-name ...] [-Pr rdir ...]
    21     *  @p
    22     *
    23     *  This tool is used to interactively browse package documentation for
    24     *  all packages found in the specified repositories `rdir ...`.  If no
    25     *  repositories are specified after the optional `-Pr` flag, the
    26     *  repositories in the current package path are used.
    27     *
    28     *  If one or more "unit-names" are specified, the corresponding package,
    29     *  module, or interface reference pages are opened during startup.
    30     *
    31     *  This utility is invoked via the XDC `xs` command, where the
    32     *  alias `xs` is defined as follows:
    33     *  @p(code)
    34     *      $XDCROOT/xs
    35     *  @p
    36     *  and $XDCROOT is the installation directory of the XDC toolset.
    37     */
    38    package xdc.tools.cdoc.sg {
    39        module Main;
    40    }
    41    /*
    42     *  @(#) xdc.tools.cdoc.sg; 1,0,0,293; 11-3-2012 15:19:33; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    43     */
    44


module xdc.tools.cdoc.sg.Main

metaonly module xdc.tools.cdoc.sg.Main
index URL

Interactive Package Documentation Browser

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/tools/cdoc/sg/Main.xdc
var Main = xdc.useModule('xdc.tools.cdoc.sg.Main');
module-wide functions
     Main.main// (Any args) returns Any
Main.main() // module-wide
index URL
XDCscript usage meta-domain
Main.main(Any args) returns Any
generated on Thu, 08 Nov 2012 02:13:34 GMT


module xdc.tools.cdoc.sg.Main

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== Main ========
    14     *  Interactive Package Documentation Browser
    15     */
    16    metaonly module Main {
    17
    18        function main(args);
    19    }
    20    /*
    21     *  @(#) xdc.tools.cdoc.sg; 1,0,0,293; 11-3-2012 15:19:33; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
    22     */
    23


package xdc.tools.check
index URL

Check compatibility of specified packages

  • USAGE
  • OPTIONS
  • DETAILS
This tools scans the specified repositories looking for package incompatibilities. [ more ... ]
XDCspec declarations sourced in xdc/tools/check/package.xdc
package xdc.tools.check [1, 0, 0] {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.check [--help]
    [-[ax]] [-v] [-t target] [-e exclude_pattern] [-H header] [repository ...]
OPTIONS
-a
Return an array of strings
-v
Print informative messages during execution
-x
Return a Results struct as XML
-H
Prepend Header label to output
-e
Exclude packages or targets from checks

Do not check compatibility of packages or targets whose names match the regular expression exclude.

-m
Allow checking multiple versions of the same package

By default, when a package appears in more than repository named on the command line, this tool only checks the first occurance of the package. Setting this option forces all versions of all packages in the specified repositories to be included in the checks.

-t
Target to check

During the compatibility checks this tool ensures that for all targets used by all packages are compatible with the latest target referenced by any package. If this option is set, the check tool will only validate compatibility for the specified target. In addition, if the target string contains a target compatibility key, all packages that reference the target will be checked for compatibility with the specified key.

The format of this string is either

      <target_name>:<target_key>

or

      <target_name>

where <target_name> is the full name of a target and <target_key> is an optional target-specific compatibility key. The optional target compatibility key can be used to validate the set of packages against a specific compiler tool chain.

DETAILS
This tools scans the specified repositories looking for package incompatibilities.
By default, if a package appears in more than one repository, only the package in the first repository is added to the set of packages to check. This allows one to check the consistency of all packages that can be found along a specified package path by simply listing the package path repositories on the command line.
This tool performs the following checks:
  • the latest version of each target used by any package is compatible with all other versions used; and
  • the "built-with" versions of all packages are compatible with the versions of the packages contained in the specified repositories
If no repositories are specified, the repositories named in the current package path are checked.
generated on Thu, 08 Nov 2012 02:13:34 GMT


package xdc.tools.check

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== xdc.tools.check ========
    15     *  Package compatibility checking tool
    16     */
    17    package xdc.tools.check [1, 0, 0]
    18    {
    19        module Main;
    20    }
    21    /*
    22     *  @(#) xdc.tools.check; 1, 0, 0,228; 10-28-2012 21:40:12; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    23     */
    24


module xdc.tools.check.Main

metaonly module xdc.tools.check.Main
index URL

Command implementation

  • XDCscript usage
  • Individual elements
This tools scans the specified repositories looking for package incompatibilities. [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/check/Main.xdc
var Main = xdc.useModule('xdc.tools.check.Main');
module-wide constants & types
    var obj = new Main.Results// XML output format;
        obj.header// user specified header = String ...
        obj.errors// array of all errors detected = String[] ...
        obj.warnings// array of all warnings detected = String[] ...
        obj.targets = Main.Target[] ...
    var obj = new Main.Target// ;
        obj.name// target name = String ...
        obj.keys = Main.__struct__1[] ...
            obj.keys.key// target compatibility key used = String ...
            obj.keys.packages// all packages using target with this key = String[] ...
module-wide config parameters
     Main.usage// Usage message = String[] [
        '[-[ax]] [-v] [-t target] [-e exclude_pattern] [-H header] [repository ...]'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.arrFlag// Return an array of strings = Bool false;
        params.exclude// Exclude packages or targets from checks = String null;
        params.header// Prepend Header label to output = String null;
        params.multipleFlag// Allow checking multiple versions of the same package = Bool false;
        params.target// Target to check = String null;
        params.verboseFlag// Print informative messages during execution = Bool false;
        params.xmlFlag// Return a Results struct as XML = Bool false;
per-instance functions
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
DETAILS
This tools scans the specified repositories looking for package incompatibilities.
By default, if a package appears in more than one repository, only the package in the first repository is added to the set of packages to check. This allows one to check the consistency of all packages that can be found along a specified package path by simply listing the package path repositories on the command line.
This tool performs the following checks:
  • the latest version of each target used by any package is compatible with all other versions used; and
  • the "built-with" versions of all packages are compatible with the versions of the packages contained in the specified repositories
If no repositories are specified, the repositories named in the current package path are checked.
struct Main.Results
index URL

XML output format

XDCscript usage meta-domain
var obj = new Main.Results;
    obj.header = String ...
    // user specified header
    obj.errors = String[] ...
    // array of all errors detected
    obj.warnings = String[] ...
    // array of all warnings detected
    obj.targets = Main.Target[] ...
DETAILS
This structure defines the "schema" for the XML output.
struct Main.Target
index URL
XDCscript usage meta-domain
var obj = new Main.Target;
    obj.name = String ...
    // target name
    obj.keys = Main.__struct__1[] ...
        obj.keys.key = String ...
        // target compatibility key used
        obj.keys.packages = String[] ...
        // all packages using target with this key
config Main.usage // module-wide
index URL

Usage message

XDCscript usage meta-domain
Main.usage = String[] [
    '[-[ax]] [-v] [-t target] [-e exclude_pattern] [-H header] [repository ...]'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.arrFlag = Bool false;
    // Return an array of strings
    params.exclude = String null;
    // Exclude packages or targets from checks
    params.header = String null;
    // Prepend Header label to output
    params.multipleFlag = Bool false;
    // Allow checking multiple versions of the same package
    params.target = String null;
    // Target to check
    params.verboseFlag = Bool false;
    // Print informative messages during execution
    params.xmlFlag = Bool false;
    // Return a Results struct as XML
config Main.arrFlag // instance
index URL

Return an array of strings

XDCscript usage meta-domain
var params = new Main.Params;
...
params.arrFlag = Bool false;
config Main.exclude // instance
index URL

Exclude packages or targets from checks

XDCscript usage meta-domain
var params = new Main.Params;
...
params.exclude = String null;
DETAILS
Do not check compatibility of packages or targets whose names match the regular expression exclude.
config Main.header // instance
index URL

Prepend Header label to output

XDCscript usage meta-domain
var params = new Main.Params;
...
params.header = String null;
config Main.multipleFlag // instance
index URL

Allow checking multiple versions of the same package

XDCscript usage meta-domain
var params = new Main.Params;
...
params.multipleFlag = Bool false;
DETAILS
By default, when a package appears in more than repository named on the command line, this tool only checks the first occurance of the package. Setting this option forces all versions of all packages in the specified repositories to be included in the checks.
config Main.target // instance
index URL

Target to check

XDCscript usage meta-domain
var params = new Main.Params;
...
params.target = String null;
DETAILS
During the compatibility checks this tool ensures that for all targets used by all packages are compatible with the latest target referenced by any package. If this option is set, the check tool will only validate compatibility for the specified target. In addition, if the target string contains a target compatibility key, all packages that reference the target will be checked for compatibility with the specified key.
The format of this string is either
      <target_name>:<target_key>
or
      <target_name>
where <target_name> is the full name of a target and <target_key> is an optional target-specific compatibility key. The optional target compatibility key can be used to validate the set of packages against a specific compiler tool chain.
config Main.verboseFlag // instance
index URL

Print informative messages during execution

XDCscript usage meta-domain
var params = new Main.Params;
...
params.verboseFlag = Bool false;
config Main.xmlFlag // instance
index URL

Return a Results struct as XML

XDCscript usage meta-domain
var params = new Main.Params;
...
params.xmlFlag = Bool false;
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:34 GMT


module xdc.tools.check.Main

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== Main.xdc ========
    14     *  Check compatibility of specified packages
    15     *
    16     *  This tools scans the specified repositories looking for package
    17     *  incompatibilities.
    18     *
    19     *  By default, if a package appears in more than one repository, only the
    20     *  package in the first repository is added to the set of packages to check.
    21     *  This allows one to check the consistency of all packages that can be found
    22     *  along a specified package path by simply listing the package path
    23     *  repositories on the command line.
    24     *
    25     *  This tool performs the following checks:
    26     *  @p(blist)
    27     *      - the latest version of each target used by any package is compatible
    28     *        with all other versions used; and
    29     *      - the "built-with" versions of all packages are compatible with the
    30     *        versions of the packages contained in the specified repositories
    31     *  @p
    32     *
    33     *  If no repositories are specified, the repositories named in the current
    34     *  package path are checked.
    35     */
    36    metaonly module Main inherits xdc.tools.ICmd {
    37
    38        /*!
    39         *  ======== usage ========
    40         *  Usage message
    41         */
    42        override config String usage[] = [
    43            '[-[ax]] [-v] [-t target] [-e exclude_pattern] [-H header] [repository ...]',
    44        ];
    45
    46        /*!
    47         *  ======== Results ========
    48         *  XML output format
    49         *
    50         *  This structure defines the "schema" for the XML output.
    51         */
    52        @XmlDtd
    53        struct Results {
    54            String header;      /*! user specified header */
    55            String errors[];    /*! array of all errors detected */
    56            String warnings[];  /*! array of all warnings detected */
    57            Target targets[];
    58        }
    59        struct Target {
    60            String name;            /*! target name */
    61            struct {
    62                String key;         /*! target compatibility key used */
    63                String packages[];  /*! all packages using target with this key */
    64            } keys[];
    65        }
    66
    67    instance:
    68
    69        /*!
    70         *  ======== arrFlag ========
    71         *  Return an array of strings
    72         */
    73        @CommandOption('a')
    74        config Bool arrFlag = false;
    75
    76        /*!
    77         *  ======== verboseFlag ========
    78         *  Print informative messages during execution
    79         */
    80        @CommandOption('v')
    81        config Bool verboseFlag = false;
    82
    83        /*!
    84         *  ======== xmlFlag ========
    85         *  Return a Results struct as XML
    86         */
    87        @CommandOption('x')
    88        config Bool xmlFlag = false;
    89
    90        /*!
    91         *  ======== header ========
    92         *  Prepend Header label to output
    93         */
    94        @CommandOption('H')
    95        config String header = null;
    96
    97        /*!
    98         *  ======== exclude ========
    99         *  Exclude packages or targets from checks
   100         *
   101         *  Do not check compatibility of packages or targets whose names match
   102         *  the regular expression `exclude`.
   103         */
   104        @CommandOption('e')
   105        config String exclude = null;
   106
   107        /*!
   108         *  ======== multipleFlag ========
   109         *  Allow checking multiple versions of the same package
   110         *
   111         *  By default, when a package appears in more than repository named on
   112         *  the command line, this tool only checks the first occurance
   113         *  of the package.  Setting this option forces all versions of all
   114         *  packages in the specified repositories to be included in the checks.
   115         */
   116        @CommandOption('m')
   117        config Bool multipleFlag = false;
   118
   119        /*!
   120         *  ======== target ========
   121         *  Target to check
   122         *
   123         *  During the compatibility checks this tool ensures that for all
   124         *  targets used by all packages are compatible with the latest target
   125         *  referenced by any package.  If this option is set, the check tool
   126         *  will only validate compatibility for the specified target.  In
   127         *  addition, if the target string contains a target compatibility key,
   128         *  all packages that reference the target will be checked for
   129         *  compatibility with the specified key.
   130         *
   131         *  The format of this string is either
   132         *  @p(code)
   133         *      <target_name>:<target_key>
   134         *  @p
   135         *  or
   136         *  @p(code)
   137         *      <target_name>
   138         *  @p
   139         *  where `<target_name>` is the full name of a target and `<target_key>`
   140         *  is an optional target-specific compatibility key.  The optional
   141         *  target compatibility key can be used to validate the set of packages
   142         *  against a specific compiler tool chain.
   143         */
   144        @CommandOption('t')
   145        config String target = null;
   146    }
   147    /*
   148     *  @(#) xdc.tools.check; 1, 0, 0,228; 10-28-2012 21:40:12; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
   149     */
   150


package xdc.tools.configuro
index URL

Command-line configuration tool

  • USAGE
  • OPTIONS
  • DETAILS
  • INPUTS
  • OUTPUTS
This command allows RTSC content, in the form of reusable modules built using the XDCtools tooling, to be imported into a system integrator's embedded application. It is the recommended method for integrating RTSC content into non-RTSC application build environments. [ more ... ]
XDCspec declarations sourced in xdc/tools/configuro/package.xdc
requires xdc.tools.mkpkg;
package xdc.tools.configuro [1, 0, 0, 0] {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.configuro [--help]
    [-v | -q]
    [-@ optionsfile]
    [-o outdir]
    [-b config_bld | -c codegen_dir | --cb]
    [-t target] [-p platform[:instance]] [-r profile]
    [-Dname=value]
    [-w | -x regexp]
    [--rtsName pkg_name]
    [--cfgArgs args_string]
    [--linkTemplate linker_template]
    [--tcf] [--bios5] [--pkg] [--generationOnly]
    [--compileOptions compile_options_string]
    [--oc compiler.opt] [--ol linker.cmd]
    infile.cfg
OPTIONS
-o
Pathname of the output directory

A directory containing the generated build artifacts, in particular the compiler.opt and linker.cmd files.

The last component of the output directory path must be a valid ANSI C identifier; i.e., it must consist entirely of alphanumeric or '_' characters and must not start with a number. So, the names '0app' and 'app-test' are not valid but '0app/config' and 'app-test/config' are valid.

By default, the output directory has the same name as the configuration script, minus the .cfg extension, within the same parent directory as this script. As a result, the directory name constraint above applies to the name of the configuration script.

-t
Name of the RTSC target module

The name of a RTSC target module to use, for example ti.targets.C64P.

If no config.bld file is given, then this is a required parameter.

If a config.bld file is given then this parameter is optional, and by default the target will be Build.targets[0] from the user's config.bld. If Build.targets contains more than one entry, then this option can be used to override that default.

-c
Root directory of the code generation tools

The path to the installation directory of the compiler and linker for the selected target. The definition of "installation directory" can vary from compiler to compiler, but is most commonly the directory that contains a "bin" subdirectory.

If no config.bld file is given, then this is a required parameter.

If a config.bld file is given then this parameter is optional, and by default the compiler will be the one configured there. This option can still be used, to override the default established in config.bld.

-p
Name of the RTSC platform package (and optionally instance)

The name of a RTSC platform package to use, using the syntax my.pkg.name or my.pkg.name:instanceName. For example, ti.platforms.sim64Pxx or ti.platforms.generic:custom.

This is an optional parameter, and by default the platform is the one that the selected target names as its default. The user may override this default in their config.bld or by using this parameter.

The optional :instanceName suffix names a pre-configured variant of the platform, which can be set up either in the user's config.bld or in the platform package itself. For more details, see Build.platformTable and the IPlatform interface.

-r
Build profile to use

The name of the build profile to use for the RTSC content, for example 'release' or 'debug'. The list of allowed profiles is determined by the RTSC target module named.

-b
Read build environment from the named config.bld file

A config.bld file can optionally be used to hold the values of the target, compiler root directory, platform, and other more advanced options. This is a convenient way to share a common build environment between multiple projects.

The format of the file is JavaScript statements with the XDCscript extensions. The script should set the properties of the Build global object.

If no config.bld file is given then the target and compiler root directory are required command-line parameters.

--cb
Use a config.bld found along the package path

Find a config.bld by searching the package path, instead of via an explicit pathname. Looks for a file named config.bld in any of the directories named along the package path, in order. The directories are not searched recursively.

-D
Set a Java property in the configuration script

Allows values to be injected from the command line into the config.bld file. For example, the option -Dmyprop=myval creates a property named myprop with string value "myval". This can be read in config.bld using the XDCscript syntax environment["myprop"].

--rtsName
Set the name of the RTSC runtime package

The name of a package containing pre-built libraries containing the xdc.runtime modules. If this parameter is null (or undefined) the name of the rts package is taken from the target (xdc.bld.ITarget.rtsName). If this parameter is set to the empty string (""), then no rts package is included in the configuration. Finally, if this parameter is non-null and non-empty, it should be the name of a package along the package path that can supply pre-built versions of the modules in the xdc.runtime package.

--cfgArgs
Optional arguments passed to configuration script

This option lets the user pass values into the configuration script from the command line. The argument is an expression in JavaScript syntax. Its value is available in the configuration script under the name Program.build.cfgArgs.

The JavaScript expression is evaluated in the configuration domain after the platform package is imported, immediately before calling the user's configuration script.

This string has the same effect as the cfgArgs string in xdc.bld.Executable.Attrs.

You can pass multiple values to configuration scripts using the syntax of a JavaScript Object constant:

      xs xdc.tools.configuro --cfgArgs '{foo:"hello", bar:2}' ... app.cfg

The configuration script can read the various fields as, e.g.:

      if (Program.build.cfgArgs.foo == "hello") {
          :
      }

--linkTemplate
Linker command file template

If this option is provided it overrides the template supplied by the platform, giving the caller complete control over the generated linker command file.

-v
Show verbose details during build

This option produces the same verbose output as the xdc command with the XDCOPTIONS=v parameter.

-q
Minimize details during build

This option produces the same output as the xdc command with the XDCOPTIONS=qq parameter.

-x
Exclude packages matching regexp from compatibility checking

A JavaScript regular expression that is used to select packages that should be excluded from the set of packages checked during configuration.

-w
Treat package version incompatibilites as warnings

If set to "true", force any incompatibilities detected to be treated as warnings only; otherwise incompatibilities are fatal.

--tcf
Read infile.tcf in addition to infile.cfg

The .tcf file optionally configures DSP/BIOS 5.X . This allows a single program to use both DSP/BIOS 5.X and RTSC-based content.

--bios5
Add the DSP/BIOS 5.X include directory to the compiler options

The directory is located in "include" in package "ti.bios".

--pkg
Create the build model generated output files but do not build

This option creates the output directory and key generated files but does not process the user's configuration script. It is used by internal tooling to snapshot the RTSC build settings implied by the configuro command line parameters.

--generationOnly
Create the configuration generated source files but do not build

This option runs the configuration step but does not compile the generated source files. This option is used by internal tooling to eliminate unnecessary build steps.

--compileOptions
Add compile options for C files in the configuration package

This option accepts one or more compiler options that are added to the compiler command line when compiling C files in the generated configuration package. If multiple compiler options are given, the whole string containing options must be surrounded by quotes.

--oc
Set the name of the compiler options file (default is "compiler.opt")
--ol
Set the name of the linker command file (default is "linker.cmd")
DETAILS
This command allows RTSC content, in the form of reusable modules built using the XDCtools tooling, to be imported into a system integrator's embedded application. It is the recommended method for integrating RTSC content into non-RTSC application build environments.
Configuro lets the system integrator identify and customize the RTSC content they wish to use, and computes a set of libraries, command-line flags and other artifacts to include in their application build. By changing the values of configuration settings, the integrator can trade off the functionality, memory footprint, and even performance of the RTSC content to best meet the needs of their application.
INPUTS
infile.cfg
A user-supplied configuration script that names a set of RTSC modules, and optionally changes their configuration settings.
OUTPUTS
outdir/
A directory containing all generated build artifacts.
outdir/compiler.opt
A file containing C compiler command-line flags. These flags must included on the compiler command line for any C source file that directly accesses the RTSC content. The flags define the header file include paths, and machine-mode compiler flags to ensure object code compatibility between all included content.
outdir/linker.cmd
A file containing linker command-line flags. These flags must be included on the linker command line for the final link of the application. The flags list needed libraries and object files, and on some platforms define the embedded system memory map.
For example:
      xs xdc.tools.configuro myconfig.cfg
generated on Thu, 08 Nov 2012 02:13:35 GMT


package xdc.tools.configuro

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    requires xdc.tools.mkpkg;
    13
    14    /*
    15     *  ======== xdc.tools.configuro ========
    16     *  Command-line configuration tool
    17     */
    18    package xdc.tools.configuro [1, 0, 0, 0] {
    19        module Main;
    20    }


module xdc.tools.configuro.Main

metaonly module xdc.tools.configuro.Main
index URL

Command implementation

  • DETAILS
  • INPUTS
  • OUTPUTS
  • XDCscript usage
  • Individual elements
This command allows RTSC content, in the form of reusable modules built using the XDCtools tooling, to be imported into a system integrator's embedded application. It is the recommended method for integrating RTSC content into non-RTSC application build environments. [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/configuro/Main.xdc
var Main = xdc.useModule('xdc.tools.configuro.Main');
module-wide config parameters
     Main.usage// usage help message = String[] [
        '[-v | -q]',
        '[-@ optionsfile]',
        '[-o outdir]',
        '[-b config_bld | -c codegen_dir | --cb]',
        '[-t target] [-p platform[:instance]] [-r profile]',
        '[-Dname=value]',
        '[-w | -x regexp]',
        '[--rtsName pkg_name]',
        '[--cfgArgs args_string]',
        '[--linkTemplate linker_template]',
        '[--tcf] [--bios5] [--pkg] [--generationOnly]',
        '[--compileOptions compile_options_string]',
        '[--oc compiler.opt] [--ol linker.cmd]',
        'infile.cfg'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.bios5Incs// Add the DSP/BIOS 5.X include directory to the compiler options = Bool false;
        params.cfgArgs// Optional arguments passed to configuration script = String null;
        params.compileOptions// Add compile options for C files in the configuration package = String "";
        params.compilerOptionsFile// Set the name of the compiler options file (default is "compiler.opt") = String "compiler.opt";
        params.configbld// Read build environment from the named config.bld file = String null;
        params.defines// Set a Java property in the configuration script = String[] [ ];
        params.exclude// Exclude packages matching regexp from compatibility checking = String null;
        params.generationOnly// Create the configuration generated source files but do not build = Bool false;
        params.hasTconf// Read infile.tcf in addition to infile.cfg = Bool false;
        params.linkTemplate// Linker command file template = String null;
        params.linkerCommandFile// Set the name of the linker command file (default is "linker.cmd") = String "linker.cmd";
        params.mkPkgOnly// Create the build model generated output files but do not build = Bool false;
        params.output// Pathname of the output directory = String null;
        params.platform// Name of the RTSC platform package (and optionally instance) = String null;
        params.profile// Build profile to use = String 'release';
        params.quiet// Minimize details during build = Bool false;
        params.rootdir// Root directory of the code generation tools = String null;
        params.rtsName// Set the name of the RTSC runtime package = String null;
        params.searchForConfigBld// Use a config.bld found along the package path = Bool false;
        params.target// Name of the RTSC target module = String null;
        params.verbose// Show verbose details during build = Bool false;
        params.warn// Treat package version incompatibilites as warnings = Bool false;
per-instance functions
     inst.gen// Generate and build the configuration package(String infile) returns Int
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
DETAILS
This command allows RTSC content, in the form of reusable modules built using the XDCtools tooling, to be imported into a system integrator's embedded application. It is the recommended method for integrating RTSC content into non-RTSC application build environments.
Configuro lets the system integrator identify and customize the RTSC content they wish to use, and computes a set of libraries, command-line flags and other artifacts to include in their application build. By changing the values of configuration settings, the integrator can trade off the functionality, memory footprint, and even performance of the RTSC content to best meet the needs of their application.
INPUTS
infile.cfg
A user-supplied configuration script that names a set of RTSC modules, and optionally changes their configuration settings.
OUTPUTS
outdir/
A directory containing all generated build artifacts.
outdir/compiler.opt
A file containing C compiler command-line flags. These flags must included on the compiler command line for any C source file that directly accesses the RTSC content. The flags define the header file include paths, and machine-mode compiler flags to ensure object code compatibility between all included content.
outdir/linker.cmd
A file containing linker command-line flags. These flags must be included on the linker command line for the final link of the application. The flags list needed libraries and object files, and on some platforms define the embedded system memory map.
For example:
      xs xdc.tools.configuro myconfig.cfg
config Main.usage // module-wide
index URL

usage help message

XDCscript usage meta-domain
Main.usage = String[] [
    '[-v | -q]',
    '[-@ optionsfile]',
    '[-o outdir]',
    '[-b config_bld | -c codegen_dir | --cb]',
    '[-t target] [-p platform[:instance]] [-r profile]',
    '[-Dname=value]',
    '[-w | -x regexp]',
    '[--rtsName pkg_name]',
    '[--cfgArgs args_string]',
    '[--linkTemplate linker_template]',
    '[--tcf] [--bios5] [--pkg] [--generationOnly]',
    '[--compileOptions compile_options_string]',
    '[--oc compiler.opt] [--ol linker.cmd]',
    'infile.cfg'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.bios5Incs = Bool false;
    // Add the DSP/BIOS 5.X include directory to the compiler options
    params.cfgArgs = String null;
    // Optional arguments passed to configuration script
    params.compileOptions = String "";
    // Add compile options for C files in the configuration package
    params.compilerOptionsFile = String "compiler.opt";
    // Set the name of the compiler options file (default is "compiler.opt")
    params.configbld = String null;
    // Read build environment from the named config.bld file
    params.defines = String[] [ ];
    // Set a Java property in the configuration script
    params.exclude = String null;
    // Exclude packages matching regexp from compatibility checking
    params.generationOnly = Bool false;
    // Create the configuration generated source files but do not build
    params.hasTconf = Bool false;
    // Read infile.tcf in addition to infile.cfg
    params.linkTemplate = String null;
    // Linker command file template
    params.linkerCommandFile = String "linker.cmd";
    // Set the name of the linker command file (default is "linker.cmd")
    params.mkPkgOnly = Bool false;
    // Create the build model generated output files but do not build
    params.output = String null;
    // Pathname of the output directory
    params.platform = String null;
    // Name of the RTSC platform package (and optionally instance)
    params.profile = String 'release';
    // Build profile to use
    params.quiet = Bool false;
    // Minimize details during build
    params.rootdir = String null;
    // Root directory of the code generation tools
    params.rtsName = String null;
    // Set the name of the RTSC runtime package
    params.searchForConfigBld = Bool false;
    // Use a config.bld found along the package path
    params.target = String null;
    // Name of the RTSC target module
    params.verbose = Bool false;
    // Show verbose details during build
    params.warn = Bool false;
    // Treat package version incompatibilites as warnings
config Main.bios5Incs // instance
index URL

Add the DSP/BIOS 5.X include directory to the compiler options

XDCscript usage meta-domain
var params = new Main.Params;
...
params.bios5Incs = Bool false;
DETAILS
The directory is located in "include" in package "ti.bios".
config Main.cfgArgs // instance
index URL

Optional arguments passed to configuration script

XDCscript usage meta-domain
var params = new Main.Params;
...
params.cfgArgs = String null;
DETAILS
This option lets the user pass values into the configuration script from the command line. The argument is an expression in JavaScript syntax. Its value is available in the configuration script under the name Program.build.cfgArgs.
The JavaScript expression is evaluated in the configuration domain after the platform package is imported, immediately before calling the user's configuration script.
This string has the same effect as the cfgArgs string in xdc.bld.Executable.Attrs.
You can pass multiple values to configuration scripts using the syntax of a JavaScript Object constant:
      xs xdc.tools.configuro --cfgArgs '{foo:"hello", bar:2}' ... app.cfg
The configuration script can read the various fields as, e.g.:
      if (Program.build.cfgArgs.foo == "hello") {
          :
      }
NOTE
Different command line shells, such as UNIX bash verses Windows cmd.exe, interpret quotes on the command line very differently. As a result, the syntax necessary to pass a string such as "hello" to configuro can vary depending on the shell you use.
For most UNIX shells, it is possible to use single quotes around the use of double quotes as in the example above. However, since Windows cmd.exe does not treat the single quote as a special character, it is necessary to use a backslash, '\', to ensure that the double quote characters are passed to the configuro tool.
Windows cmd.exe:
      xs xdc.tools.configuro --cfgArgs "{foo:\"hello\", bar:2}" ...
UNIX bash, ksh, csh, ...:
      xs xdc.tools.configuro --cfgArgs '{foo:"hello", bar:2}' ...
SEE
xdc.bld.Executable.Attrs
config Main.compileOptions // instance
index URL

Add compile options for C files in the configuration package

XDCscript usage meta-domain
var params = new Main.Params;
...
params.compileOptions = String "";
DETAILS
This option accepts one or more compiler options that are added to the compiler command line when compiling C files in the generated configuration package. If multiple compiler options are given, the whole string containing options must be surrounded by quotes.
config Main.compilerOptionsFile // instance
index URL

Set the name of the compiler options file (default is "compiler.opt")

XDCscript usage meta-domain
var params = new Main.Params;
...
params.compilerOptionsFile = String "compiler.opt";
config Main.configbld // instance
index URL

Read build environment from the named config.bld file

XDCscript usage meta-domain
var params = new Main.Params;
...
params.configbld = String null;
DETAILS
A config.bld file can optionally be used to hold the values of the target, compiler root directory, platform, and other more advanced options. This is a convenient way to share a common build environment between multiple projects.
The format of the file is JavaScript statements with the XDCscript extensions. The script should set the properties of the Build global object.
If no config.bld file is given then the target and compiler root directory are required command-line parameters.
config Main.defines // instance
index URL

Set a Java property in the configuration script

XDCscript usage meta-domain
var params = new Main.Params;
...
params.defines = String[] [ ];
DETAILS
Allows values to be injected from the command line into the config.bld file. For example, the option -Dmyprop=myval creates a property named myprop with string value "myval". This can be read in config.bld using the XDCscript syntax environment["myprop"].
config Main.exclude // instance
index URL

Exclude packages matching regexp from compatibility checking

XDCscript usage meta-domain
var params = new Main.Params;
...
params.exclude = String null;
DETAILS
A JavaScript regular expression that is used to select packages that should be excluded from the set of packages checked during configuration.
SEE
xdc.cfg
config Main.generationOnly // instance
index URL

Create the configuration generated source files but do not build

XDCscript usage meta-domain
var params = new Main.Params;
...
params.generationOnly = Bool false;
DETAILS
This option runs the configuration step but does not compile the generated source files. This option is used by internal tooling to eliminate unnecessary build steps.
config Main.hasTconf // instance
index URL

Read infile.tcf in addition to infile.cfg

XDCscript usage meta-domain
var params = new Main.Params;
...
params.hasTconf = Bool false;
DETAILS
The .tcf file optionally configures DSP/BIOS 5.X . This allows a single program to use both DSP/BIOS 5.X and RTSC-based content.
config Main.linkTemplate // instance
index URL

Linker command file template

XDCscript usage meta-domain
var params = new Main.Params;
...
params.linkTemplate = String null;
DETAILS
If this option is provided it overrides the template supplied by the platform, giving the caller complete control over the generated linker command file.
SEE
xdc.cfg.Program.linkTemplate
config Main.linkerCommandFile // instance
index URL

Set the name of the linker command file (default is "linker.cmd")

XDCscript usage meta-domain
var params = new Main.Params;
...
params.linkerCommandFile = String "linker.cmd";
config Main.mkPkgOnly // instance
index URL

Create the build model generated output files but do not build

XDCscript usage meta-domain
var params = new Main.Params;
...
params.mkPkgOnly = Bool false;
DETAILS
This option creates the output directory and key generated files but does not process the user's configuration script. It is used by internal tooling to snapshot the RTSC build settings implied by the configuro command line parameters.
config Main.output // instance
index URL

Pathname of the output directory

XDCscript usage meta-domain
var params = new Main.Params;
...
params.output = String null;
DETAILS
A directory containing the generated build artifacts, in particular the compiler.opt and linker.cmd files.
The last component of the output directory path must be a valid ANSI C identifier; i.e., it must consist entirely of alphanumeric or '_' characters and must not start with a number. So, the names '0app' and 'app-test' are not valid but '0app/config' and 'app-test/config' are valid.
By default, the output directory has the same name as the configuration script, minus the .cfg extension, within the same parent directory as this script. As a result, the directory name constraint above applies to the name of the configuration script.
config Main.platform // instance
index URL

Name of the RTSC platform package (and optionally instance)

XDCscript usage meta-domain
var params = new Main.Params;
...
params.platform = String null;
DETAILS
The name of a RTSC platform package to use, using the syntax my.pkg.name or my.pkg.name:instanceName. For example, ti.platforms.sim64Pxx or ti.platforms.generic:custom.
This is an optional parameter, and by default the platform is the one that the selected target names as its default. The user may override this default in their config.bld or by using this parameter.
The optional :instanceName suffix names a pre-configured variant of the platform, which can be set up either in the user's config.bld or in the platform package itself. For more details, see Build.platformTable and the IPlatform interface.
config Main.profile // instance
index URL

Build profile to use

XDCscript usage meta-domain
var params = new Main.Params;
...
params.profile = String 'release';
DETAILS
The name of the build profile to use for the RTSC content, for example 'release' or 'debug'. The list of allowed profiles is determined by the RTSC target module named.
config Main.quiet // instance
index URL

Minimize details during build

XDCscript usage meta-domain
var params = new Main.Params;
...
params.quiet = Bool false;
DETAILS
This option produces the same output as the xdc command with the XDCOPTIONS=qq parameter.
config Main.rootdir // instance
index URL

Root directory of the code generation tools

XDCscript usage meta-domain
var params = new Main.Params;
...
params.rootdir = String null;
DETAILS
The path to the installation directory of the compiler and linker for the selected target. The definition of "installation directory" can vary from compiler to compiler, but is most commonly the directory that contains a "bin" subdirectory.
If no config.bld file is given, then this is a required parameter.
If a config.bld file is given then this parameter is optional, and by default the compiler will be the one configured there. This option can still be used, to override the default established in config.bld.
config Main.rtsName // instance
index URL

Set the name of the RTSC runtime package

XDCscript usage meta-domain
var params = new Main.Params;
...
params.rtsName = String null;
DETAILS
The name of a package containing pre-built libraries containing the xdc.runtime modules. If this parameter is null (or undefined) the name of the rts package is taken from the target (xdc.bld.ITarget.rtsName). If this parameter is set to the empty string (""), then no rts package is included in the configuration. Finally, if this parameter is non-null and non-empty, it should be the name of a package along the package path that can supply pre-built versions of the modules in the xdc.runtime package.
SEE
xdc.bld.ITarget.rtsName, xdc.bld.Executable.Attrs
config Main.searchForConfigBld // instance
index URL

Use a config.bld found along the package path

XDCscript usage meta-domain
var params = new Main.Params;
...
params.searchForConfigBld = Bool false;
DETAILS
Find a config.bld by searching the package path, instead of via an explicit pathname. Looks for a file named config.bld in any of the directories named along the package path, in order. The directories are not searched recursively.
config Main.target // instance
index URL

Name of the RTSC target module

XDCscript usage meta-domain
var params = new Main.Params;
...
params.target = String null;
DETAILS
The name of a RTSC target module to use, for example ti.targets.C64P.
If no config.bld file is given, then this is a required parameter.
If a config.bld file is given then this parameter is optional, and by default the target will be Build.targets[0] from the user's config.bld. If Build.targets contains more than one entry, then this option can be used to override that default.
config Main.verbose // instance
index URL

Show verbose details during build

XDCscript usage meta-domain
var params = new Main.Params;
...
params.verbose = Bool false;
DETAILS
This option produces the same verbose output as the xdc command with the XDCOPTIONS=v parameter.
config Main.warn // instance
index URL

Treat package version incompatibilites as warnings

XDCscript usage meta-domain
var params = new Main.Params;
...
params.warn = Bool false;
DETAILS
If set to "true", force any incompatibilities detected to be treated as warnings only; otherwise incompatibilities are fatal.
SEE
xdc.cfg
Main.gen() // instance
index URL

Generate and build the configuration package

XDCscript usage meta-domain
inst.gen(String infile) returns Int
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:35 GMT


module xdc.tools.configuro.Main

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== Main ========
    14     *  Command-line configuration tool
    15     *
    16     *  This command allows RTSC content, in the form of reusable modules built
    17     *  using the XDCtools tooling, to be imported into a system integrator's
    18     *  embedded application. It is the recommended method for integrating RTSC
    19     *  content into non-RTSC application build environments.
    20     *
    21     *  Configuro lets the system integrator identify and customize the RTSC
    22     *  content they wish to use, and computes a set of libraries, command-line
    23     *  flags and other artifacts to include in their application build. By
    24     *  changing the values of configuration settings, the integrator can
    25     *  trade off the functionality, memory footprint, and even performance of
    26     *  the RTSC content to best meet the needs of their application.
    27     *
    28     *  @a(INPUTS)
    29     *  @p(dlist)
    30     *    - `infile.cfg`
    31     *      A user-supplied configuration script that names a set of RTSC
    32     *      modules, and optionally changes their configuration settings.
    33     *  @p
    34     *
    35     *  @a(OUTPUTS)
    36     *  @p(dlist)
    37     *    - `outdir/`
    38     *      A directory containing all generated build artifacts.
    39     *    - `outdir/compiler.opt`
    40     *      A file containing C compiler command-line flags. These flags must
    41     *      included on the compiler command line for any C source file that
    42     *      directly accesses the RTSC content. The flags define the header file
    43     *      include paths, and machine-mode compiler flags to ensure object code
    44     *      compatibility between all included content.
    45     *    - `outdir/linker.cmd`
    46     *      A file containing linker command-line flags. These flags must be
    47     *      included on the linker command line for the final link of the
    48     *      application. The flags list needed libraries and object files,
    49     *      and on some platforms define the embedded system memory map.
    50     *  @p
    51     *
    52     *  For example:
    53     *  @p(code)
    54     *      xs xdc.tools.configuro myconfig.cfg
    55     *  @p
    56     */
    57    metaonly module Main inherits xdc.tools.ICmd {
    58
    59        /*!
    60         * usage help message
    61         */
    62        override config String usage[] = [
    63            '[-v | -q]',
    64            '[-@ optionsfile]',
    65            '[-o outdir]',
    66            '[-b config_bld | -c codegen_dir | --cb]',
    67            '[-t target] [-p platform[:instance]] [-r profile]',
    68            '[-Dname=value]',
    69            '[-w | -x regexp]',
    70            '[--rtsName pkg_name]',
    71            '[--cfgArgs args_string]',
    72            '[--linkTemplate linker_template]',
    73            '[--tcf] [--bios5] [--pkg] [--generationOnly]',
    74            '[--compileOptions compile_options_string]',
    75            '[--oc compiler.opt] [--ol linker.cmd]',
    76            'infile.cfg'
    77        ];
    78
    79    instance:
    80        /*!
    81         *  Pathname of the output directory
    82         *
    83         *  A directory containing the generated build artifacts, in particular
    84         *  the `compiler.opt` and `linker.cmd` files.
    85         *
    86         *  The last component of the output directory path must be a valid
    87         *  ANSI C identifier; i.e., it must consist entirely of alphanumeric or
    88         *  '_' characters and must not start with a number.  So, the names
    89         *  '0app' and 'app-test' are not valid but '0app/config' and
    90         *  'app-test/config' are valid.
    91         *
    92         *  By default, the output directory has the same name as the
    93         *  configuration script, minus the `.cfg` extension, within the same
    94         *  parent directory as this script.  As a result, the directory name
    95         *  constraint above applies to the name of the configuration script.
    96         */
    97        @CommandOption("o")
    98        config String output = null;
    99
   100        /*!
   101         *  Name of the RTSC target module
   102         *
   103         *  The name of a RTSC target module to use, for example
   104         *  `ti.targets.C64P`.
   105         *
   106         *  If no `config.bld` file is given, then this is a required
   107         *  parameter.
   108         *
   109         *  If a `config.bld` file is given then this parameter is optional,
   110         *  and by default the target will be
   111         *  {@link xdc.bld.BuildEnvironment#targets `Build.targets[0]`} from the
   112         *  user's `config.bld`. If `Build.targets` contains more than one entry,
   113         *  then this option can be used to override that default.
   114         */
   115        @CommandOption("t")
   116        config String target = null;
   117
   118        /*!
   119         *  Root directory of the code generation tools
   120         *
   121         *  The path to the installation directory of the compiler and linker
   122         *  for the selected target. The definition of "installation directory"
   123         *  can vary from compiler to compiler, but is most commonly the
   124         *  directory that contains a "bin" subdirectory.
   125         *
   126         *  If no `config.bld` file is given, then this is a required
   127         *  parameter.
   128         *
   129         *  If a `config.bld` file is given then this parameter is optional,
   130         *  and by default the compiler will be the one configured there.
   131         *  This option can still be used, to override the default established
   132         *  in `config.bld`.
   133         */
   134        @CommandOption("c")
   135        config String rootdir = null;
   136
   137        /*!
   138         *  Name of the RTSC platform package (and optionally instance)
   139         *
   140         *  The name of a RTSC platform package to use, using the syntax
   141         *  `my.pkg.name` or `my.pkg.name:instanceName`. For example,
   142         *  `ti.platforms.sim64Pxx` or `ti.platforms.generic:custom`.
   143         *
   144         *  This is an optional parameter, and by default the platform is
   145         *  the one that the selected target names as its default. The user
   146         *  may override this default in their `config.bld` or by using this
   147         *  parameter.
   148         *
   149         *  The optional `:instanceName` suffix names a pre-configured variant
   150         *  of the platform, which can be set up either in the user's
   151         *  `config.bld` or in the platform package itself. For more details, see
   152         *  {@link xdc.bld.BuildEnvironment#platformTable `Build.platformTable`}
   153         *  and the {@link xdc.platform.IPlatform `IPlatform`} interface.
   154         */
   155        @CommandOption("p")
   156        config String platform = null;
   157
   158        /*!
   159         *  Build profile to use
   160         *
   161         *  The name of the build profile to use for the RTSC content, for
   162         *  example 'release' or 'debug'. The list of allowed profiles is
   163         *  determined by the RTSC target module named.
   164         */
   165        @CommandOption("r")
   166        config String profile = 'release';
   167
   168        /*!
   169         *  Read build environment from the named `config.bld` file
   170         *
   171         *  A `config.bld` file can optionally be used to hold the values
   172         *  of the target, compiler root directory, platform, and other
   173         *  more advanced options. This is a convenient way to share a common
   174         *  build environment between multiple projects.
   175         *
   176         *  The format of the file is JavaScript statements with the XDCscript
   177         *  extensions. The script should set the properties of the
   178         *  {@link xdc.bld.BuildEnvironment `Build`} global object.
   179         *
   180         *  If no `config.bld` file is given then the target and compiler
   181         *  root directory are required command-line parameters.
   182         */
   183        @CommandOption("b")
   184        config String configbld = null;
   185
   186        /*!
   187         *  Use a `config.bld` found along the package path
   188         *
   189         *  Find a `config.bld` by searching the package path, instead of
   190         *  via an explicit pathname. Looks for a file named `config.bld` in
   191         *  any of the directories named along the package path, in order. The
   192         *  directories are not searched recursively.
   193         */
   194        @CommandOption("cb")
   195        config Bool searchForConfigBld = false;
   196
   197        /*!
   198         *  Set a Java property in the configuration script
   199         *
   200         *  Allows values to be injected from the command line into the
   201         *  `config.bld` file. For example, the option `-Dmyprop=myval`
   202         *  creates a property named `myprop` with string value `"myval"`.
   203         *  This can be read in `config.bld` using the XDCscript syntax
   204         *  `environment["myprop"]`.
   205         */
   206        @CommandOption("D")
   207        config String defines[] = [];
   208
   209        /*!
   210         *  Set the name of the RTSC runtime package
   211         *
   212         *  The name of a package containing pre-built libraries containing
   213         *  the {@link xdc.runtime} modules.  If this parameter is `null` (or
   214         *  `undefined`) the name of the rts package is taken from the target
   215         *  (`{@link xdc.bld.ITarget#rtsName}`).  If this parameter is set to
   216         *  the empty string (""), then no rts package is included in the
   217         *  configuration.  Finally, if this parameter is non-`null` and
   218         *  non-empty, it should be the name of a package along the package
   219         *  path that can supply pre-built versions of the modules in the
   220         *  `{@link xdc.runtime}` package.
   221         *
   222         *  @see xdc.bld.ITarget#rtsName
   223         *  @see xdc.bld.Executable#Attrs
   224         */
   225        @CommandOption("rtsName")
   226        config String rtsName = null;
   227
   228        /*!
   229         *  ======== cfgArgs ========
   230         *  Optional arguments passed to configuration script
   231         *
   232         *  This option lets the user pass values into the configuration script
   233         *  from the command line. The argument is an expression in JavaScript
   234         *  syntax.  Its value is available in the configuration script under the
   235         *  name `Program.build.cfgArgs`.
   236         *
   237         *  The JavaScript expression is evaluated in the configuration domain
   238         *  after the platform package is imported, immediately before calling
   239         *  the user's configuration script.
   240         *
   241         *  This string has the same effect as the `cfgArgs` string in
   242         *  `{@link xdc.bld.Executable#Attrs}`.
   243         *
   244         *  You can pass multiple values to configuration scripts using the
   245         *  syntax of a JavaScript `Object` constant:
   246         *  @p(code)
   247         *      xs xdc.tools.configuro --cfgArgs '{foo:"hello", bar:2}' ... app.cfg
   248         *  @p
   249         *
   250         *  The configuration script can read the various fields as, e.g.:
   251         *  @p(code)
   252         *      if (Program.build.cfgArgs.foo == "hello") {
   253         *          :
   254         *      }
   255         *  @p
   256         *
   257         *  @a(Note)
   258         *  Different command line shells, such as UNIX `bash` verses Windows
   259         *  `cmd.exe`, interpret quotes on the command line very differently.
   260         *  As a result, the syntax necessary to pass a string such as "hello"
   261         *  to `configuro` can vary depending on the shell you use.
   262         *
   263         *  For most UNIX shells, it is possible to use single quotes around the
   264         *  use of double quotes as in the example above.  However, since Windows
   265         *  `cmd.exe` does not treat the single quote as a special character, it
   266         *  is necessary to use a backslash, '\', to ensure that the double quote
   267         *  characters are passed to the configuro tool.
   268         *
   269         *  Windows `cmd.exe`:
   270         *  @p(code)
   271         *      xs xdc.tools.configuro --cfgArgs "{foo:\"hello\", bar:2}" ...
   272         *  @p
   273         *
   274         *  UNIX `bash`, `ksh`, `csh`, ...:
   275         *  @p(code)
   276         *      xs xdc.tools.configuro --cfgArgs '{foo:"hello", bar:2}' ...
   277         *  @p
   278         *
   279         *  @see xdc.bld.Executable#Attrs
   280         */
   281        @CommandOption("cfgArgs")
   282        config String cfgArgs = null;
   283
   284        /*!
   285         *  Linker command file template
   286         *
   287         *  If this option is provided it overrides the template supplied by
   288         *  the platform, giving the caller complete control over the generated
   289         *  linker command file.
   290         *
   291         *  @see xdc.cfg.Program#linkTemplate
   292         */
   293        @CommandOption("linkTemplate")
   294        config String linkTemplate = null;
   295
   296        /*!
   297         *  Show verbose details during build
   298         *
   299         *  This option produces the same verbose output as the `xdc` command
   300         *  with the `XDCOPTIONS=v` parameter.
   301         */
   302        @CommandOption("v")
   303        config Bool verbose = false;
   304
   305        /*!
   306         *  Minimize details during build
   307         *
   308         *  This option produces the same output as the `xdc` command
   309         *  with the `XDCOPTIONS=qq` parameter.
   310         */
   311        @CommandOption("q")
   312        config Bool quiet = false;
   313
   314        /*!
   315         *  Exclude packages matching regexp from compatibility checking
   316         *
   317         *  A JavaScript regular expression that is used to select packages that
   318         *  should be excluded from the set of packages checked during
   319         *  configuration.
   320         *
   321         *  @see xdc.cfg
   322         */
   323        @CommandOption("x")
   324        config String exclude = null;
   325
   326        /*!
   327         *  Treat package version incompatibilites as warnings
   328         *
   329         *  If set to "`true`", force any incompatibilities detected to be
   330         *  treated as warnings only; otherwise incompatibilities are fatal.
   331         *
   332         *  @see xdc.cfg
   333         */
   334        @CommandOption("w")
   335        config Bool warn = false;
   336
   337        /*!
   338         *  Read infile.tcf in addition to infile.cfg
   339         *
   340         *  The .tcf file optionally configures DSP/BIOS 5.X . This allows a
   341         *  single program to use both DSP/BIOS 5.X and RTSC-based content.
   342         */
   343        @CommandOption("tcf")
   344        config Bool hasTconf = false;
   345
   346        /*!
   347         *  Add the DSP/BIOS 5.X include directory to the compiler options
   348         *
   349         *  The directory is located in "include" in package "ti.bios".
   350         */
   351        @CommandOption("bios5")
   352        config Bool bios5Incs = false;
   353
   354        /*!
   355         *  Create the build model generated output files but do not build
   356         *
   357         *  This option creates the output directory and key generated files
   358         *  but does not process the user's configuration script. It is used
   359         *  by internal tooling to snapshot the RTSC build settings implied by
   360         *  the configuro command line parameters.
   361         */
   362        @CommandOption("pkg")
   363        config Bool mkPkgOnly = false;
   364
   365        /*!
   366         *  Create the configuration generated source files but do not build
   367         *
   368         *  This option runs the configuration step but does not compile the
   369         *  generated source files.  This option is used
   370         *  by internal tooling to eliminate unnecessary build steps.
   371         */
   372        @CommandOption("generationOnly")
   373        config Bool generationOnly = false;
   374
   375        /*!
   376         *  Add compile options for C files in the configuration package
   377         *
   378         *  This option accepts one or more compiler options that are added to
   379         *  the compiler command line when compiling C files in the generated
   380         *  configuration package.
   381         *  If multiple compiler options are given, the whole string containing
   382         *  options must be surrounded by quotes.
   383         */
   384        @CommandOption("compileOptions")
   385        config String compileOptions = "";
   386
   387        /*!
   388         *  Set the name of the compiler options file (default is "compiler.opt")
   389         */
   390        @CommandOption("oc")
   391        config String compilerOptionsFile = "compiler.opt";
   392
   393        /*!
   394         *  Set the name of the linker command file (default is "linker.cmd")
   395         */
   396        @CommandOption("ol")
   397        config String linkerCommandFile = "linker.cmd";
   398
   399        /*!
   400         *  Generate and build the configuration package
   401         */
   402        int gen(String infile);
   403    }


package xdc.tools.configuro.ccs
index URL

Command-line configuration tool adapter for Code Composer Studio

XDCspec declarations sourced in xdc/tools/configuro/ccs/package.xdc
requires xdc.tools.configuro;
package xdc.tools.configuro.ccs [1, 0, 0, 0] {
    module Main;
    // Command-line configuration tool adapter for Code Composer Studio
}
INSTALLING_ON_WINDOWS
The XDC interface to Code Composer Studio requires some Windows registry entries for correct operation. By default the XDC product Windows installer takes care of this transparently to the user. You need only read this section if you have installed or upgraded the XDC product on Windows without having used the installer, for example if you are accessing XDC from a shared network drive.
To update the required registry entries, do the following steps:
  1. open a Windows command window, for example by typing cmd from the "Run..." menu item located in the Windows "Start" menu.
  2. type cd %XDCROOT%
  3. type cd packages\xdc\tools\configuro\ccs
  4. type regsvr32 btiXdc
  5. click OK on the dialog box:
If you have not installed XDC using the installer, it is possible that you also do not have an %XDCROOT% environment variable. In this case in step 2 above, cd to your own XDC product installation directory.
generated on Thu, 08 Nov 2012 02:13:35 GMT


package xdc.tools.configuro.ccs

     1    /*
     2     *  Copyright 2007 by Texas Instruments Incorporated.
     3     *
     4     *  All rights reserved. Property of Texas Instruments Incorporated.
     5     *  Restricted rights to use, duplicate or disclose this code are
     6     *  granted through contract.
     7     *
     8     */
     9
    10    requires xdc.tools.configuro;
    11
    12    /*!
    13     *  ======== xdc.tools.configuro.ccs ========
    14     *  Command-line configuration tool adapter for Code Composer Studio
    15     *
    16     *  @a(INSTALLING_ON_WINDOWS)
    17     *
    18     *  The XDC interface to Code Composer Studio requires some Windows registry
    19     *  entries for correct operation. By default the XDC product Windows installer
    20     *  takes care of this transparently to the user. You need only read this
    21     *  section if you have installed or upgraded the XDC product on Windows without
    22     *  having used the installer, for example if you are accessing XDC from a
    23     *  shared network drive.
    24     *
    25     *  To update the required registry entries, do the following steps:
    26     *  @p(nlist)
    27     *  - open a Windows command window, for example by typing `cmd` from the
    28     *    "Run..." menu item located in the Windows "Start" menu.
    29     *  - type `cd %XDCROOT%`
    30     *  - type `cd packages\xdc\tools\configuro\ccs`
    31     *  - type `regsvr32 btiXdc`
    32     *  - click OK on the dialog box:
    33     *  @p
    34     *  @p(html)
    35     *     <div style="text-align: center;">
    36     *       <img src="./doc-files/RegSvr32.png"/>
    37     *     </div>
    38     *  @p
    39     *
    40     *  If you have not installed XDC using the installer, it is possible that you
    41     *  also do not have an `%XDCROOT%` environment variable. In this case in step
    42     *  2 above, cd to your own XDC product installation directory.
    43     */
    44    package xdc.tools.configuro.ccs [1, 0, 0, 0] {
    45        module Main;
    46    }
    47    /*
    48     *  @(#) xdc.tools.configuro.ccs; 1, 0, 0, 0,34; 12-15-2007 18:23:21; /db/ztree/library/trees/bti-a52x/src/
    49     */
    50


module xdc.tools.configuro.ccs.Main

metaonly module xdc.tools.configuro.ccs.Main
index URL

Command-line configuration tool adapter for Code Composer Studio

  • XDCscript usage
  • Individual elements
This command is a wrapper for Configuro that adapts it for use inside Code Composer Studio. It is not intended to be called directly by users.
XDCscript usage meta-domain sourced in xdc/tools/configuro/ccs/Main.xdc
var Main = xdc.useModule('xdc.tools.configuro.ccs.Main');
module-wide config parameters
     Main.usage// usage help message = String[] [
        '[-v|--help]',
        '[-@ optionsfile] [--xp xdcpath]',
        '[-b config_bld | -c codegen_dir | --cb]',
        '[-t target] [-p platform[:instance]] [-r profile]',
        '[-Dname=value] [--tcf] [--bios5]',
        '[-w|-x regexp]',
        '[-o outdir] infile.cfg'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.bios5Incs// Add "include" directory from pacakge "ti.bios" to compiler options = Bool false;
        params.configbld// config.bld file name = String null;
        params.defines// set Java properties in the configuration environment = String[] [ ];
        params.exclude// exclude packages from compatibility checking = String null;
        params.hasTconf// Process infile.tcf in addition to infile.cfg = Bool false;
        params.output// name of the output directory = String null;
        params.platform// the platform to use = String null;
        params.profile// build profile to use = String 'release';
        params.rootdir// root directory of the code generation tools = String null;
        params.searchForConfigBld// Use a config.bld found along the package path = Bool false;
        params.target// target module = String null;
        params.verbose// show details during build = Bool false;
        params.warn// incompatibilites are treated only as warnings = Bool false;
        params.xdcPath// XDC path = String[] [ ];
per-instance functions
     inst.gen// Generate and build the configuration package(String infile) returns Int
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
config Main.usage // module-wide
index URL

usage help message

XDCscript usage meta-domain
Main.usage = String[] [
    '[-v|--help]',
    '[-@ optionsfile] [--xp xdcpath]',
    '[-b config_bld | -c codegen_dir | --cb]',
    '[-t target] [-p platform[:instance]] [-r profile]',
    '[-Dname=value] [--tcf] [--bios5]',
    '[-w|-x regexp]',
    '[-o outdir] infile.cfg'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.bios5Incs = Bool false;
    // Add "include" directory from pacakge "ti.bios" to compiler options
    params.configbld = String null;
    // config.bld file name
    params.defines = String[] [ ];
    // set Java properties in the configuration environment
    params.exclude = String null;
    // exclude packages from compatibility checking
    params.hasTconf = Bool false;
    // Process infile.tcf in addition to infile.cfg
    params.output = String null;
    // name of the output directory
    params.platform = String null;
    // the platform to use
    params.profile = String 'release';
    // build profile to use
    params.rootdir = String null;
    // root directory of the code generation tools
    params.searchForConfigBld = Bool false;
    // Use a config.bld found along the package path
    params.target = String null;
    // target module
    params.verbose = Bool false;
    // show details during build
    params.warn = Bool false;
    // incompatibilites are treated only as warnings
    params.xdcPath = String[] [ ];
    // XDC path
config Main.bios5Incs // instance
index URL

Add "include" directory from pacakge "ti.bios" to compiler options

XDCscript usage meta-domain
var params = new Main.Params;
...
params.bios5Incs = Bool false;
config Main.configbld // instance
index URL

config.bld file name

XDCscript usage meta-domain
var params = new Main.Params;
...
params.configbld = String null;
DETAILS
The path to the user's config.bld. Replaces ROOTDIR.
config Main.defines // instance
index URL

set Java properties in the configuration environment

XDCscript usage meta-domain
var params = new Main.Params;
...
params.defines = String[] [ ];
DETAILS
-Dconfig.importPath is treated specially -- these directories are added to the end of the package path.
config Main.exclude // instance
index URL

exclude packages from compatibility checking

XDCscript usage meta-domain
var params = new Main.Params;
...
params.exclude = String null;
DETAILS
A list of regular expressions used to select packages that should be excluded from the set of packages checked during configuration.
SEE
xdc.cfg
config Main.hasTconf // instance
index URL

Process infile.tcf in addition to infile.cfg

XDCscript usage meta-domain
var params = new Main.Params;
...
params.hasTconf = Bool false;
config Main.output // instance
index URL

name of the output directory

XDCscript usage meta-domain
var params = new Main.Params;
...
params.output = String null;
config Main.platform // instance
index URL

the platform to use

XDCscript usage meta-domain
var params = new Main.Params;
...
params.platform = String null;
DETAILS
If undefined, the default platform for the XDC build target named.
config Main.profile // instance
index URL

build profile to use

XDCscript usage meta-domain
var params = new Main.Params;
...
params.profile = String 'release';
DETAILS
The name of the build profile to use for the XDC content, for example 'release' or 'debug'. The list of allowed profiles is determined by the XDC build target named.
config Main.rootdir // instance
index URL

root directory of the code generation tools

XDCscript usage meta-domain
var params = new Main.Params;
...
params.rootdir = String null;
DETAILS
The path to the installation directory of the compiler and linker.
config Main.searchForConfigBld // instance
index URL

Use a config.bld found along the package path

XDCscript usage meta-domain
var params = new Main.Params;
...
params.searchForConfigBld = Bool false;
config Main.target // instance
index URL

target module

XDCscript usage meta-domain
var params = new Main.Params;
...
params.target = String null;
DETAILS
The name of an XDC build target module to use, for example ti.targets.C64P. If no target is named, the target used is Build.targets[0], from config.bld.
config Main.verbose // instance
index URL

show details during build

XDCscript usage meta-domain
var params = new Main.Params;
...
params.verbose = Bool false;
config Main.warn // instance
index URL

incompatibilites are treated only as warnings

XDCscript usage meta-domain
var params = new Main.Params;
...
params.warn = Bool false;
DETAILS
If set to "true", force any incompatibilities detected to be treated as warnings only; otherwise incompatibilities are fatal.
SEE
xdc.cfg
config Main.xdcPath // instance
index URL

XDC path

XDCscript usage meta-domain
var params = new Main.Params;
...
params.xdcPath = String[] [ ];
Main.gen() // instance
index URL

Generate and build the configuration package

XDCscript usage meta-domain
inst.gen(String infile) returns Int
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:35 GMT


module xdc.tools.configuro.ccs.Main

     1    /*
     2     *  Copyright 2007 by Texas Instruments Incorporated.
     3     *
     4     *  All rights reserved. Property of Texas Instruments Incorporated.
     5     *  Restricted rights to use, duplicate or disclose this code are
     6     *  granted through contract.
     7     *
     8     */
     9
    10    /*!
    11     *  ======== Main ========
    12     *  Command-line configuration tool adapter for Code Composer Studio
    13     *
    14     *  This command is a wrapper for {@link xdc.tools.configuro Configuro}
    15     *  that adapts it for use inside Code Composer Studio. It is not
    16     *  intended to be called directly by users.
    17     */
    18    metaonly module Main inherits xdc.tools.ICmd {
    19
    20        /*!
    21         * usage help message
    22         */
    23        override config String usage[] = [
    24            '[-v|--help]',
    25            '[-@ optionsfile] [--xp xdcpath]',
    26            '[-b config_bld | -c codegen_dir | --cb]',
    27            '[-t target] [-p platform[:instance]] [-r profile]',
    28            '[-Dname=value] [--tcf] [--bios5]',
    29            '[-w|-x regexp]',
    30            '[-o outdir] infile.cfg'
    31        ];
    32
    33    instance:
    34
    35        /*!
    36         * XDC path
    37         */
    38        @CommandOption("xp")
    39        config String xdcPath[] = [];
    40
    41        /*!
    42         * name of the text file containing xdc paths
    43         *
    44         * @_nodoc
    45         *
    46         * Both plain directory listing and javascript syntax are supported;
    47         * for javascript, the file must start with double slashes -- "//" -- and
    48         * it must define a variable called xdcpaths.
    49         */
    50        @CommandOption("xdcpathsfile")
    51        config String xdcPathsFile = null;
    52
    53        /*!
    54         * Process infile.tcf in addition to infile.cfg
    55         */
    56        @CommandOption("tcf")
    57        config Bool hasTconf = false;
    58
    59        /*!
    60         * Add "include" directory from pacakge "ti.bios" to compiler options
    61         */
    62        @CommandOption("bios5")
    63        config Bool bios5Incs = false;
    64
    65        /*!
    66         * name of the output directory
    67         */
    68        @CommandOption("o")
    69        config String output = null;
    70
    71        /*!
    72         * config.bld file name
    73         *
    74         * The path to the user's config.bld. Replaces ROOTDIR.
    75         */
    76        @CommandOption("b")
    77        config String configbld = null;
    78
    79        /*!
    80         * Use a config.bld found along the package path
    81         */
    82        @CommandOption("cb")
    83
    84        config Bool searchForConfigBld = false;
    85        /*!
    86         * target module
    87         *
    88         * The name of an XDC build target module to use, for example
    89         * `ti.targets.C64P`. If no target is named, the target used is
    90         * `Build.targets[0]`, from `config.bld`.
    91         */
    92        @CommandOption("t")
    93        config String target = null;
    94
    95        /*!
    96         * build profile to use
    97         *
    98         * The name of the build profile to use for the XDC content, for
    99         * example 'release' or 'debug'. The list of allowed profiles is
   100         * determined by the XDC build target named.
   101         */
   102        @CommandOption("r")
   103        config String profile = 'release';
   104
   105        /*!
   106         * the platform to use
   107         *
   108         * If undefined, the default platform for the XDC build target
   109         * named.
   110         */
   111        @CommandOption("p")
   112        config String platform = null;
   113
   114        /*!
   115         * root directory of the code generation tools
   116         *
   117         * The path to the installation directory of the compiler and linker.
   118         */
   119        @CommandOption("c")
   120        config String rootdir = null;
   121
   122        /*!
   123         * show details during build
   124         */
   125        @CommandOption("v")
   126        config Bool verbose = false;
   127
   128        /*!
   129         * exclude packages from compatibility checking
   130         *
   131         * A list of regular expressions used to select packages that should
   132         * be excluded from the set of packages checked during configuration.
   133         * @see xdc.cfg
   134         */
   135        @CommandOption("x")
   136        config String exclude = null;
   137
   138        /*!
   139         * incompatibilites are treated only as warnings
   140         *
   141         * If set to "`true`", force any incompatibilities detected to be
   142         * treated as warnings only; otherwise incompatibilities are fatal.
   143         * @see xdc.cfg
   144         */
   145        @CommandOption("w")
   146        config Bool warn = false;
   147
   148        /*!
   149         * set Java properties in the configuration environment
   150         *
   151         * -Dconfig.importPath is treated specially -- these directories are
   152         * added to the end of the package path.
   153         */
   154        @CommandOption("D")
   155        config String defines[] = [];
   156
   157        /*!
   158         * Generate and build the configuration package.
   159         */
   160        int gen(String infile);
   161    }
   162    /*
   163     *  @(#) xdc.tools.configuro.ccs; 1, 0, 0, 0,34; 12-15-2007 18:23:21; /db/ztree/library/trees/bti-a52x/src/
   164     */
   165


package xdc.tools.path
index URL

Package Repository Path Display Tool

  • USAGE
  • OPTIONS
  • DETAILS
  • EXAMPLES
  • SEE
This tool displays the packages located along the specified package repository path. Repositories can be specified by explicitly naming them via the -Pr option or implicitly by not passing -Pr; in this case, the set of repositories searched corresponds to the set of repositories defined by the current package path: [ more ... ]
XDCspec declarations sourced in xdc/tools/path/package.xdc
requires xdc.tools;
package xdc.tools.path [1, 0, 0] {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.path [--help]
    [-n] [-x] [-v] [-H header] [-p] [-c] [-P package_base_dir ...|-Pr repository ...|-PR directory ...]
OPTIONS
-p
Echo path
-n
Display package names only
-a
Return an array of strings
-x
Return a Results struct as XML
-v
Print informative messages during execution
-H
Header label
-Pr, -d
Use specified directory args instead of xdc.path
-PR
Recursively find all packages

Recursively descend into specified directories and find every package, including packages whose repository is not one of the specified directories.

-P
Only display information for the package directories
-c, --checkpath
Check repositories for possible errors
DETAILS
This tool displays the packages located along the specified package repository path. Repositories can be specified by explicitly naming them via the -Pr option or implicitly by not passing -Pr; in this case, the set of repositories searched corresponds to the set of repositories defined by the current package path:
      $XDCPATH;$XDCROOT/packages;^
where $XDCPATH is the value of the the user settable prefix of the package path, $XDCROOT is the installation directory of the XDC tools, and ^ is the repository of the package in the current working directory (if it exists).
EXAMPLES
1. To display information about the packages on the package path (in this example, the package path is just C:/xdc-o00/packages):
    xs xdc.tools.path
Output:
    Package Name:      gnu.gdb.jserver
    Repository:        C:/xdc-o00/packages
    Release Name:      gnu_gdb_jserver
    Label:             default
    Compatibility Key: 1, 0, 0, 0, 87
    Date:              11/20/2006  20:38

    Package Name:      gnu.targets
    Repository:        C:/xdc-o00/packages
    Release Name:      gnu_targets
    Label:             default
    Compatibility Key: 1, 0, 0, 0, 194
    Date:              11/20/2006  20:38
2. To display the names of the packages on the package path (in this example, the package path is just C:/xdc-o00/packages):
    xs xdc.tools.path -n
Output:
    gnu.gdb.jserver
    gnu.targets
    gnu.targets.rts470MV
    gnu.targets.rts470uC
    gnu.targets.rts5
3. To simply, echo the current package path:
    xs xdc.tools.path -p
Output:
    C:/xdc-o00/packages
4. To display information about the packages "rooted" in the repository C:/CCStudio_v3.3/bios_5_31/packages:
    xs xdc.tools.path -Pr C:/CCStudio_v3.3/bios_5_31/packages
Output:
    Package Name:      ti.platforms.dsk5402
    Repository:        C:/CCStudio_v3.3/bios_5_31/packages
    Release Name:      ti_platforms_dsk5402
    Label:             default
    Compatibility Key: 1, 0, 0, 24
    Date:              05/11/2006  19:10

    Package Name:      ti.platforms.dsk5416
    Repository:        C:/CCStudio_v3.3/bios_5_31/packages
    Release Name:      ti_platforms_dsk5416
    Label:             default
    Compatibility Key: 1, 0, 0, 24
    Date:              05/11/2006  19:10

    Package Name:      ti.platforms.dsk5510
    Repository:        C:/CCStudio_v3.3/bios_5_31/packages
    Release Name:      ti_platforms_dsk5510
    Label:             default
    Compatibility Key: 1, 0, 0, 24
    Date:              05/11/2006  19:10
5. To display the names of all packages in or below the directory C:/CCStudio_v3.3/bios_5_31/packages:
    xs xdc.tools.path -n -PR C:/CCStudio_v3.3/bios_5_31/packages
Output:
    ti.platforms.dsk5402
    ti.platforms.dsk5416
    ti.platforms.dsk5510
    ti.platforms.dsk6211
SEE
xdc.tools.path
generated on Thu, 08 Nov 2012 02:13:36 GMT


package xdc.tools.path

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.tools;
    13
    14    /*
    15     *  ======== xdc.tools.path ========
    16     *  Package Repository Path Display Tool
    17     */
    18    package xdc.tools.path [1, 0, 0] {
    19        module Main;    /* the main entry point to the path tool itself */
    20    }
    21
    22    /*
    23     *  @(#) xdc.tools.path; 1, 0, 0,223; 10-28-2012 21:40:56; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    24     */
    25


module xdc.tools.path.Main

metaonly module xdc.tools.path.Main
index URL

Command implementation

  • DETAILS
  • EXAMPLES
  • SEE
  • XDCscript usage
  • Individual elements
This tool displays the packages located along the specified package repository path. Repositories can be specified by explicitly naming them via the -Pr option or implicitly by not passing -Pr; in this case, the set of repositories searched corresponds to the set of repositories defined by the current package path: [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/path/Main.xdc
var Main = xdc.useModule('xdc.tools.path.Main');
module-wide constants & types
    var obj = new Main.CheckResults// ;
        obj.repository = String ...
        obj.warnings = String[] ...
    var obj = new Main.DirResults// return value for xml directory echo;
        obj.header// user-specified header = String ...
        obj.dir// array of package base directories = String[] ...
        obj.checkResults = Main.CheckResults[] ...
    var obj = new Main.NameResults// return value for xml package names;
        obj.header// user-specified header = String ...
        obj.path// package path = String ...
        obj.name// array of names = String[] ...
        obj.checkResults = Main.CheckResults[] ...
    var obj = new Main.PathResults// return value for xml package path;
        obj.header// user-specified header = String ...
        obj.path// package path = String ...
        obj.checkResults = Main.CheckResults[] ...
    var obj = new Main.Pkg// struct used for xml package info;
        obj.name = String ...
        obj.repository = String ...
        obj.release = String ...
        obj.label = String ...
        obj.key = String ...
        obj.date = String ...
        obj.providerId = String ...
        obj.originalProviderId = String ...
        obj.producerId = String ...
    var obj = new Main.Results// return value for xml package info;
        obj.header// user-specified header = String ...
        obj.path// package path = String ...
        obj.pkg// array of packages = Main.Pkg[] ...
        obj.checkResults = Main.CheckResults[] ...
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        '[-n] [-x] [-v] [-H header] [-p] [-c] [-P package_base_dir ...|-Pr repository ...|-PR directory ...]'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.arrFlag// Return an array of strings = Bool false;
        params.checkFlag// Check repositories for possible errors = Bool false;
        params.directoriesFlag// Only display information for the package directories = Bool false;
        params.header// Header label = String null;
        params.pathFlag// Echo path = Bool false;
        params.recurseFlag// Recursively find all packages = Bool false;
        params.repositoriesFlag// Use specified directory args instead of xdc.path = Bool false;
        params.shortFlag// Display package names only = Bool false;
        params.verboseFlag// Print informative messages during execution = Bool false;
        params.xmlFlag// Return a Results struct as XML = Bool false;
per-instance functions
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
DETAILS
This tool displays the packages located along the specified package repository path. Repositories can be specified by explicitly naming them via the -Pr option or implicitly by not passing -Pr; in this case, the set of repositories searched corresponds to the set of repositories defined by the current package path:
      $XDCPATH;$XDCROOT/packages;^
where $XDCPATH is the value of the the user settable prefix of the package path, $XDCROOT is the installation directory of the XDC tools, and ^ is the repository of the package in the current working directory (if it exists).
EXAMPLES
1. To display information about the packages on the package path (in this example, the package path is just C:/xdc-o00/packages):
    xs xdc.tools.path
Output:
    Package Name:      gnu.gdb.jserver
    Repository:        C:/xdc-o00/packages
    Release Name:      gnu_gdb_jserver
    Label:             default
    Compatibility Key: 1, 0, 0, 0, 87
    Date:              11/20/2006  20:38

    Package Name:      gnu.targets
    Repository:        C:/xdc-o00/packages
    Release Name:      gnu_targets
    Label:             default
    Compatibility Key: 1, 0, 0, 0, 194
    Date:              11/20/2006  20:38
2. To display the names of the packages on the package path (in this example, the package path is just C:/xdc-o00/packages):
    xs xdc.tools.path -n
Output:
    gnu.gdb.jserver
    gnu.targets
    gnu.targets.rts470MV
    gnu.targets.rts470uC
    gnu.targets.rts5
3. To simply, echo the current package path:
    xs xdc.tools.path -p
Output:
    C:/xdc-o00/packages
4. To display information about the packages "rooted" in the repository C:/CCStudio_v3.3/bios_5_31/packages:
    xs xdc.tools.path -Pr C:/CCStudio_v3.3/bios_5_31/packages
Output:
    Package Name:      ti.platforms.dsk5402
    Repository:        C:/CCStudio_v3.3/bios_5_31/packages
    Release Name:      ti_platforms_dsk5402
    Label:             default
    Compatibility Key: 1, 0, 0, 24
    Date:              05/11/2006  19:10

    Package Name:      ti.platforms.dsk5416
    Repository:        C:/CCStudio_v3.3/bios_5_31/packages
    Release Name:      ti_platforms_dsk5416
    Label:             default
    Compatibility Key: 1, 0, 0, 24
    Date:              05/11/2006  19:10

    Package Name:      ti.platforms.dsk5510
    Repository:        C:/CCStudio_v3.3/bios_5_31/packages
    Release Name:      ti_platforms_dsk5510
    Label:             default
    Compatibility Key: 1, 0, 0, 24
    Date:              05/11/2006  19:10
5. To display the names of all packages in or below the directory C:/CCStudio_v3.3/bios_5_31/packages:
    xs xdc.tools.path -n -PR C:/CCStudio_v3.3/bios_5_31/packages
Output:
    ti.platforms.dsk5402
    ti.platforms.dsk5416
    ti.platforms.dsk5510
    ti.platforms.dsk6211
SEE
xdc.tools.path
struct Main.CheckResults
index URL
XDCscript usage meta-domain
var obj = new Main.CheckResults;
    obj.repository = String ...
    obj.warnings = String[] ...
struct Main.DirResults
index URL

return value for xml directory echo

XDCscript usage meta-domain
var obj = new Main.DirResults;
    obj.header = String ...
    // user-specified header
    obj.dir = String[] ...
    // array of package base directories
    obj.checkResults = Main.CheckResults[] ...
struct Main.NameResults
index URL

return value for xml package names

XDCscript usage meta-domain
var obj = new Main.NameResults;
    obj.header = String ...
    // user-specified header
    obj.path = String ...
    // package path
    obj.name = String[] ...
    // array of names
    obj.checkResults = Main.CheckResults[] ...
struct Main.PathResults
index URL

return value for xml package path

XDCscript usage meta-domain
var obj = new Main.PathResults;
    obj.header = String ...
    // user-specified header
    obj.path = String ...
    // package path
    obj.checkResults = Main.CheckResults[] ...
struct Main.Pkg
index URL

struct used for xml package info

XDCscript usage meta-domain
var obj = new Main.Pkg;
    obj.name = String ...
    obj.repository = String ...
    obj.release = String ...
    obj.label = String ...
    obj.key = String ...
    obj.date = String ...
    obj.providerId = String ...
    obj.originalProviderId = String ...
    obj.producerId = String ...
struct Main.Results
index URL

return value for xml package info

XDCscript usage meta-domain
var obj = new Main.Results;
    obj.header = String ...
    // user-specified header
    obj.path = String ...
    // package path
    obj.pkg = Main.Pkg[] ...
    // array of packages
    obj.checkResults = Main.CheckResults[] ...
config Main.usage // module-wide
index URL

Usage for this command

XDCscript usage meta-domain
Main.usage = String[] [
    '[-n] [-x] [-v] [-H header] [-p] [-c] [-P package_base_dir ...|-Pr repository ...|-PR directory ...]'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.arrFlag = Bool false;
    // Return an array of strings
    params.checkFlag = Bool false;
    // Check repositories for possible errors
    params.directoriesFlag = Bool false;
    // Only display information for the package directories
    params.header = String null;
    // Header label
    params.pathFlag = Bool false;
    // Echo path
    params.recurseFlag = Bool false;
    // Recursively find all packages
    params.repositoriesFlag = Bool false;
    // Use specified directory args instead of xdc.path
    params.shortFlag = Bool false;
    // Display package names only
    params.verboseFlag = Bool false;
    // Print informative messages during execution
    params.xmlFlag = Bool false;
    // Return a Results struct as XML
config Main.arrFlag // instance
index URL

Return an array of strings

XDCscript usage meta-domain
var params = new Main.Params;
...
params.arrFlag = Bool false;
config Main.checkFlag // instance
index URL

Check repositories for possible errors

XDCscript usage meta-domain
var params = new Main.Params;
...
params.checkFlag = Bool false;
config Main.directoriesFlag // instance
index URL

Only display information for the package directories

XDCscript usage meta-domain
var params = new Main.Params;
...
params.directoriesFlag = Bool false;
config Main.header // instance
index URL

Header label

XDCscript usage meta-domain
var params = new Main.Params;
...
params.header = String null;
config Main.pathFlag // instance
index URL

Echo path

XDCscript usage meta-domain
var params = new Main.Params;
...
params.pathFlag = Bool false;
config Main.recurseFlag // instance
index URL

Recursively find all packages

XDCscript usage meta-domain
var params = new Main.Params;
...
params.recurseFlag = Bool false;
DETAILS
Recursively descend into specified directories and find every package, including packages whose repository is not one of the specified directories.
config Main.repositoriesFlag // instance
index URL

Use specified directory args instead of xdc.path

XDCscript usage meta-domain
var params = new Main.Params;
...
params.repositoriesFlag = Bool false;
config Main.shortFlag // instance
index URL

Display package names only

XDCscript usage meta-domain
var params = new Main.Params;
...
params.shortFlag = Bool false;
config Main.verboseFlag // instance
index URL

Print informative messages during execution

XDCscript usage meta-domain
var params = new Main.Params;
...
params.verboseFlag = Bool false;
config Main.xmlFlag // instance
index URL

Return a Results struct as XML

XDCscript usage meta-domain
var params = new Main.Params;
...
params.xmlFlag = Bool false;
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:36 GMT


module xdc.tools.path.Main

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    package xdc.tools.path;
    13
    14    /*!
    15     *  ======== xdc.tools.path.Main ========
    16     *  Package Repository Path Display Tool
    17     *
    18     *  This tool displays the packages located along the specified package
    19     *  repository path.  Repositories can be specified by explicitly naming
    20     *  them via the `-Pr` option or implicitly by not passing `-Pr`; in
    21     *  this case, the set of repositories searched corresponds to the set of
    22     *  repositories defined by the current package path:
    23     *  @p(code)
    24     *      $XDCPATH;$XDCROOT/packages;^
    25     *  @p
    26     *
    27     *  where `$XDCPATH` is the value of the the user settable prefix of
    28     *  the package path, `$XDCROOT` is the installation directory of the
    29     *  XDC tools, and `^` is the repository of the package in the current
    30     *  working directory (if it exists).
    31     *
    32     *  @a(Examples)
    33     *
    34     *    1. To display information about the packages on the package path
    35     *    (in this example, the package path is just `C:/xdc-o00/packages`):
    36     *  @p(code)
    37     *    xs xdc.tools.path
    38     *  @p
    39     *
    40     *    Output:
    41     *  @p(code)
    42     *    Package Name:      gnu.gdb.jserver
    43     *    Repository:        C:/xdc-o00/packages
    44     *    Release Name:      gnu_gdb_jserver
    45     *    Label:             default
    46     *    Compatibility Key: 1, 0, 0, 0, 87
    47     *    Date:              11/20/2006  20:38
    48     *
    49     *    Package Name:      gnu.targets
    50     *    Repository:        C:/xdc-o00/packages
    51     *    Release Name:      gnu_targets
    52     *    Label:             default
    53     *    Compatibility Key: 1, 0, 0, 0, 194
    54     *    Date:              11/20/2006  20:38
    55     *
    56     *  @p
    57     *
    58     *    2. To display the names of the packages on the package path
    59     *    (in this example, the package path is just `C:/xdc-o00/packages`):
    60     *  @p(code)
    61     *    xs xdc.tools.path -n
    62     *  @p
    63     *
    64     *    Output:
    65     *  @p(code)
    66     *    gnu.gdb.jserver
    67     *    gnu.targets
    68     *    gnu.targets.rts470MV
    69     *    gnu.targets.rts470uC
    70     *    gnu.targets.rts5
    71     *
    72     *  @p
    73     *
    74     *    3. To simply, echo the current package path:
    75     *  @p(code)
    76     *    xs xdc.tools.path -p
    77     *  @p
    78     *
    79     *    Output:
    80     *  @p(code)
    81     *    C:/xdc-o00/packages
    82     *  @p
    83     *
    84     *    4. To display information about the packages "rooted" in the repository
    85     *    `C:/CCStudio_v3.3/bios_5_31/packages`:
    86     *  @p(code)
    87     *    xs xdc.tools.path -Pr C:/CCStudio_v3.3/bios_5_31/packages
    88     *  @p
    89     *
    90     *    Output:
    91     *  @p(code)
    92     *    Package Name:      ti.platforms.dsk5402
    93     *    Repository:        C:/CCStudio_v3.3/bios_5_31/packages
    94     *    Release Name:      ti_platforms_dsk5402
    95     *    Label:             default
    96     *    Compatibility Key: 1, 0, 0, 24
    97     *    Date:              05/11/2006  19:10
    98     *
    99     *    Package Name:      ti.platforms.dsk5416
   100     *    Repository:        C:/CCStudio_v3.3/bios_5_31/packages
   101     *    Release Name:      ti_platforms_dsk5416
   102     *    Label:             default
   103     *    Compatibility Key: 1, 0, 0, 24
   104     *    Date:              05/11/2006  19:10
   105     *
   106     *    Package Name:      ti.platforms.dsk5510
   107     *    Repository:        C:/CCStudio_v3.3/bios_5_31/packages
   108     *    Release Name:      ti_platforms_dsk5510
   109     *    Label:             default
   110     *    Compatibility Key: 1, 0, 0, 24
   111     *    Date:              05/11/2006  19:10
   112     *
   113     *  @p
   114     *
   115     *    5. To display the names of all packages in or below the directory
   116     *    `C:/CCStudio_v3.3/bios_5_31/packages`:
   117     *  @p(code)
   118     *    xs xdc.tools.path -n -PR C:/CCStudio_v3.3/bios_5_31/packages
   119     *  @p
   120     *
   121     *    Output:
   122     *  @p(code)
   123     *    ti.platforms.dsk5402
   124     *    ti.platforms.dsk5416
   125     *    ti.platforms.dsk5510
   126     *    ti.platforms.dsk6211
   127     *
   128     *  @p
   129     *
   130     *  @see xdc.tools.path
   131     */
   132    metaonly module Main inherits xdc.tools.ICmd {
   133
   134        override config String usage[] = [
   135           '[-n] [-x] [-v] [-H header] [-p] [-c] [-P package_base_dir ...|-Pr repository ...|-PR directory ...]'
   136        ];
   137
   138        /*!
   139         *  ======== Pkg ========
   140         *  struct used for xml package info
   141         */
   142        @XmlDtd
   143        metaonly struct Pkg {
   144            String name;
   145            String repository;
   146            String release;
   147            String label;
   148            String key;
   149            String date;
   150            String providerId;
   151            String originalProviderId;
   152            String producerId;
   153        }
   154
   155        @XmlDtd
   156        metaonly struct CheckResults {
   157            String repository;
   158            String warnings[];
   159        }
   160
   161        /*!
   162         *  ======== Results ========
   163         *  return value for xml package info
   164         */
   165        @XmlDtd
   166        metaonly struct Results {
   167            String header;     /*! user-specified header */
   168            String path;       /*! package path */
   169            Pkg pkg[];         /*! array of packages */
   170            CheckResults checkResults[];
   171        }
   172
   173        /*!
   174         *  ======== NameResults ========
   175         *  return value for xml package names
   176         */
   177        @XmlDtd
   178        metaonly struct NameResults {
   179            String header;     /*! user-specified header */
   180            String path;       /*! package path */
   181            String name[];     /*! array of names */
   182            CheckResults checkResults[];
   183        }
   184
   185        /*!
   186         *  ======== PathResults ========
   187         *  return value for xml package path
   188         */
   189        @XmlDtd
   190        metaonly struct PathResults {
   191            String header;     /*! user-specified header */
   192            String path;       /*! package path */
   193            CheckResults checkResults[];
   194        }
   195
   196        /*!
   197         *  ======== DirResults ========
   198         *  return value for xml directory echo
   199         */
   200        @XmlDtd
   201        metaonly struct DirResults {
   202            String header;     /*! user-specified header */
   203            String dir[];      /*! array of package base directories */
   204            CheckResults checkResults[];
   205        }
   206
   207    instance:
   208
   209        /*!
   210         * Echo path
   211         */
   212        @CommandOption('p')
   213        config Bool pathFlag = false;
   214
   215        /*!
   216         * Display package names only
   217         */
   218        @CommandOption('n')
   219        config Bool shortFlag = false;
   220
   221        /*!
   222         * Return an array of strings
   223         */
   224        @CommandOption('a')
   225        config Bool arrFlag = false;
   226
   227        /*!
   228         * Return a Results struct as XML
   229         */
   230        @CommandOption('x')
   231        config Bool xmlFlag = false;
   232
   233        /*!
   234         * Print informative messages during execution
   235         */
   236        @CommandOption('v')
   237        config Bool verboseFlag = false;
   238
   239        /*!
   240         * Header label
   241         */
   242        @CommandOption('H')
   243        config String header = null;
   244
   245        /*!
   246         * Use specified directory args instead of xdc.path
   247         */
   248        @CommandOption('-Pr,d')
   249        config Bool repositoriesFlag = false;
   250
   251        /*!
   252         * Recursively find all packages
   253         *
   254         * Recursively descend into specified directories and find every
   255         * package, including packages whose repository is not one of
   256         * the specified directories.
   257         */
   258        @CommandOption('-PR')
   259        config Bool recurseFlag = false;
   260
   261        /*!
   262         * Only display information for the package directories
   263         */
   264        @CommandOption('-P')
   265        config Bool directoriesFlag = false;
   266
   267        /*!
   268         * Check repositories for possible errors
   269         */
   270        @CommandOption('c,--checkpath')
   271        config Bool checkFlag = false;
   272
   273    }
   274
   275    /*
   276     *  @(#) xdc.tools.path; 1, 0, 0,223; 10-28-2012 21:40:56; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
   277     */
   278


package xdc.tools.path.sg
index URL

Graphical interface to path tool

  • USAGE
  • OPTIONS
  • USAGE
  • DETAILS
  • BUGS
This graphical interactive tool displays the packages located along any specified package repository path. [ more ... ]
XDCspec declarations sourced in xdc/tools/path/sg/package.xdc
requires xdc.tools.sg;
requires xdc.tools.path;
requires xdc.tools.sg.widgets;
package xdc.tools.path.sg [1, 0, 0] {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.path.sg [--help]
    [--packagepath PATH]
OPTIONS
--packagepath
package path to scan for packages
USAGE
    xs xdc.tools.path.sg [--packagepath PATH]
DETAILS
This graphical interactive tool displays the packages located along any specified package repository path.
At startup, this tool shows the packages located along the current package path; i.e.,
      $XDCPATH;$XDCROOT/packages;^
where $XDCPATH is the value of the the user settable prefix of the package path, $XDCROOT is the installation directory of the XDC tools, and ^ is the repository of the package in the current working directory (if it exists). To specify a package path other than the current package path, use the --packagepath option. Only semicolon delimited canonical paths should be specifed as arguments with the --packagepath option. Environment variables such as $XDCROOT and special designators such as '^' should not be used.
BUGS
This tool scans all packages available along the current package path before displaying the user interface. So, a repository in the package path that contains a large number of sub-directories, such as '/', causes very long delays before the user interface is displayed.
While it is easy to see that you should not put '/' in the package path, it is less obvious that installing a package at '/' has the same effect.
generated on Thu, 08 Nov 2012 02:13:36 GMT


package xdc.tools.path.sg

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.tools.sg;
    13    requires xdc.tools.path;
    14    requires xdc.tools.sg.widgets;
    15
    16    /*
    17     *  ======== xdc.tools.path.sg ========
    18     *  Graphical front-end to the path tool
    19     */
    20    package xdc.tools.path.sg [1, 0, 0]
    21    {
    22        module Main;
    23    }
    24    /*
    25     *  @(#) xdc.tools.path.sg; 1, 0, 0,223; 10-28-2012 21:41:01; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    26     */
    27


module xdc.tools.path.sg.Main

metaonly module xdc.tools.path.sg.Main
index URL

Command implementation

  • USAGE
  • DETAILS
  • BUGS
  • XDCscript usage
  • Individual elements
This graphical interactive tool displays the packages located along any specified package repository path. [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/path/sg/Main.xdc
var Main = xdc.useModule('xdc.tools.path.sg.Main');
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        '[--packagepath PATH]'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.pathArg// package path to scan for packages = String null;
per-instance functions
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
USAGE
    xs xdc.tools.path.sg [--packagepath PATH]
DETAILS
This graphical interactive tool displays the packages located along any specified package repository path.
At startup, this tool shows the packages located along the current package path; i.e.,
      $XDCPATH;$XDCROOT/packages;^
where $XDCPATH is the value of the the user settable prefix of the package path, $XDCROOT is the installation directory of the XDC tools, and ^ is the repository of the package in the current working directory (if it exists). To specify a package path other than the current package path, use the --packagepath option. Only semicolon delimited canonical paths should be specifed as arguments with the --packagepath option. Environment variables such as $XDCROOT and special designators such as '^' should not be used.
BUGS
This tool scans all packages available along the current package path before displaying the user interface. So, a repository in the package path that contains a large number of sub-directories, such as '/', causes very long delays before the user interface is displayed.
While it is easy to see that you should not put '/' in the package path, it is less obvious that installing a package at '/' has the same effect.
config Main.usage // module-wide
index URL

Usage for this command

XDCscript usage meta-domain
Main.usage = String[] [
    '[--packagepath PATH]'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.pathArg = String null;
    // package path to scan for packages
config Main.pathArg // instance
index URL

package path to scan for packages

XDCscript usage meta-domain
var params = new Main.Params;
...
params.pathArg = String null;
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:36 GMT


module xdc.tools.path.sg.Main

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== Main ========
    14     *  Graphical interface to path tool
    15     *
    16     *  This graphical interactive tool displays the packages located along any
    17     *  specified package repository path.
    18     *
    19     *  At startup, this tool shows the packages located along the current package
    20     *  path; i.e.,
    21     *  @p(code)
    22     *      $XDCPATH;$XDCROOT/packages;^
    23     *  @p
    24     *
    25     *  where `$XDCPATH` is the value of the the user settable prefix of the
    26     *  package path, `$XDCROOT` is the installation directory of the XDC tools,
    27     *  and `^` is the repository of the package in the current working directory
    28     *  (if it exists). To specify a package path other than the current package
    29     *  path, use the --packagepath option. Only semicolon delimited canonical
    30     *  paths should be specifed as arguments with the --packagepath option.
    31     *  Environment variables such as $XDCROOT and special designators such as
    32     *  '^' should not be used.
    33     *
    34     *  @b(Usage)
    35     *  @p(code)
    36     *    xs xdc.tools.path.sg [--packagepath PATH]
    37     *  @p
    38     *
    39     *  @a(Bugs)
    40     *
    41     *  This tool scans all packages available along the current
    42     *  package path before displaying the user interface.  So, a repository in
    43     *  the package path that contains a large number of sub-directories, such
    44     *  as '/', causes very long delays before the user interface is displayed.
    45     *
    46     *  While it is easy to see that you should not put '/' in the package path,
    47     *  it is less obvious that installing a package at '/' has the same effect.
    48     */
    49    metaonly module Main inherits xdc.tools.ICmd {
    50
    51        override config String usage[] = [
    52           '[--packagepath PATH]'
    53        ];
    54
    55        /*!
    56         *  ======== createPartControl ========
    57         *  @_nodoc
    58         */
    59        function createPartControl(parent);
    60
    61    instance:
    62
    63        //! package path to scan for packages
    64        @CommandOption('packagepath')
    65        config string pathArg = null;
    66
    67    }
    68    /*
    69     *  @(#) xdc.tools.path.sg; 1, 0, 0,223; 10-28-2012 21:41:00; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    70     */
    71


package xdc.tools.product
index URL

Interfaces for products contributing RTSC packages

XDCspec declarations sourced in xdc/tools/product/package.xdc
package xdc.tools.product [1, 0, 0] {
    interface IProduct;
    // Interface specifying product details
    interface IProductTemplate;
    // Interface to provide examples for a product
    interface IProductView;
    // Define a product as a logical group of RTSC modules
}
generated on Thu, 08 Nov 2012 02:13:37 GMT


package xdc.tools.product

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== xdc.tools.product ========
    14     *  Interfaces for products contributing RTSC packages
    15     */
    16    package xdc.tools.product [1, 0, 0] {
    17        interface IProductView;
    18        interface IProduct;
    19        interface IProductTemplate;
    20    }
    21    /*
    22     *  @(#) xdc.tools.product; 1, 0, 0,74; 10-28-2012 21:41:13; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    23     */
    24


interface xdc.tools.product.IProduct

metaonly interface xdc.tools.product.IProduct
index URL

Interface specifying product details

This interface allows products describe themselves for the benefit of development tools such as IDE's. For example, a tool can read the information provided by a product that implements this interface and generate an eclipse plugin that leverages the product's "resources". [ more ... ]
XDCspec summary sourced in xdc/tools/product/IProduct.xdc
metaonly interface IProduct { ...
XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
package xdc.tools.product;
metaonly interface IProduct {
module-wide constants & types
    metaonly struct HelpToc// Help table of contents (TOC) element {
        String label// Help element description;
        String filePath// Path to help doc;
        Bool tocFile// Indicates whether element is a TOC file;
    };
    metaonly struct MacroDescriptor// Macro Descriptor structure {
        String name// Macro name;
        String desc// Macro description;
    };
    metaonly struct PluginDescriptor// Plugin Descriptor structure {
        String id// Plugin id;
        String version// Plugin version;
        String path// Plugin path;
    };
    metaonly struct Target// Structure containing information on RTSC targets {
        String deviceNamePattern// Device name regex eg. MSP430*;
        String deviceFamilyPattern// Device family regex eg. C6*;
        String compilerOptsPattern// Compiler opts regx; e.g. .*-me .*;
        String packageName// Package containing RTSC target;
        String baseTargetName// Name of RTSC target module;
    };
    metaonly struct UrlDescriptor// URL Descriptor structure {
        String url// Uniform Resource Locator(URL);
        String text// Summary text for the URL;
        String targetText// (optional) Summary for target portion;
    };
module-wide config parameters
    config String bundleName// Product bundle name;
    config String companyName// Name of company releasing product;
    config String copyRightNotice// Copyright notice for product;
    config String docsLocArr// Directories containing documents in the product[];
    config Bool exclusive// This product is a singlton = false;
    config IProduct.PluginDescriptor externalPlugins// External plugins delivered with the product[];
    config String externalRequirements// External plugins required by this product[];
    config IProduct.HelpToc helpTocArr// Array of table of contents elements in product[];
    config String id// A unique product id;
    config IProduct.UrlDescriptor licenseDescriptor// License information for product;
    config IProduct.MacroDescriptor macro// Macro associated with the product;
    config String name// Product name;
    config String otherFiles// Array of paths to files that describe the product[];
    config IProduct.UrlDescriptor productDescriptor// Product description;
    config String productViewModule// Name of module implementing xdc.tools.product.IProductView;
    config String projectSpecPath// Directory containing project spec files = "resources";
    config String repositoryArr// Repositories contained in the product[];
    config IProduct.Target targetArr// RTSC target modules contained in product[];
    config String templateModule// Name of module implementing xdc.tools.product.IProductTemplate;
    config String tocIndexFile// Top level index file referred in table of contents;
    config IProduct.UrlDescriptor updateSite// Update site for product;
    config String version// Product version;
}
DETAILS
This interface allows products describe themselves for the benefit of development tools such as IDE's. For example, a tool can read the information provided by a product that implements this interface and generate an eclipse plugin that leverages the product's "resources".
By expressing the product's information in this interface, a product can be delivered into multiple development tools without explicit knowledge of these tools. For example, an online "product repository" can extract sufficient information from this interface to enable it to provide a searchable catalog of interesting products.
This is an experimental interface and is subject to change
struct IProduct.HelpToc
index URL

Help table of contents (TOC) element

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct HelpToc {
    String label;
    // Help element description
    String filePath;
    // Path to help doc
    Bool tocFile;
    // Indicates whether element is a TOC file
};
FIELDS
label — Summary description of help element which is displayed in the global table of contents.
filePath — Relative path to help documentation file or a secondary table of contents file or a URL. Relative paths are relative to the directories specified in docsLocArr; files are searched for, in order, within each directory and the first file found that matches the name is used.
tocFile — Flag indicates whether the element is a table of contents (TOC) file. Tools may process TOC files in a special way. For example, a tool to generate eclipse plugins must copy the TOC file to the plugin folder for integrating with eclipse help.
DETAILS
A help TOC element defines a file, URL, or a secondary table of contents that is referenced from a global table of contents.
struct IProduct.MacroDescriptor
index URL

Macro Descriptor structure

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct MacroDescriptor {
    String name;
    // Macro name
    String desc;
    // Macro description
};
struct IProduct.PluginDescriptor
index URL

Plugin Descriptor structure

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct PluginDescriptor {
    String id;
    // Plugin id
    String version;
    // Plugin version
    String path;
    // Plugin path
};
FIELDS
id — Plugin id
version — Plugin version
path — Path to plugin relative to IProduct implementation
struct IProduct.Target
index URL

Structure containing information on RTSC targets

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct Target {
    String deviceNamePattern;
    // Device name regex eg. MSP430*
    String deviceFamilyPattern;
    // Device family regex eg. C6*
    String compilerOptsPattern;
    // Compiler opts regx; e.g. .*-me .*
    String packageName;
    // Package containing RTSC target
    String baseTargetName;
    // Name of RTSC target module
};
FIELDS
deviceNamePattern — A regular expression for device names
deviceFamilyPattern — A regular expression for device families
packageName — The name of a package containing a target module that can be used with the devices that match the device name and family patterns
baseTargetName — The name of the module (without the package prefix) in the package named by packageName.
DETAILS
Products may specify the mapping between device names and/or device family names and a RTSC target module.
This information is leveraged by tools to derive an appropriate RTSC target when given a device name, device family, endiness, and OMF selection (COFF verses ELF). In particular, if the device name and family name match deviceNamePattern and deviceFamilyPattern, the target name generated will be:
      <packageName>[.elf].<baseTargetName>[_big_endian]
where <packageName> and <baseTargetName> are the strings specified by the corespondingly named fields of this structure, and the strings ".elf" and "_big_endian" are added as necessary.
Suppose, for example, a product specifies the following target mapping:
  {
      deviceNamePattern:   "MSP430F5.*",
      deviceFamilyPattern: "MSP430.*",
      packageName:         "ti.targets.msp430",
      baseTargetName:      "MSP430X"
  }
If the device specified is "MSP430F5529", the family is "MSP430", and the OMF is COFF, the generated target will be:
      ti.targets.msp430.MSP430X
On the other hand, if the OMF is ELF the target will be:
      ti.targets.msp430.elf.MSP430X
struct IProduct.UrlDescriptor
index URL

URL Descriptor structure

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct UrlDescriptor {
    String url;
    // Uniform Resource Locator(URL)
    String text;
    // Summary text for the URL
    String targetText;
    // (optional) Summary for target portion
};
FIELDS
url — Uniform Resource Locator(URL)
text — Summary text for the URL
targetText — Optional summary text for any target content portion
config IProduct.bundleName // module-wide
index URL

Product bundle name

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String bundleName;
DETAILS
Product bundle name is embedded in the top level folder name of the product. Example: The top level folder for XDCtools version 3.16.02.31-eng is xdctools_3_16_02_31-eng. In this case the bundle name is xdctools. The bundle name is used by tools to discover the product installed on a filesystem.
config IProduct.companyName // module-wide
index URL

Name of company releasing product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String companyName;
DETAILS
Example : "Texas Instruments"
config IProduct.copyRightNotice // module-wide
index URL

Copyright notice for product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String copyRightNotice;
config IProduct.docsLocArr // module-wide
index URL

Directories containing documents in the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String docsLocArr[];
DETAILS
Directories are specified relative to the product installation directory. These directories are searched when resolving URI links to specific pages within the docs.
config IProduct.exclusive // module-wide
index URL

This product is a singlton

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config Bool exclusive = false;
DETAILS
This flag indicates whether multiple versions of this product are accessable within the IDE or whether only the latest version is available.
When flag is set to true it indicates that only one version of the product can be active in the system. Otherwise the system can handle multiple versions of the same product.
config IProduct.externalPlugins // module-wide
index URL

External plugins delivered with the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.PluginDescriptor externalPlugins[];
config IProduct.externalRequirements // module-wide
index URL

External plugins required by this product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String externalRequirements[];
config IProduct.helpTocArr // module-wide
index URL

Array of table of contents elements in product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.HelpToc helpTocArr[];
DETAILS
Tools generating table of contents are required to preserve the order of elements specified in this array
config IProduct.id // module-wide
index URL

A unique product id

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String id;
DETAILS
For example, product developers may choose to follow namespace conventions for Java packages or Eclipse plugins to specify a unique id like org.eclipse.rtsc.xdctools.product.
config IProduct.licenseDescriptor // module-wide
index URL

License information for product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.UrlDescriptor licenseDescriptor;
VALUES
url — field should contain the URL containing the license text.
text — field should contain a summary description of the license
config IProduct.macro // module-wide
index URL

Macro associated with the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.MacroDescriptor macro;
DETAILS
Product macros are often used in IDEs for providing portable build environments. A unique macro name should be selected for the product.
config IProduct.name // module-wide
index URL

Product name

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String name;
DETAILS
String containing product name eg. System BIOS
config IProduct.otherFiles // module-wide
index URL

Array of paths to files that describe the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String otherFiles[];
DETAILS
A product may wish to supply files that describing certain aspects of itself. For example a product may provide text, images and video files that provide branding information for the product. These files may then be consumed by tools like IDE's via hooks defined in the IDE framework.
The source file path is defined relative to the directory containing the implementation of IProduct. All files are copied to the base directory of the plugin; e.g., "../branding/about.ini" is copied to "about.ini" at the top of the plugin.
File names that begin with the prefix "tc:" are copied into "target content" plugin whereas file names with any other prefix (such as "ui:" or no prefix) are copied into the "IDE plugin".
config IProduct.productDescriptor // module-wide
index URL

Product description

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.UrlDescriptor productDescriptor;
VALUES
url — the url field should contain the URL of the organization releasing the product.
text — the text field should contain summary description of the target content portion of the product. Alternate text for the UI portion can be specified via productUIDescription`.
config IProduct.productViewModule // module-wide
index URL

Name of module implementing xdc.tools.product.IProductView

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String productViewModule;
DETAILS
Products must provide a module that implements the xdc.tools.product.IProductView interface. This module defines the "top-level" modules that are visible to the user and must be delivered in the repositories defined in repositoryArr.
config IProduct.projectSpecPath // module-wide
index URL

Directory containing project spec files

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String projectSpecPath = "resources";
DETAILS
This path is relative to the product install location.
config IProduct.repositoryArr // module-wide
index URL

Repositories contained in the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String repositoryArr[];
DETAILS
Repositories are specified relative to the product installation directory.
config IProduct.targetArr // module-wide
index URL

RTSC target modules contained in product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.Target targetArr[];
DETAILS
The RTSC target modules should be delivered in the repositories defined in repositoryArr
config IProduct.templateModule // module-wide
index URL

Name of module implementing xdc.tools.product.IProductTemplate

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String templateModule;
DETAILS
Products that deliver examples provide a module that implements the xdc.tools.product.IProductTemplate interface. This module must be delivered in one of the repositories defined in repositoryArr.
config IProduct.tocIndexFile // module-wide
index URL

Top level index file referred in table of contents

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String tocIndexFile;
config IProduct.updateSite // module-wide
index URL

Update site for product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.UrlDescriptor updateSite;
VALUES
url — the url field should contain the URL containing product upgrades.
text — the text field should contain summary description of the update site
config IProduct.version // module-wide
index URL

Product version

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String version;
DETAILS
The product version should follow the format -major.minor.service.qualifier where major,minor and service are integers and qualifier is a string. Example - 3.16.02.31-eng.
Products may specify their own guidelines for updating major,minor,service and qualifier portions of the version number as long as they are unique for the product. Products may also choose to follow popular versioning conventions like those followed for versioning Eclipse plugins.
generated on Thu, 08 Nov 2012 02:13:37 GMT


interface xdc.tools.product.IProduct

     1    /*
     2     *  Copyright (c) 2009 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== IProduct ========
    15     *  Interface specifying product details.
    16     *
    17     *  This interface allows products describe themselves for the benefit
    18     *  of development tools such as IDE's.  For example, a tool
    19     *  can read the information provided by a product that implements this
    20     *  interface and generate an eclipse plugin that leverages the product's
    21     *  "resources".
    22     *
    23     *  By expressing the product's information in this interface, a product
    24     *  can be delivered into multiple development tools without explicit
    25     *  knowledge of these tools.  For example, an online "product repository"
    26     *  can extract sufficient information from this interface to enable it
    27     *  to provide a searchable catalog of interesting products.
    28     *
    29     *  This is an experimental interface and is subject to change
    30     */
    31    metaonly interface IProduct
    32    {
    33        /*!
    34         *  ======== HelpToc ========
    35         *  Help table of contents (TOC) element
    36         *
    37         *  A help TOC element defines a file, URL, or a secondary table of
    38         *  contents that is referenced from a global table of contents.
    39         *
    40         *  @field(label)    Summary description of help element which
    41         *                   is displayed in the global table of contents.
    42         *  @field(filePath) Relative path to help documentation file or a
    43         *                   secondary table of contents file or a URL. Relative
    44         *                   paths are relative to the directories specified in
    45         *                   {@link #docsLocArr}; files are searched for, in
    46         *                   order, within each directory and the first file
    47         *                   found that matches the name is used.
    48         *  @field(tocFile)  Flag indicates whether the element is a
    49         *                   table of contents (TOC) file. Tools may
    50         *                   process TOC files in a special way. For
    51         *                   example, a tool to generate eclipse plugins
    52         *                   must copy the TOC file to the plugin folder
    53         *                   for integrating with eclipse help.
    54         */
    55        struct HelpToc {
    56            String label;       /*! Help element description */
    57            String filePath;    /*! Path to help doc */
    58            Bool   tocFile;     /*! Indicates whether element is a TOC file  */
    59        };
    60
    61        /*!
    62         *  ========= Target ==============
    63         *  Structure containing information on RTSC targets
    64         *
    65         *  Products may specify the mapping between device names and/or device
    66         *  family names and a RTSC target module.
    67         *
    68         *  This information is leveraged by tools to derive an appropriate
    69         *  RTSC target when given a device name, device family, endiness, and
    70         *  OMF selection (COFF verses ELF).  In particular, if the device name
    71         *  and family name match `deviceNamePattern` and
    72         *  `deviceFamilyPattern`, the target name generated will be:
    73         *  @p(code)
    74         *      <packageName>[.elf].<baseTargetName>[_big_endian]
    75         *  @p
    76         *  where `<packageName>` and `<baseTargetName>` are the strings specified
    77         *  by the corespondingly named fields of this structure, and the strings
    78         *  `".elf"` and `"_big_endian"` are added as necessary.
    79         *
    80         *  Suppose, for example, a product specifies the following target mapping:
    81         *  @p(code)
    82         *  {
    83         *      deviceNamePattern:   "MSP430F5.*",
    84         *      deviceFamilyPattern: "MSP430.*",
    85         *      packageName:         "ti.targets.msp430",
    86         *      baseTargetName:      "MSP430X"
    87         *  }
    88         *  @p
    89         *  If the device specified is "`MSP430F5529`", the family is "`MSP430`",
    90         *  and the OMF is COFF, the generated target will be:
    91         *  @p(code)
    92         *      ti.targets.msp430.MSP430X
    93         *  @p
    94         *  On the other hand, if the OMF is ELF the target will be:
    95         *  @p(code)
    96         *      ti.targets.msp430.elf.MSP430X
    97         *  @p
    98         *
    99         *  @field(deviceNamePattern)   A regular expression for device names
   100         *  @field(deviceFamilyPattern) A regular expression for device families
   101         *  @field(packageName)         The name of a package containing a
   102         *                              target module that  can be used with
   103         *                              the  devices that match the
   104         *                              device name and family patterns
   105         *  @field(baseTargetName)      The name of the module
   106         *                              (without the package prefix) in
   107         *                              the package named by `packageName`.
   108         */
   109        struct Target {
   110            String deviceNamePattern;   /*! Device name regex eg. MSP430*  */
   111            String deviceFamilyPattern; /*! Device family regex eg. C6* */
   112            String compilerOptsPattern; /*! Compiler opts regx; e.g. .*-me .* */
   113            String packageName;         /*! Package containing RTSC target  */
   114            String baseTargetName;      /*! Name of RTSC target module */
   115        };
   116
   117        /*!
   118         *  ======== UrlDescriptor ========
   119         *  URL Descriptor structure
   120         *
   121         *  @field(url)         Uniform Resource Locator(URL)
   122         *  @field(text)        Summary text for the URL
   123         *  @field(targetText)  Optional summary text for any target content
   124         *                      portion
   125         */
   126        struct UrlDescriptor {
   127            String url;         /*! Uniform Resource Locator(URL) */
   128            String text;        /*! Summary text for the URL */
   129            String targetText;  /*! (optional) Summary for target portion */
   130        };
   131
   132        /*!
   133         *  ======== PluginDescriptor ========
   134         *  Plugin Descriptor structure
   135         *
   136         *  @field(id)      Plugin id
   137         *  @field(version) Plugin version
   138         *  @field(path)    Path to plugin relative to `IProduct` implementation
   139         */
   140        struct PluginDescriptor {
   141            String id;          /*! Plugin id */
   142            String version;     /*! Plugin version */
   143            String path;        /*! Plugin path */
   144        };
   145
   146        /*!
   147         *  ======== MacroDescriptor ========
   148         *  Macro Descriptor structure
   149         */
   150        struct MacroDescriptor {
   151            String name;     /*! Macro name */
   152            String desc;     /*! Macro description */
   153        };
   154
   155        /*!
   156         *  ======== name ========
   157         *  Product name
   158         *
   159         *  String containing product name eg. System BIOS
   160         */
   161        config String name;
   162
   163        /*!
   164         *  ======== id ========
   165         *  A unique product id
   166         *
   167         *  For example, product developers may choose to  follow namespace
   168         *  conventions for Java packages or Eclipse plugins to specify a
   169         *  unique id like `org.eclipse.rtsc.xdctools.product`.
   170         */
   171        config String id;
   172
   173        /*!
   174         *  ======== version ========
   175         *  Product version
   176         *
   177         *  The product version should follow the format
   178         *  -`major.minor.service.qualifier`  where
   179         *  `major`,`minor` and `service` are integers and
   180         *  `qualifier` is a string. Example - 3.16.02.31-eng.
   181         *
   182         *  Products may  specify their own guidelines for
   183         *  updating `major`,`minor`,`service` and `qualifier` portions of the
   184         *  version number as long as they are unique for the product.
   185         *  Products may also choose to follow popular versioning conventions
   186         *  like those followed for versioning Eclipse plugins.
   187         */
   188        config String version;
   189
   190        /*!
   191         *  ======== featureId ========
   192         *  A unique feature id
   193         *
   194         *  @_nodoc - Deprecated
   195         *
   196         *  Feature ids are used by a system to install product upgrades.
   197         *  Typically a system will look at various versions of a
   198         *  feature available in the system and allow the user to upgrade
   199         *  to the latest version. The product developer can use the `featureId`
   200         *  to manage the granularity of product upgrades in a system. For
   201         *  example the version `3.20.0.00` for product
   202         *  `org.eclipse.rtsc.xdctools.product` may have the `featureId`
   203         *  `org.eclipse.rtsc.xdctools.product_3.20`.
   204         *  The product developer may allow the upgrade system to pick up
   205         *  patch releases to `3.20.0.00` release by specifying different
   206         *  versions of the product (eg. 3.20.0.01) with `featureId`
   207         *  `org.eclipse.rtsc.xdctools.product_3.20`
   208         */
   209        config String featureId;
   210
   211        /*!
   212         *  ======== updateSite ========
   213         *  Update site for product
   214         *
   215         *  @field(url) the `url` field should contain the URL containing
   216         *  product upgrades.
   217         *
   218         *  @field(text) the `text` field should contain summary description of
   219         *  the update site
   220         */
   221        config  UrlDescriptor updateSite;
   222
   223        /*!
   224         *  ======== companyName ========
   225         *  Name of company releasing product
   226         *
   227         *  Example : "Texas Instruments"
   228         */
   229        config String companyName;
   230
   231        /*!
   232         *  ======== productDescriptor ========
   233         *  Product description
   234         *
   235         *  @field(url) the `url` field should contain the URL of the organization
   236         *  releasing the product.
   237         *
   238         *  @field(text) the `text` field should contain summary description of
   239         *  the target content portion of the product.  Alternate text for the
   240         *  UI portion can be specified via {@link #productUIDescription}`.
   241         */
   242        config UrlDescriptor productDescriptor;
   243
   244        /*!
   245         *  ======== licenseDescriptor ========
   246         *  License information for product
   247         *
   248         *  @field(url) field should contain the URL containing the
   249         *  license text.
   250         *
   251         *  @field(text) field should contain a summary description of the license
   252         */
   253        config UrlDescriptor licenseDescriptor;
   254
   255        /*!
   256         *  ======== copyRightNotice ========
   257         *  Copyright notice for product
   258         */
   259        config String copyRightNotice;
   260
   261        /*!
   262         *  ======== repositoryArr ========
   263         *  Repositories contained in the product
   264         *
   265         *  Repositories are specified relative to the product installation
   266         *  directory.
   267         */
   268        config String repositoryArr[];
   269
   270        /*!
   271         *  ======== docsLocArr ========
   272         *  Directories containing documents in the product
   273         *
   274         *  Directories are specified relative to the product installation
   275         *  directory.  These directories are searched when resolving URI links
   276         *  to specific pages within the docs.
   277         */
   278        config String docsLocArr[];
   279
   280        /*!
   281         *  ======== templateModule ========
   282         *  Name of module implementing {@link xdc.tools.product.IProductTemplate}
   283         *
   284         *  Products that deliver examples provide a module that implements the
   285         *  {@link xdc.tools.product.IProductTemplate} interface.  This module
   286         *  must be delivered in one of the repositories defined in
   287         *  {@link #repositoryArr}.
   288         */
   289        config String templateModule;
   290
   291        /*!
   292         *  ======== productViewModule ========
   293         *  Name of module implementing {@link xdc.tools.product.IProductView}
   294         *
   295         *  Products must provide a module that implements the
   296         *  {@link xdc.tools.product.IProductView} interface.  This
   297         *  module defines the "top-level" modules that are visible to the user
   298         *  and must be delivered in the repositories defined in
   299         *  {@link #repositoryArr}.
   300         */
   301        config String productViewModule;
   302
   303        /*!
   304         *  ======== bundleName ========
   305         *  Product bundle name
   306         *
   307         *  Product bundle name is embedded in the top level folder name of
   308         *  the product. Example: The top level folder for XDCtools version
   309         *  3.16.02.31-eng is `xdctools_3_16_02_31-eng`. In this case the
   310         *  bundle name is `xdctools`.
   311         *  The bundle name is used by tools to discover the product
   312         *  installed on a filesystem.
   313         */
   314        config String bundleName;
   315
   316        /*!
   317         *  ======== targetArr ========
   318         *  RTSC target modules contained in product
   319         *
   320         *  The RTSC target modules should be delivered
   321         *  in the repositories defined in {@link #repositoryArr}
   322         */
   323        config Target targetArr[];
   324
   325        /*!
   326         *  ======== helpTocArr ========
   327         *  Array of table of contents elements in product
   328         *
   329         *  Tools generating table of contents are required
   330         *  to preserve the order of elements specified in this array
   331         */
   332        config HelpToc helpTocArr[];
   333
   334        /*!
   335         *  ======== tocIndexFile ========
   336         *  Top level index file referred in table of contents
   337         */
   338        config String tocIndexFile;
   339
   340        /*!
   341         *  ======== exclusive ========
   342         *  This product is a singlton
   343         *
   344         *  This flag indicates whether multiple versions of this product are
   345         *  accessable within the IDE or whether only the latest version is
   346         *  available.
   347         *
   348         *  When flag is set to `true` it indicates that only one
   349         *  version of the product can be active in the system. Otherwise
   350         *  the system can handle multiple versions of the same product.
   351         */
   352        config Bool exclusive = false;
   353
   354        /*!
   355         *  ======== otherFiles ========
   356         *  Array of paths to files that describe the product
   357         *
   358         *  A product may wish to supply files that describing certain aspects
   359         *  of itself. For example a product may provide text, images and video
   360         *  files that provide branding information for the product.
   361         *  These files may then be consumed by tools like IDE's via
   362         *  hooks defined in the IDE framework.
   363         *
   364         *  The source file path is defined relative to the directory containing
   365         *  the implementation  of `IProduct`.  All files are copied to the base
   366         *  directory of the plugin; e.g., "../branding/about.ini" is copied to
   367         *  "about.ini" at the top of the plugin.
   368         *
   369         *  File names that begin with the prefix "tc:" are copied into "target
   370         *  content" plugin whereas file names with any other prefix (such as
   371         *  "ui:" or no prefix) are copied into the "IDE plugin".
   372         */
   373        config String otherFiles[];
   374
   375        /*!
   376         *  ======== macro ========
   377         *  Macro associated with the product
   378         *
   379         *  Product macros are often used in IDEs for providing
   380         *  portable build environments. A unique macro name should
   381         *  be selected for the product.
   382         */
   383        config MacroDescriptor macro;
   384
   385        /*!
   386         *  ======== externalPlugins ========
   387         *  External plugins delivered with the product
   388         */
   389        config PluginDescriptor externalPlugins[];
   390
   391        /*!
   392         *  ======== externalRequirements ========
   393         *  External plugins required by this product
   394         */
   395        config String externalRequirements[];
   396
   397        /*!
   398         *  ======== projectSpecPath ========
   399         *  Directory containing project spec files
   400         *
   401         *  This path is relative to the product install location.
   402         */
   403        config String projectSpecPath = "resources";
   404    }
   405    /*
   406     *  @(#) xdc.tools.product; 1, 0, 0,74; 10-28-2012 21:41:13; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
   407     */
   408


interface xdc.tools.product.IProductTemplate

metaonly interface xdc.tools.product.IProductTemplate
index URL

Interface to provide examples for a product

This interface allows products to contribute examples to development environments like IDE's. This is an experimental interface and is subject to change.
XDCspec summary sourced in xdc/tools/product/IProductTemplate.xdc
metaonly interface IProductTemplate { ...
XDCspec declarations sourced in xdc/tools/product/IProductTemplate.xdc
package xdc.tools.product;
metaonly interface IProductTemplate {
module-wide constants & types
    metaonly struct FileDesc// Structure defining properties of a file included in an example {
        String path// path to file;
        Bool excludeFromBuild// exclude from build;
        Bool openOnCreation// open on project creation;
        Bool copyIntoConfiguration// copy into RTSC configuration;
    };
    metaonly struct Filter// Structure defining filter properties for an example {
        String deviceFamily;
        String deviceVariant;
        String deviceId;
        String endianness;
        String toolChain;
        String outputFormat;
    };
    metaonly struct TemplateGroup// TemplateGroup structure {
        String id;
        String name;
        String description;
        String groups[];
    };
    metaonly struct TemplateInfo// TemplateInfo structure {
        String title// Title of this example;
         IProductTemplate.FileDesc fileList// List of files along with properties for this example[];
        String description// Description of this example;
        String target// RTSC target;
        String platform// RTSC platform;
        String buildProfile// RTSC build profile;
        String linkerCommandFile// Linker command file for this example;
        String compilerBuildOptions// Special compiler options for this example;
        String linkerBuildOptions// Special linker options for this example;
        String requiredProducts// List of products required to build this example[];
        String groups// Array of group ids for groups containing this example[];
        Bool legacyTcf;
        String configuroOptions// configuro options;
        Bool configOnly// Indicates whether only a RTSC configuration project should be created for this example;
        Bool isHybrid// Indicates whether application and configuration content exists in one project;
         IProductTemplate.Filter filterArr// Array of filters for this example[];
        String options// Comma separated attributes for the example;
    };
module-wide config parameters
    config IProductTemplate.TemplateInfo templateArr// Examples contained in the product[];
    config IProductTemplate.TemplateGroup templateGroupArr// Array of template group ids[] = [ ];
}
struct IProductTemplate.FileDesc
index URL

Structure defining properties of a file included in an example

XDCspec declarations sourced in xdc/tools/product/IProductTemplate.xdc
metaonly struct FileDesc {
    String path;
    // path to file
    Bool excludeFromBuild;
    // exclude from build
    Bool openOnCreation;
    // open on project creation
    Bool copyIntoConfiguration;
    // copy into RTSC configuration
};
FIELDS
path — Path to file relative to the package containing the implementation of IProductTemplate
excludeFromBuild — Flag indicating whether file should be excluded from build inside an IDE project
openOnCreation — Flag indicating whether the file should be opened when a project containing the example file is created by the IDE.
copyIntoConfiguration — Flag indicating whether the file should be copied into RTSC configuration. This flag applies only when the isHybrid flag of the template is set to false.
struct IProductTemplate.Filter
index URL

Structure defining filter properties for an example

XDCspec declarations sourced in xdc/tools/product/IProductTemplate.xdc
metaonly struct Filter {
    String deviceFamily;
    String deviceVariant;
    String deviceId;
    String endianness;
    String toolChain;
    String outputFormat;
};
FIELDS
deviceFamily — String indicating the device family eg. "MSP430","C6000"
deviceVariant — String indicating device variant eg. "C674X", "CortexA8"
deviceId — String indicating the device part number eg. "TMS320C6747"
endianness — String indicating the device endianness eg. "little", "big"
toolChain — String indicating the tool chain eg. "TI", "GNU"
outputFormat — String indicating the object file format eg. "COFF", "ELF"
DETAILS
This structure allows products to define constraints for their examples. IDEs use the Filter properties of an example to decide whether the example should be presented to the user.
The filter is evaluated by performing an 'AND' operation on its individual elements. In other words, all the defined elements must evaluate to true for the filter to evaluate to true.
Each example typically defines an array of more than one filter; see TemplateInfo.filterArr. This filter array is evaluated using the 'OR' operation. In other words, the example is presented to the user when any one of the filters evaluate to true.
Each filter property below allows the user to define the NOT property by inserting a "~" character at the start of the string. For example, if the deviceFamily field is set to "~MSP430", the example will be displayed for all device families except "MSP430".
struct IProductTemplate.TemplateGroup
index URL

TemplateGroup structure

XDCspec declarations sourced in xdc/tools/product/IProductTemplate.xdc
metaonly struct TemplateGroup {
    String id;
    String name;
    String description;
    String groups[];
};
FIELDS
id — Unique id for the template group
name — Name of the group
description — Description of the group
groups — Array of group ids used to specify membership of other groups.
DETAILS
This structure may be used to define a hierarchy of examples for the product. Examples may be logically organized into groups with an unique id and may specify membership of other groups by referring to their ids in the groups array. In this manner the example producer can define a tree topology of examples for their product. Once the template groups are defined, the individual examples may specify their membership within a template group in the groups array of TemplateInfo. The example provider may specify all the defined groups for their product in templateGroupArr.
struct IProductTemplate.TemplateInfo
index URL

TemplateInfo structure

XDCspec declarations sourced in xdc/tools/product/IProductTemplate.xdc
metaonly struct TemplateInfo {
    String title;
    // Title of this example
     IProductTemplate.FileDesc fileList[];
    // List of files along with properties for this example
    String description;
    // Description of this example
    String target;
    // RTSC target
    String platform;
    // RTSC platform
    String buildProfile;
    // RTSC build profile
    String linkerCommandFile;
    // Linker command file for this example
    String compilerBuildOptions;
    // Special compiler options for this example
    String linkerBuildOptions;
    // Special linker options for this example
    String requiredProducts[];
    // List of products required to build this example
    String groups[];
    // Array of group ids for groups containing this example
    Bool legacyTcf;
    String configuroOptions;
    // configuro options
    Bool configOnly;
    // Indicates whether only a RTSC configuration project should be created for this example
    Bool isHybrid;
    // Indicates whether application and configuration content exists in one project
     IProductTemplate.Filter filterArr[];
    // Array of filters for this example
    String options;
    // Comma separated attributes for the example
};
FIELDS
title — String containing the title of the template
fileList — Array of FileDesc defining the properties of the files contributed by this example.
description — String containing description of example
target — String containing RTSC target
platform — String containing RTSC platform
buildProfile — String containing RTSC build profile
linkerCommandFile — Linker command file for the example. If this is set to the empty string then no linker command file is added by the IDE to the example. If this is not defined then the wizard picks the default linker command file for the selected device.
compilerBuildOptions — Special compiler options required to build template. For example the template may need special -I and -D options to build and these may be specified here.
linkerBuildOptions — Special linker options to build template
requiredProducts — Products required to build this example. Products are identified by their globally unique xdc.tools.product.IProduct.id eg. 'com.ti.bios'. Dependency on a minimum version of a product may be defined in the following manner : <product-id>:<min-version>
groups — Array of strings referring example groups that a particular example may belong. Products may provide examples that are part of an existing example group eg."Empty Projects" that are defined elsewhere. The groups are identified by an unique id.
configOnly — Flag indicating to the IDE whether example contributes only to a RTSC configuration project.
configuroOptions — This string contains options that are passed to xdc.tools.configuro. You must be careful to quote embedded special characters in this string in such a way that they can be directly embedded in an XML file. For example, to pass '-foo "bar"' to configuro you must use the string '-foo &quot;bar&quot;'.
isHybrid — Flag indicating to the IDE whether example contains RTSC configuration and target content files in one project. If this field is set to true then the IDE consuming this example will create one project with all the files. Otherwise multiple projects will be created - one containing the target content and the other containing the RTSC configuration files. This flag is applies only when configOnly flag is set to false.
filterArr — Array of Filter. Used to specify the constraints for a particular example. The filter array is evaluated using an OR operation on the individual array elements. Note that individual elements within a filter is evaluated with the 'AND' operation.
options — Comma separated list of options used to specify various configurable items for this template. For example, the projectspec tools recognizes the following flags: "NPW" - display this example in the New Project Wizard, and "TREX" - display this example in the Resource Explorer
config IProductTemplate.templateArr // module-wide
index URL

Examples contained in the product

XDCspec declarations sourced in xdc/tools/product/IProductTemplate.xdc
config IProductTemplate.TemplateInfo templateArr[];
config IProductTemplate.templateGroupArr // module-wide
index URL

Array of template group ids

XDCspec declarations sourced in xdc/tools/product/IProductTemplate.xdc
config IProductTemplate.TemplateGroup templateGroupArr[] = [ ];
DETAILS
This array may be optionally specified by Products that organize their examples into groups.
generated on Thu, 08 Nov 2012 02:13:37 GMT


interface xdc.tools.product.IProductTemplate

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    package xdc.tools.product;
    13
    14    /*!
    15     *  ======== IProductTemplate ========
    16     *  Interface to provide examples for a product
    17     *
    18     *  This interface allows products to contribute examples to
    19     *  development environments like IDE's. This is an experimental
    20     *  interface and is subject to change.
    21     */
    22    metaonly interface IProductTemplate
    23    {
    24        /*!
    25         *  ======== FileDesc ========
    26         *  Structure defining properties of a file included in an example
    27         *
    28         *  @field(path)                    Path to file relative to the package
    29         *                                  containing the implementation of
    30         *                                  `IProductTemplate`
    31         *  @field(excludeFromBuild)        Flag indicating whether file
    32         *                                  should be excluded from build inside
    33         *                                  an IDE project
    34         *  @field(openOnCreation)          Flag indicating whether the file
    35         *                                  should be opened when a project
    36         *                                  containing the example file is created
    37         *                                  by the IDE.
    38         *  @field(copyIntoConfiguration)   Flag indicating whether the file
    39         *                                  should be copied into RTSC
    40         *                                  configuration. This flag
    41         *                                  applies only when the `isHybrid`
    42         *                                  flag of the
    43         *                                  {@link #TemplateInfo template} is set
    44         *                                  to `false`.
    45         */
    46        struct FileDesc {
    47            String path;                    /*! path to file */
    48            Bool   excludeFromBuild;        /*! exclude from build */
    49            Bool   openOnCreation;          /*! open on project creation */
    50            Bool   copyIntoConfiguration;   /*! copy into RTSC configuration */
    51        };
    52
    53        /*!
    54         *  ======== Filter ========
    55         *  Structure defining filter properties for an example
    56         *
    57         *  This structure allows products to define constraints for their
    58         *  examples. IDEs use the `Filter` properties of an example
    59         *  to decide whether the example should be presented to the user.
    60         *
    61         *  The filter is evaluated by performing an 'AND' operation
    62         *  on its individual elements. In other words, all the defined
    63         *  elements must evaluate to `true` for the filter to evaluate
    64         *  to `true`.
    65         *
    66         *  Each example typically defines an array of more than one filter;
    67         *  see {@link #TemplateInfo TemplateInfo.filterArr}. This filter array
    68         *  is evaluated using the 'OR' operation.  In other words, the example
    69         *  is presented to the user when any one of the filters evaluate
    70         *  to `true`.
    71         *
    72         *  Each filter property below allows the user to define the NOT property
    73         *  by inserting a "~" character at the start of the string. For
    74         *  example, if the deviceFamily field is set to "~MSP430", the example
    75         *  will be displayed for all device families except "MSP430".
    76         *
    77         *  @field(deviceFamily)   String indicating the device family
    78         *                         eg. "MSP430","C6000"
    79         *  @field(deviceVariant)  String indicating device variant
    80         *                         eg. "C674X", "CortexA8"
    81         *  @field(deviceId)       String indicating the device part number
    82         *                         eg. "TMS320C6747"
    83         *  @field(endianness)     String indicating the device endianness
    84         *                         eg. "little", "big"
    85         *  @field(toolChain)      String indicating the tool chain
    86         *                         eg. "TI", "GNU"
    87         *  @field(outputFormat)   String indicating the object file format
    88         *                         eg. "COFF", "ELF"
    89         */
    90        struct Filter {
    91            String deviceFamily;
    92            String deviceVariant;
    93            String deviceId;
    94            String endianness;
    95            String toolChain;
    96            String outputFormat;
    97        };
    98
    99        /*!
   100         *  ======== TemplateInfo ========
   101         *  TemplateInfo structure
   102         *
   103         *  @field(title)             String containing the title of the template
   104         *  @field(fileList)          Array of {@link #FileDesc} defining the
   105         *                            properties of the files contributed by this
   106         *                            example.
   107         *  @field(description)       String containing  description of example
   108         *  @field(target)            String containing RTSC target
   109         *  @field(platform)          String containing RTSC platform
   110         *  @field(buildProfile)      String containing RTSC build profile
   111         *  @field(linkerCommandFile) Linker command file for the example. If
   112         *                            this is set to the empty string then no
   113         *                            linker command file is added by the IDE
   114         *                            to the example. If this is not defined
   115         *                            then the wizard picks the default
   116         *                            linker command file for the selected device.
   117         *  @field(compilerBuildOptions) Special compiler options required to
   118         *                               build template. For example the template
   119         *                               may need special -I and -D options
   120         *                               to build and these may be specified
   121         *                               here.
   122         *  @field(linkerBuildOptions)   Special linker options to build template
   123         *  @field(requiredProducts)  Products required to build this
   124         *                            example. Products are  identified by
   125         *                            their globally unique
   126         *                            {@link xdc.tools.product.IProduct#id}
   127         *                            eg. 'com.ti.bios'. Dependency on a
   128         *                            minimum version of a product may be
   129         *                            defined in the following manner
   130         *                            : <product-id>:<min-version>
   131         *  @field(groups)            Array of strings referring example groups
   132         *                            that a particular example may
   133         *                            belong. Products may
   134         *                            provide examples that are part of an
   135         *                            existing example group eg."Empty Projects"
   136         *                            that are defined elsewhere. The
   137         *                            groups are identified by an unique id.
   138         *  @field(configOnly)        Flag indicating to the IDE
   139         *                            whether example contributes only
   140         *                            to a RTSC configuration project.
   141         *  @field(configuroOptions)  This string contains options that are passed
   142         *                            to `xdc.tools.configuro`.  You must be
   143         *                            careful to quote embedded special characters
   144         *                            in this string in such a way that they can
   145         *                            be directly embedded in an XML file.  For
   146         *                            example, to pass '-foo "bar"' to `configuro`
   147         *                            you must use the string
   148         *                            '-foo &quot;bar&quot;'.
   149         *
   150         *  @field(isHybrid)          Flag indicating to the IDE
   151         *                            whether example contains RTSC
   152         *                            configuration  and target
   153         *                            content files in one project.
   154         *                            If this field is set to `true`
   155         *                            then the IDE consuming this example will
   156         *                            create one project with all the
   157         *                            files. Otherwise multiple projects will
   158         *                            be created - one containing the
   159         *                            target content and the other containing
   160         *                            the RTSC configuration files. This flag
   161         *                            is applies only when `configOnly`
   162         *                            flag is set to `false`.
   163         *  @field(filterArr)         Array of {@link #Filter}. Used to specify
   164         *                            the constraints for a particular
   165         *                            example. The filter array is evaluated using
   166         *                            an OR operation on the individual array
   167         *                            elements. Note that individual elements
   168         *                            within a {@link #Filter filter} is evaluated
   169         *                            with the 'AND' operation.
   170         *
   171         *  @field(options)           Comma separated list of options used to
   172         *                            specify various configurable items for this
   173         *                            template.  For example, the projectspec
   174         *                            tools recognizes the following flags:
   175         *                                "NPW" - display this example in the New
   176         *                                        Project Wizard, and
   177         *                                "TREX" - display this example in the
   178         *                                         Resource Explorer
   179         */
   180        struct TemplateInfo {
   181            String   title;              /*! Title of this example */
   182            FileDesc fileList[];         /*! List of files along with properties
   183                                          *  for this example
   184                                          */
   185            String   description;        /*! Description of this example */
   186            String   target;             /*! RTSC target */
   187            String   platform;           /*! RTSC platform */
   188            String   buildProfile;       /*! RTSC build profile */
   189            String   linkerCommandFile;  /*! Linker command file for this example */
   190            String   compilerBuildOptions; /*! Special compiler options for this example */
   191            String   linkerBuildOptions; /*! Special linker options for this example */
   192            String   requiredProducts[]; /*! List of products required to build
   193                                          *  this example
   194                                          */
   195            String   groups[];           /*! Array of group ids for groups
   196                                          * containing this example */
   197            Bool     legacyTcf;          /* obsolete option */
   198            String   configuroOptions;   /*! configuro options */
   199            Bool     configOnly;         /*! Indicates whether only a RTSC
   200                                          *  configuration project should
   201                                          *  be created for this example.
   202                                          */
   203            Bool     isHybrid;           /*! Indicates whether application and
   204                                          * configuration content exists in
   205                                          * one project
   206                                          */
   207            Filter   filterArr[];        /*! Array of filters for this example */
   208            String   options;            /*! Comma separated attributes for the example */
   209        };
   210
   211        /*!
   212         *  ======== TemplateGroup ========
   213         *  TemplateGroup structure
   214         *
   215         *  This structure may be used to define a hierarchy of examples
   216         *  for the product.  Examples may be logically organized into groups
   217         *  with an unique `id` and may specify membership of other groups
   218         *  by referring to their ids in the `groups` array. In this manner
   219         *  the example producer can define a tree topology of examples for
   220         *  their product.  Once the template groups are defined, the
   221         *  individual examples may specify their membership within a template
   222         *  group in the `groups` array of {@link #TemplateInfo}.  The example
   223         *  provider may specify all the defined groups for their product in
   224         *  {@link #templateGroupArr}.
   225         *
   226         *  @field(id) Unique id for the template group
   227         *  @field(name) Name of the group
   228         *  @field(description) Description of the group
   229         *  @field(groups) Array of group ids used to specify
   230         *                 membership of other groups.
   231         *
   232         */
   233        struct TemplateGroup {
   234            String id;
   235            String name;
   236            String description;
   237            String groups[];
   238        };
   239
   240        /*!
   241         *  ======== templateArr ========
   242         *  Examples contained in the product
   243         */
   244        config TemplateInfo templateArr[];
   245
   246        /*!
   247         *  ======== templateGroupArr ========
   248         *  Array of template group ids
   249         *
   250         *  This array may be optionally specified by Products that
   251         *  organize their examples into groups.
   252         */
   253        config TemplateGroup templateGroupArr[] = [];
   254    }
   255    /*
   256     *  @(#) xdc.tools.product; 1, 0, 0,74; 10-28-2012 21:41:13; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
   257     */
   258


interface xdc.tools.product.IProductView

metaonly interface xdc.tools.product.IProductView
index URL

Define a product as a logical group of RTSC modules

This interface allows a product to define logical groups of RTSC modules delivered with it. Implementations of this interface are typically consumed within development environments like IDE's to render a graphical tree view of the product consisting of these groups. [ more ... ]
XDCspec summary sourced in xdc/tools/product/IProductView.xdc
metaonly interface IProductView { ...
XDCspec declarations sourced in xdc/tools/product/IProductView.xdc
package xdc.tools.product;
metaonly interface IProductView {
module-wide constants & types
    metaonly struct ProductElemDesc// ProductElemDesc structure {
        String elemName// Name of group or module;
        String moduleName// Name of module;
        String iconFileName// Icon file name representing element;
         IProductView.ProductElemDesc elemArray// Array of ProductElemDesc[];
    };
module-wide config parameters
    config String homeModule// Top-level module for this product;
    config String linksToArray// Array of IDs of products accessable from this product's home module[];
module-wide functions
     IProductView.ProductElemDesc getProductDescriptor// Return this product's tree view();
}
DETAILS
This interface allows a product to define logical groups of RTSC modules delivered with it. Implementations of this interface are typically consumed within development environments like IDE's to render a graphical tree view of the product consisting of these groups.
This is an experimental interface and is subject to change.
struct IProductView.ProductElemDesc
index URL

ProductElemDesc structure

XDCspec declarations sourced in xdc/tools/product/IProductView.xdc
metaonly struct ProductElemDesc {
    String elemName;
    // Name of group or module
    String moduleName;
    // Name of module
    String iconFileName;
    // Icon file name representing element
     IProductView.ProductElemDesc elemArray[];
    // Array of ProductElemDesc
};
FIELDS
elemName — Name of element. Elements can be either groups or modules
moduleName — In case of a leaf node this field will contain the module name. For intermediate tree nodes the module name will be set to null
iconFileName — The name of the icon file that is associated with this element. In xdctools 3.23, this path must be relative to the package containing the IProductView implementation.
In xdctools 3.24.01 (or above), this path may be relative or absolute. If it's relative, it's first searched for in the package containing the IProductView implementation module and, if this fails, the relative path is searched via xdc.findFile(). If the icon is still not found, a default icon will be used.
elemArray — Array used to define children of a node.
DETAILS
This structure is used to define the logical tree "view" of a product. This view is composed of elements that are either modules or groups: modules at the leaves of the tree and groups elsewhere.
config IProductView.homeModule // module-wide
index URL

Top-level module for this product

XDCspec declarations sourced in xdc/tools/product/IProductView.xdc
config String homeModule;
DETAILS
The homeModule is a distinguished "top-level" module that is used by GUI's as a starting point, or "home page", to navigate to the other content managed by this product.
config IProductView.linksToArray // module-wide
index URL

Array of IDs of products accessable from this product's home module

XDCspec declarations sourced in xdc/tools/product/IProductView.xdc
config String linksToArray[];
DETAILS
This array of product IDs is used to determine a hierarchical relationship between products and if a product's modules can be reached from another product's home page. If product A "links to" product B, then product B's home page can be closed so long as product A's home page is open.
IProductView.getProductDescriptor() // module-wide
index URL

Return this product's tree view

XDCspec declarations sourced in xdc/tools/product/IProductView.xdc
IProductView.ProductElemDesc getProductDescriptor();
DETAILS
This method is typically invoked by development tools like IDE's to get the product view tree structure.
RETURNS
Returns root node of tree of ProductElemDesc structures
generated on Thu, 08 Nov 2012 02:13:37 GMT


interface xdc.tools.product.IProductView

     1    /*
     2     *  Copyright (c) 2009 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    package xdc.tools.product;
    13
    14    /*!
    15     *  ======== IProductView ========
    16     *  Define a product as a logical group of RTSC modules
    17     *
    18     *  This interface allows a product to define logical groups of RTSC
    19     *  modules delivered with it. Implementations of this interface are
    20     *  typically consumed within development environments like IDE's to
    21     *  render a graphical tree view of the product consisting of these
    22     *  groups.
    23     *
    24     *  This is an experimental interface and is subject to change.
    25     */
    26    metaonly interface IProductView
    27    {
    28        /*!
    29         *  ======== ProductElemDesc ========
    30         *  ProductElemDesc structure
    31         *
    32         *  This structure is used to define the logical tree "view" of a
    33         *  product. This view is composed of elements that are either modules
    34         *  or groups: modules at the leaves of the tree and groups elsewhere.
    35         *
    36         *  @field(elemName)        Name of element. Elements can be either
    37         *                          groups or modules
    38         *  @field(moduleName)      In case of a leaf node this field will
    39         *                          contain the module name. For intermediate
    40         *                          tree nodes the module name will be set to
    41         *                          `null`
    42         *  @field(iconFileName)    The name of the icon file that is associated
    43         *                          with this element.  In xdctools 3.23, this path
    44         *                          must be relative to the package containing the
    45         *                          `IProductView` implementation.
    46         *
    47         *                          In xdctools 3.24.01 (or above), this path may
    48         *                          be relative or absolute.  If it's relative,
    49         *                          it's first searched for in the package
    50         *                          containing the `IProductView` implementation
    51         *                          module and, if this fails, the relative path
    52         *                          is searched via `xdc.findFile()`.  If the icon
    53         *                          is still not found, a default icon will be
    54         *                          used.
    55         *  @field(elemArray)       Array used to define children of a node.
    56         */
    57        struct ProductElemDesc {
    58            String elemName;             /*! Name of group or module */
    59            String moduleName;           /*! Name of module */
    60            String iconFileName;         /*! Icon file name representing element */
    61            ProductElemDesc elemArray[]; /*! Array of `ProductElemDesc` */
    62        };
    63
    64        /*!
    65         *  ======== homeModule ========
    66         *  Top-level module for this product
    67         *
    68         *  The `homeModule` is a distinguished "top-level" module that is used
    69         *  by GUI's as a starting point, or "home page", to navigate to the
    70         *  other content managed by this product.
    71         */
    72        config String homeModule;
    73
    74        /*!
    75         *  ======== linksToArray ========
    76         *  Array of IDs of products accessable from this product's home module
    77         *
    78         *  This array of product IDs is used to determine a hierarchical
    79         *  relationship between products and if a product's modules can be
    80         *  reached from another product's home page. If product A "links to"
    81         *  product B, then product B's home page can be closed so long as
    82         *  product A's home page is open.
    83         */
    84        config String linksToArray[];
    85
    86        /*!
    87         *  ======== getProductDescriptor ========
    88         *  Return this product's tree view
    89         *
    90         *  This method is typically invoked by development tools like IDE's
    91         *  to get the product view tree structure.
    92         *
    93         *  @a(returns)
    94         *  Returns root node of tree of `{@link #ProductElemDesc}` structures
    95         */
    96        ProductElemDesc getProductDescriptor();
    97    }
    98    /*
    99     *  @(#) xdc.tools.product; 1, 0, 0,74; 10-28-2012 21:41:13; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
   100     */
   101


package xdc.tools.product.plugingen
index URL

Command-line tool for generating eclipse plugins for RTSC content

  • USAGE
  • OPTIONS
  • DETAILS
  • EXAMPLE
The plugingen tool allows RTSC content producers to create eclipse plugins that allows their content to be integrated in the CCS4 environment. As input, the tool requires [ more ... ]
XDCspec declarations sourced in xdc/tools/product/plugingen/package.xdc
package xdc.tools.product.plugingen [1, 0, 0] {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.product.plugingen [--help]
    [-p product_root_directory]
     -m module
    [-o outdir]
    [-f pluginFragment]
    [--suppress_product_type_info]
    [--disable_repo_search]
OPTIONS
-p
Product root directory

This option names the product root directory that is used by the tool to generate the plugin. For example, its declared repositories are added to the package path and are searched for contributed platforms.

If the '-o' option is not specified, the tool generates the plugin in a sub-directory named eclipse in the product root directory.

If this option is not specified, the product root directory is assumed to be ./.

-m
Input description of the plug-in to be specified

This required option names a module that implements xdc.tools.product.IProduct.

-o
Output directory in which the plugin will be generated

This option names the directory in which the plugin will be generated in a sub-directory named eclipse. If this option is not specified the tool will generate the plugin in the product root directory specified with the '-p' option.

-f
Text file containing plugin fragment

This option names the text file containing a plugin fragment. This allows users to contribute extensions to the UI plugins generated by the tool.

The tool does not perform syntax checking of the contributed fragment. Users need to ensure the correctness of the contributed fragment. Note that syntactically incorrect fragments can disable the plugin completely in the eclipse platform.

--generation_format
Plugin generation format
--suppress_product_type_info
Suppress generation of product type information

This option generates eclipse plugin without the product type information. Should only be invoked to generate plugins whose product type information was hard coded into CCS 4.x prior to the creation of this tool.

This option should not be used by _any_ new products.

--disable_repo_search
Suppress search of product repositories

If this option is specified the tool does not search the product repositories for RTSC platforms.

DETAILS
The plugingen tool allows RTSC content producers to create eclipse plugins that allows their content to be integrated in the CCS4 environment. As input, the tool requires
  • a RTSC module implementing xdc.tools.product.IProduct
Refer to ExampleProduct for an implementation of IProduct.
The tool may also be used to generate starter examples that will showup in the new project wizard. This is accomplished by implementing IProductTemplate and setting the templateModule configuration parameter of the IProduct implementation to the name of the implementation module. Refer to Examples for a sample implementation of IProductTemplate.
The XGCONF product view maybe developed by implementing IProductView and setting the productViewModule configuration parameter of the IProduct implementation to the name of the implementation module. Refer to ProductView.xdc and ProductView.xs for a sample implementation of IProductView.
The tool operates on a product that is either specified by the -p option or is present in the folder from which the tool is executed. The tool will create the plugin in a sub-folder named eclipse in the output directory specified with -o option. If the -o option is not specified the plugin is created in the product root directory. The tool will search the repositories specified in the module implementing xdc.tools.product.IProduct for RTSC platforms. This search can be disabled by specifying the--disable_repo_search option. The user needs to ensure that the repositories are installed in the product root directory before using the tool.
EXAMPLE
      xs xdc.tools.product.plugingen
                      -p exampleprod_1_0_0_00
                      -m xdc.tools.product.plugingen.examples.ExampleProduct
generated on Thu, 08 Nov 2012 02:13:37 GMT


package xdc.tools.product.plugingen

     1    /*
     2     *  Copyright 2012 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    /*
     7     *  ======== xdc.tools.product.plugingen ========
     8     *  Generate eclipse plugins for RTSC content
     9     */
    10    package xdc.tools.product.plugingen [1,0,0] {
    11        module Main;
    12    }
    13    /*
    14     *  @(#) xdc.tools.product.plugingen; 1, 0, 0,73; 10-28-2012 21:41:17; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    15     */
    16


module xdc.tools.product.plugingen.Main

metaonly module xdc.tools.product.plugingen.Main
index URL

Command implementation

  • DETAILS
  • EXAMPLE
  • XDCscript usage
  • Individual elements
The plugingen tool allows RTSC content producers to create eclipse plugins that allows their content to be integrated in the CCS4 environment. As input, the tool requires [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/product/plugingen/Main.xdc
var Main = xdc.useModule('xdc.tools.product.plugingen.Main');
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        '[-p product_root_directory]',
        ' -m module',
        '[-o outdir]',
        '[-f pluginFragment]',
        '[--suppress_product_type_info]',
        '[--disable_repo_search]'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.generationFormat// Plugin generation format = String null;
        params.outputDir// Output directory in which the plugin will be generated = String null;
        params.pluginFragment// Text file containing plugin fragment = String null;
        params.productDir// Product root directory = String "./";
        params.productModule// Input description of the plug-in to be specified = String undefined;
        params.suppressProductTypeInfo// Suppress generation of product type information = Bool false;
        params.suppressSearch// Suppress search of product repositories = Bool false;
per-instance functions
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
DETAILS
The plugingen tool allows RTSC content producers to create eclipse plugins that allows their content to be integrated in the CCS4 environment. As input, the tool requires
  • a RTSC module implementing xdc.tools.product.IProduct
Refer to ExampleProduct for an implementation of IProduct.
The tool may also be used to generate starter examples that will showup in the new project wizard. This is accomplished by implementing IProductTemplate and setting the templateModule configuration parameter of the IProduct implementation to the name of the implementation module. Refer to Examples for a sample implementation of IProductTemplate.
The XGCONF product view maybe developed by implementing IProductView and setting the productViewModule configuration parameter of the IProduct implementation to the name of the implementation module. Refer to ProductView.xdc and ProductView.xs for a sample implementation of IProductView.
The tool operates on a product that is either specified by the -p option or is present in the folder from which the tool is executed. The tool will create the plugin in a sub-folder named eclipse in the output directory specified with -o option. If the -o option is not specified the plugin is created in the product root directory. The tool will search the repositories specified in the module implementing xdc.tools.product.IProduct for RTSC platforms. This search can be disabled by specifying the--disable_repo_search option. The user needs to ensure that the repositories are installed in the product root directory before using the tool.
EXAMPLE
      xs xdc.tools.product.plugingen
                      -p exampleprod_1_0_0_00
                      -m xdc.tools.product.plugingen.examples.ExampleProduct
config Main.usage // module-wide
index URL

Usage for this command

XDCscript usage meta-domain
Main.usage = String[] [
    '[-p product_root_directory]',
    ' -m module',
    '[-o outdir]',
    '[-f pluginFragment]',
    '[--suppress_product_type_info]',
    '[--disable_repo_search]'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.generationFormat = String null;
    // Plugin generation format
    params.outputDir = String null;
    // Output directory in which the plugin will be generated
    params.pluginFragment = String null;
    // Text file containing plugin fragment
    params.productDir = String "./";
    // Product root directory
    params.productModule = String undefined;
    // Input description of the plug-in to be specified
    params.suppressProductTypeInfo = Bool false;
    // Suppress generation of product type information
    params.suppressSearch = Bool false;
    // Suppress search of product repositories
config Main.generationFormat // instance
index URL

Plugin generation format

XDCscript usage meta-domain
var params = new Main.Params;
...
params.generationFormat = String null;
config Main.outputDir // instance
index URL

Output directory in which the plugin will be generated

XDCscript usage meta-domain
var params = new Main.Params;
...
params.outputDir = String null;
DETAILS
This option names the directory in which the plugin will be generated in a sub-directory named eclipse. If this option is not specified the tool will generate the plugin in the product root directory specified with the '-p' option.
config Main.pluginFragment // instance
index URL

Text file containing plugin fragment

XDCscript usage meta-domain
var params = new Main.Params;
...
params.pluginFragment = String null;
DETAILS
This option names the text file containing a plugin fragment. This allows users to contribute extensions to the UI plugins generated by the tool.
The tool does not perform syntax checking of the contributed fragment. Users need to ensure the correctness of the contributed fragment. Note that syntactically incorrect fragments can disable the plugin completely in the eclipse platform.
config Main.productDir // instance
index URL

Product root directory

XDCscript usage meta-domain
var params = new Main.Params;
...
params.productDir = String "./";
DETAILS
This option names the product root directory that is used by the tool to generate the plugin. For example, its declared repositories are added to the package path and are searched for contributed platforms.
If the '-o' option is not specified, the tool generates the plugin in a sub-directory named eclipse in the product root directory.
If this option is not specified, the product root directory is assumed to be ./.
config Main.productModule // instance
index URL

Input description of the plug-in to be specified

XDCscript usage meta-domain
var params = new Main.Params;
...
params.productModule = String undefined;
DETAILS
This required option names a module that implements xdc.tools.product.IProduct.
config Main.suppressProductTypeInfo // instance
index URL

Suppress generation of product type information

XDCscript usage meta-domain
var params = new Main.Params;
...
params.suppressProductTypeInfo = Bool false;
DETAILS
This option generates eclipse plugin without the product type information. Should only be invoked to generate plugins whose product type information was hard coded into CCS 4.x prior to the creation of this tool.
This option should not be used by _any_ new products.
config Main.suppressSearch // instance
index URL

Suppress search of product repositories

XDCscript usage meta-domain
var params = new Main.Params;
...
params.suppressSearch = Bool false;
DETAILS
If this option is specified the tool does not search the product repositories for RTSC platforms.
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:37 GMT


module xdc.tools.product.plugingen.Main

     1    /*
     2     *  Copyright 2012 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    /*!
     7     *  ======== Main ========
     8     *  Command-line tool for generating eclipse plugins for RTSC content
     9     *
    10     *  The `plugingen` tool allows RTSC content producers to
    11     *  create eclipse plugins that allows their content to be
    12     *  integrated in the CCS4 environment. As input, the tool requires
    13     *  @p(blist)
    14     *      - a RTSC module implementing {@link xdc.tools.product.IProduct}
    15     *  @p
    16     *  Refer to {@link ./doc-files/ExampleProduct.xdc ExampleProduct}
    17     *  for an implementation of {@link xdc.tools.product.IProduct IProduct}.
    18     *
    19     *  The tool may also be used to generate starter examples that will showup
    20     *  in the new project wizard. This is accomplished by implementing
    21     *  {@link xdc.tools.product.IProductTemplate IProductTemplate} and setting
    22     *  the {@link xdc.tools.product.IProduct#templateModule templateModule}
    23     *  configuration parameter of the {@link xdc.tools.product.IProduct IProduct}
    24     *  implementation to the name of the implementation module.
    25     *  Refer to {@link ./doc-files/Examples.xdc Examples}
    26     *  for a sample implementation of {@link
    27     *  xdc.tools.product.IProductTemplate IProductTemplate}.
    28     *
    29     *  The XGCONF product view maybe developed by implementing
    30     *  {@link xdc.tools.product.IProductView IProductView} and setting
    31     *  the {@link xdc.tools.product.IProduct#productViewModule productViewModule}
    32     *  configuration parameter of the {@link xdc.tools.product.IProduct IProduct}
    33     *  implementation to the name of the implementation module.
    34     *  Refer to {@link ./doc-files/ProductView.xdc ProductView.xdc} and
    35     *  {@link ./doc-files/ProductView.xs ProductView.xs}
    36     *  for a sample implementation of {@link
    37     *  xdc.tools.product.IProductView IProductView}.
    38     *
    39     *  The tool operates on a product that is either specified by the `-p`
    40     *  option or is present in the folder from which the tool is executed.
    41     *  The tool will create the plugin in a sub-folder named `eclipse`
    42     *  in the output directory specified with `-o` option. If the `-o`
    43     *  option is not specified the plugin is created in the product root
    44     *  directory.
    45     *  The tool will search the repositories specified in the module
    46     *  implementing {@link xdc.tools.product.IProduct} for RTSC platforms.
    47     *  This search can be disabled by specifying the`--disable_repo_search`
    48     *  option. The user needs to ensure that the repositories are installed
    49     *  in the product root directory before using the tool.
    50     *
    51     *  @a(Example)
    52     *  @p(code)
    53     *      xs xdc.tools.product.plugingen
    54     *                      -p exampleprod_1_0_0_00
    55     *                      -m xdc.tools.product.plugingen.examples.ExampleProduct
    56     *  @p
    57     */
    58    metaonly module Main inherits xdc.tools.ICmd
    59    {
    60        override config String usage[] = [
    61            '[-p product_root_directory]',
    62            ' -m module',
    63            '[-o outdir]',
    64            '[-f pluginFragment]',
    65            '[--suppress_product_type_info]',
    66            '[--disable_repo_search]'
    67        ];
    68
    69    instance:
    70
    71        /*!
    72         *  ======== productDir ========
    73         *  Product root directory
    74         *
    75         *  This option names the product root directory that is used by the
    76         *  tool to generate the plugin.  For example, its declared repositories
    77         *  are added to the package path and are searched for contributed
    78         *  platforms.
    79         *
    80         *  If the '-o' option is not specified, the tool generates the plugin
    81         *  in a sub-directory named `eclipse` in the product root directory.
    82         *
    83         *  If this option is not specified, the product root directory is
    84         *  assumed to be `./`.
    85         *
    86         */
    87        @CommandOption("p")
    88        config String productDir = "./";
    89
    90        /*!
    91         *  ======== productModule ========
    92         *  Input description of the plug-in to be specified
    93         *
    94         *  This required option names a module that implements
    95         *  `{@link xdc.tools.product.IProduct}`.
    96         */
    97        @CommandOption("m")
    98        config String productModule;
    99
   100        /*!
   101         *  ======== outputDir ========
   102         *  Output directory in which the plugin will be generated.
   103         *
   104         *  This option names the directory in which the plugin
   105         *  will be generated in a sub-directory named `eclipse`.
   106         *  If this option is not specified the tool will generate
   107         *  the plugin in the product root directory specified with
   108         *  the '-p' option.
   109         */
   110        @CommandOption("o")
   111        config String outputDir = null;
   112
   113        /*!
   114         *  ======== pluginFragment ========
   115         *  Text file containing plugin fragment
   116         *
   117         *  This option names the text file containing a plugin fragment.
   118         *  This allows users to contribute extensions to the UI plugins
   119         *  generated by the tool.
   120         *
   121         *  The tool does not perform syntax checking of the contributed
   122         *  fragment. Users need to ensure the correctness of the
   123         *  contributed fragment. Note that syntactically incorrect
   124         *  fragments can disable the plugin completely in the eclipse
   125         *  platform.
   126         */
   127        @CommandOption("f")
   128        config String pluginFragment = null;
   129
   130        /*!
   131         *  ======== generationFormat ========
   132         *  Plugin generation format
   133         */
   134        @CommandOption("generation_format")
   135        config String generationFormat = null;
   136
   137        /*!
   138         *  ======== suppress_product_type_info ========
   139         *  Suppress generation of product type information
   140         *
   141         *  This option generates eclipse plugin without the product
   142         *  type information. Should only be invoked to generate plugins
   143         *  whose product type information was hard coded into CCS 4.x prior
   144         *  to the creation of this tool.
   145         *
   146         *  This option should not be used by _any_ new products.
   147         */
   148        @CommandOption("suppress_product_type_info")
   149        config Bool suppressProductTypeInfo = false;
   150
   151        /*!
   152         *  ======== disable_repo_search ========
   153         *  Suppress search of product repositories
   154         *
   155         *  If this option is specified the tool does not
   156         *  search the product repositories for RTSC platforms.
   157         */
   158        @CommandOption("disable_repo_search")
   159        config Bool suppressSearch = false;
   160
   161        /*!
   162         *  ======== run ========
   163         */
   164        override Any run(xdc.tools.Cmdr.Instance cmdr, String args[]);
   165    }
   166    /*
   167     *  @(#) xdc.tools.product.plugingen; 1, 0, 0,73; 10-28-2012 21:41:17; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
   168     */
   169


package xdc.tools.product.trexgen
index URL

Command-line tool for generating projectspec files for RTSC content

  • USAGE
  • OPTIONS
  • DETAILS
  • EXAMPLE
The trexgen tool allows RTSC content producers to create projectspec files that allows their content to be integrated in the CCS Resource Explorer environment. As input, the tool requires [ more ... ]
XDCspec declarations sourced in xdc/tools/product/trexgen/package.xdc
package xdc.tools.product.trexgen [1, 0, 0] {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.product.trexgen [--help]
    [-p product_root_directory]
     -m module
    [-o outdir]
OPTIONS
-p
Product root directory

This option names the product root directory that is used by the tool to generate the projectspec files. For example, it's declared repositories are added to the package path and are searched for contributed platforms.

If the '-o' option is not specified, the tool generates the resources directory in the product root directory.

If this option is not specified, the product root directory is assumed to be ./.

-m
Input description of the plug-in to be specified

This required option names a module that implements xdc.tools.product.IProduct.

-o
Output directory in which the plugin will be generated

This option names the directory in which the project spec will be generated in a sub-directory named eclipse. If this option is not specified the tool will generate the plugin in the product root directory specified with the '-p' option.

--generation_format
Plugin generation format
DETAILS
The trexgen tool allows RTSC content producers to create projectspec files that allows their content to be integrated in the CCS Resource Explorer environment. As input, the tool requires
  • a RTSC module implementing xdc.tools.product.IProduct
Refer to ExampleProduct for an implementation of IProduct.
The tool generates starter examples that will showup in the Resource explorer. This is accomplished by implementing IProductTemplate and setting the templateModule configuration parameter of the IProduct implementation to the name of the implementation module. Refer to Examples for a sample implementation of IProductTemplate.
The tool operates on a product that is either specified by the -p option or is present in the folder from which the tool is executed. The tool will create the resources sub-folder in the output directory specified with -o option. If the -o option is not specified the resources is created in the product root directory.
The tool will search the repositories specified in the module implementing xdc.tools.product.IProduct for RTSC platforms. This search can be disabled by specifying the--disable_repo_search option. The user needs to ensure that the repositories are installed in the product root directory before using the tool.
EXAMPLE
      xs xdc.tools.product.trexgen
                      -p exampleprod_1_0_0_00
                      -m xdc.tools.product.plugingen.examples.ExampleProduct
generated on Thu, 08 Nov 2012 02:13:37 GMT


package xdc.tools.product.trexgen

     1    /*
     2     *  Copyright 2012 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    /*
     7     *  ======== xdc.tools.product.trexgen ========
     8     *  Generate project spec files for CCS resource explorer
     9     */
    10    package xdc.tools.product.trexgen [1,0,0] {
    11        module Main;
    12    }
    13    /*
    14     *  @(#) xdc.tools.product.trexgen; 1, 0, 0,4; 10-28-2012 21:41:21; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    15     */
    16


module xdc.tools.product.trexgen.Main

metaonly module xdc.tools.product.trexgen.Main
index URL

Command implementation

  • DETAILS
  • EXAMPLE
  • XDCscript usage
  • Individual elements
The trexgen tool allows RTSC content producers to create projectspec files that allows their content to be integrated in the CCS Resource Explorer environment. As input, the tool requires [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/product/trexgen/Main.xdc
var Main = xdc.useModule('xdc.tools.product.trexgen.Main');
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        '[-p product_root_directory]',
        ' -m module',
        '[-o outdir]'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.generationFormat// Plugin generation format = String null;
        params.outputDir// Output directory in which the plugin will be generated = String null;
        params.productDir// Product root directory = String "./";
        params.productModule// Input description of the plug-in to be specified = String undefined;
per-instance functions
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
DETAILS
The trexgen tool allows RTSC content producers to create projectspec files that allows their content to be integrated in the CCS Resource Explorer environment. As input, the tool requires
  • a RTSC module implementing xdc.tools.product.IProduct
Refer to ExampleProduct for an implementation of IProduct.
The tool generates starter examples that will showup in the Resource explorer. This is accomplished by implementing IProductTemplate and setting the templateModule configuration parameter of the IProduct implementation to the name of the implementation module. Refer to Examples for a sample implementation of IProductTemplate.
The tool operates on a product that is either specified by the -p option or is present in the folder from which the tool is executed. The tool will create the resources sub-folder in the output directory specified with -o option. If the -o option is not specified the resources is created in the product root directory.
The tool will search the repositories specified in the module implementing xdc.tools.product.IProduct for RTSC platforms. This search can be disabled by specifying the--disable_repo_search option. The user needs to ensure that the repositories are installed in the product root directory before using the tool.
EXAMPLE
      xs xdc.tools.product.trexgen
                      -p exampleprod_1_0_0_00
                      -m xdc.tools.product.plugingen.examples.ExampleProduct
config Main.usage // module-wide
index URL

Usage for this command

XDCscript usage meta-domain
Main.usage = String[] [
    '[-p product_root_directory]',
    ' -m module',
    '[-o outdir]'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.generationFormat = String null;
    // Plugin generation format
    params.outputDir = String null;
    // Output directory in which the plugin will be generated
    params.productDir = String "./";
    // Product root directory
    params.productModule = String undefined;
    // Input description of the plug-in to be specified
config Main.generationFormat // instance
index URL

Plugin generation format

XDCscript usage meta-domain
var params = new Main.Params;
...
params.generationFormat = String null;
config Main.outputDir // instance
index URL

Output directory in which the plugin will be generated

XDCscript usage meta-domain
var params = new Main.Params;
...
params.outputDir = String null;
DETAILS
This option names the directory in which the project spec will be generated in a sub-directory named eclipse. If this option is not specified the tool will generate the plugin in the product root directory specified with the '-p' option.
config Main.productDir // instance
index URL

Product root directory

XDCscript usage meta-domain
var params = new Main.Params;
...
params.productDir = String "./";
DETAILS
This option names the product root directory that is used by the tool to generate the projectspec files. For example, it's declared repositories are added to the package path and are searched for contributed platforms.
If the '-o' option is not specified, the tool generates the resources directory in the product root directory.
If this option is not specified, the product root directory is assumed to be ./.
config Main.productModule // instance
index URL

Input description of the plug-in to be specified

XDCscript usage meta-domain
var params = new Main.Params;
...
params.productModule = String undefined;
DETAILS
This required option names a module that implements xdc.tools.product.IProduct.
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:37 GMT


module xdc.tools.product.trexgen.Main

     1    /*
     2     *  Copyright 2012 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    /*!
     7     *  ======== Main ========
     8     *  Command-line tool for generating projectspec files for RTSC content
     9     *
    10     *  The `trexgen` tool allows RTSC content producers to
    11     *  create projectspec files that allows their content to be
    12     *  integrated in the CCS Resource Explorer environment. As input,
    13     *  the tool requires
    14     *  @p(blist)
    15     *      - a RTSC module implementing {@link xdc.tools.product.IProduct}
    16     *  @p
    17     *  Refer to {@link ./doc-files/ExampleProduct.xdc ExampleProduct}
    18     *  for an implementation of {@link xdc.tools.product.IProduct IProduct}.
    19     *
    20     *  The tool generates starter examples that will showup
    21     *  in the Resource explorer. This is accomplished by implementing
    22     *  {@link xdc.tools.product.IProductTemplate IProductTemplate} and setting
    23     *  the {@link xdc.tools.product.IProduct#templateModule templateModule}
    24     *  configuration parameter of the {@link xdc.tools.product.IProduct IProduct}
    25     *  implementation to the name of the implementation module.
    26     *  Refer to {@link ./doc-files/Examples.xdc Examples}
    27     *  for a sample implementation of {@link
    28     *  xdc.tools.product.IProductTemplate IProductTemplate}.
    29     *
    30     *  The tool operates on a product that is either specified by the `-p`
    31     *  option or is present in the folder from which the tool is executed.
    32     *  The tool will create the resources sub-folder in the output directory
    33     *  specified with `-o` option. If the `-o`
    34     *  option is not specified the resources is created in the product root
    35     *  directory.
    36     *
    37     *  The tool will search the repositories specified in the module
    38     *  implementing {@link xdc.tools.product.IProduct} for RTSC platforms.
    39     *  This search can be disabled by specifying the`--disable_repo_search`
    40     *  option. The user needs to ensure that the repositories are installed
    41     *  in the product root directory before using the tool.
    42     *
    43     *  @a(Example)
    44     *  @p(code)
    45     *      xs xdc.tools.product.trexgen
    46     *                      -p exampleprod_1_0_0_00
    47     *                      -m xdc.tools.product.plugingen.examples.ExampleProduct
    48     *  @p
    49     */
    50    metaonly module Main inherits xdc.tools.ICmd
    51    {
    52        override config String usage[] = [
    53            '[-p product_root_directory]',
    54            ' -m module',
    55            '[-o outdir]'
    56        ];
    57
    58    instance:
    59
    60        /*!
    61         *  ======== productDir ========
    62         *  Product root directory
    63         *
    64         *  This option names the product root directory that is used by the
    65         *  tool to generate the projectspec files.  For example, it's declared
    66         *  repositories are added to the package path and are searched for
    67         *  contributed platforms.
    68         *
    69         *  If the '-o' option is not specified, the tool generates the resources
    70         *  directory in the product root directory.
    71         *
    72         *  If this option is not specified, the product root directory is
    73         *  assumed to be `./`.
    74         *
    75         */
    76        @CommandOption("p")
    77        config String productDir = "./";
    78
    79        /*!
    80         *  ======== productModule ========
    81         *  Input description of the plug-in to be specified
    82         *
    83         *  This required option names a module that implements
    84         *  `{@link xdc.tools.product.IProduct}`.
    85         */
    86        @CommandOption("m")
    87        config String productModule;
    88
    89        /*!
    90         *  ======== outputDir ========
    91         *  Output directory in which the plugin will be generated.
    92         *
    93         *  This option names the directory in which the project spec
    94         *  will be generated in a sub-directory named `eclipse`.
    95         *  If this option is not specified the tool will generate
    96         *  the plugin in the product root directory specified with
    97         *  the '-p' option.
    98         */
    99        @CommandOption("o")
   100        config String outputDir = null;
   101
   102        /*!
   103         *  ======== generationFormat ========
   104         *  Plugin generation format
   105         */
   106        @CommandOption("generation_format")
   107        config String generationFormat = null;
   108
   109        /*!
   110         *  ======== run ========
   111         */
   112        override Any run(xdc.tools.Cmdr.Instance cmdr, String args[]);
   113    }
   114    /*
   115     *  @(#) xdc.tools.product.trexgen; 1, 0, 0,4; 10-28-2012 21:41:21; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
   116     */
   117


package xdc.tools.repoman
index URL

Repository Manager tool

  • USAGE
  • OPTIONS
  • DETAILS
  • EXAMPLES
This tool creates and manages package repositories. It displays information about archived packages, extracts archived packages, extracts repositories from bundles and deletes packages from repositories. [ more ... ]
XDCspec declarations sourced in xdc/tools/repoman/package.xdc
requires xdc.tools;
requires xdc.shelf;
requires xdc.services.global;
package xdc.tools.repoman [1, 0, 0] {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.repoman [--help]
    -t [-v] [-p pathname] [packagename...|packagefile...]
    -n [-v] [-p pathname] [packagename...|packagefile...]
    -x [-v] [-D] [-R] [-F] [-r destrepo] [-p path] packagename...|packagefile...
    -x [-v] [-D] [-R] [-F] [-r destrepo] [-p path] -b bundlerepository [packagename...] bundleFile
    -d [-v] [-F] [-r destrepo] packagename...
    -c [-v] [-F] [--providerId] [-r destrepo] [-p pathname] packagename...
    --rsave -f file [-p searchpath] repository...
    --rrestore -f file [-p searchpath] [index-spec]
    --rcreate -f file [-p searchpath] [index-spec] destrepository...
    [-F] --providerId providerId [repository...]
OPTIONS
-t
Display package info
-n
Display package names only
-x
Extract package(s)
-d
Delete package(s)
-p
Path arg
-r
Repository arg
-D
Include package dependencies
-R
Recursive include package dependencies
-a
Return an array of strings
-X
Return a Results struct as XML
-v
Print informative messages during execution
-b
Bundle repository arg
-F
Force incompatible packages
-c
Copy package(s)
-f
file arg to save/restore repository
--rsave
Save a repository's information to file
--rrestore
Restore one or more repositories from information in file
--rcreate
Create one or more repositories from information in file
--providerId
providerId for a repository
DETAILS
This tool creates and manages package repositories. It displays information about archived packages, extracts archived packages, extracts repositories from bundles and deletes packages from repositories.
Information about archived packages can be displayed with the '-t' and '-n' options. The '-p' argument is used to specify a directory in which to search. If the '-p' arg is omitted, the current directory is searched. Specific packages can searched for by specifying one or more package names, or one or more package archives at the end of the command line. If no packages are specified, information on all packages found in the search directory will be displayed.
Archived packages can be extracted to a repository with the '-x' option. '-x -D' will extract dependent packages, too. '-x -R' will recursively extract dependent packages. If any of the packages in the specified package list are not compatible, the operation will be aborted. '-F' can be used to force all packages to be extracted, regardles of compatibility. The '-p' arg is used to specify a directory to search in. If not specified, the current directory will be searched. The '-x' option also extracts a repository or packages from a bundle. In this case, the last argument specifies the bundle from which to extract the repository. The repository to be extracted is specified with the '-b' arg. If just packages are to be extracted, one or more package names should follow the name of the repository that they should be extracted from.
Packages can be deleted from a repository with '-d'. If the package has any subdirectores that contain packages, they will be left intact. After the package is deleted, if the package has no subdirectories with packages, empty directories that are part of the fully qualified package will be deleted, too.
Packages can be copied between repositories with '-c'. If the package being copied already exists in the destination repository, it will be deleted prior to being replaced.
The '-r' argument specifies a destination repository. If '-r' is omitted, the repository of the current package is used. If there is no current package, the current directory is used.
When a package name is given, it can be specified in full, such as 'ti.platforms.sim6xxx', or the wildcard characters '*' and '?' may be used, as in 'ti.platforms.*' or 'ti.catalog.c??00'. A version/key can also be attached to a package name in the following manner: 'ti.platforms.c6000[1,0,0,0,313835]'. A prefix of the full version/key may also be used: 'ti.platforms.c6000[1,0]'.
If a package name has multiple matches either with or without a version/key specified, the most recent will be selected. Wildcards may also be used when naming a package archive file.
EXAMPLES
xs xdc.tools.repoman -t
Displays all info on all archived packages in the current directory
xs xdc.tools.repoman -t -p C:\xdc-o19\exports
Displays all info on all archived packages in C:\xdc-o19\exports
xs xdc.tools.repoman -t -p C:\xdc-o19\exports ti.platforms.*
Displays all info on archived packages whose names begin with ti.platforms. in C:\xdc-o19\exports
xs xdc.tools.repoman -t -p C:\xdc-o19\exports ti_platforms*.tar
Displays all info on packages in files that match ti_platforms*.tar in C:\xdc-o19\exports
xs xdc.tools.repoman -t -p C:\xdc-o19\exports ti.catalog.c6000 ti.catalog.sim6xxx
Displays all info on archived packages ti.catalog.c6000 and ti.catalog.sim6xxx in C:\xdc-o19\exports
xs xdc.tools.repoman -t http://www.sanb.design.ti.com/ti_sdo_ce_wizards_genserver.tar
Displays all info on archived package ti_sdo_ce_wizards_genserver.tar at URL http://www.sanb.design.ti.com
xs xdc.tools.repoman -x
Extracts all archived packages in the current directory to the current repository
xs xdc.tools.repoman -x -r C:\myrepo\packages -p C:\exports
Extracts all archived packages in C:\exports to C:\myrepo\packages repository
xs xdc.tools.repoman -x -r C:\myrepo\packages -p C:\exports ti.catalog.*
Extracts packages matching ti.catalog.* from c:\exports to c:\myrepo\packages
xs xdc.tools.repoman -x -r C:\myrepo\packages C:\exports\ti_catalog*.tar
Extracts packages from files matching C:\exports\ti_catalog*.tar to c:\myrepo\packages
xs xdc.tools.repoman -x -r C:\myrepo\packages C:\exports\ti_catalog*.tar
Extracts packages from files matching C:\exports\ti_catalog*.tar to c:\myrepo\packages
xs xdc.tools.repoman -x -R -r C:\myrepo -p C:\xdc-o19\exports ti.platforms.sim6xxx
Extracts the package ti.platforms.sim6xxx and all recursively dependent packages from C:\xdc-o19\exports to C:\myrepo
xs xdc.tools.repoman -x -r C:\ -b packages C:\exports\xdc_core.tar.gz
Extracts the repository 'packages' from bundle C:\exports\xdc_core.tar.gz to C:\
xs xdc.tools.repoman -x -r C:\myrepo -b examples ti.xdais.dm.examples.videnc1_copy C:\xdais_6_24.tar.gz
Extracts the package ti.xdais.dm.examples.videnc1_copy from repository 'examples' in bundle C:\xdais_6_24.tar.gz to C:\myrepo
xs xdc.tools.repoman -x -r C:\myrepo http://www.sanb.design.ti.com/ti_sdo_ce_wizards_genserver.tar
Extracts package ti_sdo_ce_wizards_genserver.tar at URL http://www.sanb.design.ti.com to c:\myrepo
xs xdc.tools.repoman -r C:\myrepo -b examples http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/7_10/exports/xdais_7_10.tar.gz
Extracts all of the packages in repository 'examples' from bundle xdais_7_10.tar.gz at URL http://... to C:\myrepo
xs xdc.tools.repoman -x -r C:\myrepo -b examples ti.xdais.dm.examples.videnc1_copy http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/6_24/exports/xdais_6_24.tar.gz
Extracts the package ti.xdais.dm.examples.videnc1_copy in repository 'examples' from bundle xdais_7_10.tar.gz at URL http://... to C:\myrepo
xs xdc.tools.repoman -c -r C:\destdir\packages -p C:\srcdir\packages ti.catalog.c6000
Copies the package ti.catalog.c6000 from C:\srcdir\packages to C:\destdir\packages
xs xdc.tools.repoman --rsave -f c:/repoinfo.rmn -p c:/pkgarchives;c:/testpkgs c:/myrepo
Saves package information for repository c:/myrepo to file c:/repoinfo.rmn. Also saves the search path c:/pkgarchives;c:/testpkgs
xs xdc.tools.repoman --rrestore -f c:/repoinfo.rmn -p c:/pkgarchives;c:/testpkgs
Restores all of the packages in the repository referenced in c:/repoinfo.rmn. Uses the search path c:/pkgarchives;c:/testpkgs to find and copy packages. Will create the repository if it doesn't exist.
xs xdc.tools.repoman --rcreate -f c:/repoinfo.rmn -p c:/pkgarchives;c:/testpkgs c:/mynewrepo
Creates the new repository c:/mynewrepo from the repository referenced in the file c:/repoinfo.rmn. Uses the search path c:/pkgarchives;c:/testpkgs to find and copy packages. If successful, the newly created repository will be identical to its predecessor referenced in c:/repoinfo.rmn.
xs xdc.tools.repoman --providerId my_codec_engine c:/codec_engine_2_23/mypackages
Assigns the providerId attribute in c:/codec_engine_2_23/mypackages/.repo.xml the value my_codec_engine. If c:/codec_engine_2_23/mypackages/.repo.xml does not exist, it will be created.
generated on Thu, 08 Nov 2012 02:13:38 GMT


package xdc.tools.repoman

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    requires xdc.tools;
    14    requires xdc.shelf;
    15    requires xdc.services.global;
    16
    17    /*
    18     *  ======== xdc.tools.repoman ========
    19     *  Repository Management Tool
    20     */
    21    package xdc.tools.repoman [1, 0, 0]
    22    {
    23        module Main;
    24    }
    25
    26    /*
    27     *  @(#) xdc.tools.repoman; 1, 0, 0,220; 10-28-2012 21:41:27; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    28     */
    29


module xdc.tools.repoman.Main

metaonly module xdc.tools.repoman.Main
index URL

Command implementation

  • DETAILS
  • EXAMPLES
  • XDCscript usage
  • Individual elements
This tool creates and manages package repositories. It displays information about archived packages, extracts archived packages, extracts repositories from bundles and deletes packages from repositories. [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/repoman/Main.xdc
var Main = xdc.useModule('xdc.tools.repoman.Main');
module-wide constants & types
    var obj = new Main.NameResults// ;
        obj.pkgName// array of PkgName structures = Main.PkgName[] ...
    var obj = new Main.Pkg// ;
        obj.name = String ...
        obj.file = String ...
        obj.release = String ...
        obj.label = String ...
        obj.version = String ...
        obj.date = String ...
        obj.buildable = String ...
        obj.originalProviderId = String ...
        obj.producerId = String ...
        obj.reqs = String[] ...
        obj.refs = String[] ...
        obj.repository = Main.Repo[] ...
    var obj = new Main.PkgName// ;
        obj.name = String ...
        obj.repository = Main.Repo[] ...
    var obj = new Main.Repo// represents a repository in a bundle;
        obj.name = String ...
        obj.pkg = String[] ...
    var obj = new Main.Results// ;
        obj.repository = String ...
        obj.providerId = String ...
        obj.producerId = String ...
        obj.writable = Bool ...
        obj.pkg// array of package info structures = Main.Pkg[] ...
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        '-t [-v] [-p pathname] [packagename...|packagefile...]',
        '-n [-v] [-p pathname] [packagename...|packagefile...]',
        '-x [-v] [-D] [-R] [-F] [-r destrepo] [-p path] packagename...|packagefile...',
        '-x [-v] [-D] [-R] [-F] [-r destrepo] [-p path] -b bundlerepository [packagename...] bundleFile',
        '-d [-v] [-F] [-r destrepo] packagename...',
        '-c [-v] [-F] [--providerId] [-r destrepo] [-p pathname] packagename...',
        '--rsave -f file [-p searchpath] repository...',
        '--rrestore -f file [-p searchpath] [index-spec]',
        '--rcreate -f file [-p searchpath] [index-spec] destrepository...',
        '[-F] --providerId providerId [repository...]'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.arrFlag// Return an array of strings = Bool false;
        params.bundleRepositoryArg// Bundle repository arg = String null;
        params.copyFlag// Copy package(s) = Bool false;
        params.deleteFlag// Delete package(s) = Bool false;
        params.dependentFlag// Include package dependencies = Bool false;
        params.extractFlag// Extract package(s) = Bool false;
        params.fileArg// file arg to save/restore repository = String null;
        params.forceFlag// Force incompatible packages = Bool false;
        params.infoFlag// Display package info = Bool false;
        params.namesFlag// Display package names only = Bool false;
        params.pathArg// Path arg = String null;
        params.provIdArg// providerId for a repository = String null;
        params.rcreateFlag// Create one or more repositories from information in file = Bool false;
        params.recursiveDepFlag// Recursive include package dependencies = Bool false;
        params.repositoryArg// Repository arg = String null;
        params.rrestoreFlag// Restore one or more repositories from information in file = Bool false;
        params.rsaveFlag// Save a repository's information to file = Bool false;
        params.verboseFlag// Print informative messages during execution = Bool false;
        params.xmlFlag// Return a Results struct as XML = Bool false;
per-instance functions
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
DETAILS
This tool creates and manages package repositories. It displays information about archived packages, extracts archived packages, extracts repositories from bundles and deletes packages from repositories.
Information about archived packages can be displayed with the '-t' and '-n' options. The '-p' argument is used to specify a directory in which to search. If the '-p' arg is omitted, the current directory is searched. Specific packages can searched for by specifying one or more package names, or one or more package archives at the end of the command line. If no packages are specified, information on all packages found in the search directory will be displayed.
Archived packages can be extracted to a repository with the '-x' option. '-x -D' will extract dependent packages, too. '-x -R' will recursively extract dependent packages. If any of the packages in the specified package list are not compatible, the operation will be aborted. '-F' can be used to force all packages to be extracted, regardles of compatibility. The '-p' arg is used to specify a directory to search in. If not specified, the current directory will be searched. The '-x' option also extracts a repository or packages from a bundle. In this case, the last argument specifies the bundle from which to extract the repository. The repository to be extracted is specified with the '-b' arg. If just packages are to be extracted, one or more package names should follow the name of the repository that they should be extracted from.
Packages can be deleted from a repository with '-d'. If the package has any subdirectores that contain packages, they will be left intact. After the package is deleted, if the package has no subdirectories with packages, empty directories that are part of the fully qualified package will be deleted, too.
Packages can be copied between repositories with '-c'. If the package being copied already exists in the destination repository, it will be deleted prior to being replaced.
The '-r' argument specifies a destination repository. If '-r' is omitted, the repository of the current package is used. If there is no current package, the current directory is used.
When a package name is given, it can be specified in full, such as 'ti.platforms.sim6xxx', or the wildcard characters '*' and '?' may be used, as in 'ti.platforms.*' or 'ti.catalog.c??00'. A version/key can also be attached to a package name in the following manner: 'ti.platforms.c6000[1,0,0,0,313835]'. A prefix of the full version/key may also be used: 'ti.platforms.c6000[1,0]'.
If a package name has multiple matches either with or without a version/key specified, the most recent will be selected. Wildcards may also be used when naming a package archive file.
EXAMPLES
xs xdc.tools.repoman -t
Displays all info on all archived packages in the current directory
xs xdc.tools.repoman -t -p C:\xdc-o19\exports
Displays all info on all archived packages in C:\xdc-o19\exports
xs xdc.tools.repoman -t -p C:\xdc-o19\exports ti.platforms.*
Displays all info on archived packages whose names begin with ti.platforms. in C:\xdc-o19\exports
xs xdc.tools.repoman -t -p C:\xdc-o19\exports ti_platforms*.tar
Displays all info on packages in files that match ti_platforms*.tar in C:\xdc-o19\exports
xs xdc.tools.repoman -t -p C:\xdc-o19\exports ti.catalog.c6000 ti.catalog.sim6xxx
Displays all info on archived packages ti.catalog.c6000 and ti.catalog.sim6xxx in C:\xdc-o19\exports
xs xdc.tools.repoman -t http://www.sanb.design.ti.com/ti_sdo_ce_wizards_genserver.tar
Displays all info on archived package ti_sdo_ce_wizards_genserver.tar at URL http://www.sanb.design.ti.com
xs xdc.tools.repoman -x
Extracts all archived packages in the current directory to the current repository
xs xdc.tools.repoman -x -r C:\myrepo\packages -p C:\exports
Extracts all archived packages in C:\exports to C:\myrepo\packages repository
xs xdc.tools.repoman -x -r C:\myrepo\packages -p C:\exports ti.catalog.*
Extracts packages matching ti.catalog.* from c:\exports to c:\myrepo\packages
xs xdc.tools.repoman -x -r C:\myrepo\packages C:\exports\ti_catalog*.tar
Extracts packages from files matching C:\exports\ti_catalog*.tar to c:\myrepo\packages
xs xdc.tools.repoman -x -r C:\myrepo\packages C:\exports\ti_catalog*.tar
Extracts packages from files matching C:\exports\ti_catalog*.tar to c:\myrepo\packages
xs xdc.tools.repoman -x -R -r C:\myrepo -p C:\xdc-o19\exports ti.platforms.sim6xxx
Extracts the package ti.platforms.sim6xxx and all recursively dependent packages from C:\xdc-o19\exports to C:\myrepo
xs xdc.tools.repoman -x -r C:\ -b packages C:\exports\xdc_core.tar.gz
Extracts the repository 'packages' from bundle C:\exports\xdc_core.tar.gz to C:\
xs xdc.tools.repoman -x -r C:\myrepo -b examples ti.xdais.dm.examples.videnc1_copy C:\xdais_6_24.tar.gz
Extracts the package ti.xdais.dm.examples.videnc1_copy from repository 'examples' in bundle C:\xdais_6_24.tar.gz to C:\myrepo
xs xdc.tools.repoman -x -r C:\myrepo http://www.sanb.design.ti.com/ti_sdo_ce_wizards_genserver.tar
Extracts package ti_sdo_ce_wizards_genserver.tar at URL http://www.sanb.design.ti.com to c:\myrepo
xs xdc.tools.repoman -r C:\myrepo -b examples http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/7_10/exports/xdais_7_10.tar.gz
Extracts all of the packages in repository 'examples' from bundle xdais_7_10.tar.gz at URL http://... to C:\myrepo
xs xdc.tools.repoman -x -r C:\myrepo -b examples ti.xdais.dm.examples.videnc1_copy http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/6_24/exports/xdais_6_24.tar.gz
Extracts the package ti.xdais.dm.examples.videnc1_copy in repository 'examples' from bundle xdais_7_10.tar.gz at URL http://... to C:\myrepo
xs xdc.tools.repoman -c -r C:\destdir\packages -p C:\srcdir\packages ti.catalog.c6000
Copies the package ti.catalog.c6000 from C:\srcdir\packages to C:\destdir\packages
xs xdc.tools.repoman --rsave -f c:/repoinfo.rmn -p c:/pkgarchives;c:/testpkgs c:/myrepo
Saves package information for repository c:/myrepo to file c:/repoinfo.rmn. Also saves the search path c:/pkgarchives;c:/testpkgs
xs xdc.tools.repoman --rrestore -f c:/repoinfo.rmn -p c:/pkgarchives;c:/testpkgs
Restores all of the packages in the repository referenced in c:/repoinfo.rmn. Uses the search path c:/pkgarchives;c:/testpkgs to find and copy packages. Will create the repository if it doesn't exist.
xs xdc.tools.repoman --rcreate -f c:/repoinfo.rmn -p c:/pkgarchives;c:/testpkgs c:/mynewrepo
Creates the new repository c:/mynewrepo from the repository referenced in the file c:/repoinfo.rmn. Uses the search path c:/pkgarchives;c:/testpkgs to find and copy packages. If successful, the newly created repository will be identical to its predecessor referenced in c:/repoinfo.rmn.
xs xdc.tools.repoman --providerId my_codec_engine c:/codec_engine_2_23/mypackages
Assigns the providerId attribute in c:/codec_engine_2_23/mypackages/.repo.xml the value my_codec_engine. If c:/codec_engine_2_23/mypackages/.repo.xml does not exist, it will be created.
struct Main.NameResults
index URL
XDCscript usage meta-domain
var obj = new Main.NameResults;
    obj.pkgName = Main.PkgName[] ...
    // array of PkgName structures
struct Main.Pkg
index URL
XDCscript usage meta-domain
var obj = new Main.Pkg;
    obj.name = String ...
    obj.file = String ...
    obj.release = String ...
    obj.label = String ...
    obj.version = String ...
    obj.date = String ...
    obj.buildable = String ...
    obj.originalProviderId = String ...
    obj.producerId = String ...
    obj.reqs = String[] ...
    obj.refs = String[] ...
    obj.repository = Main.Repo[] ...
struct Main.PkgName
index URL
XDCscript usage meta-domain
var obj = new Main.PkgName;
    obj.name = String ...
    obj.repository = Main.Repo[] ...
struct Main.Repo
index URL

represents a repository in a bundle

XDCscript usage meta-domain
var obj = new Main.Repo;
    obj.name = String ...
    obj.pkg = String[] ...
struct Main.Results
index URL
XDCscript usage meta-domain
var obj = new Main.Results;
    obj.repository = String ...
    obj.providerId = String ...
    obj.producerId = String ...
    obj.writable = Bool ...
    obj.pkg = Main.Pkg[] ...
    // array of package info structures
config Main.usage // module-wide
index URL

Usage for this command

XDCscript usage meta-domain
Main.usage = String[] [
    '-t [-v] [-p pathname] [packagename...|packagefile...]',
    '-n [-v] [-p pathname] [packagename...|packagefile...]',
    '-x [-v] [-D] [-R] [-F] [-r destrepo] [-p path] packagename...|packagefile...',
    '-x [-v] [-D] [-R] [-F] [-r destrepo] [-p path] -b bundlerepository [packagename...] bundleFile',
    '-d [-v] [-F] [-r destrepo] packagename...',
    '-c [-v] [-F] [--providerId] [-r destrepo] [-p pathname] packagename...',
    '--rsave -f file [-p searchpath] repository...',
    '--rrestore -f file [-p searchpath] [index-spec]',
    '--rcreate -f file [-p searchpath] [index-spec] destrepository...',
    '[-F] --providerId providerId [repository...]'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.arrFlag = Bool false;
    // Return an array of strings
    params.bundleRepositoryArg = String null;
    // Bundle repository arg
    params.copyFlag = Bool false;
    // Copy package(s)
    params.deleteFlag = Bool false;
    // Delete package(s)
    params.dependentFlag = Bool false;
    // Include package dependencies
    params.extractFlag = Bool false;
    // Extract package(s)
    params.fileArg = String null;
    // file arg to save/restore repository
    params.forceFlag = Bool false;
    // Force incompatible packages
    params.infoFlag = Bool false;
    // Display package info
    params.namesFlag = Bool false;
    // Display package names only
    params.pathArg = String null;
    // Path arg
    params.provIdArg = String null;
    // providerId for a repository
    params.rcreateFlag = Bool false;
    // Create one or more repositories from information in file
    params.recursiveDepFlag = Bool false;
    // Recursive include package dependencies
    params.repositoryArg = String null;
    // Repository arg
    params.rrestoreFlag = Bool false;
    // Restore one or more repositories from information in file
    params.rsaveFlag = Bool false;
    // Save a repository's information to file
    params.verboseFlag = Bool false;
    // Print informative messages during execution
    params.xmlFlag = Bool false;
    // Return a Results struct as XML
config Main.arrFlag // instance
index URL

Return an array of strings

XDCscript usage meta-domain
var params = new Main.Params;
...
params.arrFlag = Bool false;
config Main.bundleRepositoryArg // instance
index URL

Bundle repository arg

XDCscript usage meta-domain
var params = new Main.Params;
...
params.bundleRepositoryArg = String null;
config Main.copyFlag // instance
index URL

Copy package(s)

XDCscript usage meta-domain
var params = new Main.Params;
...
params.copyFlag = Bool false;
config Main.deleteFlag // instance
index URL

Delete package(s)

XDCscript usage meta-domain
var params = new Main.Params;
...
params.deleteFlag = Bool false;
config Main.dependentFlag // instance
index URL

Include package dependencies

XDCscript usage meta-domain
var params = new Main.Params;
...
params.dependentFlag = Bool false;
config Main.extractFlag // instance
index URL

Extract package(s)

XDCscript usage meta-domain
var params = new Main.Params;
...
params.extractFlag = Bool false;
config Main.fileArg // instance
index URL

file arg to save/restore repository

XDCscript usage meta-domain
var params = new Main.Params;
...
params.fileArg = String null;
config Main.forceFlag // instance
index URL

Force incompatible packages

XDCscript usage meta-domain
var params = new Main.Params;
...
params.forceFlag = Bool false;
config Main.infoFlag // instance
index URL

Display package info

XDCscript usage meta-domain
var params = new Main.Params;
...
params.infoFlag = Bool false;
config Main.namesFlag // instance
index URL

Display package names only

XDCscript usage meta-domain
var params = new Main.Params;
...
params.namesFlag = Bool false;
config Main.pathArg // instance
index URL

Path arg

XDCscript usage meta-domain
var params = new Main.Params;
...
params.pathArg = String null;
config Main.provIdArg // instance
index URL

providerId for a repository

XDCscript usage meta-domain
var params = new Main.Params;
...
params.provIdArg = String null;
config Main.rcreateFlag // instance
index URL

Create one or more repositories from information in file

XDCscript usage meta-domain
var params = new Main.Params;
...
params.rcreateFlag = Bool false;
config Main.recursiveDepFlag // instance
index URL

Recursive include package dependencies

XDCscript usage meta-domain
var params = new Main.Params;
...
params.recursiveDepFlag = Bool false;
config Main.repositoryArg // instance
index URL

Repository arg

XDCscript usage meta-domain
var params = new Main.Params;
...
params.repositoryArg = String null;
config Main.rrestoreFlag // instance
index URL

Restore one or more repositories from information in file

XDCscript usage meta-domain
var params = new Main.Params;
...
params.rrestoreFlag = Bool false;
config Main.rsaveFlag // instance
index URL

Save a repository's information to file

XDCscript usage meta-domain
var params = new Main.Params;
...
params.rsaveFlag = Bool false;
config Main.verboseFlag // instance
index URL

Print informative messages during execution

XDCscript usage meta-domain
var params = new Main.Params;
...
params.verboseFlag = Bool false;
config Main.xmlFlag // instance
index URL

Return a Results struct as XML

XDCscript usage meta-domain
var params = new Main.Params;
...
params.xmlFlag = Bool false;
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:38 GMT


module xdc.tools.repoman.Main

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    package xdc.tools.repoman;
    14
    15    /*!
    16     *  ======== xdc.tools.repoman.Main ========
    17     *  Repository Manager tool
    18     *
    19     *  This tool creates and manages package repositories.  It displays
    20     *  information about archived packages, extracts archived packages,
    21     *  extracts repositories from bundles and deletes packages from
    22     *  repositories.
    23     *
    24     *  Information about archived packages can be displayed with
    25     *  the '-t' and '-n' options. The '-p' argument is used to
    26     *  specify a directory in which to search. If the '-p' arg is omitted,
    27     *  the current directory is searched. Specific packages can searched
    28     *  for by specifying one or more package names, or one or more package
    29     *  archives at the end of the command line.  If no packages are specified,
    30     *  information on all packages found in the search directory will be
    31     *  displayed.
    32     *
    33     *  Archived packages can be extracted to a repository with the '-x'
    34     *  option. '-x -D' will extract dependent packages, too. '-x -R' will
    35     *  recursively extract dependent packages. If any of the packages in
    36     *  the specified package list are not compatible, the operation will
    37     *  be aborted. '-F' can be used to force all packages to be extracted,
    38     *  regardles of compatibility. The '-p' arg is used to specify a
    39     *  directory to search in. If not specified, the current directory will
    40     *  be searched. The '-x' option also extracts a repository or packages
    41     *  from a bundle. In this case, the last argument specifies the bundle
    42     *  from which to extract the repository. The repository to be extracted
    43     *  is specified with the '-b' arg. If just packages are to be extracted,
    44     *  one or more package names should follow the name of the repository
    45     *  that they should be extracted from.
    46     *
    47     *  Packages can be deleted from a repository with '-d'. If the package
    48     *  has any subdirectores that contain packages, they will be left intact.
    49     *  After the package is deleted, if the package has no subdirectories
    50     *  with packages, empty directories that are part of the fully qualified
    51     *  package will be deleted, too.
    52     *
    53     *  Packages can be copied between repositories with '-c'. If the package
    54     *  being copied already exists in the destination repository, it will be
    55     *  deleted prior to being replaced.
    56     *
    57     *  The '-r' argument specifies a destination repository. If '-r' is
    58     *  omitted, the repository of the current package is used. If there is
    59     *  no current package, the current directory is used.
    60     *
    61     *  When a package name is given, it can be specified in full, such as
    62     *  'ti.platforms.sim6xxx', or the wildcard characters '*' and '?' may be
    63     *  used, as in 'ti.platforms.*' or 'ti.catalog.c??00'. A version/key can
    64     *  also be attached to a package name in the following manner:
    65     *  'ti.platforms.c6000[1,0,0,0,313835]'.  A prefix of the full version/key
    66     *  may also be used: 'ti.platforms.c6000[1,0]'.
    67     *
    68     *  If a package name has multiple matches either with or without a
    69     *  version/key specified, the most recent will be selected. Wildcards may
    70     *  also be used when naming a package archive file.
    71     *
    72     *  @a(Examples)
    73     *  xs xdc.tools.repoman -t
    74     *  @p(dlist)
    75     *  Displays all info on all archived packages in the current directory
    76     *  @p
    77     *
    78     *  xs xdc.tools.repoman -t -p C:\xdc-o19\exports
    79     *  @p(dlist)
    80     *  Displays all info on all archived packages in C:\xdc-o19\exports
    81     *  @p
    82     *
    83     *  xs xdc.tools.repoman -t -p C:\xdc-o19\exports ti.platforms.*
    84     *  @p(dlist)
    85     *  Displays all info on archived packages whose names begin with
    86     *  ti.platforms. in C:\xdc-o19\exports
    87     *  @p
    88     *
    89     *  xs xdc.tools.repoman -t -p C:\xdc-o19\exports ti_platforms*.tar
    90     *  @p(dlist)
    91     *  Displays all info on packages in files that match ti_platforms*.tar
    92     *  in C:\xdc-o19\exports
    93     *  @p
    94     *
    95     *  xs xdc.tools.repoman -t -p C:\xdc-o19\exports ti.catalog.c6000 ti.catalog.sim6xxx
    96     *  @p(dlist)
    97     *  Displays all info on archived packages ti.catalog.c6000 and
    98     *  ti.catalog.sim6xxx in C:\xdc-o19\exports
    99     *  @p
   100     *
   101     *  xs xdc.tools.repoman -t http://www.sanb.design.ti.com/ti_sdo_ce_wizards_genserver.tar
   102     *  @p(dlist)
   103     *  Displays all info on archived package ti_sdo_ce_wizards_genserver.tar
   104     *  at URL http://www.sanb.design.ti.com
   105     *  @p
   106     *
   107     *  xs xdc.tools.repoman -x
   108     *  @p(dlist)
   109     *  Extracts all archived packages in the current directory to the current
   110     *  repository
   111     *  @p
   112     *
   113     *  xs xdc.tools.repoman -x -r C:\myrepo\packages -p C:\exports
   114     *  @p(dlist)
   115     *  Extracts all archived packages in C:\exports to C:\myrepo\packages
   116     *  repository
   117     *  @p
   118     *
   119     *  xs xdc.tools.repoman -x -r C:\myrepo\packages -p C:\exports ti.catalog.*
   120     *  @p(dlist)
   121     *  Extracts packages matching ti.catalog.* from c:\exports to
   122     *  c:\myrepo\packages
   123     *  @p
   124     *
   125     *  xs xdc.tools.repoman -x -r C:\myrepo\packages C:\exports\ti_catalog*.tar
   126     *  @p(dlist)
   127     *  Extracts packages from files matching C:\exports\ti_catalog*.tar
   128     *  to c:\myrepo\packages
   129     *  @p
   130     *
   131     *  xs xdc.tools.repoman -x -r C:\myrepo\packages C:\exports\ti_catalog*.tar
   132     *  @p(dlist)
   133     *  Extracts packages from files matching C:\exports\ti_catalog*.tar
   134     *  to c:\myrepo\packages
   135     *  @p
   136     *
   137     *  xs xdc.tools.repoman -x -R -r C:\myrepo -p C:\xdc-o19\exports ti.platforms.sim6xxx
   138     *  @p(dlist)
   139     *  Extracts the package ti.platforms.sim6xxx and all recursively
   140     *  dependent packages from C:\xdc-o19\exports to C:\myrepo
   141     *  @p
   142     *
   143     *  xs xdc.tools.repoman -x -r C:\ -b packages C:\exports\xdc_core.tar.gz
   144     *  @p(dlist)
   145     *  Extracts the repository 'packages' from bundle
   146     *  C:\exports\xdc_core.tar.gz to C:\
   147     *  @p
   148     *
   149     *  xs xdc.tools.repoman -x -r C:\myrepo -b examples ti.xdais.dm.examples.videnc1_copy
   150     *  C:\xdais_6_24.tar.gz
   151     *  @p(dlist)
   152     *  Extracts the package ti.xdais.dm.examples.videnc1_copy from repository
   153     *  'examples' in bundle
   154     *  C:\xdais_6_24.tar.gz to C:\myrepo
   155     *  @p
   156     *
   157     *  xs xdc.tools.repoman -x -r C:\myrepo http://www.sanb.design.ti.com/ti_sdo_ce_wizards_genserver.tar
   158     *  @p(dlist)
   159     *  Extracts package ti_sdo_ce_wizards_genserver.tar at URL http://www.sanb.design.ti.com
   160     *  to c:\myrepo
   161     *  @p
   162     *
   163     *  xs xdc.tools.repoman -r C:\myrepo -b examples
   164     *  http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/7_10/exports/xdais_7_10.tar.gz
   165     *  @p(dlist)
   166     *  Extracts all of the packages in repository 'examples' from bundle xdais_7_10.tar.gz at URL
   167     *  http://... to C:\myrepo
   168     *  @p
   169     *
   170     *  xs xdc.tools.repoman -x -r C:\myrepo -b examples ti.xdais.dm.examples.videnc1_copy
   171     *  http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/6_24/exports/xdais_6_24.tar.gz
   172     *  @p(dlist)
   173     *  Extracts the package ti.xdais.dm.examples.videnc1_copy in repository
   174     *  'examples' from bundle xdais_7_10.tar.gz at URL http://... to C:\myrepo
   175     *  @p
   176     *
   177     *  xs xdc.tools.repoman -c -r C:\destdir\packages -p C:\srcdir\packages ti.catalog.c6000
   178     *  @p(dlist)
   179     *  Copies the package ti.catalog.c6000 from C:\srcdir\packages to
   180     *  C:\destdir\packages
   181     *  @p
   182     *
   183     *  xs xdc.tools.repoman --rsave -f c:/repoinfo.rmn -p c:/pkgarchives;c:/testpkgs c:/myrepo
   184     *  @p(dlist)
   185     *  Saves package information for repository c:/myrepo to file c:/repoinfo.rmn.
   186     *  Also saves the search path c:/pkgarchives;c:/testpkgs
   187     *  @p
   188     *
   189     *  xs xdc.tools.repoman --rrestore -f c:/repoinfo.rmn -p c:/pkgarchives;c:/testpkgs
   190     *  @p(dlist)
   191     *  Restores all of the packages in the repository referenced in
   192     *  c:/repoinfo.rmn. Uses the search path c:/pkgarchives;c:/testpkgs to find
   193     *  and copy packages. Will create the repository if it doesn't exist.
   194     *  @p
   195     *
   196     *  xs xdc.tools.repoman --rcreate -f c:/repoinfo.rmn -p
   197     *                       c:/pkgarchives;c:/testpkgs c:/mynewrepo
   198     *  @p(dlist)
   199     *  Creates the new repository c:/mynewrepo from the repository referenced in
   200     *  the file c:/repoinfo.rmn.  Uses the search path c:/pkgarchives;c:/testpkgs
   201     *  to find and copy packages. If successful, the newly created repository
   202     *  will be identical to its predecessor referenced in c:/repoinfo.rmn.
   203     *  @p
   204     *
   205     *  xs xdc.tools.repoman --providerId my_codec_engine c:/codec_engine_2_23/mypackages
   206     *  @p(dlist)
   207     *  Assigns the providerId attribute in  c:/codec_engine_2_23/mypackages/.repo.xml
   208     *  the value my_codec_engine. If c:/codec_engine_2_23/mypackages/.repo.xml does not
   209     *  exist, it will be created.
   210     *  @p
   211     *
   212     */
   213    metaonly module Main inherits xdc.tools.ICmd {
   214
   215        override config String usage[] = [
   216            '-t [-v] [-p pathname] [packagename...|packagefile...]',
   217            '-n [-v] [-p pathname] [packagename...|packagefile...]',
   218            '-x [-v] [-D] [-R] [-F] [-r destrepo] [-p path] packagename...|packagefile...',
   219            '-x [-v] [-D] [-R] [-F] [-r destrepo] [-p path] -b bundlerepository [packagename...] bundleFile',
   220            '-d [-v] [-F] [-r destrepo] packagename...',
   221            '-c [-v] [-F] [--providerId] [-r destrepo] [-p pathname] packagename...',
   222            '--rsave -f file [-p searchpath] repository...',
   223            '--rrestore -f file [-p searchpath] [index-spec]',
   224            '--rcreate -f file [-p searchpath] [index-spec] destrepository...',
   225            '[-F] --providerId providerId [repository...]'
   226        ];
   227
   228       /*! represents a repository in a bundle */
   229        @XmlDtd
   230        metaonly struct Repo {
   231            String name;
   232            String pkg[];
   233        }
   234
   235        @XmlDtd
   236        metaonly struct Pkg {
   237            String name;
   238            String file;
   239            String release;
   240            String label;
   241            String version;
   242            String date;
   243            String buildable;
   244            String originalProviderId;
   245            String producerId;
   246            String reqs[];
   247            String refs[];
   248            Repo repository[];
   249        }
   250
   251        @XmlDtd
   252        metaonly struct Results {
   253            String repository;
   254            String providerId;
   255            String producerId;
   256            Bool writable;
   257            Pkg pkg[];         /*! array of package info structures */
   258        }
   259
   260        @XmlDtd
   261        metaonly struct PkgName {
   262            String name;
   263            Repo repository[];
   264        }
   265
   266        @XmlDtd
   267        metaonly struct NameResults {
   268            PkgName pkgName[];     /*! array of PkgName structures */
   269        }
   270
   271    instance:
   272
   273        //!Display package info
   274        @CommandOption('t')
   275        config Bool infoFlag = false;
   276
   277        //!Display package names only
   278        @CommandOption('n')
   279        config Bool namesFlag = false;
   280
   281        //!Extract package(s)
   282        @CommandOption('x')
   283        config Bool extractFlag = false;
   284
   285        //!Delete package(s)
   286        @CommandOption('d')
   287        config Bool deleteFlag = false;
   288
   289        //!Path arg
   290        @CommandOption('p')
   291        config String pathArg = null;
   292
   293        //!Repository arg
   294        @CommandOption('r')
   295        config String repositoryArg = null;
   296
   297        //!Include package dependencies
   298        @CommandOption('D')
   299        config Bool dependentFlag = false;
   300
   301        //!Recursive include package dependencies
   302        @CommandOption('R')
   303        config Bool recursiveDepFlag = false;
   304
   305        //!Return an array of strings
   306        @CommandOption('a')
   307        config Bool arrFlag = false;
   308
   309        //!Return a Results struct as XML
   310        @CommandOption('X')
   311        config Bool xmlFlag = false;
   312
   313        //!Print informative messages during execution
   314        @CommandOption('v')
   315        config Bool verboseFlag = false;
   316
   317        //!Bundle repository arg
   318        @CommandOption('b')
   319        config String bundleRepositoryArg = null;
   320
   321        //!Force incompatible packages
   322        @CommandOption('F')
   323        config Bool forceFlag = false;
   324
   325        //!Copy package(s)
   326        @CommandOption('c')
   327        config Bool copyFlag = false;
   328
   329        //!file arg to save/restore repository
   330        @CommandOption('f')
   331        config String fileArg = null;
   332
   333        //!Save a repository's information to file
   334        @CommandOption('rsave')
   335        config Bool rsaveFlag = false;
   336
   337        //!Restore one or more repositories from information in file
   338        @CommandOption('rrestore')
   339        config Bool rrestoreFlag = false;
   340
   341        //!Create one or more repositories from information in file
   342        @CommandOption('rcreate')
   343        config Bool rcreateFlag = false;
   344
   345        //! providerId for a repository
   346        @CommandOption('providerId')
   347        config string provIdArg = null;
   348
   349    }
   350
   351
   352
   353    /*
   354     *  @(#) xdc.tools.repoman; 1, 0, 0,220; 10-28-2012 21:41:26; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
   355     */
   356


package xdc.tools.repoman.sg
index URL

Graphical interface to repoman tool

  • USAGE
  • OPTIONS
  • DETAILS
  • SEE
For more information about how to use this tool, see the xdc.tools.repoman.sg User's Guide. [ more ... ]
XDCspec declarations sourced in xdc/tools/repoman/sg/package.xdc
requires xdc.tools.sg;
package xdc.tools.repoman.sg [1, 0, 0] {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.repoman.sg [--help]
    [--packagepath PATH]
OPTIONS
--packagepath
repositories to scan for packages
DETAILS
For more information about how to use this tool, see the xdc.tools.repoman.sg User's Guide.
SEE
xdc.tools.repoman
generated on Thu, 08 Nov 2012 02:13:38 GMT


package xdc.tools.repoman.sg

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    requires xdc.tools.sg;
    13
    14    /*
    15     *  ======== xdc.tools.repoman.sg ========
    16     */
    17    package xdc.tools.repoman.sg [1, 0, 0] {
    18        module Main;
    19    }
    20
    21    /*
    22     *  @(#) xdc.tools.repoman.sg; 1, 0, 0,219; 10-28-2012 21:41:31; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    23     */
    24


module xdc.tools.repoman.sg.Main

metaonly module xdc.tools.repoman.sg.Main
index URL

Command implementation

  • DETAILS
  • SEE
  • XDCscript usage
  • Individual elements
For more information about how to use this tool, see the xdc.tools.repoman.sg User's Guide. [ more ... ]
XDCscript usage meta-domain sourced in xdc/tools/repoman/sg/Main.xdc
var Main = xdc.useModule('xdc.tools.repoman.sg.Main');
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        '[--packagepath PATH]'
    ];
module-wide functions
     Main.exec// xs script entry point(Any args) returns Any
     Main.main// xs shell entry point(Any args) returns Any
per-instance config parameters
    var params = new Main.Params// Instance config-params object;
        params.pathArg// repositories to scan for packages = String null;
per-instance functions
     inst.run// Underlying implementation(Cmdr.Instance cmdr, String[] args) returns Any
DETAILS
For more information about how to use this tool, see the xdc.tools.repoman.sg User's Guide.
SEE
xdc.tools.repoman
config Main.usage // module-wide
index URL

Usage for this command

XDCscript usage meta-domain
Main.usage = String[] [
    '[--packagepath PATH]'
];
Main.exec() // module-wide
index URL

xs script entry point

XDCscript usage meta-domain
Main.exec(Any args) returns Any
Main.main() // module-wide
index URL

xs shell entry point

XDCscript usage meta-domain
Main.main(Any args) returns Any
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Main.Params;
// Instance config-params object
    params.pathArg = String null;
    // repositories to scan for packages
config Main.pathArg // instance
index URL

repositories to scan for packages

XDCscript usage meta-domain
var params = new Main.Params;
...
params.pathArg = String null;
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Thu, 08 Nov 2012 02:13:38 GMT


module xdc.tools.repoman.sg.Main

     1    /*
     2     *Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== Main ========
    15     *  Graphical interface to repoman tool
    16     *
    17     *  For more information about how to use this tool, see the
    18     *  {@link http://rtsc.eclipse.org/docs-tip/Command_-_xdc.tools.repoman.sg xdc.tools.repoman.sg User's Guide}.
    19     *
    20     *  @see xdc.tools.repoman
    21     */
    22    metaonly module Main inherits xdc.tools.ICmd {
    23
    24        override config String usage[] = [
    25           '[--packagepath PATH]'
    26        ];
    27        /*!
    28         *  ======== createPartControl ========
    29         *  @_nodoc
    30         */
    31        function createPartControl(parent);
    32    instance:
    33        //! repositories to scan for packages
    34        @CommandOption('packagepath')
    35        config string pathArg = null;
    36    }
    37    /*
    38     *  @(#) xdc.tools.repoman.sg; 1, 0, 0,219; 10-28-2012 21:41:31; /db/ztree/library/trees/xdctools/xdctools-f16x/src/
    39     */
    40


XDCtools 3.24.05.48 GA Release Notes

November 07, 2012

Introduction Licensing Documentation What's New Upgrade & Compatibility Information Host Support Dependencies Device Support Validation Information Known Issues Versioning Technical Support

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by Code Composer Studio (CCS) to provide support for RTSC content in an integrated development environment.

back to top

Licensing

Almost all of XDCtools is released under either EPL v1.0 or dual-licensed under EPL or EDL v1.0. However, there are also a number of third-party components included which are made available under a number of other open-source licenses, detailed here.

back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia.

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

What's New

The following significant changes are included in XDCtools 3.24 :

  • The XDCtools product has been extended to work with Code Composer Studio v5.2.0 and above. However, note that this release will no longer work with versions of CCS prior to v5.1.1.
  • This release has been updated to support the Grace 2.0 and SYS/BIOS 6.34 products within Code Composer Studio 5.3.0 as well as the Grace Stand-Alone Tool.

The following defects were resolved in this release:

ID | Headline
282572 | Assert_isTrue(cond,NULL) fails
323520 | IAR target should be provided
340586 | Semaphore_pend() timeout = FOREVER
353148 | Provide a XDC spec'd Logger implementation with classic C callouts
392368 | configuro fails with mysterious error if cfgArgs has quotes
393694 | configuro should log errors to enhance error reporting by other tools

back to top

Upgrade and Compatibility Information

Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDCtools product release numbers (described in Versioning below).

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.

back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 5.1.1 (or later).

back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)

back to top

Validation Information

This release was built and validated using Code Composer Studio version 5.3.0.

The targets supported by this release and the versions of the compilers used to validate them are listed here.

back to top

Known Issues

To see a complete list of XDCTools issues, go to the Eclipse RTSC project's Bugzilla database.

To file a new bug in this database, click here.

back to top

Versioning

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support and Product Updates

Support questions on the product should be posted to the Eclipse RTSC project's newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: November 07, 2012 Build Ver: 3.24.05.48 Rev: q48


package xdc.shelf
index URL

Container for third party jars required by XDCtools

The following jars are part of this package: [ more ... ]
XDCspec declarations sourced in xdc/shelf/package.xdc
package xdc.shelf [1, 0, 0] {
}
DETAILS
The following jars are part of this package:
Jar | Version | License | From | Description
js.jar | 1.6R6 | MPL 1.1 (note) | http://www.mozilla.org/rhino | Java implementation of JavaScript 1.5
antlr.jar | 3.1.1 | BSD | http://www.antlr.org | LR parser generator used to implement the RTSC IDL
tar.jar | 2.5 | Public Domain | http://www.trustice.com/java/tar | tar file reader
In addition to the jars above, XDCtools requires the following third-party software:
Name | Version | License | From | Description
gmake | 3.81 | GPL v2 | http://savannah.gnu.org/projects/make | command run by the `xdc` command to create and build packages
J2SE Runtime Environment(JRE) | 1.6.0_34 | Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX | http://java.sun.com/j2se/1.5.0 | XDCtools core functionality is implemented in Java. Also required by the Rhino JavaScript engine shipped with XDCtools.
Although the following tools are not required, they are optionally shipped with XDCtools distributions to ensure consistent behavior across various development platforms.
Exe | Version | License | From | Description
zip, unzip | 2.3 and 5.50 | info-zip | http://www.info-zip.org | command line utilities to zip and unzip package releases
tar | 1.13 | GPL v2 | http://www.gnu.org/software/tar | command line utilities to archive package directories
sh | cygwin 1.5.25-15 | GPL v2 | http://cygwin.com | (Windows only) korn shell compatible shell used by GNU make
All other files that are part of XDCtools are licensed under either EPL v1.0 or dual-licensed under EDL v1.0.
generated on Thu, 08 Nov 2012 02:34:21 GMT


RTSC/XDCtools 3.24.05.48

revision 3.24.05.48

RTSC/XDCtools

Real‑Time Software Components for Embedded Platforms

Welcome to RTSC!

RTSC is a C-based programming model for developing, delivering, and deploying Real-Time Software Components targeted for embedded platforms. The XDCtools product includes tooling and runtime elements for component-based programming using RTSC.

This following material applies to XDCtools 3.24.05.48. You can also view the most up to date documentation online at rtsc.eclipse.org.

Getting started

Using RTSC with CCStudio v4 Getting started and Flash tutorials

Document binders

General Information | White-papers and high-level FAQs
RTSC Programming | From primers to advanced topics
XDCtools User's Guide | Working with the XDCtools product
XDCtools Reference Manual | Detailing all elements of the XDCtools product

Packages

API Reference (cdoc) RTSC packages in the XDCtools product

Other documents

Release notes | Release notes for XDCtools 3.24.05.48
License | For XDCtools and bundled third-party files

Copyright © 2008 The Eclipse Foundation. All Rights Reserved


About the docs directory
========================

The documents in this directory can be viewed several ways:
 -- online at http://rtsc.eclipse.org/docs-tip
 -- using the "xdctools.chm" Microsoft HTML Help file on Windows
 -- using the Eclipse Help viewer after installing the
    "RTSC/XDCtools (IDE Support)" feature
 -- unzipping the "docs.zip" file and viewing with any web browser

To unzip the "docs.zip" file, use any .zip file handler program to expand
it directly into the docs directory. The docs can then be accessed via the
"index.html" file.

Note: Don't move, remove, or rename the "docs.zip" file itself, since
Eclipse Help displays its content directly from this file.


Supported Targets (build host: Linux)
Target Name | rts Package | Code Gen Version |  | Required -D Options
 |  | compile | link
gnu.targets.Linux86 | gnu.targets.rts86U | 4.1.0 | 4.1.0 | -Dxdc_target_types__=gnu/targets/std.h -Dxdc_target_name__=Linux86
gnu.targets.Mingw | gnu.targets.rts86GW | 4.4.0 | 4.4.0 | -Dxdc_target_types__=gnu/targets/std.h -Dxdc_target_name__=Mingw
gnu.targets.Sparc | gnu.targets.rts5 | 4.1.0 | 4.1.0 | -Dxdc_target_types__=gnu/targets/std.h -Dxdc_target_name__=Sparc
gnu.targets.arm.GCArmv5T | gnu.targets.arm.rtsv5T | 3.4.3 | 4.4.1 | -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=GCArmv5T
gnu.targets.arm.GCArmv6 | gnu.targets.arm.rtsv6 | 4.3.2 | 4.4.1 | -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=GCArmv6
gnu.targets.arm.GCArmv7A | gnu.targets.arm.rtsv7A | 4.3.2 | 4.4.1 | -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=GCArmv7A
gnu.targets.arm.M3 | gnu.targets.arm.rtsv7M | 4.5.2 | 4.5.2 | -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=M3
gnu.targets.arm.M4 | gnu.targets.arm.rtsv7M | 4.5.2 | 4.5.2 | -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=M4
gnu.targets.arm.MVArm9 | gnu.targets.arm.rts470MV | 3.4.3 | 3.4.3 | -Dxdc_target_types__=gnu/targets/std.h -Dxdc_target_name__=MVArm9
gnu.targets.arm.UCArm9 | gnu.targets.arm.rts470uC | 4.2.1 | 4.2.1 | -Dxdc_target_types__=gnu/targets/std.h -Dxdc_target_name__=UCArm9
google.targets.arm.Bionic | google.targets.arm.rts | 4.4.3 | 4.4.3 | -Dxdc_target_types__=google/targets/arm/std.h -Dxdc_target_name__=Bionic
iar.targets.msp430.MSP430 | iar.targets.msp430.rts | 5.40.2 | 5.50.0 | -Dxdc_target_types__=iar/targets/msp430/std.h -Dxdc_target_name__=MSP430
iar.targets.msp430.MSP430X_large | iar.targets.msp430.rts | 5.40.2 | 5.50.0 | -Dxdc_target_types__=iar/targets/msp430/std.h -Dxdc_target_name__=MSP430X_large
iar.targets.msp430.MSP430X_small | iar.targets.msp430.rts | 5.40.2 | 5.50.0 | -Dxdc_target_types__=iar/targets/msp430/std.h -Dxdc_target_name__=MSP430X_small
microsoft.targets.Net32 | microsoft.targets.rts | 13.10.3052 | 13.10.3052 | -Dxdc_target_types__=microsoft/targets/std.h -Dxdc_target_name__=Net32
microsoft.targets.VC98 | microsoft.targets.rts | 12.00.8168 | 12.00.8168 | -Dxdc_target_types__=microsoft/targets/std.h -Dxdc_target_name__=VC98
microsoft.targets.Win32 | microsoft.targets.rts | 14.00.50727 | 14.00.50727 | -Dxdc_target_types__=microsoft/targets/std.h -Dxdc_target_name__=Win32
qnx.targets.arm.Qnx | qnx.targets.arm.rts | 4.4.2 | 4.4.2 | -Dxdc_target_types__=qnx/targets/arm/std.h -Dxdc_target_name__=Qnx
ti.targets.C28 | ti.targets.rts2800 | 5.2.3 | 6.1.0 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C28
ti.targets.C28_float | ti.targets.rts2800 | 5.2.3 | 6.1.0 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C28_float
ti.targets.C28_large | ti.targets.rts2800 | 5.2.3 | 6.1.0 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C28_large
ti.targets.C64 | ti.targets.rts6000 | 7.0.3 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64
ti.targets.C64P | ti.targets.rts6000 | 7.0.3 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64P
ti.targets.C64P_big_endian | ti.targets.rts6000 | 7.0.3 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64P_big_endian
ti.targets.C64T | ti.targets.rts6000 | 7.0.3 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64T
ti.targets.C64T_big_endian | ti.targets.rts6000 | 7.0.3 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64T_big_endian
ti.targets.C66 | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C66
ti.targets.C66_big_endian | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C66_big_endian
ti.targets.C674 | ti.targets.rts6000 | 7.0.3 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C674
ti.targets.C674_big_endian | ti.targets.rts6000 | 7.0.3 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C674_big_endian
ti.targets.C67P | ti.targets.rts6000 | 7.0.3 | 7.3.5 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C67P
ti.targets.arm.elf.A8F | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=A8F
ti.targets.arm.elf.A8Fnv | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=A8Fnv
ti.targets.arm.elf.A8Ft | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=A8Ft
ti.targets.arm.elf.A8Fv | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=A8Fv
ti.targets.arm.elf.Arm7 | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=Arm7
ti.targets.arm.elf.Arm7_big_endian | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=Arm7_big_endian
ti.targets.arm.elf.Arm9 | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=Arm9
ti.targets.arm.elf.Arm9t | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=Arm9t
ti.targets.arm.elf.M3 | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=M3
ti.targets.arm.elf.M3_big_endian | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=M3_big_endian
ti.targets.arm.elf.M4 | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=M4
ti.targets.arm.elf.M4F | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=M4F
ti.targets.arm.elf.R4 | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=R4
ti.targets.arm.elf.R4F_big_endian | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=R4F_big_endian
ti.targets.arm.elf.R4Ft | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=R4Ft
ti.targets.arm.elf.R4Ft_big_endian | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=R4Ft_big_endian
ti.targets.arm.elf.R4_big_endian | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=R4_big_endian
ti.targets.arm.elf.R4t | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=R4t
ti.targets.arm.elf.R4t_big_endian | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_target_name__=R4t_big_endian
ti.targets.arp32.elf.ARP32 | ti.targets.arp32.rts | 1.0.0 | 1.0.0 | -Dxdc_target_types__=ti/targets/arp32/elf/std.h -Dxdc_target_name__=ARP32
ti.targets.elf.C64P | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_target_name__=C64P
ti.targets.elf.C64P_big_endian | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_target_name__=C64P_big_endian
ti.targets.elf.C64T | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_target_name__=C64T
ti.targets.elf.C64T_big_endian | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_target_name__=C64T_big_endian
ti.targets.elf.C66 | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_target_name__=C66
ti.targets.elf.C66_big_endian | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_target_name__=C66_big_endian
ti.targets.elf.C674 | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_target_name__=C674
ti.targets.elf.C674_big_endian | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_target_name__=C674_big_endian
ti.targets.elf.C67P | ti.targets.rts6000 | 7.2.0 | 7.3.5 | -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_target_name__=C67P
ti.targets.elf.TMS470 | ti.targets.arm.rtsarm | 4.9.0 | 4.9.1 | -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=TMS470
ti.targets.msp430.MSP430 | ti.targets.msp430.rts430 | 4.1.0 | 4.1.0 | -Dxdc_target_types__=ti/targets/msp430/std.h -Dxdc_target_name__=MSP430
ti.targets.msp430.MSP430X | ti.targets.msp430.rts430 | 4.1.0 | 4.1.0 | -Dxdc_target_types__=ti/targets/msp430/std.h -Dxdc_target_name__=MSP430X
ti.targets.msp430.MSP430X_small | ti.targets.msp430.rts430 | 4.1.0 | 4.1.0 | -Dxdc_target_types__=ti/targets/msp430/std.h -Dxdc_target_name__=MSP430X_small
ti.targets.msp430.elf.MSP430 | ti.targets.msp430.rts430 | 4.1.0 | 4.1.0 | -Dxdc_target_types__=ti/targets/msp430/elf/std.h -Dxdc_target_name__=MSP430
ti.targets.msp430.elf.MSP430X | ti.targets.msp430.rts430 | 4.1.0 | 4.1.0 | -Dxdc_target_types__=ti/targets/msp430/elf/std.h -Dxdc_target_name__=MSP430X
ti.targets.msp430.elf.MSP430X_small | ti.targets.msp430.rts430 | 4.1.0 | 4.1.0 | -Dxdc_target_types__=ti/targets/msp430/elf/std.h -Dxdc_target_name__=MSP430X_small

Column Definitions

Supported Targets
The targets that have been validated via a suite of regression tests (xdctest-b17) that utilize the specified rts package and toolchain versions from a Linux development host.
Target Name
The name of the module that specifies a particular compiler toolchain and runtime model supported by that compiler. Sources built with the same target can be linked together to create an application.
rts Package
The name of a package that contains a pre-built library of the xdc.runtime sources using the specified target.
Code Gen Version
The version of the compiler used to build the rts package and the version of the linker used to link an application that uses the rts package. The version of the compiler is less than or equal to the version of the linker. These two versions bound the range of toolchain versions that have been verified to work with the pre-built libraries provided by the rts package.
Required -D Options
The options that must be added to the complier's command line when compiling any C/C++ source file that references a RTSC module. These options ensure that the portable data types defined by xdc/std.h are appropriate for the specified target.


module gnu.targets.arm.A9

     1    /*
     2     *  Copyright (c) 2012 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    import xdc.bld.ITarget2;
    13
    14    /*!
    15     *  ======== A9.xdc ========
    16     *  Embedded Cortex A9, little endian, bare metal target
    17     *
    18     *  This module defines an embedded bare metal target on Cortex A9. The target
    19     *  generates code compatible with the "v7A" architecture.
    20     *
    21     */
    22    metaonly module A9 inherits gnu.targets.ITarget {
    23        override readonly config string name                = "A9";
    24        override readonly config string suffix              = "a9g";
    25        override readonly config string isa                 = "v7A9";
    26        override readonly config xdc.bld.ITarget.Model model= {
    27            endian: "little",
    28            shortEnums: true
    29        };
    30
    31        override readonly config Bool alignDirectiveSupported = true;
    32
    33        override readonly config string rts = "gnu.targets.arm.rtsv7A";
    34        override config string platform     = "ti.platforms.sdp4430";
    35
    36        override config string LONGNAME = "bin/arm-none-eabi-gcc";
    37
    38        override readonly config String stdInclude = "gnu/targets/arm/std.h";
    39
    40        override readonly config ITarget2.Command cc = {
    41            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    42            opts: "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
    43        };
    44
    45        readonly config ITarget2.Command ccBin = {
    46            cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
    47            opts: "-mabi=aapcs -mapcs"
    48        };
    49
    50        override config ITarget2.Options ccOpts = {
    51            prefix: "-fPIC -Wunused -Wunknown-pragmas",
    52            suffix: "-Dfar= "
    53        };
    54
    55        override readonly config ITarget2.Command asm = {
    56            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
    57            opts: "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
    58        };
    59
    60        readonly config ITarget2.Command asmBin = {
    61            cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
    62            opts: "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
    63        };
    64
    65        override config ITarget2.Options lnkOpts = {
    66            prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
    67            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib"
    68        };
    69
    70        readonly config ITarget2.Command arBin = {
    71            cmd: "bin/arm-none-eabi-ar ",
    72            opts: ""
    73        };
    74
    75        /*
    76         *  ======== profiles ========
    77         */
    78        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    79            ["debug", {
    80                compileOpts: {
    81                    copts: "-g",
    82                    defs:  "-D_DEBUG_=1",
    83                },
    84                linkOpts: "-g",
    85            }],
    86
    87            ["release", {
    88                compileOpts: {
    89                    copts: " -O2 ",
    90                },
    91                linkOpts: " ",
    92            }],
    93        ];
    94
    95        /*
    96         *  ======== compatibleSuffixes ========
    97         */
    98        override config String compatibleSuffixes[] = [];
    99
   100        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   101            t_IArg          : { size: 4, align: 4 },
   102            t_Char          : { size: 1, align: 1 },
   103            t_Double        : { size: 8, align: 4 },
   104            t_Float         : { size: 4, align: 4 },
   105            t_Fxn           : { size: 4, align: 4 },
   106            t_Int           : { size: 4, align: 4 },
   107            t_Int8          : { size: 1, align: 1 },
   108            t_Int16         : { size: 2, align: 2 },
   109            t_Int32         : { size: 4, align: 4 },
   110            t_Int64         : { size: 8, align: 4 },
   111            t_Long          : { size: 4, align: 4 },
   112            t_LDouble       : { size: 8, align: 4 },
   113            t_LLong         : { size: 8, align: 4 },
   114            t_Ptr           : { size: 4, align: 4 },
   115            t_Short         : { size: 2, align: 2 },
   116            t_Size          : { size: 4, align: 4 },
   117        };
   118    }
   119    /*
   120     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   121
   122     */
   123


module gnu.targets.arm.M3

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    import xdc.bld.ITarget2;
    13
    14    /*!
    15     *  ======== M3.xdc ========
    16     *  Embedded little endian Cortex M3 bare metal target
    17     *
    18     *  This module defines an embedded bare metal target on Cortex M3. The target
    19     *  generates code compatible with the "v7M" architecture.
    20     *
    21     */
    22    metaonly module M3 inherits gnu.targets.ITarget {
    23        override readonly config string name                = "M3";
    24        override readonly config string suffix              = "m3g";
    25        override readonly config string isa                 = "v7M";
    26        override readonly config xdc.bld.ITarget.Model model= {
    27            endian: "little",
    28            codeModel: "thumb2",
    29            shortEnums: true
    30        };
    31
    32        override readonly config Bool alignDirectiveSupported = true;
    33
    34        override readonly config string rts = "gnu.targets.arm.rtsv7M";
    35        override config string platform     = "ti.platforms.stellaris:LM3S9B90";
    36
    37        override config string LONGNAME = "bin/arm-none-eabi-gcc";
    38
    39        override readonly config String stdInclude = "gnu/targets/arm/std.h";
    40
    41        override readonly config ITarget2.Command cc = {
    42            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    43            opts: "-mcpu=cortex-m3 -mthumb -mabi=aapcs -mapcs "
    44        };
    45
    46        readonly config ITarget2.Command ccBin = {
    47            cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
    48            opts: "-mabi=aapcs -mapcs"
    49        };
    50
    51        override config ITarget2.Options ccOpts = {
    52            prefix: "-Wunused -Wunknown-pragmas -ffunction-sections -fdata-sections",
    53            suffix: "-Dfar= "
    54        };
    55
    56        override readonly config ITarget2.Command asm = {
    57            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
    58            opts: "-Wa,-mcpu=cortex-m3 -Wa,-mthumb"
    59        };
    60
    61        readonly config ITarget2.Command asmBin = {
    62            cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
    63            opts: "-Wa,-mcpu=cortex-m3 -Wa,-mthumb"
    64        };
    65
    66        override config ITarget2.Options lnkOpts = {
    67            prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
    68            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib/thumb2 -L$(rootDir)/lib/gcc/$(GCCTARG)/4.5.2/thumb2"
    69        };
    70
    71        readonly config ITarget2.Command arBin = {
    72            cmd: "bin/arm-none-eabi-ar ",
    73            opts: ""
    74        };
    75
    76        /*
    77         *  ======== profiles ========
    78         */
    79        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    80            ["debug", {
    81                compileOpts: {
    82                    copts: "-g",
    83                    defs:  "-D_DEBUG_=1",
    84                },
    85                linkOpts: "-g",
    86            }],
    87
    88            ["release", {
    89                compileOpts: {
    90                    copts: " -O2 ",
    91                },
    92                linkOpts: " ",
    93            }],
    94        ];
    95
    96        /*
    97         *  ======== compatibleSuffixes ========
    98         */
    99        override config String compatibleSuffixes[] = [];
   100
   101        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   102            t_IArg          : { size: 4, align: 4 },
   103            t_Char          : { size: 1, align: 1 },
   104            t_Double        : { size: 8, align: 4 },
   105            t_Float         : { size: 4, align: 4 },
   106            t_Fxn           : { size: 4, align: 4 },
   107            t_Int           : { size: 4, align: 4 },
   108            t_Int8          : { size: 1, align: 1 },
   109            t_Int16         : { size: 2, align: 2 },
   110            t_Int32         : { size: 4, align: 4 },
   111            t_Int64         : { size: 8, align: 4 },
   112            t_Long          : { size: 4, align: 4 },
   113            t_LDouble       : { size: 8, align: 4 },
   114            t_LLong         : { size: 8, align: 4 },
   115            t_Ptr           : { size: 4, align: 4 },
   116            t_Short         : { size: 2, align: 2 },
   117            t_Size          : { size: 4, align: 4 },
   118        };
   119    }
   120    /*
   121     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   122
   123     */
   124


module gnu.targets.arm.M4

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    import xdc.bld.ITarget2;
    13
    14    /*!
    15     *  ======== M4.xdc ========
    16     *  Embedded Cortex M4, little endian, bare metal target
    17     *
    18     *  This module defines an embedded bare metal target on Cortex M4. The target
    19     *  generates code compatible with the "v7M" architecture.
    20     *
    21     */
    22    metaonly module M4 inherits gnu.targets.ITarget {
    23        override readonly config string name                = "M4";
    24        override readonly config string suffix              = "m4g";
    25        override readonly config string isa                 = "v7M4";
    26        override readonly config xdc.bld.ITarget.Model model= {
    27            endian: "little",
    28            codeModel: "thumb2",
    29            shortEnums: true
    30        };
    31
    32        override readonly config Bool alignDirectiveSupported = true;
    33
    34        override readonly config string rts = "gnu.targets.arm.rtsv7M";
    35        override config string platform     = "ti.platforms.stellaris:LM4F232H5QD";
    36
    37        override config string LONGNAME = "bin/arm-none-eabi-gcc";
    38
    39        override readonly config String stdInclude = "gnu/targets/arm/std.h";
    40
    41        override readonly config ITarget2.Command cc = {
    42            cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
    43            opts: "-mcpu=cortex-m4 -mthumb -msoft-float -mabi=aapcs -mapcs"
    44        };
    45
    46        readonly config ITarget2.Command ccBin = {
    47            cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
    48            opts: "-mabi=aapcs -mapcs"
    49        };
    50
    51        override config ITarget2.Options ccOpts = {
    52            prefix: "-Wunused -Wunknown-pragmas -ffunction-sections -fdata-sections",
    53            suffix: "-Dfar= "
    54        };
    55
    56        override readonly config ITarget2.Command asm = {
    57            cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
    58            opts: "-Wa,-mcpu=cortex-m4 -Wa,-mthumb"
    59        };
    60
    61        readonly config ITarget2.Command asmBin = {
    62            cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
    63            opts: "-Wa,-mcpu=cortex-m4 -Wa,-mthumb"
    64        };
    65
    66        override config ITarget2.Options lnkOpts = {
    67            prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections ",
    68            suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib/thumb2 -L$(rootDir)/lib/gcc/$(GCCTARG)/4.5.2/thumb2"
    69        };
    70
    71        readonly config ITarget2.Command arBin = {
    72            cmd: "bin/arm-none-eabi-ar ",
    73            opts: ""
    74        };
    75
    76        /*
    77         *  ======== profiles ========
    78         */
    79        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    80            ["debug", {
    81                compileOpts: {
    82                    copts: "-g",
    83                    defs:  "-D_DEBUG_=1",
    84                },
    85                linkOpts: "-g",
    86            }],
    87
    88            ["release", {
    89                compileOpts: {
    90                    copts: " -O2 ",
    91                },
    92                linkOpts: " ",
    93            }],
    94        ];
    95
    96        /*
    97         *  ======== compatibleSuffixes ========
    98         */
    99        override config String compatibleSuffixes[] = [];
   100
   101        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   102            t_IArg          : { size: 4, align: 4 },
   103            t_Char          : { size: 1, align: 1 },
   104            t_Double        : { size: 8, align: 4 },
   105            t_Float         : { size: 4, align: 4 },
   106            t_Fxn           : { size: 4, align: 4 },
   107            t_Int           : { size: 4, align: 4 },
   108            t_Int8          : { size: 1, align: 1 },
   109            t_Int16         : { size: 2, align: 2 },
   110            t_Int32         : { size: 4, align: 4 },
   111            t_Int64         : { size: 8, align: 4 },
   112            t_Long          : { size: 4, align: 4 },
   113            t_LDouble       : { size: 8, align: 4 },
   114            t_LLong         : { size: 8, align: 4 },
   115            t_Ptr           : { size: 4, align: 4 },
   116            t_Short         : { size: 2, align: 2 },
   117            t_Size          : { size: 4, align: 4 },
   118        };
   119    }
   120    /*
   121     *  @(#) gnu.targets.arm; 1, 0, 0, 0,438; 11-4-2012 21:21:10; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
   122
   123     */
   124


module ti.catalog.msp430.peripherals.clock.CS

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12
    13    /*!
    14     *  ======== CS ========
    15     *  MSP430 Clock System
    16     */
    17    metaonly module CS inherits IClock
    18    {
    19
    20    instance:
    21
    22        config Float VLOCLKHz = 8300;
    23        config Float WATCHCRYSTALCLKHz = 32768;
    24        config Float XT1CLKHz = 0;
    25        config Float XT2CLKHz = 0;
    26    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F23x

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.adc.ADC12 as ADC12;
    13    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    14    import ti.catalog.msp430.peripherals.svs.ISVS as SVS;
    15    import ti.catalog.msp430.peripherals.clock.BCSplus as BCSplus;
    16
    17    /*!
    18     *  ======== GPIO for MSP430F23x ========
    19     *  MSP430 General Purpose Input Output Ports
    20     */
    21    metaonly module GPIO_MSP430F23x inherits IGPIO {
    22        /*!
    23         *  ======== create ========
    24         *  Create an instance of this peripheral. Use a customized
    25         *  init function so that we can get access to the ADC12,
    26         *  Comparator_A, and SVS instances.
    27         */
    28        create(ADC12.Instance adc12, Comparator.Instance comparator, SVS.Instance svs,
    29            BCSplus.Instance clock);
    30
    31    instance:
    32        /*! @_nodoc */
    33        config ADC12.Instance adc12;
    34
    35        /*! @_nodoc */
    36        config Comparator.Instance comparator;
    37
    38        /*! @_nodoc */
    39        config SVS.Instance svs;
    40
    41        /*! @_nodoc */
    42        config BCSplus.Instance clock;
    43
    44        /*! Define an array to describe all device pins. The 1st dimension
    45         *  denotes the port, the second the pin on that port. On an
    46         *  MSP430F23x device, there are 6 x 8 = 48 pins total.
    47         */
    48
    49        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    50         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    51        /* TODO: For this device the config variable definition has been moved into the
    52         * corresponding XS file due to its size. This needs a more consistent solution. */
    53        config DevicePin_t devicePins[6][8];
    54
    55        /*! Implementation of Device Pin Functional Configuration */
    56        override config DevicePinFunctionSetting_t devicePinSetting[6][8];
    57
    58        /*! Determine if each Register needs to be forced set or not */
    59        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    60        [
    61            { register : "P1OUT" , regForceSet : true  },
    62            { register : "P1SEL" , regForceSet : false },
    63            { register : "P1DIR" , regForceSet : true  },
    64            { register : "P1REN" , regForceSet : false },
    65            { register : "P1IES" , regForceSet : true },
    66            { register : "P1IFG" , regForceSet : true },
    67            { register : "P1IE"  , regForceSet : false },
    68            { register : "P2OUT" , regForceSet : true  },
    69            { register : "P2SEL" , regForceSet : false },
    70            { register : "P2DIR" , regForceSet : true  },
    71            { register : "P2REN" , regForceSet : false },
    72            { register : "P2IES" , regForceSet : true },
    73            { register : "P2IFG" , regForceSet : true },
    74            { register : "P2IE"  , regForceSet : false },
    75            { register : "P3OUT" , regForceSet : true  },
    76            { register : "P3SEL" , regForceSet : false },
    77            { register : "P3DIR" , regForceSet : true  },
    78            { register : "P3REN" , regForceSet : false },
    79            { register : "P4OUT" , regForceSet : true  },
    80            { register : "P4SEL" , regForceSet : false },
    81            { register : "P4DIR" , regForceSet : true  },
    82            { register : "P4REN" , regForceSet : false },
    83            { register : "P5OUT" , regForceSet : true  },
    84            { register : "P5SEL" , regForceSet : false },
    85            { register : "P5DIR" , regForceSet : true  },
    86            { register : "P5REN" , regForceSet : false },
    87            { register : "P6OUT" , regForceSet : true  },
    88            { register : "P6SEL" , regForceSet : false },
    89            { register : "P6DIR" , regForceSet : true  },
    90            { register : "P6REN" , regForceSet : false }
    91        ];
    92
    93        /*
    94         *  GPIO Digital I/O Registers
    95         *
    96         *  One GIPO instance defines the configuration of an entire,
    97         *  8-bit wide digital I/O port.
    98         */
    99
   100        /*! Port 1 Output Register */
   101        config GpioBits8PxOut_t P1OUT = {
   102            Bit0        : BIT0_OFF,
   103            Bit1        : BIT1_OFF,
   104            Bit2        : BIT2_OFF,
   105            Bit3        : BIT3_OFF,
   106            Bit4        : BIT4_OFF,
   107            Bit5        : BIT5_OFF,
   108            Bit6        : BIT6_OFF,
   109            Bit7        : BIT7_OFF
   110        };
   111
   112        /*! Port 1 Port Select Register */
   113        config GpioBits8PxSel_t P1SEL = {
   114            Bit0        : BIT0_OFF,
   115            Bit1        : BIT1_OFF,
   116            Bit2        : BIT2_OFF,
   117            Bit3        : BIT3_OFF,
   118            Bit4        : BIT4_OFF,
   119            Bit5        : BIT5_OFF,
   120            Bit6        : BIT6_OFF,
   121            Bit7        : BIT7_OFF
   122        };
   123
   124        /*! Port 1 Direction Register */
   125        config GpioBits8PxDir_t P1DIR = {
   126            Bit0        : BIT0_OFF,
   127            Bit1        : BIT1_OFF,
   128            Bit2        : BIT2_OFF,
   129            Bit3        : BIT3_OFF,
   130            Bit4        : BIT4_OFF,
   131            Bit5        : BIT5_OFF,
   132            Bit6        : BIT6_OFF,
   133            Bit7        : BIT7_OFF
   134        };
   135
   136        /*! Port 1 Resistor Enable Register */
   137        config GpioBits8PxRen_t P1REN = {
   138            Bit0        : BIT0_OFF,
   139            Bit1        : BIT1_OFF,
   140            Bit2        : BIT2_OFF,
   141            Bit3        : BIT3_OFF,
   142            Bit4        : BIT4_OFF,
   143            Bit5        : BIT5_OFF,
   144            Bit6        : BIT6_OFF,
   145            Bit7        : BIT7_OFF
   146        };
   147
   148        /*! Port 2 Output Register */
   149        config GpioBits8PxOut_t P2OUT = {
   150            Bit0        : BIT0_OFF,
   151            Bit1        : BIT1_OFF,
   152            Bit2        : BIT2_OFF,
   153            Bit3        : BIT3_OFF,
   154            Bit4        : BIT4_OFF,
   155            Bit5        : BIT5_OFF,
   156            Bit6        : BIT6_OFF,
   157            Bit7        : BIT7_OFF
   158        };
   159
   160        /*! Port 2 Port Select Register */
   161        config GpioBits8PxSel_t P2SEL = {
   162            Bit0        : BIT0_OFF,
   163            Bit1        : BIT1_OFF,
   164            Bit2        : BIT2_OFF,
   165            Bit3        : BIT3_OFF,
   166            Bit4        : BIT4_OFF,
   167            Bit5        : BIT5_OFF,
   168            Bit6        : BIT6_OFF,
   169            Bit7        : BIT7_OFF
   170        };
   171
   172        /*! Port 2 Direction Register */
   173        config GpioBits8PxDir_t P2DIR = {
   174            Bit0        : BIT0_OFF,
   175            Bit1        : BIT1_OFF,
   176            Bit2        : BIT2_OFF,
   177            Bit3        : BIT3_OFF,
   178            Bit4        : BIT4_OFF,
   179            Bit5        : BIT5_OFF,
   180            Bit6        : BIT6_OFF,
   181            Bit7        : BIT7_OFF
   182        };
   183
   184        /*! Port 2 Resistor Enable Register */
   185        config GpioBits8PxRen_t P2REN = {
   186            Bit0        : BIT0_OFF,
   187            Bit1        : BIT1_OFF,
   188            Bit2        : BIT2_OFF,
   189            Bit3        : BIT3_OFF,
   190            Bit4        : BIT4_OFF,
   191            Bit5        : BIT5_OFF,
   192            Bit6        : BIT6_OFF,
   193            Bit7        : BIT7_OFF
   194        };
   195
   196        /*! Port 3 Output Register */
   197        config GpioBits8PxOut_t P3OUT = {
   198            Bit0        : BIT0_OFF,
   199            Bit1        : BIT1_OFF,
   200            Bit2        : BIT2_OFF,
   201            Bit3        : BIT3_OFF,
   202            Bit4        : BIT4_OFF,
   203            Bit5        : BIT5_OFF,
   204            Bit6        : BIT6_OFF,
   205            Bit7        : BIT7_OFF
   206        };
   207
   208        /*! Port 3 Port Select Register */
   209        config GpioBits8PxSel_t P3SEL = {
   210            Bit0        : BIT0_OFF,
   211            Bit1        : BIT1_OFF,
   212            Bit2        : BIT2_OFF,
   213            Bit3        : BIT3_OFF,
   214            Bit4        : BIT4_OFF,
   215            Bit5        : BIT5_OFF,
   216            Bit6        : BIT6_OFF,
   217            Bit7        : BIT7_OFF
   218        };
   219
   220        /*! Port 3 Direction Register */
   221        config GpioBits8PxDir_t P3DIR = {
   222            Bit0        : BIT0_OFF,
   223            Bit1        : BIT1_OFF,
   224            Bit2        : BIT2_OFF,
   225            Bit3        : BIT3_OFF,
   226            Bit4        : BIT4_OFF,
   227            Bit5        : BIT5_OFF,
   228            Bit6        : BIT6_OFF,
   229            Bit7        : BIT7_OFF
   230        };
   231
   232        /*! Port 3 Resistor Enable Register */
   233        config GpioBits8PxRen_t P3REN = {
   234            Bit0        : BIT0_OFF,
   235            Bit1        : BIT1_OFF,
   236            Bit2        : BIT2_OFF,
   237            Bit3        : BIT3_OFF,
   238            Bit4        : BIT4_OFF,
   239            Bit5        : BIT5_OFF,
   240            Bit6        : BIT6_OFF,
   241            Bit7        : BIT7_OFF
   242        };
   243
   244        /*! Port 4 Output Register */
   245        config GpioBits8PxOut_t P4OUT = {
   246            Bit0        : BIT0_OFF,
   247            Bit1        : BIT1_OFF,
   248            Bit2        : BIT2_OFF,
   249            Bit3        : BIT3_OFF,
   250            Bit4        : BIT4_OFF,
   251            Bit5        : BIT5_OFF,
   252            Bit6        : BIT6_OFF,
   253            Bit7        : BIT7_OFF
   254        };
   255
   256        /*! Port 4 Port Select Register */
   257        config GpioBits8PxSel_t P4SEL = {
   258            Bit0        : BIT0_OFF,
   259            Bit1        : BIT1_OFF,
   260            Bit2        : BIT2_OFF,
   261            Bit3        : BIT3_OFF,
   262            Bit4        : BIT4_OFF,
   263            Bit5        : BIT5_OFF,
   264            Bit6        : BIT6_OFF,
   265            Bit7        : BIT7_OFF
   266        };
   267
   268        /*! Port 4 Direction Register */
   269        config GpioBits8PxDir_t P4DIR = {
   270            Bit0        : BIT0_OFF,
   271            Bit1        : BIT1_OFF,
   272            Bit2        : BIT2_OFF,
   273            Bit3        : BIT3_OFF,
   274            Bit4        : BIT4_OFF,
   275            Bit5        : BIT5_OFF,
   276            Bit6        : BIT6_OFF,
   277            Bit7        : BIT7_OFF
   278        };
   279
   280        /*! Port 4 Resistor Enable Register */
   281        config GpioBits8PxRen_t P4REN = {
   282            Bit0        : BIT0_OFF,
   283            Bit1        : BIT1_OFF,
   284            Bit2        : BIT2_OFF,
   285            Bit3        : BIT3_OFF,
   286            Bit4        : BIT4_OFF,
   287            Bit5        : BIT5_OFF,
   288            Bit6        : BIT6_OFF,
   289            Bit7        : BIT7_OFF
   290        };
   291
   292            /*! Port 5 Output Register */
   293        config GpioBits8PxOut_t P5OUT = {
   294            Bit0        : BIT0_OFF,
   295            Bit1        : BIT1_OFF,
   296            Bit2        : BIT2_OFF,
   297            Bit3        : BIT3_OFF,
   298            Bit4        : BIT4_OFF,
   299            Bit5        : BIT5_OFF,
   300            Bit6        : BIT6_OFF,
   301            Bit7        : BIT7_OFF
   302        };
   303
   304        /*! Port 5 Port Select Register */
   305        config GpioBits8PxSel_t P5SEL = {
   306            Bit0        : BIT0_OFF,
   307            Bit1        : BIT1_OFF,
   308            Bit2        : BIT2_OFF,
   309            Bit3        : BIT3_OFF,
   310            Bit4        : BIT4_OFF,
   311            Bit5        : BIT5_OFF,
   312            Bit6        : BIT6_OFF,
   313            Bit7        : BIT7_OFF
   314        };
   315
   316        /*! Port 5 Direction Register */
   317        config GpioBits8PxDir_t P5DIR = {
   318            Bit0        : BIT0_OFF,
   319            Bit1        : BIT1_OFF,
   320            Bit2        : BIT2_OFF,
   321            Bit3        : BIT3_OFF,
   322            Bit4        : BIT4_OFF,
   323            Bit5        : BIT5_OFF,
   324            Bit6        : BIT6_OFF,
   325            Bit7        : BIT7_OFF
   326        };
   327
   328        /*! Port 5 Resistor Enable Register */
   329        config GpioBits8PxRen_t P5REN = {
   330            Bit0        : BIT0_OFF,
   331            Bit1        : BIT1_OFF,
   332            Bit2        : BIT2_OFF,
   333            Bit3        : BIT3_OFF,
   334            Bit4        : BIT4_OFF,
   335            Bit5        : BIT5_OFF,
   336            Bit6        : BIT6_OFF,
   337            Bit7        : BIT7_OFF
   338        };
   339
   340        /*! Port 6 Output Register */
   341        config GpioBits8PxOut_t P6OUT = {
   342            Bit0        : BIT0_OFF,
   343            Bit1        : BIT1_OFF,
   344            Bit2        : BIT2_OFF,
   345            Bit3        : BIT3_OFF,
   346            Bit4        : BIT4_OFF,
   347            Bit5        : BIT5_OFF,
   348            Bit6        : BIT6_OFF,
   349            Bit7        : BIT7_OFF
   350        };
   351
   352        /*! Port 6 Port Select Register */
   353        config GpioBits8PxSel_t P6SEL = {
   354            Bit0        : BIT0_OFF,
   355            Bit1        : BIT1_OFF,
   356            Bit2        : BIT2_OFF,
   357            Bit3        : BIT3_OFF,
   358            Bit4        : BIT4_OFF,
   359            Bit5        : BIT5_OFF,
   360            Bit6        : BIT6_OFF,
   361            Bit7        : BIT7_OFF
   362        };
   363
   364        /*! Port 6 Direction Register */
   365        config GpioBits8PxDir_t P6DIR = {
   366            Bit0        : BIT0_OFF,
   367            Bit1        : BIT1_OFF,
   368            Bit2        : BIT2_OFF,
   369            Bit3        : BIT3_OFF,
   370            Bit4        : BIT4_OFF,
   371            Bit5        : BIT5_OFF,
   372            Bit6        : BIT6_OFF,
   373            Bit7        : BIT7_OFF
   374        };
   375
   376        /*! Port 6 Resistor Enable Register */
   377        config GpioBits8PxRen_t P6REN = {
   378            Bit0        : BIT0_OFF,
   379            Bit1        : BIT1_OFF,
   380            Bit2        : BIT2_OFF,
   381            Bit3        : BIT3_OFF,
   382            Bit4        : BIT4_OFF,
   383            Bit5        : BIT5_OFF,
   384            Bit6        : BIT6_OFF,
   385            Bit7        : BIT7_OFF
   386        };
   387    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430F24x

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    import ti.catalog.msp430.peripherals.adc.ADC12 as ADC12;
    13    import ti.catalog.msp430.peripherals.comparator.IComparator as Comparator;
    14    import ti.catalog.msp430.peripherals.svs.ISVS as SVS;
    15    import ti.catalog.msp430.peripherals.clock.BCSplus as BCSplus;
    16
    17    /*!
    18     *  ======== GPIO for MSP430F24x ========
    19     *  MSP430 General Purpose Input Output Ports
    20     */
    21    metaonly module GPIO_MSP430F24x inherits IGPIO {
    22        /*!
    23         *  ======== create ========
    24         *  Create an instance of this peripheral. Use a customized
    25         *  init function so that we can get access to the ADC12,
    26         *  Comparator_A, and SVS, and BCS+ instances.
    27         */
    28        create(ADC12.Instance adc12, Comparator.Instance comparator, SVS.Instance svs,
    29            BCSplus.Instance clock);
    30
    31    instance:
    32        /*! @_nodoc */
    33        config ADC12.Instance adc12;
    34
    35        /*! @_nodoc */
    36        config Comparator.Instance comparator;
    37
    38        /*! @_nodoc */
    39        config SVS.Instance svs;
    40
    41        /*! @_nodoc */
    42        config BCSplus.Instance clock;
    43
    44        /*! Define an array to describe all device pins. The 1st dimension
    45         *  denotes the port, the second the pin on that port. On an
    46         *  MSP430F24x device, there are 6 x 8 = 48 pins total.
    47         */
    48
    49        /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    50         * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    51        /* TODO: For this device the config variable definition has been moved into the
    52         * corresponding XS file due to its size. This needs a more consistent solution. */
    53        config DevicePin_t devicePins[6][8];
    54
    55        /*! Implementation of Device Pin Functional Configuration */
    56        override config DevicePinFunctionSetting_t devicePinSetting[6][8];
    57
    58        /*! Determine if each Register needs to be forced set or not */
    59        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    60        [
    61            { register : "P1OUT" , regForceSet : true  },
    62            { register : "P1SEL" , regForceSet : false },
    63            { register : "P1DIR" , regForceSet : true  },
    64            { register : "P1REN" , regForceSet : false },
    65            { register : "P1IES" , regForceSet : true },
    66            { register : "P1IFG" , regForceSet : true },
    67            { register : "P1IE"  , regForceSet : false },
    68            { register : "P2OUT" , regForceSet : true  },
    69            { register : "P2SEL" , regForceSet : false },
    70            { register : "P2DIR" , regForceSet : true  },
    71            { register : "P2REN" , regForceSet : false },
    72            { register : "P2IES" , regForceSet : true },
    73            { register : "P2IFG" , regForceSet : true },
    74            { register : "P2IE"  , regForceSet : false },
    75            { register : "P3OUT" , regForceSet : true  },
    76            { register : "P3SEL" , regForceSet : false },
    77            { register : "P3DIR" , regForceSet : true  },
    78            { register : "P3REN" , regForceSet : false },
    79            { register : "P4OUT" , regForceSet : true  },
    80            { register : "P4SEL" , regForceSet : false },
    81            { register : "P4DIR" , regForceSet : true  },
    82            { register : "P4REN" , regForceSet : false },
    83            { register : "P5OUT" , regForceSet : true  },
    84            { register : "P5SEL" , regForceSet : false },
    85            { register : "P5DIR" , regForceSet : true  },
    86            { register : "P5REN" , regForceSet : false },
    87            { register : "P6OUT" , regForceSet : true  },
    88            { register : "P6SEL" , regForceSet : false },
    89            { register : "P6DIR" , regForceSet : true  },
    90            { register : "P6REN" , regForceSet : false }
    91        ];
    92
    93        /*
    94         *  GPIO Digital I/O Registers
    95         *
    96         *  One GIPO instance defines the configuration of an entire,
    97         *  8-bit wide digital I/O port.
    98         */
    99
   100        /*! Port 1 Output Register */
   101        config GpioBits8PxOut_t P1OUT = {
   102            Bit0        : BIT0_OFF,
   103            Bit1        : BIT1_OFF,
   104            Bit2        : BIT2_OFF,
   105            Bit3        : BIT3_OFF,
   106            Bit4        : BIT4_OFF,
   107            Bit5        : BIT5_OFF,
   108            Bit6        : BIT6_OFF,
   109            Bit7        : BIT7_OFF
   110        };
   111
   112        /*! Port 1 Port Select Register */
   113        config GpioBits8PxSel_t P1SEL = {
   114            Bit0        : BIT0_OFF,
   115            Bit1        : BIT1_OFF,
   116            Bit2        : BIT2_OFF,
   117            Bit3        : BIT3_OFF,
   118            Bit4        : BIT4_OFF,
   119            Bit5        : BIT5_OFF,
   120            Bit6        : BIT6_OFF,
   121            Bit7        : BIT7_OFF
   122        };
   123
   124        /*! Port 1 Direction Register */
   125        config GpioBits8PxDir_t P1DIR = {
   126            Bit0        : BIT0_OFF,
   127            Bit1        : BIT1_OFF,
   128            Bit2        : BIT2_OFF,
   129            Bit3        : BIT3_OFF,
   130            Bit4        : BIT4_OFF,
   131            Bit5        : BIT5_OFF,
   132            Bit6        : BIT6_OFF,
   133            Bit7        : BIT7_OFF
   134        };
   135
   136        /*! Port 1 Resistor Enable Register */
   137        config GpioBits8PxRen_t P1REN = {
   138            Bit0        : BIT0_OFF,
   139            Bit1        : BIT1_OFF,
   140            Bit2        : BIT2_OFF,
   141            Bit3        : BIT3_OFF,
   142            Bit4        : BIT4_OFF,
   143            Bit5        : BIT5_OFF,
   144            Bit6        : BIT6_OFF,
   145            Bit7        : BIT7_OFF
   146        };
   147
   148        /*! Port 2 Output Register */
   149        config GpioBits8PxOut_t P2OUT = {
   150            Bit0        : BIT0_OFF,
   151            Bit1        : BIT1_OFF,
   152            Bit2        : BIT2_OFF,
   153            Bit3        : BIT3_OFF,
   154            Bit4        : BIT4_OFF,
   155            Bit5        : BIT5_OFF,
   156            Bit6        : BIT6_OFF,
   157            Bit7        : BIT7_OFF
   158        };
   159
   160        /*! Port 2 Port Select Register */
   161        config GpioBits8PxSel_t P2SEL = {
   162            Bit0        : BIT0_OFF,
   163            Bit1        : BIT1_OFF,
   164            Bit2        : BIT2_OFF,
   165            Bit3        : BIT3_OFF,
   166            Bit4        : BIT4_OFF,
   167            Bit5        : BIT5_OFF,
   168            Bit6        : BIT6_OFF,
   169            Bit7        : BIT7_OFF
   170        };
   171
   172        /*! Port 2 Direction Register */
   173        config GpioBits8PxDir_t P2DIR = {
   174            Bit0        : BIT0_OFF,
   175            Bit1        : BIT1_OFF,
   176            Bit2        : BIT2_OFF,
   177            Bit3        : BIT3_OFF,
   178            Bit4        : BIT4_OFF,
   179            Bit5        : BIT5_OFF,
   180            Bit6        : BIT6_OFF,
   181            Bit7        : BIT7_OFF
   182        };
   183
   184        /*! Port 2 Resistor Enable Register */
   185        config GpioBits8PxRen_t P2REN = {
   186            Bit0        : BIT0_OFF,
   187            Bit1        : BIT1_OFF,
   188            Bit2        : BIT2_OFF,
   189            Bit3        : BIT3_OFF,
   190            Bit4        : BIT4_OFF,
   191            Bit5        : BIT5_OFF,
   192            Bit6        : BIT6_OFF,
   193            Bit7        : BIT7_OFF
   194        };
   195
   196        /*! Port 3 Output Register */
   197        config GpioBits8PxOut_t P3OUT = {
   198            Bit0        : BIT0_OFF,
   199            Bit1        : BIT1_OFF,
   200            Bit2        : BIT2_OFF,
   201            Bit3        : BIT3_OFF,
   202            Bit4        : BIT4_OFF,
   203            Bit5        : BIT5_OFF,
   204            Bit6        : BIT6_OFF,
   205            Bit7        : BIT7_OFF
   206        };
   207
   208        /*! Port 3 Port Select Register */
   209        config GpioBits8PxSel_t P3SEL = {
   210            Bit0        : BIT0_OFF,
   211            Bit1        : BIT1_OFF,
   212            Bit2        : BIT2_OFF,
   213            Bit3        : BIT3_OFF,
   214            Bit4        : BIT4_OFF,
   215            Bit5        : BIT5_OFF,
   216            Bit6        : BIT6_OFF,
   217            Bit7        : BIT7_OFF
   218        };
   219
   220        /*! Port 3 Direction Register */
   221        config GpioBits8PxDir_t P3DIR = {
   222            Bit0        : BIT0_OFF,
   223            Bit1        : BIT1_OFF,
   224            Bit2        : BIT2_OFF,
   225            Bit3        : BIT3_OFF,
   226            Bit4        : BIT4_OFF,
   227            Bit5        : BIT5_OFF,
   228            Bit6        : BIT6_OFF,
   229            Bit7        : BIT7_OFF
   230        };
   231
   232        /*! Port 3 Resistor Enable Register */
   233        config GpioBits8PxRen_t P3REN = {
   234            Bit0        : BIT0_OFF,
   235            Bit1        : BIT1_OFF,
   236            Bit2        : BIT2_OFF,
   237            Bit3        : BIT3_OFF,
   238            Bit4        : BIT4_OFF,
   239            Bit5        : BIT5_OFF,
   240            Bit6        : BIT6_OFF,
   241            Bit7        : BIT7_OFF
   242        };
   243
   244        /*! Port 4 Output Register */
   245        config GpioBits8PxOut_t P4OUT = {
   246            Bit0        : BIT0_OFF,
   247            Bit1        : BIT1_OFF,
   248            Bit2        : BIT2_OFF,
   249            Bit3        : BIT3_OFF,
   250            Bit4        : BIT4_OFF,
   251            Bit5        : BIT5_OFF,
   252            Bit6        : BIT6_OFF,
   253            Bit7        : BIT7_OFF
   254        };
   255
   256        /*! Port 4 Port Select Register */
   257        config GpioBits8PxSel_t P4SEL = {
   258            Bit0        : BIT0_OFF,
   259            Bit1        : BIT1_OFF,
   260            Bit2        : BIT2_OFF,
   261            Bit3        : BIT3_OFF,
   262            Bit4        : BIT4_OFF,
   263            Bit5        : BIT5_OFF,
   264            Bit6        : BIT6_OFF,
   265            Bit7        : BIT7_OFF
   266        };
   267
   268        /*! Port 4 Direction Register */
   269        config GpioBits8PxDir_t P4DIR = {
   270            Bit0        : BIT0_OFF,
   271            Bit1        : BIT1_OFF,
   272            Bit2        : BIT2_OFF,
   273            Bit3        : BIT3_OFF,
   274            Bit4        : BIT4_OFF,
   275            Bit5        : BIT5_OFF,
   276            Bit6        : BIT6_OFF,
   277            Bit7        : BIT7_OFF
   278        };
   279
   280        /*! Port 4 Resistor Enable Register */
   281        config GpioBits8PxRen_t P4REN = {
   282            Bit0        : BIT0_OFF,
   283            Bit1        : BIT1_OFF,
   284            Bit2        : BIT2_OFF,
   285            Bit3        : BIT3_OFF,
   286            Bit4        : BIT4_OFF,
   287            Bit5        : BIT5_OFF,
   288            Bit6        : BIT6_OFF,
   289            Bit7        : BIT7_OFF
   290        };
   291
   292            /*! Port 5 Output Register */
   293        config GpioBits8PxOut_t P5OUT = {
   294            Bit0        : BIT0_OFF,
   295            Bit1        : BIT1_OFF,
   296            Bit2        : BIT2_OFF,
   297            Bit3        : BIT3_OFF,
   298            Bit4        : BIT4_OFF,
   299            Bit5        : BIT5_OFF,
   300            Bit6        : BIT6_OFF,
   301            Bit7        : BIT7_OFF
   302        };
   303
   304        /*! Port 5 Port Select Register */
   305        config GpioBits8PxSel_t P5SEL = {
   306            Bit0        : BIT0_OFF,
   307            Bit1        : BIT1_OFF,
   308            Bit2        : BIT2_OFF,
   309            Bit3        : BIT3_OFF,
   310            Bit4        : BIT4_OFF,
   311            Bit5        : BIT5_OFF,
   312            Bit6        : BIT6_OFF,
   313            Bit7        : BIT7_OFF
   314        };
   315
   316        /*! Port 5 Direction Register */
   317        config GpioBits8PxDir_t P5DIR = {
   318            Bit0        : BIT0_OFF,
   319            Bit1        : BIT1_OFF,
   320            Bit2        : BIT2_OFF,
   321            Bit3        : BIT3_OFF,
   322            Bit4        : BIT4_OFF,
   323            Bit5        : BIT5_OFF,
   324            Bit6        : BIT6_OFF,
   325            Bit7        : BIT7_OFF
   326        };
   327
   328        /*! Port 5 Resistor Enable Register */
   329        config GpioBits8PxRen_t P5REN = {
   330            Bit0        : BIT0_OFF,
   331            Bit1        : BIT1_OFF,
   332            Bit2        : BIT2_OFF,
   333            Bit3        : BIT3_OFF,
   334            Bit4        : BIT4_OFF,
   335            Bit5        : BIT5_OFF,
   336            Bit6        : BIT6_OFF,
   337            Bit7        : BIT7_OFF
   338        };
   339
   340        /*! Port 6 Output Register */
   341        config GpioBits8PxOut_t P6OUT = {
   342            Bit0        : BIT0_OFF,
   343            Bit1        : BIT1_OFF,
   344            Bit2        : BIT2_OFF,
   345            Bit3        : BIT3_OFF,
   346            Bit4        : BIT4_OFF,
   347            Bit5        : BIT5_OFF,
   348            Bit6        : BIT6_OFF,
   349            Bit7        : BIT7_OFF
   350        };
   351
   352        /*! Port 6 Port Select Register */
   353        config GpioBits8PxSel_t P6SEL = {
   354            Bit0        : BIT0_OFF,
   355            Bit1        : BIT1_OFF,
   356            Bit2        : BIT2_OFF,
   357            Bit3        : BIT3_OFF,
   358            Bit4        : BIT4_OFF,
   359            Bit5        : BIT5_OFF,
   360            Bit6        : BIT6_OFF,
   361            Bit7        : BIT7_OFF
   362        };
   363
   364        /*! Port 6 Direction Register */
   365        config GpioBits8PxDir_t P6DIR = {
   366            Bit0        : BIT0_OFF,
   367            Bit1        : BIT1_OFF,
   368            Bit2        : BIT2_OFF,
   369            Bit3        : BIT3_OFF,
   370            Bit4        : BIT4_OFF,
   371            Bit5        : BIT5_OFF,
   372            Bit6        : BIT6_OFF,
   373            Bit7        : BIT7_OFF
   374        };
   375
   376        /*! Port 6 Resistor Enable Register */
   377        config GpioBits8PxRen_t P6REN = {
   378            Bit0        : BIT0_OFF,
   379            Bit1        : BIT1_OFF,
   380            Bit2        : BIT2_OFF,
   381            Bit3        : BIT3_OFF,
   382            Bit4        : BIT4_OFF,
   383            Bit5        : BIT5_OFF,
   384            Bit6        : BIT6_OFF,
   385            Bit7        : BIT7_OFF
   386        };
   387    }


module ti.catalog.msp430.peripherals.special_function.SR

     1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * --/COPYRIGHT--*/
    12    /*!
    13     *  ======== SR ========
    14     *  MSP430 Status Register
    15     */
    16    metaonly module SR inherits xdc.platform.IPeripheral {
    17
    18        /* System clock generator 1. This bit, when set, turns off the SMCLK. */
    19        enum SCG1_t {
    20            SCG1_OFF   = 0x0000,              /*! Disable System clock generator 1 */
    21            SCG1       = 0x0080               /*! Enable System clock generator 1 */
    22        };
    23
    24        enum SCG0_t {
    25            SCG0_OFF   = 0x0000,              /*! Disable System clock generator 0 */
    26            SCG0       = 0x0040               /*! Enable System clock generator 0 */
    27        };
    28
    29        enum OSCOFF_t {
    30            OSCOFF_OFF = 0x0000,              /*! Oscillator On */
    31            OSCOFF     = 0x0020               /*! Oscillator Off */
    32        };
    33
    34        /* CPU off. This bit, when set, turns off the CPU. */
    35        enum CPUOFF_t {
    36            CPUOFF_OFF = 0x0000,              /*! CPU On */
    37            CPUOFF     = 0x0010               /*! CPU Off */
    38        };
    39
    40        enum GIE_t {
    41            GIE_OFF    = 0x0000,              /*! General interrupt disable */
    42            GIE        = 0x0008               /*! General interrupt enable */
    43        };
    44
    45        /* SR */
    46        struct SR_t {
    47            SCG1_t      SCG1;                 /*! System clock generator 1
    48                                               *This bit, when set, turns off the SMCLK.
    49                                               */
    50            SCG0_t      SCG0;                 /*! System clock generator 0
    51                                               *This bit, when set, turns off the DCO dc
    52                                               *generator, if DCOCLK is not used for MCLK
    53                                               *or SMCLK.
    54                                               */
    55            OSCOFF_t    OSCOFF;               /*!Oscillator Off
    56                                               *This bit, when set, turns off the LFXT1
    57                                               *crystal oscillator, when LFXT1CLK is not
    58                                               *use for MCLK or SMCLK
    59                                               */
    60            CPUOFF_t    CPUOFF;               /*! CPU off
    61                                               *This bit, when set, turns off the CPU.
    62                                               */
    63            GIE_t       GIE;                  /*! General interrupt enable
    64                                               *This bit, when set, enables maskable
    65                                               *interrupts. When reset, all maskable
    66                                               *interrupts are disabled
    67                                               */
    68        }
    69
    70       /*!
    71        *  ======== ForceSetDefaultRegister_t ========
    72        *  Force Set Default Register
    73        *
    74        *  Type to store if each register needs to be forced initialized
    75        *  even if the register is in default state.
    76        *
    77        *  @see #ForceSetDefaultRegister_t
    78        */
    79        struct ForceSetDefaultRegister_t {
    80            String     register;
    81            Bool       regForceSet;
    82        }
    83
    84    instance:
    85        /*! SR, Status Register */
    86        config SR_t SR = {
    87            SCG1        : SCG1_OFF,
    88            SCG0        : SCG0_OFF,
    89            OSCOFF      : OSCOFF_OFF,
    90            CPUOFF      : CPUOFF_OFF,
    91            GIE         : GIE_OFF
    92        };
    93
    94       /*!
    95        *  ======== getSCG1 ========
    96        *  Gets SCG1 bit
    97        *
    98        *  @see #getSCG1
    99        */
   100        Bool    getSCG1();
   101
   102       /*!
   103        *  ======== setSCG1 ========
   104        *  Sets SCG1 bit
   105        *
   106        *  @see #setSCG1
   107        */
   108        Bool    setSCG1(Bool set);
   109
   110       /*!
   111        *  ======== getSCG0 ========
   112        *  Gets SCG0 bit
   113        *
   114        *  @see #getSCG0
   115        */
   116        Bool    getSCG0();
   117
   118       /*!
   119        *  ======== setSCG0 ========
   120        *  Sets SCG0 bit
   121        *
   122        *  @see #setSCG0
   123        */
   124        Bool    setSCG0(Bool set);
   125
   126       /*!
   127        *  ======== getOSCOFF ========
   128        *  Gets OSCOFF bit
   129        *
   130        *  @see #getOSCOFF
   131        */
   132        Bool    getOSCOFF();
   133
   134       /*!
   135        *  ======== setOSCOFF ========
   136        *  Sets OSCOFF bit
   137        *
   138        *  @see #setOSCOFF
   139        */
   140        Bool    setOSCOFF(Bool set);
   141
   142        /*!
   143        *  ======== getCPUOFF ========
   144        *  Gets CPUOFF bit
   145        *
   146        *  @see #getCPUOFF
   147        */
   148        Bool    getCPUOFF();
   149
   150       /*!
   151        *  ======== setCPUOFF ========
   152        *  Sets CPUOFF bit
   153        *
   154        *  @see #setCPUOFF
   155        */
   156        Bool    setCPUOFF(Bool set);
   157
   158        /*!
   159        *  ======== getGIE ========
   160        *  Gets GIE bit
   161        *
   162        *  @see #getGIE
   163        */
   164        Bool    getGIE();
   165
   166       /*!
   167        *  ======== setGIE ========
   168        *  Sets GIE bit
   169        *
   170        *  @see #setGIE
   171        */
   172        Bool    setGIE(Bool set);
   173
   174        /*! Determine if each Register needs to be forced set or not */
   175        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   176        [
   177            { register : "SR" , regForceSet : false },
   178        ];
   179    }


module ti.targets.arm.M3

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*!
    13     *  ======== M3.xdc ========
    14     *  Cortex M3 little endian thumb2
    15     */
    16    metaonly module M3 inherits ti.targets.arm.IM3 {
    17        override readonly config string name        = "M3";
    18        override readonly config string suffix      = "m3";
    19        override readonly config string rts         = "ti.targets.arm.rtsarm";
    20
    21        override readonly config xdc.bld.ITarget2.Command cc = {
    22            cmd:  "cl470 -c",
    23            opts: "--endian=little -mv7M3 --abi=ti_arm9_abi"
    24        };
    25
    26        override readonly config xdc.bld.ITarget2.Command asm = {
    27            cmd:  "cl470 -c",
    28            opts: "--endian=little -mv7M3 --abi=ti_arm9_abi"
    29        };
    30
    31        /*!
    32         *  ======== linkLib ========
    33         *  Default TMS470 cgtools runtime library to link with executable
    34         *  (comes from $rootDir/lib)
    35         */
    36        config string linkLib = "rtsv7M3_T_le_tiarm9.lib";
    37    }
    38    /*
    39     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    40
    41     */
    42


module ti.targets.arm.R4

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== R4.xdc ========
    15     *  Cortex R4 little endian thumb2
    16     */
    17    metaonly module R4 inherits ti.targets.arm.IR4 {
    18        override readonly config string name        = "R4";
    19        override readonly config string suffix      = "r4";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "little",
    24        };
    25
    26        override readonly config xdc.bld.ITarget2.Command cc = {
    27            cmd:  "cl470 -c",
    28            opts: "--endian=little -mv7R4 --abi=ti_arm9_abi"
    29        };
    30
    31        override readonly config xdc.bld.ITarget2.Command asm = {
    32            cmd:  "cl470 -c",
    33            opts: "--endian=little -mv7R4 --abi=ti_arm9_abi"
    34        };
    35
    36        /*!
    37         *  ======== linkLib ========
    38         *  Default TMS470 cgtools runtime library to link with executable
    39         *  (comes from $rootDir/lib)
    40         */
    41        config string linkLib = "rtsv7R4_A_le_tiarm9.lib";
    42    }
    43    /*
    44     *  @(#) ti.targets.arm; 2, 0, 1, 0,423; 11-4-2012 21:21:26; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    45
    46     */
    47


module ti.targets.arm.elf.M3

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== M3.xdc ========
    15     *  Cortex M3 little endian thumb2 (ELF)
    16     */
    17    metaonly module M3 inherits ti.targets.arm.elf.IM3 {
    18        override readonly config string name        = "M3";
    19        override readonly config string suffix      = "em3";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget2.Command cc = {
    23            cmd:  "cl470 -c",
    24            opts: "--endian=little -mv7M3 --abi=eabi"
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command asm = {
    28            cmd:  "cl470 -c",
    29            opts: "--endian=little -mv7M3 --abi=eabi"
    30        };
    31
    32        /*!
    33         *  ======== linkLib ========
    34         *  Default TMS470 cgtools runtime library to link with executable
    35         *  (comes from $rootDir/lib)
    36         */
    37        config string linkLib = "rtsv7M3_T_le_eabi.lib";
    38    }
    39    /*
    40     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    41
    42     */
    43


module ti.targets.arm.elf.M4

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== M4.xdc ========
    15     *  Cortex M4, no floating point unit, little endian thumb2 (ELF)
    16     */
    17    metaonly module M4 inherits ti.targets.arm.elf.IM4 {
    18        override readonly config string name        = "M4";
    19        override readonly config string suffix      = "em4";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget2.Command cc = {
    23            cmd:  "cl470 -c",
    24            opts: "--endian=little -mv7M4 --float_support=vfplib --abi=eabi"
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command asm = {
    28            cmd:  "cl470 -c",
    29            opts: "--endian=little -mv7M4 --float_support=vfplib --abi=eabi"
    30        };
    31
    32        /*!
    33         *  ======== linkLib ========
    34         *  Default TMS470 cgtools runtime library to link with executable
    35         *  (comes from $rootDir/lib)
    36         */
    37        config string linkLib = "rtsv7M4_T_le_eabi.lib";
    38    }
    39    /*
    40     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    41
    42     */
    43


module ti.targets.arm.elf.R4

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*!
    14     *  ======== R4.xdc ========
    15     *  Cortex R4 little endian thumb2 (ELF)
    16     */
    17    metaonly module R4 inherits ti.targets.arm.elf.IR4 {
    18        override readonly config string name        = "R4";
    19        override readonly config string suffix      = "er4";
    20        override readonly config string rts         = "ti.targets.arm.rtsarm";
    21
    22        override readonly config xdc.bld.ITarget.Model model = {
    23            endian: "little",
    24            shortEnums: true
    25        };
    26
    27        override readonly config xdc.bld.ITarget2.Command cc = {
    28            cmd:  "cl470 -c",
    29            opts: "--endian=little -mv7R4 --abi=eabi"
    30        };
    31
    32        override readonly config xdc.bld.ITarget2.Command asm = {
    33            cmd:  "cl470 -c",
    34            opts: "--endian=little -mv7R4 --abi=eabi"
    35        };
    36
    37        /*!
    38         *  ======== linkLib ========
    39         *  Default TMS470 cgtools runtime library to link with executable
    40         *  (comes from $rootDir/lib)
    41         */
    42        config string linkLib = "rtsv7R4_A_le_eabi.lib";
    43    }
    44    /*
    45     *  @(#) ti.targets.arm.elf; 1, 0, 0,355; 11-4-2012 21:21:30; /db/ztree/library/trees/xdctargets/xdctargets-f40x/src/ xlibrary
    46
    47     */
    48


interface xdc.bld.ITarget

     1    /*
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    /*
    13     *  ======== ITarget.xdc ========
    14     */
    15    package xdc.bld;
    16
    17    /*!
    18     *  ======== ITarget ========
    19     *  The interface between code generation tool-chains and the XDC Build
    20     *  Engine.
    21     *
    22     *  This interface defines an abstract interface that must be supported by
    23     *  a compiler tool-chain in order to be used in an XDC build environment.
    24     *  This interface allows the XDC Build engine to treat all compiler tool
    25     *  chains uniformly; thus, it is possible to add support for a new compiler
    26     *  without making *any* changes to the build engine.
    27     */
    28    metaonly interface ITarget {
    29
    30        /*!
    31         *  ======== Model ========
    32         *  Target runtime model.
    33         *
    34         *  @field(`endian`)    this string specifies the endianess of the
    35         *                      generated code.  Valid values include:
    36         *                      @p(dlist)
    37         *                          - `"big"`
    38         *                              big endian
    39         *                          - `"little"`
    40         *                              little endian
    41         *                          - `null`
    42         *                              unspecified
    43         *                      @p
    44         *
    45         *  @field(`codeModel`) this string specifies a target-specific code size
    46         *                      model.  Valid values include:
    47         *                      @p(dlist)
    48         *                          - `"near"`
    49         *                              C54 near mode
    50         *                          - `"far"`
    51         *                              C54 far mode
    52         *                          - `undefined`
    53         *                              unspecified
    54         *                      @p
    55         *
    56         *  @field(`dataModel`) this string specifies a target-specific data size
    57         *                      model.  Valid values include:
    58         *                      @p(dlist)
    59         *                          - `"large"`
    60         *                              C55, C28 large model
    61         *                          - `undefined`
    62         *                              unspecified
    63         *                      @p
    64         *
    65         *  @field(`shortEnums`) this flag specifies if a target fits the values
    66         *                      of an enumeration into the smallest integer type
    67         *                      that can accept all values. If that is the case,
    68         *                      this flag must be set to `true`. If all values are
    69         *                      the size of an Int, this flag can be either set
    70         *                      to `false` or left unspecified.
    71         * @see #model
    72         */
    73        struct Model {
    74            String endian;      /*! endian-ness of this target */
    75            String codeModel;   /*! target-specific code model */
    76            String dataModel;   /*! target-specific data model */
    77            Bool   shortEnums;  /*! if true, enums are packed into smallest integral type */
    78        }
    79
    80        /*!
    81         *  ======== name ========
    82         *  Nickname for this target.
    83         *
    84         *  This name is typically the name of the module without the package
    85         *  name prefix.  Thus, it is not necessarily globally unique.
    86         *
    87         *  Use the `$name` property of the module to get a globally unique name
    88         *  for the target.
    89         */
    90        readonly config String name;
    91
    92        /*!
    93         *  ======== suffix ========
    94         *  Suffix appended to all objs, libraries, and executable.
    95         *
    96         *  All files generated by this target (object files, archives,
    97         *  executables, etc.) have file names whose extensions end with
    98         *  suffix.  In particular, targets create files with the following
    99         *  extensions:
   100         *  @p(dlist)
   101         *      - `".a<suffix>"`
   102         *              archive files (i.e., libraries)
   103         *      - `".o<suffix>"`
   104         *              object files
   105         *      - `".s<suffix>"`
   106         *              assembly language source (see `{@link #scompile()}`)
   107         *      - `".x<suffix>"`
   108         *              executable files
   109         *
   110         *  This suffix should be chosen to globally and uniquely identify the
   111         *  EABI (Embedded Application Binary Interface) of the objects produced
   112         *  by this target.  Targets with the same suffix should
   113         *  should produce 100% EABI compatible objects and, targets with different
   114         *  suffixes should produce objects with incompatible EABIs.
   115         *
   116         *  @see #scompile()
   117         */
   118        readonly config String suffix;
   119
   120        /*!
   121         *  ======== compatibleSuffixes ========
   122         *  Array of suffixes used by targets compatible with this target
   123         *
   124         *  This array is used to identify a set of targets that produce
   125         *  code that can be linked with code produced by this target, where the
   126         *  order of suffixes defines the order of preferrence. This
   127         *  parameter is used by `findSuffixes()`.
   128         *
   129         *  For example, an Arm target which builds for v6 architecture might have
   130         *  the following values in its `compatibleSuffix`: ["v5T", "MV470"].
   131         *  This means that code produced by targets with suffixes "v5T' and
   132         *  "MV470" can be linked with code produced by that target, and that "v5T"
   133         *  code is more preferred than "MV470" code.
   134         */
   135        config String compatibleSuffixes[];
   136
   137        /*!
   138         *  ======== isa ========
   139         *  CPU Instruction Set Architecture (ISA)
   140         *
   141         *  This parameter is used to identify a set of targets that produce
   142         *  code for a common ISA.  This is used by build scripts that need to
   143         *  build for all targets that support a particular device.
   144         *
   145         *  For example, the build script for a package that is designed for
   146         *  the TMS32064xx (and no other CPU) can easily specify that it
   147         *  should be built for all targets that generate code for the
   148         *  TMS320C64xx without having to specify a specific target.  This
   149         *  allows the user to add new targets (big endian, little endian,
   150         *  different compilers, etc.) that build for the TMS320C64xx without
   151         *  having to modify the package's build script.
   152         *
   153         *  Note that this field should not be confused with platform ISA
   154         *  names; this field is defined by target tool-chains and may differ
   155         *  from the names given by a CPU device.
   156         *
   157         *  @see xdc.platform.ICpuDataSheet
   158         */
   159        readonly config String isa;
   160
   161        /*!
   162         *  ======== model ========
   163         *  Run-time model
   164         *
   165         *  This structure identifies a particular run-time model
   166         *  used by the compiler to generate instructions.
   167         */
   168        readonly config Model model;
   169
   170        /*!
   171         *  ======== os ========
   172         *  Name of OS required to run programs built for this target.
   173         *
   174         *  Native executables are run by the host OS.  This OS often
   175         *  defines runtime interfaces that all executables (implicitly or
   176         *  explicitly) use.
   177         *
   178         *  If os is undefined, then no OS is required.
   179         */
   180        readonly config String os;
   181
   182        /*!
   183         *  ======== rts ========
   184         *  Name of a run-time support package to include
   185         *
   186         *  Development environments often provide a set of common run-time
   187         *  support functions that all other code can easily utilize; e.g.,
   188         *  some means for performing a "printf", normal program termination
   189         *  with "exit status", etc.  If the `rts` parameter is non-`null`, it is
   190         *  the name of a package that is implicitly imported when building
   191         *  any executable that is built using this target.  If `rts` is
   192         *  undefined, no rts package is imported.
   193         *
   194         *  This parameter makes it possible for the target producer to name
   195         *  a package that provides a target-specific implementation of a runtime
   196         *  support interface.  Clients of a target do not need to explicitly
   197         *  name a target specific rts implementation; thus, it is not
   198         *  possible for the client to inadvertently name the wrong (or an
   199         *  incompatible) rts implementation.
   200         *
   201         *  Note: this package is *NOT* included if the executable's
   202         *  `{@link xdc.bld.Executable#attrs}.rtsName` attribute is set to `null`;
   203         *  see {@link xdc.bld.Executable#Attrs}.  It is also not included if the
   204         *  executable is a legacy DSP/BIOS program.
   205         */
   206        readonly config String rts;
   207
   208        /*!
   209         *  ======== base ========
   210         *  A target that this target is based upon.
   211         *
   212         *  If non-`null`, this target shares the same tool-chain of the specified
   213         *  base target.  This parameter is used to determine various default
   214         *  values for target configuration parameters.  For example, the default
   215         *  setting of `{@link #rootDir}` is the value of the base's
   216         *  `{@link #rootDir}` setting.
   217         */
   218        readonly config ITarget.Module base;
   219
   220        /*!
   221         *  ======== dllExt ========
   222         *  @_nodoc dlls are not yet fully supported
   223         */
   224        config String dllExt;
   225
   226        /*!
   227         *  ======== execExt ========
   228         *  Extension for executables.
   229         *
   230         *  Operating systems and tools often have a strong preference for a
   231         *  specific extension for executables; e.g., Windows expects executables
   232         *  to have the extension "`.exe`".  If this parameter is set, executables
   233         *  will be given the specified extension instead of the default
   234         *  "`.x<suffix>`", where `<suffix>` is the target's suffix parameter.
   235         *
   236         *  The `execExt` is an expression that is expanded prior to use.
   237         *  Expressions of the form "`$(name)`" within the
   238         *  pattern string are expanded if "`name`" is one of the built-in
   239         *  variables listed below.
   240         *
   241         *  Built-in variables for `execExt`:
   242         *  @p(dlist)
   243         *      - `trgName`
   244         *              the target's `name` property
   245         *      - `trgSuffix`
   246         *              the target's `suffix` property
   247         *      - `platPName`
   248         *              the executable's platform package name
   249         *      - `platIName`
   250         *              the executable's platform instance name
   251         *  @p
   252         *
   253         *  @a(Example) If you want to build a portable executable for multiple
   254         *  targets side-by-side and you want (or need) to use a fixed extension
   255         *  such as ".out" for all executables, setting `execExt` to
   256         *  `"_$(trgSuffix).out"` for all targets ensures that all generated
   257         *  executables will have unique names and yet share a common extension
   258         *  of `".out"`.
   259         */
   260        config String execExt;
   261
   262        /*!
   263         *  ======== platform ========
   264         *  The default platform name for this target
   265         *
   266         *  Build scripts often build for just one platform per target.  This
   267         *  parameter allows one to establish a default platform for each
   268         *  target in a build.
   269         *
   270         *  If this parameter is `null` or `undefined` and `{@link #platforms}`
   271         *  array is non-empty, it is initialized to be the first element of the
   272         *  platforms array (i.e., `{@link #platforms[0]}`).
   273         */
   274        config String platform;
   275
   276        /*!
   277         *  ======== platforms ========
   278         *  A set of platforms that can support this target
   279         *
   280         *  Some build scripts build executables for "all" platforms; e.g.,
   281         *  regression test suites.  This  parameter allows one to establish
   282         *  a set of platforms that build scripts can legitimately use to
   283         *  create executables, for example.
   284         *
   285         *  If this array is empty (i.e., has length 0) and `{@link #platform}`
   286         *  is non-`null`, platforms is initialized to an array of one element
   287         *  equal to `{@link #platform}`.
   288         */
   289        config String platforms[] = [];
   290
   291        /*!
   292         *  ======== binaryParser ========
   293         *  The name of a object file parser
   294         *
   295         *  The value of this configuration parameter is the name of a
   296         *  module or Java class that implements the ?? interface.  This
   297         *  interface is used to extract information from the object files
   298         *  produced by this target.
   299         *
   300         *  @_nodoc object file readers are not yet fully supported
   301         */
   302        config String binaryParser;
   303
   304        /*!
   305         *  ======== version ========
   306         *  The Compatibility Key associated with this target.
   307         *
   308         *  @a(Readonly) This value is automatically computed by the XDC Build
   309         *  Engine by executing the `{@link #getVersion()}` function after
   310         *  `package.bld` completes but prior to generating `package.mak`.
   311         */
   312        config String version;
   313
   314        /*!
   315         *  ======== versionRaw ========
   316         *  The unmodified version string associated with this target.
   317         *
   318         *  @a(Readonly) This value is automatically computed by the XDC Build
   319         *  Engine by executing the `{@link #getVersion()}` function after
   320         *  `package.bld` completes but prior to generating `package.mak`.
   321         *
   322         *  @_nodoc
   323         */
   324        config String versionRaw;
   325
   326        /*!
   327         *  ======== DebugGen ========
   328         *  Debugger integration support.
   329         *
   330         *  This structure specifies additional files that are generated
   331         *  in order to support integration with a debugger.  For example, the
   332         *  default setting for TI targets specifies the generation of CCS
   333         *  project files that allow one to easily debug executables that have
   334         *  been constructed from multiple packages.
   335         *
   336         *  There are two "types" of debug support files that are generated;
   337         *  one for the package as a whole, and one for each executable.
   338         *  Since packages may contain portable sources that are built for more
   339         *  than one target, a "package-level" file is generated for each target
   340         *  used in the package.  A separate file is generated for each
   341         *  executable built within the package.
   342         *
   343         *  The `execTemplate` and `packageTemplate` fields name a template that
   344         *  is expanded in the context of the config model and the build
   345         *  model, respectively.  These fields should be set to a file name
   346         *  string which is relative to the package path; e.g., the string
   347         *  "`ti/targets/cc_exec.xdt`" refers to the file "`cc_exec.xdt`" in the
   348         *  `ti.targets` package located along the package path.
   349         *
   350         *  Preconditions for the `execTemplate`:
   351         *  @p(dlist)
   352         *      - `this`
   353         *              the configured program object (`xdc.cfg.Program`);
   354         *              i.e., the program object *after* the program's
   355         *              configuration script completes.
   356         *      - `$args`
   357         *              array of arguments passed to the template
   358         *
   359         *      - `$args[1]`
   360         *              the name of the executable being produced for this
   361         *              configuration.
   362         *
   363         *      - `environment`
   364         *              hash table of XDC global parameters; e.g., `"xdc.path"`,
   365         *              `"xdc.root"`, ...
   366         *  @p
   367         *  Preconditions for the `packageTemplate`:
   368         *  @p(dlist)
   369         *      - `this`
   370         *              the "package contents" object (i.e.,
   371         *              `xdc.bld.PackageContents`) *after* the package's
   372         *              build script (`package.bld`) completes.
   373         *      - `$args`
   374         *              array of arguments passed to the template
   375         *
   376         *      - `$args[0]`
   377         *              the target (a module implementing the
   378         *              `{@link xdc.bld.ITarget}` interface)
   379         *
   380         *      - `$args[1]`
   381         *              hash-table of all package sources
   382         *
   383         *      - `environment`
   384         *              hash table of XDC global parameters; e.g., `"xdc.path"`,
   385         *              `"xdc.root"`, ...
   386         *  @p
   387         *  The `execPattern` and `packagePattern` fields are expressions that
   388         *  are expanded prior to template expansion to determine the name of
   389         *  the output file.  Expressions of the form "`$(name)`" within the
   390         *  pattern string are expanded if "`name`" is one of the built-in
   391         *  variables listed below.
   392         *
   393         *  Built-in variables for `execPattern`:
   394         *  @p(dlist)
   395         *      - `cfgName`
   396         *              the name of the generated configuration file (without
   397         *              any directory prefix);
   398         *      - `cfgDir`
   399         *              the name of the directory containing the config file;
   400         *      - `exeName`
   401         *              the name of the executable file (without any
   402         *              directory prefix);
   403         *      - `exeDir`
   404         *              the directory containing the executable file.
   405         *  @p
   406         *  Both the `exeDir` and `cfgDir` are relative to the directory
   407         *  containing the `package.bld` script.
   408         *
   409         *  Built-in variables for `packagePattern`:
   410         *  @p(dlist)
   411         *      - `pkgName`
   412         *              the package's name (e.g., `"ti.targets"`);
   413         *      - `trgName`
   414         *              the target's `name` property;
   415         *      - `trgSuffix`
   416         *              the target's `suffix` property.
   417         *
   418         * @see #debugGen
   419         */
   420        struct DebugGen {
   421            String execTemplate;    /*! debugger template for executable */
   422            String execPattern;     /*! exec file name pattern */
   423            String packageTemplate; /*! debugger template for package */
   424            String packagePattern;  /*! package file name pattern */
   425        }
   426
   427        /*!
   428         *  ======== debugGen ========
   429         *  Debugger/IDE file generation support.
   430         *
   431         *  This parameter allows one to automatically generate files that
   432         *  can be used by an IDE to more easily debug (and possibly rebuild)
   433         *  specified goals.
   434         *
   435         *  To avoid unnecessary build time overhead, these files are not always
   436         *  generated; by default, they are only generated for "debug" profiles.
   437         *  The generation of these files is controlled by the
   438         *  `{@link xdc.cfg.Program#gen}` configuration parameter.  To force these
   439         *  files to be generated for a particular executable, add the following
   440         *  line to the executable's program configuration script:
   441         *  @p(code)
   442         *      Program.gen.debuggerFiles = true;
   443         *  @p
   444         *
   445         *  It is also possible to disable the generation of selected files by
   446         *  setting the appropriate fields of `{@link #DebugGen}` to `null` in
   447         *  your `config.bld` script.
   448         */
   449        config DebugGen debugGen;
   450
   451        /*!
   452         *  ======== Extension ========
   453         *  File extension to file type association.
   454         *
   455         *  This structure is used by the Build Engine to determine whether a
   456         *  file should be treated as C++, C, or assembly language source.
   457         *
   458         *  @field(suf) the file extension including any '.' characters
   459         *
   460         *  @field(typ) the type of the file having this extension.
   461         *              Allowable file type identifiers include:
   462         *              @p(dlist)
   463         *                 - `"c"`
   464         *                      C language source file
   465         *                 - `"asm"`
   466         *                      assembly language source file
   467         *                 - `"cpp"`
   468         *                      C++ language source file
   469         *
   470         *  @see #extensions
   471         */
   472        struct Extension {
   473            String suf;     /*! file extension (including any '.') */
   474            String typ;     /*! type of this file; e.g., `"c"`, `"asm"`, ... */
   475        };
   476
   477        /*!
   478         *  ======== extensions ========
   479         *  File extensions recognized by this target.
   480         *
   481         *  This is a user modifiable table used to customize file extensions
   482         *  recognized by each target.
   483         *
   484         *  For example, to add a new assembly language extension, say "`.s64`",
   485         *  to the target `ti.targets.C64P`, add the following lines to the
   486         *  build model startup script:
   487         *  @p(code)
   488         *      var C64P = xdc.module('ti.targets.C64P');
   489         *      C64P.extensions[".s64"] = {
   490         *          suf: ".s64", typ: "asm"
   491         *      };
   492         *
   493         *  Note that individual targets may add additional language types.
   494         *
   495         *  It is also possible to remove default extensions.  For example, to
   496         *  remove the "`.asm`" extension from the target `ti.targets.C64P`, add
   497         *  the following lines to the build model startup script:
   498         *  @p(code)
   499         *      var C64P = xdc.module('ti.targets.C64P');
   500         *      delete C64P.extensions[".asm"];
   501         *  @p
   502         */
   503        config Extension extensions[string] = [
   504            [".asm", {suf: ".asm", typ: "asm"}],
   505            [".c",   {suf: ".c",   typ: "c"  }],
   506            [".cpp", {suf: ".cpp", typ: "cpp"}],
   507            [".cxx", {suf: ".cxx", typ: "cpp"}],
   508            [".C",   {suf: ".C",   typ: "cpp"}],
   509            [".cc",  {suf: ".cc",  typ: "cpp"}],
   510        ];
   511
   512        /*!
   513         *  ======== versionMap ========
   514         *  Map of compiler version numbers to compatibility keys.
   515         *
   516         *  `versionMap` is a user modifiable table used to map tool-chain
   517         *  version numbers to Compatibility Keys.
   518         *
   519         *  Each target defines the format of the tool-chain version obtained
   520         *  from the tool-chain.  The user can then map new tool-chain version
   521         *  strings to an appropriate compatibility key.
   522         *
   523         *  Each target must respect the mapping defined by this table; i.e.,
   524         *  if the user supplies a compatibility key in this map, it must be
   525         *  returned when `{@link #getVersion()}` is called.
   526         *
   527         *  Thus, it is possible for the user to assert that any two compiler
   528         *  tool chains should be treated as equivalent (or incompatible) by
   529         *  mapping their version numbers to identical (incompatible)
   530         *  compatibility keys.
   531         *
   532         *  @see ti.targets.ITarget#versionMap
   533         */
   534        config String versionMap[string] = [
   535        ];
   536
   537        /*!
   538         *  ======== alignDirectiveSupported ========
   539         *  The compiler supports an align directive.
   540         */
   541        readonly config Bool alignDirectiveSupported = false;
   542
   543        /*!
   544         *  ======== rootDir ========
   545         *  Installation directory for this target's code generation tools.
   546         *
   547         *  Since each target potentially "wraps" a different compiler tool-chain
   548         *  and each tool-chain will, in general, assume a different physical
   549         *  design for the installation of the compiler and its associated
   550         *  libraries and headers, one must consult each specific target to know
   551         *  how to set this parameter.
   552         *
   553         *  If the `{@link #base}` parameter is `null`, this parameter *must* be
   554         *  set by the user; otherwise, `rootDir` defaults to the value
   555         *  `base.rootDir`.
   556         */
   557        config String rootDir;
   558
   559        /*!
   560         *  ======== CompileOptions ========
   561         *  Options passed to the compiler/assembler.
   562         *
   563         *  @field(aopts)   a string of target-specific assembler options
   564         *  @field(copts)   a string of target-specific C/C++ compiler options
   565         *  @field(cfgcopts)   a string of C/C++ compiler options for C config file,
   566         *                  includes 'copts' in addition to the value passed
   567         *  @field(defs)    a string of macro definitions each of the form
   568         *                  "`-Dname=value`" separated by white space
   569         *  @field(incs)    a string of include directories each of the form
   570         *                  "`-Idir`" separated by white space
   571         *
   572         *  @a(Predefined Macros)
   573         *  The XDC Build Engine automatically adds several predefined macros via
   574         *  `-D` definitions that enable conditional compilation of source files
   575         *  based on build-specific attributes.
   576         *  @p(dlist)
   577         *      - `xdc_bld__profile_`{profile_name}
   578         *          this symbol is always defined and {profile_name} is the
   579         *          compile goal's (see `{@link #CompileGoal}`) profile name.
   580         *  @p
   581         *
   582         *  In addition, each target defines a set of macros that enable clients
   583         *  to portably support big/little endian targets, for example.  These
   584         *  macros are indirectly included by sources that include `xdc/std.h`;
   585         *  see `{@link xdc}`.
   586         *
   587         *  @see #OptionSet
   588         *  @see #CompileGoal
   589         *  @see xdc
   590         */
   591        struct CompileOptions {
   592            String aopts;       /*! goal specific ASM options */
   593            String copts;       /*! goal specific C compiler options */
   594            String cfgcopts;    /*! goal specific C config file options */
   595            String defs;        /*! goal specific C/ASM definition options */
   596            String incs;        /*! goal specific C/ASM include options */
   597        };
   598
   599        /*!
   600         *  ======== OptionSet ========
   601         *  Collection of tool-chain options.
   602         *
   603         *  This structure is used to define a collection of tool-chain
   604         *  options that are used as a group to achieve some effect supported
   605         *  by the tool-chain.  For example, some compilers require that
   606         *  specific options be passed to the compiler *and* linker in order
   607         *  to generate execution profile information or code coverage
   608         *  statistics.
   609         *
   610         *  @field(compilerOptions) a set of compiler/assembler options
   611         *  @field(linkOpts)        a string of target-specific linker options
   612         *  @field(archiveOpts)     a string of target-specific archiver options
   613         *  @field(filters)         an array of filters applied (in order) to
   614         *                          tool-chain commands
   615         *
   616         *  @see #profiles
   617         */
   618        struct OptionSet {
   619            CompileOptions  compileOpts;    /*! profile-specific compiler opts */
   620            String          linkOpts;       /*! profile-specific linker opts */
   621            String          archiveOpts;    /*! profile-specific archiver opts */
   622
   623            ITargetFilter.InstDesc  filters[]; /*! ITargetFilter instance descs */
   624        };
   625
   626        /*!
   627         *  ======== profiles ========
   628         *  Profiles supported by this target.
   629         *
   630         *  A profile is a collection of tool options used to create a
   631         *  library or executable that supports a certain "flavor" of library
   632         *  or executable; e.g., "debug" or "release".
   633         *
   634         *  Some profile names are supported by all targets even though the
   635         *  targets use different compilers (and therefore different options).
   636         *  These profile names makes it possible for a package to build
   637         *  libraries or executables in a "debug" (or "release") profile
   638         *  independent of the target, for example.
   639         *
   640         *  All targets are required to support "debug" and "release" profile
   641         *  names.
   642         *
   643         *  Profile options are added to beginning of any goal specific options
   644         *  specified by the user before being passed to the target.
   645         */
   646        config OptionSet profiles[string] = [
   647            ["release", {}],
   648            ["debug", {}],
   649        ];
   650
   651        /*!
   652         *  ======== CompileGoal ========
   653         *  The goal specification passed to the `{@link #compile}`
   654         *  function.
   655         *
   656         *  @see #compile
   657         *  @see #scompile
   658         */
   659        struct CompileGoal {
   660            String base;        /*! base name of the source and destination */
   661            String dstPrefix;   /*! directory prefix of destination file */
   662            String dstSuffix;   /*! suffix of destination file; e.g., ".o62" */
   663            String srcSuffix;   /*! optional suffix of source file; e.g., ".c" */
   664            String srcPrefix;   /*! optional directory prefix of source file */
   665            String profile;     /*! index into profiles map */
   666            CompileOptions opts;/*! goal specific compiler options */
   667            Bool configOpts;    /*! true if compiling the generated C config file */
   668        };
   669
   670        /*!
   671         *  ======== LinkGoal ========
   672         *  The goal specification passed to the `{@link #link}` function.
   673         *
   674         *  @see #link
   675         */
   676        struct LinkGoal {
   677            String base;        /*! base name of the source and destination */
   678            String dstPrefix;   /*! directory prefix of destination file */
   679            String dstSuffix;   /*! suffix of destination file; e.g., ".x62" */
   680            String files;       /*! string of files to link with */
   681            String profile;     /*! index into profiles map */
   682            String opts;        /*! goal specific linker options */
   683            Bool dllMode;       /*! true if we're linking an assembly */
   684            Bool isRom;         /*! reflects the `isRom` attribute */
   685        };
   686
   687        /*!
   688         *  ======== ArchiveGoal ========
   689         *  The goal specification passed to the `{@link #archive}`
   690         *  function.
   691         *
   692         *  @see #archive
   693         */
   694        struct ArchiveGoal {
   695            String base;        /*! base name of the source and destination */
   696            String dstPrefix;   /*! directory prefix of destination file */
   697            String dstSuffix;   /*! suffix of destination file; e.g., ".a62" */
   698            String files;       /*! String of files to archive */
   699            String profile;     /*! index into profiles map */
   700            String opts;        /*! goal specific archiver options */
   701        };
   702
   703        /*!
   704         *  ======== CommandSet ========
   705         *  The commands necessary to create a specified goal.
   706         *
   707         *  This structure is the return value of the `{@link #compile}`,
   708         *  `{@link #link}` and `{@link #archive}` functions.  This value is then
   709         *  used to generate a makefile or any other files necessary to generate
   710         *  a specified goal.
   711         *
   712         *  @field(msg)     a brief synopsis of the commands specified by `cmds`;
   713         *                  this string is output in lieu of `cmds` when building
   714         *                  in "non-verbose" mode.
   715         *
   716         *  @field(cmds)    a single string of commands that must be executed
   717         *                  to complete the specified operation.  Multiple
   718         *                  commands may be specified by separating each command
   719         *                  with the '\n' character.
   720         *
   721         *                  To facilitate the creation of "portable" makefiles and
   722         *                  to simplify the implementation of targets, certain
   723         *                  distinguished "macros" may be embedded in this string.
   724         *                  The build engine replaces these macros with the
   725         *                  values described below.
   726         *                  @p(dlist)
   727         *                      - `$(rootDir)`
   728         *                          the target's `{@link #rootDir}` configuration
   729         *                          parameter
   730         *                      - `$(packageBase)`
   731         *                          the target package's
   732         *                          `{@link xdc.IPackage#packageBase}` property
   733         *                      - `$(XDCINCS)`
   734         *                          a set of "-I" options that names each
   735         *                          repository in the package path
   736         *                  @p
   737         *
   738         *  @field(envs)    an array of "name=value" strings that represent
   739         *                  environment variables that are defined prior to the
   740         *                  execution of the commands specified by `cmds`
   741         *
   742         *  @field(path)    an array of directory names that are used to compose
   743         *                  the PATH environment variable that is in effect when
   744         *                  the commands specified by `cmds` are run.
   745         *
   746         *  @see #archive
   747         *  @see #compile
   748         *  @see #scompile
   749         *  @see #link
   750         */
   751        struct CommandSet {
   752            String msg;         /*! brief message describing subsequent commands */
   753            String cmds;        /*! commands necessary to generate goal */
   754            String path[];      /*! host-independent representation of PATH */
   755            String envs[];      /*! environment variable settings for the cmds */
   756        };
   757
   758        /*!
   759         *  ======== archive ========
   760         *  Create an archive.
   761         *
   762         *  This function is called during makefile generation to convert build
   763         *  goals into specific commands that generate the specified goal.
   764         *
   765         *  @param(goal) the `{@link #ArchiveGoal}` defining the archive to build.
   766         *
   767         *  @a(returns)
   768         *  This function returns a `{@link #CommandSet}`.  If non-`null`, this
   769         *  object defines the commands that must be executed to create the
   770         *  specified object file.  If `null`, then goal can not be achieved.
   771         *
   772         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   773         */
   774        CommandSet* archive(ArchiveGoal *goal);
   775
   776        /*!
   777         *  ======== compile ========
   778         *  Compile a source file into an object file.
   779         *
   780         *  This function is called during makefile generation to convert build
   781         *  goals into specific commands that generate the specified object
   782         *  file goal.
   783         *
   784         *  @param(goal) a `{@link #CompileGoal}` that specifies what file to
   785         *               compile, the output file name, and any goal-specific
   786         *               options to use
   787         *
   788         *  @a(returns)
   789         *  This function retuns a `{@link #CommandSet}`.  If non-`null`,
   790         *  this object defines the commands that must be executed to create the
   791         *  specified object file.  If `null`, then goal can not be achieved.
   792         *
   793         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   794         */
   795        CommandSet* compile(CompileGoal *goal);
   796
   797        /*!
   798         *  ======== scompile ========
   799         *  Compile a source file into an assembly language file.
   800         *
   801         *  This function is called during makefile generation to convert build
   802         *  goals into specific commands that generate the specified assembly
   803         *  language source goal.
   804         *
   805         *  @param(goal) a `{@link #CompileGoal}` that specifies what file to
   806         *               compile, the output file name, and any goal-specific
   807         *               options to use
   808         *
   809         *  @a(returns)
   810         * This function returns a `{@link #CommandSet}`.  If non-`null`, this
   811         * object defines the commands that must be executed to create the
   812         * specified assembly language file.  If `null`, then goal
   813         * can not be achieved or is unnecessary (e.g., because
   814         * the source file is already an asm file).
   815         *
   816         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   817         */
   818        CommandSet* scompile(CompileGoal *goal);
   819
   820        /*!
   821         *  ======== link ========
   822         *  Link object files to produce an executable.
   823         *
   824         *  This function is called during makefile generation to convert build
   825         *  goals into specific commands that generate the specified goal.
   826         *
   827         *  @param(goal) a `{@link #LinkGoal}` that specifies the output file
   828         *               name, a list of files to link with, and any goal-specific
   829         *               options to use
   830         *
   831         *  @a(returns)
   832         *  This function returns a `{@link #CommandSet}`.  If non-`null`, this
   833         *  object defines the commands that must be executed to create the
   834         *  specified object file.  If `null`, then goal can not be
   835         *  achieved.
   836         *
   837         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   838         */
   839        CommandSet* link(LinkGoal *goal);
   840
   841        /*!
   842         *  ======== getVersion ========
   843         *  Get a target-specific Compatibility Key string
   844         *
   845         *  This function is called during makefile generation to obtain a
   846         *  target-specific Compatibility Key string.  This string is of the
   847         *  form:
   848         *  @p(code)
   849         *      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
   850         *  @p
   851         *  where, `<pkg>.<mod>` is the name of the target, and `<d0>`, `<d1>`,
   852         *  etc. forms a Compatibility Key.
   853         *
   854         *  @a(returns)
   855         *  This function returns a string that encodes the name of the target
   856         *  and its Compatibility Key.
   857         *
   858         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   859         */
   860        String getVersion();
   861
   862        typedef String StringArray[];
   863
   864        /*!
   865         *  ======== getISAChain ========
   866         *  Get this target's ISA "is compatible with" relation.
   867         *
   868         *  Returns an array of ISA names (including this target's ISA) that
   869         *  represents the "is a" relation between ISA's.  The array starts with
   870         *  the most general ISA and ends with this target's ISA or with the
   871         *  optionally specified argument.  This relation is used to:
   872         *  @p(nlist)
   873         *      - pre-define macro definitions that enable code to be
   874         *        conditionally compiled based on compatible versions of a
   875         *        target's ISA.
   876         *
   877         *      - locate appropriate source files during makefile generation;
   878         *        each ISA named in a chain causes the extensions ".s"isa to be
   879         *        added to the ITarget.extensions table (in the reverse order
   880         *        that they appear in the chain).  For example, if a target's
   881         *        ISA is "64P" and the returned chain is ["62", "64", "64P"],
   882         *        the following assembly language suffixes are added to
   883         *        the target's extensions table: ".s64P", ".s64", ".s62".
   884         *
   885         *      - determine the assembly language suffix used during legacy BIOS
   886         *        configuration; the first element of the target's ISA chain
   887         *        defines the suffix.  For example, if a target's ISA is "64P"
   888         *        and the returned chain is ["62", "64", "64P"], the assembly
   889         *        suffix is ".s62".
   890         *  @p
   891         *
   892         *  This relation may also be used in the future to help validate
   893         *  combinations of targets and platforms; a target's CPU ISA must
   894         *  appear on the chain specified by the platform's CPU ISA.
   895         *
   896         *  @param(isa) the ISA identifier string for the ISA to lookup; if null
   897         *              then the target's ISA is used (ITarget.isa).
   898         *
   899         *  @a(returns)
   900         *  This function returns an array of ISA strings where the last string
   901         *  is the optionally specified ISA string or this target's ISA,
   902         *  and the first string is the "base" ISA in the
   903         *  is source compatible" relationship.
   904         *  If the specified ISA string is not in this target's chain
   905         *  of compatible targets, `null` is returned.
   906         *
   907         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   908         *
   909         */
   910        function getISAChain(isa);
   911
   912        /*!
   913         *  ======== findSuffix ========
   914         *  Find the suffix that is compatible with this target.
   915         *
   916         *  This function determines the list of targets supported by the
   917         *  package given as the argument. From that list, this function
   918         *  returns the suffix of a target that is compatible with this target.
   919         *  Compatibility in this case means that object files created by a
   920         *  target having the suffix returned by this function can be linked
   921         *  into an executable produced using this target. In the case where more
   922         *  than one suffix is compatible, this function returns a suffix in the
   923         *  following order of preference:
   924         *  @p(nlist)
   925         *      - if this target's suffix is in the list, that suffix is returned.
   926         *
   927         *      - suffixes from `compatibleSuffixes` are matched against the list
   928         *        from the first to the last, and the first one with the match is
   929         *        returned.
   930         *  @p
   931         *
   932         *  @param(pkg) a package object or an array of target suffix strings
   933         *              (see `{@link #suffix}`).
   934         *
   935         *  @a(returns)
   936         *  This function returns the suffix string of a target compatible with
   937         *  this target or `null` if `pkg` does not support any target compatible
   938         *  with this target.
   939         *
   940         */
   941        function findSuffix(pkg);
   942
   943        /*!
   944         *  ======== selectSuffix ========
   945         *  Select the suffix that is compatible with this target.
   946         *
   947         *  From a list of suffixes supplied as an argument, this function
   948         *  returns the suffix compatible with this target. Compatibility in
   949         *  this case means that object files created by a target having the
   950         *  suffix returned by this function can be linked into an executable
   951         *  produced using this target. In the case where more than one suffix
   952         *  is compatible, this function returns a suffix in the following order
   953         *  of preference:
   954         *  @p(nlist)
   955         *      - if this target's suffix is in the list, that suffix is returned.
   956         *
   957         *      - suffixes from `compatibleSuffixes` are matched against the list
   958         *        from the first to the last, and the first one with the match is
   959         *        returned.
   960         *  @p
   961         *
   962         *  @param(suffixList)      an array of target suffix strings
   963         *                          (see `{@link #suffix}`).
   964         *
   965         *  @a(returns)
   966         *  This function returns the suffix string of a target compatible with
   967         *  this target or `null` if no such suffix is found in the list of
   968         *  suffixes specified by the first argument.
   969         *
   970         */
   971        String selectSuffix(StringArray suffixList);
   972
   973        /*!
   974         *  ======== sectMap ========
   975         *  Output section name to segment type mapping
   976         *
   977         *  This hash table is used to determine whether a particular object file
   978         *  output section (".text", ".stack", etc.) requires 'data', 'code' or
   979         *  'stack' memory segment.
   980         *
   981         *  This `sectMap` is referenced by linker command file templates during
   982         *  generation to create linker command files. The Platform defines the
   983         *  default memory segments for code and data, and based on this map and
   984         *  the default segments, the linker command file template places an
   985         *  output section into a physical memory segment.
   986         *
   987         *  Note that the `{@link xdc.cfg.Program}` object and the
   988         *  `{@link xdc.platform.IPlatform}` instance have a
   989         *  `sectMap` parameter. Both the `Program`'s and `IPlatform`'s `sectMap`
   990         *  can augment and/or override the placement for a section, but
   991         *  `{@link xdc.cfg.Program#sectMap}` takes precedence. Therefore, this
   992         *  `sectMap` and the default segments from the platform define an
   993         *  initial section map which is then augmented by the `Program`'s and
   994         *  `IPlatform`'s section map.
   995         */
   996        readonly config String sectMap[string];
   997
   998        /*!
   999         *  ======== TypeInfo ========
  1000         *  @_nodoc
  1001         *
  1002         *  @see #StdTypes
  1003         */
  1004        struct TypeInfo {
  1005            int size;
  1006            int align;
  1007        }
  1008
  1009        /*!
  1010         *  ======== StdTypes ========
  1011         *  Standard base types supported by all targets
  1012         *
  1013         *  @see #stdTypes
  1014         */
  1015        struct StdTypes {
  1016            TypeInfo t_IArg;
  1017            TypeInfo t_Char;
  1018            TypeInfo t_Double;
  1019            TypeInfo t_Float;
  1020            TypeInfo t_Fxn;
  1021            TypeInfo t_Int;
  1022            TypeInfo t_Int8;
  1023            TypeInfo t_Int16;
  1024            TypeInfo t_Int32;
  1025            TypeInfo t_Int40;
  1026            TypeInfo t_Int64;
  1027            TypeInfo t_Long;
  1028            TypeInfo t_LDouble;
  1029            TypeInfo t_LLong;
  1030            TypeInfo t_Ptr;
  1031            TypeInfo t_Short;
  1032            TypeInfo t_Size;
  1033        }
  1034
  1035        /*!
  1036         *  ======== stdInclude ========
  1037         *  Standard C/C++ types header
  1038         *
  1039         *  This string identifies a header containing the C/C++ definitions
  1040         *  required to enable use of `xdc/std.h` in C/C++ sources; see
  1041         *  `{@link xdc}`.
  1042         *
  1043         *  The value of this string is used by `xdc/std.h` to include
  1044         *  target-specific definitions of the types `Int8`, `Int16`, etc.  In
  1045         *  addition, this header supplies target-specific definitions of the
  1046         *  predefined `xdc_target__*` macros required by `{@link xdc xdc/std.h}`.
  1047         *
  1048         *  Since this header must supply target-specific values for
  1049         *  target-independent names the structure of this header is usually of
  1050         *  the form:
  1051         *  @p(code)
  1052         *      // if target macros are not already defined,
  1053         *      #if !defined(xdc_target_macros_include__)
  1054         *          // include target-specific definitions
  1055         *          #if defined(TARGET1)
  1056         *              #include "target1.h"
  1057         *          #elif defined(TARGET2)
  1058         *              #include "target2.h"
  1059         *          #elif ...
  1060         *              :
  1061         *          #else
  1062         *              #error unsupported target
  1063         *          #endif
  1064         *      #endif
  1065         *      // include common definitions
  1066         *          :
  1067         *  @p
  1068         *  The check of the symbol `xdc_target_macros_include__` exists to
  1069         *  allow others that define new targets to include this header to
  1070         *  get common definitions for a family of related targets.
  1071         *
  1072         *  To simplify the creation of the target-specific header files, the
  1073         *  template file `stddefs.xdt` in this package can be used to
  1074         *  automatically generate the required definitions from each target's
  1075         *  `.xdc` specification.
  1076         */
  1077        readonly config String stdInclude;
  1078
  1079        /*!
  1080         *  ======== stdTypes ========
  1081         *  Size and alignment for standard base types
  1082         *
  1083         *  The values of size are the values returned by the
  1084         *  target-specific `sizeof()` operator applied to the specified
  1085         *  type (as defined by the C language).  The align value is the number
  1086         *  of chars used in the alignment of the specified type.
  1087         */
  1088        readonly config StdTypes stdTypes = {
  1089            t_IArg          : { size: 0, align: 0 },
  1090            t_Char          : { size: 0, align: 0 },
  1091            t_Double        : { size: 0, align: 0 },
  1092            t_Float         : { size: 0, align: 0 },
  1093            t_Fxn           : { size: 0, align: 0 },
  1094            t_Int           : { size: 0, align: 0 },
  1095            t_Int8          : { size: 0, align: 0 },
  1096            t_Int16         : { size: 0, align: 0 },
  1097            t_Int32         : { size: 0, align: 0 },
  1098            t_Int40         : { size: 0, align: 0 },
  1099            t_Int64         : { size: 0, align: 0 },
  1100            t_Long          : { size: 0, align: 0 },
  1101            t_LDouble       : { size: 0, align: 0 },
  1102            t_LLong         : { size: 0, align: 0 },
  1103            t_Ptr           : { size: 0, align: 0 },
  1104            t_Short         : { size: 0, align: 0 },
  1105            t_Size          : { size: 0, align: 0 },
  1106        };
  1107
  1108        /*!
  1109         *  ======== bitsPerChar ========
  1110         *  The number of bits in a variable of type `char`
  1111         *
  1112         *  This constant allows one to determine the precise number of bits in
  1113         *  each of the types specified in the stdTypes map.  For example, the
  1114         *  number of bits in the target `T`'s `int` type is
  1115         *  @p(code)
  1116         *      T.stdTypes.t_Int.size * T.bitsPerChar
  1117         *  @p
  1118         */
  1119        readonly config Int bitsPerChar = 8;
  1120    }
  1121    /*
  1122     *  @(#) xdc.bld; 1, 0, 2,400; 11-3-2012 15:19:00; /db/ztree/library/trees/xdc/xdc-y44x/src/packages/
  1123     */
  1124


 All Classes
AutoFxn
Field
Fxn
GetSet
GetSetData
Getters
Group
Scheduler
Setters


Constant Field Values

Contents
Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Deprecated List

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES

Deprecated API

Contents
Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


API Help

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES

How This API Document Is Organized

This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

Package

Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

  • Interfaces (italic)
  • Classes
  • Enums
  • Exceptions
  • Errors
  • Annotation Types

Class/Interface

Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

  • Class inheritance diagram
  • Direct Subclasses
  • All Known Subinterfaces
  • All Known Implementing Classes
  • Class/interface declaration
  • Class/interface description

  • Nested Class Summary
  • Field Summary
  • Constructor Summary
  • Method Summary

  • Field Detail
  • Constructor Detail
  • Method Detail
Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

Annotation Type

Each annotation type has its own separate page with the following sections:

  • Annotation Type declaration
  • Annotation Type description
  • Required Element Summary
  • Optional Element Summary
  • Element Detail

Enum

Each enum has its own separate page with the following sections:

  • Enum declaration
  • Enum description
  • Enum Constant Summary
  • Enum Constant Detail

Tree (Class Hierarchy)

There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.

Deprecated API

The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

Index

The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

Prev/Next

These links take you to the next or previous class, interface, package, or related page.

Frames/No Frames

These links show and hide the HTML frames. All pages are available with or without frames.

Serialized Form

Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

Constant Field Values

The Constant Field Values page lists the static final fields and their values.

This help file applies to API documentation generated using the standard doclet.

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Generated Documentation (Untitled)

Frame Alert

This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
Link toNon-frame version.


Index

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES
A C E F G H I O R S T X

A

add(Fxn) - Method in class xdc.services.getset.Group
Add a new Fxn to the group, and execute it once.
addAuto(Callable) - Method in class xdc.services.getset.Group
Wrap the given function body as an AutoFxn and add it to the group.
addGlobal(Callable) - Static method in class xdc.services.getset.Getters
addGlobal(Callable) - Static method in class xdc.services.getset.Setters
Add a setter that is called when any field changes value.
addInput(Value.Observable, String) - Method in class xdc.services.getset.Fxn
Mark the given field as a formal input to the Fxn.
addInput(Value.Observable, int) - Method in class xdc.services.getset.Fxn
Mark a given array element as a formal input to the Fxn.
addOutput(Value.Observable, String) - Method in class xdc.services.getset.Fxn
Mark the given field of the object as a formal output of the Fxn.
addOutput(Value.Observable, int) - Method in class xdc.services.getset.Fxn
Mark a given array element as a formal output of the Fxn.
addStale(Fxn) - Method in class xdc.services.getset.Group
Indicate that a Fxn in the group needs to be run.
AutoFxn - Class in xdc.services.getset
A Fxn that automatically determines its own inputs and outputs.
AutoFxn(Group, Callable) - Constructor for class xdc.services.getset.AutoFxn
Create a new AutoFxn that will execute the given body, as scheduled by the given Group.

C

call(Context, Scriptable, Scriptable, Object[]) - Method in class xdc.services.getset.Fxn
A setter that is called whenever one of the inputs of the Fxn changes in value.
call(Context, Scriptable, Scriptable, Object[]) - Method in class xdc.services.getset.Getters
The master getter function called by XDCscript.
call(Context, Scriptable, Scriptable, Object[]) - Method in class xdc.services.getset.Setters
The master setter function called by XDCscript.
createGroup() - Static method in class xdc.services.getset.Scheduler

E

equals(Object) - Method in class xdc.services.getset.Field
Two Field objects compare as equal() if they name the same field of the same XDCscript object instance.

F

Field - Class in xdc.services.getset
An immutable object that identifies a specific field of a specific XDCscript object.
Field(Value.Observable, String) - Constructor for class xdc.services.getset.Field
Field(Value.Observable, int) - Constructor for class xdc.services.getset.Field
Fxn - Class in xdc.services.getset
A scheduled function in a Group.
Fxn(Group, Callable) - Constructor for class xdc.services.getset.Fxn
Create a new Fxn that will execute the given body, as scheduled by the given Group.

G

getData(Value.Observable, Object) - Static method in class xdc.services.getset.GetSetData
Get the private data associated with a field of an object.
getDebug() - Static method in class xdc.services.getset.GetSet
Get whether to print debug trace.
getMaxIterations() - Static method in class xdc.services.getset.Group
Get the maximum number of iterations allowed in each group, as a debugging aid.
getMaxStackDepth() - Static method in class xdc.services.getset.Setters
Get the maximum allowed depth of recursively nested setters.
getName() - Method in class xdc.services.getset.Field
getObject() - Method in class xdc.services.getset.Field
getRunning() - Method in class xdc.services.getset.Group
getRunningFxn() - Static method in class xdc.services.getset.Scheduler
Get which Fxn is currently running, or null if none.
getRunningGroup() - Static method in class xdc.services.getset.Scheduler
Get which Group is currently running, or null if none.
getScheduled() - Method in class xdc.services.getset.Group
Ask if the Group has already been scheduled to be run
GetSet - Class in xdc.services.getset
A helper class to add getters and setters to a field of an XDCscript object.
GetSet() - Constructor for class xdc.services.getset.GetSet
GetSetData - Class in xdc.services.getset
Private data for the getters and setters.
GetSetData() - Constructor for class xdc.services.getset.GetSetData
getStale() - Method in class xdc.services.getset.Fxn
Get whether this Fxn needs to be executed.
getStale() - Method in class xdc.services.getset.Group
Ask if the group needs to be run.
getStatus() - Method in class xdc.services.getset.Fxn
Get the exit status from the last time this Fxn was executed.
getters - Variable in class xdc.services.getset.GetSetData
Getters - Class in xdc.services.getset
A getter function to be added to a field of an XDCscript Value.Obj object.
Getters(Object) - Constructor for class xdc.services.getset.Getters
Group - Class in xdc.services.getset
A group of Fxns that are executed atomically.
Group() - Constructor for class xdc.services.getset.Group
Create a new Group governed by the given scheduler

H

hashCode() - Method in class xdc.services.getset.Field
If objects compare equal, also return equal hash codes.

I

init(Value.Observable) - Static method in class xdc.services.getset.GetSet
Initialize getter and setter support on every field.
init(Value.Observable, String) - Static method in class xdc.services.getset.GetSet
Initialize getter and setter support on a field, or other property labeled by an identifier.
init(Value.Observable, int) - Static method in class xdc.services.getset.GetSet
Initialize getter and setter support on an array element, or other property with a numeric index.
init(Value.Observable, Object) - Static method in class xdc.services.getset.Getters
Add getter support to a field of an object.
init(Value.Observable, String) - Static method in class xdc.services.getset.Setters
Add setter support to a field of an object.
init(Value.Observable, int) - Static method in class xdc.services.getset.Setters

O

onGet(Value.Observable, String, Callable) - Static method in class xdc.services.getset.GetSet
Add a user getter to the named field of the object, or other property labeled by an identifier.
onGet(Value.Observable, int, Callable) - Static method in class xdc.services.getset.GetSet
Add a user getter to the indicated array element, or other property with a numeric index.
onSet(Value.Observable, String, Callable) - Static method in class xdc.services.getset.GetSet
Add a user setter to the named field of the object, or other property labeled by an identifier.
onSet(Value.Observable, int, Callable) - Static method in class xdc.services.getset.GetSet
Add a user setter to the indicated array element, or other property with a numeric index.
onSet(Value.Observable, String, Callable) - Method in class xdc.services.getset.Group
Wrap the given function body as a Fxn and specify one input to fire on.
onSet(Value.Observable, int, Callable) - Method in class xdc.services.getset.Group

R

removeStale(Fxn) - Method in class xdc.services.getset.Group
Indicate that a Fxn in the group no longer needs to be run.
run() - Method in class xdc.services.getset.Fxn
Execute the Fxn body.
run() - Method in class xdc.services.getset.Group
Run all the Fxns in the Group that need it.

S

schedule(Fxn) - Method in class xdc.services.getset.Group
Mark the given Fxn as stale, and schedule the whole group to be run at the next opportunity.
schedule(Group) - Static method in class xdc.services.getset.Scheduler
Schedule the group for execution.
Scheduler - Class in xdc.services.getset
Schedules execution of Fxns and Groups.
Scheduler() - Constructor for class xdc.services.getset.Scheduler
setDebug(boolean) - Static method in class xdc.services.getset.GetSet
Set whether to print debug trace.
setMaxIterations(int) - Static method in class xdc.services.getset.Group
Get the maximum number of iterations allowed in each group, as a debugging aid.
setMaxStackDepth(int) - Static method in class xdc.services.getset.Setters
Set the maximum allowed depth of recursively nested setters, as a debugging aid.
setScheduled(boolean) - Method in class xdc.services.getset.Group
Indicate that the Group has now been scheduled to be run
setStale(boolean) - Method in class xdc.services.getset.Fxn
Set whether the Fxn needs to be executed, typically because one of the inputs has changed value.
setters - Variable in class xdc.services.getset.GetSetData
Setters - Class in xdc.services.getset
A setter function to be added to a field of an XDCscript Value.Obj object.
Setters(Object) - Constructor for class xdc.services.getset.Setters

T

toString() - Method in class xdc.services.getset.Fxn

X

xdc.services.getset - package xdc.services.getset
A C E F G H I O R S T X
Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES

Hierarchy For All Packages

Package Hierarchies:
xdc.services.getset

Class Hierarchy

  • java.lang.Object
    • xdc.services.getset.Field
    • xdc.services.getset.Fxn (implements org.mozilla.javascript.Callable)
      • xdc.services.getset.AutoFxn
    • xdc.services.getset.GetSet
    • xdc.services.getset.GetSetData
    • xdc.services.getset.Group
    • xdc.services.getset.Scheduler
    • org.mozilla.javascript.ScriptableObject (implements org.mozilla.javascript.ConstProperties, org.mozilla.javascript.debug.DebuggableObject, org.mozilla.javascript.Scriptable, java.io.Serializable)
      • org.mozilla.javascript.IdScriptableObject (implements org.mozilla.javascript.IdFunctionCall)
        • org.mozilla.javascript.BaseFunction (implements org.mozilla.javascript.Function)
          • xdc.services.getset.Getters
          • xdc.services.getset.Setters
Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Serialized Form

Package xdc.services.getset

Class xdc.services.getset.Getters extends org.mozilla.javascript.BaseFunction implements Serializable

serialVersionUID: 3564481724610600999L

Serialized Fields

member

java.lang.Object member

Class xdc.services.getset.Setters extends org.mozilla.javascript.BaseFunction implements Serializable

serialVersionUID: 5777317095106662549L

Serialized Fields

member

java.lang.Object member

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


AutoFxn

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

xdc.services.getset
Class AutoFxn

java.lang.Object
    extended by  xdc.services.getset.Fxn
        extended by  xdc.services.getset.AutoFxn
All Implemented Interfaces:
org.mozilla.javascript.Callable
public class AutoFxn
extends Fxn

A Fxn that automatically determines its own inputs and outputs. Eliminates the need for client code to specify these explicitly, or even to know. Useful, for example, when the body calls other functions and doesn't want to track the details of their implementation.

Constructor Summary
AutoFxn(Group group, org.mozilla.javascript.Callable body)
Create a new AutoFxn that will execute the given body, as scheduled by the given Group.
Method Summary
Methods inherited from class xdc.services.getset.Fxn
addInput, addInput, addOutput, addOutput, call, getStale, getStatus, run, setStale, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Constructor Detail

AutoFxn

public AutoFxn(Group group,
               org.mozilla.javascript.Callable body)
Create a new AutoFxn that will execute the given body, as scheduled by the given Group.

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD


Field

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.getset
Class Field

java.lang.Object
    extended by  xdc.services.getset.Field

public class Field
extends java.lang.Object

An immutable object that identifies a specific field of a specific XDCscript object. Used internally as a key to index an object-plus-field pair in a Set.

Constructor Summary
Field(xdc.services.intern.xsr.Value.Observable obj, int prop)
Field(xdc.services.intern.xsr.Value.Observable obj, java.lang.String prop)
Method Summary
 boolean equals(java.lang.Object x)
Two Field objects compare as equal() if they name the same field of the same XDCscript object instance.
 java.lang.String getName()
 xdc.services.intern.xsr.Value.Observable getObject()
 int hashCode()
If objects compare equal, also return equal hash codes.
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Field

public Field(xdc.services.intern.xsr.Value.Observable obj,
             java.lang.String prop)

Field

public Field(xdc.services.intern.xsr.Value.Observable obj,
             int prop)
Method Detail

getObject

public xdc.services.intern.xsr.Value.Observable getObject()

getName

public java.lang.String getName()

equals

public boolean equals(java.lang.Object x)
Two Field objects compare as equal() if they name the same field of the same XDCscript object instance.

Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
If objects compare equal, also return equal hash codes. If objects are unequal, no requirement on hash codes.

Overrides:
hashCode in class java.lang.Object
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Fxn

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.getset
Class Fxn

java.lang.Object
    extended by  xdc.services.getset.Fxn
All Implemented Interfaces:
org.mozilla.javascript.Callable
Direct Known Subclasses:
AutoFxn
public class Fxn
extends java.lang.Object
implements org.mozilla.javascript.Callable

A scheduled function in a Group. Each Fxn must be idempotent. That is, if the Fxn has just been run then running it again immediately should have no additional effect. Examples of such functions are those that just copy a value from one location to another without changing it, or only changing its data representation.

Constructor Summary
Fxn(Group group, org.mozilla.javascript.Callable body)
Create a new Fxn that will execute the given body, as scheduled by the given Group.
Method Summary
Fxn | addInput(xdc.services.intern.xsr.Value.Observable obj, int index) Mark a given array element as a formal input to the Fxn.
Fxn | addInput(xdc.services.intern.xsr.Value.Observable obj, java.lang.String name) Mark the given field as a formal input to the Fxn.
Fxn | addOutput(xdc.services.intern.xsr.Value.Observable obj, int index) Mark a given array element as a formal output of the Fxn.
Fxn | addOutput(xdc.services.intern.xsr.Value.Observable obj, java.lang.String name) Mark the given field of the object as a formal output of the Fxn.
java.lang.Object | call(org.mozilla.javascript.Context cx, org.mozilla.javascript.Scriptable scope, org.mozilla.javascript.Scriptable thisObj, java.lang.Object[] args) A setter that is called whenever one of the inputs of the Fxn changes in value.
boolean | getStale() Get whether this Fxn needs to be executed.
java.lang.Object | getStatus() Get the exit status from the last time this Fxn was executed.
void | run() Execute the Fxn body.
void | setStale(boolean stale) Set whether the Fxn needs to be executed, typically because one of the inputs has changed value.
java.lang.String | toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Constructor Detail

Fxn

public Fxn(Group group,
           org.mozilla.javascript.Callable body)
Create a new Fxn that will execute the given body, as scheduled by the given Group.

Method Detail

getStatus

public java.lang.Object getStatus()
Get the exit status from the last time this Fxn was executed.

Returns:
null if the Fxn executed successfully, else an Object.

addInput

public Fxn addInput(xdc.services.intern.xsr.Value.Observable obj,
                    java.lang.String name)
Mark the given field as a formal input to the Fxn. The Fxn will be re-executed whenever the value of the field changes.

addInput

public Fxn addInput(xdc.services.intern.xsr.Value.Observable obj,
                    int index)
Mark a given array element as a formal input to the Fxn.

addOutput

public Fxn addOutput(xdc.services.intern.xsr.Value.Observable obj,
                     java.lang.String name)
Mark the given field of the object as a formal output of the Fxn. A field can't be both an input and output of an Fxn -- if so, it will be ignored as an input. This enables correct scheduling of Fxns with outputs that are updated by read-modify-write, for example if stored as a single bit in an integer.

addOutput

public Fxn addOutput(xdc.services.intern.xsr.Value.Observable obj,
                     int index)
Mark a given array element as a formal output of the Fxn.

getStale

public boolean getStale()
Get whether this Fxn needs to be executed.

setStale

public void setStale(boolean stale)
Set whether the Fxn needs to be executed, typically because one of the inputs has changed value. This method should only be called by the Fxn's scheduling Group.

run

public void run()
Execute the Fxn body.

call

public java.lang.Object call(org.mozilla.javascript.Context cx,
                             org.mozilla.javascript.Scriptable scope,
                             org.mozilla.javascript.Scriptable thisObj,
                             java.lang.Object[] args)
A setter that is called whenever one of the inputs of the Fxn changes in value. Ignores the change if the input is also an output.

Specified by:
call in interface org.mozilla.javascript.Callable

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


GetSet

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.getset
Class GetSet

java.lang.Object
    extended by  xdc.services.getset.GetSet

public class GetSet
extends java.lang.Object

A helper class to add getters and setters to a field of an XDCscript object.

Constructor Summary
GetSet()
Method Summary
static boolean | getDebug() Get whether to print debug trace.
static void | init(xdc.services.intern.xsr.Value.Observable obj) Initialize getter and setter support on every field.
static void | init(xdc.services.intern.xsr.Value.Observable obj, int prop) Initialize getter and setter support on an array element, or other property with a numeric index.
static void | init(xdc.services.intern.xsr.Value.Observable obj, java.lang.String prop) Initialize getter and setter support on a field, or other property labeled by an identifier.
static void | onGet(xdc.services.intern.xsr.Value.Observable obj, int prop, org.mozilla.javascript.Callable getter) Add a user getter to the indicated array element, or other property with a numeric index.
static void | onGet(xdc.services.intern.xsr.Value.Observable obj, java.lang.String prop, org.mozilla.javascript.Callable getter) Add a user getter to the named field of the object, or other property labeled by an identifier.
static void | onSet(xdc.services.intern.xsr.Value.Observable obj, int prop, org.mozilla.javascript.Callable setter) Add a user setter to the indicated array element, or other property with a numeric index.
static void | onSet(xdc.services.intern.xsr.Value.Observable obj, java.lang.String prop, org.mozilla.javascript.Callable setter) Add a user setter to the named field of the object, or other property labeled by an identifier.
static void | setDebug(boolean debug) Set whether to print debug trace.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

GetSet

public GetSet()
Method Detail

init

public static void init(xdc.services.intern.xsr.Value.Observable obj)
Initialize getter and setter support on every field.

init

public static void init(xdc.services.intern.xsr.Value.Observable obj,
                        java.lang.String prop)
Initialize getter and setter support on a field, or other property labeled by an identifier. If it does not already exist, add it.

init

public static void init(xdc.services.intern.xsr.Value.Observable obj,
                        int prop)
Initialize getter and setter support on an array element, or other property with a numeric index. If it does not already exist, add it.

onSet

public static void onSet(xdc.services.intern.xsr.Value.Observable obj,
                         java.lang.String prop,
                         org.mozilla.javascript.Callable setter)
Add a user setter to the named field of the object, or other property labeled by an identifier.

onSet

public static void onSet(xdc.services.intern.xsr.Value.Observable obj,
                         int prop,
                         org.mozilla.javascript.Callable setter)
Add a user setter to the indicated array element, or other property with a numeric index.

onGet

public static void onGet(xdc.services.intern.xsr.Value.Observable obj,
                         java.lang.String prop,
                         org.mozilla.javascript.Callable getter)
Add a user getter to the named field of the object, or other property labeled by an identifier.

onGet

public static void onGet(xdc.services.intern.xsr.Value.Observable obj,
                         int prop,
                         org.mozilla.javascript.Callable getter)
Add a user getter to the indicated array element, or other property with a numeric index.

getDebug

public static boolean getDebug()
Get whether to print debug trace.

setDebug

public static void setDebug(boolean debug)
Set whether to print debug trace.

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


GetSetData

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.getset
Class GetSetData

java.lang.Object
    extended by  xdc.services.getset.GetSetData

public class GetSetData
extends java.lang.Object

Private data for the getters and setters.

Field Summary
java.util.HashSet<org.mozilla.javascript.Callable> | getters
java.util.HashSet<org.mozilla.javascript.Callable> | setters
Constructor Summary
GetSetData()
Method Summary
static GetSetData getData(xdc.services.intern.xsr.Value.Observable obj, java.lang.Object mbr)
Get the private data associated with a field of an object.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

getters

public java.util.HashSet<org.mozilla.javascript.Callable> getters

setters

public java.util.HashSet<org.mozilla.javascript.Callable> setters
Constructor Detail

GetSetData

public GetSetData()
Method Detail

getData

public static GetSetData getData(xdc.services.intern.xsr.Value.Observable obj,
                                 java.lang.Object mbr)
Get the private data associated with a field of an object. If it doesn't already exist, create it.

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Getters

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.getset
Class Getters

java.lang.Object
    extended by  org.mozilla.javascript.ScriptableObject
        extended by  org.mozilla.javascript.IdScriptableObject
            extended by  org.mozilla.javascript.BaseFunction
                extended by  xdc.services.getset.Getters
All Implemented Interfaces:
java.io.Serializable, org.mozilla.javascript.Callable, org.mozilla.javascript.ConstProperties, org.mozilla.javascript.debug.DebuggableObject, org.mozilla.javascript.Function, org.mozilla.javascript.IdFunctionCall, org.mozilla.javascript.Scriptable
public class Getters
extends org.mozilla.javascript.BaseFunction

A getter function to be added to a field of an XDCscript Value.Obj object. The Getters service manages a set of user-defined getter functions that notifies client code of reads from the field.

There is also a set of global user-defined getter functions that are notified on any read. This avoids having to manually add such getters to every field. Note, though, that the global getters only apply to fields that have had the Getters service added to them.

The JavaScript getter functions have the signature:

 this.function(name, value)
     this is set to the object whose field was read
     name is the name of the field that was read
     value is the value that will be returned by the read

See Also:
Serialized Form

Field Summary
Fields inherited from class org.mozilla.javascript.ScriptableObject
CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST
Fields inherited from interface org.mozilla.javascript.Scriptable
NOT_FOUND
Constructor Summary
Getters(java.lang.Object member)
Method Summary
static void | addGlobal(org.mozilla.javascript.Callable getter)
java.lang.Object | call(org.mozilla.javascript.Context cx, org.mozilla.javascript.Scriptable scope, org.mozilla.javascript.Scriptable thisObj, java.lang.Object[] args) The master getter function called by XDCscript.
static java.util.Set<org.mozilla.javascript.Callable> | init(xdc.services.intern.xsr.Value.Observable obj, java.lang.Object prop) Add getter support to a field of an object.
Methods inherited from class org.mozilla.javascript.BaseFunction
construct, createObject, execIdCall, fillConstructorProperties, findInstanceIdInfo, findPrototypeId, getArity, getClassName, getClassPrototype, getFunctionName, getInstanceIdName, getInstanceIdValue, getLength, getMaxInstanceId, hasInstance, initPrototypeId, setImmunePrototypeProperty, setInstanceIdValue
Methods inherited from class org.mozilla.javascript.IdScriptableObject
activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultPut, delete, exportAsJSClass, get, getAttributes, has, hasPrototypeMap, incompatibleCallError, initPrototypeConstructor, initPrototypeMethod, initPrototypeValue, instanceIdInfo, put, setAttributes
Methods inherited from class org.mozilla.javascript.ScriptableObject
associateValue, avoidObjectDetection, callMethod, callMethod, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, equivalentValues, get, getAllIds, getAssociatedValue, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getPropertyIds, getPrototype, getTopLevelScope, getTopScopeValue, has, hasProperty, hasProperty, isConst, isGetterOrSetter, isSealed, put, putConst, putConstProperty, putProperty, putProperty, redefineProperty, sealObject, setAttributes, setAttributes, setAttributes, setGetterOrSetter, setParentScope, setPrototype
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.mozilla.javascript.Scriptable
delete, delete, get, get, getDefaultValue, getIds, getParentScope, getPrototype, has, has, put, put, setParentScope, setPrototype

Constructor Detail

Getters

public Getters(java.lang.Object member)
Method Detail

init

public static java.util.Set<org.mozilla.javascript.Callable> init(xdc.services.intern.xsr.Value.Observable obj,
                                                                  java.lang.Object prop)
Add getter support to a field of an object.

Returns:
The set of user getters for the field.

call

public java.lang.Object call(org.mozilla.javascript.Context cx,
                             org.mozilla.javascript.Scriptable scope,
                             org.mozilla.javascript.Scriptable thisObj,
                             java.lang.Object[] args)
The master getter function called by XDCscript. First calls all the global getters, then calls the individual getters registered on this field.

Specified by:
call in interface org.mozilla.javascript.Callable
Specified by:
call in interface org.mozilla.javascript.Function
Overrides:
call in class org.mozilla.javascript.BaseFunction

addGlobal

public static void addGlobal(org.mozilla.javascript.Callable getter)
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Group

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.getset
Class Group

java.lang.Object
    extended by  xdc.services.getset.Group

public class Group
extends java.lang.Object

A group of Fxns that are executed atomically. When any one of them runs, the others are given a chance to run before anything else happens. Allows atomic updates among a group of related fields, so that code outside the Group should never see any inconsistency.

Within each Group the Fxns execute one at a time. Even if a Fxn makes changes that will cause another Fxn in the Group to run, that won't happen until after the first Fxn completes.

Constructor Summary
Group()
Create a new Group governed by the given scheduler
Method Summary
Fxn | add(Fxn fxn) Add a new Fxn to the group, and execute it once.
AutoFxn | addAuto(org.mozilla.javascript.Callable body) Wrap the given function body as an AutoFxn and add it to the group.
void | addStale(Fxn fxn) Indicate that a Fxn in the group needs to be run.
static int | getMaxIterations() Get the maximum number of iterations allowed in each group, as a debugging aid.
Fxn | getRunning()
boolean | getScheduled() Ask if the Group has already been scheduled to be run
boolean | getStale() Ask if the group needs to be run.
Fxn | onSet(xdc.services.intern.xsr.Value.Observable obj, int index, org.mozilla.javascript.Callable body)
Fxn | onSet(xdc.services.intern.xsr.Value.Observable obj, java.lang.String name, org.mozilla.javascript.Callable body) Wrap the given function body as a Fxn and specify one input to fire on.
void | removeStale(Fxn fxn) Indicate that a Fxn in the group no longer needs to be run.
void | run() Run all the Fxns in the Group that need it.
void | schedule(Fxn fxn) Mark the given Fxn as stale, and schedule the whole group to be run at the next opportunity.
static void | setMaxIterations(int maxIterations) Get the maximum number of iterations allowed in each group, as a debugging aid.
void | setScheduled(boolean scheduled) Indicate that the Group has now been scheduled to be run
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Group

public Group()
Create a new Group governed by the given scheduler

Method Detail

onSet

public Fxn onSet(xdc.services.intern.xsr.Value.Observable obj,
                 java.lang.String name,
                 org.mozilla.javascript.Callable body)
Wrap the given function body as a Fxn and specify one input to fire on. Add it to the group and execute it once.

Returns:
the Fxn, so that additional inputs and outputs can be specified.

onSet

public Fxn onSet(xdc.services.intern.xsr.Value.Observable obj,
                 int index,
                 org.mozilla.javascript.Callable body)

addAuto

public AutoFxn addAuto(org.mozilla.javascript.Callable body)
Wrap the given function body as an AutoFxn and add it to the group. Executes the function once.

A typical use is to establish two-way update between related XDCscript fields, say x.a and y.b :

   group.addAuto(function bToA(){ x.a = y.b; });
   group.addAuto(function aToB(){ y.b = x.a; });
This example constrains x.a and y.b to have the same value. Whenever one of them changes, one AutoFxn in the Group runs and copies the change to the other field. The Group is responsible for deciding when to execute each AutoFxn, based on examining its inputs and outputs.

Returns:
the AutoFxn, so that additional inputs and outputs can be specified.

add

public Fxn add(Fxn fxn)
Add a new Fxn to the group, and execute it once.

getStale

public boolean getStale()
Ask if the group needs to be run. Should be run whenever any Fxn in the group is stale.

addStale

public void addStale(Fxn fxn)
Indicate that a Fxn in the group needs to be run.

removeStale

public void removeStale(Fxn fxn)
Indicate that a Fxn in the group no longer needs to be run.

setScheduled

public void setScheduled(boolean scheduled)
Indicate that the Group has now been scheduled to be run

getScheduled

public boolean getScheduled()
Ask if the Group has already been scheduled to be run

getRunning

public Fxn getRunning()

run

public void run()
Run all the Fxns in the Group that need it.

schedule

public void schedule(Fxn fxn)
Mark the given Fxn as stale, and schedule the whole group to be run at the next opportunity.

getMaxIterations

public static int getMaxIterations()
Get the maximum number of iterations allowed in each group, as a debugging aid.

setMaxIterations

public static void setMaxIterations(int maxIterations)
Get the maximum number of iterations allowed in each group, as a debugging aid.

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


xdc.services.getset

Package Class Tree Deprecated Index Help
PREV PACKAGE NEXT PACKAGE FRAMES NO FRAMES

Package xdc.services.getset

Class Summary
AutoFxn | A Fxn that automatically determines its own inputs and outputs.
Field | An immutable object that identifies a specific field of a specific XDCscript object.
Fxn | A scheduled function in a Group.
GetSet | A helper class to add getters and setters to a field of an XDCscript object.
GetSetData | Private data for the getters and setters.
Getters | A getter function to be added to a field of an XDCscript Value.Obj object.
Group | A group of Fxns that are executed atomically.
Scheduler | Schedules execution of Fxns and Groups.
Setters | A setter function to be added to a field of an XDCscript Value.Obj object.

Package Class Tree Deprecated Index Help
PREV PACKAGE NEXT PACKAGE FRAMES NO FRAMES


xdc.services.getset Class Hierarchy

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES

Hierarchy For Package xdc.services.getset

Class Hierarchy

  • java.lang.Object
    • xdc.services.getset.Field
    • xdc.services.getset.Fxn (implements org.mozilla.javascript.Callable)
      • xdc.services.getset.AutoFxn
    • xdc.services.getset.GetSet
    • xdc.services.getset.GetSetData
    • xdc.services.getset.Group
    • xdc.services.getset.Scheduler
    • org.mozilla.javascript.ScriptableObject (implements org.mozilla.javascript.ConstProperties, org.mozilla.javascript.debug.DebuggableObject, org.mozilla.javascript.Scriptable, java.io.Serializable)
      • org.mozilla.javascript.IdScriptableObject (implements org.mozilla.javascript.IdFunctionCall)
        • org.mozilla.javascript.BaseFunction (implements org.mozilla.javascript.Function)
          • xdc.services.getset.Getters
          • xdc.services.getset.Setters
Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Scheduler

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.getset
Class Scheduler

java.lang.Object
    extended by  xdc.services.getset.Scheduler

public class Scheduler
extends java.lang.Object

Schedules execution of Fxns and Groups. Fxns within a group always run to completion before another function within the group. Groups may interrupt each other.

Note: Does not support multiple Threads accessing the XDCscript object model.

Constructor Summary
Scheduler()
Method Summary
static Group | createGroup()
static Fxn | getRunningFxn() Get which Fxn is currently running, or null if none.
static Group | getRunningGroup() Get which Group is currently running, or null if none.
static void | schedule(Group group) Schedule the group for execution.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Scheduler

public Scheduler()
Method Detail

createGroup

public static Group createGroup()

getRunningGroup

public static Group getRunningGroup()
Get which Group is currently running, or null if none.

getRunningFxn

public static Fxn getRunningFxn()
Get which Fxn is currently running, or null if none.

schedule

public static void schedule(Group group)
Schedule the group for execution. If the group isn't already running then execute it immediately. Interrupts any other groups that are currently running.

If a group that is already running anywhere on the stack is rescheduled, ignore the request and let the group complete on it own time.

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Setters

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

xdc.services.getset
Class Setters

java.lang.Object
    extended by  org.mozilla.javascript.ScriptableObject
        extended by  org.mozilla.javascript.IdScriptableObject
            extended by  org.mozilla.javascript.BaseFunction
                extended by  xdc.services.getset.Setters
All Implemented Interfaces:
java.io.Serializable, org.mozilla.javascript.Callable, org.mozilla.javascript.ConstProperties, org.mozilla.javascript.debug.DebuggableObject, org.mozilla.javascript.Function, org.mozilla.javascript.IdFunctionCall, org.mozilla.javascript.Scriptable
public class Setters
extends org.mozilla.javascript.BaseFunction

A setter function to be added to a field of an XDCscript Value.Obj object. The Setters service manages a set of user-defined setter functions that notifies client code of a change to the value of the field. The setter only fires on writes to the field that actually change its value. Writing the current value again doesn't fire the setter.

There is also a set of global user-defined setter functions that are notified on any change. This avoids having to manually add such setters to every field. Note, though, that the global setters only apply to fields that have had the Setters service added to them.

The JavaScript setter functions have the signature:

 this.function(name, newValue, oldValue)
     this is set to the object whose field changed value
     name is the name of the field that changed value
     newValue is the new value of the field
     oldValue was the value of the field before the assignment
Following normal JavaScript conventions, unneeded arguments can be omitted from the declaration. So all of the following are valid declarations for a setter function:
 function(name, newValue, oldValue) {}
 function(name, newValue) {}
 function(name) {}
 function() {}

See Also:
Serialized Form

Field Summary
Fields inherited from class org.mozilla.javascript.ScriptableObject
CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST
Fields inherited from interface org.mozilla.javascript.Scriptable
NOT_FOUND
Constructor Summary
Setters(java.lang.Object member)
Method Summary
static void | addGlobal(org.mozilla.javascript.Callable setter) Add a setter that is called when any field changes value.
java.lang.Object | call(org.mozilla.javascript.Context cx, org.mozilla.javascript.Scriptable scope, org.mozilla.javascript.Scriptable thisObj, java.lang.Object[] args) The master setter function called by XDCscript.
static int | getMaxStackDepth() Get the maximum allowed depth of recursively nested setters.
static java.util.Set<org.mozilla.javascript.Callable> | init(xdc.services.intern.xsr.Value.Observable obj, int index)
static java.util.Set<org.mozilla.javascript.Callable> | init(xdc.services.intern.xsr.Value.Observable obj, java.lang.String name) Add setter support to a field of an object.
static void | setMaxStackDepth(int maxStackDepth) Set the maximum allowed depth of recursively nested setters, as a debugging aid.
Methods inherited from class org.mozilla.javascript.BaseFunction
construct, createObject, execIdCall, fillConstructorProperties, findInstanceIdInfo, findPrototypeId, getArity, getClassName, getClassPrototype, getFunctionName, getInstanceIdName, getInstanceIdValue, getLength, getMaxInstanceId, hasInstance, initPrototypeId, setImmunePrototypeProperty, setInstanceIdValue
Methods inherited from class org.mozilla.javascript.IdScriptableObject
activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultPut, delete, exportAsJSClass, get, getAttributes, has, hasPrototypeMap, incompatibleCallError, initPrototypeConstructor, initPrototypeMethod, initPrototypeValue, instanceIdInfo, put, setAttributes
Methods inherited from class org.mozilla.javascript.ScriptableObject
associateValue, avoidObjectDetection, callMethod, callMethod, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, equivalentValues, get, getAllIds, getAssociatedValue, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getPropertyIds, getPrototype, getTopLevelScope, getTopScopeValue, has, hasProperty, hasProperty, isConst, isGetterOrSetter, isSealed, put, putConst, putConstProperty, putProperty, putProperty, redefineProperty, sealObject, setAttributes, setAttributes, setAttributes, setGetterOrSetter, setParentScope, setPrototype
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.mozilla.javascript.Scriptable
delete, delete, get, get, getDefaultValue, getIds, getParentScope, getPrototype, has, has, put, put, setParentScope, setPrototype

Constructor Detail

Setters

public Setters(java.lang.Object member)
Method Detail

init

public static java.util.Set<org.mozilla.javascript.Callable> init(xdc.services.intern.xsr.Value.Observable obj,
                                                                  java.lang.String name)
Add setter support to a field of an object.

Returns:
The set of user setters for the field.

init

public static java.util.Set<org.mozilla.javascript.Callable> init(xdc.services.intern.xsr.Value.Observable obj,
                                                                  int index)

call

public java.lang.Object call(org.mozilla.javascript.Context cx,
                             org.mozilla.javascript.Scriptable scope,
                             org.mozilla.javascript.Scriptable thisObj,
                             java.lang.Object[] args)
The master setter function called by XDCscript. First calls all the global setters, then calls the individual setters registered on this field.

Specified by:
call in interface org.mozilla.javascript.Callable
Specified by:
call in interface org.mozilla.javascript.Function
Overrides:
call in class org.mozilla.javascript.BaseFunction

addGlobal

public static void addGlobal(org.mozilla.javascript.Callable setter)
Add a setter that is called when any field changes value.

getMaxStackDepth

public static int getMaxStackDepth()
Get the maximum allowed depth of recursively nested setters.

setMaxStackDepth

public static void setMaxStackDepth(int maxStackDepth)
Set the maximum allowed depth of recursively nested setters, as a debugging aid.

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD


 All Classes
Atom
Attr
BrowserSession
Cache
Decl
Decl.Annexable
Decl.Arg
Decl.AuxDef
Decl.Config
Decl.Const
Decl.Enum
Decl.EnumVal
Decl.Extern
Decl.Field
Decl.Fxn
Decl.IsType
Decl.LocalUnit
Decl.OverridableDef
Decl.Proxy
Decl.Signature
Decl.Signature.ObjKind
Decl.Sizeable
Decl.Struct
Decl.Typedef
DocComment
Expr
Expr.Aggregate
Expr.Array
Expr.Binary
Expr.Cond
Expr.Const
Expr.Creat
Expr.Hash
Expr.Paren
Expr.Term
Expr.Unary
GrammarLexer
GrammarParser
Import
Node
ParserSession
Persist
Persist.Fixup
Persist.Input
Persist.Output
Pkg
Qual
Ref
Reserved
Session
SessionRuntimeException
Sup
Test
Type
Type.Array
Type.Array.Kind
Type.Creator
Type.Declarator
Type.Fxn
Type.Modifier
Type.Paren
Type.Ptr
Type.Spec
Unit
XDoc


Constant Field Values

Contents
  • xdc.services.*
xdc.services.*

xdc.services.spec.Attr
public static final java.lang.String | A_Annex | "@Annex"
public static final java.lang.String | A_CommandOption | "@CommandOption"
public static final java.lang.String | A_CustomHeader | "@CustomHeader"
public static final java.lang.String | A_DirectCall | "@DirectCall"
public static final java.lang.String | A_Encoded | "@Encoded"
public static final java.lang.String | A_Facet | "@Facet"
public static final java.lang.String | A_Gated | "@Gated"
public static final java.lang.String | A_GlobalNames | "@GlobalNames"
public static final java.lang.String | A_HeaderName | "@HeaderName"
public static final java.lang.String | A_InstanceFinalize | "@InstanceFinalize"
public static final java.lang.String | A_InstanceInitError | "@InstanceInitError"
public static final java.lang.String | A_InstanceInitStatic | "@InstanceInitStatic"
public static final java.lang.String | A_Macro | "@Macro"
public static final java.lang.String | A_ModuleStartup | "@ModuleStartup"
public static final java.lang.String | A_NoRuntime | "@NoRuntime"
public static final java.lang.String | A_Opaque | "@Opaque"
public static final java.lang.String | A_Prefix | "@Prefix"
public static final java.lang.String | A_Proxy | "@Proxy"
public static final java.lang.String | A_System | "@System"
public static final java.lang.String | A_TargetHeader | "@TargetHeader"
public static final java.lang.String | A_Template | "@Template"
public static final java.lang.String | A_Transient | "@Transient"
public static final java.lang.String | A_XmlDtd | "@XmlDtd"

xdc.services.spec.GrammarLexer
public static final int | AMP | 24
public static final int | AMPAMP | 25
public static final int | ATTR | 11
public static final int | BANG | 41
public static final int | BANGEQ | 26
public static final int | BAR | 27
public static final int | BARBAR | 28
public static final int | CAR | 29
public static final int | CHAR | 22
public static final int | COLON | 19
public static final int | COMMA | 9
public static final int | D | 49
public static final int | DIV | 30
public static final int | DOC_BLK | 15
public static final int | DOC_INL | 16
public static final int | DOC_PRE | 55
public static final int | DOC_SUF | 56
public static final int | DOT | 51
public static final int | E | 50
public static final int | ELIPSIS | 10
public static final int | EOF | -1
public static final int | EQ | 12
public static final int | EQEQ | 31
public static final int | GT | 32
public static final int | GTEQ | 33
public static final int | GTGT | 34
public static final int | H | 52
public static final int | ID | 48
public static final int | IDENT | 13
public static final int | LBRK | 7
public static final int | LCUR | 17
public static final int | LPAR | 5
public static final int | LT | 35
public static final int | LTEQ | 36
public static final int | LTLT | 37
public static final int | LU | 53
public static final int | MIN | 38
public static final int | ML_COMMENT | 47
public static final int | NUM | 21
public static final int | OPER | 57
public static final int | PATH | 43
public static final int | PATHSTAR | 44
public static final int | PCT | 39
public static final int | PLUS | 40
public static final int | QUEST | 20
public static final int | R | 54
public static final int | RBRK | 8
public static final int | RCUR | 18
public static final int | RPAR | 6
public static final int | SEMI | 14
public static final int | SL_COMMENT | 46
public static final int | STAR | 4
public static final int | STRING | 23
public static final int | T__100 | 100
public static final int | T__101 | 101
public static final int | T__102 | 102
public static final int | T__103 | 103
public static final int | T__104 | 104
public static final int | T__105 | 105
public static final int | T__106 | 106
public static final int | T__107 | 107
public static final int | T__108 | 108
public static final int | T__109 | 109
public static final int | T__110 | 110
public static final int | T__111 | 111
public static final int | T__112 | 112
public static final int | T__113 | 113
public static final int | T__114 | 114
public static final int | T__115 | 115
public static final int | T__116 | 116
public static final int | T__117 | 117
public static final int | T__118 | 118
public static final int | T__119 | 119
public static final int | T__120 | 120
public static final int | T__121 | 121
public static final int | T__122 | 122
public static final int | T__123 | 123
public static final int | T__124 | 124
public static final int | T__125 | 125
public static final int | T__126 | 126
public static final int | T__127 | 127
public static final int | T__128 | 128
public static final int | T__129 | 129
public static final int | T__130 | 130
public static final int | T__131 | 131
public static final int | T__132 | 132
public static final int | T__133 | 133
public static final int | T__134 | 134
public static final int | T__135 | 135
public static final int | T__136 | 136
public static final int | T__58 | 58
public static final int | T__59 | 59
public static final int | T__60 | 60
public static final int | T__61 | 61
public static final int | T__62 | 62
public static final int | T__63 | 63
public static final int | T__64 | 64
public static final int | T__65 | 65
public static final int | T__66 | 66
public static final int | T__67 | 67
public static final int | T__68 | 68
public static final int | T__69 | 69
public static final int | T__70 | 70
public static final int | T__71 | 71
public static final int | T__72 | 72
public static final int | T__73 | 73
public static final int | T__74 | 74
public static final int | T__75 | 75
public static final int | T__76 | 76
public static final int | T__77 | 77
public static final int | T__78 | 78
public static final int | T__79 | 79
public static final int | T__80 | 80
public static final int | T__81 | 81
public static final int | T__82 | 82
public static final int | T__83 | 83
public static final int | T__84 | 84
public static final int | T__85 | 85
public static final int | T__86 | 86
public static final int | T__87 | 87
public static final int | T__88 | 88
public static final int | T__89 | 89
public static final int | T__90 | 90
public static final int | T__91 | 91
public static final int | T__92 | 92
public static final int | T__93 | 93
public static final int | T__94 | 94
public static final int | T__95 | 95
public static final int | T__96 | 96
public static final int | T__97 | 97
public static final int | T__98 | 98
public static final int | T__99 | 99
public static final int | TILDE | 42
public static final int | WS | 45

xdc.services.spec.GrammarParser
public static final int | AMP | 24
public static final int | AMPAMP | 25
public static final int | ATTR | 11
public static final int | BANG | 41
public static final int | BANGEQ | 26
public static final int | BAR | 27
public static final int | BARBAR | 28
public static final int | CAR | 29
public static final int | CHAR | 22
public static final int | COLON | 19
public static final int | COMMA | 9
public static final int | D | 49
public static final int | DIV | 30
public static final int | DOC_BLK | 15
public static final int | DOC_INL | 16
public static final int | DOC_PRE | 55
public static final int | DOC_SUF | 56
public static final int | DOT | 51
public static final int | E | 50
public static final int | ELIPSIS | 10
public static final int | EOF | -1
public static final int | EQ | 12
public static final int | EQEQ | 31
public static final int | GT | 32
public static final int | GTEQ | 33
public static final int | GTGT | 34
public static final int | H | 52
public static final int | ID | 48
public static final int | IDENT | 13
public static final int | LBRK | 7
public static final int | LCUR | 17
public static final int | LPAR | 5
public static final int | LT | 35
public static final int | LTEQ | 36
public static final int | LTLT | 37
public static final int | LU | 53
public static final int | MIN | 38
public static final int | ML_COMMENT | 47
public static final int | NUM | 21
public static final int | OPER | 57
public static final int | PATH | 43
public static final int | PATHSTAR | 44
public static final int | PCT | 39
public static final int | PLUS | 40
public static final int | QUEST | 20
public static final int | R | 54
public static final int | RBRK | 8
public static final int | RCUR | 18
public static final int | RPAR | 6
public static final int | SEMI | 14
public static final int | SL_COMMENT | 46
public static final int | STAR | 4
public static final int | STRING | 23
public static final int | T__100 | 100
public static final int | T__101 | 101
public static final int | T__102 | 102
public static final int | T__103 | 103
public static final int | T__104 | 104
public static final int | T__105 | 105
public static final int | T__106 | 106
public static final int | T__107 | 107
public static final int | T__108 | 108
public static final int | T__109 | 109
public static final int | T__110 | 110
public static final int | T__111 | 111
public static final int | T__112 | 112
public static final int | T__113 | 113
public static final int | T__114 | 114
public static final int | T__115 | 115
public static final int | T__116 | 116
public static final int | T__117 | 117
public static final int | T__118 | 118
public static final int | T__119 | 119
public static final int | T__120 | 120
public static final int | T__121 | 121
public static final int | T__122 | 122
public static final int | T__123 | 123
public static final int | T__124 | 124
public static final int | T__125 | 125
public static final int | T__126 | 126
public static final int | T__127 | 127
public static final int | T__128 | 128
public static final int | T__129 | 129
public static final int | T__130 | 130
public static final int | T__131 | 131
public static final int | T__132 | 132
public static final int | T__133 | 133
public static final int | T__134 | 134
public static final int | T__135 | 135
public static final int | T__136 | 136
public static final int | T__58 | 58
public static final int | T__59 | 59
public static final int | T__60 | 60
public static final int | T__61 | 61
public static final int | T__62 | 62
public static final int | T__63 | 63
public static final int | T__64 | 64
public static final int | T__65 | 65
public static final int | T__66 | 66
public static final int | T__67 | 67
public static final int | T__68 | 68
public static final int | T__69 | 69
public static final int | T__70 | 70
public static final int | T__71 | 71
public static final int | T__72 | 72
public static final int | T__73 | 73
public static final int | T__74 | 74
public static final int | T__75 | 75
public static final int | T__76 | 76
public static final int | T__77 | 77
public static final int | T__78 | 78
public static final int | T__79 | 79
public static final int | T__80 | 80
public static final int | T__81 | 81
public static final int | T__82 | 82
public static final int | T__83 | 83
public static final int | T__84 | 84
public static final int | T__85 | 85
public static final int | T__86 | 86
public static final int | T__87 | 87
public static final int | T__88 | 88
public static final int | T__89 | 89
public static final int | T__90 | 90
public static final int | T__91 | 91
public static final int | T__92 | 92
public static final int | T__93 | 93
public static final int | T__94 | 94
public static final int | T__95 | 95
public static final int | T__96 | 96
public static final int | T__97 | 97
public static final int | T__98 | 98
public static final int | T__99 | 99
public static final int | TILDE | 42
public static final int | WS | 45

xdc.services.spec.Type
public static final java.lang.String | ARG | "IArg"
public static final java.lang.String | CHAR | "Char"
public static final java.lang.String | DOUBLE | "Double"
public static final java.lang.String | FLOAT | "Float"
public static final java.lang.String | FXN | "Fxn"
public static final java.lang.String | INT | "Int"
public static final java.lang.String | INT16 | "Int16"
public static final java.lang.String | INT32 | "Int32"
public static final java.lang.String | INT40 | "Int40"
public static final java.lang.String | INT64 | "Int64"
public static final java.lang.String | INT8 | "Int8"
public static final java.lang.String | LONG | "Long"
public static final java.lang.String | LONGDOUBLE | "LDouble"
public static final java.lang.String | LONGLONG | "LLong"
public static final java.lang.String | PTR | "Ptr"
public static final java.lang.String | SHORT | "Short"
public static final java.lang.String | SIZE | "Size"

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Deprecated List

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES

Deprecated API

Contents
  • Deprecated Methods
Deprecated Methods
xdc.services.spec.Unit.decl(String)
replaced by Unit.getDecl(String)

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Index

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES
A B C D E F G H I L M N O P Q R S T U V W X

A

A_Annex - Static variable in class xdc.services.spec.Attr
A_CommandOption - Static variable in class xdc.services.spec.Attr
A_CustomHeader - Static variable in class xdc.services.spec.Attr
A_DirectCall - Static variable in class xdc.services.spec.Attr
A_Encoded - Static variable in class xdc.services.spec.Attr
A_Facet - Static variable in class xdc.services.spec.Attr
A_Gated - Static variable in class xdc.services.spec.Attr
A_GlobalNames - Static variable in class xdc.services.spec.Attr
A_HeaderName - Static variable in class xdc.services.spec.Attr
A_InstanceFinalize - Static variable in class xdc.services.spec.Attr
A_InstanceInitError - Static variable in class xdc.services.spec.Attr
A_InstanceInitStatic - Static variable in class xdc.services.spec.Attr
A_Macro - Static variable in class xdc.services.spec.Attr
A_ModuleStartup - Static variable in class xdc.services.spec.Attr
A_NoRuntime - Static variable in class xdc.services.spec.Attr
A_Opaque - Static variable in class xdc.services.spec.Attr
A_Prefix - Static variable in class xdc.services.spec.Attr
A_Proxy - Static variable in class xdc.services.spec.Attr
A_System - Static variable in class xdc.services.spec.Attr
A_TargetHeader - Static variable in class xdc.services.spec.Attr
A_Template - Static variable in class xdc.services.spec.Attr
A_Transient - Static variable in class xdc.services.spec.Attr
A_XmlDtd - Static variable in class xdc.services.spec.Attr
absArgDecl() - Method in class xdc.services.spec.GrammarParser
absArgDeclListOpt() - Method in class xdc.services.spec.GrammarParser
absDeclarator() - Method in class xdc.services.spec.GrammarParser
absDeclarator_tail(Type) - Method in class xdc.services.spec.GrammarParser
addBeforeSect(String, String) - Method in class xdc.services.spec.XDoc
addChild(String, String) - Method in class xdc.services.spec.XDoc
addNums(Integer...) - Method in class xdc.services.spec.Test
AMP - Static variable in class xdc.services.spec.GrammarLexer
AMP - Static variable in class xdc.services.spec.GrammarParser
AMPAMP - Static variable in class xdc.services.spec.GrammarLexer
AMPAMP - Static variable in class xdc.services.spec.GrammarParser
annotation() - Method in class xdc.services.spec.GrammarParser
annotAttr(ArrayList<Attr>) - Method in class xdc.services.spec.GrammarParser
ARG - Static variable in class xdc.services.spec.Type
argDecl() - Method in class xdc.services.spec.GrammarParser
argDeclListOpt() - Method in class xdc.services.spec.GrammarParser
Atom - Class in xdc.services.spec
The class that represents a token in a specification file.
Attr - Class in xdc.services.spec
ATTR - Static variable in class xdc.services.spec.GrammarLexer
ATTR - Static variable in class xdc.services.spec.GrammarParser
attrBool(String) - Method in class xdc.services.spec.Node
attrInt(String) - Method in class xdc.services.spec.Node
attrString(String) - Method in class xdc.services.spec.Node

B

BANG - Static variable in class xdc.services.spec.GrammarLexer
BANG - Static variable in class xdc.services.spec.GrammarParser
BANGEQ - Static variable in class xdc.services.spec.GrammarLexer
BANGEQ - Static variable in class xdc.services.spec.GrammarParser
BAR - Static variable in class xdc.services.spec.GrammarLexer
BAR - Static variable in class xdc.services.spec.GrammarParser
BARBAR - Static variable in class xdc.services.spec.GrammarLexer
BARBAR - Static variable in class xdc.services.spec.GrammarParser
basicDeclarator() - Method in class xdc.services.spec.GrammarParser
BrowserSession - Class in xdc.services.spec
BrowserSession() - Constructor for class xdc.services.spec.BrowserSession
Create a session to browse the current package path.
BrowserSession(Env) - Constructor for class xdc.services.spec.BrowserSession
Create a new session with a given environment
BrowserSession(Env, Cache) - Constructor for class xdc.services.spec.BrowserSession
BrowserSession(String[]) - Constructor for class xdc.services.spec.BrowserSession
Create a new session with a given package path
BrowserSession(String[], Env) - Constructor for class xdc.services.spec.BrowserSession
Create a new session with a given package path and environment

C

Cache - Class in xdc.services.spec
Cache of spec objects for a session.
Cache() - Constructor for class xdc.services.spec.Cache
CAR - Static variable in class xdc.services.spec.GrammarLexer
CAR - Static variable in class xdc.services.spec.GrammarParser
CHAR - Static variable in class xdc.services.spec.GrammarLexer
CHAR - Static variable in class xdc.services.spec.GrammarParser
CHAR - Static variable in class xdc.services.spec.Type
COLON - Static variable in class xdc.services.spec.GrammarLexer
COLON - Static variable in class xdc.services.spec.GrammarParser
COMMA - Static variable in class xdc.services.spec.GrammarLexer
COMMA - Static variable in class xdc.services.spec.GrammarParser
compareTo(Node) - Method in class xdc.services.spec.Node
compile(String) - Method in class xdc.services.spec.ParserSession
configDecl() - Method in class xdc.services.spec.GrammarParser
constDecl() - Method in class xdc.services.spec.GrammarParser
contains(Node) - Method in class xdc.services.spec.Cache
Poll whether the cache contains an object.
contains(String) - Method in class xdc.services.spec.Cache
Poll whether the cache contains the named object.
copy() - Method in class xdc.services.spec.XDoc

D

D - Static variable in class xdc.services.spec.GrammarLexer
D - Static variable in class xdc.services.spec.GrammarParser
Decl - Class in xdc.services.spec
Decl() - Constructor for class xdc.services.spec.Decl
decl(String) - Method in class xdc.services.spec.Unit
Deprecated. replaced by Unit.getDecl(String)
Decl.Annexable - Interface in xdc.services.spec
Decl.Arg - Class in xdc.services.spec
Decl.AuxDef - Interface in xdc.services.spec
Decl.Config - Class in xdc.services.spec
Decl.Const - Class in xdc.services.spec
Decl.Enum - Class in xdc.services.spec
Decl.EnumVal - Class in xdc.services.spec
Decl.Extern - Class in xdc.services.spec
Decl.Field - Class in xdc.services.spec
Decl.Fxn - Class in xdc.services.spec
Decl.IsType - Interface in xdc.services.spec
Decl.LocalUnit - Interface in xdc.services.spec
Decl.OverridableDef - Interface in xdc.services.spec
Decl.Proxy - Class in xdc.services.spec
Decl.Signature - Interface in xdc.services.spec
Decl.Signature.ObjKind - Enum in xdc.services.spec
Decl.Sizeable - Interface in xdc.services.spec
Decl.Struct - Class in xdc.services.spec
Decl.Typedef - Class in xdc.services.spec
declarator() - Method in class xdc.services.spec.GrammarParser
declarator_tail(Type) - Method in class xdc.services.spec.GrammarParser
declarator_term() - Method in class xdc.services.spec.GrammarParser
declQuals() - Method in class xdc.services.spec.GrammarParser
delegatesTo() - Method in class xdc.services.spec.Unit
dfa10 - Variable in class xdc.services.spec.GrammarParser
dfa11 - Variable in class xdc.services.spec.GrammarParser
dfa12 - Variable in class xdc.services.spec.GrammarParser
dfa13 - Variable in class xdc.services.spec.GrammarParser
dfa14 - Variable in class xdc.services.spec.GrammarParser
dfa20 - Variable in class xdc.services.spec.GrammarParser
dfa21 - Variable in class xdc.services.spec.GrammarParser
dfa22 - Variable in class xdc.services.spec.GrammarParser
dfa24 - Variable in class xdc.services.spec.GrammarParser
dfa27 - Variable in class xdc.services.spec.GrammarParser
dfa28 - Variable in class xdc.services.spec.GrammarParser
dfa3 - Variable in class xdc.services.spec.GrammarParser
dfa30 - Variable in class xdc.services.spec.GrammarParser
dfa35 - Variable in class xdc.services.spec.GrammarLexer
dfa36 - Variable in class xdc.services.spec.GrammarLexer
dfa36 - Variable in class xdc.services.spec.GrammarParser
dfa37 - Variable in class xdc.services.spec.GrammarParser
dfa39 - Variable in class xdc.services.spec.GrammarParser
dfa41 - Variable in class xdc.services.spec.GrammarParser
dfa42 - Variable in class xdc.services.spec.GrammarParser
dfa43 - Variable in class xdc.services.spec.GrammarParser
dfa44 - Variable in class xdc.services.spec.GrammarParser
dfa45 - Variable in class xdc.services.spec.GrammarParser
dfa47 - Variable in class xdc.services.spec.GrammarParser
dfa48 - Variable in class xdc.services.spec.GrammarParser
dfa51 - Variable in class xdc.services.spec.GrammarParser
dfa53 - Variable in class xdc.services.spec.GrammarParser
dfa54 - Variable in class xdc.services.spec.GrammarParser
dfa55 - Variable in class xdc.services.spec.GrammarParser
dfa56 - Variable in class xdc.services.spec.GrammarParser
dfa57 - Variable in class xdc.services.spec.GrammarParser
dfa6 - Variable in class xdc.services.spec.GrammarParser
dfa61 - Variable in class xdc.services.spec.GrammarParser
dfa62 - Variable in class xdc.services.spec.GrammarParser
dfa77 - Variable in class xdc.services.spec.GrammarParser
dfa78 - Variable in class xdc.services.spec.GrammarParser
dfa79 - Variable in class xdc.services.spec.GrammarParser
dfa80 - Variable in class xdc.services.spec.GrammarParser
dfa82 - Variable in class xdc.services.spec.GrammarParser
dfa83 - Variable in class xdc.services.spec.GrammarParser
dfa84 - Variable in class xdc.services.spec.GrammarParser
dfa85 - Variable in class xdc.services.spec.GrammarParser
dfa9 - Variable in class xdc.services.spec.GrammarParser
dfa95 - Variable in class xdc.services.spec.GrammarParser
dfa96 - Variable in class xdc.services.spec.GrammarParser
dfa98 - Variable in class xdc.services.spec.GrammarParser
DIV - Static variable in class xdc.services.spec.GrammarLexer
DIV - Static variable in class xdc.services.spec.GrammarParser
DOC_BLK - Static variable in class xdc.services.spec.GrammarLexer
DOC_BLK - Static variable in class xdc.services.spec.GrammarParser
doc_block(ArrayList<DocComment>) - Method in class xdc.services.spec.GrammarParser
DOC_INL - Static variable in class xdc.services.spec.GrammarLexer
DOC_INL - Static variable in class xdc.services.spec.GrammarParser
doc_inline(ArrayList<DocComment>) - Method in class xdc.services.spec.GrammarParser
DOC_PRE - Static variable in class xdc.services.spec.GrammarLexer
DOC_PRE - Static variable in class xdc.services.spec.GrammarParser
DOC_SUF - Static variable in class xdc.services.spec.GrammarLexer
DOC_SUF - Static variable in class xdc.services.spec.GrammarParser
DocComment - Class in xdc.services.spec
DOT - Static variable in class xdc.services.spec.GrammarLexer
DOT - Static variable in class xdc.services.spec.GrammarParser
DOUBLE - Static variable in class xdc.services.spec.Type

E

E - Static variable in class xdc.services.spec.GrammarLexer
E - Static variable in class xdc.services.spec.GrammarParser
eBOP() - Method in class xdc.services.spec.GrammarParser
ELIPSIS - Static variable in class xdc.services.spec.GrammarLexer
ELIPSIS - Static variable in class xdc.services.spec.GrammarParser
enumDecl() - Method in class xdc.services.spec.GrammarParser
enumRep() - Method in class xdc.services.spec.GrammarParser
enumVal() - Method in class xdc.services.spec.GrammarParser
enumValList(ArrayList<Decl.EnumVal>) - Method in class xdc.services.spec.GrammarParser
EOF - Static variable in class xdc.services.spec.GrammarLexer
EOF - Static variable in class xdc.services.spec.GrammarParser
EQ - Static variable in class xdc.services.spec.GrammarLexer
EQ - Static variable in class xdc.services.spec.GrammarParser
EQEQ - Static variable in class xdc.services.spec.GrammarLexer
EQEQ - Static variable in class xdc.services.spec.GrammarParser
eUOP() - Method in class xdc.services.spec.GrammarParser
Expr - Class in xdc.services.spec
Expr() - Constructor for class xdc.services.spec.Expr
expr() - Method in class xdc.services.spec.GrammarParser
Expr.Aggregate - Interface in xdc.services.spec
Expr.Array - Class in xdc.services.spec
Expr.Binary - Class in xdc.services.spec
Expr.Cond - Class in xdc.services.spec
Expr.Const - Class in xdc.services.spec
Expr.Creat - Class in xdc.services.spec
Expr.Hash - Class in xdc.services.spec
Expr.Paren - Class in xdc.services.spec
Expr.Term - Class in xdc.services.spec
Expr.Unary - Class in xdc.services.spec
exprBin() - Method in class xdc.services.spec.GrammarParser
exprCnd() - Method in class xdc.services.spec.GrammarParser
exprList() - Method in class xdc.services.spec.GrammarParser
exprProp(List<Atom>, List<Expr>) - Method in class xdc.services.spec.GrammarParser
exprTrm() - Method in class xdc.services.spec.GrammarParser
exprUry() - Method in class xdc.services.spec.GrammarParser
externDecl() - Method in class xdc.services.spec.GrammarParser

F

fieldDecl() - Method in class xdc.services.spec.GrammarParser
fieldDeclList(List<Decl.Field>) - Method in class xdc.services.spec.GrammarParser
findDecl(Unit, String) - Method in class xdc.services.spec.Session
findDecl(String) - Method in class xdc.services.spec.Session
findPkg(String) - Method in class xdc.services.spec.BrowserSession
findPkg(String) - Method in class xdc.services.spec.Session
findUnit(Pkg, String) - Method in class xdc.services.spec.Session
findUnit(String) - Method in class xdc.services.spec.Session
FLOAT - Static variable in class xdc.services.spec.Type
FOLLOW_100_in_typeSpecG6125 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_101_in_typeSpecG6170 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_102_in_typeSpecG6218 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_103_in_typeSpecG6265 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_104_in_typeSpecG6312 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_105_in_typeSpecG6358 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_106_in_typeSpecG6404 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_107_in_typeSpecG6449 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_108_in_typeSpecG6495 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_109_in_typeSpecG6540 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_110_in_typeSpecG6584 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_111_in_typeSpecG6630 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_112_in_typeSpecG6683 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_113_in_typeSpecG6699 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_114_in_typeSpecG6746 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_115_in_typeSpecG6793 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_116_in_typeSpecG6839 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_117_in_typeSpecG6884 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_118_in_typeSpecG6929 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_119_in_typeSpecG6974 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_120_in_typeSpecG7021 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_121_in_typeSpecG7069 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_122_in_typeSpecG7116 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_123_in_typeSpecG7162 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_124_in_typeSpecG7208 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_125_in_typeSpecG7254 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_126_in_typeSpecG7302 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_127_in_typeSpecG7347 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_128_in_typeSpecG7393 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_129_in_typeSpecG7438 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_130_in_typeSpecG7483 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_131_in_typeSpecG7543 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_132_in_typeSpecG7591 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_133_in_unitImp7715 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_134_in_unitImp7722 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_135_in_unitSpec7951 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_136_in_unitSpec7997 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_58_in_absDeclarator128 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_58_in_constDecl930 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_58_in_typeMods5063 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_59_in_configDecl855 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_60_in_configDecl869 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_61_in_declQuals983 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_62_in_declQuals998 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_63_in_declQuals1013 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_63_in_unitSpec7890 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_64_in_declarator_tail1245 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_64_in_typeSpecG7638 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_65_in_declarator_tail1262 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_66_in_enumDecl1517 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_67_in_exprTrm2199 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_68_in_exprTrm2227 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_69_in_exprTrm2255 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_70_in_exprTrm2283 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_71_in_externDecl3010 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_72_in_fxnHdr3273 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_73_in_methodDecl3727 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_74_in_pkgSpec4234 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_74_in_unitSpec7776 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_75_in_pkgReqList4345 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_76_in_pkgReqList4348 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_76_in_unitSpec8051 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_77_in_pkgUnit4447 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_77_in_unitSpec7905 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_78_in_pkgUnit4453 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_78_in_unitSpec7911 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_79_in_proxyDecl4637 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_80_in_proxyDecl4643 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_80_in_unitSpec7942 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_81_in_structDecl4805 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_81_in_structFieldDecl4901 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_82_in_structDecl4809 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_82_in_structFieldDecl4905 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_83_in_typeDecl5015 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_84_in_typeMods5074 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_85_in_typeMods5085 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_86_in_typeSpecG5237 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_87_in_typeSpecG5284 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_87_in_typeSpecG5333 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_88_in_typeSpecG5331 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_88_in_typeSpecG5415 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_88_in_typeSpecG5500 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_88_in_typeSpecG5543 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_88_in_typeSpecG5629 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_88_in_typeSpecG5709 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_89_in_typeSpecG5369 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_89_in_typeSpecG5417 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_90_in_typeSpecG5452 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_90_in_typeSpecG5545 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_91_in_typeSpecG5582 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_91_in_typeSpecG5631 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_91_in_typeSpecG5667 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_91_in_typeSpecG5669 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_91_in_typeSpecG5711 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_91_in_typeSpecG5713 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_91_in_typeSpecG5833 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_92_in_typeSpecG5742 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_93_in_typeSpecG5788 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_93_in_typeSpecG5835 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_94_in_typeSpecG5873 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_95_in_typeSpecG5918 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_96_in_typeSpecG5970 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_97_in_typeSpecG5986 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_98_in_typeSpecG6033 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_99_in_typeSpecG6079 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_absArgDecl_in_absArgDeclListOpt425 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_absArgDecl_in_absArgDeclListOpt434 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_absArgDeclListOpt_in_absDeclarator_tail351 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_absArgDeclListOpt_in_declarator_tail1329 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_absDeclarator_in_absArgDecl476 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_absDeclarator_in_absDeclarator134 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_absDeclarator_in_absDeclarator164 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_absDeclarator_tail_in_absDeclarator193 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_AMP_in_eBOP2519 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_AMP_in_eUOP2883 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_AMPAMP_in_eBOP2537 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_annotation_in_instDeclSpec3405 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_annotation_in_internDeclSpec3669 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_annotation_in_modDeclSpec4088 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_annotAttr_in_annotation523 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_annotAttr_in_pkgSpec4201 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_annotAttr_in_unitSpec7867 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_argDecl_in_argDeclListOpt638 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_argDecl_in_argDeclListOpt647 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_argDeclListOpt_in_fxnDecl3182 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_ATTR_in_annotAttr566 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_BANG_in_eUOP2901 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_BANGEQ_in_eBOP2555 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_BAR_in_eBOP2573 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_BARBAR_in_eBOP2591 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_basicDeclarator_in_basicDeclarator778 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_basicDeclarator_in_fxnHdr3245 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_CAR_in_eBOP2609 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_CHAR_in_exprTrm2339 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COLON_in_enumRep1578 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COLON_in_exprCnd2016 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COLON_in_exprProp1963 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COLON_in_unitSpec7999 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COLON_in_unitSpec8053 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_absArgDeclListOpt430 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_absDeclarator_tail355 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_argDeclListOpt643 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_declarator_tail1333 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_enumValList1645 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_expr1855 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_expr1863 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_expr1905 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_expr1916 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_exprList2467 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_fxnDecl3186 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_metArgDeclListOpt3814 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_pkgReqList4358 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_pkgUnit4471 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_COMMA_in_pkgVers4585 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_configDecl_in_instDecl3327 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_configDecl_in_internDecl3465 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_configDecl_in_modDecl3884 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_constDecl_in_internDecl3485 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_constDecl_in_modDecl3904 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_in_argDecl689 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_in_basicDeclarator808 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_in_configDecl875 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_in_constDecl936 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_in_declarator_term1164 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_in_externDecl3016 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_in_fieldDecl3118 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_in_typeDecl5021 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_tail_in_declarator1060 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_tail_in_declarator_tail1298 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_tail_in_declarator_tail1346 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_term_in_declarator1056 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declarator_term_in_declarator_term1106 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declQuals_in_instDeclSpec3409 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declQuals_in_internDeclSpec3673 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_declQuals_in_modDeclSpec4092 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_DIV_in_eBOP2627 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_DOC_BLK_in_one_doc_block1439 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_block_in_enumValList1717 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_block_in_instDeclSpec3399 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_block_in_internDeclSpec3663 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_block_in_modDeclSpec4082 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_block_in_pkgSpec4303 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_block_in_unitSpec8135 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_DOC_INL_in_doc_inline1479 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_inline_in_enumValList1661 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_inline_in_fieldDeclList3074 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_inline_in_instDeclSpec3417 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_inline_in_internDeclSpec3681 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_doc_inline_in_modDeclSpec4100 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_eBOP_in_exprBin2067 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_ELIPSIS_in_absDeclarator_tail357 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_ELIPSIS_in_declarator_tail1335 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_ELIPSIS_in_fxnDecl3188 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_enumDecl_in_internDecl3505 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_enumDecl_in_modDecl3924 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_enumRep_in_enumDecl1526 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_enumVal_in_enumValList1610 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_enumVal_in_enumValList1680 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_enumValList_in_enumDecl1532 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_EQ_in_argDecl692 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_EQ_in_configDecl878 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_EQ_in_constDecl939 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_EQ_in_eBOP2645 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_EQ_in_enumVal1768 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_EQ_in_externDecl3019 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_EQEQ_in_eBOP2663 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_eUOP_in_exprUry2116 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_absDeclarator247 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_absDeclarator_tail317 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_annotAttr573 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_argDecl696 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_configDecl882 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_constDecl943 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_declarator_tail1281 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_enumVal1772 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_expr1898 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_expr1909 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_exprList2462 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_exprList2471 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_exprProp1967 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_expr_in_exprTrm2405 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprBin_in_exprBin2071 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprBin_in_exprCnd2005 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprCnd_in_expr1820 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprCnd_in_exprCnd2014 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprCnd_in_exprCnd2020 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprList_in_exprTrm2169 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprProp_in_expr1849 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprProp_in_expr1857 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprTrm_in_exprUry2122 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_exprUry_in_exprBin2060 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_externDecl_in_internDecl3525 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_externDecl_in_modDecl3944 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_fieldDecl_in_fieldDeclList3070 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_fieldDeclList_in_structDecl4835 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_fieldDeclList_in_structFieldDecl4916 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_fxnDecl_in_instDecl3344 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_fxnDecl_in_internDecl3545 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_fxnDecl_in_modDecl3964 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_fxnHdr_in_fxnDecl3166 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_GT_in_eBOP2681 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_GTEQ_in_eBOP2699 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_GTGT_in_eBOP2717 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_basicDeclarator744 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_declarator_term1134 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_enumDecl1521 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_enumVal1765 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_exprProp1959 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_externDecl3023 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_metArg3849 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_methodDecl3731 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_pkgUnitName4512 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_proxyDecl4641 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_qualName4701 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_qualNameStar4751 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_structDecl4817 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_unitImp7726 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_IDENT_in_unitSpec7926 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_instDecl_in_instDeclSpec3413 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_instDeclSpec_in_unitSpec8025 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_internDecl_in_internDeclSpec3677 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_internDeclSpec_in_unitSpec8089 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LBRK_in_absDeclarator242 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LBRK_in_absDeclarator_tail312 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LBRK_in_declarator_tail1241 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LBRK_in_expr1893 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LBRK_in_pkgVers4550 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LCUR_in_enumDecl1530 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LCUR_in_expr1846 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LCUR_in_pkgSpec4258 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LCUR_in_structDecl4830 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LCUR_in_structFieldDecl4911 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LCUR_in_unitSpec7967 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_absDeclarator160 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_absDeclarator_tail347 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_annotAttr569 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_basicDeclarator804 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_declarator_tail1325 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_declarator_term1160 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_exprList2457 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_exprTrm2400 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_fxnDecl3178 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LPAR_in_methodDecl3734 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LT_in_eBOP2735 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LTEQ_in_eBOP2753 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_LTLT_in_eBOP2771 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_metArg_in_metArgDeclListOpt3809 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_metArg_in_metArgDeclListOpt3818 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_metArgDeclListOpt_in_methodDecl3738 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_methodDecl_in_instDecl3361 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_methodDecl_in_internDecl3565 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_methodDecl_in_modDecl3984 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_MIN_in_eBOP2789 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_MIN_in_eUOP2919 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_modDecl_in_modDeclSpec4096 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_modDeclSpec_in_unitSpec7982 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_NUM_in_exprTrm2311 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_NUM_in_pkgVers4567 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_NUM_in_pkgVers4589 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_one_doc_block_in_doc_block1396 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_one_doc_block_in_pkgSpec4180 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_one_doc_block_in_unitSpec7846 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_PATH_in_qualName4709 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_PATH_in_qualNameStar4759 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_PATHSTAR_in_qualNameStar4767 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_PCT_in_eBOP2807 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_pkgReq_in_pkgReqList4354 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_pkgReq_in_pkgReqList4360 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_pkgReqList_in_pkgSpec4159 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_pkgUnit_in_pkgSpec4273 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_pkgUnitName_in_pkgUnit4467 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_pkgUnitName_in_pkgUnit4473 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_pkgVers_in_pkgReq4401 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_pkgVers_in_pkgSpec4246 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_PLUS_in_eBOP2825 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_PLUS_in_eUOP2937 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_proxyDecl_in_internDecl3585 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_proxyDecl_in_modDecl4004 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_qualName_in_exprTrm2164 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_qualName_in_pkgReq4396 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_qualName_in_pkgSpec4239 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_qualName_in_superInt4971 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_qualName_in_typeSpecG5201 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_qualName_in_unitSpec7780 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_qualNameStar_in_unitImp7719 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_QUEST_in_exprCnd2010 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RBRK_in_absDeclarator251 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RBRK_in_absDeclarator_tail321 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RBRK_in_declarator_tail1294 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RBRK_in_expr1920 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RBRK_in_pkgVers4603 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RCUR_in_enumDecl1535 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RCUR_in_expr1867 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RCUR_in_pkgSpec4286 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RCUR_in_structDecl4840 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RCUR_in_structFieldDecl4921 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RCUR_in_unitSpec8118 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_absDeclarator166 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_absDeclarator_tail364 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_annotAttr575 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_basicDeclarator810 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_declarator_tail1342 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_declarator_term1166 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_exprList2479 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_exprTrm2409 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_fxnDecl3195 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_RPAR_in_methodDecl3740 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_configDecl886 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_constDecl947 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_enumDecl1538 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_externDecl3029 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_fieldDecl3120 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_fxnDecl3197 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_methodDecl3744 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_pkgReqList4365 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_pkgSpec4289 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_pkgUnit4478 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_proxyDecl4649 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_structDecl4843 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_structDecl4851 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_typeDecl5023 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_unitImp7732 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_unitSpec7783 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_SEMI_in_unitSpec8121 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_STAR_in_absDeclarator125 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_STAR_in_basicDeclarator770 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_STAR_in_declarator_term1098 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_STAR_in_eBOP2843 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_STAR_in_eUOP2955 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_STRING_in_exprTrm2367 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_structDecl_in_internDecl3605 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_structDecl_in_modDecl4024 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_structFieldDecl_in_typeSpecF5153 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_superInt_in_proxyDecl4647 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_superInt_in_unitSpec7946 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_superInt_in_unitSpec7955 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_TILDE_in_eUOP2973 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeDecl_in_internDecl3625 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeDecl_in_modDecl4044 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeMods_in_basicDeclarator774 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeMods_in_declarator_term1102 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeMods_in_typeSpecC5125 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpec_in_configDecl871 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpec_in_constDecl932 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpec_in_enumRep1580 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpec_in_fxnHdr3241 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpecC_in_absArgDecl472 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpecC_in_argDecl685 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpecC_in_externDecl3012 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpecC_in_typeDecl5017 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpecC_in_typeSpecF5144 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpecF_in_fieldDecl3114 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpecG_in_typeSpec5102 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_typeSpecG_in_typeSpecC5127 - Static variable in class xdc.services.spec.GrammarParser
FOLLOW_unitImp_in_unitSpec7816 - Static variable in class xdc.services.spec.GrammarParser
FXN - Static variable in class xdc.services.spec.Type
fxnDecl() - Method in class xdc.services.spec.GrammarParser
fxnHdr() - Method in class xdc.services.spec.GrammarParser

G

get(String) - Method in class xdc.services.spec.Cache
Get the cached copy of an object.
getAllFxns() - Method in class xdc.services.spec.Unit
getArg() - Method in class xdc.services.spec.DocComment
getArgs() - Method in class xdc.services.spec.Decl.Fxn
getArgs() - Method in class xdc.services.spec.Expr.Creat
getArgs() - Method in class xdc.services.spec.Type.Fxn
getAtom() - Method in class xdc.services.spec.Node
getAttrMap() - Method in class xdc.services.spec.Node
getBase() - Method in class xdc.services.spec.Type.Array
getBase() - Method in class xdc.services.spec.Type.Fxn
getBase() - Method in class xdc.services.spec.Type.Paren
getBase() - Method in class xdc.services.spec.Type.Ptr
getBaseDir() - Method in class xdc.services.spec.Pkg
getBody() - Method in class xdc.services.spec.DocComment
getBody() - Method in class xdc.services.spec.Expr.Paren
getChild() - Method in class xdc.services.spec.XDoc
getChildren() - Method in class xdc.services.spec.Decl.Enum
getChildren() - Method in class xdc.services.spec.Decl.Fxn
getChildren() - Method in class xdc.services.spec.Decl
getChildren() - Method in class xdc.services.spec.Decl.Struct
getChildren() - Method in class xdc.services.spec.Node
getChildren() - Method in class xdc.services.spec.Pkg
getChildren() - Method in class xdc.services.spec.Unit
getColor() - Method in class xdc.services.spec.Test
getCond() - Method in class xdc.services.spec.Expr.Cond
getConfigs() - Method in class xdc.services.spec.Unit
getCreator() - Method in class xdc.services.spec.Unit
getDecl(String) - Method in class xdc.services.spec.Unit
Get the named declaration from this unit.
getDeclName() - Method in class xdc.services.spec.Persist.Fixup
getDecls() - Method in class xdc.services.spec.Unit
getDetails() - Method in class xdc.services.spec.XDoc
getDim() - Method in class xdc.services.spec.Type.Array
getDocs() - Method in class xdc.services.spec.Node
getElems() - Method in class xdc.services.spec.Expr.Array
getEmbeds() - Method in class xdc.services.spec.Unit
getEnv() - Method in class xdc.services.spec.Session
getFields() - Method in class xdc.services.spec.Decl.Struct
getFile() - Method in class xdc.services.spec.Atom
getFxns() - Method in class xdc.services.spec.Unit
getGrammarFileName() - Method in class xdc.services.spec.GrammarLexer
getGrammarFileName() - Method in class xdc.services.spec.GrammarParser
getHeaders() - Method in class xdc.services.spec.XDoc
getId() - Method in class xdc.services.spec.Ref
getId() - Method in class xdc.services.spec.Type.Declarator
getIds() - Method in class xdc.services.spec.Expr.Hash
getInherits() - Method in class xdc.services.spec.Decl.Proxy
getInherits() - Method in class xdc.services.spec.Unit
getInit() - Method in class xdc.services.spec.Decl.Arg
getInit() - Method in class xdc.services.spec.Decl.Config
getInit() - Method in class xdc.services.spec.Decl.Const
getInit() - Method in class xdc.services.spec.Decl.EnumVal
getInterNames() - Method in class xdc.services.spec.Pkg
getInternFxns() - Method in class xdc.services.spec.Unit
getKey() - Method in class xdc.services.spec.Pkg
getKind() - Method in class xdc.services.spec.Type.Array
getLeft() - Method in class xdc.services.spec.Expr.Binary
getLeft() - Method in class xdc.services.spec.Expr.Cond
getLine() - Method in class xdc.services.spec.Atom
getLoadDocs() - Method in class xdc.services.spec.BrowserSession
Return whether documentation is available in this session.
getLocalSpecs() - Method in class xdc.services.spec.Pkg
getMinArgc() - Method in class xdc.services.spec.Decl.Fxn
getMiscSrcs() - Method in class xdc.services.spec.Pkg
getMod() - Method in class xdc.services.spec.Expr.Creat
getMode() - Method in class xdc.services.spec.DocComment
getModNames() - Method in class xdc.services.spec.Pkg
getMods() - Method in class xdc.services.spec.Type.Ptr
getMods() - Method in class xdc.services.spec.Type.Spec
getName() - Method in class xdc.services.spec.Attr
getName() - Method in class xdc.services.spec.Node
getNode() - Method in class xdc.services.spec.Ref
getOp() - Method in class xdc.services.spec.Expr.Binary
getOp() - Method in class xdc.services.spec.Expr.Unary
getOthers() - Method in class xdc.services.spec.XDoc
getOtherSpecs() - Method in class xdc.services.spec.Pkg
getParent() - Method in class xdc.services.spec.Node
getParId() - Method in class xdc.services.spec.DocComment
getPkgName() - Method in class xdc.services.spec.Node
getPkgName() - Method in class xdc.services.spec.Persist.Fixup
getPkgName() - Method in class xdc.services.spec.Pkg
getPkgName() - Method in class xdc.services.spec.Unit
getProviderId() - Method in class xdc.services.spec.Pkg
getProxies() - Method in class xdc.services.spec.Unit
getProxy() - Method in class xdc.services.spec.Ref
getQualName() - Method in class xdc.services.spec.Decl
getQualName() - Method in class xdc.services.spec.Node
getQualName() - Method in class xdc.services.spec.Persist.Fixup
getQualName() - Method in class xdc.services.spec.Pkg
getQualName() - Method in class xdc.services.spec.Unit
getRef() - Method in class xdc.services.spec.Expr.Term
getRef() - Method in class xdc.services.spec.Type.Spec
getReleaseVersion() - Method in class xdc.services.spec.Pkg
getRep() - Method in class xdc.services.spec.Decl.Enum
getRepository() - Method in class xdc.services.spec.Pkg
getRequires() - Method in class xdc.services.spec.Pkg
getRight() - Method in class xdc.services.spec.Expr.Binary
getRight() - Method in class xdc.services.spec.Expr.Cond
getRight() - Method in class xdc.services.spec.Expr.Unary
getScope() - Method in class xdc.services.spec.Ref
getSession() - Method in class xdc.services.spec.Node
getSizes() - Method in class xdc.services.spec.Decl.Struct
getStd() - Method in class xdc.services.spec.Type.Spec
getSummary() - Method in class xdc.services.spec.Node
getSummary() - Method in class xdc.services.spec.XDoc
getSuper() - Method in class xdc.services.spec.Unit
getTag() - Method in class xdc.services.spec.DocComment
getTerm() - Method in class xdc.services.spec.Expr.Creat
getTerm() - Method in class xdc.services.spec.Expr
getTerm() - Method in class xdc.services.spec.Expr.Paren
getTerm() - Method in class xdc.services.spec.Expr.Term
getText() - Method in class xdc.services.spec.Atom
getTokenNames() - Method in class xdc.services.spec.GrammarParser
getTrailers() - Method in class xdc.services.spec.XDoc
getType() - Method in class xdc.services.spec.Decl.Arg
getType() - Method in class xdc.services.spec.Decl.Config
getType() - Method in class xdc.services.spec.Decl.Const
getType() - Method in class xdc.services.spec.Decl.Extern
getType() - Method in class xdc.services.spec.Decl.Field
getType() - Method in class xdc.services.spec.Decl.Fxn
getType() - Method in interface xdc.services.spec.Decl.Signature
getType() - Method in class xdc.services.spec.Decl.Typedef
getTypeCode() - Method in class xdc.services.spec.Decl.Arg
getTypeCode() - Method in class xdc.services.spec.Decl.Config
getTypeCode() - Method in class xdc.services.spec.Decl.Const
getTypeCode() - Method in class xdc.services.spec.Decl.Extern
getTypeCode() - Method in class xdc.services.spec.Decl.Field
getTypeCode() - Method in class xdc.services.spec.Decl.Fxn
getTypeCode() - Method in interface xdc.services.spec.Decl.Signature
getTypeCode() - Method in class xdc.services.spec.Decl.Typedef
getTypeSig() - Method in class xdc.services.spec.Decl.Arg
getTypeSig() - Method in class xdc.services.spec.Decl.Config
getTypeSig() - Method in class xdc.services.spec.Decl.Const
getTypeSig() - Method in class xdc.services.spec.Decl.Extern
getTypeSig() - Method in class xdc.services.spec.Decl.Field
getTypeSig() - Method in class xdc.services.spec.Decl.Fxn
getTypeSig() - Method in interface xdc.services.spec.Decl.Signature
getTypeSig() - Method in class xdc.services.spec.Decl.Typedef
getUnit() - Method in interface xdc.services.spec.Decl.LocalUnit
getUnit() - Method in class xdc.services.spec.Decl.Proxy
getUnit() - Method in class xdc.services.spec.Sup
getUnits() - Method in class xdc.services.spec.Pkg
getUses() - Method in class xdc.services.spec.Unit
getVal() - Method in class xdc.services.spec.Attr
getVal() - Method in class xdc.services.spec.Expr.Const
getVal() - Method in class xdc.services.spec.Expr.Term
getVals() - Method in class xdc.services.spec.Decl.Enum
getVals() - Method in class xdc.services.spec.Expr.Hash
getValue() - Method in class xdc.services.spec.Decl.Extern
getVec() - Method in class xdc.services.spec.Test
getVers() - Method in class xdc.services.spec.Session
getVersion() - Method in class xdc.services.spec.Pkg
getXmlTag() - Method in class xdc.services.spec.Decl
getXmlTag() - Method in class xdc.services.spec.Decl.Struct
getXmlTag() - Method in class xdc.services.spec.Node
getXmlTag() - Method in class xdc.services.spec.Pkg
getXmlTag() - Method in class xdc.services.spec.Unit
GrammarLexer - Class in xdc.services.spec
GrammarLexer() - Constructor for class xdc.services.spec.GrammarLexer
GrammarLexer(CharStream) - Constructor for class xdc.services.spec.GrammarLexer
GrammarLexer(CharStream, RecognizerSharedState) - Constructor for class xdc.services.spec.GrammarLexer
GrammarParser - Class in xdc.services.spec
GrammarParser(TokenStream) - Constructor for class xdc.services.spec.GrammarParser
GrammarParser(TokenStream, RecognizerSharedState) - Constructor for class xdc.services.spec.GrammarParser
GT - Static variable in class xdc.services.spec.GrammarLexer
GT - Static variable in class xdc.services.spec.GrammarParser
GTEQ - Static variable in class xdc.services.spec.GrammarLexer
GTEQ - Static variable in class xdc.services.spec.GrammarParser
GTGT - Static variable in class xdc.services.spec.GrammarLexer
GTGT - Static variable in class xdc.services.spec.GrammarParser

H

H - Static variable in class xdc.services.spec.GrammarLexer
H - Static variable in class xdc.services.spec.GrammarParser
hasAttr(String) - Method in class xdc.services.spec.Node
hasCreateArgs() - Method in class xdc.services.spec.Unit
hasCustHdr() - Method in class xdc.services.spec.Unit
hasInstObj() - Method in class xdc.services.spec.Unit

I

ID - Static variable in class xdc.services.spec.GrammarLexer
ID - Static variable in class xdc.services.spec.GrammarParser
IDENT - Static variable in class xdc.services.spec.GrammarLexer
IDENT - Static variable in class xdc.services.spec.GrammarParser
Import - Class in xdc.services.spec
inherit(XDoc) - Method in class xdc.services.spec.XDoc
instDecl() - Method in class xdc.services.spec.GrammarParser
instDeclSpec() - Method in class xdc.services.spec.GrammarParser
INT - Static variable in class xdc.services.spec.Type
INT16 - Static variable in class xdc.services.spec.Type
INT32 - Static variable in class xdc.services.spec.Type
INT40 - Static variable in class xdc.services.spec.Type
INT64 - Static variable in class xdc.services.spec.Type
INT8 - Static variable in class xdc.services.spec.Type
internDecl() - Method in class xdc.services.spec.GrammarParser
internDeclSpec() - Method in class xdc.services.spec.GrammarParser
isAnon() - Method in class xdc.services.spec.Decl.Struct
isC() - Method in class xdc.services.spec.Type.Array
isCurrentPkg(Pkg) - Method in class xdc.services.spec.BrowserSession
isCurrentPkg(String, String) - Method in class xdc.services.spec.BrowserSession
isEmpty() - Method in interface xdc.services.spec.Expr.Aggregate
isEmpty() - Method in class xdc.services.spec.Expr.Array
isEmpty() - Method in class xdc.services.spec.Expr.Hash
isExternal() - Method in class xdc.services.spec.Node
isFinal() - Method in class xdc.services.spec.Node
isForwarding() - Method in class xdc.services.spec.Unit
isGlobal() - Method in class xdc.services.spec.Ref
isHeir() - Method in class xdc.services.spec.Unit
isInst() - Method in class xdc.services.spec.Node
isInter() - Method in class xdc.services.spec.Node
isInternal() - Method in class xdc.services.spec.Node
isLoggable() - Method in class xdc.services.spec.Decl.Fxn
isMap() - Method in class xdc.services.spec.Type.Array
isMeta() - Method in class xdc.services.spec.Node
isMod() - Method in class xdc.services.spec.Node
isNodoc() - Method in class xdc.services.spec.Node
isNodoc() - Method in class xdc.services.spec.XDoc
isOver() - Method in class xdc.services.spec.Node
isParsed(List<DocComment>) - Static method in class xdc.services.spec.DocComment
Identify whether the given list of comments has already been parsed.
isPkg() - Method in class xdc.services.spec.Persist.Fixup
isPkgDir(String) - Method in class xdc.services.spec.BrowserSession
Check whether the named directory contains a built package.
isProxy() - Method in class xdc.services.spec.Unit
isReadonly() - Method in class xdc.services.spec.Node
isSized() - Method in class xdc.services.spec.Unit
isStatic() - Method in class xdc.services.spec.Node
isSys() - Method in class xdc.services.spec.Node
isUnion() - Method in class xdc.services.spec.Decl.Struct
isUns() - Method in class xdc.services.spec.Type.Spec
isVarg() - Method in class xdc.services.spec.Decl.Fxn
isVarg() - Method in class xdc.services.spec.Type.Fxn
isVec() - Method in class xdc.services.spec.Type.Array

L

LBRK - Static variable in class xdc.services.spec.GrammarLexer
LBRK - Static variable in class xdc.services.spec.GrammarParser
LCUR - Static variable in class xdc.services.spec.GrammarLexer
LCUR - Static variable in class xdc.services.spec.GrammarParser
loadPkg(String, String) - Method in class xdc.services.spec.BrowserSession
loadUnit(String) - Method in class xdc.services.spec.BrowserSession
Load the named unit's spec object by searching the package path.
LONG - Static variable in class xdc.services.spec.Type
LONGDOUBLE - Static variable in class xdc.services.spec.Type
LONGLONG - Static variable in class xdc.services.spec.Type
LPAR - Static variable in class xdc.services.spec.GrammarLexer
LPAR - Static variable in class xdc.services.spec.GrammarParser
LT - Static variable in class xdc.services.spec.GrammarLexer
LT - Static variable in class xdc.services.spec.GrammarParser
LTEQ - Static variable in class xdc.services.spec.GrammarLexer
LTEQ - Static variable in class xdc.services.spec.GrammarParser
LTLT - Static variable in class xdc.services.spec.GrammarLexer
LTLT - Static variable in class xdc.services.spec.GrammarParser
LU - Static variable in class xdc.services.spec.GrammarLexer
LU - Static variable in class xdc.services.spec.GrammarParser

M

makeXDoc() - Method in class xdc.services.spec.Node
mAMP() - Method in class xdc.services.spec.GrammarLexer
mAMPAMP() - Method in class xdc.services.spec.GrammarLexer
mATTR() - Method in class xdc.services.spec.GrammarLexer
mBANG() - Method in class xdc.services.spec.GrammarLexer
mBANGEQ() - Method in class xdc.services.spec.GrammarLexer
mBAR() - Method in class xdc.services.spec.GrammarLexer
mBARBAR() - Method in class xdc.services.spec.GrammarLexer
mCAR() - Method in class xdc.services.spec.GrammarLexer
mCHAR() - Method in class xdc.services.spec.GrammarLexer
mCOLON() - Method in class xdc.services.spec.GrammarLexer
mCOMMA() - Method in class xdc.services.spec.GrammarLexer
mD() - Method in class xdc.services.spec.GrammarLexer
mDIV() - Method in class xdc.services.spec.GrammarLexer
mDOC_BLK() - Method in class xdc.services.spec.GrammarLexer
mDOC_INL() - Method in class xdc.services.spec.GrammarLexer
mDOC_PRE() - Method in class xdc.services.spec.GrammarLexer
mDOC_SUF() - Method in class xdc.services.spec.GrammarLexer
mDOT() - Method in class xdc.services.spec.GrammarLexer
mE() - Method in class xdc.services.spec.GrammarLexer
mELIPSIS() - Method in class xdc.services.spec.GrammarLexer
mEQ() - Method in class xdc.services.spec.GrammarLexer
mEQEQ() - Method in class xdc.services.spec.GrammarLexer
metArg() - Method in class xdc.services.spec.GrammarParser
metArgDeclListOpt() - Method in class xdc.services.spec.GrammarParser
methodDecl() - Method in class xdc.services.spec.GrammarParser
mGT() - Method in class xdc.services.spec.GrammarLexer
mGTEQ() - Method in class xdc.services.spec.GrammarLexer
mGTGT() - Method in class xdc.services.spec.GrammarLexer
mH() - Method in class xdc.services.spec.GrammarLexer
mID() - Method in class xdc.services.spec.GrammarLexer
mIDENT() - Method in class xdc.services.spec.GrammarLexer
MIN - Static variable in class xdc.services.spec.GrammarLexer
MIN - Static variable in class xdc.services.spec.GrammarParser
ML_COMMENT - Static variable in class xdc.services.spec.GrammarLexer
ML_COMMENT - Static variable in class xdc.services.spec.GrammarParser
mLBRK() - Method in class xdc.services.spec.GrammarLexer
mLCUR() - Method in class xdc.services.spec.GrammarLexer
mLPAR() - Method in class xdc.services.spec.GrammarLexer
mLT() - Method in class xdc.services.spec.GrammarLexer
mLTEQ() - Method in class xdc.services.spec.GrammarLexer
mLTLT() - Method in class xdc.services.spec.GrammarLexer
mLU() - Method in class xdc.services.spec.GrammarLexer
mMIN() - Method in class xdc.services.spec.GrammarLexer
mML_COMMENT() - Method in class xdc.services.spec.GrammarLexer
mNUM() - Method in class xdc.services.spec.GrammarLexer
modDecl() - Method in class xdc.services.spec.GrammarParser
modDeclSpec() - Method in class xdc.services.spec.GrammarParser
mOPER() - Method in class xdc.services.spec.GrammarLexer
mPATH() - Method in class xdc.services.spec.GrammarLexer
mPATHSTAR() - Method in class xdc.services.spec.GrammarLexer
mPCT() - Method in class xdc.services.spec.GrammarLexer
mPLUS() - Method in class xdc.services.spec.GrammarLexer
mQUEST() - Method in class xdc.services.spec.GrammarLexer
mR() - Method in class xdc.services.spec.GrammarLexer
mRBRK() - Method in class xdc.services.spec.GrammarLexer
mRCUR() - Method in class xdc.services.spec.GrammarLexer
mRPAR() - Method in class xdc.services.spec.GrammarLexer
mSEMI() - Method in class xdc.services.spec.GrammarLexer
msg - Variable in class xdc.services.spec.Session
mSL_COMMENT() - Method in class xdc.services.spec.GrammarLexer
mSTAR() - Method in class xdc.services.spec.GrammarLexer
mSTRING() - Method in class xdc.services.spec.GrammarLexer
mT__100() - Method in class xdc.services.spec.GrammarLexer
mT__101() - Method in class xdc.services.spec.GrammarLexer
mT__102() - Method in class xdc.services.spec.GrammarLexer
mT__103() - Method in class xdc.services.spec.GrammarLexer
mT__104() - Method in class xdc.services.spec.GrammarLexer
mT__105() - Method in class xdc.services.spec.GrammarLexer
mT__106() - Method in class xdc.services.spec.GrammarLexer
mT__107() - Method in class xdc.services.spec.GrammarLexer
mT__108() - Method in class xdc.services.spec.GrammarLexer
mT__109() - Method in class xdc.services.spec.GrammarLexer
mT__110() - Method in class xdc.services.spec.GrammarLexer
mT__111() - Method in class xdc.services.spec.GrammarLexer
mT__112() - Method in class xdc.services.spec.GrammarLexer
mT__113() - Method in class xdc.services.spec.GrammarLexer
mT__114() - Method in class xdc.services.spec.GrammarLexer
mT__115() - Method in class xdc.services.spec.GrammarLexer
mT__116() - Method in class xdc.services.spec.GrammarLexer
mT__117() - Method in class xdc.services.spec.GrammarLexer
mT__118() - Method in class xdc.services.spec.GrammarLexer
mT__119() - Method in class xdc.services.spec.GrammarLexer
mT__120() - Method in class xdc.services.spec.GrammarLexer
mT__121() - Method in class xdc.services.spec.GrammarLexer
mT__122() - Method in class xdc.services.spec.GrammarLexer
mT__123() - Method in class xdc.services.spec.GrammarLexer
mT__124() - Method in class xdc.services.spec.GrammarLexer
mT__125() - Method in class xdc.services.spec.GrammarLexer
mT__126() - Method in class xdc.services.spec.GrammarLexer
mT__127() - Method in class xdc.services.spec.GrammarLexer
mT__128() - Method in class xdc.services.spec.GrammarLexer
mT__129() - Method in class xdc.services.spec.GrammarLexer
mT__130() - Method in class xdc.services.spec.GrammarLexer
mT__131() - Method in class xdc.services.spec.GrammarLexer
mT__132() - Method in class xdc.services.spec.GrammarLexer
mT__133() - Method in class xdc.services.spec.GrammarLexer
mT__134() - Method in class xdc.services.spec.GrammarLexer
mT__135() - Method in class xdc.services.spec.GrammarLexer
mT__136() - Method in class xdc.services.spec.GrammarLexer
mT__58() - Method in class xdc.services.spec.GrammarLexer
mT__59() - Method in class xdc.services.spec.GrammarLexer
mT__60() - Method in class xdc.services.spec.GrammarLexer
mT__61() - Method in class xdc.services.spec.GrammarLexer
mT__62() - Method in class xdc.services.spec.GrammarLexer
mT__63() - Method in class xdc.services.spec.GrammarLexer
mT__64() - Method in class xdc.services.spec.GrammarLexer
mT__65() - Method in class xdc.services.spec.GrammarLexer
mT__66() - Method in class xdc.services.spec.GrammarLexer
mT__67() - Method in class xdc.services.spec.GrammarLexer
mT__68() - Method in class xdc.services.spec.GrammarLexer
mT__69() - Method in class xdc.services.spec.GrammarLexer
mT__70() - Method in class xdc.services.spec.GrammarLexer
mT__71() - Method in class xdc.services.spec.GrammarLexer
mT__72() - Method in class xdc.services.spec.GrammarLexer
mT__73() - Method in class xdc.services.spec.GrammarLexer
mT__74() - Method in class xdc.services.spec.GrammarLexer
mT__75() - Method in class xdc.services.spec.GrammarLexer
mT__76() - Method in class xdc.services.spec.GrammarLexer
mT__77() - Method in class xdc.services.spec.GrammarLexer
mT__78() - Method in class xdc.services.spec.GrammarLexer
mT__79() - Method in class xdc.services.spec.GrammarLexer
mT__80() - Method in class xdc.services.spec.GrammarLexer
mT__81() - Method in class xdc.services.spec.GrammarLexer
mT__82() - Method in class xdc.services.spec.GrammarLexer
mT__83() - Method in class xdc.services.spec.GrammarLexer
mT__84() - Method in class xdc.services.spec.GrammarLexer
mT__85() - Method in class xdc.services.spec.GrammarLexer
mT__86() - Method in class xdc.services.spec.GrammarLexer
mT__87() - Method in class xdc.services.spec.GrammarLexer
mT__88() - Method in class xdc.services.spec.GrammarLexer
mT__89() - Method in class xdc.services.spec.GrammarLexer
mT__90() - Method in class xdc.services.spec.GrammarLexer
mT__91() - Method in class xdc.services.spec.GrammarLexer
mT__92() - Method in class xdc.services.spec.GrammarLexer
mT__93() - Method in class xdc.services.spec.GrammarLexer
mT__94() - Method in class xdc.services.spec.GrammarLexer
mT__95() - Method in class xdc.services.spec.GrammarLexer
mT__96() - Method in class xdc.services.spec.GrammarLexer
mT__97() - Method in class xdc.services.spec.GrammarLexer
mT__98() - Method in class xdc.services.spec.GrammarLexer
mT__99() - Method in class xdc.services.spec.GrammarLexer
mTILDE() - Method in class xdc.services.spec.GrammarLexer
mTokens() - Method in class xdc.services.spec.GrammarLexer
mWS() - Method in class xdc.services.spec.GrammarLexer

N

needsRuntime() - Method in class xdc.services.spec.Unit
Node - Class in xdc.services.spec
Abstract superclass for any formally declared object in a .xdc file.
Node() - Constructor for class xdc.services.spec.Node
NUM - Static variable in class xdc.services.spec.GrammarLexer
NUM - Static variable in class xdc.services.spec.GrammarParser

O

objKind(Decl.Signature) - Static method in class xdc.services.spec.Decl
objKind(Type, String) - Static method in class xdc.services.spec.Decl
one_doc_block(ArrayList<DocComment>) - Method in class xdc.services.spec.GrammarParser
OPER - Static variable in class xdc.services.spec.GrammarLexer
OPER - Static variable in class xdc.services.spec.GrammarParser
overrides() - Method in class xdc.services.spec.Decl.Config
overrides() - Method in class xdc.services.spec.Decl.Fxn
overrides() - Method in class xdc.services.spec.Decl

P

ParserSession - Class in xdc.services.spec
ParserSession() - Constructor for class xdc.services.spec.ParserSession
No arg constructor
ParserSession(Env) - Constructor for class xdc.services.spec.ParserSession
Create a parser session with a given environment
ParserSession(Env, Cache) - Constructor for class xdc.services.spec.ParserSession
PATH - Static variable in class xdc.services.spec.GrammarLexer
PATH - Static variable in class xdc.services.spec.GrammarParser
PATHSTAR - Static variable in class xdc.services.spec.GrammarLexer
PATHSTAR - Static variable in class xdc.services.spec.GrammarParser
PCT - Static variable in class xdc.services.spec.GrammarLexer
PCT - Static variable in class xdc.services.spec.GrammarParser
Persist - Class in xdc.services.spec
Spec serialization and deserialization support.
Persist() - Constructor for class xdc.services.spec.Persist
Persist.Fixup - Class in xdc.services.spec
Serialized form of a reference to a Node in another package.
Persist.Fixup(Node) - Constructor for class xdc.services.spec.Persist.Fixup
Persist.Input - Class in xdc.services.spec
ObjectInputStream that reconstructs references to foreign packages.
Persist.Input(String, InputStream, BrowserSession) - Constructor for class xdc.services.spec.Persist.Input
Persist.Output - Class in xdc.services.spec
OutputOutputStream that restricts to the current package.
Persist.Output(OutputStream, String) - Constructor for class xdc.services.spec.Persist.Output
Pkg - Class in xdc.services.spec
pkgReq(List<Atom>, boolean) - Method in class xdc.services.spec.GrammarParser
pkgReqList(List<Atom>) - Method in class xdc.services.spec.GrammarParser
pkgSpec(String) - Method in class xdc.services.spec.GrammarParser
pkgUnit(List<Atom>, List<Atom>) - Method in class xdc.services.spec.GrammarParser
pkgUnitName(List<Atom>) - Method in class xdc.services.spec.GrammarParser
pkgVers() - Method in class xdc.services.spec.GrammarParser
PLUS - Static variable in class xdc.services.spec.GrammarLexer
PLUS - Static variable in class xdc.services.spec.GrammarParser
proxyDecl() - Method in class xdc.services.spec.GrammarParser
PTR - Static variable in class xdc.services.spec.Type
ptrsig() - Method in class xdc.services.spec.Type
pushChild(String, String) - Method in class xdc.services.spec.XDoc
pushDetails(String) - Method in class xdc.services.spec.XDoc
put(Node) - Method in class xdc.services.spec.Cache
Add an object to the cache.
put(String, Node) - Method in class xdc.services.spec.Cache
Add a object to the cache with a specific qualified name.
put(String, Node, boolean) - Method in class xdc.services.spec.Cache

Q

Qual - Enum in xdc.services.spec
qualName() - Method in class xdc.services.spec.GrammarParser
qualNameStar() - Method in class xdc.services.spec.GrammarParser
queryFacet(String) - Method in class xdc.services.spec.Unit
Query unit for the specified facet type
QUEST - Static variable in class xdc.services.spec.GrammarLexer
QUEST - Static variable in class xdc.services.spec.GrammarParser

R

R - Static variable in class xdc.services.spec.GrammarLexer
R - Static variable in class xdc.services.spec.GrammarParser
raw() - Method in class xdc.services.spec.Type
RBRK - Static variable in class xdc.services.spec.GrammarLexer
RBRK - Static variable in class xdc.services.spec.GrammarParser
RCUR - Static variable in class xdc.services.spec.GrammarLexer
RCUR - Static variable in class xdc.services.spec.GrammarParser
Ref - Class in xdc.services.spec
Ref(String) - Constructor for class xdc.services.spec.Ref
External constructor.
replaceObject(Object) - Method in class xdc.services.spec.Persist.Output
Inspect each object before serialization.
reportError(RecognitionException) - Method in class xdc.services.spec.GrammarParser
reportError(String) - Method in class xdc.services.spec.GrammarParser
reportError(String, int) - Method in class xdc.services.spec.GrammarParser
Report an error at the given line.
Reserved - Class in xdc.services.spec
Reserved() - Constructor for class xdc.services.spec.Reserved
resolve(Unit, boolean) - Method in class xdc.services.spec.Ref
Resolve this reference.
resolveObject(Object) - Method in class xdc.services.spec.Persist.Input
root() - Method in class xdc.services.spec.Type.Array
root() - Method in class xdc.services.spec.Type.Fxn
root() - Method in class xdc.services.spec.Type.Paren
root() - Method in class xdc.services.spec.Type.Ptr
root() - Method in class xdc.services.spec.Type
RPAR - Static variable in class xdc.services.spec.GrammarLexer
RPAR - Static variable in class xdc.services.spec.GrammarParser

S

save() - Method in class xdc.services.spec.ParserSession
save(File) - Method in class xdc.services.spec.ParserSession
scan(String) - Method in class xdc.services.spec.ParserSession
scanDirectories() - Method in class xdc.services.spec.BrowserSession
Return a Map of package names indexed by the canonical path to the package's base.
scanRepositories() - Method in class xdc.services.spec.BrowserSession
Return a Map all package base directories indexed by the package's name.
SEMI - Static variable in class xdc.services.spec.GrammarLexer
SEMI - Static variable in class xdc.services.spec.GrammarParser
Session - Class in xdc.services.spec
Session() - Constructor for class xdc.services.spec.Session
Session(Env) - Constructor for class xdc.services.spec.Session
Session(Env, Cache) - Constructor for class xdc.services.spec.Session
SessionRuntimeException - Exception in xdc.services.spec
SessionRuntimeException(String) - Constructor for exception xdc.services.spec.SessionRuntimeException
setEnv(Env) - Method in class xdc.services.spec.Session
setErr(PrintWriter) - Method in class xdc.services.spec.Session
setLoadDocs(boolean) - Method in class xdc.services.spec.BrowserSession
Set whether this session should preserve docs in Nodes.
setStrict(boolean) - Method in class xdc.services.spec.ParserSession
setSummary(String) - Method in class xdc.services.spec.XDoc
setVerbose(boolean) - Method in class xdc.services.spec.ParserSession
setWarnings(boolean) - Method in class xdc.services.spec.Session
SHORT - Static variable in class xdc.services.spec.Type
sig(int) - Method in class xdc.services.spec.Type.Array
SIZE - Static variable in class xdc.services.spec.Type
sizeof(List<String>) - Method in class xdc.services.spec.Decl.Enum
sizeof(List<String>) - Method in interface xdc.services.spec.Decl.Sizeable
sizeof(List<String>) - Method in class xdc.services.spec.Decl.Struct
sizeof(List<String>) - Method in class xdc.services.spec.Decl.Typedef
sizeof(List<String>) - Method in class xdc.services.spec.Type.Array
sizeof(List<String>) - Method in class xdc.services.spec.Type.Declarator
sizeof(List<String>) - Method in class xdc.services.spec.Type.Fxn
sizeof(List<String>) - Method in class xdc.services.spec.Type.Paren
sizeof(List<String>) - Method in class xdc.services.spec.Type.Ptr
sizeof(List<String>) - Method in class xdc.services.spec.Type
sizeof(List<String>) - Method in class xdc.services.spec.Type.Spec
SL_COMMENT - Static variable in class xdc.services.spec.GrammarLexer
SL_COMMENT - Static variable in class xdc.services.spec.GrammarParser
STAR - Static variable in class xdc.services.spec.GrammarLexer
STAR - Static variable in class xdc.services.spec.GrammarParser
STRING - Static variable in class xdc.services.spec.GrammarLexer
STRING - Static variable in class xdc.services.spec.GrammarParser
structDecl() - Method in class xdc.services.spec.GrammarParser
structFieldDecl() - Method in class xdc.services.spec.GrammarParser
Sup - Class in xdc.services.spec
superInt() - Method in class xdc.services.spec.GrammarParser

T

T__100 - Static variable in class xdc.services.spec.GrammarLexer
T__100 - Static variable in class xdc.services.spec.GrammarParser
T__101 - Static variable in class xdc.services.spec.GrammarLexer
T__101 - Static variable in class xdc.services.spec.GrammarParser
T__102 - Static variable in class xdc.services.spec.GrammarLexer
T__102 - Static variable in class xdc.services.spec.GrammarParser
T__103 - Static variable in class xdc.services.spec.GrammarLexer
T__103 - Static variable in class xdc.services.spec.GrammarParser
T__104 - Static variable in class xdc.services.spec.GrammarLexer
T__104 - Static variable in class xdc.services.spec.GrammarParser
T__105 - Static variable in class xdc.services.spec.GrammarLexer
T__105 - Static variable in class xdc.services.spec.GrammarParser
T__106 - Static variable in class xdc.services.spec.GrammarLexer
T__106 - Static variable in class xdc.services.spec.GrammarParser
T__107 - Static variable in class xdc.services.spec.GrammarLexer
T__107 - Static variable in class xdc.services.spec.GrammarParser
T__108 - Static variable in class xdc.services.spec.GrammarLexer
T__108 - Static variable in class xdc.services.spec.GrammarParser
T__109 - Static variable in class xdc.services.spec.GrammarLexer
T__109 - Static variable in class xdc.services.spec.GrammarParser
T__110 - Static variable in class xdc.services.spec.GrammarLexer
T__110 - Static variable in class xdc.services.spec.GrammarParser
T__111 - Static variable in class xdc.services.spec.GrammarLexer
T__111 - Static variable in class xdc.services.spec.GrammarParser
T__112 - Static variable in class xdc.services.spec.GrammarLexer
T__112 - Static variable in class xdc.services.spec.GrammarParser
T__113 - Static variable in class xdc.services.spec.GrammarLexer
T__113 - Static variable in class xdc.services.spec.GrammarParser
T__114 - Static variable in class xdc.services.spec.GrammarLexer
T__114 - Static variable in class xdc.services.spec.GrammarParser
T__115 - Static variable in class xdc.services.spec.GrammarLexer
T__115 - Static variable in class xdc.services.spec.GrammarParser
T__116 - Static variable in class xdc.services.spec.GrammarLexer
T__116 - Static variable in class xdc.services.spec.GrammarParser
T__117 - Static variable in class xdc.services.spec.GrammarLexer
T__117 - Static variable in class xdc.services.spec.GrammarParser
T__118 - Static variable in class xdc.services.spec.GrammarLexer
T__118 - Static variable in class xdc.services.spec.GrammarParser
T__119 - Static variable in class xdc.services.spec.GrammarLexer
T__119 - Static variable in class xdc.services.spec.GrammarParser
T__120 - Static variable in class xdc.services.spec.GrammarLexer
T__120 - Static variable in class xdc.services.spec.GrammarParser
T__121 - Static variable in class xdc.services.spec.GrammarLexer
T__121 - Static variable in class xdc.services.spec.GrammarParser
T__122 - Static variable in class xdc.services.spec.GrammarLexer
T__122 - Static variable in class xdc.services.spec.GrammarParser
T__123 - Static variable in class xdc.services.spec.GrammarLexer
T__123 - Static variable in class xdc.services.spec.GrammarParser
T__124 - Static variable in class xdc.services.spec.GrammarLexer
T__124 - Static variable in class xdc.services.spec.GrammarParser
T__125 - Static variable in class xdc.services.spec.GrammarLexer
T__125 - Static variable in class xdc.services.spec.GrammarParser
T__126 - Static variable in class xdc.services.spec.GrammarLexer
T__126 - Static variable in class xdc.services.spec.GrammarParser
T__127 - Static variable in class xdc.services.spec.GrammarLexer
T__127 - Static variable in class xdc.services.spec.GrammarParser
T__128 - Static variable in class xdc.services.spec.GrammarLexer
T__128 - Static variable in class xdc.services.spec.GrammarParser
T__129 - Static variable in class xdc.services.spec.GrammarLexer
T__129 - Static variable in class xdc.services.spec.GrammarParser
T__130 - Static variable in class xdc.services.spec.GrammarLexer
T__130 - Static variable in class xdc.services.spec.GrammarParser
T__131 - Static variable in class xdc.services.spec.GrammarLexer
T__131 - Static variable in class xdc.services.spec.GrammarParser
T__132 - Static variable in class xdc.services.spec.GrammarLexer
T__132 - Static variable in class xdc.services.spec.GrammarParser
T__133 - Static variable in class xdc.services.spec.GrammarLexer
T__133 - Static variable in class xdc.services.spec.GrammarParser
T__134 - Static variable in class xdc.services.spec.GrammarLexer
T__134 - Static variable in class xdc.services.spec.GrammarParser
T__135 - Static variable in class xdc.services.spec.GrammarLexer
T__135 - Static variable in class xdc.services.spec.GrammarParser
T__136 - Static variable in class xdc.services.spec.GrammarLexer
T__136 - Static variable in class xdc.services.spec.GrammarParser
T__58 - Static variable in class xdc.services.spec.GrammarLexer
T__58 - Static variable in class xdc.services.spec.GrammarParser
T__59 - Static variable in class xdc.services.spec.GrammarLexer
T__59 - Static variable in class xdc.services.spec.GrammarParser
T__60 - Static variable in class xdc.services.spec.GrammarLexer
T__60 - Static variable in class xdc.services.spec.GrammarParser
T__61 - Static variable in class xdc.services.spec.GrammarLexer
T__61 - Static variable in class xdc.services.spec.GrammarParser
T__62 - Static variable in class xdc.services.spec.GrammarLexer
T__62 - Static variable in class xdc.services.spec.GrammarParser
T__63 - Static variable in class xdc.services.spec.GrammarLexer
T__63 - Static variable in class xdc.services.spec.GrammarParser
T__64 - Static variable in class xdc.services.spec.GrammarLexer
T__64 - Static variable in class xdc.services.spec.GrammarParser
T__65 - Static variable in class xdc.services.spec.GrammarLexer
T__65 - Static variable in class xdc.services.spec.GrammarParser
T__66 - Static variable in class xdc.services.spec.GrammarLexer
T__66 - Static variable in class xdc.services.spec.GrammarParser
T__67 - Static variable in class xdc.services.spec.GrammarLexer
T__67 - Static variable in class xdc.services.spec.GrammarParser
T__68 - Static variable in class xdc.services.spec.GrammarLexer
T__68 - Static variable in class xdc.services.spec.GrammarParser
T__69 - Static variable in class xdc.services.spec.GrammarLexer
T__69 - Static variable in class xdc.services.spec.GrammarParser
T__70 - Static variable in class xdc.services.spec.GrammarLexer
T__70 - Static variable in class xdc.services.spec.GrammarParser
T__71 - Static variable in class xdc.services.spec.GrammarLexer
T__71 - Static variable in class xdc.services.spec.GrammarParser
T__72 - Static variable in class xdc.services.spec.GrammarLexer
T__72 - Static variable in class xdc.services.spec.GrammarParser
T__73 - Static variable in class xdc.services.spec.GrammarLexer
T__73 - Static variable in class xdc.services.spec.GrammarParser
T__74 - Static variable in class xdc.services.spec.GrammarLexer
T__74 - Static variable in class xdc.services.spec.GrammarParser
T__75 - Static variable in class xdc.services.spec.GrammarLexer
T__75 - Static variable in class xdc.services.spec.GrammarParser
T__76 - Static variable in class xdc.services.spec.GrammarLexer
T__76 - Static variable in class xdc.services.spec.GrammarParser
T__77 - Static variable in class xdc.services.spec.GrammarLexer
T__77 - Static variable in class xdc.services.spec.GrammarParser
T__78 - Static variable in class xdc.services.spec.GrammarLexer
T__78 - Static variable in class xdc.services.spec.GrammarParser
T__79 - Static variable in class xdc.services.spec.GrammarLexer
T__79 - Static variable in class xdc.services.spec.GrammarParser
T__80 - Static variable in class xdc.services.spec.GrammarLexer
T__80 - Static variable in class xdc.services.spec.GrammarParser
T__81 - Static variable in class xdc.services.spec.GrammarLexer
T__81 - Static variable in class xdc.services.spec.GrammarParser
T__82 - Static variable in class xdc.services.spec.GrammarLexer
T__82 - Static variable in class xdc.services.spec.GrammarParser
T__83 - Static variable in class xdc.services.spec.GrammarLexer
T__83 - Static variable in class xdc.services.spec.GrammarParser
T__84 - Static variable in class xdc.services.spec.GrammarLexer
T__84 - Static variable in class xdc.services.spec.GrammarParser
T__85 - Static variable in class xdc.services.spec.GrammarLexer
T__85 - Static variable in class xdc.services.spec.GrammarParser
T__86 - Static variable in class xdc.services.spec.GrammarLexer
T__86 - Static variable in class xdc.services.spec.GrammarParser
T__87 - Static variable in class xdc.services.spec.GrammarLexer
T__87 - Static variable in class xdc.services.spec.GrammarParser
T__88 - Static variable in class xdc.services.spec.GrammarLexer
T__88 - Static variable in class xdc.services.spec.GrammarParser
T__89 - Static variable in class xdc.services.spec.GrammarLexer
T__89 - Static variable in class xdc.services.spec.GrammarParser
T__90 - Static variable in class xdc.services.spec.GrammarLexer
T__90 - Static variable in class xdc.services.spec.GrammarParser
T__91 - Static variable in class xdc.services.spec.GrammarLexer
T__91 - Static variable in class xdc.services.spec.GrammarParser
T__92 - Static variable in class xdc.services.spec.GrammarLexer
T__92 - Static variable in class xdc.services.spec.GrammarParser
T__93 - Static variable in class xdc.services.spec.GrammarLexer
T__93 - Static variable in class xdc.services.spec.GrammarParser
T__94 - Static variable in class xdc.services.spec.GrammarLexer
T__94 - Static variable in class xdc.services.spec.GrammarParser
T__95 - Static variable in class xdc.services.spec.GrammarLexer
T__95 - Static variable in class xdc.services.spec.GrammarParser
T__96 - Static variable in class xdc.services.spec.GrammarLexer
T__96 - Static variable in class xdc.services.spec.GrammarParser
T__97 - Static variable in class xdc.services.spec.GrammarLexer
T__97 - Static variable in class xdc.services.spec.GrammarParser
T__98 - Static variable in class xdc.services.spec.GrammarLexer
T__98 - Static variable in class xdc.services.spec.GrammarParser
T__99 - Static variable in class xdc.services.spec.GrammarLexer
T__99 - Static variable in class xdc.services.spec.GrammarParser
talk() - Static method in class xdc.services.spec.Test
tcode() - Method in class xdc.services.spec.Type
term() - Method in class xdc.services.spec.Type.Array
term() - Method in class xdc.services.spec.Type.Paren
term() - Method in class xdc.services.spec.Type
Test - Class in xdc.services.spec
Test() - Constructor for class xdc.services.spec.Test
TILDE - Static variable in class xdc.services.spec.GrammarLexer
TILDE - Static variable in class xdc.services.spec.GrammarParser
tokenNames - Static variable in class xdc.services.spec.GrammarParser
toString() - Method in class xdc.services.spec.Attr
toText() - Method in class xdc.services.spec.Attr
toText(Expr) - Static method in class xdc.services.spec.Expr
toXml(Expr) - Static method in class xdc.services.spec.Expr
tsig() - Method in class xdc.services.spec.Type
tspec() - Method in class xdc.services.spec.Type.Array
tspec() - Method in class xdc.services.spec.Type.Declarator
tspec() - Method in class xdc.services.spec.Type.Fxn
tspec() - Method in class xdc.services.spec.Type.Paren
tspec() - Method in class xdc.services.spec.Type.Ptr
tspec() - Method in class xdc.services.spec.Type
Type - Class in xdc.services.spec
Type() - Constructor for class xdc.services.spec.Type
Type.Array - Class in xdc.services.spec
Type.Array.Kind - Enum in xdc.services.spec
Type.Creator - Class in xdc.services.spec
Type.Declarator - Class in xdc.services.spec
Type.Fxn - Class in xdc.services.spec
Type.Modifier - Enum in xdc.services.spec
Type.Paren - Class in xdc.services.spec
Type.Ptr - Class in xdc.services.spec
Type.Spec - Class in xdc.services.spec
typeDecl() - Method in class xdc.services.spec.GrammarParser
typeMods() - Method in class xdc.services.spec.GrammarParser
typeSpec() - Method in class xdc.services.spec.GrammarParser
typeSpecC() - Method in class xdc.services.spec.GrammarParser
typeSpecF() - Method in class xdc.services.spec.GrammarParser
typeSpecG(EnumSet<Type.Modifier>) - Method in class xdc.services.spec.GrammarParser

U

Unit - Class in xdc.services.spec
unitImp(List<Import>) - Method in class xdc.services.spec.GrammarParser
unitSpec(String) - Method in class xdc.services.spec.GrammarParser

V

valueOf(String) - Static method in enum xdc.services.spec.Decl.Signature.ObjKind
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum xdc.services.spec.Qual
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum xdc.services.spec.Type.Array.Kind
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum xdc.services.spec.Type.Modifier
Returns the enum constant of this type with the specified name.
values() - Static method in enum xdc.services.spec.Decl.Signature.ObjKind
Returns an array containing the constants of this enum type, in the order they're declared.
values() - Static method in enum xdc.services.spec.Qual
Returns an array containing the constants of this enum type, in the order they're declared.
values() - Static method in enum xdc.services.spec.Type.Array.Kind
Returns an array containing the constants of this enum type, in the order they're declared.
values() - Static method in enum xdc.services.spec.Type.Modifier
Returns an array containing the constants of this enum type, in the order they're declared.

W

WS - Static variable in class xdc.services.spec.GrammarLexer
WS - Static variable in class xdc.services.spec.GrammarParser

X

xdc.services.spec - package xdc.services.spec
XDoc - Class in xdc.services.spec
xmlsig() - Method in class xdc.services.spec.Type.Creator
xmlsig() - Method in class xdc.services.spec.Type.Spec
xmlsig() - Method in class xdc.services.spec.Type
A B C D E F G H I L M N O P Q R S T U V W X
Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES

Hierarchy For All Packages

Package Hierarchies:
xdc.services.spec

Class Hierarchy

  • java.lang.Object
    • xdc.services.spec.Attr (implements java.io.Serializable)
    • org.antlr.runtime.BaseRecognizer
      • org.antlr.runtime.Lexer (implements org.antlr.runtime.TokenSource)
        • xdc.services.spec.GrammarLexer
      • org.antlr.runtime.Parser
        • xdc.services.spec.GrammarParser
    • xdc.services.spec.Cache
    • org.antlr.runtime.CommonToken (implements java.io.Serializable, org.antlr.runtime.Token)
      • xdc.services.spec.Atom (implements java.io.Serializable)
    • xdc.services.spec.DocComment (implements java.io.Serializable)
    • xdc.services.spec.Expr (implements java.io.Serializable)
      • xdc.services.spec.Expr.Array (implements xdc.services.spec.Expr.Aggregate)
      • xdc.services.spec.Expr.Binary
      • xdc.services.spec.Expr.Cond
      • xdc.services.spec.Expr.Const
      • xdc.services.spec.Expr.Creat
      • xdc.services.spec.Expr.Hash (implements xdc.services.spec.Expr.Aggregate)
      • xdc.services.spec.Expr.Paren
      • xdc.services.spec.Expr.Term
      • xdc.services.spec.Expr.Unary
    • xdc.services.spec.Import (implements java.io.Serializable)
    • java.io.InputStream (implements java.io.Closeable)
      • java.io.ObjectInputStream (implements java.io.ObjectInput, java.io.ObjectStreamConstants)
        • xdc.services.spec.Persist.Input
    • xdc.services.spec.Node (implements java.lang.Comparable<T>, java.io.Serializable)
      • xdc.services.spec.Decl
        • xdc.services.spec.Decl.Arg (implements xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Config (implements xdc.services.spec.Decl.Annexable, xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Const (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.OverridableDef, xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Enum (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.IsType, xdc.services.spec.Decl.Sizeable)
        • xdc.services.spec.Decl.EnumVal (implements xdc.services.spec.Decl.AuxDef)
        • xdc.services.spec.Decl.Extern (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Field (implements xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Fxn (implements xdc.services.spec.Decl.Annexable, xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Proxy (implements xdc.services.spec.Decl.LocalUnit)
        • xdc.services.spec.Decl.Struct (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.IsType, xdc.services.spec.Decl.Sizeable)
        • xdc.services.spec.Decl.Typedef (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.IsType, xdc.services.spec.Decl.Signature, xdc.services.spec.Decl.Sizeable)
      • xdc.services.spec.Pkg
      • xdc.services.spec.Unit
    • java.io.OutputStream (implements java.io.Closeable, java.io.Flushable)
      • java.io.ObjectOutputStream (implements java.io.ObjectOutput, java.io.ObjectStreamConstants)
        • xdc.services.spec.Persist.Output
    • xdc.services.spec.Persist
    • xdc.services.spec.Persist.Fixup (implements java.io.Serializable)
    • xdc.services.spec.Ref (implements java.io.Serializable)
    • xdc.services.spec.Reserved
    • xdc.services.spec.Session
      • xdc.services.spec.BrowserSession
      • xdc.services.spec.ParserSession
    • xdc.services.spec.Sup (implements java.io.Serializable)
    • xdc.services.spec.Test
    • java.lang.Throwable (implements java.io.Serializable)
      • java.lang.Exception
        • java.lang.RuntimeException
          • org.mozilla.javascript.RhinoException
            • org.mozilla.javascript.EvaluatorException
              • xdc.services.spec.SessionRuntimeException
    • xdc.services.spec.Type (implements java.io.Serializable)
      • xdc.services.spec.Type.Array
      • xdc.services.spec.Type.Creator
      • xdc.services.spec.Type.Declarator
      • xdc.services.spec.Type.Fxn
      • xdc.services.spec.Type.Paren
      • xdc.services.spec.Type.Ptr
      • xdc.services.spec.Type.Spec
    • xdc.services.spec.XDoc

Interface Hierarchy

  • xdc.services.spec.Decl.Annexable
  • xdc.services.spec.Decl.AuxDef
  • xdc.services.spec.Decl.IsType
  • xdc.services.spec.Decl.LocalUnit
  • xdc.services.spec.Decl.OverridableDef
  • xdc.services.spec.Decl.Signature
  • xdc.services.spec.Decl.Sizeable
  • xdc.services.spec.Expr.Aggregate

Enum Hierarchy

  • java.lang.Object
    • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
      • xdc.services.spec.Decl.Signature.ObjKind
      • xdc.services.spec.Qual
      • xdc.services.spec.Type.Modifier
      • xdc.services.spec.Type.Array.Kind
Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Serialized Form

Package xdc.services.spec

Class xdc.services.spec.Atom extends org.antlr.runtime.CommonToken implements Serializable

serialVersionUID: -9098288411027945023L

Serialized Fields

text

java.lang.String text

file

java.lang.String file

line

int line

Class xdc.services.spec.Attr extends java.lang.Object implements Serializable

serialVersionUID: 7469859191145684496L

Serialized Fields

name

Atom name

val

Expr val

Class xdc.services.spec.Decl extends Node implements Serializable

serialVersionUID: 3468768778188819860L

Serialized Fields

over

Decl over

Class xdc.services.spec.Decl.Arg extends Decl implements Serializable

serialVersionUID: -7298373774659045568L

Serialized Fields

type

Type type

init

Expr init

Class xdc.services.spec.Decl.Config extends Decl implements Serializable

serialVersionUID: -3472392753188999914L

Serialized Fields

type

Type type

init

Expr init

Class xdc.services.spec.Decl.Const extends Decl implements Serializable

serialVersionUID: -5129490619630763331L

Serialized Fields

type

Type type

init

Expr init

Class xdc.services.spec.Decl.Enum extends Decl implements Serializable

serialVersionUID: -7076604082337550848L

Serialized Fields

vals

java.util.List<E> vals

rep

Type.Spec rep

Class xdc.services.spec.Decl.EnumVal extends Decl implements Serializable

serialVersionUID: -3594208666128592956L

Serialized Fields

init

Expr init

Class xdc.services.spec.Decl.Extern extends Decl implements Serializable

serialVersionUID: -5537398406232068500L

Serialized Fields

type

Type type

init

Atom init

Class xdc.services.spec.Decl.Field extends Decl implements Serializable

serialVersionUID: 1865932903245823181L

Serialized Fields

type

Type type

Class xdc.services.spec.Decl.Fxn extends Decl implements Serializable

serialVersionUID: 4734759580216702060L

Serialized Fields

type

Type type

args

java.util.List<E> args

isVarg

boolean isVarg

minargc

int minargc

Class xdc.services.spec.Decl.Proxy extends Decl implements Serializable

serialVersionUID: -5207411272617839552L

Serialized Fields

sup

Sup sup

unit

Unit unit

Class xdc.services.spec.Decl.Struct extends Decl implements Serializable

serialVersionUID: 8653474625146200716L

Serialized Fields

flds

java.util.List<E> flds

fldSizes

java.util.List<E> fldSizes

uflag

boolean uflag

Class xdc.services.spec.Decl.Typedef extends Decl implements Serializable

serialVersionUID: -3286912318315178858L

Serialized Fields

type

Type type

Class xdc.services.spec.DocComment extends java.lang.Object implements Serializable

serialVersionUID: 7216773336916227011L

Serialized Fields

arg

java.lang.String arg

body

Atom body

mode

java.lang.String mode

pid

int pid

tag

java.lang.String tag

Class xdc.services.spec.Expr extends java.lang.Object implements Serializable

serialVersionUID: -6252677966391348100L

Class xdc.services.spec.Expr.Array extends Expr implements Serializable

serialVersionUID: -4769465389054526623L

Serialized Fields

elems

java.util.List<E> elems

Class xdc.services.spec.Expr.Binary extends Expr implements Serializable

serialVersionUID: -8527302494988163510L

Serialized Fields

op

Atom op

left

Expr left

right

Expr right

Class xdc.services.spec.Expr.Cond extends Expr implements Serializable

serialVersionUID: -3016213789698060325L

Serialized Fields

cond

Expr cond

left

Expr left

right

Expr right

Class xdc.services.spec.Expr.Const extends Expr implements Serializable

serialVersionUID: 3804334373597760702L

Serialized Fields

val

Atom val

Class xdc.services.spec.Expr.Creat extends Expr implements Serializable

serialVersionUID: 5455736916581289951L

Serialized Fields

mod

Expr.Term mod

args

java.util.List<E> args

Class xdc.services.spec.Expr.Hash extends Expr implements Serializable

serialVersionUID: 5610650247782362148L

Serialized Fields

ids

java.util.List<E> ids

vals

java.util.List<E> vals

Class xdc.services.spec.Expr.Paren extends Expr implements Serializable

serialVersionUID: -8628875245839027888L

Serialized Fields

body

Expr body

Class xdc.services.spec.Expr.Term extends Expr implements Serializable

serialVersionUID: 484911847601585871L

Serialized Fields

eref

Ref eref

val

Expr val

Class xdc.services.spec.Expr.Unary extends Expr implements Serializable

serialVersionUID: -3418172231763962792L

Serialized Fields

op

Atom op

right

Expr right

Class xdc.services.spec.Import extends java.lang.Object implements Serializable

serialVersionUID: 1L

Serialized Fields

star

boolean star

uid

Atom uid

unit

Unit unit

alias

java.lang.String alias

Class xdc.services.spec.Node extends java.lang.Object implements Serializable

serialVersionUID: 6316800378495184391L

Serialized Fields

name

Atom name

quals

java.util.EnumSet<E extends java.lang.Enum<E>> quals

attrs

java.util.List<E> attrs

attrMap

java.util.Map<K,V> attrMap

parent

Node parent

summary

java.lang.String summary

isNodoc

boolean isNodoc

Class xdc.services.spec.Persist.Fixup extends java.lang.Object implements Serializable

serialVersionUID: 5710009880454690167L

Serialized Fields

pkg

java.lang.String pkg

decl

java.lang.String decl

Class xdc.services.spec.Pkg extends Node implements Serializable

serialVersionUID: 2236555847538118936L

Serialized Fields

interNames

java.util.List<E> interNames

localSpecs

java.util.List<E> localSpecs

otherSpecs

java.util.List<E> otherSpecs

miscSrcs

java.util.List<E> miscSrcs

modNames

java.util.List<E> modNames

requires

java.util.List<E> requires

units

java.util.List<E> units

key

java.lang.String key

vers

java.lang.String vers

bundle

java.lang.String bundle

baseDir

java.lang.String baseDir

Class xdc.services.spec.Ref extends java.lang.Object implements Serializable

serialVersionUID: 6391260877086618330L

Serialized Fields

scope

Atom scope

id

Atom id

node

Node node

prx

Decl.Proxy prx

local

boolean local

Class xdc.services.spec.SessionRuntimeException extends org.mozilla.javascript.EvaluatorException implements Serializable

serialVersionUID: -7134897190745766939L

Serialized Fields

SESSION_ERROR

java.lang.String SESSION_ERROR

Class xdc.services.spec.Sup extends java.lang.Object implements Serializable

serialVersionUID: -1373089623744501363L

Serialized Fields

iid

Atom iid

ref

Ref ref

unit

Unit unit

Class xdc.services.spec.Type extends java.lang.Object implements Serializable

serialVersionUID: 5646275176634845046L

Class xdc.services.spec.Type.Array extends Type implements Serializable

serialVersionUID: 8764930492419867714L

Serialized Fields

base

Type base

dim

Expr dim

kind

Type.Array.Kind kind

Class xdc.services.spec.Type.Creator extends Type implements Serializable

serialVersionUID: -771646166657371561L

Class xdc.services.spec.Type.Declarator extends Type implements Serializable

serialVersionUID: -1024790156516858614L

Serialized Fields

tspec

Type.Spec tspec

id

Atom id

Class xdc.services.spec.Type.Fxn extends Type implements Serializable

serialVersionUID: 4714104815468307967L

Serialized Fields

base

Type base

args

java.util.List<E> args

isVarg

boolean isVarg

Class xdc.services.spec.Type.Paren extends Type implements Serializable

serialVersionUID: 2287194647505979584L

Serialized Fields

base

Type base

Class xdc.services.spec.Type.Ptr extends Type implements Serializable

serialVersionUID: 8071706686749097693L

Serialized Fields

base

Type base

mods

java.util.EnumSet<E extends java.lang.Enum<E>> mods

Class xdc.services.spec.Type.Spec extends Type implements Serializable

serialVersionUID: -1847725876187637108L

Serialized Fields

tref

Ref tref

std

java.lang.String std

isUns

boolean isUns

mods

java.util.EnumSet<E extends java.lang.Enum<E>> mods

Class xdc.services.spec.Unit extends Node implements Serializable

serialVersionUID: -1475297028398889384L

Serialized Fields

cfgs

java.util.List<E> cfgs

creator

Decl.Fxn creator

curPass

int curPass

custHdr

boolean custHdr

decls

java.util.List<E> decls

dlg

Sup dlg

fxns

java.util.List<E> fxns

icfgCnt

int icfgCnt

ifxns

java.util.List<E> ifxns

imps

java.util.List<E> imps

inherits

boolean inherits

iobjFlag

boolean iobjFlag

isa

Sup isa

mbrs

java.util.List<E> mbrs

pkgName

java.lang.String pkgName

proxy

boolean proxy

prxs

java.util.List<E> prxs

rtsFlag

boolean rtsFlag

scfgCnt

int scfgCnt

sizeFlag

boolean sizeFlag

uses

java.util.Set<E> uses

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


Atom

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Atom

java.lang.Object
    extended by  org.antlr.runtime.CommonToken
        extended by  xdc.services.spec.Atom
All Implemented Interfaces:
java.io.Serializable, org.antlr.runtime.Token
public class Atom
extends org.antlr.runtime.CommonToken
implements java.io.Serializable

The class that represents a token in a specification file.

See Also:
Serialized Form

Field Summary
Fields inherited from class org.antlr.runtime.CommonToken
channel, charPositionInLine, index, input, start, stop, type
Fields inherited from interface org.antlr.runtime.Token
DEFAULT_CHANNEL, DOWN, EOF, EOF_TOKEN, EOR_TOKEN_TYPE, HIDDEN_CHANNEL, INVALID_TOKEN, INVALID_TOKEN_TYPE, MIN_TOKEN_TYPE, SKIP_TOKEN, UP
Method Summary
java.lang.String | getFile()
int | getLine()
java.lang.String | getText()
Methods inherited from class org.antlr.runtime.CommonToken
getChannel, getCharPositionInLine, getInputStream, getStartIndex, getStopIndex, getTokenIndex, getType, setChannel, setCharPositionInLine, setInputStream, setLine, setStartIndex, setStopIndex, setText, setTokenIndex, setType, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Method Detail

getFile

public java.lang.String getFile()

getLine

public int getLine()
Specified by:
getLine in interface org.antlr.runtime.Token
Overrides:
getLine in class org.antlr.runtime.CommonToken

getText

public java.lang.String getText()
Specified by:
getText in interface org.antlr.runtime.Token
Overrides:
getText in class org.antlr.runtime.CommonToken
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD


Attr

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Attr

java.lang.Object
    extended by  xdc.services.spec.Attr
All Implemented Interfaces:
java.io.Serializable
public class Attr
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Field Summary
static java.lang.String | A_Annex
static java.lang.String | A_CommandOption
static java.lang.String | A_CustomHeader
static java.lang.String | A_DirectCall
static java.lang.String | A_Encoded
static java.lang.String | A_Facet
static java.lang.String | A_Gated
static java.lang.String | A_GlobalNames
static java.lang.String | A_HeaderName
static java.lang.String | A_InstanceFinalize
static java.lang.String | A_InstanceInitError
static java.lang.String | A_InstanceInitStatic
static java.lang.String | A_Macro
static java.lang.String | A_ModuleStartup
static java.lang.String | A_NoRuntime
static java.lang.String | A_Opaque
static java.lang.String | A_Prefix
static java.lang.String | A_Proxy
static java.lang.String | A_System
static java.lang.String | A_TargetHeader
static java.lang.String | A_Template
static java.lang.String | A_Transient
static java.lang.String | A_XmlDtd
Method Summary
java.lang.String | getName()
Expr | getVal()
java.lang.String | toString()
java.lang.String | toText()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Field Detail

A_Annex

public static final java.lang.String A_Annex
See Also:
Constant Field Values

A_CommandOption

public static final java.lang.String A_CommandOption
See Also:
Constant Field Values

A_CustomHeader

public static final java.lang.String A_CustomHeader
See Also:
Constant Field Values

A_DirectCall

public static final java.lang.String A_DirectCall
See Also:
Constant Field Values

A_Encoded

public static final java.lang.String A_Encoded
See Also:
Constant Field Values

A_Facet

public static final java.lang.String A_Facet
See Also:
Constant Field Values

A_Gated

public static final java.lang.String A_Gated
See Also:
Constant Field Values

A_GlobalNames

public static final java.lang.String A_GlobalNames
See Also:
Constant Field Values

A_HeaderName

public static final java.lang.String A_HeaderName
See Also:
Constant Field Values

A_InstanceFinalize

public static final java.lang.String A_InstanceFinalize
See Also:
Constant Field Values

A_InstanceInitError

public static final java.lang.String A_InstanceInitError
See Also:
Constant Field Values

A_InstanceInitStatic

public static final java.lang.String A_InstanceInitStatic
See Also:
Constant Field Values

A_Macro

public static final java.lang.String A_Macro
See Also:
Constant Field Values

A_ModuleStartup

public static final java.lang.String A_ModuleStartup
See Also:
Constant Field Values

A_NoRuntime

public static final java.lang.String A_NoRuntime
See Also:
Constant Field Values

A_Opaque

public static final java.lang.String A_Opaque
See Also:
Constant Field Values

A_Prefix

public static final java.lang.String A_Prefix
See Also:
Constant Field Values

A_Proxy

public static final java.lang.String A_Proxy
See Also:
Constant Field Values

A_System

public static final java.lang.String A_System
See Also:
Constant Field Values

A_TargetHeader

public static final java.lang.String A_TargetHeader
See Also:
Constant Field Values

A_Template

public static final java.lang.String A_Template
See Also:
Constant Field Values

A_Transient

public static final java.lang.String A_Transient
See Also:
Constant Field Values

A_XmlDtd

public static final java.lang.String A_XmlDtd
See Also:
Constant Field Values
Method Detail

getName

public final java.lang.String getName()

getVal

public final Expr getVal()

toText

public java.lang.String toText()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


BrowserSession

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class BrowserSession

java.lang.Object
    extended by  xdc.services.spec.Session
        extended by  xdc.services.spec.BrowserSession

public class BrowserSession
extends Session

Field Summary
Fields inherited from class xdc.services.spec.Session
msg
Constructor Summary
BrowserSession()
Create a session to browse the current package path.
BrowserSession(xdc.services.global.Env env)
Create a new session with a given environment
BrowserSession(xdc.services.global.Env env, Cache cache)
BrowserSession(java.lang.String[] dirs)
Create a new session with a given package path
BrowserSession(java.lang.String[] dirs, xdc.services.global.Env env)
Create a new session with a given package path and environment
Method Summary
Pkg | findPkg(java.lang.String qn)
boolean | getLoadDocs() Return whether documentation is available in this session.
boolean | isCurrentPkg(Pkg pkg)
boolean | isCurrentPkg(java.lang.String cpath, java.lang.String qn)
java.lang.String | isPkgDir(java.lang.String dir) Check whether the named directory contains a built package.
Pkg | loadPkg(java.lang.String dir, java.lang.String qn)
Unit | loadUnit(java.lang.String name) Load the named unit's spec object by searching the package path.
java.util.Map<java.lang.String,java.lang.String> | scanDirectories() Return a Map of package names indexed by the canonical path to the package's base.
java.util.Map<java.lang.String,java.lang.String> | scanRepositories() Return a Map all package base directories indexed by the package's name.
void | setLoadDocs(boolean loadDocs) Set whether this session should preserve docs in Nodes.
Methods inherited from class xdc.services.spec.Session
findDecl, findDecl, findUnit, findUnit, getEnv, getVers, setEnv, setErr, setWarnings
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

BrowserSession

public BrowserSession()
Create a session to browse the current package path.

BrowserSession

public BrowserSession(xdc.services.global.Env env)
Create a new session with a given environment

BrowserSession

public BrowserSession(xdc.services.global.Env env,
                      Cache cache)

BrowserSession

public BrowserSession(java.lang.String[] dirs)
Create a new session with a given package path

BrowserSession

public BrowserSession(java.lang.String[] dirs,
                      xdc.services.global.Env env)
Create a new session with a given package path and environment

Method Detail

findPkg

public Pkg findPkg(java.lang.String qn)
Overrides:
findPkg in class Session

isCurrentPkg

public boolean isCurrentPkg(Pkg pkg)

isCurrentPkg

public boolean isCurrentPkg(java.lang.String cpath,
                            java.lang.String qn)

loadPkg

public Pkg loadPkg(java.lang.String dir,
                   java.lang.String qn)

isPkgDir

public java.lang.String isPkgDir(java.lang.String dir)
Check whether the named directory contains a built package.

Parameters:
dir - the pathname to the directory to check.
Returns:
the fully qualified package name, or else null if the directory is not recognizably a built package.

loadUnit

public Unit loadUnit(java.lang.String name)
Load the named unit's spec object by searching the package path.

Parameters:
name - Package-qualified name of the module or interface.
Returns:
unit, or null if not found.

scanDirectories

public java.util.Map<java.lang.String,java.lang.String> scanDirectories()
Return a Map of package names indexed by the canonical path to the package's base.

scanRepositories

public java.util.Map<java.lang.String,java.lang.String> scanRepositories()
Return a Map all package base directories indexed by the package's name.

setLoadDocs

public void setLoadDocs(boolean loadDocs)
Set whether this session should preserve docs in Nodes. If false, spec objects loaded by this session will not contain documentation. This is a Java heap memory optimization. Default is to load documentation.

getLoadDocs

public boolean getLoadDocs()
Return whether documentation is available in this session. Default is to load documentation.

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Cache

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Cache

java.lang.Object
    extended by  xdc.services.spec.Cache

public class Cache
extends java.lang.Object

Cache of spec objects for a session. This cache can be shared between related sessions having the same package path. For example, each BrowserSession has an associated ParserSession to handle backwards compatibility cases, and the Cache is shared in this case.

Constructor Summary
Cache()
Method Summary
boolean | contains(Node n) Poll whether the cache contains an object.
boolean | contains(java.lang.String qn) Poll whether the cache contains the named object.
Node | get(java.lang.String qn) Get the cached copy of an object.
boolean | put(Node n) Add an object to the cache.
boolean | put(java.lang.String qn, Node n) Add a object to the cache with a specific qualified name.
boolean | put(java.lang.String qn, Node n, boolean force)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Cache

public Cache()
Method Detail

contains

public boolean contains(Node n)
Poll whether the cache contains an object.

contains

public boolean contains(java.lang.String qn)
Poll whether the cache contains the named object. Useful if the Node may not yet be fully initialized, and it may not yet be possible to call getQualName().

put

public boolean put(Node n)
Add an object to the cache.

Returns:
true if this cache did not already contain the object

put

public boolean put(java.lang.String qn,
                   Node n)
Add a object to the cache with a specific qualified name. Useful if the Node is not yet fully initialized, and it may not yet be possible to call getQualName(). If the name is known by out-of-band means then it can still be added to the cache.

Returns:
true if this cache did not already contain the object

put

public boolean put(java.lang.String qn,
                   Node n,
                   boolean force)

get

public Node get(java.lang.String qn)
Get the cached copy of an object. If the object is already in the cache, return it.

Returns:
the cached equivalent of this object, or null.
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>
Direct Known Subclasses:
Decl.Arg, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.Proxy, Decl.Struct, Decl.Typedef
public class Decl
extends Node

See Also:
Serialized Form

Nested Class Summary
static interface | Decl.Annexable
static class | Decl.Arg
static interface | Decl.AuxDef
static class | Decl.Config
static class | Decl.Const
static class | Decl.Enum
static class | Decl.EnumVal
static class | Decl.Extern
static class | Decl.Field
static class | Decl.Fxn
static interface | Decl.IsType
static interface | Decl.LocalUnit
static interface | Decl.OverridableDef
static class | Decl.Proxy
static interface | Decl.Signature
static interface | Decl.Sizeable
static class | Decl.Struct
static class | Decl.Typedef
Constructor Summary
Decl()
Method Summary
java.util.List<? extends Decl> | getChildren()
java.lang.String | getQualName()
java.lang.String | getXmlTag()
static Decl.Signature.ObjKind | objKind(Decl.Signature sig)
static Decl.Signature.ObjKind | objKind(Type type, java.lang.String tcode)
Decl | overrides()
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Decl

public Decl()
Method Detail

overrides

public Decl overrides()

getChildren

public java.util.List<? extends Decl> getChildren()
Specified by:
getChildren in class Node

getQualName

public java.lang.String getQualName()
Specified by:
getQualName in class Node

getXmlTag

public java.lang.String getXmlTag()
Specified by:
getXmlTag in class Node

objKind

public static final Decl.Signature.ObjKind objKind(Decl.Signature sig)

objKind

public static final Decl.Signature.ObjKind objKind(Type type,
                                                   java.lang.String tcode)
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Annexable

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Interface Decl.Annexable

All Known Implementing Classes:
Decl.Config, Decl.Fxn
Enclosing class:
Decl
public static interface Decl.Annexable

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Arg

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Arg

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Arg
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.Signature
Enclosing class:
Decl
public static class Decl.Arg
extends Decl
implements Decl.Signature

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Nested classes/interfaces inherited from interface xdc.services.spec.Decl.Signature
Decl.Signature.ObjKind
Method Summary
Expr | getInit()
Type | getType()
java.lang.String | getTypeCode()
java.lang.String | getTypeSig()
Methods inherited from class xdc.services.spec.Decl
getChildren, getQualName, getXmlTag, objKind, objKind, overrides
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getInit

public final Expr getInit()

getType

public final Type getType()
Specified by:
getType in interface Decl.Signature

getTypeCode

public final java.lang.String getTypeCode()
Specified by:
getTypeCode in interface Decl.Signature

getTypeSig

public final java.lang.String getTypeSig()
Specified by:
getTypeSig in interface Decl.Signature
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.AuxDef

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Interface Decl.AuxDef

All Known Implementing Classes:
Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Struct, Decl.Typedef
Enclosing class:
Decl
public static interface Decl.AuxDef

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Config

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Config

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Config
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.Annexable, Decl.Signature
Enclosing class:
Decl
public static class Decl.Config
extends Decl
implements Decl.Annexable, Decl.Signature

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Nested classes/interfaces inherited from interface xdc.services.spec.Decl.Signature
Decl.Signature.ObjKind
Method Summary
Expr | getInit()
Type | getType()
java.lang.String | getTypeCode()
java.lang.String | getTypeSig()
Decl.Config | overrides()
Methods inherited from class xdc.services.spec.Decl
getChildren, getQualName, getXmlTag, objKind, objKind
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getInit

public final Expr getInit()

getType

public final Type getType()
Specified by:
getType in interface Decl.Signature

getTypeCode

public final java.lang.String getTypeCode()
Specified by:
getTypeCode in interface Decl.Signature

getTypeSig

public final java.lang.String getTypeSig()
Specified by:
getTypeSig in interface Decl.Signature

overrides

public final Decl.Config overrides()
Overrides:
overrides in class Decl
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Const

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Const

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Const
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.AuxDef, Decl.OverridableDef, Decl.Signature
Enclosing class:
Decl
public static class Decl.Const
extends Decl
implements Decl.AuxDef, Decl.OverridableDef, Decl.Signature

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Nested classes/interfaces inherited from interface xdc.services.spec.Decl.Signature
Decl.Signature.ObjKind
Method Summary
Expr | getInit()
Type | getType()
java.lang.String | getTypeCode()
java.lang.String | getTypeSig()
Methods inherited from class xdc.services.spec.Decl
getChildren, getQualName, getXmlTag, objKind, objKind, overrides
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getInit

public final Expr getInit()

getType

public final Type getType()
Specified by:
getType in interface Decl.Signature

getTypeCode

public final java.lang.String getTypeCode()
Specified by:
getTypeCode in interface Decl.Signature

getTypeSig

public final java.lang.String getTypeSig()
Specified by:
getTypeSig in interface Decl.Signature
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Enum

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Enum

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Enum
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.AuxDef, Decl.IsType, Decl.Sizeable
Enclosing class:
Decl
public static class Decl.Enum
extends Decl
implements Decl.AuxDef, Decl.IsType, Decl.Sizeable

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Method Summary
java.util.List<Decl.EnumVal> | getChildren()
Type.Spec | getRep()
java.util.List<Decl.EnumVal> | getVals()
void | sizeof(java.util.List<java.lang.String> sL)
Methods inherited from class xdc.services.spec.Decl
getQualName, getXmlTag, objKind, objKind, overrides
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getChildren

public java.util.List<Decl.EnumVal> getChildren()
Overrides:
getChildren in class Decl

getRep

public final Type.Spec getRep()

getVals

public final java.util.List<Decl.EnumVal> getVals()

sizeof

public void sizeof(java.util.List<java.lang.String> sL)
Specified by:
sizeof in interface Decl.Sizeable
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.EnumVal

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.EnumVal

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.EnumVal
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.AuxDef
Enclosing class:
Decl
public static class Decl.EnumVal
extends Decl
implements Decl.AuxDef

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Method Summary
 Expr getInit()
Methods inherited from class xdc.services.spec.Decl
getChildren, getQualName, getXmlTag, objKind, objKind, overrides
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getInit

public final Expr getInit()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Extern

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Extern

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Extern
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.AuxDef, Decl.Signature
Enclosing class:
Decl
public static class Decl.Extern
extends Decl
implements Decl.AuxDef, Decl.Signature

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Nested classes/interfaces inherited from interface xdc.services.spec.Decl.Signature
Decl.Signature.ObjKind
Method Summary
Type | getType()
java.lang.String | getTypeCode()
java.lang.String | getTypeSig()
java.lang.String | getValue()
Methods inherited from class xdc.services.spec.Decl
getChildren, getQualName, getXmlTag, objKind, objKind, overrides
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getType

public final Type getType()
Specified by:
getType in interface Decl.Signature

getTypeCode

public final java.lang.String getTypeCode()
Specified by:
getTypeCode in interface Decl.Signature

getTypeSig

public final java.lang.String getTypeSig()
Specified by:
getTypeSig in interface Decl.Signature

getValue

public final java.lang.String getValue()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Field

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Field

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Field
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.Signature
Enclosing class:
Decl
public static class Decl.Field
extends Decl
implements Decl.Signature

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Nested classes/interfaces inherited from interface xdc.services.spec.Decl.Signature
Decl.Signature.ObjKind
Method Summary
Type | getType()
java.lang.String | getTypeCode()
java.lang.String | getTypeSig()
Methods inherited from class xdc.services.spec.Decl
getChildren, getQualName, getXmlTag, objKind, objKind, overrides
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getType

public final Type getType()
Specified by:
getType in interface Decl.Signature

getTypeCode

public final java.lang.String getTypeCode()
Specified by:
getTypeCode in interface Decl.Signature

getTypeSig

public final java.lang.String getTypeSig()
Specified by:
getTypeSig in interface Decl.Signature
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Fxn

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Fxn

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Fxn
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.Annexable, Decl.Signature
Enclosing class:
Decl
public static class Decl.Fxn
extends Decl
implements Decl.Annexable, Decl.Signature

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Nested classes/interfaces inherited from interface xdc.services.spec.Decl.Signature
Decl.Signature.ObjKind
Method Summary
java.util.List<Decl.Arg> | getArgs()
java.util.List<Decl.Arg> | getChildren()
int | getMinArgc()
Type | getType()
java.lang.String | getTypeCode()
java.lang.String | getTypeSig()
boolean | isLoggable()
boolean | isVarg()
Decl.Fxn | overrides()
Methods inherited from class xdc.services.spec.Decl
getQualName, getXmlTag, objKind, objKind
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getArgs

public final java.util.List<Decl.Arg> getArgs()

getChildren

public java.util.List<Decl.Arg> getChildren()
Overrides:
getChildren in class Decl

getMinArgc

public final int getMinArgc()

getType

public final Type getType()
Specified by:
getType in interface Decl.Signature

getTypeCode

public final java.lang.String getTypeCode()
Specified by:
getTypeCode in interface Decl.Signature

getTypeSig

public final java.lang.String getTypeSig()
Specified by:
getTypeSig in interface Decl.Signature

isLoggable

public final boolean isLoggable()

isVarg

public final boolean isVarg()

overrides

public final Decl.Fxn overrides()
Overrides:
overrides in class Decl
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.IsType

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Interface Decl.IsType

All Known Implementing Classes:
Decl.Enum, Decl.Struct, Decl.Typedef
Enclosing class:
Decl
public static interface Decl.IsType

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.LocalUnit

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Interface Decl.LocalUnit

All Known Implementing Classes:
Decl.Proxy
Enclosing class:
Decl
public static interface Decl.LocalUnit

Method Summary
 Unit getUnit()

Method Detail

getUnit

Unit getUnit()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.OverridableDef

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Interface Decl.OverridableDef

All Known Implementing Classes:
Decl.Const
Enclosing class:
Decl
public static interface Decl.OverridableDef

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Proxy

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Proxy

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Proxy
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.LocalUnit
Enclosing class:
Decl
public static class Decl.Proxy
extends Decl
implements Decl.LocalUnit

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Method Summary
Unit | getInherits()
Unit | getUnit()
Methods inherited from class xdc.services.spec.Decl
getChildren, getQualName, getXmlTag, objKind, objKind, overrides
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getInherits

public final Unit getInherits()

getUnit

public final Unit getUnit()
Specified by:
getUnit in interface Decl.LocalUnit
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Signature

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Interface Decl.Signature

All Known Implementing Classes:
Decl.Arg, Decl.Config, Decl.Const, Decl.Extern, Decl.Field, Decl.Fxn, Decl.Typedef
Enclosing class:
Decl
public static interface Decl.Signature

Nested Class Summary
static class Decl.Signature.ObjKind
Method Summary
Type | getType()
java.lang.String | getTypeCode()
java.lang.String | getTypeSig()

Method Detail

getType

Type getType()

getTypeCode

java.lang.String getTypeCode()

getTypeSig

java.lang.String getTypeSig()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Signature.ObjKind

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD DETAIL: ENUM CONSTANTS | FIELD | METHOD

xdc.services.spec
Enum Decl.Signature.ObjKind

java.lang.Object
    extended by  java.lang.Enum<Decl.Signature.ObjKind>
        extended by  xdc.services.spec.Decl.Signature.ObjKind
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Decl.Signature.ObjKind>
Enclosing interface:
Decl.Signature
public static enum Decl.Signature.ObjKind
extends java.lang.Enum<Decl.Signature.ObjKind>

Enum Constant Summary
ARRAY
NONE
SINGLE
Method Summary
static Decl.Signature.ObjKind | valueOf(java.lang.String name) Returns the enum constant of this type with the specified name.
static Decl.Signature.ObjKind[] | values() Returns an array containing the constants of this enum type, in the order they're declared.
Methods inherited from class java.lang.Enum
clone, compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait

Enum Constant Detail

NONE

public static final Decl.Signature.ObjKind NONE

SINGLE

public static final Decl.Signature.ObjKind SINGLE

ARRAY

public static final Decl.Signature.ObjKind ARRAY
Method Detail

values

public static final Decl.Signature.ObjKind[] values()
Returns an array containing the constants of this enum type, in the order they're declared. This method may be used to iterate over the constants as follows:
for(Decl.Signature.ObjKind c : Decl.Signature.ObjKind.values())
        System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they're declared

valueOf

public static Decl.Signature.ObjKind valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD DETAIL: ENUM CONSTANTS | FIELD | METHOD


Decl.Sizeable

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Interface Decl.Sizeable

All Known Implementing Classes:
Decl.Enum, Decl.Struct, Decl.Typedef
Enclosing class:
Decl
public static interface Decl.Sizeable

Method Summary
 void sizeof(java.util.List<java.lang.String> sL)

Method Detail

sizeof

void sizeof(java.util.List<java.lang.String> sL)
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Struct

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Struct

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Struct
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.AuxDef, Decl.IsType, Decl.Sizeable
Enclosing class:
Decl
public static class Decl.Struct
extends Decl
implements Decl.AuxDef, Decl.IsType, Decl.Sizeable

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Method Summary
java.util.List<Decl.Field> | getChildren()
java.util.List<Decl.Field> | getFields()
java.util.List<java.lang.String> | getSizes()
java.lang.String | getXmlTag()
boolean | isAnon()
boolean | isUnion()
void | sizeof(java.util.List<java.lang.String> sL)
Methods inherited from class xdc.services.spec.Decl
getQualName, objKind, objKind, overrides
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getChildren

public java.util.List<Decl.Field> getChildren()
Overrides:
getChildren in class Decl

getFields

public final java.util.List<Decl.Field> getFields()

getSizes

public final java.util.List<java.lang.String> getSizes()

getXmlTag

public java.lang.String getXmlTag()
Overrides:
getXmlTag in class Decl

isAnon

public final boolean isAnon()

isUnion

public final boolean isUnion()

sizeof

public void sizeof(java.util.List<java.lang.String> sL)
Specified by:
sizeof in interface Decl.Sizeable
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Decl.Typedef

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Decl.Typedef

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Decl
            extended by  xdc.services.spec.Decl.Typedef
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>, Decl.AuxDef, Decl.IsType, Decl.Signature, Decl.Sizeable
Enclosing class:
Decl
public static class Decl.Typedef
extends Decl
implements Decl.AuxDef, Decl.IsType, Decl.Signature, Decl.Sizeable

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Decl
Decl.Annexable, Decl.Arg, Decl.AuxDef, Decl.Config, Decl.Const, Decl.Enum, Decl.EnumVal, Decl.Extern, Decl.Field, Decl.Fxn, Decl.IsType, Decl.LocalUnit, Decl.OverridableDef, Decl.Proxy, Decl.Signature, Decl.Sizeable, Decl.Struct, Decl.Typedef
Nested classes/interfaces inherited from interface xdc.services.spec.Decl.Signature
Decl.Signature.ObjKind
Method Summary
Type | getType()
java.lang.String | getTypeCode()
java.lang.String | getTypeSig()
void | sizeof(java.util.List<java.lang.String> sL)
Methods inherited from class xdc.services.spec.Decl
getChildren, getQualName, getXmlTag, objKind, objKind, overrides
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getPkgName, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getType

public final Type getType()
Specified by:
getType in interface Decl.Signature

getTypeCode

public final java.lang.String getTypeCode()
Specified by:
getTypeCode in interface Decl.Signature

getTypeSig

public final java.lang.String getTypeSig()
Specified by:
getTypeSig in interface Decl.Signature

sizeof

public void sizeof(java.util.List<java.lang.String> sL)
Specified by:
sizeof in interface Decl.Sizeable
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


DocComment

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class DocComment

java.lang.Object
    extended by  xdc.services.spec.DocComment
All Implemented Interfaces:
java.io.Serializable
public class DocComment
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Method Summary
java.lang.String | getArg()
java.lang.String | getBody()
java.lang.String | getMode()
int | getParId()
java.lang.String | getTag()
static java.lang.Boolean | isParsed(java.util.List<DocComment> docs) Identify whether the given list of comments has already been parsed.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getArg

public final java.lang.String getArg()

getBody

public final java.lang.String getBody()

getMode

public final java.lang.String getMode()

getTag

public final java.lang.String getTag()

getParId

public final int getParId()

isParsed

public static java.lang.Boolean isParsed(java.util.List<DocComment> docs)
Identify whether the given list of comments has already been parsed.

Parameters:
docs - The list of comments to inspect.
Returns:
true if the list has already been parsed.
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr

java.lang.Object
    extended by  xdc.services.spec.Expr
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
public class Expr
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Nested Class Summary
static interface | Expr.Aggregate
static class | Expr.Array
static class | Expr.Binary
static class | Expr.Cond
static class | Expr.Const
static class | Expr.Creat
static class | Expr.Hash
static class | Expr.Paren
static class | Expr.Term
static class | Expr.Unary
Constructor Summary
Expr()
Method Summary
Expr.Term | getTerm()
static java.lang.String | toText(Expr e)
static java.lang.String | toXml(Expr e)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Expr

public Expr()
Method Detail

getTerm

public Expr.Term getTerm()

toText

public static final java.lang.String toText(Expr e)

toXml

public static final java.lang.String toXml(Expr e)
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Aggregate

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Interface Expr.Aggregate

All Known Implementing Classes:
Expr.Array, Expr.Hash
Enclosing class:
Expr
public static interface Expr.Aggregate

Method Summary
 boolean isEmpty()

Method Detail

isEmpty

boolean isEmpty()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Array

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr.Array

java.lang.Object
    extended by  xdc.services.spec.Expr
        extended by  xdc.services.spec.Expr.Array
All Implemented Interfaces:
java.io.Serializable, Expr.Aggregate
Enclosing class:
Expr
public static class Expr.Array
extends Expr
implements Expr.Aggregate

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Expr
Expr.Aggregate, Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
Method Summary
java.util.List<Expr> | getElems()
boolean | isEmpty()
Methods inherited from class xdc.services.spec.Expr
getTerm, toText, toXml
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getElems

public final java.util.List<Expr> getElems()

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Expr.Aggregate
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Binary

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr.Binary

java.lang.Object
    extended by  xdc.services.spec.Expr
        extended by  xdc.services.spec.Expr.Binary
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Expr
public static class Expr.Binary
extends Expr

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Expr
Expr.Aggregate, Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
Method Summary
Expr | getLeft()
java.lang.String | getOp()
Expr | getRight()
Methods inherited from class xdc.services.spec.Expr
getTerm, toText, toXml
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getLeft

public final Expr getLeft()

getOp

public final java.lang.String getOp()

getRight

public final Expr getRight()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Cond

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr.Cond

java.lang.Object
    extended by  xdc.services.spec.Expr
        extended by  xdc.services.spec.Expr.Cond
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Expr
public static class Expr.Cond
extends Expr

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Expr
Expr.Aggregate, Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
Method Summary
Expr | getCond()
Expr | getLeft()
Expr | getRight()
Methods inherited from class xdc.services.spec.Expr
getTerm, toText, toXml
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getCond

public final Expr getCond()

getLeft

public final Expr getLeft()

getRight

public final Expr getRight()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Const

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr.Const

java.lang.Object
    extended by  xdc.services.spec.Expr
        extended by  xdc.services.spec.Expr.Const
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Expr
public static class Expr.Const
extends Expr

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Expr
Expr.Aggregate, Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
Method Summary
 java.lang.String getVal()
Methods inherited from class xdc.services.spec.Expr
getTerm, toText, toXml
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getVal

public final java.lang.String getVal()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Creat

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr.Creat

java.lang.Object
    extended by  xdc.services.spec.Expr
        extended by  xdc.services.spec.Expr.Creat
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Expr
public static class Expr.Creat
extends Expr

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Expr
Expr.Aggregate, Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
Method Summary
java.util.List<Expr> | getArgs()
Expr.Term | getMod()
Expr.Term | getTerm()
Methods inherited from class xdc.services.spec.Expr
toText, toXml
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getArgs

public final java.util.List<Expr> getArgs()

getMod

public final Expr.Term getMod()

getTerm

public Expr.Term getTerm()
Overrides:
getTerm in class Expr
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Hash

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr.Hash

java.lang.Object
    extended by  xdc.services.spec.Expr
        extended by  xdc.services.spec.Expr.Hash
All Implemented Interfaces:
java.io.Serializable, Expr.Aggregate
Enclosing class:
Expr
public static class Expr.Hash
extends Expr
implements Expr.Aggregate

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Expr
Expr.Aggregate, Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
Method Summary
java.util.List<Atom> | getIds()
java.util.List<Expr> | getVals()
boolean | isEmpty()
Methods inherited from class xdc.services.spec.Expr
getTerm, toText, toXml
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getIds

public final java.util.List<Atom> getIds()

getVals

public final java.util.List<Expr> getVals()

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Expr.Aggregate
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Paren

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr.Paren

java.lang.Object
    extended by  xdc.services.spec.Expr
        extended by  xdc.services.spec.Expr.Paren
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Expr
public static class Expr.Paren
extends Expr

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Expr
Expr.Aggregate, Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
Method Summary
Expr | getBody()
Expr.Term | getTerm()
Methods inherited from class xdc.services.spec.Expr
toText, toXml
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getBody

public final Expr getBody()

getTerm

public Expr.Term getTerm()
Overrides:
getTerm in class Expr
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Term

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr.Term

java.lang.Object
    extended by  xdc.services.spec.Expr
        extended by  xdc.services.spec.Expr.Term
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Expr
public static class Expr.Term
extends Expr

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Expr
Expr.Aggregate, Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
Method Summary
Ref | getRef()
Expr.Term | getTerm()
Expr | getVal()
Methods inherited from class xdc.services.spec.Expr
toText, toXml
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getRef

public final Ref getRef()

getTerm

public Expr.Term getTerm()
Overrides:
getTerm in class Expr

getVal

public final Expr getVal()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Expr.Unary

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Expr.Unary

java.lang.Object
    extended by  xdc.services.spec.Expr
        extended by  xdc.services.spec.Expr.Unary
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Expr
public static class Expr.Unary
extends Expr

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Expr
Expr.Aggregate, Expr.Array, Expr.Binary, Expr.Cond, Expr.Const, Expr.Creat, Expr.Hash, Expr.Paren, Expr.Term, Expr.Unary
Method Summary
java.lang.String | getOp()
Expr | getRight()
Methods inherited from class xdc.services.spec.Expr
getTerm, toText, toXml
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getOp

public final java.lang.String getOp()

getRight

public final Expr getRight()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


GrammarLexer

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class GrammarLexer

java.lang.Object
    extended by  org.antlr.runtime.BaseRecognizer
        extended by  org.antlr.runtime.Lexer
            extended by  xdc.services.spec.GrammarLexer
All Implemented Interfaces:
org.antlr.runtime.TokenSource
public class GrammarLexer
extends org.antlr.runtime.Lexer

Field Summary
static int | AMP
static int | AMPAMP
static int | ATTR
static int | BANG
static int | BANGEQ
static int | BAR
static int | BARBAR
static int | CAR
static int | CHAR
static int | COLON
static int | COMMA
static int | D
protected xdc.services.spec.GrammarLexer.DFA35 | dfa35
protected xdc.services.spec.GrammarLexer.DFA36 | dfa36
static int | DIV
static int | DOC_BLK
static int | DOC_INL
static int | DOC_PRE
static int | DOC_SUF
static int | DOT
static int | E
static int | ELIPSIS
static int | EOF
static int | EQ
static int | EQEQ
static int | GT
static int | GTEQ
static int | GTGT
static int | H
static int | ID
static int | IDENT
static int | LBRK
static int | LCUR
static int | LPAR
static int | LT
static int | LTEQ
static int | LTLT
static int | LU
static int | MIN
static int | ML_COMMENT
static int | NUM
static int | OPER
static int | PATH
static int | PATHSTAR
static int | PCT
static int | PLUS
static int | QUEST
static int | R
static int | RBRK
static int | RCUR
static int | RPAR
static int | SEMI
static int | SL_COMMENT
static int | STAR
static int | STRING
static int | T__100
static int | T__101
static int | T__102
static int | T__103
static int | T__104
static int | T__105
static int | T__106
static int | T__107
static int | T__108
static int | T__109
static int | T__110
static int | T__111
static int | T__112
static int | T__113
static int | T__114
static int | T__115
static int | T__116
static int | T__117
static int | T__118
static int | T__119
static int | T__120
static int | T__121
static int | T__122
static int | T__123
static int | T__124
static int | T__125
static int | T__126
static int | T__127
static int | T__128
static int | T__129
static int | T__130
static int | T__131
static int | T__132
static int | T__133
static int | T__134
static int | T__135
static int | T__136
static int | T__58
static int | T__59
static int | T__60
static int | T__61
static int | T__62
static int | T__63
static int | T__64
static int | T__65
static int | T__66
static int | T__67
static int | T__68
static int | T__69
static int | T__70
static int | T__71
static int | T__72
static int | T__73
static int | T__74
static int | T__75
static int | T__76
static int | T__77
static int | T__78
static int | T__79
static int | T__80
static int | T__81
static int | T__82
static int | T__83
static int | T__84
static int | T__85
static int | T__86
static int | T__87
static int | T__88
static int | T__89
static int | T__90
static int | T__91
static int | T__92
static int | T__93
static int | T__94
static int | T__95
static int | T__96
static int | T__97
static int | T__98
static int | T__99
static int | TILDE
static int | WS
Fields inherited from class org.antlr.runtime.Lexer
input
Fields inherited from class org.antlr.runtime.BaseRecognizer
DEFAULT_TOKEN_CHANNEL, HIDDEN, INITIAL_FOLLOW_STACK_SIZE, MEMO_RULE_FAILED, MEMO_RULE_UNKNOWN, NEXT_TOKEN_RULE_NAME, state
Constructor Summary
GrammarLexer()
GrammarLexer(org.antlr.runtime.CharStream input)
GrammarLexer(org.antlr.runtime.CharStream input, org.antlr.runtime.RecognizerSharedState state)
Method Summary
java.lang.String | getGrammarFileName()
void | mAMP()
void | mAMPAMP()
void | mATTR()
void | mBANG()
void | mBANGEQ()
void | mBAR()
void | mBARBAR()
void | mCAR()
void | mCHAR()
void | mCOLON()
void | mCOMMA()
void | mD()
void | mDIV()
void | mDOC_BLK()
void | mDOC_INL()
void | mDOC_PRE()
void | mDOC_SUF()
void | mDOT()
void | mE()
void | mELIPSIS()
void | mEQ()
void | mEQEQ()
void | mGT()
void | mGTEQ()
void | mGTGT()
void | mH()
void | mID()
void | mIDENT()
void | mLBRK()
void | mLCUR()
void | mLPAR()
void | mLT()
void | mLTEQ()
void | mLTLT()
void | mLU()
void | mMIN()
void | mML_COMMENT()
void | mNUM()
void | mOPER()
void | mPATH()
void | mPATHSTAR()
void | mPCT()
void | mPLUS()
void | mQUEST()
void | mR()
void | mRBRK()
void | mRCUR()
void | mRPAR()
void | mSEMI()
void | mSL_COMMENT()
void | mSTAR()
void | mSTRING()
void | mT__100()
void | mT__101()
void | mT__102()
void | mT__103()
void | mT__104()
void | mT__105()
void | mT__106()
void | mT__107()
void | mT__108()
void | mT__109()
void | mT__110()
void | mT__111()
void | mT__112()
void | mT__113()
void | mT__114()
void | mT__115()
void | mT__116()
void | mT__117()
void | mT__118()
void | mT__119()
void | mT__120()
void | mT__121()
void | mT__122()
void | mT__123()
void | mT__124()
void | mT__125()
void | mT__126()
void | mT__127()
void | mT__128()
void | mT__129()
void | mT__130()
void | mT__131()
void | mT__132()
void | mT__133()
void | mT__134()
void | mT__135()
void | mT__136()
void | mT__58()
void | mT__59()
void | mT__60()
void | mT__61()
void | mT__62()
void | mT__63()
void | mT__64()
void | mT__65()
void | mT__66()
void | mT__67()
void | mT__68()
void | mT__69()
void | mT__70()
void | mT__71()
void | mT__72()
void | mT__73()
void | mT__74()
void | mT__75()
void | mT__76()
void | mT__77()
void | mT__78()
void | mT__79()
void | mT__80()
void | mT__81()
void | mT__82()
void | mT__83()
void | mT__84()
void | mT__85()
void | mT__86()
void | mT__87()
void | mT__88()
void | mT__89()
void | mT__90()
void | mT__91()
void | mT__92()
void | mT__93()
void | mT__94()
void | mT__95()
void | mT__96()
void | mT__97()
void | mT__98()
void | mT__99()
void | mTILDE()
void | mTokens()
void | mWS()
Methods inherited from class org.antlr.runtime.Lexer
emit, emit, getCharErrorDisplay, getCharIndex, getCharPositionInLine, getCharStream, getErrorMessage, getLine, getSourceName, getText, match, match, matchAny, matchRange, nextToken, recover, reportError, reset, setCharStream, setText, skip, traceIn, traceOut
Methods inherited from class org.antlr.runtime.BaseRecognizer
alreadyParsedRule, beginResync, combineFollows, computeContextSensitiveRuleFOLLOW, computeErrorRecoverySet, consumeUntil, consumeUntil, displayRecognitionError, emitErrorMessage, endResync, getBacktrackingLevel, getCurrentInputSymbol, getErrorHeader, getMissingSymbol, getNumberOfSyntaxErrors, getRuleInvocationStack, getRuleInvocationStack, getRuleMemoization, getRuleMemoizationCacheSize, getTokenErrorDisplay, getTokenNames, match, matchAny, memoize, mismatch, mismatchIsMissingToken, mismatchIsUnwantedToken, pushFollow, recover, recoverFromMismatchedSet, recoverFromMismatchedToken, toStrings, traceIn, traceOut
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

COMMA

public static final int COMMA
See Also:
Constant Field Values

LPAR

public static final int LPAR
See Also:
Constant Field Values

T__109

public static final int T__109
See Also:
Constant Field Values

BANG

public static final int BANG
See Also:
Constant Field Values

T__122

public static final int T__122
See Also:
Constant Field Values

T__73

public static final int T__73
See Also:
Constant Field Values

T__115

public static final int T__115
See Also:
Constant Field Values

T__123

public static final int T__123
See Also:
Constant Field Values

CAR

public static final int CAR
See Also:
Constant Field Values

T__72

public static final int T__72
See Also:
Constant Field Values

BANGEQ

public static final int BANGEQ
See Also:
Constant Field Values

TILDE

public static final int TILDE
See Also:
Constant Field Values

T__70

public static final int T__70
See Also:
Constant Field Values

DOT

public static final int DOT
See Also:
Constant Field Values

D

public static final int D
See Also:
Constant Field Values

R

public static final int R
See Also:
Constant Field Values

ATTR

public static final int ATTR
See Also:
Constant Field Values

T__128

public static final int T__128
See Also:
Constant Field Values

DOC_INL

public static final int DOC_INL
See Also:
Constant Field Values

T__96

public static final int T__96
See Also:
Constant Field Values

AMP

public static final int AMP
See Also:
Constant Field Values

T__119

public static final int T__119
See Also:
Constant Field Values

T__112

public static final int T__112
See Also:
Constant Field Values

T__108

public static final int T__108
See Also:
Constant Field Values

PLUS

public static final int PLUS
See Also:
Constant Field Values

RBRK

public static final int RBRK
See Also:
Constant Field Values

T__135

public static final int T__135
See Also:
Constant Field Values

T__118

public static final int T__118
See Also:
Constant Field Values

T__113

public static final int T__113
See Also:
Constant Field Values

IDENT

public static final int IDENT
See Also:
Constant Field Values

LTLT

public static final int LTLT
See Also:
Constant Field Values

T__89

public static final int T__89
See Also:
Constant Field Values

RCUR

public static final int RCUR
See Also:
Constant Field Values

WS

public static final int WS
See Also:
Constant Field Values

CHAR

public static final int CHAR
See Also:
Constant Field Values

EQ

public static final int EQ
See Also:
Constant Field Values

T__79

public static final int T__79
See Also:
Constant Field Values

STRING

public static final int STRING
See Also:
Constant Field Values

T__64

public static final int T__64
See Also:
Constant Field Values

DOC_BLK

public static final int DOC_BLK
See Also:
Constant Field Values

LT

public static final int LT
See Also:
Constant Field Values

T__66

public static final int T__66
See Also:
Constant Field Values

T__130

public static final int T__130
See Also:
Constant Field Values

T__92

public static final int T__92
See Also:
Constant Field Values

T__88

public static final int T__88
See Also:
Constant Field Values

DOC_SUF

public static final int DOC_SUF
See Also:
Constant Field Values

EQEQ

public static final int EQEQ
See Also:
Constant Field Values

ELIPSIS

public static final int ELIPSIS
See Also:
Constant Field Values

SEMI

public static final int SEMI
See Also:
Constant Field Values

T__90

public static final int T__90
See Also:
Constant Field Values

QUEST

public static final int QUEST
See Also:
Constant Field Values

T__63

public static final int T__63
See Also:
Constant Field Values

T__114

public static final int T__114
See Also:
Constant Field Values

T__110

public static final int T__110
See Also:
Constant Field Values

T__125

public static final int T__125
See Also:
Constant Field Values

T__91

public static final int T__91
See Also:
Constant Field Values

LBRK

public static final int LBRK
See Also:
Constant Field Values

LTEQ

public static final int LTEQ
See Also:
Constant Field Values

PATHSTAR

public static final int PATHSTAR
See Also:
Constant Field Values

T__85

public static final int T__85
See Also:
Constant Field Values

T__132

public static final int T__132
See Also:
Constant Field Values

DOC_PRE

public static final int DOC_PRE
See Also:
Constant Field Values

COLON

public static final int COLON
See Also:
Constant Field Values

DIV

public static final int DIV
See Also:
Constant Field Values

T__124

public static final int T__124
See Also:
Constant Field Values

T__131

public static final int T__131
See Also:
Constant Field Values

T__60

public static final int T__60
See Also:
Constant Field Values

T__93

public static final int T__93
See Also:
Constant Field Values

PATH

public static final int PATH
See Also:
Constant Field Values

T__86

public static final int T__86
See Also:
Constant Field Values

T__94

public static final int T__94
See Also:
Constant Field Values

T__80

public static final int T__80
See Also:
Constant Field Values

T__100

public static final int T__100
See Also:
Constant Field Values

T__95

public static final int T__95
See Also:
Constant Field Values

T__69

public static final int T__69
See Also:
Constant Field Values

T__126

public static final int T__126
See Also:
Constant Field Values

T__65

public static final int T__65
See Also:
Constant Field Values

T__101

public static final int T__101
See Also:
Constant Field Values

T__104

public static final int T__104
See Also:
Constant Field Values

T__107

public static final int T__107
See Also:
Constant Field Values

T__67

public static final int T__67
See Also:
Constant Field Values

AMPAMP

public static final int AMPAMP
See Also:
Constant Field Values

T__87

public static final int T__87
See Also:
Constant Field Values

T__106

public static final int T__106
See Also:
Constant Field Values

T__74

public static final int T__74
See Also:
Constant Field Values

PCT

public static final int PCT
See Also:
Constant Field Values

T__68

public static final int T__68
See Also:
Constant Field Values

T__62

public static final int T__62
See Also:
Constant Field Values

T__127

public static final int T__127
See Also:
Constant Field Values

T__133

public static final int T__133
See Also:
Constant Field Values

T__61

public static final int T__61
See Also:
Constant Field Values

T__59

public static final int T__59
See Also:
Constant Field Values

ML_COMMENT

public static final int ML_COMMENT
See Also:
Constant Field Values

SL_COMMENT

public static final int SL_COMMENT
See Also:
Constant Field Values

T__120

public static final int T__120
See Also:
Constant Field Values

T__98

public static final int T__98
See Also:
Constant Field Values

ID

public static final int ID
See Also:
Constant Field Values

RPAR

public static final int RPAR
See Also:
Constant Field Values

T__117

public static final int T__117
See Also:
Constant Field Values

T__78

public static final int T__78
See Also:
Constant Field Values

H

public static final int H
See Also:
Constant Field Values

T__58

public static final int T__58
See Also:
Constant Field Values

OPER

public static final int OPER
See Also:
Constant Field Values

GT

public static final int GT
See Also:
Constant Field Values

MIN

public static final int MIN
See Also:
Constant Field Values

T__99

public static final int T__99
See Also:
Constant Field Values

GTEQ

public static final int GTEQ
See Also:
Constant Field Values

T__77

public static final int T__77
See Also:
Constant Field Values

T__129

public static final int T__129
See Also:
Constant Field Values

BARBAR

public static final int BARBAR
See Also:
Constant Field Values

T__121

public static final int T__121
See Also:
Constant Field Values

T__103

public static final int T__103
See Also:
Constant Field Values

T__84

public static final int T__84
See Also:
Constant Field Values

GTGT

public static final int GTGT
See Also:
Constant Field Values

T__136

public static final int T__136
See Also:
Constant Field Values

T__97

public static final int T__97
See Also:
Constant Field Values

T__111

public static final int T__111
See Also:
Constant Field Values

T__105

public static final int T__105
See Also:
Constant Field Values

T__75

public static final int T__75
See Also:
Constant Field Values

BAR

public static final int BAR
See Also:
Constant Field Values

T__116

public static final int T__116
See Also:
Constant Field Values

EOF

public static final int EOF
See Also:
Constant Field Values

NUM

public static final int NUM
See Also:
Constant Field Values

T__76

public static final int T__76
See Also:
Constant Field Values

T__82

public static final int T__82
See Also:
Constant Field Values

T__81

public static final int T__81
See Also:
Constant Field Values

T__134

public static final int T__134
See Also:
Constant Field Values

LU

public static final int LU
See Also:
Constant Field Values

STAR

public static final int STAR
See Also:
Constant Field Values

T__83

public static final int T__83
See Also:
Constant Field Values

T__71

public static final int T__71
See Also:
Constant Field Values

LCUR

public static final int LCUR
See Also:
Constant Field Values

T__102

public static final int T__102
See Also:
Constant Field Values

E

public static final int E
See Also:
Constant Field Values

dfa35

protected xdc.services.spec.GrammarLexer.DFA35 dfa35

dfa36

protected xdc.services.spec.GrammarLexer.DFA36 dfa36
Constructor Detail

GrammarLexer

public GrammarLexer()

GrammarLexer

public GrammarLexer(org.antlr.runtime.CharStream input)

GrammarLexer

public GrammarLexer(org.antlr.runtime.CharStream input,
                    org.antlr.runtime.RecognizerSharedState state)
Method Detail

getGrammarFileName

public java.lang.String getGrammarFileName()
Overrides:
getGrammarFileName in class org.antlr.runtime.BaseRecognizer

mT__58

public final void mT__58()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__59

public final void mT__59()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__60

public final void mT__60()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__61

public final void mT__61()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__62

public final void mT__62()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__63

public final void mT__63()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__64

public final void mT__64()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__65

public final void mT__65()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__66

public final void mT__66()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__67

public final void mT__67()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__68

public final void mT__68()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__69

public final void mT__69()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__70

public final void mT__70()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__71

public final void mT__71()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__72

public final void mT__72()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__73

public final void mT__73()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__74

public final void mT__74()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__75

public final void mT__75()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__76

public final void mT__76()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__77

public final void mT__77()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__78

public final void mT__78()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__79

public final void mT__79()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__80

public final void mT__80()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__81

public final void mT__81()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__82

public final void mT__82()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__83

public final void mT__83()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__84

public final void mT__84()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__85

public final void mT__85()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__86

public final void mT__86()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__87

public final void mT__87()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__88

public final void mT__88()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__89

public final void mT__89()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__90

public final void mT__90()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__91

public final void mT__91()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__92

public final void mT__92()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__93

public final void mT__93()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__94

public final void mT__94()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__95

public final void mT__95()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__96

public final void mT__96()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__97

public final void mT__97()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__98

public final void mT__98()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__99

public final void mT__99()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__100

public final void mT__100()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__101

public final void mT__101()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__102

public final void mT__102()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__103

public final void mT__103()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__104

public final void mT__104()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__105

public final void mT__105()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__106

public final void mT__106()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__107

public final void mT__107()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__108

public final void mT__108()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__109

public final void mT__109()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__110

public final void mT__110()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__111

public final void mT__111()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__112

public final void mT__112()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__113

public final void mT__113()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__114

public final void mT__114()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__115

public final void mT__115()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__116

public final void mT__116()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__117

public final void mT__117()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__118

public final void mT__118()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__119

public final void mT__119()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__120

public final void mT__120()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__121

public final void mT__121()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__122

public final void mT__122()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__123

public final void mT__123()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__124

public final void mT__124()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__125

public final void mT__125()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__126

public final void mT__126()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__127

public final void mT__127()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__128

public final void mT__128()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__129

public final void mT__129()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__130

public final void mT__130()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__131

public final void mT__131()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__132

public final void mT__132()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__133

public final void mT__133()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__134

public final void mT__134()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__135

public final void mT__135()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mT__136

public final void mT__136()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mWS

public final void mWS()
               throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mSL_COMMENT

public final void mSL_COMMENT()
                       throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mML_COMMENT

public final void mML_COMMENT()
                       throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mAMP

public final void mAMP()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mAMPAMP

public final void mAMPAMP()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mBANG

public final void mBANG()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mBANGEQ

public final void mBANGEQ()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mBAR

public final void mBAR()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mBARBAR

public final void mBARBAR()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mCAR

public final void mCAR()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mCOLON

public final void mCOLON()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mCOMMA

public final void mCOMMA()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mDIV

public final void mDIV()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mEQ

public final void mEQ()
               throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mEQEQ

public final void mEQEQ()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mGT

public final void mGT()
               throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mGTEQ

public final void mGTEQ()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mGTGT

public final void mGTGT()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mLBRK

public final void mLBRK()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mLCUR

public final void mLCUR()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mLPAR

public final void mLPAR()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mLT

public final void mLT()
               throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mLTEQ

public final void mLTEQ()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mLTLT

public final void mLTLT()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mMIN

public final void mMIN()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mPCT

public final void mPCT()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mPLUS

public final void mPLUS()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mQUEST

public final void mQUEST()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mRBRK

public final void mRBRK()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mRCUR

public final void mRCUR()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mRPAR

public final void mRPAR()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mSEMI

public final void mSEMI()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mSTAR

public final void mSTAR()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mTILDE

public final void mTILDE()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mATTR

public final void mATTR()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mIDENT

public final void mIDENT()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mCHAR

public final void mCHAR()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mSTRING

public final void mSTRING()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mDOT

public final void mDOT()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mNUM

public final void mNUM()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mID

public final void mID()
               throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mD

public final void mD()
              throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mR

public final void mR()
              throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mH

public final void mH()
              throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mE

public final void mE()
              throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mLU

public final void mLU()
               throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mDOC_BLK

public final void mDOC_BLK()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mDOC_INL

public final void mDOC_INL()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mDOC_PRE

public final void mDOC_PRE()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mDOC_SUF

public final void mDOC_SUF()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mELIPSIS

public final void mELIPSIS()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mOPER

public final void mOPER()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mPATH

public final void mPATH()
                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mPATHSTAR

public final void mPATHSTAR()
                     throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

mTokens

public void mTokens()
             throws org.antlr.runtime.RecognitionException
Specified by:
mTokens in class org.antlr.runtime.Lexer
Throws:
org.antlr.runtime.RecognitionException
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


GrammarParser

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class GrammarParser

java.lang.Object
    extended by  org.antlr.runtime.BaseRecognizer
        extended by  org.antlr.runtime.Parser
            extended by  xdc.services.spec.GrammarParser

public class GrammarParser
extends org.antlr.runtime.Parser

Field Summary
static int | AMP
static int | AMPAMP
static int | ATTR
static int | BANG
static int | BANGEQ
static int | BAR
static int | BARBAR
static int | CAR
static int | CHAR
static int | COLON
static int | COMMA
static int | D
protected xdc.services.spec.GrammarParser.DFA10 | dfa10
protected xdc.services.spec.GrammarParser.DFA11 | dfa11
protected xdc.services.spec.GrammarParser.DFA12 | dfa12
protected xdc.services.spec.GrammarParser.DFA13 | dfa13
protected xdc.services.spec.GrammarParser.DFA14 | dfa14
protected xdc.services.spec.GrammarParser.DFA20 | dfa20
protected xdc.services.spec.GrammarParser.DFA21 | dfa21
protected xdc.services.spec.GrammarParser.DFA22 | dfa22
protected xdc.services.spec.GrammarParser.DFA24 | dfa24
protected xdc.services.spec.GrammarParser.DFA27 | dfa27
protected xdc.services.spec.GrammarParser.DFA28 | dfa28
protected xdc.services.spec.GrammarParser.DFA3 | dfa3
protected xdc.services.spec.GrammarParser.DFA30 | dfa30
protected xdc.services.spec.GrammarParser.DFA36 | dfa36
protected xdc.services.spec.GrammarParser.DFA37 | dfa37
protected xdc.services.spec.GrammarParser.DFA39 | dfa39
protected xdc.services.spec.GrammarParser.DFA41 | dfa41
protected xdc.services.spec.GrammarParser.DFA42 | dfa42
protected xdc.services.spec.GrammarParser.DFA43 | dfa43
protected xdc.services.spec.GrammarParser.DFA44 | dfa44
protected xdc.services.spec.GrammarParser.DFA45 | dfa45
protected xdc.services.spec.GrammarParser.DFA47 | dfa47
protected xdc.services.spec.GrammarParser.DFA48 | dfa48
protected xdc.services.spec.GrammarParser.DFA51 | dfa51
protected xdc.services.spec.GrammarParser.DFA53 | dfa53
protected xdc.services.spec.GrammarParser.DFA54 | dfa54
protected xdc.services.spec.GrammarParser.DFA55 | dfa55
protected xdc.services.spec.GrammarParser.DFA56 | dfa56
protected xdc.services.spec.GrammarParser.DFA57 | dfa57
protected xdc.services.spec.GrammarParser.DFA6 | dfa6
protected xdc.services.spec.GrammarParser.DFA61 | dfa61
protected xdc.services.spec.GrammarParser.DFA62 | dfa62
protected xdc.services.spec.GrammarParser.DFA77 | dfa77
protected xdc.services.spec.GrammarParser.DFA78 | dfa78
protected xdc.services.spec.GrammarParser.DFA79 | dfa79
protected xdc.services.spec.GrammarParser.DFA80 | dfa80
protected xdc.services.spec.GrammarParser.DFA82 | dfa82
protected xdc.services.spec.GrammarParser.DFA83 | dfa83
protected xdc.services.spec.GrammarParser.DFA84 | dfa84
protected xdc.services.spec.GrammarParser.DFA85 | dfa85
protected xdc.services.spec.GrammarParser.DFA9 | dfa9
protected xdc.services.spec.GrammarParser.DFA95 | dfa95
protected xdc.services.spec.GrammarParser.DFA96 | dfa96
protected xdc.services.spec.GrammarParser.DFA98 | dfa98
static int | DIV
static int | DOC_BLK
static int | DOC_INL
static int | DOC_PRE
static int | DOC_SUF
static int | DOT
static int | E
static int | ELIPSIS
static int | EOF
static int | EQ
static int | EQEQ
static org.antlr.runtime.BitSet | FOLLOW_100_in_typeSpecG6125
static org.antlr.runtime.BitSet | FOLLOW_101_in_typeSpecG6170
static org.antlr.runtime.BitSet | FOLLOW_102_in_typeSpecG6218
static org.antlr.runtime.BitSet | FOLLOW_103_in_typeSpecG6265
static org.antlr.runtime.BitSet | FOLLOW_104_in_typeSpecG6312
static org.antlr.runtime.BitSet | FOLLOW_105_in_typeSpecG6358
static org.antlr.runtime.BitSet | FOLLOW_106_in_typeSpecG6404
static org.antlr.runtime.BitSet | FOLLOW_107_in_typeSpecG6449
static org.antlr.runtime.BitSet | FOLLOW_108_in_typeSpecG6495
static org.antlr.runtime.BitSet | FOLLOW_109_in_typeSpecG6540
static org.antlr.runtime.BitSet | FOLLOW_110_in_typeSpecG6584
static org.antlr.runtime.BitSet | FOLLOW_111_in_typeSpecG6630
static org.antlr.runtime.BitSet | FOLLOW_112_in_typeSpecG6683
static org.antlr.runtime.BitSet | FOLLOW_113_in_typeSpecG6699
static org.antlr.runtime.BitSet | FOLLOW_114_in_typeSpecG6746
static org.antlr.runtime.BitSet | FOLLOW_115_in_typeSpecG6793
static org.antlr.runtime.BitSet | FOLLOW_116_in_typeSpecG6839
static org.antlr.runtime.BitSet | FOLLOW_117_in_typeSpecG6884
static org.antlr.runtime.BitSet | FOLLOW_118_in_typeSpecG6929
static org.antlr.runtime.BitSet | FOLLOW_119_in_typeSpecG6974
static org.antlr.runtime.BitSet | FOLLOW_120_in_typeSpecG7021
static org.antlr.runtime.BitSet | FOLLOW_121_in_typeSpecG7069
static org.antlr.runtime.BitSet | FOLLOW_122_in_typeSpecG7116
static org.antlr.runtime.BitSet | FOLLOW_123_in_typeSpecG7162
static org.antlr.runtime.BitSet | FOLLOW_124_in_typeSpecG7208
static org.antlr.runtime.BitSet | FOLLOW_125_in_typeSpecG7254
static org.antlr.runtime.BitSet | FOLLOW_126_in_typeSpecG7302
static org.antlr.runtime.BitSet | FOLLOW_127_in_typeSpecG7347
static org.antlr.runtime.BitSet | FOLLOW_128_in_typeSpecG7393
static org.antlr.runtime.BitSet | FOLLOW_129_in_typeSpecG7438
static org.antlr.runtime.BitSet | FOLLOW_130_in_typeSpecG7483
static org.antlr.runtime.BitSet | FOLLOW_131_in_typeSpecG7543
static org.antlr.runtime.BitSet | FOLLOW_132_in_typeSpecG7591
static org.antlr.runtime.BitSet | FOLLOW_133_in_unitImp7715
static org.antlr.runtime.BitSet | FOLLOW_134_in_unitImp7722
static org.antlr.runtime.BitSet | FOLLOW_135_in_unitSpec7951
static org.antlr.runtime.BitSet | FOLLOW_136_in_unitSpec7997
static org.antlr.runtime.BitSet | FOLLOW_58_in_absDeclarator128
static org.antlr.runtime.BitSet | FOLLOW_58_in_constDecl930
static org.antlr.runtime.BitSet | FOLLOW_58_in_typeMods5063
static org.antlr.runtime.BitSet | FOLLOW_59_in_configDecl855
static org.antlr.runtime.BitSet | FOLLOW_60_in_configDecl869
static org.antlr.runtime.BitSet | FOLLOW_61_in_declQuals983
static org.antlr.runtime.BitSet | FOLLOW_62_in_declQuals998
static org.antlr.runtime.BitSet | FOLLOW_63_in_declQuals1013
static org.antlr.runtime.BitSet | FOLLOW_63_in_unitSpec7890
static org.antlr.runtime.BitSet | FOLLOW_64_in_declarator_tail1245
static org.antlr.runtime.BitSet | FOLLOW_64_in_typeSpecG7638
static org.antlr.runtime.BitSet | FOLLOW_65_in_declarator_tail1262
static org.antlr.runtime.BitSet | FOLLOW_66_in_enumDecl1517
static org.antlr.runtime.BitSet | FOLLOW_67_in_exprTrm2199
static org.antlr.runtime.BitSet | FOLLOW_68_in_exprTrm2227
static org.antlr.runtime.BitSet | FOLLOW_69_in_exprTrm2255
static org.antlr.runtime.BitSet | FOLLOW_70_in_exprTrm2283
static org.antlr.runtime.BitSet | FOLLOW_71_in_externDecl3010
static org.antlr.runtime.BitSet | FOLLOW_72_in_fxnHdr3273
static org.antlr.runtime.BitSet | FOLLOW_73_in_methodDecl3727
static org.antlr.runtime.BitSet | FOLLOW_74_in_pkgSpec4234
static org.antlr.runtime.BitSet | FOLLOW_74_in_unitSpec7776
static org.antlr.runtime.BitSet | FOLLOW_75_in_pkgReqList4345
static org.antlr.runtime.BitSet | FOLLOW_76_in_pkgReqList4348
static org.antlr.runtime.BitSet | FOLLOW_76_in_unitSpec8051
static org.antlr.runtime.BitSet | FOLLOW_77_in_pkgUnit4447
static org.antlr.runtime.BitSet | FOLLOW_77_in_unitSpec7905
static org.antlr.runtime.BitSet | FOLLOW_78_in_pkgUnit4453
static org.antlr.runtime.BitSet | FOLLOW_78_in_unitSpec7911
static org.antlr.runtime.BitSet | FOLLOW_79_in_proxyDecl4637
static org.antlr.runtime.BitSet | FOLLOW_80_in_proxyDecl4643
static org.antlr.runtime.BitSet | FOLLOW_80_in_unitSpec7942
static org.antlr.runtime.BitSet | FOLLOW_81_in_structDecl4805
static org.antlr.runtime.BitSet | FOLLOW_81_in_structFieldDecl4901
static org.antlr.runtime.BitSet | FOLLOW_82_in_structDecl4809
static org.antlr.runtime.BitSet | FOLLOW_82_in_structFieldDecl4905
static org.antlr.runtime.BitSet | FOLLOW_83_in_typeDecl5015
static org.antlr.runtime.BitSet | FOLLOW_84_in_typeMods5074
static org.antlr.runtime.BitSet | FOLLOW_85_in_typeMods5085
static org.antlr.runtime.BitSet | FOLLOW_86_in_typeSpecG5237
static org.antlr.runtime.BitSet | FOLLOW_87_in_typeSpecG5284
static org.antlr.runtime.BitSet | FOLLOW_87_in_typeSpecG5333
static org.antlr.runtime.BitSet | FOLLOW_88_in_typeSpecG5331
static org.antlr.runtime.BitSet | FOLLOW_88_in_typeSpecG5415
static org.antlr.runtime.BitSet | FOLLOW_88_in_typeSpecG5500
static org.antlr.runtime.BitSet | FOLLOW_88_in_typeSpecG5543
static org.antlr.runtime.BitSet | FOLLOW_88_in_typeSpecG5629
static org.antlr.runtime.BitSet | FOLLOW_88_in_typeSpecG5709
static org.antlr.runtime.BitSet | FOLLOW_89_in_typeSpecG5369
static org.antlr.runtime.BitSet | FOLLOW_89_in_typeSpecG5417
static org.antlr.runtime.BitSet | FOLLOW_90_in_typeSpecG5452
static org.antlr.runtime.BitSet | FOLLOW_90_in_typeSpecG5545
static org.antlr.runtime.BitSet | FOLLOW_91_in_typeSpecG5582
static org.antlr.runtime.BitSet | FOLLOW_91_in_typeSpecG5631
static org.antlr.runtime.BitSet | FOLLOW_91_in_typeSpecG5667
static org.antlr.runtime.BitSet | FOLLOW_91_in_typeSpecG5669
static org.antlr.runtime.BitSet | FOLLOW_91_in_typeSpecG5711
static org.antlr.runtime.BitSet | FOLLOW_91_in_typeSpecG5713
static org.antlr.runtime.BitSet | FOLLOW_91_in_typeSpecG5833
static org.antlr.runtime.BitSet | FOLLOW_92_in_typeSpecG5742
static org.antlr.runtime.BitSet | FOLLOW_93_in_typeSpecG5788
static org.antlr.runtime.BitSet | FOLLOW_93_in_typeSpecG5835
static org.antlr.runtime.BitSet | FOLLOW_94_in_typeSpecG5873
static org.antlr.runtime.BitSet | FOLLOW_95_in_typeSpecG5918
static org.antlr.runtime.BitSet | FOLLOW_96_in_typeSpecG5970
static org.antlr.runtime.BitSet | FOLLOW_97_in_typeSpecG5986
static org.antlr.runtime.BitSet | FOLLOW_98_in_typeSpecG6033
static org.antlr.runtime.BitSet | FOLLOW_99_in_typeSpecG6079
static org.antlr.runtime.BitSet | FOLLOW_absArgDecl_in_absArgDeclListOpt425
static org.antlr.runtime.BitSet | FOLLOW_absArgDecl_in_absArgDeclListOpt434
static org.antlr.runtime.BitSet | FOLLOW_absArgDeclListOpt_in_absDeclarator_tail351
static org.antlr.runtime.BitSet | FOLLOW_absArgDeclListOpt_in_declarator_tail1329
static org.antlr.runtime.BitSet | FOLLOW_absDeclarator_in_absArgDecl476
static org.antlr.runtime.BitSet | FOLLOW_absDeclarator_in_absDeclarator134
static org.antlr.runtime.BitSet | FOLLOW_absDeclarator_in_absDeclarator164
static org.antlr.runtime.BitSet | FOLLOW_absDeclarator_tail_in_absDeclarator193
static org.antlr.runtime.BitSet | FOLLOW_AMP_in_eBOP2519
static org.antlr.runtime.BitSet | FOLLOW_AMP_in_eUOP2883
static org.antlr.runtime.BitSet | FOLLOW_AMPAMP_in_eBOP2537
static org.antlr.runtime.BitSet | FOLLOW_annotation_in_instDeclSpec3405
static org.antlr.runtime.BitSet | FOLLOW_annotation_in_internDeclSpec3669
static org.antlr.runtime.BitSet | FOLLOW_annotation_in_modDeclSpec4088
static org.antlr.runtime.BitSet | FOLLOW_annotAttr_in_annotation523
static org.antlr.runtime.BitSet | FOLLOW_annotAttr_in_pkgSpec4201
static org.antlr.runtime.BitSet | FOLLOW_annotAttr_in_unitSpec7867
static org.antlr.runtime.BitSet | FOLLOW_argDecl_in_argDeclListOpt638
static org.antlr.runtime.BitSet | FOLLOW_argDecl_in_argDeclListOpt647
static org.antlr.runtime.BitSet | FOLLOW_argDeclListOpt_in_fxnDecl3182
static org.antlr.runtime.BitSet | FOLLOW_ATTR_in_annotAttr566
static org.antlr.runtime.BitSet | FOLLOW_BANG_in_eUOP2901
static org.antlr.runtime.BitSet | FOLLOW_BANGEQ_in_eBOP2555
static org.antlr.runtime.BitSet | FOLLOW_BAR_in_eBOP2573
static org.antlr.runtime.BitSet | FOLLOW_BARBAR_in_eBOP2591
static org.antlr.runtime.BitSet | FOLLOW_basicDeclarator_in_basicDeclarator778
static org.antlr.runtime.BitSet | FOLLOW_basicDeclarator_in_fxnHdr3245
static org.antlr.runtime.BitSet | FOLLOW_CAR_in_eBOP2609
static org.antlr.runtime.BitSet | FOLLOW_CHAR_in_exprTrm2339
static org.antlr.runtime.BitSet | FOLLOW_COLON_in_enumRep1578
static org.antlr.runtime.BitSet | FOLLOW_COLON_in_exprCnd2016
static org.antlr.runtime.BitSet | FOLLOW_COLON_in_exprProp1963
static org.antlr.runtime.BitSet | FOLLOW_COLON_in_unitSpec7999
static org.antlr.runtime.BitSet | FOLLOW_COLON_in_unitSpec8053
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_absArgDeclListOpt430
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_absDeclarator_tail355
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_argDeclListOpt643
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_declarator_tail1333
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_enumValList1645
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_expr1855
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_expr1863
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_expr1905
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_expr1916
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_exprList2467
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_fxnDecl3186
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_metArgDeclListOpt3814
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_pkgReqList4358
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_pkgUnit4471
static org.antlr.runtime.BitSet | FOLLOW_COMMA_in_pkgVers4585
static org.antlr.runtime.BitSet | FOLLOW_configDecl_in_instDecl3327
static org.antlr.runtime.BitSet | FOLLOW_configDecl_in_internDecl3465
static org.antlr.runtime.BitSet | FOLLOW_configDecl_in_modDecl3884
static org.antlr.runtime.BitSet | FOLLOW_constDecl_in_internDecl3485
static org.antlr.runtime.BitSet | FOLLOW_constDecl_in_modDecl3904
static org.antlr.runtime.BitSet | FOLLOW_declarator_in_argDecl689
static org.antlr.runtime.BitSet | FOLLOW_declarator_in_basicDeclarator808
static org.antlr.runtime.BitSet | FOLLOW_declarator_in_configDecl875
static org.antlr.runtime.BitSet | FOLLOW_declarator_in_constDecl936
static org.antlr.runtime.BitSet | FOLLOW_declarator_in_declarator_term1164
static org.antlr.runtime.BitSet | FOLLOW_declarator_in_externDecl3016
static org.antlr.runtime.BitSet | FOLLOW_declarator_in_fieldDecl3118
static org.antlr.runtime.BitSet | FOLLOW_declarator_in_typeDecl5021
static org.antlr.runtime.BitSet | FOLLOW_declarator_tail_in_declarator_tail1298
static org.antlr.runtime.BitSet | FOLLOW_declarator_tail_in_declarator_tail1346
static org.antlr.runtime.BitSet | FOLLOW_declarator_tail_in_declarator1060
static org.antlr.runtime.BitSet | FOLLOW_declarator_term_in_declarator_term1106
static org.antlr.runtime.BitSet | FOLLOW_declarator_term_in_declarator1056
static org.antlr.runtime.BitSet | FOLLOW_declQuals_in_instDeclSpec3409
static org.antlr.runtime.BitSet | FOLLOW_declQuals_in_internDeclSpec3673
static org.antlr.runtime.BitSet | FOLLOW_declQuals_in_modDeclSpec4092
static org.antlr.runtime.BitSet | FOLLOW_DIV_in_eBOP2627
static org.antlr.runtime.BitSet | FOLLOW_DOC_BLK_in_one_doc_block1439
static org.antlr.runtime.BitSet | FOLLOW_doc_block_in_enumValList1717
static org.antlr.runtime.BitSet | FOLLOW_doc_block_in_instDeclSpec3399
static org.antlr.runtime.BitSet | FOLLOW_doc_block_in_internDeclSpec3663
static org.antlr.runtime.BitSet | FOLLOW_doc_block_in_modDeclSpec4082
static org.antlr.runtime.BitSet | FOLLOW_doc_block_in_pkgSpec4303
static org.antlr.runtime.BitSet | FOLLOW_doc_block_in_unitSpec8135
static org.antlr.runtime.BitSet | FOLLOW_DOC_INL_in_doc_inline1479
static org.antlr.runtime.BitSet | FOLLOW_doc_inline_in_enumValList1661
static org.antlr.runtime.BitSet | FOLLOW_doc_inline_in_fieldDeclList3074
static org.antlr.runtime.BitSet | FOLLOW_doc_inline_in_instDeclSpec3417
static org.antlr.runtime.BitSet | FOLLOW_doc_inline_in_internDeclSpec3681
static org.antlr.runtime.BitSet | FOLLOW_doc_inline_in_modDeclSpec4100
static org.antlr.runtime.BitSet | FOLLOW_eBOP_in_exprBin2067
static org.antlr.runtime.BitSet | FOLLOW_ELIPSIS_in_absDeclarator_tail357
static org.antlr.runtime.BitSet | FOLLOW_ELIPSIS_in_declarator_tail1335
static org.antlr.runtime.BitSet | FOLLOW_ELIPSIS_in_fxnDecl3188
static org.antlr.runtime.BitSet | FOLLOW_enumDecl_in_internDecl3505
static org.antlr.runtime.BitSet | FOLLOW_enumDecl_in_modDecl3924
static org.antlr.runtime.BitSet | FOLLOW_enumRep_in_enumDecl1526
static org.antlr.runtime.BitSet | FOLLOW_enumVal_in_enumValList1610
static org.antlr.runtime.BitSet | FOLLOW_enumVal_in_enumValList1680
static org.antlr.runtime.BitSet | FOLLOW_enumValList_in_enumDecl1532
static org.antlr.runtime.BitSet | FOLLOW_EQ_in_argDecl692
static org.antlr.runtime.BitSet | FOLLOW_EQ_in_configDecl878
static org.antlr.runtime.BitSet | FOLLOW_EQ_in_constDecl939
static org.antlr.runtime.BitSet | FOLLOW_EQ_in_eBOP2645
static org.antlr.runtime.BitSet | FOLLOW_EQ_in_enumVal1768
static org.antlr.runtime.BitSet | FOLLOW_EQ_in_externDecl3019
static org.antlr.runtime.BitSet | FOLLOW_EQEQ_in_eBOP2663
static org.antlr.runtime.BitSet | FOLLOW_eUOP_in_exprUry2116
static org.antlr.runtime.BitSet | FOLLOW_expr_in_absDeclarator_tail317
static org.antlr.runtime.BitSet | FOLLOW_expr_in_absDeclarator247
static org.antlr.runtime.BitSet | FOLLOW_expr_in_annotAttr573
static org.antlr.runtime.BitSet | FOLLOW_expr_in_argDecl696
static org.antlr.runtime.BitSet | FOLLOW_expr_in_configDecl882
static org.antlr.runtime.BitSet | FOLLOW_expr_in_constDecl943
static org.antlr.runtime.BitSet | FOLLOW_expr_in_declarator_tail1281
static org.antlr.runtime.BitSet | FOLLOW_expr_in_enumVal1772
static org.antlr.runtime.BitSet | FOLLOW_expr_in_expr1898
static org.antlr.runtime.BitSet | FOLLOW_expr_in_expr1909
static org.antlr.runtime.BitSet | FOLLOW_expr_in_exprList2462
static org.antlr.runtime.BitSet | FOLLOW_expr_in_exprList2471
static org.antlr.runtime.BitSet | FOLLOW_expr_in_exprProp1967
static org.antlr.runtime.BitSet | FOLLOW_expr_in_exprTrm2405
static org.antlr.runtime.BitSet | FOLLOW_exprBin_in_exprBin2071
static org.antlr.runtime.BitSet | FOLLOW_exprBin_in_exprCnd2005
static org.antlr.runtime.BitSet | FOLLOW_exprCnd_in_expr1820
static org.antlr.runtime.BitSet | FOLLOW_exprCnd_in_exprCnd2014
static org.antlr.runtime.BitSet | FOLLOW_exprCnd_in_exprCnd2020
static org.antlr.runtime.BitSet | FOLLOW_exprList_in_exprTrm2169
static org.antlr.runtime.BitSet | FOLLOW_exprProp_in_expr1849
static org.antlr.runtime.BitSet | FOLLOW_exprProp_in_expr1857
static org.antlr.runtime.BitSet | FOLLOW_exprTrm_in_exprUry2122
static org.antlr.runtime.BitSet | FOLLOW_exprUry_in_exprBin2060
static org.antlr.runtime.BitSet | FOLLOW_externDecl_in_internDecl3525
static org.antlr.runtime.BitSet | FOLLOW_externDecl_in_modDecl3944
static org.antlr.runtime.BitSet | FOLLOW_fieldDecl_in_fieldDeclList3070
static org.antlr.runtime.BitSet | FOLLOW_fieldDeclList_in_structDecl4835
static org.antlr.runtime.BitSet | FOLLOW_fieldDeclList_in_structFieldDecl4916
static org.antlr.runtime.BitSet | FOLLOW_fxnDecl_in_instDecl3344
static org.antlr.runtime.BitSet | FOLLOW_fxnDecl_in_internDecl3545
static org.antlr.runtime.BitSet | FOLLOW_fxnDecl_in_modDecl3964
static org.antlr.runtime.BitSet | FOLLOW_fxnHdr_in_fxnDecl3166
static org.antlr.runtime.BitSet | FOLLOW_GT_in_eBOP2681
static org.antlr.runtime.BitSet | FOLLOW_GTEQ_in_eBOP2699
static org.antlr.runtime.BitSet | FOLLOW_GTGT_in_eBOP2717
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_basicDeclarator744
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_declarator_term1134
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_enumDecl1521
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_enumVal1765
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_exprProp1959
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_externDecl3023
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_metArg3849
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_methodDecl3731
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_pkgUnitName4512
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_proxyDecl4641
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_qualName4701
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_qualNameStar4751
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_structDecl4817
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_unitImp7726
static org.antlr.runtime.BitSet | FOLLOW_IDENT_in_unitSpec7926
static org.antlr.runtime.BitSet | FOLLOW_instDecl_in_instDeclSpec3413
static org.antlr.runtime.BitSet | FOLLOW_instDeclSpec_in_unitSpec8025
static org.antlr.runtime.BitSet | FOLLOW_internDecl_in_internDeclSpec3677
static org.antlr.runtime.BitSet | FOLLOW_internDeclSpec_in_unitSpec8089
static org.antlr.runtime.BitSet | FOLLOW_LBRK_in_absDeclarator_tail312
static org.antlr.runtime.BitSet | FOLLOW_LBRK_in_absDeclarator242
static org.antlr.runtime.BitSet | FOLLOW_LBRK_in_declarator_tail1241
static org.antlr.runtime.BitSet | FOLLOW_LBRK_in_expr1893
static org.antlr.runtime.BitSet | FOLLOW_LBRK_in_pkgVers4550
static org.antlr.runtime.BitSet | FOLLOW_LCUR_in_enumDecl1530
static org.antlr.runtime.BitSet | FOLLOW_LCUR_in_expr1846
static org.antlr.runtime.BitSet | FOLLOW_LCUR_in_pkgSpec4258
static org.antlr.runtime.BitSet | FOLLOW_LCUR_in_structDecl4830
static org.antlr.runtime.BitSet | FOLLOW_LCUR_in_structFieldDecl4911
static org.antlr.runtime.BitSet | FOLLOW_LCUR_in_unitSpec7967
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_absDeclarator_tail347
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_absDeclarator160
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_annotAttr569
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_basicDeclarator804
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_declarator_tail1325
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_declarator_term1160
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_exprList2457
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_exprTrm2400
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_fxnDecl3178
static org.antlr.runtime.BitSet | FOLLOW_LPAR_in_methodDecl3734
static org.antlr.runtime.BitSet | FOLLOW_LT_in_eBOP2735
static org.antlr.runtime.BitSet | FOLLOW_LTEQ_in_eBOP2753
static org.antlr.runtime.BitSet | FOLLOW_LTLT_in_eBOP2771
static org.antlr.runtime.BitSet | FOLLOW_metArg_in_metArgDeclListOpt3809
static org.antlr.runtime.BitSet | FOLLOW_metArg_in_metArgDeclListOpt3818
static org.antlr.runtime.BitSet | FOLLOW_metArgDeclListOpt_in_methodDecl3738
static org.antlr.runtime.BitSet | FOLLOW_methodDecl_in_instDecl3361
static org.antlr.runtime.BitSet | FOLLOW_methodDecl_in_internDecl3565
static org.antlr.runtime.BitSet | FOLLOW_methodDecl_in_modDecl3984
static org.antlr.runtime.BitSet | FOLLOW_MIN_in_eBOP2789
static org.antlr.runtime.BitSet | FOLLOW_MIN_in_eUOP2919
static org.antlr.runtime.BitSet | FOLLOW_modDecl_in_modDeclSpec4096
static org.antlr.runtime.BitSet | FOLLOW_modDeclSpec_in_unitSpec7982
static org.antlr.runtime.BitSet | FOLLOW_NUM_in_exprTrm2311
static org.antlr.runtime.BitSet | FOLLOW_NUM_in_pkgVers4567
static org.antlr.runtime.BitSet | FOLLOW_NUM_in_pkgVers4589
static org.antlr.runtime.BitSet | FOLLOW_one_doc_block_in_doc_block1396
static org.antlr.runtime.BitSet | FOLLOW_one_doc_block_in_pkgSpec4180
static org.antlr.runtime.BitSet | FOLLOW_one_doc_block_in_unitSpec7846
static org.antlr.runtime.BitSet | FOLLOW_PATH_in_qualName4709
static org.antlr.runtime.BitSet | FOLLOW_PATH_in_qualNameStar4759
static org.antlr.runtime.BitSet | FOLLOW_PATHSTAR_in_qualNameStar4767
static org.antlr.runtime.BitSet | FOLLOW_PCT_in_eBOP2807
static org.antlr.runtime.BitSet | FOLLOW_pkgReq_in_pkgReqList4354
static org.antlr.runtime.BitSet | FOLLOW_pkgReq_in_pkgReqList4360
static org.antlr.runtime.BitSet | FOLLOW_pkgReqList_in_pkgSpec4159
static org.antlr.runtime.BitSet | FOLLOW_pkgUnit_in_pkgSpec4273
static org.antlr.runtime.BitSet | FOLLOW_pkgUnitName_in_pkgUnit4467
static org.antlr.runtime.BitSet | FOLLOW_pkgUnitName_in_pkgUnit4473
static org.antlr.runtime.BitSet | FOLLOW_pkgVers_in_pkgReq4401
static org.antlr.runtime.BitSet | FOLLOW_pkgVers_in_pkgSpec4246
static org.antlr.runtime.BitSet | FOLLOW_PLUS_in_eBOP2825
static org.antlr.runtime.BitSet | FOLLOW_PLUS_in_eUOP2937
static org.antlr.runtime.BitSet | FOLLOW_proxyDecl_in_internDecl3585
static org.antlr.runtime.BitSet | FOLLOW_proxyDecl_in_modDecl4004
static org.antlr.runtime.BitSet | FOLLOW_qualName_in_exprTrm2164
static org.antlr.runtime.BitSet | FOLLOW_qualName_in_pkgReq4396
static org.antlr.runtime.BitSet | FOLLOW_qualName_in_pkgSpec4239
static org.antlr.runtime.BitSet | FOLLOW_qualName_in_superInt4971
static org.antlr.runtime.BitSet | FOLLOW_qualName_in_typeSpecG5201
static org.antlr.runtime.BitSet | FOLLOW_qualName_in_unitSpec7780
static org.antlr.runtime.BitSet | FOLLOW_qualNameStar_in_unitImp7719
static org.antlr.runtime.BitSet | FOLLOW_QUEST_in_exprCnd2010
static org.antlr.runtime.BitSet | FOLLOW_RBRK_in_absDeclarator_tail321
static org.antlr.runtime.BitSet | FOLLOW_RBRK_in_absDeclarator251
static org.antlr.runtime.BitSet | FOLLOW_RBRK_in_declarator_tail1294
static org.antlr.runtime.BitSet | FOLLOW_RBRK_in_expr1920
static org.antlr.runtime.BitSet | FOLLOW_RBRK_in_pkgVers4603
static org.antlr.runtime.BitSet | FOLLOW_RCUR_in_enumDecl1535
static org.antlr.runtime.BitSet | FOLLOW_RCUR_in_expr1867
static org.antlr.runtime.BitSet | FOLLOW_RCUR_in_pkgSpec4286
static org.antlr.runtime.BitSet | FOLLOW_RCUR_in_structDecl4840
static org.antlr.runtime.BitSet | FOLLOW_RCUR_in_structFieldDecl4921
static org.antlr.runtime.BitSet | FOLLOW_RCUR_in_unitSpec8118
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_absDeclarator_tail364
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_absDeclarator166
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_annotAttr575
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_basicDeclarator810
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_declarator_tail1342
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_declarator_term1166
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_exprList2479
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_exprTrm2409
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_fxnDecl3195
static org.antlr.runtime.BitSet | FOLLOW_RPAR_in_methodDecl3740
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_configDecl886
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_constDecl947
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_enumDecl1538
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_externDecl3029
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_fieldDecl3120
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_fxnDecl3197
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_methodDecl3744
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_pkgReqList4365
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_pkgSpec4289
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_pkgUnit4478
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_proxyDecl4649
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_structDecl4843
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_structDecl4851
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_typeDecl5023
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_unitImp7732
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_unitSpec7783
static org.antlr.runtime.BitSet | FOLLOW_SEMI_in_unitSpec8121
static org.antlr.runtime.BitSet | FOLLOW_STAR_in_absDeclarator125
static org.antlr.runtime.BitSet | FOLLOW_STAR_in_basicDeclarator770
static org.antlr.runtime.BitSet | FOLLOW_STAR_in_declarator_term1098
static org.antlr.runtime.BitSet | FOLLOW_STAR_in_eBOP2843
static org.antlr.runtime.BitSet | FOLLOW_STAR_in_eUOP2955
static org.antlr.runtime.BitSet | FOLLOW_STRING_in_exprTrm2367
static org.antlr.runtime.BitSet | FOLLOW_structDecl_in_internDecl3605
static org.antlr.runtime.BitSet | FOLLOW_structDecl_in_modDecl4024
static org.antlr.runtime.BitSet | FOLLOW_structFieldDecl_in_typeSpecF5153
static org.antlr.runtime.BitSet | FOLLOW_superInt_in_proxyDecl4647
static org.antlr.runtime.BitSet | FOLLOW_superInt_in_unitSpec7946
static org.antlr.runtime.BitSet | FOLLOW_superInt_in_unitSpec7955
static org.antlr.runtime.BitSet | FOLLOW_TILDE_in_eUOP2973
static org.antlr.runtime.BitSet | FOLLOW_typeDecl_in_internDecl3625
static org.antlr.runtime.BitSet | FOLLOW_typeDecl_in_modDecl4044
static org.antlr.runtime.BitSet | FOLLOW_typeMods_in_basicDeclarator774
static org.antlr.runtime.BitSet | FOLLOW_typeMods_in_declarator_term1102
static org.antlr.runtime.BitSet | FOLLOW_typeMods_in_typeSpecC5125
static org.antlr.runtime.BitSet | FOLLOW_typeSpec_in_configDecl871
static org.antlr.runtime.BitSet | FOLLOW_typeSpec_in_constDecl932
static org.antlr.runtime.BitSet | FOLLOW_typeSpec_in_enumRep1580
static org.antlr.runtime.BitSet | FOLLOW_typeSpec_in_fxnHdr3241
static org.antlr.runtime.BitSet | FOLLOW_typeSpecC_in_absArgDecl472
static org.antlr.runtime.BitSet | FOLLOW_typeSpecC_in_argDecl685
static org.antlr.runtime.BitSet | FOLLOW_typeSpecC_in_externDecl3012
static org.antlr.runtime.BitSet | FOLLOW_typeSpecC_in_typeDecl5017
static org.antlr.runtime.BitSet | FOLLOW_typeSpecC_in_typeSpecF5144
static org.antlr.runtime.BitSet | FOLLOW_typeSpecF_in_fieldDecl3114
static org.antlr.runtime.BitSet | FOLLOW_typeSpecG_in_typeSpec5102
static org.antlr.runtime.BitSet | FOLLOW_typeSpecG_in_typeSpecC5127
static org.antlr.runtime.BitSet | FOLLOW_unitImp_in_unitSpec7816
static int | GT
static int | GTEQ
static int | GTGT
static int | H
static int | ID
static int | IDENT
static int | LBRK
static int | LCUR
static int | LPAR
static int | LT
static int | LTEQ
static int | LTLT
static int | LU
static int | MIN
static int | ML_COMMENT
static int | NUM
static int | OPER
static int | PATH
static int | PATHSTAR
static int | PCT
static int | PLUS
static int | QUEST
static int | R
static int | RBRK
static int | RCUR
static int | RPAR
static int | SEMI
static int | SL_COMMENT
static int | STAR
static int | STRING
static int | T__100
static int | T__101
static int | T__102
static int | T__103
static int | T__104
static int | T__105
static int | T__106
static int | T__107
static int | T__108
static int | T__109
static int | T__110
static int | T__111
static int | T__112
static int | T__113
static int | T__114
static int | T__115
static int | T__116
static int | T__117
static int | T__118
static int | T__119
static int | T__120
static int | T__121
static int | T__122
static int | T__123
static int | T__124
static int | T__125
static int | T__126
static int | T__127
static int | T__128
static int | T__129
static int | T__130
static int | T__131
static int | T__132
static int | T__133
static int | T__134
static int | T__135
static int | T__136
static int | T__58
static int | T__59
static int | T__60
static int | T__61
static int | T__62
static int | T__63
static int | T__64
static int | T__65
static int | T__66
static int | T__67
static int | T__68
static int | T__69
static int | T__70
static int | T__71
static int | T__72
static int | T__73
static int | T__74
static int | T__75
static int | T__76
static int | T__77
static int | T__78
static int | T__79
static int | T__80
static int | T__81
static int | T__82
static int | T__83
static int | T__84
static int | T__85
static int | T__86
static int | T__87
static int | T__88
static int | T__89
static int | T__90
static int | T__91
static int | T__92
static int | T__93
static int | T__94
static int | T__95
static int | T__96
static int | T__97
static int | T__98
static int | T__99
static int | TILDE
static java.lang.String[] | tokenNames
static int | WS
Fields inherited from class org.antlr.runtime.Parser
input
Fields inherited from class org.antlr.runtime.BaseRecognizer
DEFAULT_TOKEN_CHANNEL, HIDDEN, INITIAL_FOLLOW_STACK_SIZE, MEMO_RULE_FAILED, MEMO_RULE_UNKNOWN, NEXT_TOKEN_RULE_NAME, state
Constructor Summary
GrammarParser(org.antlr.runtime.TokenStream input)
GrammarParser(org.antlr.runtime.TokenStream input, org.antlr.runtime.RecognizerSharedState state)
Method Summary
Decl | absArgDecl()
java.util.ArrayList<Decl.Arg> | absArgDeclListOpt()
Type | absDeclarator_tail(Type base)
Type | absDeclarator()
java.util.ArrayList<Attr> | annotation()
java.util.ArrayList<Attr> | annotAttr(java.util.ArrayList<Attr> aL)
Decl | argDecl()
java.util.ArrayList<Decl.Arg> | argDeclListOpt()
Type | basicDeclarator()
Decl | configDecl()
Decl | constDecl()
Type | declarator_tail(Type base)
Type | declarator_term()
Type | declarator()
void | declQuals()
java.util.ArrayList<DocComment> | doc_block(java.util.ArrayList<DocComment> dL)
java.util.ArrayList<DocComment> | doc_inline(java.util.ArrayList<DocComment> dL)
Atom | eBOP()
Decl | enumDecl()
Type.Spec | enumRep()
Decl | enumVal()
void | enumValList(java.util.ArrayList<Decl.EnumVal> evL)
Atom | eUOP()
Expr | expr()
Expr | exprBin()
Expr | exprCnd()
java.util.List<Expr> | exprList()
void | exprProp(java.util.List<Atom> iL, java.util.List<Expr> eL)
Expr | exprTrm()
Expr | exprUry()
Decl | externDecl()
Decl | fieldDecl()
void | fieldDeclList(java.util.List<Decl.Field> fL)
Decl | fxnDecl()
Type | fxnHdr()
java.lang.String | getGrammarFileName()
java.lang.String[] | getTokenNames()
Decl | instDecl()
Decl | instDeclSpec()
Decl | internDecl()
Decl | internDeclSpec()
Decl.Arg | metArg()
java.util.ArrayList<Decl.Arg> | metArgDeclListOpt()
Decl | methodDecl()
Decl | modDecl()
Decl | modDeclSpec()
java.util.ArrayList<DocComment> | one_doc_block(java.util.ArrayList<DocComment> dL)
void | pkgReq(java.util.List<Atom> rlist, boolean iFlg)
void | pkgReqList(java.util.List<Atom> rL)
Pkg | pkgSpec(java.lang.String pkgFile)
void | pkgUnit(java.util.List<Atom> mlist, java.util.List<Atom> ilist)
void | pkgUnitName(java.util.List<Atom> l)
java.lang.String | pkgVers()
Decl | proxyDecl()
Atom | qualName()
Atom | qualNameStar()
void | reportError(org.antlr.runtime.RecognitionException e)
void | reportError(java.lang.String message)
void | reportError(java.lang.String message, int line) Report an error at the given line.
Decl | structDecl()
Decl | structFieldDecl()
Sup | superInt()
Decl | typeDecl()
java.util.EnumSet<Type.Modifier> | typeMods()
void | typeSpec()
void | typeSpecC()
void | typeSpecF()
void | typeSpecG(java.util.EnumSet<Type.Modifier> mods)
void | unitImp(java.util.List<Import> iL)
Unit | unitSpec(java.lang.String pname)
Methods inherited from class org.antlr.runtime.Parser
getCurrentInputSymbol, getMissingSymbol, getSourceName, getTokenStream, reset, setTokenStream, traceIn, traceOut
Methods inherited from class org.antlr.runtime.BaseRecognizer
alreadyParsedRule, beginResync, combineFollows, computeContextSensitiveRuleFOLLOW, computeErrorRecoverySet, consumeUntil, consumeUntil, displayRecognitionError, emitErrorMessage, endResync, getBacktrackingLevel, getErrorHeader, getErrorMessage, getNumberOfSyntaxErrors, getRuleInvocationStack, getRuleInvocationStack, getRuleMemoization, getRuleMemoizationCacheSize, getTokenErrorDisplay, match, matchAny, memoize, mismatch, mismatchIsMissingToken, mismatchIsUnwantedToken, pushFollow, recover, recoverFromMismatchedSet, recoverFromMismatchedToken, toStrings, traceIn, traceOut
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

tokenNames

public static final java.lang.String[] tokenNames

COMMA

public static final int COMMA
See Also:
Constant Field Values

LPAR

public static final int LPAR
See Also:
Constant Field Values

BANG

public static final int BANG
See Also:
Constant Field Values

T__109

public static final int T__109
See Also:
Constant Field Values

T__122

public static final int T__122
See Also:
Constant Field Values

T__73

public static final int T__73
See Also:
Constant Field Values

T__115

public static final int T__115
See Also:
Constant Field Values

T__123

public static final int T__123
See Also:
Constant Field Values

CAR

public static final int CAR
See Also:
Constant Field Values

T__72

public static final int T__72
See Also:
Constant Field Values

BANGEQ

public static final int BANGEQ
See Also:
Constant Field Values

TILDE

public static final int TILDE
See Also:
Constant Field Values

T__70

public static final int T__70
See Also:
Constant Field Values

DOT

public static final int DOT
See Also:
Constant Field Values

D

public static final int D
See Also:
Constant Field Values

R

public static final int R
See Also:
Constant Field Values

T__128

public static final int T__128
See Also:
Constant Field Values

ATTR

public static final int ATTR
See Also:
Constant Field Values

DOC_INL

public static final int DOC_INL
See Also:
Constant Field Values

T__96

public static final int T__96
See Also:
Constant Field Values

AMP

public static final int AMP
See Also:
Constant Field Values

T__119

public static final int T__119
See Also:
Constant Field Values

T__108

public static final int T__108
See Also:
Constant Field Values

T__112

public static final int T__112
See Also:
Constant Field Values

PLUS

public static final int PLUS
See Also:
Constant Field Values

T__118

public static final int T__118
See Also:
Constant Field Values

T__135

public static final int T__135
See Also:
Constant Field Values

RBRK

public static final int RBRK
See Also:
Constant Field Values

T__113

public static final int T__113
See Also:
Constant Field Values

LTLT

public static final int LTLT
See Also:
Constant Field Values

IDENT

public static final int IDENT
See Also:
Constant Field Values

T__89

public static final int T__89
See Also:
Constant Field Values

WS

public static final int WS
See Also:
Constant Field Values

RCUR

public static final int RCUR
See Also:
Constant Field Values

CHAR

public static final int CHAR
See Also:
Constant Field Values

STRING

public static final int STRING
See Also:
Constant Field Values

T__79

public static final int T__79
See Also:
Constant Field Values

EQ

public static final int EQ
See Also:
Constant Field Values

T__64

public static final int T__64
See Also:
Constant Field Values

DOC_BLK

public static final int DOC_BLK
See Also:
Constant Field Values

LT

public static final int LT
See Also:
Constant Field Values

T__66

public static final int T__66
See Also:
Constant Field Values

T__130

public static final int T__130
See Also:
Constant Field Values

T__92

public static final int T__92
See Also:
Constant Field Values

T__88

public static final int T__88
See Also:
Constant Field Values

DOC_SUF

public static final int DOC_SUF
See Also:
Constant Field Values

EQEQ

public static final int EQEQ
See Also:
Constant Field Values

ELIPSIS

public static final int ELIPSIS
See Also:
Constant Field Values

SEMI

public static final int SEMI
See Also:
Constant Field Values

T__90

public static final int T__90
See Also:
Constant Field Values

QUEST

public static final int QUEST
See Also:
Constant Field Values

T__63

public static final int T__63
See Also:
Constant Field Values

T__114

public static final int T__114
See Also:
Constant Field Values

T__110

public static final int T__110
See Also:
Constant Field Values

T__125

public static final int T__125
See Also:
Constant Field Values

T__91

public static final int T__91
See Also:
Constant Field Values

LBRK

public static final int LBRK
See Also:
Constant Field Values

LTEQ

public static final int LTEQ
See Also:
Constant Field Values

PATHSTAR

public static final int PATHSTAR
See Also:
Constant Field Values

T__85

public static final int T__85
See Also:
Constant Field Values

T__132

public static final int T__132
See Also:
Constant Field Values

DOC_PRE

public static final int DOC_PRE
See Also:
Constant Field Values

COLON

public static final int COLON
See Also:
Constant Field Values

DIV

public static final int DIV
See Also:
Constant Field Values

T__124

public static final int T__124
See Also:
Constant Field Values

T__131

public static final int T__131
See Also:
Constant Field Values

T__60

public static final int T__60
See Also:
Constant Field Values

T__93

public static final int T__93
See Also:
Constant Field Values

PATH

public static final int PATH
See Also:
Constant Field Values

T__86

public static final int T__86
See Also:
Constant Field Values

T__94

public static final int T__94
See Also:
Constant Field Values

T__80

public static final int T__80
See Also:
Constant Field Values

T__100

public static final int T__100
See Also:
Constant Field Values

T__95

public static final int T__95
See Also:
Constant Field Values

T__69

public static final int T__69
See Also:
Constant Field Values

T__126

public static final int T__126
See Also:
Constant Field Values

T__65

public static final int T__65
See Also:
Constant Field Values

T__101

public static final int T__101
See Also:
Constant Field Values

T__104

public static final int T__104
See Also:
Constant Field Values

T__107

public static final int T__107
See Also:
Constant Field Values

T__67

public static final int T__67
See Also:
Constant Field Values

AMPAMP

public static final int AMPAMP
See Also:
Constant Field Values

T__87

public static final int T__87
See Also:
Constant Field Values

T__106

public static final int T__106
See Also:
Constant Field Values

T__74

public static final int T__74
See Also:
Constant Field Values

PCT

public static final int PCT
See Also:
Constant Field Values

T__68

public static final int T__68
See Also:
Constant Field Values

T__62

public static final int T__62
See Also:
Constant Field Values

T__127

public static final int T__127
See Also:
Constant Field Values

T__61

public static final int T__61
See Also:
Constant Field Values

T__133

public static final int T__133
See Also:
Constant Field Values

T__59

public static final int T__59
See Also:
Constant Field Values

ML_COMMENT

public static final int ML_COMMENT
See Also:
Constant Field Values

SL_COMMENT

public static final int SL_COMMENT
See Also:
Constant Field Values

T__120

public static final int T__120
See Also:
Constant Field Values

T__98

public static final int T__98
See Also:
Constant Field Values

ID

public static final int ID
See Also:
Constant Field Values

H

public static final int H
See Also:
Constant Field Values

T__78

public static final int T__78
See Also:
Constant Field Values

T__117

public static final int T__117
See Also:
Constant Field Values

RPAR

public static final int RPAR
See Also:
Constant Field Values

OPER

public static final int OPER
See Also:
Constant Field Values

T__58

public static final int T__58
See Also:
Constant Field Values

GT

public static final int GT
See Also:
Constant Field Values

MIN

public static final int MIN
See Also:
Constant Field Values

T__99

public static final int T__99
See Also:
Constant Field Values

GTEQ

public static final int GTEQ
See Also:
Constant Field Values

T__77

public static final int T__77
See Also:
Constant Field Values

T__129

public static final int T__129
See Also:
Constant Field Values

BARBAR

public static final int BARBAR
See Also:
Constant Field Values

T__103

public static final int T__103
See Also:
Constant Field Values

T__121

public static final int T__121
See Also:
Constant Field Values

T__84

public static final int T__84
See Also:
Constant Field Values

GTGT

public static final int GTGT
See Also:
Constant Field Values

T__97

public static final int T__97
See Also:
Constant Field Values

T__136

public static final int T__136
See Also:
Constant Field Values

T__75

public static final int T__75
See Also:
Constant Field Values

T__105

public static final int T__105
See Also:
Constant Field Values

T__111

public static final int T__111
See Also:
Constant Field Values

BAR

public static final int BAR
See Also:
Constant Field Values

EOF

public static final int EOF
See Also:
Constant Field Values

T__116

public static final int T__116
See Also:
Constant Field Values

NUM

public static final int NUM
See Also:
Constant Field Values

T__76

public static final int T__76
See Also:
Constant Field Values

T__82

public static final int T__82
See Also:
Constant Field Values

T__81

public static final int T__81
See Also:
Constant Field Values

LU

public static final int LU
See Also:
Constant Field Values

T__134

public static final int T__134
See Also:
Constant Field Values

STAR

public static final int STAR
See Also:
Constant Field Values

T__83

public static final int T__83
See Also:
Constant Field Values

T__71

public static final int T__71
See Also:
Constant Field Values

LCUR

public static final int LCUR
See Also:
Constant Field Values

E

public static final int E
See Also:
Constant Field Values

T__102

public static final int T__102
See Also:
Constant Field Values

dfa3

protected xdc.services.spec.GrammarParser.DFA3 dfa3

dfa6

protected xdc.services.spec.GrammarParser.DFA6 dfa6

dfa10

protected xdc.services.spec.GrammarParser.DFA10 dfa10

dfa9

protected xdc.services.spec.GrammarParser.DFA9 dfa9

dfa11

protected xdc.services.spec.GrammarParser.DFA11 dfa11

dfa12

protected xdc.services.spec.GrammarParser.DFA12 dfa12

dfa14

protected xdc.services.spec.GrammarParser.DFA14 dfa14

dfa13

protected xdc.services.spec.GrammarParser.DFA13 dfa13

dfa20

protected xdc.services.spec.GrammarParser.DFA20 dfa20

dfa21

protected xdc.services.spec.GrammarParser.DFA21 dfa21

dfa22

protected xdc.services.spec.GrammarParser.DFA22 dfa22

dfa24

protected xdc.services.spec.GrammarParser.DFA24 dfa24

dfa27

protected xdc.services.spec.GrammarParser.DFA27 dfa27

dfa28

protected xdc.services.spec.GrammarParser.DFA28 dfa28

dfa30

protected xdc.services.spec.GrammarParser.DFA30 dfa30

dfa39

protected xdc.services.spec.GrammarParser.DFA39 dfa39

dfa36

protected xdc.services.spec.GrammarParser.DFA36 dfa36

dfa37

protected xdc.services.spec.GrammarParser.DFA37 dfa37

dfa41

protected xdc.services.spec.GrammarParser.DFA41 dfa41

dfa42

protected xdc.services.spec.GrammarParser.DFA42 dfa42

dfa45

protected xdc.services.spec.GrammarParser.DFA45 dfa45

dfa43

protected xdc.services.spec.GrammarParser.DFA43 dfa43

dfa44

protected xdc.services.spec.GrammarParser.DFA44 dfa44

dfa47

protected xdc.services.spec.GrammarParser.DFA47 dfa47

dfa48

protected xdc.services.spec.GrammarParser.DFA48 dfa48

dfa51

protected xdc.services.spec.GrammarParser.DFA51 dfa51

dfa53

protected xdc.services.spec.GrammarParser.DFA53 dfa53

dfa54

protected xdc.services.spec.GrammarParser.DFA54 dfa54

dfa55

protected xdc.services.spec.GrammarParser.DFA55 dfa55

dfa56

protected xdc.services.spec.GrammarParser.DFA56 dfa56

dfa57

protected xdc.services.spec.GrammarParser.DFA57 dfa57

dfa61

protected xdc.services.spec.GrammarParser.DFA61 dfa61

dfa62

protected xdc.services.spec.GrammarParser.DFA62 dfa62

dfa80

protected xdc.services.spec.GrammarParser.DFA80 dfa80

dfa79

protected xdc.services.spec.GrammarParser.DFA79 dfa79

dfa77

protected xdc.services.spec.GrammarParser.DFA77 dfa77

dfa78

protected xdc.services.spec.GrammarParser.DFA78 dfa78

dfa82

protected xdc.services.spec.GrammarParser.DFA82 dfa82

dfa83

protected xdc.services.spec.GrammarParser.DFA83 dfa83

dfa84

protected xdc.services.spec.GrammarParser.DFA84 dfa84

dfa85

protected xdc.services.spec.GrammarParser.DFA85 dfa85

dfa95

protected xdc.services.spec.GrammarParser.DFA95 dfa95

dfa96

protected xdc.services.spec.GrammarParser.DFA96 dfa96

dfa98

protected xdc.services.spec.GrammarParser.DFA98 dfa98

FOLLOW_STAR_in_absDeclarator125

public static final org.antlr.runtime.BitSet FOLLOW_STAR_in_absDeclarator125

FOLLOW_58_in_absDeclarator128

public static final org.antlr.runtime.BitSet FOLLOW_58_in_absDeclarator128

FOLLOW_absDeclarator_in_absDeclarator134

public static final org.antlr.runtime.BitSet FOLLOW_absDeclarator_in_absDeclarator134

FOLLOW_LPAR_in_absDeclarator160

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_absDeclarator160

FOLLOW_absDeclarator_in_absDeclarator164

public static final org.antlr.runtime.BitSet FOLLOW_absDeclarator_in_absDeclarator164

FOLLOW_RPAR_in_absDeclarator166

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_absDeclarator166

FOLLOW_absDeclarator_tail_in_absDeclarator193

public static final org.antlr.runtime.BitSet FOLLOW_absDeclarator_tail_in_absDeclarator193

FOLLOW_LBRK_in_absDeclarator242

public static final org.antlr.runtime.BitSet FOLLOW_LBRK_in_absDeclarator242

FOLLOW_expr_in_absDeclarator247

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_absDeclarator247

FOLLOW_RBRK_in_absDeclarator251

public static final org.antlr.runtime.BitSet FOLLOW_RBRK_in_absDeclarator251

FOLLOW_LBRK_in_absDeclarator_tail312

public static final org.antlr.runtime.BitSet FOLLOW_LBRK_in_absDeclarator_tail312

FOLLOW_expr_in_absDeclarator_tail317

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_absDeclarator_tail317

FOLLOW_RBRK_in_absDeclarator_tail321

public static final org.antlr.runtime.BitSet FOLLOW_RBRK_in_absDeclarator_tail321

FOLLOW_LPAR_in_absDeclarator_tail347

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_absDeclarator_tail347

FOLLOW_absArgDeclListOpt_in_absDeclarator_tail351

public static final org.antlr.runtime.BitSet FOLLOW_absArgDeclListOpt_in_absDeclarator_tail351

FOLLOW_COMMA_in_absDeclarator_tail355

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_absDeclarator_tail355

FOLLOW_ELIPSIS_in_absDeclarator_tail357

public static final org.antlr.runtime.BitSet FOLLOW_ELIPSIS_in_absDeclarator_tail357

FOLLOW_RPAR_in_absDeclarator_tail364

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_absDeclarator_tail364

FOLLOW_absArgDecl_in_absArgDeclListOpt425

public static final org.antlr.runtime.BitSet FOLLOW_absArgDecl_in_absArgDeclListOpt425

FOLLOW_COMMA_in_absArgDeclListOpt430

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_absArgDeclListOpt430

FOLLOW_absArgDecl_in_absArgDeclListOpt434

public static final org.antlr.runtime.BitSet FOLLOW_absArgDecl_in_absArgDeclListOpt434

FOLLOW_typeSpecC_in_absArgDecl472

public static final org.antlr.runtime.BitSet FOLLOW_typeSpecC_in_absArgDecl472

FOLLOW_absDeclarator_in_absArgDecl476

public static final org.antlr.runtime.BitSet FOLLOW_absDeclarator_in_absArgDecl476

FOLLOW_annotAttr_in_annotation523

public static final org.antlr.runtime.BitSet FOLLOW_annotAttr_in_annotation523

FOLLOW_ATTR_in_annotAttr566

public static final org.antlr.runtime.BitSet FOLLOW_ATTR_in_annotAttr566

FOLLOW_LPAR_in_annotAttr569

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_annotAttr569

FOLLOW_expr_in_annotAttr573

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_annotAttr573

FOLLOW_RPAR_in_annotAttr575

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_annotAttr575

FOLLOW_argDecl_in_argDeclListOpt638

public static final org.antlr.runtime.BitSet FOLLOW_argDecl_in_argDeclListOpt638

FOLLOW_COMMA_in_argDeclListOpt643

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_argDeclListOpt643

FOLLOW_argDecl_in_argDeclListOpt647

public static final org.antlr.runtime.BitSet FOLLOW_argDecl_in_argDeclListOpt647

FOLLOW_typeSpecC_in_argDecl685

public static final org.antlr.runtime.BitSet FOLLOW_typeSpecC_in_argDecl685

FOLLOW_declarator_in_argDecl689

public static final org.antlr.runtime.BitSet FOLLOW_declarator_in_argDecl689

FOLLOW_EQ_in_argDecl692

public static final org.antlr.runtime.BitSet FOLLOW_EQ_in_argDecl692

FOLLOW_expr_in_argDecl696

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_argDecl696

FOLLOW_IDENT_in_basicDeclarator744

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_basicDeclarator744

FOLLOW_STAR_in_basicDeclarator770

public static final org.antlr.runtime.BitSet FOLLOW_STAR_in_basicDeclarator770

FOLLOW_typeMods_in_basicDeclarator774

public static final org.antlr.runtime.BitSet FOLLOW_typeMods_in_basicDeclarator774

FOLLOW_basicDeclarator_in_basicDeclarator778

public static final org.antlr.runtime.BitSet FOLLOW_basicDeclarator_in_basicDeclarator778

FOLLOW_LPAR_in_basicDeclarator804

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_basicDeclarator804

FOLLOW_declarator_in_basicDeclarator808

public static final org.antlr.runtime.BitSet FOLLOW_declarator_in_basicDeclarator808

FOLLOW_RPAR_in_basicDeclarator810

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_basicDeclarator810

FOLLOW_59_in_configDecl855

public static final org.antlr.runtime.BitSet FOLLOW_59_in_configDecl855

FOLLOW_60_in_configDecl869

public static final org.antlr.runtime.BitSet FOLLOW_60_in_configDecl869

FOLLOW_typeSpec_in_configDecl871

public static final org.antlr.runtime.BitSet FOLLOW_typeSpec_in_configDecl871

FOLLOW_declarator_in_configDecl875

public static final org.antlr.runtime.BitSet FOLLOW_declarator_in_configDecl875

FOLLOW_EQ_in_configDecl878

public static final org.antlr.runtime.BitSet FOLLOW_EQ_in_configDecl878

FOLLOW_expr_in_configDecl882

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_configDecl882

FOLLOW_SEMI_in_configDecl886

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_configDecl886

FOLLOW_58_in_constDecl930

public static final org.antlr.runtime.BitSet FOLLOW_58_in_constDecl930

FOLLOW_typeSpec_in_constDecl932

public static final org.antlr.runtime.BitSet FOLLOW_typeSpec_in_constDecl932

FOLLOW_declarator_in_constDecl936

public static final org.antlr.runtime.BitSet FOLLOW_declarator_in_constDecl936

FOLLOW_EQ_in_constDecl939

public static final org.antlr.runtime.BitSet FOLLOW_EQ_in_constDecl939

FOLLOW_expr_in_constDecl943

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_constDecl943

FOLLOW_SEMI_in_constDecl947

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_constDecl947

FOLLOW_61_in_declQuals983

public static final org.antlr.runtime.BitSet FOLLOW_61_in_declQuals983

FOLLOW_62_in_declQuals998

public static final org.antlr.runtime.BitSet FOLLOW_62_in_declQuals998

FOLLOW_63_in_declQuals1013

public static final org.antlr.runtime.BitSet FOLLOW_63_in_declQuals1013

FOLLOW_declarator_term_in_declarator1056

public static final org.antlr.runtime.BitSet FOLLOW_declarator_term_in_declarator1056

FOLLOW_declarator_tail_in_declarator1060

public static final org.antlr.runtime.BitSet FOLLOW_declarator_tail_in_declarator1060

FOLLOW_STAR_in_declarator_term1098

public static final org.antlr.runtime.BitSet FOLLOW_STAR_in_declarator_term1098

FOLLOW_typeMods_in_declarator_term1102

public static final org.antlr.runtime.BitSet FOLLOW_typeMods_in_declarator_term1102

FOLLOW_declarator_term_in_declarator_term1106

public static final org.antlr.runtime.BitSet FOLLOW_declarator_term_in_declarator_term1106

FOLLOW_IDENT_in_declarator_term1134

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_declarator_term1134

FOLLOW_LPAR_in_declarator_term1160

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_declarator_term1160

FOLLOW_declarator_in_declarator_term1164

public static final org.antlr.runtime.BitSet FOLLOW_declarator_in_declarator_term1164

FOLLOW_RPAR_in_declarator_term1166

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_declarator_term1166

FOLLOW_LBRK_in_declarator_tail1241

public static final org.antlr.runtime.BitSet FOLLOW_LBRK_in_declarator_tail1241

FOLLOW_64_in_declarator_tail1245

public static final org.antlr.runtime.BitSet FOLLOW_64_in_declarator_tail1245

FOLLOW_65_in_declarator_tail1262

public static final org.antlr.runtime.BitSet FOLLOW_65_in_declarator_tail1262

FOLLOW_expr_in_declarator_tail1281

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_declarator_tail1281

FOLLOW_RBRK_in_declarator_tail1294

public static final org.antlr.runtime.BitSet FOLLOW_RBRK_in_declarator_tail1294

FOLLOW_declarator_tail_in_declarator_tail1298

public static final org.antlr.runtime.BitSet FOLLOW_declarator_tail_in_declarator_tail1298

FOLLOW_LPAR_in_declarator_tail1325

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_declarator_tail1325

FOLLOW_absArgDeclListOpt_in_declarator_tail1329

public static final org.antlr.runtime.BitSet FOLLOW_absArgDeclListOpt_in_declarator_tail1329

FOLLOW_COMMA_in_declarator_tail1333

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_declarator_tail1333

FOLLOW_ELIPSIS_in_declarator_tail1335

public static final org.antlr.runtime.BitSet FOLLOW_ELIPSIS_in_declarator_tail1335

FOLLOW_RPAR_in_declarator_tail1342

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_declarator_tail1342

FOLLOW_declarator_tail_in_declarator_tail1346

public static final org.antlr.runtime.BitSet FOLLOW_declarator_tail_in_declarator_tail1346

FOLLOW_one_doc_block_in_doc_block1396

public static final org.antlr.runtime.BitSet FOLLOW_one_doc_block_in_doc_block1396

FOLLOW_DOC_BLK_in_one_doc_block1439

public static final org.antlr.runtime.BitSet FOLLOW_DOC_BLK_in_one_doc_block1439

FOLLOW_DOC_INL_in_doc_inline1479

public static final org.antlr.runtime.BitSet FOLLOW_DOC_INL_in_doc_inline1479

FOLLOW_66_in_enumDecl1517

public static final org.antlr.runtime.BitSet FOLLOW_66_in_enumDecl1517

FOLLOW_IDENT_in_enumDecl1521

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_enumDecl1521

FOLLOW_enumRep_in_enumDecl1526

public static final org.antlr.runtime.BitSet FOLLOW_enumRep_in_enumDecl1526

FOLLOW_LCUR_in_enumDecl1530

public static final org.antlr.runtime.BitSet FOLLOW_LCUR_in_enumDecl1530

FOLLOW_enumValList_in_enumDecl1532

public static final org.antlr.runtime.BitSet FOLLOW_enumValList_in_enumDecl1532

FOLLOW_RCUR_in_enumDecl1535

public static final org.antlr.runtime.BitSet FOLLOW_RCUR_in_enumDecl1535

FOLLOW_SEMI_in_enumDecl1538

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_enumDecl1538

FOLLOW_COLON_in_enumRep1578

public static final org.antlr.runtime.BitSet FOLLOW_COLON_in_enumRep1578

FOLLOW_typeSpec_in_enumRep1580

public static final org.antlr.runtime.BitSet FOLLOW_typeSpec_in_enumRep1580

FOLLOW_enumVal_in_enumValList1610

public static final org.antlr.runtime.BitSet FOLLOW_enumVal_in_enumValList1610

FOLLOW_COMMA_in_enumValList1645

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_enumValList1645

FOLLOW_doc_inline_in_enumValList1661

public static final org.antlr.runtime.BitSet FOLLOW_doc_inline_in_enumValList1661

FOLLOW_enumVal_in_enumValList1680

public static final org.antlr.runtime.BitSet FOLLOW_enumVal_in_enumValList1680

FOLLOW_doc_block_in_enumValList1717

public static final org.antlr.runtime.BitSet FOLLOW_doc_block_in_enumValList1717

FOLLOW_IDENT_in_enumVal1765

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_enumVal1765

FOLLOW_EQ_in_enumVal1768

public static final org.antlr.runtime.BitSet FOLLOW_EQ_in_enumVal1768

FOLLOW_expr_in_enumVal1772

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_enumVal1772

FOLLOW_exprCnd_in_expr1820

public static final org.antlr.runtime.BitSet FOLLOW_exprCnd_in_expr1820

FOLLOW_LCUR_in_expr1846

public static final org.antlr.runtime.BitSet FOLLOW_LCUR_in_expr1846

FOLLOW_exprProp_in_expr1849

public static final org.antlr.runtime.BitSet FOLLOW_exprProp_in_expr1849

FOLLOW_COMMA_in_expr1855

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_expr1855

FOLLOW_exprProp_in_expr1857

public static final org.antlr.runtime.BitSet FOLLOW_exprProp_in_expr1857

FOLLOW_COMMA_in_expr1863

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_expr1863

FOLLOW_RCUR_in_expr1867

public static final org.antlr.runtime.BitSet FOLLOW_RCUR_in_expr1867

FOLLOW_LBRK_in_expr1893

public static final org.antlr.runtime.BitSet FOLLOW_LBRK_in_expr1893

FOLLOW_expr_in_expr1898

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_expr1898

FOLLOW_COMMA_in_expr1905

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_expr1905

FOLLOW_expr_in_expr1909

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_expr1909

FOLLOW_COMMA_in_expr1916

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_expr1916

FOLLOW_RBRK_in_expr1920

public static final org.antlr.runtime.BitSet FOLLOW_RBRK_in_expr1920

FOLLOW_IDENT_in_exprProp1959

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_exprProp1959

FOLLOW_COLON_in_exprProp1963

public static final org.antlr.runtime.BitSet FOLLOW_COLON_in_exprProp1963

FOLLOW_expr_in_exprProp1967

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_exprProp1967

FOLLOW_exprBin_in_exprCnd2005

public static final org.antlr.runtime.BitSet FOLLOW_exprBin_in_exprCnd2005

FOLLOW_QUEST_in_exprCnd2010

public static final org.antlr.runtime.BitSet FOLLOW_QUEST_in_exprCnd2010

FOLLOW_exprCnd_in_exprCnd2014

public static final org.antlr.runtime.BitSet FOLLOW_exprCnd_in_exprCnd2014

FOLLOW_COLON_in_exprCnd2016

public static final org.antlr.runtime.BitSet FOLLOW_COLON_in_exprCnd2016

FOLLOW_exprCnd_in_exprCnd2020

public static final org.antlr.runtime.BitSet FOLLOW_exprCnd_in_exprCnd2020

FOLLOW_exprUry_in_exprBin2060

public static final org.antlr.runtime.BitSet FOLLOW_exprUry_in_exprBin2060

FOLLOW_eBOP_in_exprBin2067

public static final org.antlr.runtime.BitSet FOLLOW_eBOP_in_exprBin2067

FOLLOW_exprBin_in_exprBin2071

public static final org.antlr.runtime.BitSet FOLLOW_exprBin_in_exprBin2071

FOLLOW_eUOP_in_exprUry2116

public static final org.antlr.runtime.BitSet FOLLOW_eUOP_in_exprUry2116

FOLLOW_exprTrm_in_exprUry2122

public static final org.antlr.runtime.BitSet FOLLOW_exprTrm_in_exprUry2122

FOLLOW_qualName_in_exprTrm2164

public static final org.antlr.runtime.BitSet FOLLOW_qualName_in_exprTrm2164

FOLLOW_exprList_in_exprTrm2169

public static final org.antlr.runtime.BitSet FOLLOW_exprList_in_exprTrm2169

FOLLOW_67_in_exprTrm2199

public static final org.antlr.runtime.BitSet FOLLOW_67_in_exprTrm2199

FOLLOW_68_in_exprTrm2227

public static final org.antlr.runtime.BitSet FOLLOW_68_in_exprTrm2227

FOLLOW_69_in_exprTrm2255

public static final org.antlr.runtime.BitSet FOLLOW_69_in_exprTrm2255

FOLLOW_70_in_exprTrm2283

public static final org.antlr.runtime.BitSet FOLLOW_70_in_exprTrm2283

FOLLOW_NUM_in_exprTrm2311

public static final org.antlr.runtime.BitSet FOLLOW_NUM_in_exprTrm2311

FOLLOW_CHAR_in_exprTrm2339

public static final org.antlr.runtime.BitSet FOLLOW_CHAR_in_exprTrm2339

FOLLOW_STRING_in_exprTrm2367

public static final org.antlr.runtime.BitSet FOLLOW_STRING_in_exprTrm2367

FOLLOW_LPAR_in_exprTrm2400

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_exprTrm2400

FOLLOW_expr_in_exprTrm2405

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_exprTrm2405

FOLLOW_RPAR_in_exprTrm2409

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_exprTrm2409

FOLLOW_LPAR_in_exprList2457

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_exprList2457

FOLLOW_expr_in_exprList2462

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_exprList2462

FOLLOW_COMMA_in_exprList2467

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_exprList2467

FOLLOW_expr_in_exprList2471

public static final org.antlr.runtime.BitSet FOLLOW_expr_in_exprList2471

FOLLOW_RPAR_in_exprList2479

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_exprList2479

FOLLOW_AMP_in_eBOP2519

public static final org.antlr.runtime.BitSet FOLLOW_AMP_in_eBOP2519

FOLLOW_AMPAMP_in_eBOP2537

public static final org.antlr.runtime.BitSet FOLLOW_AMPAMP_in_eBOP2537

FOLLOW_BANGEQ_in_eBOP2555

public static final org.antlr.runtime.BitSet FOLLOW_BANGEQ_in_eBOP2555

FOLLOW_BAR_in_eBOP2573

public static final org.antlr.runtime.BitSet FOLLOW_BAR_in_eBOP2573

FOLLOW_BARBAR_in_eBOP2591

public static final org.antlr.runtime.BitSet FOLLOW_BARBAR_in_eBOP2591

FOLLOW_CAR_in_eBOP2609

public static final org.antlr.runtime.BitSet FOLLOW_CAR_in_eBOP2609

FOLLOW_DIV_in_eBOP2627

public static final org.antlr.runtime.BitSet FOLLOW_DIV_in_eBOP2627

FOLLOW_EQ_in_eBOP2645

public static final org.antlr.runtime.BitSet FOLLOW_EQ_in_eBOP2645

FOLLOW_EQEQ_in_eBOP2663

public static final org.antlr.runtime.BitSet FOLLOW_EQEQ_in_eBOP2663

FOLLOW_GT_in_eBOP2681

public static final org.antlr.runtime.BitSet FOLLOW_GT_in_eBOP2681

FOLLOW_GTEQ_in_eBOP2699

public static final org.antlr.runtime.BitSet FOLLOW_GTEQ_in_eBOP2699

FOLLOW_GTGT_in_eBOP2717

public static final org.antlr.runtime.BitSet FOLLOW_GTGT_in_eBOP2717

FOLLOW_LT_in_eBOP2735

public static final org.antlr.runtime.BitSet FOLLOW_LT_in_eBOP2735

FOLLOW_LTEQ_in_eBOP2753

public static final org.antlr.runtime.BitSet FOLLOW_LTEQ_in_eBOP2753

FOLLOW_LTLT_in_eBOP2771

public static final org.antlr.runtime.BitSet FOLLOW_LTLT_in_eBOP2771

FOLLOW_MIN_in_eBOP2789

public static final org.antlr.runtime.BitSet FOLLOW_MIN_in_eBOP2789

FOLLOW_PCT_in_eBOP2807

public static final org.antlr.runtime.BitSet FOLLOW_PCT_in_eBOP2807

FOLLOW_PLUS_in_eBOP2825

public static final org.antlr.runtime.BitSet FOLLOW_PLUS_in_eBOP2825

FOLLOW_STAR_in_eBOP2843

public static final org.antlr.runtime.BitSet FOLLOW_STAR_in_eBOP2843

FOLLOW_AMP_in_eUOP2883

public static final org.antlr.runtime.BitSet FOLLOW_AMP_in_eUOP2883

FOLLOW_BANG_in_eUOP2901

public static final org.antlr.runtime.BitSet FOLLOW_BANG_in_eUOP2901

FOLLOW_MIN_in_eUOP2919

public static final org.antlr.runtime.BitSet FOLLOW_MIN_in_eUOP2919

FOLLOW_PLUS_in_eUOP2937

public static final org.antlr.runtime.BitSet FOLLOW_PLUS_in_eUOP2937

FOLLOW_STAR_in_eUOP2955

public static final org.antlr.runtime.BitSet FOLLOW_STAR_in_eUOP2955

FOLLOW_TILDE_in_eUOP2973

public static final org.antlr.runtime.BitSet FOLLOW_TILDE_in_eUOP2973

FOLLOW_71_in_externDecl3010

public static final org.antlr.runtime.BitSet FOLLOW_71_in_externDecl3010

FOLLOW_typeSpecC_in_externDecl3012

public static final org.antlr.runtime.BitSet FOLLOW_typeSpecC_in_externDecl3012

FOLLOW_declarator_in_externDecl3016

public static final org.antlr.runtime.BitSet FOLLOW_declarator_in_externDecl3016

FOLLOW_EQ_in_externDecl3019

public static final org.antlr.runtime.BitSet FOLLOW_EQ_in_externDecl3019

FOLLOW_IDENT_in_externDecl3023

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_externDecl3023

FOLLOW_SEMI_in_externDecl3029

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_externDecl3029

FOLLOW_fieldDecl_in_fieldDeclList3070

public static final org.antlr.runtime.BitSet FOLLOW_fieldDecl_in_fieldDeclList3070

FOLLOW_doc_inline_in_fieldDeclList3074

public static final org.antlr.runtime.BitSet FOLLOW_doc_inline_in_fieldDeclList3074

FOLLOW_typeSpecF_in_fieldDecl3114

public static final org.antlr.runtime.BitSet FOLLOW_typeSpecF_in_fieldDecl3114

FOLLOW_declarator_in_fieldDecl3118

public static final org.antlr.runtime.BitSet FOLLOW_declarator_in_fieldDecl3118

FOLLOW_SEMI_in_fieldDecl3120

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_fieldDecl3120

FOLLOW_fxnHdr_in_fxnDecl3166

public static final org.antlr.runtime.BitSet FOLLOW_fxnHdr_in_fxnDecl3166

FOLLOW_LPAR_in_fxnDecl3178

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_fxnDecl3178

FOLLOW_argDeclListOpt_in_fxnDecl3182

public static final org.antlr.runtime.BitSet FOLLOW_argDeclListOpt_in_fxnDecl3182

FOLLOW_COMMA_in_fxnDecl3186

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_fxnDecl3186

FOLLOW_ELIPSIS_in_fxnDecl3188

public static final org.antlr.runtime.BitSet FOLLOW_ELIPSIS_in_fxnDecl3188

FOLLOW_RPAR_in_fxnDecl3195

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_fxnDecl3195

FOLLOW_SEMI_in_fxnDecl3197

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_fxnDecl3197

FOLLOW_typeSpec_in_fxnHdr3241

public static final org.antlr.runtime.BitSet FOLLOW_typeSpec_in_fxnHdr3241

FOLLOW_basicDeclarator_in_fxnHdr3245

public static final org.antlr.runtime.BitSet FOLLOW_basicDeclarator_in_fxnHdr3245

FOLLOW_72_in_fxnHdr3273

public static final org.antlr.runtime.BitSet FOLLOW_72_in_fxnHdr3273

FOLLOW_configDecl_in_instDecl3327

public static final org.antlr.runtime.BitSet FOLLOW_configDecl_in_instDecl3327

FOLLOW_fxnDecl_in_instDecl3344

public static final org.antlr.runtime.BitSet FOLLOW_fxnDecl_in_instDecl3344

FOLLOW_methodDecl_in_instDecl3361

public static final org.antlr.runtime.BitSet FOLLOW_methodDecl_in_instDecl3361

FOLLOW_doc_block_in_instDeclSpec3399

public static final org.antlr.runtime.BitSet FOLLOW_doc_block_in_instDeclSpec3399

FOLLOW_annotation_in_instDeclSpec3405

public static final org.antlr.runtime.BitSet FOLLOW_annotation_in_instDeclSpec3405

FOLLOW_declQuals_in_instDeclSpec3409

public static final org.antlr.runtime.BitSet FOLLOW_declQuals_in_instDeclSpec3409

FOLLOW_instDecl_in_instDeclSpec3413

public static final org.antlr.runtime.BitSet FOLLOW_instDecl_in_instDeclSpec3413

FOLLOW_doc_inline_in_instDeclSpec3417

public static final org.antlr.runtime.BitSet FOLLOW_doc_inline_in_instDeclSpec3417

FOLLOW_configDecl_in_internDecl3465

public static final org.antlr.runtime.BitSet FOLLOW_configDecl_in_internDecl3465

FOLLOW_constDecl_in_internDecl3485

public static final org.antlr.runtime.BitSet FOLLOW_constDecl_in_internDecl3485

FOLLOW_enumDecl_in_internDecl3505

public static final org.antlr.runtime.BitSet FOLLOW_enumDecl_in_internDecl3505

FOLLOW_externDecl_in_internDecl3525

public static final org.antlr.runtime.BitSet FOLLOW_externDecl_in_internDecl3525

FOLLOW_fxnDecl_in_internDecl3545

public static final org.antlr.runtime.BitSet FOLLOW_fxnDecl_in_internDecl3545

FOLLOW_methodDecl_in_internDecl3565

public static final org.antlr.runtime.BitSet FOLLOW_methodDecl_in_internDecl3565

FOLLOW_proxyDecl_in_internDecl3585

public static final org.antlr.runtime.BitSet FOLLOW_proxyDecl_in_internDecl3585

FOLLOW_structDecl_in_internDecl3605

public static final org.antlr.runtime.BitSet FOLLOW_structDecl_in_internDecl3605

FOLLOW_typeDecl_in_internDecl3625

public static final org.antlr.runtime.BitSet FOLLOW_typeDecl_in_internDecl3625

FOLLOW_doc_block_in_internDeclSpec3663

public static final org.antlr.runtime.BitSet FOLLOW_doc_block_in_internDeclSpec3663

FOLLOW_annotation_in_internDeclSpec3669

public static final org.antlr.runtime.BitSet FOLLOW_annotation_in_internDeclSpec3669

FOLLOW_declQuals_in_internDeclSpec3673

public static final org.antlr.runtime.BitSet FOLLOW_declQuals_in_internDeclSpec3673

FOLLOW_internDecl_in_internDeclSpec3677

public static final org.antlr.runtime.BitSet FOLLOW_internDecl_in_internDeclSpec3677

FOLLOW_doc_inline_in_internDeclSpec3681

public static final org.antlr.runtime.BitSet FOLLOW_doc_inline_in_internDeclSpec3681

FOLLOW_73_in_methodDecl3727

public static final org.antlr.runtime.BitSet FOLLOW_73_in_methodDecl3727

FOLLOW_IDENT_in_methodDecl3731

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_methodDecl3731

FOLLOW_LPAR_in_methodDecl3734

public static final org.antlr.runtime.BitSet FOLLOW_LPAR_in_methodDecl3734

FOLLOW_metArgDeclListOpt_in_methodDecl3738

public static final org.antlr.runtime.BitSet FOLLOW_metArgDeclListOpt_in_methodDecl3738

FOLLOW_RPAR_in_methodDecl3740

public static final org.antlr.runtime.BitSet FOLLOW_RPAR_in_methodDecl3740

FOLLOW_SEMI_in_methodDecl3744

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_methodDecl3744

FOLLOW_metArg_in_metArgDeclListOpt3809

public static final org.antlr.runtime.BitSet FOLLOW_metArg_in_metArgDeclListOpt3809

FOLLOW_COMMA_in_metArgDeclListOpt3814

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_metArgDeclListOpt3814

FOLLOW_metArg_in_metArgDeclListOpt3818

public static final org.antlr.runtime.BitSet FOLLOW_metArg_in_metArgDeclListOpt3818

FOLLOW_IDENT_in_metArg3849

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_metArg3849

FOLLOW_configDecl_in_modDecl3884

public static final org.antlr.runtime.BitSet FOLLOW_configDecl_in_modDecl3884

FOLLOW_constDecl_in_modDecl3904

public static final org.antlr.runtime.BitSet FOLLOW_constDecl_in_modDecl3904

FOLLOW_enumDecl_in_modDecl3924

public static final org.antlr.runtime.BitSet FOLLOW_enumDecl_in_modDecl3924

FOLLOW_externDecl_in_modDecl3944

public static final org.antlr.runtime.BitSet FOLLOW_externDecl_in_modDecl3944

FOLLOW_fxnDecl_in_modDecl3964

public static final org.antlr.runtime.BitSet FOLLOW_fxnDecl_in_modDecl3964

FOLLOW_methodDecl_in_modDecl3984

public static final org.antlr.runtime.BitSet FOLLOW_methodDecl_in_modDecl3984

FOLLOW_proxyDecl_in_modDecl4004

public static final org.antlr.runtime.BitSet FOLLOW_proxyDecl_in_modDecl4004

FOLLOW_structDecl_in_modDecl4024

public static final org.antlr.runtime.BitSet FOLLOW_structDecl_in_modDecl4024

FOLLOW_typeDecl_in_modDecl4044

public static final org.antlr.runtime.BitSet FOLLOW_typeDecl_in_modDecl4044

FOLLOW_doc_block_in_modDeclSpec4082

public static final org.antlr.runtime.BitSet FOLLOW_doc_block_in_modDeclSpec4082

FOLLOW_annotation_in_modDeclSpec4088

public static final org.antlr.runtime.BitSet FOLLOW_annotation_in_modDeclSpec4088

FOLLOW_declQuals_in_modDeclSpec4092

public static final org.antlr.runtime.BitSet FOLLOW_declQuals_in_modDeclSpec4092

FOLLOW_modDecl_in_modDeclSpec4096

public static final org.antlr.runtime.BitSet FOLLOW_modDecl_in_modDeclSpec4096

FOLLOW_doc_inline_in_modDeclSpec4100

public static final org.antlr.runtime.BitSet FOLLOW_doc_inline_in_modDeclSpec4100

FOLLOW_pkgReqList_in_pkgSpec4159

public static final org.antlr.runtime.BitSet FOLLOW_pkgReqList_in_pkgSpec4159

FOLLOW_one_doc_block_in_pkgSpec4180

public static final org.antlr.runtime.BitSet FOLLOW_one_doc_block_in_pkgSpec4180

FOLLOW_annotAttr_in_pkgSpec4201

public static final org.antlr.runtime.BitSet FOLLOW_annotAttr_in_pkgSpec4201

FOLLOW_74_in_pkgSpec4234

public static final org.antlr.runtime.BitSet FOLLOW_74_in_pkgSpec4234

FOLLOW_qualName_in_pkgSpec4239

public static final org.antlr.runtime.BitSet FOLLOW_qualName_in_pkgSpec4239

FOLLOW_pkgVers_in_pkgSpec4246

public static final org.antlr.runtime.BitSet FOLLOW_pkgVers_in_pkgSpec4246

FOLLOW_LCUR_in_pkgSpec4258

public static final org.antlr.runtime.BitSet FOLLOW_LCUR_in_pkgSpec4258

FOLLOW_pkgUnit_in_pkgSpec4273

public static final org.antlr.runtime.BitSet FOLLOW_pkgUnit_in_pkgSpec4273

FOLLOW_RCUR_in_pkgSpec4286

public static final org.antlr.runtime.BitSet FOLLOW_RCUR_in_pkgSpec4286

FOLLOW_SEMI_in_pkgSpec4289

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_pkgSpec4289

FOLLOW_doc_block_in_pkgSpec4303

public static final org.antlr.runtime.BitSet FOLLOW_doc_block_in_pkgSpec4303

FOLLOW_75_in_pkgReqList4345

public static final org.antlr.runtime.BitSet FOLLOW_75_in_pkgReqList4345

FOLLOW_76_in_pkgReqList4348

public static final org.antlr.runtime.BitSet FOLLOW_76_in_pkgReqList4348

FOLLOW_pkgReq_in_pkgReqList4354

public static final org.antlr.runtime.BitSet FOLLOW_pkgReq_in_pkgReqList4354

FOLLOW_COMMA_in_pkgReqList4358

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_pkgReqList4358

FOLLOW_pkgReq_in_pkgReqList4360

public static final org.antlr.runtime.BitSet FOLLOW_pkgReq_in_pkgReqList4360

FOLLOW_SEMI_in_pkgReqList4365

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_pkgReqList4365

FOLLOW_qualName_in_pkgReq4396

public static final org.antlr.runtime.BitSet FOLLOW_qualName_in_pkgReq4396

FOLLOW_pkgVers_in_pkgReq4401

public static final org.antlr.runtime.BitSet FOLLOW_pkgVers_in_pkgReq4401

FOLLOW_77_in_pkgUnit4447

public static final org.antlr.runtime.BitSet FOLLOW_77_in_pkgUnit4447

FOLLOW_78_in_pkgUnit4453

public static final org.antlr.runtime.BitSet FOLLOW_78_in_pkgUnit4453

FOLLOW_pkgUnitName_in_pkgUnit4467

public static final org.antlr.runtime.BitSet FOLLOW_pkgUnitName_in_pkgUnit4467

FOLLOW_COMMA_in_pkgUnit4471

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_pkgUnit4471

FOLLOW_pkgUnitName_in_pkgUnit4473

public static final org.antlr.runtime.BitSet FOLLOW_pkgUnitName_in_pkgUnit4473

FOLLOW_SEMI_in_pkgUnit4478

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_pkgUnit4478

FOLLOW_IDENT_in_pkgUnitName4512

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_pkgUnitName4512

FOLLOW_LBRK_in_pkgVers4550

public static final org.antlr.runtime.BitSet FOLLOW_LBRK_in_pkgVers4550

FOLLOW_NUM_in_pkgVers4567

public static final org.antlr.runtime.BitSet FOLLOW_NUM_in_pkgVers4567

FOLLOW_COMMA_in_pkgVers4585

public static final org.antlr.runtime.BitSet FOLLOW_COMMA_in_pkgVers4585

FOLLOW_NUM_in_pkgVers4589

public static final org.antlr.runtime.BitSet FOLLOW_NUM_in_pkgVers4589

FOLLOW_RBRK_in_pkgVers4603

public static final org.antlr.runtime.BitSet FOLLOW_RBRK_in_pkgVers4603

FOLLOW_79_in_proxyDecl4637

public static final org.antlr.runtime.BitSet FOLLOW_79_in_proxyDecl4637

FOLLOW_IDENT_in_proxyDecl4641

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_proxyDecl4641

FOLLOW_80_in_proxyDecl4643

public static final org.antlr.runtime.BitSet FOLLOW_80_in_proxyDecl4643

FOLLOW_superInt_in_proxyDecl4647

public static final org.antlr.runtime.BitSet FOLLOW_superInt_in_proxyDecl4647

FOLLOW_SEMI_in_proxyDecl4649

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_proxyDecl4649

FOLLOW_IDENT_in_qualName4701

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_qualName4701

FOLLOW_PATH_in_qualName4709

public static final org.antlr.runtime.BitSet FOLLOW_PATH_in_qualName4709

FOLLOW_IDENT_in_qualNameStar4751

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_qualNameStar4751

FOLLOW_PATH_in_qualNameStar4759

public static final org.antlr.runtime.BitSet FOLLOW_PATH_in_qualNameStar4759

FOLLOW_PATHSTAR_in_qualNameStar4767

public static final org.antlr.runtime.BitSet FOLLOW_PATHSTAR_in_qualNameStar4767

FOLLOW_81_in_structDecl4805

public static final org.antlr.runtime.BitSet FOLLOW_81_in_structDecl4805

FOLLOW_82_in_structDecl4809

public static final org.antlr.runtime.BitSet FOLLOW_82_in_structDecl4809

FOLLOW_IDENT_in_structDecl4817

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_structDecl4817

FOLLOW_LCUR_in_structDecl4830

public static final org.antlr.runtime.BitSet FOLLOW_LCUR_in_structDecl4830

FOLLOW_fieldDeclList_in_structDecl4835

public static final org.antlr.runtime.BitSet FOLLOW_fieldDeclList_in_structDecl4835

FOLLOW_RCUR_in_structDecl4840

public static final org.antlr.runtime.BitSet FOLLOW_RCUR_in_structDecl4840

FOLLOW_SEMI_in_structDecl4843

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_structDecl4843

FOLLOW_SEMI_in_structDecl4851

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_structDecl4851

FOLLOW_81_in_structFieldDecl4901

public static final org.antlr.runtime.BitSet FOLLOW_81_in_structFieldDecl4901

FOLLOW_82_in_structFieldDecl4905

public static final org.antlr.runtime.BitSet FOLLOW_82_in_structFieldDecl4905

FOLLOW_LCUR_in_structFieldDecl4911

public static final org.antlr.runtime.BitSet FOLLOW_LCUR_in_structFieldDecl4911

FOLLOW_fieldDeclList_in_structFieldDecl4916

public static final org.antlr.runtime.BitSet FOLLOW_fieldDeclList_in_structFieldDecl4916

FOLLOW_RCUR_in_structFieldDecl4921

public static final org.antlr.runtime.BitSet FOLLOW_RCUR_in_structFieldDecl4921

FOLLOW_qualName_in_superInt4971

public static final org.antlr.runtime.BitSet FOLLOW_qualName_in_superInt4971

FOLLOW_83_in_typeDecl5015

public static final org.antlr.runtime.BitSet FOLLOW_83_in_typeDecl5015

FOLLOW_typeSpecC_in_typeDecl5017

public static final org.antlr.runtime.BitSet FOLLOW_typeSpecC_in_typeDecl5017

FOLLOW_declarator_in_typeDecl5021

public static final org.antlr.runtime.BitSet FOLLOW_declarator_in_typeDecl5021

FOLLOW_SEMI_in_typeDecl5023

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_typeDecl5023

FOLLOW_58_in_typeMods5063

public static final org.antlr.runtime.BitSet FOLLOW_58_in_typeMods5063

FOLLOW_84_in_typeMods5074

public static final org.antlr.runtime.BitSet FOLLOW_84_in_typeMods5074

FOLLOW_85_in_typeMods5085

public static final org.antlr.runtime.BitSet FOLLOW_85_in_typeMods5085

FOLLOW_typeSpecG_in_typeSpec5102

public static final org.antlr.runtime.BitSet FOLLOW_typeSpecG_in_typeSpec5102

FOLLOW_typeMods_in_typeSpecC5125

public static final org.antlr.runtime.BitSet FOLLOW_typeMods_in_typeSpecC5125

FOLLOW_typeSpecG_in_typeSpecC5127

public static final org.antlr.runtime.BitSet FOLLOW_typeSpecG_in_typeSpecC5127

FOLLOW_typeSpecC_in_typeSpecF5144

public static final org.antlr.runtime.BitSet FOLLOW_typeSpecC_in_typeSpecF5144

FOLLOW_structFieldDecl_in_typeSpecF5153

public static final org.antlr.runtime.BitSet FOLLOW_structFieldDecl_in_typeSpecF5153

FOLLOW_qualName_in_typeSpecG5201

public static final org.antlr.runtime.BitSet FOLLOW_qualName_in_typeSpecG5201

FOLLOW_86_in_typeSpecG5237

public static final org.antlr.runtime.BitSet FOLLOW_86_in_typeSpecG5237

FOLLOW_87_in_typeSpecG5284

public static final org.antlr.runtime.BitSet FOLLOW_87_in_typeSpecG5284

FOLLOW_88_in_typeSpecG5331

public static final org.antlr.runtime.BitSet FOLLOW_88_in_typeSpecG5331

FOLLOW_87_in_typeSpecG5333

public static final org.antlr.runtime.BitSet FOLLOW_87_in_typeSpecG5333

FOLLOW_89_in_typeSpecG5369

public static final org.antlr.runtime.BitSet FOLLOW_89_in_typeSpecG5369

FOLLOW_88_in_typeSpecG5415

public static final org.antlr.runtime.BitSet FOLLOW_88_in_typeSpecG5415

FOLLOW_89_in_typeSpecG5417

public static final org.antlr.runtime.BitSet FOLLOW_89_in_typeSpecG5417

FOLLOW_90_in_typeSpecG5452

public static final org.antlr.runtime.BitSet FOLLOW_90_in_typeSpecG5452

FOLLOW_88_in_typeSpecG5500

public static final org.antlr.runtime.BitSet FOLLOW_88_in_typeSpecG5500

FOLLOW_88_in_typeSpecG5543

public static final org.antlr.runtime.BitSet FOLLOW_88_in_typeSpecG5543

FOLLOW_90_in_typeSpecG5545

public static final org.antlr.runtime.BitSet FOLLOW_90_in_typeSpecG5545

FOLLOW_91_in_typeSpecG5582

public static final org.antlr.runtime.BitSet FOLLOW_91_in_typeSpecG5582

FOLLOW_88_in_typeSpecG5629

public static final org.antlr.runtime.BitSet FOLLOW_88_in_typeSpecG5629

FOLLOW_91_in_typeSpecG5631

public static final org.antlr.runtime.BitSet FOLLOW_91_in_typeSpecG5631

FOLLOW_91_in_typeSpecG5667

public static final org.antlr.runtime.BitSet FOLLOW_91_in_typeSpecG5667

FOLLOW_91_in_typeSpecG5669

public static final org.antlr.runtime.BitSet FOLLOW_91_in_typeSpecG5669

FOLLOW_88_in_typeSpecG5709

public static final org.antlr.runtime.BitSet FOLLOW_88_in_typeSpecG5709

FOLLOW_91_in_typeSpecG5711

public static final org.antlr.runtime.BitSet FOLLOW_91_in_typeSpecG5711

FOLLOW_91_in_typeSpecG5713

public static final org.antlr.runtime.BitSet FOLLOW_91_in_typeSpecG5713

FOLLOW_92_in_typeSpecG5742

public static final org.antlr.runtime.BitSet FOLLOW_92_in_typeSpecG5742

FOLLOW_93_in_typeSpecG5788

public static final org.antlr.runtime.BitSet FOLLOW_93_in_typeSpecG5788

FOLLOW_91_in_typeSpecG5833

public static final org.antlr.runtime.BitSet FOLLOW_91_in_typeSpecG5833

FOLLOW_93_in_typeSpecG5835

public static final org.antlr.runtime.BitSet FOLLOW_93_in_typeSpecG5835

FOLLOW_94_in_typeSpecG5873

public static final org.antlr.runtime.BitSet FOLLOW_94_in_typeSpecG5873

FOLLOW_95_in_typeSpecG5918

public static final org.antlr.runtime.BitSet FOLLOW_95_in_typeSpecG5918

FOLLOW_96_in_typeSpecG5970

public static final org.antlr.runtime.BitSet FOLLOW_96_in_typeSpecG5970

FOLLOW_97_in_typeSpecG5986

public static final org.antlr.runtime.BitSet FOLLOW_97_in_typeSpecG5986

FOLLOW_98_in_typeSpecG6033

public static final org.antlr.runtime.BitSet FOLLOW_98_in_typeSpecG6033

FOLLOW_99_in_typeSpecG6079

public static final org.antlr.runtime.BitSet FOLLOW_99_in_typeSpecG6079

FOLLOW_100_in_typeSpecG6125

public static final org.antlr.runtime.BitSet FOLLOW_100_in_typeSpecG6125

FOLLOW_101_in_typeSpecG6170

public static final org.antlr.runtime.BitSet FOLLOW_101_in_typeSpecG6170

FOLLOW_102_in_typeSpecG6218

public static final org.antlr.runtime.BitSet FOLLOW_102_in_typeSpecG6218

FOLLOW_103_in_typeSpecG6265

public static final org.antlr.runtime.BitSet FOLLOW_103_in_typeSpecG6265

FOLLOW_104_in_typeSpecG6312

public static final org.antlr.runtime.BitSet FOLLOW_104_in_typeSpecG6312

FOLLOW_105_in_typeSpecG6358

public static final org.antlr.runtime.BitSet FOLLOW_105_in_typeSpecG6358

FOLLOW_106_in_typeSpecG6404

public static final org.antlr.runtime.BitSet FOLLOW_106_in_typeSpecG6404

FOLLOW_107_in_typeSpecG6449

public static final org.antlr.runtime.BitSet FOLLOW_107_in_typeSpecG6449

FOLLOW_108_in_typeSpecG6495

public static final org.antlr.runtime.BitSet FOLLOW_108_in_typeSpecG6495

FOLLOW_109_in_typeSpecG6540

public static final org.antlr.runtime.BitSet FOLLOW_109_in_typeSpecG6540

FOLLOW_110_in_typeSpecG6584

public static final org.antlr.runtime.BitSet FOLLOW_110_in_typeSpecG6584

FOLLOW_111_in_typeSpecG6630

public static final org.antlr.runtime.BitSet FOLLOW_111_in_typeSpecG6630

FOLLOW_112_in_typeSpecG6683

public static final org.antlr.runtime.BitSet FOLLOW_112_in_typeSpecG6683

FOLLOW_113_in_typeSpecG6699

public static final org.antlr.runtime.BitSet FOLLOW_113_in_typeSpecG6699

FOLLOW_114_in_typeSpecG6746

public static final org.antlr.runtime.BitSet FOLLOW_114_in_typeSpecG6746

FOLLOW_115_in_typeSpecG6793

public static final org.antlr.runtime.BitSet FOLLOW_115_in_typeSpecG6793

FOLLOW_116_in_typeSpecG6839

public static final org.antlr.runtime.BitSet FOLLOW_116_in_typeSpecG6839

FOLLOW_117_in_typeSpecG6884

public static final org.antlr.runtime.BitSet FOLLOW_117_in_typeSpecG6884

FOLLOW_118_in_typeSpecG6929

public static final org.antlr.runtime.BitSet FOLLOW_118_in_typeSpecG6929

FOLLOW_119_in_typeSpecG6974

public static final org.antlr.runtime.BitSet FOLLOW_119_in_typeSpecG6974

FOLLOW_120_in_typeSpecG7021

public static final org.antlr.runtime.BitSet FOLLOW_120_in_typeSpecG7021

FOLLOW_121_in_typeSpecG7069

public static final org.antlr.runtime.BitSet FOLLOW_121_in_typeSpecG7069

FOLLOW_122_in_typeSpecG7116

public static final org.antlr.runtime.BitSet FOLLOW_122_in_typeSpecG7116

FOLLOW_123_in_typeSpecG7162

public static final org.antlr.runtime.BitSet FOLLOW_123_in_typeSpecG7162

FOLLOW_124_in_typeSpecG7208

public static final org.antlr.runtime.BitSet FOLLOW_124_in_typeSpecG7208

FOLLOW_125_in_typeSpecG7254

public static final org.antlr.runtime.BitSet FOLLOW_125_in_typeSpecG7254

FOLLOW_126_in_typeSpecG7302

public static final org.antlr.runtime.BitSet FOLLOW_126_in_typeSpecG7302

FOLLOW_127_in_typeSpecG7347

public static final org.antlr.runtime.BitSet FOLLOW_127_in_typeSpecG7347

FOLLOW_128_in_typeSpecG7393

public static final org.antlr.runtime.BitSet FOLLOW_128_in_typeSpecG7393

FOLLOW_129_in_typeSpecG7438

public static final org.antlr.runtime.BitSet FOLLOW_129_in_typeSpecG7438

FOLLOW_130_in_typeSpecG7483

public static final org.antlr.runtime.BitSet FOLLOW_130_in_typeSpecG7483

FOLLOW_131_in_typeSpecG7543

public static final org.antlr.runtime.BitSet FOLLOW_131_in_typeSpecG7543

FOLLOW_132_in_typeSpecG7591

public static final org.antlr.runtime.BitSet FOLLOW_132_in_typeSpecG7591

FOLLOW_64_in_typeSpecG7638

public static final org.antlr.runtime.BitSet FOLLOW_64_in_typeSpecG7638

FOLLOW_133_in_unitImp7715

public static final org.antlr.runtime.BitSet FOLLOW_133_in_unitImp7715

FOLLOW_qualNameStar_in_unitImp7719

public static final org.antlr.runtime.BitSet FOLLOW_qualNameStar_in_unitImp7719

FOLLOW_134_in_unitImp7722

public static final org.antlr.runtime.BitSet FOLLOW_134_in_unitImp7722

FOLLOW_IDENT_in_unitImp7726

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_unitImp7726

FOLLOW_SEMI_in_unitImp7732

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_unitImp7732

FOLLOW_74_in_unitSpec7776

public static final org.antlr.runtime.BitSet FOLLOW_74_in_unitSpec7776

FOLLOW_qualName_in_unitSpec7780

public static final org.antlr.runtime.BitSet FOLLOW_qualName_in_unitSpec7780

FOLLOW_SEMI_in_unitSpec7783

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_unitSpec7783

FOLLOW_unitImp_in_unitSpec7816

public static final org.antlr.runtime.BitSet FOLLOW_unitImp_in_unitSpec7816

FOLLOW_one_doc_block_in_unitSpec7846

public static final org.antlr.runtime.BitSet FOLLOW_one_doc_block_in_unitSpec7846

FOLLOW_annotAttr_in_unitSpec7867

public static final org.antlr.runtime.BitSet FOLLOW_annotAttr_in_unitSpec7867

FOLLOW_63_in_unitSpec7890

public static final org.antlr.runtime.BitSet FOLLOW_63_in_unitSpec7890

FOLLOW_77_in_unitSpec7905

public static final org.antlr.runtime.BitSet FOLLOW_77_in_unitSpec7905

FOLLOW_78_in_unitSpec7911

public static final org.antlr.runtime.BitSet FOLLOW_78_in_unitSpec7911

FOLLOW_IDENT_in_unitSpec7926

public static final org.antlr.runtime.BitSet FOLLOW_IDENT_in_unitSpec7926

FOLLOW_80_in_unitSpec7942

public static final org.antlr.runtime.BitSet FOLLOW_80_in_unitSpec7942

FOLLOW_superInt_in_unitSpec7946

public static final org.antlr.runtime.BitSet FOLLOW_superInt_in_unitSpec7946

FOLLOW_135_in_unitSpec7951

public static final org.antlr.runtime.BitSet FOLLOW_135_in_unitSpec7951

FOLLOW_superInt_in_unitSpec7955

public static final org.antlr.runtime.BitSet FOLLOW_superInt_in_unitSpec7955

FOLLOW_LCUR_in_unitSpec7967

public static final org.antlr.runtime.BitSet FOLLOW_LCUR_in_unitSpec7967

FOLLOW_modDeclSpec_in_unitSpec7982

public static final org.antlr.runtime.BitSet FOLLOW_modDeclSpec_in_unitSpec7982

FOLLOW_136_in_unitSpec7997

public static final org.antlr.runtime.BitSet FOLLOW_136_in_unitSpec7997

FOLLOW_COLON_in_unitSpec7999

public static final org.antlr.runtime.BitSet FOLLOW_COLON_in_unitSpec7999

FOLLOW_instDeclSpec_in_unitSpec8025

public static final org.antlr.runtime.BitSet FOLLOW_instDeclSpec_in_unitSpec8025

FOLLOW_76_in_unitSpec8051

public static final org.antlr.runtime.BitSet FOLLOW_76_in_unitSpec8051

FOLLOW_COLON_in_unitSpec8053

public static final org.antlr.runtime.BitSet FOLLOW_COLON_in_unitSpec8053

FOLLOW_internDeclSpec_in_unitSpec8089

public static final org.antlr.runtime.BitSet FOLLOW_internDeclSpec_in_unitSpec8089

FOLLOW_RCUR_in_unitSpec8118

public static final org.antlr.runtime.BitSet FOLLOW_RCUR_in_unitSpec8118

FOLLOW_SEMI_in_unitSpec8121

public static final org.antlr.runtime.BitSet FOLLOW_SEMI_in_unitSpec8121

FOLLOW_doc_block_in_unitSpec8135

public static final org.antlr.runtime.BitSet FOLLOW_doc_block_in_unitSpec8135
Constructor Detail

GrammarParser

public GrammarParser(org.antlr.runtime.TokenStream input)

GrammarParser

public GrammarParser(org.antlr.runtime.TokenStream input,
                     org.antlr.runtime.RecognizerSharedState state)
Method Detail

getTokenNames

public java.lang.String[] getTokenNames()
Overrides:
getTokenNames in class org.antlr.runtime.BaseRecognizer

getGrammarFileName

public java.lang.String getGrammarFileName()
Overrides:
getGrammarFileName in class org.antlr.runtime.BaseRecognizer

reportError

public void reportError(org.antlr.runtime.RecognitionException e)
Overrides:
reportError in class org.antlr.runtime.BaseRecognizer

reportError

public void reportError(java.lang.String message)

reportError

public void reportError(java.lang.String message,
                        int line)
Report an error at the given line.

absDeclarator

public final Type absDeclarator()
                         throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

absDeclarator_tail

public final Type absDeclarator_tail(Type base)
                              throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

absArgDeclListOpt

public final java.util.ArrayList<Decl.Arg> absArgDeclListOpt()
                                                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

absArgDecl

public final Decl absArgDecl()
                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

annotation

public final java.util.ArrayList<Attr> annotation()
                                           throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

annotAttr

public final java.util.ArrayList<Attr> annotAttr(java.util.ArrayList<Attr> aL)
                                          throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

argDeclListOpt

public final java.util.ArrayList<Decl.Arg> argDeclListOpt()
                                                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

argDecl

public final Decl argDecl()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

basicDeclarator

public final Type basicDeclarator()
                           throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

configDecl

public final Decl configDecl()
                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

constDecl

public final Decl constDecl()
                     throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

declQuals

public final void declQuals()
                     throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

declarator

public final Type declarator()
                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

declarator_term

public final Type declarator_term()
                           throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

declarator_tail

public final Type declarator_tail(Type base)
                           throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

doc_block

public final java.util.ArrayList<DocComment> doc_block(java.util.ArrayList<DocComment> dL)
                                                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

one_doc_block

public final java.util.ArrayList<DocComment> one_doc_block(java.util.ArrayList<DocComment> dL)
                                                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

doc_inline

public final java.util.ArrayList<DocComment> doc_inline(java.util.ArrayList<DocComment> dL)
                                                 throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

enumDecl

public final Decl enumDecl()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

enumRep

public final Type.Spec enumRep()
                        throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

enumValList

public final void enumValList(java.util.ArrayList<Decl.EnumVal> evL)
                       throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

enumVal

public final Decl enumVal()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

expr

public final Expr expr()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

exprProp

public final void exprProp(java.util.List<Atom> iL,
                           java.util.List<Expr> eL)
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

exprCnd

public final Expr exprCnd()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

exprBin

public final Expr exprBin()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

exprUry

public final Expr exprUry()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

exprTrm

public final Expr exprTrm()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

exprList

public final java.util.List<Expr> exprList()
                                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

eBOP

public final Atom eBOP()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

eUOP

public final Atom eUOP()
                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

externDecl

public final Decl externDecl()
                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

fieldDeclList

public final void fieldDeclList(java.util.List<Decl.Field> fL)
                         throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

fieldDecl

public final Decl fieldDecl()
                     throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

fxnDecl

public final Decl fxnDecl()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

fxnHdr

public final Type fxnHdr()
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

instDecl

public final Decl instDecl()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

instDeclSpec

public final Decl instDeclSpec()
                        throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

internDecl

public final Decl internDecl()
                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

internDeclSpec

public final Decl internDeclSpec()
                          throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

methodDecl

public final Decl methodDecl()
                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

metArgDeclListOpt

public final java.util.ArrayList<Decl.Arg> metArgDeclListOpt()
                                                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

metArg

public final Decl.Arg metArg()
                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

modDecl

public final Decl modDecl()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

modDeclSpec

public final Decl modDeclSpec()
                       throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

pkgSpec

public final Pkg pkgSpec(java.lang.String pkgFile)
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

pkgReqList

public final void pkgReqList(java.util.List<Atom> rL)
                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

pkgReq

public final void pkgReq(java.util.List<Atom> rlist,
                         boolean iFlg)
                  throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

pkgUnit

public final void pkgUnit(java.util.List<Atom> mlist,
                          java.util.List<Atom> ilist)
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

pkgUnitName

public final void pkgUnitName(java.util.List<Atom> l)
                       throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

pkgVers

public final java.lang.String pkgVers()
                               throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

proxyDecl

public final Decl proxyDecl()
                     throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

qualName

public final Atom qualName()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

qualNameStar

public final Atom qualNameStar()
                        throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

structDecl

public final Decl structDecl()
                      throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

structFieldDecl

public final Decl structFieldDecl()
                           throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

superInt

public final Sup superInt()
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

typeDecl

public final Decl typeDecl()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

typeMods

public final java.util.EnumSet<Type.Modifier> typeMods()
                                                throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

typeSpec

public final void typeSpec()
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

typeSpecC

public final void typeSpecC()
                     throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

typeSpecF

public final void typeSpecF()
                     throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

typeSpecG

public final void typeSpecG(java.util.EnumSet<Type.Modifier> mods)
                     throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

unitImp

public final void unitImp(java.util.List<Import> iL)
                   throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException

unitSpec

public final Unit unitSpec(java.lang.String pname)
                    throws org.antlr.runtime.RecognitionException
Throws:
org.antlr.runtime.RecognitionException
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Import

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Import

java.lang.Object
    extended by  xdc.services.spec.Import
All Implemented Interfaces:
java.io.Serializable
public class Import
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Node

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Node

java.lang.Object
    extended by  xdc.services.spec.Node
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>
Direct Known Subclasses:
Decl, Pkg, Unit
public abstract class Node
extends java.lang.Object
implements java.lang.Comparable<Node>, java.io.Serializable

Abstract superclass for any formally declared object in a .xdc file.

See Also:
Serialized Form

Constructor Summary
Node()
Method Summary
boolean | attrBool(java.lang.String id)
int | attrInt(java.lang.String id)
java.lang.String | attrString(java.lang.String id)
int | compareTo(Node n)
Atom | getAtom()
java.util.Map<java.lang.String,Attr> | getAttrMap()
abstract java.util.List<? extends Node> | getChildren()
java.util.List<DocComment> | getDocs()
java.lang.String | getName()
Node | getParent()
java.lang.String | getPkgName()
abstract java.lang.String | getQualName()
Session | getSession()
java.lang.String | getSummary()
abstract java.lang.String | getXmlTag()
boolean | hasAttr(java.lang.String id)
boolean | isExternal()
boolean | isFinal()
boolean | isInst()
boolean | isInter()
boolean | isInternal()
boolean | isMeta()
boolean | isMod()
boolean | isNodoc()
boolean | isOver()
boolean | isReadonly()
boolean | isStatic()
boolean | isSys()
XDoc | makeXDoc()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Node

public Node()
Method Detail

attrBool

public boolean attrBool(java.lang.String id)

attrInt

public int attrInt(java.lang.String id)

attrString

public java.lang.String attrString(java.lang.String id)

compareTo

public int compareTo(Node n)
Specified by:
compareTo in interface java.lang.Comparable<Node>

getAttrMap

public final java.util.Map<java.lang.String,Attr> getAttrMap()

getChildren

public abstract java.util.List<? extends Node> getChildren()

getDocs

public final java.util.List<DocComment> getDocs()

getName

public java.lang.String getName()

getAtom

public Atom getAtom()

getSummary

public final java.lang.String getSummary()

getParent

public Node getParent()

getPkgName

public java.lang.String getPkgName()

getSession

public Session getSession()

getQualName

public abstract java.lang.String getQualName()

getXmlTag

public abstract java.lang.String getXmlTag()

hasAttr

public boolean hasAttr(java.lang.String id)

isExternal

public final boolean isExternal()

isFinal

public final boolean isFinal()

isInter

public final boolean isInter()

isInternal

public final boolean isInternal()

isInst

public final boolean isInst()

isMeta

public final boolean isMeta()

isMod

public final boolean isMod()

isNodoc

public final boolean isNodoc()

isOver

public final boolean isOver()

isReadonly

public final boolean isReadonly()

isStatic

public final boolean isStatic()

isSys

public final boolean isSys()

makeXDoc

public final XDoc makeXDoc()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


xdc.services.spec

Package Class Tree Deprecated Index Help
PREV PACKAGE NEXT PACKAGE FRAMES NO FRAMES

Package xdc.services.spec

Interface Summary
Decl.Annexable
Decl.AuxDef
Decl.IsType
Decl.LocalUnit
Decl.OverridableDef
Decl.Signature
Decl.Sizeable
Expr.Aggregate

Class Summary
Atom | The class that represents a token in a specification file.
Attr |
BrowserSession |
Cache | Cache of spec objects for a session.
Decl |
Decl.Arg |
Decl.Config |
Decl.Const |
Decl.Enum |
Decl.EnumVal |
Decl.Extern |
Decl.Field |
Decl.Fxn |
Decl.Proxy |
Decl.Struct |
Decl.Typedef |
DocComment |
Expr |
Expr.Array |
Expr.Binary |
Expr.Cond |
Expr.Const |
Expr.Creat |
Expr.Hash |
Expr.Paren |
Expr.Term |
Expr.Unary |
GrammarLexer |
GrammarParser |
Import |
Node | Abstract superclass for any formally declared object in a .xdc file.
ParserSession |
Persist | Spec serialization and deserialization support.
Persist.Fixup | Serialized form of a reference to a Node in another package.
Persist.Input | ObjectInputStream that reconstructs references to foreign packages.
Persist.Output | OutputOutputStream that restricts to the current package.
Pkg |
Ref |
Reserved |
Session |
Sup |
Test |
Type |
Type.Array |
Type.Creator |
Type.Declarator |
Type.Fxn |
Type.Paren |
Type.Ptr |
Type.Spec |
Unit |
XDoc |

Enum Summary
Decl.Signature.ObjKind
Qual
Type.Array.Kind
Type.Modifier

Exception Summary
SessionRuntimeException

Package Class Tree Deprecated Index Help
PREV PACKAGE NEXT PACKAGE FRAMES NO FRAMES


xdc.services.spec Class Hierarchy

Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES

Hierarchy For Package xdc.services.spec

Class Hierarchy

  • java.lang.Object
    • xdc.services.spec.Attr (implements java.io.Serializable)
    • org.antlr.runtime.BaseRecognizer
      • org.antlr.runtime.Lexer (implements org.antlr.runtime.TokenSource)
        • xdc.services.spec.GrammarLexer
      • org.antlr.runtime.Parser
        • xdc.services.spec.GrammarParser
    • xdc.services.spec.Cache
    • org.antlr.runtime.CommonToken (implements java.io.Serializable, org.antlr.runtime.Token)
      • xdc.services.spec.Atom (implements java.io.Serializable)
    • xdc.services.spec.DocComment (implements java.io.Serializable)
    • xdc.services.spec.Expr (implements java.io.Serializable)
      • xdc.services.spec.Expr.Array (implements xdc.services.spec.Expr.Aggregate)
      • xdc.services.spec.Expr.Binary
      • xdc.services.spec.Expr.Cond
      • xdc.services.spec.Expr.Const
      • xdc.services.spec.Expr.Creat
      • xdc.services.spec.Expr.Hash (implements xdc.services.spec.Expr.Aggregate)
      • xdc.services.spec.Expr.Paren
      • xdc.services.spec.Expr.Term
      • xdc.services.spec.Expr.Unary
    • xdc.services.spec.Import (implements java.io.Serializable)
    • java.io.InputStream (implements java.io.Closeable)
      • java.io.ObjectInputStream (implements java.io.ObjectInput, java.io.ObjectStreamConstants)
        • xdc.services.spec.Persist.Input
    • xdc.services.spec.Node (implements java.lang.Comparable<T>, java.io.Serializable)
      • xdc.services.spec.Decl
        • xdc.services.spec.Decl.Arg (implements xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Config (implements xdc.services.spec.Decl.Annexable, xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Const (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.OverridableDef, xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Enum (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.IsType, xdc.services.spec.Decl.Sizeable)
        • xdc.services.spec.Decl.EnumVal (implements xdc.services.spec.Decl.AuxDef)
        • xdc.services.spec.Decl.Extern (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Field (implements xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Fxn (implements xdc.services.spec.Decl.Annexable, xdc.services.spec.Decl.Signature)
        • xdc.services.spec.Decl.Proxy (implements xdc.services.spec.Decl.LocalUnit)
        • xdc.services.spec.Decl.Struct (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.IsType, xdc.services.spec.Decl.Sizeable)
        • xdc.services.spec.Decl.Typedef (implements xdc.services.spec.Decl.AuxDef, xdc.services.spec.Decl.IsType, xdc.services.spec.Decl.Signature, xdc.services.spec.Decl.Sizeable)
      • xdc.services.spec.Pkg
      • xdc.services.spec.Unit
    • java.io.OutputStream (implements java.io.Closeable, java.io.Flushable)
      • java.io.ObjectOutputStream (implements java.io.ObjectOutput, java.io.ObjectStreamConstants)
        • xdc.services.spec.Persist.Output
    • xdc.services.spec.Persist
    • xdc.services.spec.Persist.Fixup (implements java.io.Serializable)
    • xdc.services.spec.Ref (implements java.io.Serializable)
    • xdc.services.spec.Reserved
    • xdc.services.spec.Session
      • xdc.services.spec.BrowserSession
      • xdc.services.spec.ParserSession
    • xdc.services.spec.Sup (implements java.io.Serializable)
    • xdc.services.spec.Test
    • java.lang.Throwable (implements java.io.Serializable)
      • java.lang.Exception
        • java.lang.RuntimeException
          • org.mozilla.javascript.RhinoException
            • org.mozilla.javascript.EvaluatorException
              • xdc.services.spec.SessionRuntimeException
    • xdc.services.spec.Type (implements java.io.Serializable)
      • xdc.services.spec.Type.Array
      • xdc.services.spec.Type.Creator
      • xdc.services.spec.Type.Declarator
      • xdc.services.spec.Type.Fxn
      • xdc.services.spec.Type.Paren
      • xdc.services.spec.Type.Ptr
      • xdc.services.spec.Type.Spec
    • xdc.services.spec.XDoc

Interface Hierarchy

  • xdc.services.spec.Decl.Annexable
  • xdc.services.spec.Decl.AuxDef
  • xdc.services.spec.Decl.IsType
  • xdc.services.spec.Decl.LocalUnit
  • xdc.services.spec.Decl.OverridableDef
  • xdc.services.spec.Decl.Signature
  • xdc.services.spec.Decl.Sizeable
  • xdc.services.spec.Expr.Aggregate

Enum Hierarchy

  • java.lang.Object
    • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
      • xdc.services.spec.Type.Array.Kind
      • xdc.services.spec.Qual
      • xdc.services.spec.Type.Modifier
      • xdc.services.spec.Decl.Signature.ObjKind
Package Class Tree Deprecated Index Help
PREV NEXT FRAMES NO FRAMES


ParserSession

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class ParserSession

java.lang.Object
    extended by  xdc.services.spec.Session
        extended by  xdc.services.spec.ParserSession

public class ParserSession
extends Session

Field Summary
Fields inherited from class xdc.services.spec.Session
msg
Constructor Summary
ParserSession()
No arg constructor
ParserSession(xdc.services.global.Env env)
Create a parser session with a given environment
ParserSession(xdc.services.global.Env env, Cache cache)
Method Summary
Pkg | compile(java.lang.String pkgFile)
void | save()
void | save(java.io.File pdir)
Pkg | scan(java.lang.String pkgFile)
boolean | setStrict(boolean strict)
void | setVerbose(boolean verbose)
Methods inherited from class xdc.services.spec.Session
findDecl, findDecl, findPkg, findUnit, findUnit, getEnv, getVers, setEnv, setErr, setWarnings
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

ParserSession

public ParserSession()
No arg constructor

ParserSession

public ParserSession(xdc.services.global.Env env)
Create a parser session with a given environment

ParserSession

public ParserSession(xdc.services.global.Env env,
                     Cache cache)
Method Detail

compile

public Pkg compile(java.lang.String pkgFile)

save

public void save()

save

public void save(java.io.File pdir)

scan

public Pkg scan(java.lang.String pkgFile)

setVerbose

public void setVerbose(boolean verbose)

setStrict

public boolean setStrict(boolean strict)
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Persist

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Persist

java.lang.Object
    extended by  xdc.services.spec.Persist

public class Persist
extends java.lang.Object

Spec serialization and deserialization support. On serialization, prunes references to spec objects in other packages and fixes them up on deserialization.

Nested Class Summary
static class | Persist.Fixup Serialized form of a reference to a Node in another package.
static class | Persist.Input ObjectInputStream that reconstructs references to foreign packages.
static class | Persist.Output OutputOutputStream that restricts to the current package.
Constructor Summary
Persist()
Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Persist

public Persist()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Persist.Fixup

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Persist.Fixup

java.lang.Object
    extended by  xdc.services.spec.Persist.Fixup
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Persist
public static class Persist.Fixup
extends java.lang.Object
implements java.io.Serializable

Serialized form of a reference to a Node in another package.

See Also:
Serialized Form

Constructor Summary
Persist.Fixup(Node n)
Method Summary
java.lang.String | getDeclName()
java.lang.String | getPkgName()
java.lang.String | getQualName()
boolean | isPkg()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Persist.Fixup

public Persist.Fixup(Node n)
Method Detail

getPkgName

public java.lang.String getPkgName()

getQualName

public java.lang.String getQualName()

getDeclName

public java.lang.String getDeclName()

isPkg

public boolean isPkg()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Persist.Input

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Persist.Input

java.lang.Object
    extended by  java.io.InputStream
        extended by  java.io.ObjectInputStream
            extended by  xdc.services.spec.Persist.Input
All Implemented Interfaces:
java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants
Enclosing class:
Persist
public static class Persist.Input
extends java.io.ObjectInputStream

ObjectInputStream that reconstructs references to foreign packages.

Nested Class Summary
Nested classes/interfaces inherited from class java.io.ObjectInputStream
java.io.ObjectInputStream.GetField
Field Summary
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
Constructor Summary
Persist.Input(java.lang.String pkgName, java.io.InputStream in, BrowserSession ses)
Method Summary
protected  java.lang.Object resolveObject(java.lang.Object obj)
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveClass, resolveProxyClass, skipBytes
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset, skip
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.io.ObjectInput
read, skip

Constructor Detail

Persist.Input

public Persist.Input(java.lang.String pkgName,
                     java.io.InputStream in,
                     BrowserSession ses)
              throws java.io.IOException
Throws:
java.io.IOException
Method Detail

resolveObject

protected java.lang.Object resolveObject(java.lang.Object obj)
                                  throws java.io.IOException
Overrides:
resolveObject in class java.io.ObjectInputStream
Throws:
java.io.IOException
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Persist.Output

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Persist.Output

java.lang.Object
    extended by  java.io.OutputStream
        extended by  java.io.ObjectOutputStream
            extended by  xdc.services.spec.Persist.Output
All Implemented Interfaces:
java.io.Closeable, java.io.DataOutput, java.io.Flushable, java.io.ObjectOutput, java.io.ObjectStreamConstants
Enclosing class:
Persist
public static class Persist.Output
extends java.io.ObjectOutputStream

OutputOutputStream that restricts to the current package. Whenever this ObjectOutputStream sees a reference to a node in another package, it replaces the referenced Node with instructions to fix up that reference on deserialization.

Nested Class Summary
Nested classes/interfaces inherited from class java.io.ObjectOutputStream
java.io.ObjectOutputStream.PutField
Field Summary
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
Constructor Summary
Persist.Output(java.io.OutputStream out, java.lang.String curPkg)
Method Summary
protected  java.lang.Object replaceObject(java.lang.Object obj)
Inspect each object before serialization.
Methods inherited from class java.io.ObjectOutputStream
annotateClass, annotateProxyClass, close, defaultWriteObject, drain, enableReplaceObject, flush, putFields, reset, useProtocolVersion, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeClassDescriptor, writeDouble, writeFields, writeFloat, writeInt, writeLong, writeObject, writeObjectOverride, writeShort, writeStreamHeader, writeUnshared, writeUTF
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Persist.Output

public Persist.Output(java.io.OutputStream out,
                      java.lang.String curPkg)
               throws java.io.IOException
Throws:
java.io.IOException
Method Detail

replaceObject

protected java.lang.Object replaceObject(java.lang.Object obj)
                                  throws java.io.IOException
Inspect each object before serialization. If the object is a reference to a node in a different package, replace it with a Fixup.

Overrides:
replaceObject in class java.io.ObjectOutputStream
Throws:
java.io.IOException
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Pkg

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Pkg

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Pkg
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>
public class Pkg
extends Node

See Also:
Serialized Form

Method Summary
java.lang.String | getBaseDir()
java.util.List<Unit> | getChildren()
java.util.List<Atom> | getInterNames()
java.lang.String | getKey()
java.util.List<java.lang.String> | getLocalSpecs()
java.util.List<java.lang.String> | getMiscSrcs()
java.util.List<Atom> | getModNames()
java.util.List<java.lang.String> | getOtherSpecs()
java.lang.String | getPkgName()
java.lang.String | getProviderId()
java.lang.String | getQualName()
java.lang.String | getReleaseVersion()
java.lang.String | getRepository()
java.util.List<Atom> | getRequires()
java.util.List<Unit> | getUnits()
java.lang.String | getVersion()
java.lang.String | getXmlTag()
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getBaseDir

public final java.lang.String getBaseDir()

getRepository

public final java.lang.String getRepository()

getChildren

public final java.util.List<Unit> getChildren()
Specified by:
getChildren in class Node

getInterNames

public final java.util.List<Atom> getInterNames()

getModNames

public final java.util.List<Atom> getModNames()

getRequires

public final java.util.List<Atom> getRequires()

getQualName

public final java.lang.String getQualName()
Specified by:
getQualName in class Node

getPkgName

public final java.lang.String getPkgName()
Overrides:
getPkgName in class Node

getLocalSpecs

public final java.util.List<java.lang.String> getLocalSpecs()

getMiscSrcs

public final java.util.List<java.lang.String> getMiscSrcs()

getOtherSpecs

public final java.util.List<java.lang.String> getOtherSpecs()

getUnits

public final java.util.List<Unit> getUnits()

getKey

public final java.lang.String getKey()

getVersion

public final java.lang.String getVersion()

getReleaseVersion

public final java.lang.String getReleaseVersion()

getProviderId

public final java.lang.String getProviderId()

getXmlTag

public final java.lang.String getXmlTag()
Specified by:
getXmlTag in class Node
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Qual

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD DETAIL: ENUM CONSTANTS | FIELD | METHOD

xdc.services.spec
Enum Qual

java.lang.Object
    extended by  java.lang.Enum<Qual>
        extended by  xdc.services.spec.Qual
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Qual>
public enum Qual
extends java.lang.Enum<Qual>

Enum Constant Summary
FINAL
INSTANCE
INTERFACE
INTERNAL
METAONLY
MODULE
OVERRIDE
READONLY
SYSTEM
Method Summary
static Qual | valueOf(java.lang.String name) Returns the enum constant of this type with the specified name.
static Qual[] | values() Returns an array containing the constants of this enum type, in the order they're declared.
Methods inherited from class java.lang.Enum
clone, compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait

Enum Constant Detail

FINAL

public static final Qual FINAL

INSTANCE

public static final Qual INSTANCE

INTERFACE

public static final Qual INTERFACE

INTERNAL

public static final Qual INTERNAL

METAONLY

public static final Qual METAONLY

MODULE

public static final Qual MODULE

OVERRIDE

public static final Qual OVERRIDE

READONLY

public static final Qual READONLY

SYSTEM

public static final Qual SYSTEM
Method Detail

values

public static final Qual[] values()
Returns an array containing the constants of this enum type, in the order they're declared. This method may be used to iterate over the constants as follows:
for(Qual c : Qual.values())
        System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they're declared

valueOf

public static Qual valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD DETAIL: ENUM CONSTANTS | FIELD | METHOD


Ref

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Ref

java.lang.Object
    extended by  xdc.services.spec.Ref
All Implemented Interfaces:
java.io.Serializable
public class Ref
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Constructor Summary
Ref(java.lang.String name)
External constructor.
Method Summary
java.lang.String | getId()
Node | getNode()
Decl.Proxy | getProxy()
java.lang.String | getScope()
boolean | isGlobal()
Unit | resolve(Unit uspec, boolean local) Resolve this reference.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Ref

public Ref(java.lang.String name)
External constructor. Simple constructor that provides no file or line number information for the source of the reference.

Method Detail

getId

public final java.lang.String getId()

getNode

public final Node getNode()

getProxy

public final Decl.Proxy getProxy()

getScope

public final java.lang.String getScope()

isGlobal

public final boolean isGlobal()

resolve

public Unit resolve(Unit uspec,
                    boolean local)
Resolve this reference.

Parameters:
uspec - the module or interface making this reference.
local - if true, the reference is to a decl within the same unit making the reference. The text of the reference excludes the name of the unit.
Returns:
the unit that exports the referenced declaration. It is up to the caller to descend into the unit to find the actual declaration.
Throws:
SessionRuntimeException - if can't be resolved.
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Reserved

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Reserved

java.lang.Object
    extended by  xdc.services.spec.Reserved

public class Reserved
extends java.lang.Object

Constructor Summary
Reserved()
Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Reserved

public Reserved()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Session

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Session

java.lang.Object
    extended by  xdc.services.spec.Session
Direct Known Subclasses:
BrowserSession, ParserSession
public abstract class Session
extends java.lang.Object

Field Summary
protected  xdc.services.spec.Msg msg
Constructor Summary
Session()
Session(xdc.services.global.Env env)
Session(xdc.services.global.Env env, Cache cache)
Method Summary
Decl | findDecl(java.lang.String qn)
Decl | findDecl(Unit unit, java.lang.String n)
Pkg | findPkg(java.lang.String qn)
Unit | findUnit(Pkg pkg, java.lang.String n)
Unit | findUnit(java.lang.String qn)
xdc.services.global.Env | getEnv()
int | getVers()
void | setEnv(xdc.services.global.Env env)
void | setErr(java.io.PrintWriter err)
boolean | setWarnings(boolean warnings)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

msg

protected xdc.services.spec.Msg msg
Constructor Detail

Session

public Session()

Session

public Session(xdc.services.global.Env env)

Session

public Session(xdc.services.global.Env env,
               Cache cache)
Method Detail

setEnv

public void setEnv(xdc.services.global.Env env)

getEnv

public xdc.services.global.Env getEnv()

setErr

public void setErr(java.io.PrintWriter err)

setWarnings

public boolean setWarnings(boolean warnings)

findDecl

public Decl findDecl(Unit unit,
                     java.lang.String n)

findDecl

public Decl findDecl(java.lang.String qn)

findPkg

public Pkg findPkg(java.lang.String qn)

findUnit

public Unit findUnit(Pkg pkg,
                     java.lang.String n)

findUnit

public Unit findUnit(java.lang.String qn)

getVers

public int getVers()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


SessionRuntimeException

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class SessionRuntimeException

java.lang.Object
    extended by  java.lang.Throwable
        extended by  java.lang.Exception
            extended by  java.lang.RuntimeException
                extended by  org.mozilla.javascript.RhinoException
                    extended by  org.mozilla.javascript.EvaluatorException
                        extended by  xdc.services.spec.SessionRuntimeException
All Implemented Interfaces:
java.io.Serializable
public class SessionRuntimeException
extends org.mozilla.javascript.EvaluatorException

See Also:
Serialized Form

Constructor Summary
SessionRuntimeException(java.lang.String message)
Method Summary
Methods inherited from class org.mozilla.javascript.EvaluatorException
getColumnNumber, getLineNumber, getLineSource, getSourceName
Methods inherited from class org.mozilla.javascript.RhinoException
columnNumber, details, getMessage, getScriptStackTrace, getScriptStackTrace, initColumnNumber, initLineNumber, initLineSource, initSourceName, lineNumber, lineSource, printStackTrace, printStackTrace, sourceName
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, initCause, printStackTrace, setStackTrace, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Constructor Detail

SessionRuntimeException

public SessionRuntimeException(java.lang.String message)
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Sup

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Sup

java.lang.Object
    extended by  xdc.services.spec.Sup
All Implemented Interfaces:
java.io.Serializable
public class Sup
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Method Summary
 Unit getUnit()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getUnit

public final Unit getUnit()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Test

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Test

java.lang.Object
    extended by  xdc.services.spec.Test

public class Test
extends java.lang.Object

Constructor Summary
Test()
Method Summary
void | addNums(java.lang.Integer... vals)
xdc.services.spec.Test.Color | getColor()
java.util.Vector<java.lang.Integer> | getVec()
static void | talk()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

Test

public Test()
Method Detail

talk

public static void talk()

addNums

public void addNums(java.lang.Integer... vals)

getVec

public java.util.Vector<java.lang.Integer> getVec()

getColor

public xdc.services.spec.Test.Color getColor()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Type

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Type

java.lang.Object
    extended by  xdc.services.spec.Type
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
Type.Array, Type.Creator, Type.Declarator, Type.Fxn, Type.Paren, Type.Ptr, Type.Spec
public class Type
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Nested Class Summary
static class | Type.Array
static class | Type.Creator
static class | Type.Declarator
static class | Type.Fxn
static class | Type.Modifier
static class | Type.Paren
static class | Type.Ptr
static class | Type.Spec
Field Summary
static java.lang.String | ARG
static java.lang.String | CHAR
static java.lang.String | DOUBLE
static java.lang.String | FLOAT
static java.lang.String | FXN
static java.lang.String | INT
static java.lang.String | INT16
static java.lang.String | INT32
static java.lang.String | INT40
static java.lang.String | INT64
static java.lang.String | INT8
static java.lang.String | LONG
static java.lang.String | LONGDOUBLE
static java.lang.String | LONGLONG
static java.lang.String | PTR
static java.lang.String | SHORT
static java.lang.String | SIZE
Constructor Summary
Type()
Method Summary
java.lang.String | ptrsig()
Type | raw()
Type | root()
void | sizeof(java.util.List<java.lang.String> sL)
java.lang.String | tcode()
Type | term()
java.lang.String | tsig()
Type.Spec | tspec()
java.lang.String | xmlsig()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

ARG

public static final java.lang.String ARG
See Also:
Constant Field Values

CHAR

public static final java.lang.String CHAR
See Also:
Constant Field Values

DOUBLE

public static final java.lang.String DOUBLE
See Also:
Constant Field Values

FLOAT

public static final java.lang.String FLOAT
See Also:
Constant Field Values

FXN

public static final java.lang.String FXN
See Also:
Constant Field Values

INT

public static final java.lang.String INT
See Also:
Constant Field Values

INT8

public static final java.lang.String INT8
See Also:
Constant Field Values

INT16

public static final java.lang.String INT16
See Also:
Constant Field Values

INT32

public static final java.lang.String INT32
See Also:
Constant Field Values

INT40

public static final java.lang.String INT40
See Also:
Constant Field Values

INT64

public static final java.lang.String INT64
See Also:
Constant Field Values

LONG

public static final java.lang.String LONG
See Also:
Constant Field Values

LONGDOUBLE

public static final java.lang.String LONGDOUBLE
See Also:
Constant Field Values

LONGLONG

public static final java.lang.String LONGLONG
See Also:
Constant Field Values

PTR

public static final java.lang.String PTR
See Also:
Constant Field Values

SHORT

public static final java.lang.String SHORT
See Also:
Constant Field Values

SIZE

public static final java.lang.String SIZE
See Also:
Constant Field Values
Constructor Detail

Type

public Type()
Method Detail

ptrsig

public java.lang.String ptrsig()

raw

public Type raw()

root

public Type root()

sizeof

public void sizeof(java.util.List<java.lang.String> sL)

tcode

public final java.lang.String tcode()

tsig

public final java.lang.String tsig()

term

public Type term()

tspec

public Type.Spec tspec()

xmlsig

public java.lang.String xmlsig()
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Type.Array

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Type.Array

java.lang.Object
    extended by  xdc.services.spec.Type
        extended by  xdc.services.spec.Type.Array
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Type
public static class Type.Array
extends Type

See Also:
Serialized Form

Nested Class Summary
static class Type.Array.Kind
Nested classes/interfaces inherited from class xdc.services.spec.Type
Type.Array, Type.Creator, Type.Declarator, Type.Fxn, Type.Modifier, Type.Paren, Type.Ptr, Type.Spec
Field Summary
Fields inherited from class xdc.services.spec.Type
ARG, CHAR, DOUBLE, FLOAT, FXN, INT, INT16, INT32, INT40, INT64, INT8, LONG, LONGDOUBLE, LONGLONG, PTR, SHORT, SIZE
Method Summary
Type | getBase()
Expr | getDim()
Type.Array.Kind | getKind()
boolean | isC()
boolean | isMap()
boolean | isVec()
Type | root()
java.lang.String | sig(int kind)
void | sizeof(java.util.List<java.lang.String> sL)
Type | term()
Type.Spec | tspec()
Methods inherited from class xdc.services.spec.Type
ptrsig, raw, tcode, tsig, xmlsig
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getBase

public final Type getBase()

getDim

public final Expr getDim()

getKind

public final Type.Array.Kind getKind()

isC

public final boolean isC()

isMap

public final boolean isMap()

isVec

public final boolean isVec()

root

public Type root()
Overrides:
root in class Type

sig

public java.lang.String sig(int kind)

sizeof

public void sizeof(java.util.List<java.lang.String> sL)
Overrides:
sizeof in class Type

term

public Type term()
Overrides:
term in class Type

tspec

public Type.Spec tspec()
Overrides:
tspec in class Type
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Type.Array.Kind

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD DETAIL: ENUM CONSTANTS | FIELD | METHOD

xdc.services.spec
Enum Type.Array.Kind

java.lang.Object
    extended by  java.lang.Enum<Type.Array.Kind>
        extended by  xdc.services.spec.Type.Array.Kind
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Type.Array.Kind>
Enclosing class:
Type.Array
public static enum Type.Array.Kind
extends java.lang.Enum<Type.Array.Kind>

Enum Constant Summary
CARR
MAP
VEC
Method Summary
static Type.Array.Kind | valueOf(java.lang.String name) Returns the enum constant of this type with the specified name.
static Type.Array.Kind[] | values() Returns an array containing the constants of this enum type, in the order they're declared.
Methods inherited from class java.lang.Enum
clone, compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait

Enum Constant Detail

CARR

public static final Type.Array.Kind CARR

MAP

public static final Type.Array.Kind MAP

VEC

public static final Type.Array.Kind VEC
Method Detail

values

public static final Type.Array.Kind[] values()
Returns an array containing the constants of this enum type, in the order they're declared. This method may be used to iterate over the constants as follows:
for(Type.Array.Kind c : Type.Array.Kind.values())
        System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they're declared

valueOf

public static Type.Array.Kind valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD DETAIL: ENUM CONSTANTS | FIELD | METHOD


Type.Creator

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Type.Creator

java.lang.Object
    extended by  xdc.services.spec.Type
        extended by  xdc.services.spec.Type.Creator
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Type
public static class Type.Creator
extends Type

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Type
Type.Array, Type.Creator, Type.Declarator, Type.Fxn, Type.Modifier, Type.Paren, Type.Ptr, Type.Spec
Field Summary
Fields inherited from class xdc.services.spec.Type
ARG, CHAR, DOUBLE, FLOAT, FXN, INT, INT16, INT32, INT40, INT64, INT8, LONG, LONGDOUBLE, LONGLONG, PTR, SHORT, SIZE
Method Summary
 java.lang.String xmlsig()
Methods inherited from class xdc.services.spec.Type
ptrsig, raw, root, sizeof, tcode, term, tsig, tspec
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

xmlsig

public java.lang.String xmlsig()
Overrides:
xmlsig in class Type
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Type.Declarator

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Type.Declarator

java.lang.Object
    extended by  xdc.services.spec.Type
        extended by  xdc.services.spec.Type.Declarator
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Type
public static class Type.Declarator
extends Type

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Type
Type.Array, Type.Creator, Type.Declarator, Type.Fxn, Type.Modifier, Type.Paren, Type.Ptr, Type.Spec
Field Summary
Fields inherited from class xdc.services.spec.Type
ARG, CHAR, DOUBLE, FLOAT, FXN, INT, INT16, INT32, INT40, INT64, INT8, LONG, LONGDOUBLE, LONGLONG, PTR, SHORT, SIZE
Method Summary
java.lang.String | getId()
void | sizeof(java.util.List<java.lang.String> sL)
Type.Spec | tspec()
Methods inherited from class xdc.services.spec.Type
ptrsig, raw, root, tcode, term, tsig, xmlsig
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getId

public final java.lang.String getId()

sizeof

public void sizeof(java.util.List<java.lang.String> sL)
Overrides:
sizeof in class Type

tspec

public Type.Spec tspec()
Overrides:
tspec in class Type
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Type.Fxn

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Type.Fxn

java.lang.Object
    extended by  xdc.services.spec.Type
        extended by  xdc.services.spec.Type.Fxn
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Type
public static class Type.Fxn
extends Type

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Type
Type.Array, Type.Creator, Type.Declarator, Type.Fxn, Type.Modifier, Type.Paren, Type.Ptr, Type.Spec
Field Summary
Fields inherited from class xdc.services.spec.Type
ARG, CHAR, DOUBLE, FLOAT, FXN, INT, INT16, INT32, INT40, INT64, INT8, LONG, LONGDOUBLE, LONGLONG, PTR, SHORT, SIZE
Method Summary
java.util.List<Decl.Arg> | getArgs()
Type | getBase()
boolean | isVarg()
Type | root()
void | sizeof(java.util.List<java.lang.String> sL)
Type.Spec | tspec()
Methods inherited from class xdc.services.spec.Type
ptrsig, raw, tcode, term, tsig, xmlsig
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getArgs

public final java.util.List<Decl.Arg> getArgs()

getBase

public final Type getBase()

isVarg

public final boolean isVarg()

root

public Type root()
Overrides:
root in class Type

sizeof

public void sizeof(java.util.List<java.lang.String> sL)
Overrides:
sizeof in class Type

tspec

public Type.Spec tspec()
Overrides:
tspec in class Type
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Type.Modifier

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD DETAIL: ENUM CONSTANTS | FIELD | METHOD

xdc.services.spec
Enum Type.Modifier

java.lang.Object
    extended by  java.lang.Enum<Type.Modifier>
        extended by  xdc.services.spec.Type.Modifier
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Type.Modifier>
Enclosing class:
Type
public static enum Type.Modifier
extends java.lang.Enum<Type.Modifier>

Enum Constant Summary
CONST
RESTRICT
VOLATILE
Method Summary
static Type.Modifier | valueOf(java.lang.String name) Returns the enum constant of this type with the specified name.
static Type.Modifier[] | values() Returns an array containing the constants of this enum type, in the order they're declared.
Methods inherited from class java.lang.Enum
clone, compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait

Enum Constant Detail

CONST

public static final Type.Modifier CONST

RESTRICT

public static final Type.Modifier RESTRICT

VOLATILE

public static final Type.Modifier VOLATILE
Method Detail

values

public static final Type.Modifier[] values()
Returns an array containing the constants of this enum type, in the order they're declared. This method may be used to iterate over the constants as follows:
for(Type.Modifier c : Type.Modifier.values())
        System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they're declared

valueOf

public static Type.Modifier valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD DETAIL: ENUM CONSTANTS | FIELD | METHOD


Type.Paren

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Type.Paren

java.lang.Object
    extended by  xdc.services.spec.Type
        extended by  xdc.services.spec.Type.Paren
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Type
public static class Type.Paren
extends Type

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Type
Type.Array, Type.Creator, Type.Declarator, Type.Fxn, Type.Modifier, Type.Paren, Type.Ptr, Type.Spec
Field Summary
Fields inherited from class xdc.services.spec.Type
ARG, CHAR, DOUBLE, FLOAT, FXN, INT, INT16, INT32, INT40, INT64, INT8, LONG, LONGDOUBLE, LONGLONG, PTR, SHORT, SIZE
Method Summary
Type | getBase()
Type | root()
void | sizeof(java.util.List<java.lang.String> sL)
Type | term()
Type.Spec | tspec()
Methods inherited from class xdc.services.spec.Type
ptrsig, raw, tcode, tsig, xmlsig
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getBase

public final Type getBase()

root

public Type root()
Overrides:
root in class Type

sizeof

public void sizeof(java.util.List<java.lang.String> sL)
Overrides:
sizeof in class Type

term

public Type term()
Overrides:
term in class Type

tspec

public Type.Spec tspec()
Overrides:
tspec in class Type
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Type.Ptr

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Type.Ptr

java.lang.Object
    extended by  xdc.services.spec.Type
        extended by  xdc.services.spec.Type.Ptr
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Type
public static class Type.Ptr
extends Type

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Type
Type.Array, Type.Creator, Type.Declarator, Type.Fxn, Type.Modifier, Type.Paren, Type.Ptr, Type.Spec
Field Summary
Fields inherited from class xdc.services.spec.Type
ARG, CHAR, DOUBLE, FLOAT, FXN, INT, INT16, INT32, INT40, INT64, INT8, LONG, LONGDOUBLE, LONGLONG, PTR, SHORT, SIZE
Method Summary
Type | getBase()
java.util.EnumSet<Type.Modifier> | getMods()
Type | root()
void | sizeof(java.util.List<java.lang.String> sL)
Type.Spec | tspec()
Methods inherited from class xdc.services.spec.Type
ptrsig, raw, tcode, term, tsig, xmlsig
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getBase

public final Type getBase()

getMods

public final java.util.EnumSet<Type.Modifier> getMods()

root

public Type root()
Overrides:
root in class Type

sizeof

public void sizeof(java.util.List<java.lang.String> sL)
Overrides:
sizeof in class Type

tspec

public Type.Spec tspec()
Overrides:
tspec in class Type
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Type.Spec

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Type.Spec

java.lang.Object
    extended by  xdc.services.spec.Type
        extended by  xdc.services.spec.Type.Spec
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
Type
public static class Type.Spec
extends Type

See Also:
Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class xdc.services.spec.Type
Type.Array, Type.Creator, Type.Declarator, Type.Fxn, Type.Modifier, Type.Paren, Type.Ptr, Type.Spec
Field Summary
Fields inherited from class xdc.services.spec.Type
ARG, CHAR, DOUBLE, FLOAT, FXN, INT, INT16, INT32, INT40, INT64, INT8, LONG, LONGDOUBLE, LONGLONG, PTR, SHORT, SIZE
Method Summary
java.util.EnumSet<Type.Modifier> | getMods()
Ref | getRef()
java.lang.String | getStd()
boolean | isUns()
void | sizeof(java.util.List<java.lang.String> sL)
java.lang.String | xmlsig()
Methods inherited from class xdc.services.spec.Type
ptrsig, raw, root, tcode, term, tsig, tspec
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

getMods

public final java.util.EnumSet<Type.Modifier> getMods()

getRef

public final Ref getRef()

getStd

public final java.lang.String getStd()

isUns

public final boolean isUns()

sizeof

public void sizeof(java.util.List<java.lang.String> sL)
Overrides:
sizeof in class Type

xmlsig

public java.lang.String xmlsig()
Overrides:
xmlsig in class Type
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


Unit

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class Unit

java.lang.Object
    extended by  xdc.services.spec.Node
        extended by  xdc.services.spec.Unit
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Node>
public class Unit
extends Node

See Also:
Serialized Form

Method Summary
Decl | decl(java.lang.String name) Deprecated. replaced by getDecl(String)
Unit | delegatesTo()
java.util.List<Decl.Fxn> | getAllFxns()
java.util.List<Decl> | getChildren()
java.util.List<Decl.Config> | getConfigs()
Decl.Fxn | getCreator()
Decl | getDecl(java.lang.String name) Get the named declaration from this unit.
java.util.List<Decl> | getDecls()
java.util.Set<Unit> | getEmbeds()
java.util.List<Decl.Fxn> | getFxns()
java.util.List<Unit> | getInherits()
java.util.List<Decl.Fxn> | getInternFxns()
java.lang.String | getPkgName()
java.util.List<Unit> | getProxies()
java.lang.String | getQualName()
Unit | getSuper()
java.util.Set<Unit> | getUses()
java.lang.String | getXmlTag()
boolean | hasCreateArgs()
boolean | hasCustHdr()
boolean | hasInstObj()
boolean | isForwarding()
boolean | isHeir()
boolean | isProxy()
boolean | isSized()
boolean | needsRuntime()
java.lang.String | queryFacet(java.lang.String tName) Query unit for the specified facet type
Methods inherited from class xdc.services.spec.Node
attrBool, attrInt, attrString, compareTo, getAtom, getAttrMap, getDocs, getName, getParent, getSession, getSummary, hasAttr, isExternal, isFinal, isInst, isInter, isInternal, isMeta, isMod, isNodoc, isOver, isReadonly, isStatic, isSys, makeXDoc
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

decl

@Deprecated
public final Decl decl(java.lang.String name)
Deprecated. replaced by getDecl(String)

delegatesTo

public final Unit delegatesTo()

getAllFxns

public final java.util.List<Decl.Fxn> getAllFxns()

getCreator

public final Decl.Fxn getCreator()

getChildren

public java.util.List<Decl> getChildren()
Specified by:
getChildren in class Node

getConfigs

public final java.util.List<Decl.Config> getConfigs()

getDecl

public final Decl getDecl(java.lang.String name)
Get the named declaration from this unit. This method returns the most specific declaration named by name for this unit. If the named declaration does not exist, null is returned.

getDecls

public final java.util.List<Decl> getDecls()

getEmbeds

public final java.util.Set<Unit> getEmbeds()

getFxns

public final java.util.List<Decl.Fxn> getFxns()

getInherits

public final java.util.List<Unit> getInherits()

getInternFxns

public final java.util.List<Decl.Fxn> getInternFxns()

getProxies

public final java.util.List<Unit> getProxies()

getPkgName

public final java.lang.String getPkgName()
Overrides:
getPkgName in class Node

getQualName

public final java.lang.String getQualName()
Specified by:
getQualName in class Node

getSuper

public final Unit getSuper()

getUses

public final java.util.Set<Unit> getUses()

getXmlTag

public final java.lang.String getXmlTag()
Specified by:
getXmlTag in class Node

hasCustHdr

public final boolean hasCustHdr()

hasCreateArgs

public boolean hasCreateArgs()

isForwarding

public final boolean isForwarding()

isHeir

public final boolean isHeir()

isProxy

public final boolean isProxy()

isSized

public final boolean isSized()

hasInstObj

public final boolean hasInstObj()

needsRuntime

public final boolean needsRuntime()

queryFacet

public java.lang.String queryFacet(java.lang.String tName)
Query unit for the specified facet type

Returns:
the name of the config parameter that corresponds to the type named by tName
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD


XDoc

Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

xdc.services.spec
Class XDoc

java.lang.Object
    extended by  xdc.services.spec.XDoc

public class XDoc
extends java.lang.Object

Method Summary
void | addBeforeSect(java.lang.String key, java.lang.String lines)
void | addChild(java.lang.String key, java.lang.String lines)
XDoc | copy()
java.util.Map<java.lang.String,java.util.List<java.lang.String>> | getChild()
java.util.List<java.lang.String> | getDetails()
java.util.Map<java.lang.String,java.util.List<java.lang.String>> | getHeaders()
java.util.Map<java.lang.String,java.util.List<java.lang.String>> | getOthers()
java.lang.String | getSummary()
java.util.Map<java.lang.String,java.util.List<java.lang.String>> | getTrailers()
void | inherit(XDoc xdi)
boolean | isNodoc()
void | pushChild(java.lang.String key, java.lang.String lines)
void | pushDetails(java.lang.String lines)
void | setSummary(java.lang.String s)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail

addBeforeSect

public void addBeforeSect(java.lang.String key,
                          java.lang.String lines)

addChild

public void addChild(java.lang.String key,
                     java.lang.String lines)

copy

public XDoc copy()

getDetails

public final java.util.List<java.lang.String> getDetails()

getChild

public final java.util.Map<java.lang.String,java.util.List<java.lang.String>> getChild()

getHeaders

public final java.util.Map<java.lang.String,java.util.List<java.lang.String>> getHeaders()

getOthers

public final java.util.Map<java.lang.String,java.util.List<java.lang.String>> getOthers()

getSummary

public final java.lang.String getSummary()

getTrailers

public final java.util.Map<java.lang.String,java.util.List<java.lang.String>> getTrailers()

inherit

public final void inherit(XDoc xdi)

isNodoc

public final boolean isNodoc()

pushChild

public void pushChild(java.lang.String key,
                      java.lang.String lines)

pushDetails

public void pushDetails(java.lang.String lines)

setSummary

public final void setSummary(java.lang.String s)
Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD


[The "BSD licence"]
Copyright (c) 2003-2008 Terence Parr
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
 3. The name of the author may not be used to endorse or promote products
    derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


            GNU GENERAL PUBLIC LICENSE
               Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                          675 Mass Ave, Cambridge, MA 02139, USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

            GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

             END OF TERMS AND CONDITIONS

    Appendix: How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) 19yy  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) 19yy name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Library General
Public License instead of this License.


Eclipse Distribution License - Version 1.0

Eclipse Distribution License - v 1.0

Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the Eclipse Foundation, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Eclipse Public License - Version 1.0

Eclipse Public License - v 1.0

THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.

1. DEFINITIONS

"Contribution" means:

a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and

b) in the case of each subsequent Contributor:

i) changes to the Program, and

ii) additions to the Program;

where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.

"Contributor" means any person or entity that distributes the Program.

"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.

"Program" means the Contributions distributed in accordance with this Agreement.

"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.

2. GRANT OF RIGHTS

a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.

b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.

c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.

d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.

3. REQUIREMENTS

A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:

a) it complies with the terms and conditions of this Agreement; and

b) its license agreement:

i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;

ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;

iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and

iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.

When the Program is made available in source code form:

a) it must be made available under this Agreement; and

b) a copy of this Agreement must be included with each copy of the Program.

Contributors may not remove or alter any copyright notices contained within the Program.

Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.

4. COMMERCIAL DISTRIBUTION

Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.

For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.

5. NO WARRANTY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.

6. DISCLAIMER OF LIABILITY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. GENERAL

If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.

If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.

All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.

Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.

This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.


                          MOZILLA PUBLIC LICENSE
                                Version 1.1

                              ---------------

1. Definitions.

     1.0.1. "Commercial Use" means distribution or otherwise making the
     Covered Code available to a third party.

     1.1. "Contributor" means each entity that creates or contributes to
     the creation of Modifications.

     1.2. "Contributor Version" means the combination of the Original
     Code, prior Modifications used by a Contributor, and the Modifications
     made by that particular Contributor.

     1.3. "Covered Code" means the Original Code or Modifications or the
     combination of the Original Code and Modifications, in each case
     including portions thereof.

     1.4. "Electronic Distribution Mechanism" means a mechanism generally
     accepted in the software development community for the electronic
     transfer of data.

     1.5. "Executable" means Covered Code in any form other than Source
     Code.

     1.6. "Initial Developer" means the individual or entity identified
     as the Initial Developer in the Source Code notice required by Exhibit
     A.

     1.7. "Larger Work" means a work which combines Covered Code or
     portions thereof with code not governed by the terms of this License.

     1.8. "License" means this document.

     1.8.1. "Licensable" means having the right to grant, to the maximum
     extent possible, whether at the time of the initial grant or
     subsequently acquired, any and all of the rights conveyed herein.

     1.9. "Modifications" means any addition to or deletion from the
     substance or structure of either the Original Code or any previous
     Modifications. When Covered Code is released as a series of files, a
     Modification is:
          A. Any addition to or deletion from the contents of a file
          containing Original Code or previous Modifications.

          B. Any new file that contains any part of the Original Code or
          previous Modifications.

     1.10. "Original Code" means Source Code of computer software code
     which is described in the Source Code notice required by Exhibit A as
     Original Code, and which, at the time of its release under this
     License is not already Covered Code governed by this License.

     1.10.1. "Patent Claims" means any patent claim(s), now owned or
     hereafter acquired, including without limitation,  method, process,
     and apparatus claims, in any patent Licensable by grantor.

     1.11. "Source Code" means the preferred form of the Covered Code for
     making modifications to it, including all modules it contains, plus
     any associated interface definition files, scripts used to control
     compilation and installation of an Executable, or source code
     differential comparisons against either the Original Code or another
     well known, available Covered Code of the Contributor's choice. The
     Source Code can be in a compressed or archival form, provided the
     appropriate decompression or de-archiving software is widely available
     for no charge.

     1.12. "You" (or "Your")  means an individual or a legal entity
     exercising rights under, and complying with all of the terms of, this
     License or a future version of this License issued under Section 6.1.
     For legal entities, "You" includes any entity which controls, is
     controlled by, or is under common control with You. For purposes of
     this definition, "control" means (a) the power, direct or indirect,
     to cause the direction or management of such entity, whether by
     contract or otherwise, or (b) ownership of more than fifty percent
     (50%) of the outstanding shares or beneficial ownership of such
     entity.

2. Source Code License.

     2.1. The Initial Developer Grant.
     The Initial Developer hereby grants You a world-wide, royalty-free,
     non-exclusive license, subject to third party intellectual property
     claims:
          (a)  under intellectual property rights (other than patent or
          trademark) Licensable by Initial Developer to use, reproduce,
          modify, display, perform, sublicense and distribute the Original
          Code (or portions thereof) with or without Modifications, and/or
          as part of a Larger Work; and

          (b) under Patents Claims infringed by the making, using or
          selling of Original Code, to make, have made, use, practice,
          sell, and offer for sale, and/or otherwise dispose of the
          Original Code (or portions thereof).

          (c) the licenses granted in this Section 2.1(a) and (b) are
          effective on the date Initial Developer first distributes
          Original Code under the terms of this License.

          (d) Notwithstanding Section 2.1(b) above, no patent license is
          granted: 1) for code that You delete from the Original Code; 2)
          separate from the Original Code;  or 3) for infringements caused
          by: i) the modification of the Original Code or ii) the
          combination of the Original Code with other software or devices.

     2.2. Contributor Grant.
     Subject to third party intellectual property claims, each Contributor
     hereby grants You a world-wide, royalty-free, non-exclusive license

          (a)  under intellectual property rights (other than patent or
          trademark) Licensable by Contributor, to use, reproduce, modify,
          display, perform, sublicense and distribute the Modifications
          created by such Contributor (or portions thereof) either on an
          unmodified basis, with other Modifications, as Covered Code
          and/or as part of a Larger Work; and

          (b) under Patent Claims infringed by the making, using, or
          selling of  Modifications made by that Contributor either alone
          and/or in combination with its Contributor Version (or portions
          of such combination), to make, use, sell, offer for sale, have
          made, and/or otherwise dispose of: 1) Modifications made by that
          Contributor (or portions thereof); and 2) the combination of
          Modifications made by that Contributor with its Contributor
          Version (or portions of such combination).

          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
          effective on the date Contributor first makes Commercial Use of
          the Covered Code.

          (d)    Notwithstanding Section 2.2(b) above, no patent license is
          granted: 1) for any code that Contributor has deleted from the
          Contributor Version; 2)  separate from the Contributor Version;
          3)  for infringements caused by: i) third party modifications of
          Contributor Version or ii)  the combination of Modifications made
          by that Contributor with other software  (except as part of the
          Contributor Version) or other devices; or 4) under Patent Claims
          infringed by Covered Code in the absence of Modifications made by
          that Contributor.

3. Distribution Obligations.

     3.1. Application of License.
     The Modifications which You create or to which You contribute are
     governed by the terms of this License, including without limitation
     Section 2.2. The Source Code version of Covered Code may be
     distributed only under the terms of this License or a future version
     of this License released under Section 6.1, and You must include a
     copy of this License with every copy of the Source Code You
     distribute. You may not offer or impose any terms on any Source Code
     version that alters or restricts the applicable version of this
     License or the recipients' rights hereunder. However, You may include
     an additional document offering the additional rights described in
     Section 3.5.

     3.2. Availability of Source Code.
     Any Modification which You create or to which You contribute must be
     made available in Source Code form under the terms of this License
     either on the same media as an Executable version or via an accepted
     Electronic Distribution Mechanism to anyone to whom you made an
     Executable version available; and if made available via Electronic
     Distribution Mechanism, must remain available for at least twelve (12)
     months after the date it initially became available, or at least six
     (6) months after a subsequent version of that particular Modification
     has been made available to such recipients. You are responsible for
     ensuring that the Source Code version remains available even if the
     Electronic Distribution Mechanism is maintained by a third party.

     3.3. Description of Modifications.
     You must cause all Covered Code to which You contribute to contain a
     file documenting the changes You made to create that Covered Code and
     the date of any change. You must include a prominent statement that
     the Modification is derived, directly or indirectly, from Original
     Code provided by the Initial Developer and including the name of the
     Initial Developer in (a) the Source Code, and (b) in any notice in an
     Executable version or related documentation in which You describe the
     origin or ownership of the Covered Code.

     3.4. Intellectual Property Matters
          (a) Third Party Claims.
          If Contributor has knowledge that a license under a third party's
          intellectual property rights is required to exercise the rights
          granted by such Contributor under Sections 2.1 or 2.2,
          Contributor must include a text file with the Source Code
          distribution titled "LEGAL" which describes the claim and the
          party making the claim in sufficient detail that a recipient will
          know whom to contact. If Contributor obtains such knowledge after
          the Modification is made available as described in Section 3.2,
          Contributor shall promptly modify the LEGAL file in all copies
          Contributor makes available thereafter and shall take other steps
          (such as notifying appropriate mailing lists or newsgroups)
          reasonably calculated to inform those who received the Covered
          Code that new knowledge has been obtained.

          (b) Contributor APIs.
          If Contributor's Modifications include an application programming
          interface and Contributor has knowledge of patent licenses which
          are reasonably necessary to implement that API, Contributor must
          also include this information in the LEGAL file.

               (c)    Representations.
          Contributor represents that, except as disclosed pursuant to
          Section 3.4(a) above, Contributor believes that Contributor's
          Modifications are Contributor's original creation(s) and/or
          Contributor has sufficient rights to grant the rights conveyed by
          this License.

     3.5. Required Notices.
     You must duplicate the notice in Exhibit A in each file of the Source
     Code.  If it is not possible to put such notice in a particular Source
     Code file due to its structure, then You must include such notice in a
     location (such as a relevant directory) where a user would be likely
     to look for such a notice.  If You created one or more Modification(s)
     You may add your name as a Contributor to the notice described in
     Exhibit A.  You must also duplicate this License in any documentation
     for the Source Code where You describe recipients' rights or ownership
     rights relating to Covered Code.  You may choose to offer, and to
     charge a fee for, warranty, support, indemnity or liability
     obligations to one or more recipients of Covered Code. However, You
     may do so only on Your own behalf, and not on behalf of the Initial
     Developer or any Contributor. You must make it absolutely clear than
     any such warranty, support, indemnity or liability obligation is
     offered by You alone, and You hereby agree to indemnify the Initial
     Developer and every Contributor for any liability incurred by the
     Initial Developer or such Contributor as a result of warranty,
     support, indemnity or liability terms You offer.

     3.6. Distribution of Executable Versions.
     You may distribute Covered Code in Executable form only if the
     requirements of Section 3.1-3.5 have been met for that Covered Code,
     and if You include a notice stating that the Source Code version of
     the Covered Code is available under the terms of this License,
     including a description of how and where You have fulfilled the
     obligations of Section 3.2. The notice must be conspicuously included
     in any notice in an Executable version, related documentation or
     collateral in which You describe recipients' rights relating to the
     Covered Code. You may distribute the Executable version of Covered
     Code or ownership rights under a license of Your choice, which may
     contain terms different from this License, provided that You are in
     compliance with the terms of this License and that the license for the
     Executable version does not attempt to limit or alter the recipient's
     rights in the Source Code version from the rights set forth in this
     License. If You distribute the Executable version under a different
     license You must make it absolutely clear that any terms which differ
     from this License are offered by You alone, not by the Initial
     Developer or any Contributor. You hereby agree to indemnify the
     Initial Developer and every Contributor for any liability incurred by
     the Initial Developer or such Contributor as a result of any such
     terms You offer.

     3.7. Larger Works.
     You may create a Larger Work by combining Covered Code with other code
     not governed by the terms of this License and distribute the Larger
     Work as a single product. In such a case, You must make sure the
     requirements of this License are fulfilled for the Covered Code.

4. Inability to Comply Due to Statute or Regulation.

     If it is impossible for You to comply with any of the terms of this
     License with respect to some or all of the Covered Code due to
     statute, judicial order, or regulation then You must: (a) comply with
     the terms of this License to the maximum extent possible; and (b)
     describe the limitations and the code they affect. Such description
     must be included in the LEGAL file described in Section 3.4 and must
     be included with all distributions of the Source Code. Except to the
     extent prohibited by statute or regulation, such description must be
     sufficiently detailed for a recipient of ordinary skill to be able to
     understand it.

5. Application of this License.

     This License applies to code to which the Initial Developer has
     attached the notice in Exhibit A and to related Covered Code.

6. Versions of the License.

     6.1. New Versions.
     Netscape Communications Corporation ("Netscape") may publish revised
     and/or new versions of the License from time to time. Each version
     will be given a distinguishing version number.

     6.2. Effect of New Versions.
     Once Covered Code has been published under a particular version of the
     License, You may always continue to use it under the terms of that
     version. You may also choose to use such Covered Code under the terms
     of any subsequent version of the License published by Netscape. No one
     other than Netscape has the right to modify the terms applicable to
     Covered Code created under this License.

     6.3. Derivative Works.
     If You create or use a modified version of this License (which you may
     only do in order to apply it to code which is not already Covered Code
     governed by this License), You must (a) rename Your license so that
     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
     "MPL", "NPL" or any confusingly similar phrase do not appear in your
     license (except to note that your license differs from this License)
     and (b) otherwise make it clear that Your version of the license
     contains terms which differ from the Mozilla Public License and
     Netscape Public License. (Filling in the name of the Initial
     Developer, Original Code or Contributor in the notice described in
     Exhibit A shall not of themselves be deemed to be modifications of
     this License.)

7. DISCLAIMER OF WARRANTY.

     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

8. TERMINATION.

     8.1.  This License and the rights granted hereunder will terminate
     automatically if You fail to comply with terms herein and fail to cure
     such breach within 30 days of becoming aware of the breach. All
     sublicenses to the Covered Code which are properly granted shall
     survive any termination of this License. Provisions which, by their
     nature, must remain in effect beyond the termination of this License
     shall survive.

     8.2.  If You initiate litigation by asserting a patent infringement
     claim (excluding declatory judgment actions) against Initial Developer
     or a Contributor (the Initial Developer or Contributor against whom
     You file such action is referred to as "Participant")  alleging that:

     (a)  such Participant's Contributor Version directly or indirectly
     infringes any patent, then any and all rights granted by such
     Participant to You under Sections 2.1 and/or 2.2 of this License
     shall, upon 60 days notice from Participant terminate prospectively,
     unless if within 60 days after receipt of notice You either: (i)
     agree in writing to pay Participant a mutually agreeable reasonable
     royalty for Your past and future use of Modifications made by such
     Participant, or (ii) withdraw Your litigation claim with respect to
     the Contributor Version against such Participant.  If within 60 days
     of notice, a reasonable royalty and payment arrangement are not
     mutually agreed upon in writing by the parties or the litigation claim
     is not withdrawn, the rights granted by Participant to You under
     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
     the 60 day notice period specified above.

     (b)  any software, hardware, or device, other than such Participant's
     Contributor Version, directly or indirectly infringes any patent, then
     any rights granted to You by such Participant under Sections 2.1(b)
     and 2.2(b) are revoked effective as of the date You first made, used,
     sold, distributed, or had made, Modifications made by that
     Participant.

     8.3.  If You assert a patent infringement claim against Participant
     alleging that such Participant's Contributor Version directly or
     indirectly infringes any patent where such claim is resolved (such as
     by license or settlement) prior to the initiation of patent
     infringement litigation, then the reasonable value of the licenses
     granted by such Participant under Sections 2.1 or 2.2 shall be taken
     into account in determining the amount or value of any payment or
     license.

     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
     all end user license agreements (excluding distributors and resellers)
     which have been validly granted by You or any distributor hereunder
     prior to termination shall survive termination.

9. LIMITATION OF LIABILITY.

     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.

10. U.S. GOVERNMENT END USERS.

     The Covered Code is a "commercial item," as that term is defined in
     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
     software" and "commercial computer software documentation," as such
     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
     all U.S. Government End Users acquire Covered Code with only those
     rights set forth herein.

11. MISCELLANEOUS.

     This License represents the complete agreement concerning subject
     matter hereof. If any provision of this License is held to be
     unenforceable, such provision shall be reformed only to the extent
     necessary to make it enforceable. This License shall be governed by
     California law provisions (except to the extent applicable law, if
     any, provides otherwise), excluding its conflict-of-law provisions.
     With respect to disputes in which at least one party is a citizen of,
     or an entity chartered or registered to do business in the United
     States of America, any litigation relating to this License shall be
     subject to the jurisdiction of the Federal Courts of the Northern
     District of California, with venue lying in Santa Clara County,
     California, with the losing party responsible for costs, including
     without limitation, court costs and reasonable attorneys' fees and
     expenses. The application of the United Nations Convention on
     Contracts for the International Sale of Goods is expressly excluded.
     Any law or regulation which provides that the language of a contract
     shall be construed against the drafter shall not apply to this
     License.

12. RESPONSIBILITY FOR CLAIMS.

     As between Initial Developer and the Contributors, each party is
     responsible for claims and damages arising, directly or indirectly,
     out of its utilization of rights under this License and You agree to
     work with Initial Developer and Contributors to distribute such
     responsibility on an equitable basis. Nothing herein is intended or
     shall be deemed to constitute any admission of liability.

13. MULTIPLE-LICENSED CODE.

     Initial Developer may designate portions of the Covered Code as
     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
     Developer permits you to utilize portions of the Covered Code under
     Your choice of the NPL or the alternative licenses, if any, specified
     by the Initial Developer in the file described in Exhibit A.

EXHIBIT A -Mozilla Public License.

     ``The contents of this file are subject to the Mozilla Public License
     Version 1.1 (the "License"); you may not use this file except in
     compliance with the License. You may obtain a copy of the License at
     http://www.mozilla.org/MPL/

     Software distributed under the License is distributed on an "AS IS"
     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
     License for the specific language governing rights and limitations
     under the License.

     The Original Code is ______________________________________.

     The Initial Developer of the Original Code is ________________________.
     Portions created by ______________________ are Copyright (C) ______
     _______________________. All Rights Reserved.

     Contributor(s): ______________________________________.

     Alternatively, the contents of this file may be used under the terms
     of the _____ license (the  "[___] License"), in which case the
     provisions of [______] License are applicable instead of those
     above.  If you wish to allow use of your version of this file only
     under the terms of the [____] License and not to allow others to use
     your version of this file under the MPL, indicate your decision by
     deleting  the provisions above and replace  them with the notice and
     other provisions required by the [___] License.  If you do not delete
     the provisions above, a recipient may use your version of this file
     under either the MPL or the [___] License."

     [NOTE: The text of this Exhibit A may differ slightly from the text of
     the notices in the Source Code files of the Original Code. You should
     use the text of this Exhibit A rather than the text found in the
     Original Code Source Code for Your Modifications.]


 The majority of the source code for Rhino is available under a MPL 1.1/GPL 2.0 license.

License for portions of the Rhino debugger

Additionally, some files (currently the contents of toolsrc/org/mozilla/javascript/tools/debugger/treetable/) are available under the following license:

 * Copyright 1997, 1998 Sun Microsystems, Inc.  All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Norrisboyd 06:16, 14 April 2008 (PDT)

Retrieved from "https://developer.mozilla.org/En/Rhino_License"


This is version 2007-Mar-4 of the Info-ZIP license.
The definitive version of this document should be available at
ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely and
a copy at http://www.info-zip.org/pub/infozip/license.html.

Copyright (c) 1990-2007 Info-ZIP.  All rights reserved.

For the purposes of this copyright and license, "Info-ZIP" is defined as
the following set of individuals:

   Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois,
   Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth,
   Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz,
   David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko,
   Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs,
   Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda,
   Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren,
   Rich Wales, Mike White.

This software is provided "as is," without warranty of any kind, express
or implied.  In no event shall Info-ZIP or its contributors be held liable
for any direct, indirect, incidental, special or consequential damages
arising out of the use of or inability to use this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the above disclaimer and the following restrictions:

    1. Redistributions of source code (in whole or in part) must retain
       the above copyright notice, definition, disclaimer, and this list
       of conditions.

    2. Redistributions in binary form (compiled executables and libraries)
       must reproduce the above copyright notice, definition, disclaimer,
       and this list of conditions in documentation and/or other materials
       provided with the distribution.  The sole exception to this condition
       is redistribution of a standard UnZipSFX binary (including SFXWiz) as
       part of a self-extracting archive; that is permitted without inclusion
       of this license, as long as the normal SFX banner has not been removed
       from the binary or disabled.

    3. Altered versions--including, but not limited to, ports to new operating
       systems, existing ports with new graphical interfaces, versions with
       modified or added functionality, and dynamic, shared, or static library
       versions not from Info-ZIP--must be plainly marked as such and must not
       be misrepresented as being the original source or, if binaries,
       compiled from the original source.  Such altered versions also must not
       be misrepresented as being Info-ZIP releases--including, but not
       limited to, labeling of the altered versions with the names "Info-ZIP"
       (or any variation thereof, including, but not limited to, different
       capitalizations), "Pocket UnZip," "WiZ" or "MacZip" without the
       explicit permission of Info-ZIP.  Such altered versions are further
       prohibited from misrepresentative use of the Zip-Bugs or Info-ZIP
       e-mail addresses or the Info-ZIP URL(s), such as to imply Info-ZIP
       will provide support for the altered versions.

    4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip,"
       "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its
       own source and binary releases.


HTML Example

Example of embedded HTML documentation

This HTML page is delivered in the 'doc-files' directory of the package 'xdc.tools.cdoc'.


 Previous Release Notes
  • xdctools_3_20_00_41_release_notes.html
  • xdctools_3_20_01_51_release_notes.html
  • xdctools_3_20_02_59_release_notes.html
  • xdctools_3_20_03_63_release_notes.html
  • xdctools_3_20_04_68_release_notes.html
  • xdctools_3_20_05_76_release_notes.html
  • xdctools_3_20_06_81_release_notes.html
  • xdctools_3_20_07_86_release_notes.html
  • xdctools_3_20_08_88_release_notes.html
  • xdctools_3_22_00_09_release_notes.html
  • xdctools_3_22_01_21_release_notes.html
  • xdctools_3_22_02_27_release_notes.html
  • xdctools_3_22_03_41_release_notes.html
  • xdctools_3_22_04_46_release_notes.html
  • xdctools_3_23_00_32_release_notes.html
  • xdctools_3_23_01_43_release_notes.html
  • xdctools_3_23_02_47_release_notes.html
  • xdctools_3_23_03_53_release_notes.html
  • xdctools_3_23_04_60_release_notes.html
  • xdctools_3_24_00_08_release_notes.html
  • xdctools_3_24_01_29_release_notes.html
  • xdctools_3_24_02_30_release_notes.html
  • xdctools_3_24_03_33_release_notes.html
  • xdctools_3_24_04_38_release_notes.html


XDCtools 3.20.00.41 GA Release Notes

May 28, 2010

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS4 (Code Composer Studio v4.0) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed on-line at:

  • http://rtsc.eclipse.org/docs-tip

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in 3.20.00.41:

  • Data Memory Footprint Reduction
  • Tool Performance Improvements
  • Enhanced Logging Capabilities
  • Platform Wizard Enhancements
  • Support for Peripherals in RTSC Platform Model

Data Memory Footprint Reduction

Release implements optimizations in the generated target code that result in data memory footprint reduction. Refer to ECL278643
for more details.

Tool Performance Improvements

Refer to this link for details on performance improvements in RTSC configuration.

Enhanced Logging Capabilities

The logging capabilities of the xdc.runtime package has been enhanced with the following new functionality
  • New Log APIs - Log_info, Log_warning, and Log_error- enable applications to easily emit events that communicate basic status information and automatically include file and line number information
  • The Error module now includes built-in support to log all errors
  • The new Registry module allows any C code to use Log and have its own diagnostics mask and name without requiring a reconfiguration of xdc.runtime.
  • Diags enhancements:
    • new categories added for errors and warnings, benchmarks, and basic information
    • diagnostic masks now include a 2-bit "priority" field which allows events of the same "category" to be prioritized
  • ILogger extended incompatibly to
    • allow more efficient logging of events with few (or no) arguments and
    • enable filtering based on an event's diagnostics mask (including the new priority bits)

Platform Wizard Enhancements

An improved platform wizard is available with this release

Support for Peripherals in RTSC Platform Model

The RTSC platform model has been extended to support peripherals.
  • Added support for devices to declare the peripherals they include. This enables driver packages to automatically detect the presence of specific peripherals.
  • Added rudimentary resource management support for these peripherals, allowing configuration frameworks to coordinate access to and control of each peripheral

Defect history for 3.20.00.41 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL280878 | xgconf: Deleting project with cfg file open doesn't close the window
ECL280854 | XGCONF: On changing Configuro –D options, config is not re-validated, need to re-save script
ECL309211 | configuro exit status is 0 even when command usage is wrong
ECL306433 | a second package release that specifies "exportAll" has an incomplete manifest
ECL287731 | Updating XDC version fails to regenerate package/rel/*.tar.dep files
ECL289229 | When xs xdc.tools.repoman fails it should exit with non-zero exit status
ECL289144 | cdoc: @_nodoc on per-instance config is ignored
ECL285460 | cdoc does not properly escape '<' in strings
ECL285331 | XGCONF gives NullPointerException when certain modules are used.
ECL280875 | xgconf: hand-editing to add ti.bios.MEM throws NPE
ECL280861 | xgconf: Renaming an instance does not create a Program.global entry if the instance has no Params struct
ECL276101 | xgconf: hover help text does not properly format xdoc text
ECL304758 | microsoft.targets.arm.WinCE's default platform is incorrectly an x86 device
ECL280858 | xgconf: Can't double-click on Problems view to go to offending module/instance
ECL301761 | xgconf should add the project cfg path when processing app.cfg file
ECL303793 | Platform wizard does not support c28xx devices
ECL313408 | package whose repository is in the current directory can cause NullPointer exception
ECL264025 | cannot define an interface instance as a global variable
ECL312963 | SysMin_ready fails
ECL307806 | the config error for uninitialized array values is confusing
ECL312965 | ROV view of SysMin outbuf is garbled
ECL302355 | Closure tool gives erroneous message
ECL296749 | Dereferencing undefined object in user's Build.targets array leads to confusing error msg
ECL312648 | When assigning Pkg.libTemplate, compile options need extra space padding.
ECL309514 | System_printf bug with extended specifiers
ECL302614 | Incomprehensible error message when incorrect package name is loaded
ECL291830 | can't use modules that have @NoRuntime attribute set

back to top

Upgrade and Compatibility Information

This release contains some compatibility breaks in order to introduce new features. The following section describes those compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed. Implementors of this interface need to make source code changes. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • The package ti.catalog.c470 (deprecated since XDCtools 3.10.04) has been removed. The package ti.catalog.arm. should be used instead.
  • C6000 compiler has been upgraded to 7.0. Consumers of C6000 RTSC content built with the whole_program or whole_program_debug profile need to upgrade their compiler version to 7.0 or later.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP
  • RedHat Enterprise Linux 3 . CCSv4 IDE integration is not supported on Linux.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C67, C64P, C64, C62, C66
  • C5000 family - C55P, C55, C54
  • C2000 family - C28
  • ARM processors - TMS470, ARM9, ARM Cortex M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.1.2 , 4.2.0.08029
  • TI ARM Code Generation Tools version 4.5.0 and 4.6.0
  • TI C6x Code Generation Tools version 7.0.0 and 7.2.0A
  • TI MSP430 Code Generation Tools version 3.3.0B2
  • TI C55 Code Generation Tools version 3.3.2
  • TI C54 Code Generation Tools version 4.2.0
  • TI C28 Code Generation Tools version 5.2.1
  • GCC for x86 version 4.1.0
  • GCC for ARM version 3.4.3 and 4.2.1
back to top

Known Issues

The following issues are known to affect this release:

ID | Headline
ECL314909 | Closing the Path app (launched from CCS) with File|Exit crashes CCS
ECL314790 | Default JVM memory not enough for cdoc

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA, beta, etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng or 3.15.01.58-beta).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup.

back to top

Last updated: May 28, 2010 Build Ver: 3.20.00.41 Rev: m41


XDCtools 3.20.01.51 Release Notes

June 25, 2010

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS4 (Code Composer Studio v4.0) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in 3.20.01.51:

  • Data Memory Footprint Reduction
  • Tool Performance Improvements
  • Enhanced Logging Capabilities
  • Platform Wizard Enhancements
  • Support for Peripherals in RTSC Platform Model

Data Memory Footprint Reduction

Release implements optimizations in the generated target code that result in data memory footprint reduction. Refer to ECL278643
for more details.

Tool Performance Improvements

Refer to this link for details on performance improvements in RTSC configuration.

Enhanced Logging Capabilities

The logging capabilities of the xdc.runtime package has been enhanced with the following new functionality
  • New Log APIs - Log_info, Log_warning, and Log_error- enable applications to easily emit events that communicate basic status information and automatically include file and line number information
  • The Error module now includes built-in support to log all errors
  • The new Registry module allows any C code to use Log and have its own diagnostics mask and name without requiring a reconfiguration of xdc.runtime.
  • Diags enhancements:
    • new categories added for errors and warnings, benchmarks, and basic information
    • diagnostic masks now include a 2-bit "priority" field which allows events of the same "category" to be prioritized
  • ILogger extended incompatibly to
    • allow more efficient logging of events with few (or no) arguments and
    • enable filtering based on an event's diagnostics mask (including the new priority bits)

Platform Wizard Enhancements

An improved platform wizard is available with this release

Support for Peripherals in RTSC Platform Model

The RTSC platform model has been extended to support peripherals.
  • Added support for devices to declare the peripherals they include. This enables driver packages to automatically detect the presence of specific peripherals.
  • Added rudimentary resource management support for these peripherals, allowing configuration frameworks to coordinate access to and control of each peripheral

Defect history for 3.20.01.51 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL314886 | xgconf: javascript var gets confused with config param and causes NPE
ECL314909 | Closing the Path app (launched from CCS) with File|Exit crashes CCS
ECL315705 | Path tool does not scan all the packages on the package path
ECL315822 | Errant xdc.runtime dependency during config
ECL316841 | Platform wizard does not support setting cache modes for custom memory maps
ECL317192 | gnu.targets.arm fails if xdc.runtime not loaded

back to top

Upgrade and Compatibility Information

This release contains some compatibility breaks in order to introduce new features. The following section describes those compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed. Implementors of this interface need to make source code changes. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • The package ti.catalog.c470 (deprecated since XDCtools 3.10.04) has been removed. The package ti.catalog.arm. should be used instead.
  • C6000 compiler has been upgraded to 7.0. Consumers of C6000 RTSC content built with the whole_program or whole_program_debug profile need to upgrade their compiler version to 7.0 or later.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP
  • RedHat Enterprise Linux 3 . CCSv4 IDE integration is not supported on Linux.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C67, C64P, C64, C62, C66
  • C5000 family - C55P, C55, C54
  • C2000 family - C28
  • ARM processors - TMS470, ARM9, ARM Cortex M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.1.2 , 4.2.0.08029
  • TI ARM Code Generation Tools version 4.5.0 and 4.6.0
  • TI C6x Code Generation Tools version 7.0.0 and 7.2.0A
  • TI MSP430 Code Generation Tools version 3.3.0B2
  • TI C55 Code Generation Tools version 3.3.2
  • TI C54 Code Generation Tools version 4.2.0
  • TI C28 Code Generation Tools version 5.2.1
  • GCC for x86 version 4.1.0
  • GCC for ARM version 3.4.3 and 4.2.1
back to top

Known Issues

The following issues are known to affect this release:

ID | Headline
ECL314790 | Default JVM memory not enough for cdoc

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA, beta, etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng or 3.15.01.58-beta).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: June 25, 2010 Build Ver: 3.20.01.51 Rev: m51


XDCtools 3.20.02.59 GA Release Notes

August 09, 2010

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS4 (Code Composer Studio v4.0) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.20 :

  • Data Memory Footprint Reduction
  • Tool Performance Improvements
  • Enhanced Logging Capabilities
  • Platform Wizard Enhancements
  • Support for Peripherals in RTSC Platform Model

Data Memory Footprint Reduction

Release implements optimizations in the generated target code that result in data memory footprint reduction. Refer to ECL278643
for more details.

Tool Performance Improvements

Refer to this link for details on performance improvements in RTSC configuration.

Enhanced Logging Capabilities

The logging capabilities of the xdc.runtime package has been enhanced with the following new functionality
  • New Log APIs - Log_info, Log_warning, and Log_error- enable applications to easily emit events that communicate basic status information and automatically include file and line number information
  • The Error module now includes built-in support to log all errors
  • The new Registry module allows any C code to use Log and have its own diagnostics mask and name without requiring a reconfiguration of xdc.runtime.
  • Diags enhancements:
    • new categories added for errors and warnings, benchmarks, and basic information
    • diagnostic masks now include a 2-bit "priority" field which allows events of the same "category" to be prioritized
  • ILogger extended incompatibly to
    • allow more efficient logging of events with few (or no) arguments and
    • enable filtering based on an event's diagnostics mask (including the new priority bits)

Platform Wizard Enhancements

An improved platform wizard is available with this release

Support for Peripherals in RTSC Platform Model

The RTSC platform model has been extended to support peripherals.
  • Added support for devices to declare the peripherals they include. This enables driver packages to automatically detect the presence of specific peripherals.
  • Added rudimentary resource management support for these peripherals, allowing configuration frameworks to coordinate access to and control of each peripheral

Defect history for 3.20.02.59 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL309028 | Launching XGCONF from CCS4.20(Linux) causes CCS4 to crash
ECL317341 | configuro generates linker.cmd file with restricted permissions on Windows7
ECL317526 | Thread instance name not passed to proxy
ECL318369 | TMS320DA802 module has inconsistent IRAM and cache sizes
ECL319331 | RTA Decoder issue with Log_print records
ECL320682 | In cdoc, doxy() links don't work for doxygen module and page objects

back to top

Upgrade and Compatibility Information

This release contains some compatibility breaks in order to introduce new features. The following section describes those compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed. Implementors of this interface need to make source code changes. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • The package ti.catalog.c470 (deprecated since XDCtools 3.10.04) has been removed. The package ti.catalog.arm. should be used instead.
  • C6000 compiler has been upgraded to 7.0. Consumers of C6000 RTSC content built with the whole_program or whole_program_debug profile need to upgrade their compiler version to 7.0 or later.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP
  • RedHat Enterprise Linux 3 . CCSv4 IDE integration is not supported on Linux.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.09000. Note that this release will not work with CCS 4.1.3 and earlier releases.
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C67, C64P, C64, C62, C66
  • C5000 family - C55P, C55, C54
  • C2000 family - C28
  • ARM processors - TMS470, ARM9, ARM Cortex M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.09000
  • TI ARM Code Generation Tools version 4.5.0 and 4.6.1
  • TI C6x Code Generation Tools version 7.0.0,7.1.0B2 ,7.2.0A
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C55 Code Generation Tools version 3.3.2
  • TI C54 Code Generation Tools version 4.2.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 3.4.3 and 4.2.1
back to top

Known Issues

The following issues are known to affect this release:

ID | Headline
ECL314790 | Default JVM memory not enough for cdoc

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: August 09, 2010 Build Ver: 3.20.02.59 Rev: m59


XDCtools 3.20.03.63 Release Notes

August 24, 2010

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS4 (Code Composer Studio v4.0) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.20 :

  • Data Memory Footprint Reduction
  • Tool Performance Improvements
  • Enhanced Logging Capabilities
  • Platform Wizard Enhancements
  • Support for Peripherals in RTSC Platform Model

Data Memory Footprint Reduction

Release implements optimizations in the generated target code that result in data memory footprint reduction. Refer to ECL278643
for more details.

Tool Performance Improvements

Refer to this link for details on performance improvements in RTSC configuration.

Enhanced Logging Capabilities

The logging capabilities of the xdc.runtime package has been enhanced with the following new functionality
  • New Log APIs - Log_info, Log_warning, and Log_error- enable applications to easily emit events that communicate basic status information and automatically include file and line number information
  • The Error module now includes built-in support to log all errors
  • The new Registry module allows any C code to use Log and have its own diagnostics mask and name without requiring a reconfiguration of xdc.runtime.
  • Diags enhancements:
    • new categories added for errors and warnings, benchmarks, and basic information
    • diagnostic masks now include a 2-bit "priority" field which allows events of the same "category" to be prioritized
  • ILogger extended incompatibly to
    • allow more efficient logging of events with few (or no) arguments and
    • enable filtering based on an event's diagnostics mask (including the new priority bits)

Platform Wizard Enhancements

An improved platform wizard is available with this release

Support for Peripherals in RTSC Platform Model

The RTSC platform model has been extended to support peripherals.
  • Added support for devices to declare the peripherals they include. This enables driver packages to automatically detect the presence of specific peripherals.
  • Added rudimentary resource management support for these peripherals, allowing configuration frameworks to coordinate access to and control of each peripheral

Defect history for 3.20.03.63 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL276792 | ROV shouldn't require all packages to be found
ECL322305 | it is not possible to change common$ LOG bits using xgconf
ECL322947 | Complete list of RTSC platforms do not showup

back to top

Upgrade and Compatibility Information

This release contains some compatibility breaks in order to introduce new features. The following section describes those compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed. Implementors of this interface need to make source code changes. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • The package ti.catalog.c470 (deprecated since XDCtools 3.10.04) has been removed. The package ti.catalog.arm. should be used instead.
  • C6000 compiler has been upgraded to 7.0. Consumers of C6000 RTSC content built with the whole_program or whole_program_debug profile need to upgrade their compiler version to 7.0 or later.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP
  • RedHat Enterprise Linux 3 . CCSv4 IDE integration is not supported on Linux.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.09000. Note that this release will not work with CCS 4.1.3 and earlier releases.
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C67, C64P, C64, C62, C66
  • C5000 family - C55P, C55, C54
  • C2000 family - C28
  • ARM processors - TMS470, ARM9, ARM Cortex M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.09000
  • TI ARM Code Generation Tools version 4.5.0 and 4.6.1
  • TI C6x Code Generation Tools version 7.0.0,7.1.0B2 ,7.2.0A
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C55 Code Generation Tools version 3.3.2
  • TI C54 Code Generation Tools version 4.2.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 3.4.3 and 4.2.1
back to top

Known Issues

The following issues are known to affect this release:

ID | Headline
ECL314790 | Default JVM memory not enough for cdoc

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: August 24, 2010 Build Ver: 3.20.03.63 Rev: m63


XDCtools 3.20.04.68 GA Release Notes

September 20, 2010

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS4 (Code Composer Studio v4.0) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.20 :

  • Data Memory Footprint Reduction
  • Tool Performance Improvements
  • Enhanced Logging Capabilities
  • Platform Wizard Enhancements
  • Support for Peripherals in RTSC Platform Model

Data Memory Footprint Reduction

Release implements optimizations in the generated target code that result in data memory footprint reduction. Refer to ECL278643
for more details.

Tool Performance Improvements

Refer to this link for details on performance improvements in RTSC configuration.

Enhanced Logging Capabilities

The logging capabilities of the xdc.runtime package has been enhanced with the following new functionality
  • New Log APIs - Log_info, Log_warning, and Log_error- enable applications to easily emit events that communicate basic status information and automatically include file and line number information
  • The Error module now includes built-in support to log all errors
  • The new Registry module allows any C code to use Log and have its own diagnostics mask and name without requiring a reconfiguration of xdc.runtime.
  • Diags enhancements:
    • new categories added for errors and warnings, benchmarks, and basic information
    • diagnostic masks now include a 2-bit "priority" field which allows events of the same "category" to be prioritized
  • ILogger extended incompatibly to
    • allow more efficient logging of events with few (or no) arguments and
    • enable filtering based on an event's diagnostics mask (including the new priority bits)

Platform Wizard Enhancements

An improved platform wizard is available with this release

Support for Peripherals in RTSC Platform Model

The RTSC platform model has been extended to support peripherals.
  • Added support for devices to declare the peripherals they include. This enables driver packages to automatically detect the presence of specific peripherals.
  • Added rudimentary resource management support for these peripherals, allowing configuration frameworks to coordinate access to and control of each peripheral

Defect history for 3.20.04.68 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL325138 | Incorrect platform shows up in new project wizard
ECL323523 | Exception loading module with incomplete path
ECL315697 | xdc clean should 'just work'
ECL325173 | Registry de-references NULL if no loggers are configured
ECL324921 | ROV problems with 28x (sign extend 0x8xxx yields wrong addr)
ECL324915 | ti.platforms.evmDM8148 has incorrect clock frequencies

back to top

Upgrade and Compatibility Information

This release contains some compatibility breaks in order to introduce new features. The following section describes those compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed. Implementors of this interface need to make source code changes. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • The package ti.catalog.c470 (deprecated since XDCtools 3.10.04) has been removed. The package ti.catalog.arm. should be used instead.
  • C6000 compiler has been upgraded to 7.0. Consumers of C6000 RTSC content built with the whole_program or whole_program_debug profile need to upgrade their compiler version to 7.0 or later.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP
  • RedHat Enterprise Linux 3 . CCSv4 IDE integration is not supported on Linux.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10012. Note that this release will not work with CCS 4.1.3 and earlier releases.
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C67, C64P, C64, C62, C66
  • C5000 family - C55P, C55, C54
  • C2000 family - C28
  • ARM processors - TMS470, ARM9, ARM Cortex M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.09000
  • TI ARM Code Generation Tools version 4.5.0 and 4.6.1
  • TI C6x Code Generation Tools version 7.0.0,7.1.0B2 ,7.2.0A
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C55 Code Generation Tools version 3.3.2
  • TI C54 Code Generation Tools version 4.2.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 3.4.3 and 4.2.1
back to top

Known Issues

The following issues are known to affect this release:

ID | Headline
ECL314790 | Default JVM memory not enough for cdoc

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: September 20, 2010 Build Ver: 3.20.04.68 Rev: m68


XDCtools 3.20.05.76 GA Release Notes

November 18, 2010

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by Code Composer Studio to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.20 :

  • Data Memory Footprint Reduction
  • Tool Performance Improvements
  • Enhanced Logging Capabilities
  • Platform Wizard Enhancements
  • Support for Peripherals in RTSC Platform Model

Data Memory Footprint Reduction

Release implements optimizations in the generated target code that result in data memory footprint reduction. Refer to ECL278643
for more details.

Tool Performance Improvements

Refer to this link for details on performance improvements in RTSC configuration.

Enhanced Logging Capabilities

The logging capabilities of the xdc.runtime package has been enhanced with the following new functionality
  • New Log APIs - Log_info, Log_warning, and Log_error- enable applications to easily emit events that communicate basic status information and automatically include file and line number information
  • The Error module now includes built-in support to log all errors
  • The new Registry module allows any C code to use Log and have its own diagnostics mask and name without requiring a reconfiguration of xdc.runtime.
  • Diags enhancements:
    • new categories added for errors and warnings, benchmarks, and basic information
    • diagnostic masks now include a 2-bit "priority" field which allows events of the same "category" to be prioritized
  • ILogger extended incompatibly to
    • allow more efficient logging of events with few (or no) arguments and
    • enable filtering based on an event's diagnostics mask (including the new priority bits)

Platform Wizard Enhancements

An improved platform wizard is available with this release

Support for Peripherals in RTSC Platform Model

The RTSC platform model has been extended to support peripherals.
  • Added support for devices to declare the peripherals they include. This enables driver packages to automatically detect the presence of specific peripherals.
  • Added rudimentary resource management support for these peripherals, allowing configuration frameworks to coordinate access to and control of each peripheral

Defect history for 3.20.05.76 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL322274 | ti.platforms.evm6472 should allow changing the external memory map
ECL325508 | evmDM6467 has a busted getCpuDataSheet function
ECL326459 | RTSC platform combo box is empty in new project wizard
ECL328989 | setting Text.isLoaded to true causes Diags_setMask() to access random memory
ECL329837 | Platform wizard throws an exception while using the TMS320DM365 device

back to top

Upgrade and Compatibility Information

This release contains some compatibility breaks in order to introduce new features. The following section describes those compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed. Implementors of this interface need to make source code changes. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • The package ti.catalog.c470 (deprecated since XDCtools 3.10.04) has been removed. The package ti.catalog.arm. should be used instead.
  • C6000 compiler has been upgraded to 7.0. Consumers of C6000 RTSC content built with the whole_program or whole_program_debug profile need to upgrade their compiler version to 7.0 or later.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP
  • RedHat Enterprise Linux 3
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00091. Note that this release will not work with CCS 4.1.3 and earlier releases.
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C67, C64P, C64, C62, C66
  • C5000 family - C55P, C55, C54
  • C2000 family - C28
  • ARM processors - TMS470, ARM9, ARM Cortex M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00091
  • TI ARM Code Generation Tools version 4.5.0 and 4.6.1
  • TI C6x Code Generation Tools version 7.0.0,7.1.0B2 ,7.2.0A
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C55 Code Generation Tools version 3.3.2
  • TI C54 Code Generation Tools version 4.2.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
back to top

Known Issues

The following issues are known to affect this release:

ID | Headline
ECL314790 | Default JVM memory not enough for cdoc

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: November 18, 2010 Build Ver: 3.20.05.76 Rev: m76


XDCtools 3.20.06.81 GA Release Notes

December 08, 2010

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by Code Composer Studio to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. Refer to the RTSC-pedia for the latest documentation on the RTSC technology and XDCtools.

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.20 :

  • Data Memory Footprint Reduction
  • Tool Performance Improvements
  • Enhanced Logging Capabilities
  • Platform Wizard Enhancements
  • Support for Peripherals in RTSC Platform Model

Data Memory Footprint Reduction

Release implements optimizations in the generated target code that result in data memory footprint reduction. Refer to ECL278643
for more details.

Tool Performance Improvements

Refer to this link for details on performance improvements in RTSC configuration.

Enhanced Logging Capabilities

The logging capabilities of the xdc.runtime package has been enhanced with the following new functionality
  • New Log APIs - Log_info, Log_warning, and Log_error- enable applications to easily emit events that communicate basic status information and automatically include file and line number information
  • The Error module now includes built-in support to log all errors
  • The new Registry module allows any C code to use Log and have its own diagnostics mask and name without requiring a reconfiguration of xdc.runtime.
  • Diags enhancements:
    • new categories added for errors and warnings, benchmarks, and basic information
    • diagnostic masks now include a 2-bit "priority" field which allows events of the same "category" to be prioritized
  • ILogger extended incompatibly to
    • allow more efficient logging of events with few (or no) arguments and
    • enable filtering based on an event's diagnostics mask (including the new priority bits)

Platform Wizard Enhancements

An improved platform wizard is available with this release

Support for Peripherals in RTSC Platform Model

The RTSC platform model has been extended to support peripherals.
  • Added support for devices to declare the peripherals they include. This enables driver packages to automatically detect the presence of specific peripherals.
  • Added rudimentary resource management support for these peripherals, allowing configuration frameworks to coordinate access to and control of each peripheral

Defect history for 3.20.06.81 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL330487 | C++ ELF targets get linker warning for non-placed ".init_array" section
ECL331578 | SYS/BIOS and IPC do not show up in XGCONF "Available Packages" view

back to top

Upgrade and Compatibility Information

This release contains some compatibility breaks in order to introduce new features. The following section describes those compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed. Implementors of this interface need to make source code changes. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • The package ti.catalog.c470 (deprecated since XDCtools 3.10.04) has been removed. The package ti.catalog.arm. should be used instead.
  • C6000 compiler has been upgraded to 7.0. Consumers of C6000 RTSC content built with the whole_program or whole_program_debug profile need to upgrade their compiler version to 7.0 or later.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP
  • RedHat Enterprise Linux 3
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00091. Note that this release will not work with CCS 4.1.3 and earlier releases.
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C67, C64P, C64, C62, C66
  • C5000 family - C55P, C55, C54
  • C2000 family - C28
  • ARM processors - TMS470, ARM9, ARM Cortex M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00091
  • TI ARM Code Generation Tools version 4.5.0 and 4.6.1
  • TI C6x Code Generation Tools version 7.0.0,7.1.0B2 ,7.2.0A
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C55 Code Generation Tools version 3.3.2
  • TI C54 Code Generation Tools version 4.2.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
back to top

Known Issues

The following issues are known to affect this release:

ID | Headline
ECL314790 | Default JVM memory not enough for cdoc

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: December 08, 2010 Build Ver: 3.20.06.81 Rev: m81


XDCtools 3.20.07.86 GA Release Notes

January 17, 2011

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by Code Composer Studio to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. Refer to the RTSC-pedia for the latest documentation on the RTSC technology and XDCtools.

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.20 :

  • Data Memory Footprint Reduction
  • Tool Performance Improvements
  • Enhanced Logging Capabilities
  • Platform Wizard Enhancements
  • Support for Peripherals in RTSC Platform Model
The following changes have been included in the patch release XDCtools 3.20.07.86
  • Support for TMS320C2806x devices
  • Bug fixes

Data Memory Footprint Reduction

Release implements optimizations in the generated target code that result in data memory footprint reduction. Refer to ECL278643
for more details.

Tool Performance Improvements

Refer to this link for details on performance improvements in RTSC configuration.

Enhanced Logging Capabilities

The logging capabilities of the xdc.runtime package has been enhanced with the following new functionality
  • New Log APIs - Log_info, Log_warning, and Log_error- enable applications to easily emit events that communicate basic status information and automatically include file and line number information
  • The Error module now includes built-in support to log all errors
  • The new Registry module allows any C code to use Log and have its own diagnostics mask and name without requiring a reconfiguration of xdc.runtime.
  • Diags enhancements:
    • new categories added for errors and warnings, benchmarks, and basic information
    • diagnostic masks now include a 2-bit "priority" field which allows events of the same "category" to be prioritized
  • ILogger extended incompatibly to
    • allow more efficient logging of events with few (or no) arguments and
    • enable filtering based on an event's diagnostics mask (including the new priority bits)

Platform Wizard Enhancements

An improved platform wizard is available with this release

Support for Peripherals in RTSC Platform Model

The RTSC platform model has been extended to support peripherals.
  • Added support for devices to declare the peripherals they include. This enables driver packages to automatically detect the presence of specific peripherals.
  • Added rudimentary resource management support for these peripherals, allowing configuration frameworks to coordinate access to and control of each peripheral

Defect history for 3.20.07.86 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL332570 | xdc.tools.Server SecurityManager can cause CCSv5 to refuse to close
ECL332985 | gnu.targets link fails if a filename contains '-'
ECL333928 | Bad code generated for SysMin_putch() on ARM M3 target

back to top

Upgrade and Compatibility Information

This release contains some compatibility breaks in order to introduce new features. The following section describes those compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed. Implementors of this interface need to make source code changes. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • The package ti.catalog.c470 (deprecated since XDCtools 3.10.04) has been removed. The package ti.catalog.arm. should be used instead.
  • C6000 compiler has been upgraded to 7.0. Consumers of C6000 RTSC content built with the whole_program or whole_program_debug profile need to upgrade their compiler version to 7.0 or later.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP
  • RedHat Enterprise Linux 3
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C67, C64P, C64, C62, C66
  • C5000 family - C55P, C55, C54
  • C2000 family - C28
  • ARM processors - TMS470, ARM9, ARM Cortex M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095
  • TI ARM Code Generation Tools version 4.5.0 and 4.6.1
  • TI C6x Code Generation Tools version 7.0.0,7.1.0B2 ,7.2.0B1
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C55 Code Generation Tools version 3.3.2
  • TI C54 Code Generation Tools version 4.2.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C62,C64,C64P,C64P_big_endian,C67,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.0 (TMS320C6x)
ti.targets.C54 | 4.2.0 (TMS320C54x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.TMS470;ti.targets.arm.[Arm7,Arm9,Arm11,Arm11_big_endian,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian] | 4.5.0 (ARM/TMS470)
ti.targets.C66;ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C67P,C66,C66_big_endian] | 7.2.0B1 (TMS320C6x)
ti.targets.elf.C674_big_endian | 7.1.0B2(TMS320C6x)
ti.targets.elf.TMS470 | 4.6.0 (ARM/TMS470)
ti.targets.arm.elf.[Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.6.1 (ARM/TMS470)
ti.targets.[C55,C55_huge] | 3.3.2 (TMS320C55x)
ti.targets.C55P_word | 4.0.0A (TMS320C55x)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00

back to top

Known Issues

The following issues are known to affect this release:

ID | Headline
ECL314790 | Default JVM memory not enough for cdoc

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: January 17, 2011 Build Ver: 3.20.07.86 Rev: m86


XDCtools 3.20.08.88 GA Release Notes

January 31, 2011

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by Code Composer Studio to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. Refer to the RTSC-pedia for the latest documentation on the RTSC technology and XDCtools.

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.20 :

  • Data Memory Footprint Reduction
  • Tool Performance Improvements
  • Enhanced Logging Capabilities
  • Platform Wizard Enhancements
  • Support for Peripherals in RTSC Platform Model
The following changes have been included in the patch release XDCtools 3.20.08.88
  • Bug Fixes

Data Memory Footprint Reduction

Release implements optimizations in the generated target code that result in data memory footprint reduction. Refer to ECL278643
for more details.

Tool Performance Improvements

Refer to this link for details on performance improvements in RTSC configuration.

Enhanced Logging Capabilities

The logging capabilities of the xdc.runtime package has been enhanced with the following new functionality
  • New Log APIs - Log_info, Log_warning, and Log_error- enable applications to easily emit events that communicate basic status information and automatically include file and line number information
  • The Error module now includes built-in support to log all errors
  • The new Registry module allows any C code to use Log and have its own diagnostics mask and name without requiring a reconfiguration of xdc.runtime.
  • Diags enhancements:
    • new categories added for errors and warnings, benchmarks, and basic information
    • diagnostic masks now include a 2-bit "priority" field which allows events of the same "category" to be prioritized
  • ILogger extended incompatibly to
    • allow more efficient logging of events with few (or no) arguments and
    • enable filtering based on an event's diagnostics mask (including the new priority bits)

Platform Wizard Enhancements

An improved platform wizard is available with this release

Support for Peripherals in RTSC Platform Model

The RTSC platform model has been extended to support peripherals.
  • Added support for devices to declare the peripherals they include. This enables driver packages to automatically detect the presence of specific peripherals.
  • Added rudimentary resource management support for these peripherals, allowing configuration frameworks to coordinate access to and control of each peripheral

Defect history for 3.20.08.88 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL292207 | HeapStd should be friendlier to C runtimes where there is no "heap size"
ECL334936 | ti.targets.elf.C66 should list e64P and e674 as compatible suffixes
ECL334938 | gconf tool throws errors during file save

back to top

Upgrade and Compatibility Information

This release contains some compatibility breaks in order to introduce new features. The following section describes those compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed. Implementors of this interface need to make source code changes. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • The package ti.catalog.c470 (deprecated since XDCtools 3.10.04) has been removed. The package ti.catalog.arm. should be used instead.
  • C6000 compiler has been upgraded to 7.0. Consumers of C6000 RTSC content built with the whole_program or whole_program_debug profile need to upgrade their compiler version to 7.0 or later.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP
  • RedHat Enterprise Linux 3
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C67, C64P, C64, C62, C66
  • C5000 family - C55P, C55, C54
  • C2000 family - C28
  • ARM processors - TMS470, ARM9, ARM Cortex M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095
  • TI ARM Code Generation Tools version 4.5.0 and 4.6.1
  • TI C6x Code Generation Tools version 7.0.0,7.1.0B2 ,7.2.0B1
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C55 Code Generation Tools version 3.3.2
  • TI C54 Code Generation Tools version 4.2.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C62,C64,C64P,C64P_big_endian,C67,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.0 (TMS320C6x)
ti.targets.C54 | 4.2.0 (TMS320C54x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.TMS470;ti.targets.arm.[Arm7,Arm9,Arm11,Arm11_big_endian,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian] | 4.5.0 (ARM/TMS470)
ti.targets.C66;ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C67P,C66,C66_big_endian] | 7.2.0B1 (TMS320C6x)
ti.targets.elf.C674_big_endian | 7.1.0B2(TMS320C6x)
ti.targets.elf.TMS470 | 4.6.0 (ARM/TMS470)
ti.targets.arm.elf.[Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.6.1 (ARM/TMS470)
ti.targets.[C55,C55_huge] | 3.3.2 (TMS320C55x)
ti.targets.C55P_word | 4.0.0A (TMS320C55x)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00

back to top

Known Issues

The following issues are known to affect this release:

ID | Headline
ECL314790 | Default JVM memory not enough for cdoc

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: January 31, 2011 Build Ver: 3.20.08.88 Rev: m88


XDCtools 3.22.00.09 GA Release Notes

May 02, 2011

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory. Note that XDCtools 3.21 (supports only the MSP430 device family) is shipped only with the Grace product.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.22 :

  • XGCONF Enhancements
  • New Platform Support
  • Eclipse Integration Enhancements

XGCONF Enhancements

The following enhancements have been made to the XGCONF tool
  • Script generation now produces shorter more readable scripts
  • Real-time validation is now possible; this makes it possible to validate user input before re-building
  • Modules can now provide graphical view of their configuration parameters
  • The available packages view can now show a device specific subset

New Host Support

  • XDCtools now supports Windows 7 and Ubuntu 10.04

Eclipse Integration Enhancements

  • Product supports CCSv5 on Linux(Ubuntu 10.04) and Windows XP/7
  • An enhanced error parser is provided with this release
  • Standard make project integration allows users to leverage RTSC build within CCS.

Defect history for 3.22.00.09 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL283354 | Templates that throw exceptions can corrupt the config model
ECL291248 | Closing XGCONF "Available Packages" view before it is populated causes an exception
ECL291845 | mod__prologue.h and mod__epilogue.h are not automatically added to pkg
ECL293232 | gconf: closing the outline view of a config corrupts the GUI lists
ECL303338 | xgconf: should remember previous property page when configuring a module
ECL315708 | cannot set 'fxn' field in ti.sysbios.family.c64p.EventCombiner array
ECL317527 | IInstance.name needs link to common$.namedInstance
ECL321075 | XDCtool error parser should filter out stack traceback error
ECL321158 | Config crash when XDCBUILDCFG assigned a file with a space in its path
ECL322858 | Building Java code in packages fails if pathnames have spaces
ECL328989 | setting Text.isLoaded to true causes Diags_setMask() to access random memory
ECL329837 | Platform wizard throws an exception while using the TMS320DM365 device
ECL331949 | gnu.targets.ITarget.xs's link cmd should first rm the generated .map file (in case it's read only)
ECL332570 | xdc.tools.Server SecurityManager can cause CCSv5 to refuse to close
ECL332985 | gnu.targets link fails if a filename contains '-'
ECL334317 | trailing white space in XDCTARGETS corrupts the environment
ECL340213 | Platform wizard does not search user repository while importing platforms

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed in XDCtools 3.20. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.20 and later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI C54 Code Generation Tools version 4.2.0. or later
  • TI C28 Code Generation Tools version 5.2.1 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0B1 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
 back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
 back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095
  • TI ARM Code Generation Tools version 4.9.0
  • TI C6x Code Generation Tools version 7.0.3,7.2.0
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)

back to top

Known Issues

ID | Headline
ECL280863 | xgconf: If instances have required args, should force user to enter something
ECL280869 | xgconf: Can create two instances with the same name
ECL305948 | xgconf does not respond to config file rename
ECL321074 | xgconf and XDCtools error parser add duplicate errors to Problems view
ECL342651 | XGCONF should allow disable static creation in a RTSC modules

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: May 02, 2011 Build Ver: 3.22.00.09 Rev:


XDCtools 3.22.01.21 GA Release Notes

June 16, 2011

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory. Note that XDCtools 3.21 (supports only the MSP430 device family) is shipped only with the Grace product.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.22 :

  • XGCONF Enhancements
  • New Platform Support
  • Eclipse Integration Enhancements

XGCONF Enhancements

The following enhancements have been made to the XGCONF tool
  • Script generation now produces shorter more readable scripts
  • Real-time validation is now possible; this makes it possible to validate user input before re-building
  • Modules can now provide graphical view of their configuration parameters
  • The available packages view can now show a device specific subset

New Host Support

  • XDCtools now supports Windows 7 and Ubuntu 10.04

Eclipse Integration Enhancements

  • Product supports CCSv5 on Linux(Ubuntu 10.04) and Windows XP/7
  • An enhanced error parser is provided with this release
  • Standard make project integration allows users to leverage RTSC build within CCS.

Defect history for 3.22.01.21 (This Release)

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

The following defects were resolved in this release:

ID | Headline
ECL325514 | Platform wizard should remember the last repository selected by the user
ECL342651 | XGCONF should disable static creation in RTSC modules

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed in XDCtools 3.20. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.20 and later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
 back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
 back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095
  • TI ARM Code Generation Tools version 4.9.0
  • TI C6x Code Generation Tools version 7.0.3,7.2.0
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)

back to top

Known Issues

ID | Headline
ECL280863 | xgconf: If instances have required args, should force user to enter something
ECL280869 | xgconf: Can create two instances with the same name
ECL305948 | xgconf does not respond to config file rename
ECL321074 | xgconf and XDCtools error parser add duplicate errors to Problems view

Editing RTSC .cfg file while using ROV can cause Java out of memory error

The RTSC editor for .cfg files (XGCONF), and the Runtime Object Viewer debug window (ROV) both consume a lot of Java heap memory. Using both at the same time, or editing multiple .cfg files at the same time, can cause CCS (v4 or v5) to run out of Java heap memory and crash during heavy use. Workaround is to edit only one .cfg file at a time, and close XGCONF while using ROV.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: June 16, 2011 Build Ver: 3.22.01.21 Rev:


XDCtools 3.22.02.27 GA Release Notes

July 20, 2011

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory. Note that XDCtools 3.21 (supports only the MSP430 device family) is shipped only with the Grace product.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.22 :

  • XGCONF Enhancements
  • New Platform Support
  • Eclipse Integration Enhancements

XGCONF Enhancements

The following enhancements have been made to the XGCONF tool
  • Script generation now produces shorter more readable scripts
  • Real-time validation is now possible; this makes it possible to validate user input before re-building
  • Modules can now provide graphical view of their configuration parameters
  • The available packages view can now show a device specific subset

New Host Support

  • XDCtools now supports Windows 7 and Ubuntu 10.04

Eclipse Integration Enhancements

  • Product supports CCSv5 on Linux(Ubuntu 10.04) and Windows XP/7
  • An enhanced error parser is provided with this release
  • Standard make project integration allows users to leverage RTSC build within CCS.

Defect history and changes in 3.22.02.27 (This Release)

This release supports the Concerto dual core MCU devices.

Bugs against the XDCtools product maybe filed in the eclipse bugzilla.

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed in XDCtools 3.20. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.20 and later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
 back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
 back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095
  • TI ARM Code Generation Tools version 4.9.0
  • TI C6x Code Generation Tools version 7.0.3,7.2.0
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)

back to top

Known Issues

ID | Headline
ECL280863 | xgconf: If instances have required args, should force user to enter something
ECL280869 | xgconf: Can create two instances with the same name
ECL305948 | xgconf does not respond to config file rename
ECL321074 | xgconf and XDCtools error parser add duplicate errors to Problems view

Editing RTSC .cfg file while using ROV can cause Java out of memory error

The RTSC editor for .cfg files (XGCONF), and the Runtime Object Viewer debug window (ROV) both consume a lot of Java heap memory. Using both at the same time, or editing multiple .cfg files at the same time, can cause CCS (v4 or v5) to run out of Java heap memory and crash during heavy use. Workaround is to edit only one .cfg file at a time, and close XGCONF while using ROV.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: July 20, 2011 Build Ver: 3.22.02.27 Rev:


XDCtools 3.22.03.41 GA Release Notes

September 16, 2011

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts as well as core packages used during the configuration and target execution of RTSC modules;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products; and finally
  • Eclipse (eclipse) - a set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed online in the RTSC-Pedia.

Release notes from previous product releases are available in the relnotes_archive directory. Note that XDCtools 3.21 (which supports only the MSP430 device family) is shipped only with the Grace product.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.22 :

  • XGCONF Enhancements
  • New Platform Support
  • Eclipse Integration Enhancements

XGCONF Enhancements

  • Script generation now produces shorter more readable scripts
  • Real-time validation is now possible; this makes it possible to validate user input before re-building
  • Modules can now provide graphical view of their configuration parameters
  • The available packages view can now show a device specific subset

New Host and Target Platform Support

  • XDCtools now supports Windows 7 and Ubuntu 10.04
  • added support for the evm5525, evmAM3359, ezdsp5502, and ezdsp5535 hardware platforms (ti.platforms.evm5525, ti.platforms.evmAM3359, ti.platforms.ezdsp5502, ti.platforms.ezdsp5535)
  • added Arm A8 Neon, vector floating point target (ti.targets.arm.elf.A8Fnv)
  • added support for TI's MSP430 4.0 compiler (COFF only)
  • added support for TI's Arm 4.9 compiler

Eclipse Integration Enhancements

  • Product supports CCSv5 on Linux(Ubuntu 10.04) and Windows XP/7
  • An enhanced error parser is provided with this release
  • Standard make project integration allows users to leverage RTSC build within CCS.

Defect history and changes in 3.22.03.41 (This Release)

ID | Headline
351983 | dependencies between executables and imported libraries is broken
291686 | multiple imports of the same named module do not trigger error
344740 | Error when SourceDir.outputDir is set to a relative path within a directory with spaces
355425 | configuro output directory names can't end with a slash
347085 | configuro syntax error in generated config.bld
354063 | Concerto 28x memory map needs to reserve FLASH/password section

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available.
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed in XDCtools 3.20. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.20 and later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
 back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
 back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095
  • TI ARM Code Generation Tools version 4.9.0
  • TI C6x Code Generation Tools version 7.0.3,7.2.0
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian,C66,C66_big_endian] | 7.0.3 (TMS320C6x, COFF)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C66,C66_big_endian,C674,C674_big_endian,C67P] | 7.2.0 (TMS320C6x, ELF)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | 14.01.60511 (Microsoft WinCE 6.00)
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0 (MSP430)

back to top

Known Issues

ID | Headline
280863 | xgconf: If instances have required args, should force user to enter something
280869 | xgconf: Can create two instances with the same name
305948 | xgconf does not respond to config file rename
321074 | xgconf and XDCtools error parser add duplicate errors to Problems view

Editing RTSC .cfg file while using ROV can cause Java out of memory error

The RTSC editor for .cfg files (XGCONF), and the Runtime Object Viewer debug window (ROV) both consume a lot of Java heap memory. Using both at the same time, or editing multiple .cfg files at the same time, can cause CCS (v4 or v5) to run out of Java heap memory and crash during heavy use. Workaround is to edit only one .cfg file at a time, and close XGCONF while using ROV.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases and RTSC-Pedia (http://rtsc.eclipse.org/docs) for the latest documentation.

back to top

Last updated: September 16, 2011 Build Ver: 3.22.03.41 Rev:


XDCtools 3.22.04.46 GA Release Notes

October 10, 2011

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts as well as core packages used during the configuration and target execution of RTSC modules;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products; and finally
  • Eclipse (eclipse) - a set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed online in the RTSC-Pedia.

Release notes from previous product releases are available in the relnotes_archive directory. Note that XDCtools 3.21 (which supports only the MSP430 device family) is shipped only with the Grace product.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.22 :

  • XGCONF Enhancements
  • New Platform Support
  • Eclipse Integration Enhancements

XGCONF Enhancements

  • Script generation now produces shorter more readable scripts
  • Real-time validation is now possible; this makes it possible to validate user input before re-building
  • Modules can now provide graphical view of their configuration parameters
  • The available packages view can now show a device specific subset

New Host and Target Platform Support

  • XDCtools now supports Windows 7 and Ubuntu 10.04
  • added support for the evm5525, evmAM3359, ezdsp5502, and ezdsp5535 hardware platforms (ti.platforms.evm5525, ti.platforms.evmAM3359, ti.platforms.ezdsp5502, ti.platforms.ezdsp5535)
  • added Arm A8 Neon, vector floating point target (ti.targets.arm.elf.A8Fnv)
  • added support for TI's MSP430 4.0 compiler (COFF only)
  • added support for TI's Arm 4.9 compiler

Eclipse Integration Enhancements

  • Product supports CCSv5 on Linux(Ubuntu 10.04) and Windows XP/7
  • An enhanced error parser is provided with this release
  • Standard make project integration allows users to leverage RTSC build within CCS.

Defect history and changes in 3.22.04.46 (This Release)

ID | Headline
351983 | dependencies between executables and imported libraries is broken
291686 | multiple imports of the same named module do not trigger error
344740 | Error when SourceDir.outputDir is set to a relative path within a directory with spaces
355425 | configuro output directory names can't end with a slash
347085 | configuro syntax error in generated config.bld
354063 | Concerto 28x memory map needs to reserve FLASH/password section

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available.
  • Packages with meta-only content are forwards and backwards compatible starting from XDCtools 2.95.01
  • xdc.runtime.ILogger interface has changed in XDCtools 3.20. The rest of the xdc.runtime package is source compatible with XDCtools releases starting from version 3.00. Target content using this package needs to be recompiled from source.
  • xdc.runtime.knl package is source compatible with XDCtools releases starting from version 3.15. Target content using this package needs to be recompiled from source.
  • Compatibility with specific products
    • SYS/BIOS 6.2x or earlier- Incompatible due to changes in xdc.runtime and C6000 compiler versions
    • SYS/BIOS 6.30 - Compatible
    • DSP/BIOS 5.33.05 or earlier - Compatible but some users may see references to ti.catalog.c470
    • DSP/BIOS 5.33.06 or later - Compatible
    • Codec Engine 3.20 and later - Compatible
    • Codec Engine 3.00 - Incompatible because of SYS/BIOS 6.2x and changes to xdc.runtime.ILogger
    • Codec Engine 2.24,2.25 - Compatible
    • Codec Engine 2.20,2.10 - Requires upgrade to DSP/BIOS 5.33.06 or later for compatibility
    • Codec Engine 2.00,1.x - Incompatible because of xdc.runtime changes

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer's source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI C55 Code Generation Tools version 3.2.0. or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095
  • TI ARM Code Generation Tools version 4.9.0
  • TI C6x Code Generation Tools version 7.0.3,7.2.0
  • TI MSP430 Code Generation Tools version 3.3.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian,C66,C66_big_endian] | 7.0.3 (TMS320C6x, COFF)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C66,C66_big_endian,C674,C674_big_endian,C67P] | 7.2.0 (TMS320C6x, ELF)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | 14.01.60511 (Microsoft WinCE 6.00)
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0 (MSP430)

back to top

Known Issues

ID | Headline
280863 | xgconf: If instances have required args, should force user to enter something
280869 | xgconf: Can create two instances with the same name
305948 | xgconf does not respond to config file rename
321074 | xgconf and XDCtools error parser add duplicate errors to Problems view

Editing .cfg files with XGCONF while using ROV can cause Java out of memory error

The graphical editor for .cfg files (XGCONF) and the Runtime Object Viewer debug window (ROV) both consume a lot of Java heap memory. Using both at the same time, or editing multiple .cfg files at the same time, can cause CCS (v4 or v5) to run out of Java heap memory and crash during heavy use. Workaround is to edit only one .cfg file at a time, and close XGCONF while using ROV.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases and RTSC-Pedia (http://rtsc.eclipse.org/docs) for the latest documentation.

back to top

Last updated: October 10, 2011 Build Ver: 3.22.04.46 Rev:


XDCtools 3.23.00.32 GA Release Notes

November 16, 2011

Introduction, Documentation, License, What's New, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory. Note that XDCtools 3.21 (supports only the MSP430 device family) is shipped only with the Grace product.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

The following significant changes are included in XDCtools 3.23 :

  • The XDCtools product has been extended to work with Code Composer Studio v5.1.0. However, note that this release will no longer work with versions of CCS prior to v5.1.0.
  • To align XDCtools with Code Composer Studio 5.1.0, the default directory of its installers are as follows:
Host OS | Default Install Directory
MS Windows (XP and 7) | C:\ti
Linux root user | /opt/ti
Linux non-root user | $HOME/ti
  • Calls to Mod_construct() are now permissable in static-only systems.
  • Added Android target support (google.targets.arm.Bionic)
  • Added gcc ARM Cortex M3/M4 target support (gnu.targets.arm.M3, gnu.targets.arm.M4, gnu.targets.arm.M4F, gnu.targets.arm.rtsv7M)
  • Added gcc Stellaris target support (ti.platforms.stellaris)

Defect history for 3.23.00.32 (This Release)

Bugs against the XDCtools product may be filed in Eclipse Bugzilla.

The following defects were resolved in this release:

ID | Headline
361975 | add targets for gcc M3/M4 and update ti.platforms.stellaris to support gcc
324012 | Support for RTSC integration for standard make projects in eclipse
345297 | Program.sectMap should be editable in XGCONF
349505 | static only policy should allow runtime constructs
361185 | update SourceDir's makefile.lib to make the clean rule work better for custom build
363228 | Setting Hwi/Swi stack size in Hwi grace page does not work
345462 | MSP430 Generic Platform linker command files should add add " --args 0" by default
360296 | Incorrect memory page attribute handling in Utils.checkFit
360297 | Incorrect page attribute for simArctic platform
361972 | update SysMin to support HOSTwrite during flushAtExit for gcc
363104 | Add gnu alignment support to obj.$$alloc
282605 | platform getExec should support repositories with spaces

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
 back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
 back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 5.1.0.90000
  • TI ARM Code Generation Tools version 4.9.0
  • TI C6x Code Generation Tools version 7.0.3, 7.2.0B2
  • TI MSP430 Code Generation Tools version 3.4.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)
Android Bionic | 4.4.3

back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: November 16, 2011 Build Ver: 3.23.00.32 Rev:


XDCtools 3.23.01.43 GA Release Notes

February 10, 2012

Introduction, Documentation, License, Special Notes, What's New, Defect History, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory. Note that XDCtools 3.21 (supports only the MSP430 device family) is shipped only with the Grace product.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

back to top

Special Notes

The following significant changes are included in XDCtools 3.23 :

  • The XDCtools product has been extended to work with Code Composer Studio v5.1.0. However, note that this release will no longer work with versions of CCS prior to v5.1.0.
  • To align XDCtools with Code Composer Studio 5.1.0, the default directory of its installers are as follows:
Host OS | Default Install Directory
MS Windows (XP and 7) | C:\ti
Linux root user | /opt/ti
Linux non-root user | $HOME/ti

back to top

What's New

  • Added new platform support for OMAPL138 Low Cost Development Kit (LCDK) board
  • Added new platform support for C6748 Low Cost Development Kit (LCDK) board
  • Added new target support for the QNX real-time operating system

back to top

Defect history for 3.23.01.43 (This Release)

Bugs against the XDCtools product may be filed in Eclipse Bugzilla.

The following defects and enhancement requests were resolved in this release. For more information on these bugs, or to see a more up to date list, go here.

ID | Description
360745 | remove --symbol_map from linker.cmd (.xdl) files for TI/ELF targets
364431 | xdc.runtime Grace .xml files need to be updated to use new instance scheme
366639 | move 'atexit()' call in System to a "lastFxn" instead of module_startup
366646 | Add new platforms for OMAPL138 and C6748 Low cost development kit (LCDK) boards
367139 | M3 and C28 frequencies need to be shown on the Concerto Boot config page
367140 | The flash is slow on Concerto's M3 with SYS/BIOS
367520 | MSP430F2618 timer interrupts and number of interrupts in peripheral definitions is incorrect
367674 | A command line passed to xdc.exec works on Windows but fails on Linux
367805 | tar-based release archives may include excluded directories.
369158 | generated instance create function sometimes contains unnecessary initialized variables
369572 | google.targets's remoteHost support should switch from rsh to ssh
369719 | Enable targets to create/set new env vars when executing cmds
370016 | Add QNX target

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
 back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
 back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 5.1.0.90000
  • TI ARM Code Generation Tools version 4.9.0
  • TI C6x Code Generation Tools version 7.0.3, 7.2.0B2
  • TI MSP430 Code Generation Tools version 3.4.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)
Android Bionic | 4.4.3

back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: February 10, 2012 Build Ver: 3.23.01.43 Rev:


XDCtools 3.23.02.47 GA Release Notes

March 21, 2012

Introduction, Documentation, License, Special Notes, What's New, Defect History, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

back to top

Special Notes

The following significant changes are included in XDCtools 3.23 :

  • The XDCtools product has been extended to work with Code Composer Studio v5.2.0. However, note that this release will no longer work with versions of CCS prior to v5.1.0.

back to top

What's New

  • Added new target support for the TMS320C6671 device.
  • Added new target support for ARP32.
  • Added new platform support for the TMS320TCI6614 EVM.

back to top

Defect history for 3.23.02.47 (This Release)

Bugs against the XDCtools product may be filed in Eclipse Bugzilla.

The following defects and enhancement requests were resolved in this release. For more information on these bugs, or to see a more up to date list, go here.

ID | Description
373395 | Allow targets to be mapped by device XML files
372067 | Stellaris generic platform for GNU target has insufficient VECS section length for LM4F232H5QD

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 4.2.0.10017 and 5.0.0.00095. Note that this release will not work with CCS 4.1.3 and earlier releases.
 back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
 back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 5.2.0.
  • TI ARM Code Generation Tools version 4.9.0
  • TI C6x Code Generation Tools version 7.0.3, 7.2.0B2
  • TI MSP430 Code Generation Tools version 3.4.0
  • TI C28 Code Generation Tools version 5.2.3
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)
Android Bionic | 4.4.3

back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: March 21, 2012 Build Ver: 3.23.02.47 Rev:


XDCtools 3.23.03.53 GA Release Notes

April 30, 2012

Introduction, Documentation, License, Special Notes, What's New, Defect History, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

back to top

Special Notes

The following significant changes are included in XDCtools 3.23 :

  • The XDCtools product has been extended to work with Code Composer Studio v5.2.0. However, note that this release will no longer work with versions of CCS prior to v5.1.1.

back to top

What's New

  • Added C6A8149 catalog files and evmC6A8149 platform package (CentEVE).
  • Added Vayu catalog files and simVayu platform package
  • Added support for TI ARM Codegen tools version 5.x

back to top

Defect history for 3.23.03.53 (This Release)

Bugs against the XDCtools product may be filed in Eclipse Bugzilla.

The following defects and enhancement requests were resolved in this release. For more information on these bugs, or to see a more up to date list, go here.

ID | Description
376327 | ROV can hang CCS when single-stepping thru assembly code
376538 | CDOC for @NoRuntime modules is wrong
376795 | UInt64 is incorrectly defined in ti/targets/std.h
377588 | install .zip files for CCS are missing the M4 and gcc libraries for M3/M4.

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 5.1.1 (or later).
 back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
 back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 5.2.0.
  • TI ARM Code Generation Tools version 4.9.1
  • TI C6x Code Generation Tools version 7.3.4
  • TI MSP430 Code Generation Tools version 4.1.0
  • TI C28 Code Generation Tools version 6.1.0
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)
Android Bionic | 4.4.3

back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: April 30, 2012 Build Ver: 3.23.03.53 Rev:


XDCtools 3.23.04.60 GA Release Notes

July 09, 2012

Introduction, Documentation, License, Special Notes, What's New, Defect History, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia.

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

back to top

Special Notes

The following significant changes are included in XDCtools 3.23 :

  • The XDCtools product has been extended to work with Code Composer Studio v5.2.0. However, note that this release will no longer work with versions of CCS prior to v5.1.1.

back to top

What's New

  • Add FLASH configuration support to the C28x Boot module

back to top

Defect history for 3.23.04.60 (This Release)

Bugs against the XDCtools product may be filed in Eclipse Bugzilla.

The following defects and enhancement requests were resolved in this release. For more information on these bugs, or to see a more up to date list, go here.

ID | Description
380759 | xdc.loadXML() should ignore leading white space in XML files
371035 | Vers and What fail in locales with wide characters
377712 | XDCspec parser does not recognize '**/' as the end of a comment
366475 | configuro generates a wrong linker.cmd when a tcf file is present
369573 | Migrate .remoteHost support for all targets (gnu.targets, etc) from rsh to ssh
361992 | update Concerto Boot modules to show all clocks and config FLASH wait states
367140 | The flash is slow on Concerto's M3 with SYS/BIOS
349519 | ti.catalog.c2800.init.Boot.xs this.$logError() needs to be updated

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 5.1.1 (or later).
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 5.2.0.
  • TI ARM Code Generation Tools version 4.9.1
  • TI C6x Code Generation Tools version 7.3.4
  • TI MSP430 Code Generation Tools version 4.1.0
  • TI C28 Code Generation Tools version 6.1.0
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)
Android Bionic | 4.4.3

back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: July 09, 2012 Build Ver: 3.23.04.60 Rev:


XDCtools 3.24.00.08 GA Release Notes

February 06, 2012

Introduction, License, What's New, Upgrade & Compatibility Information, Host Support, Device Support, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

What's New

This release of XDCtools is exclusively for use with the MSP430 Grace stand-alone product.

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7

 back to top

Device Support

This release is solely for use within the MSP430 Grace stand-alone product.

 back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

We encourage you to alert the Grace development team to any issues you may find. Post any issues or questions to the TI E2E forum at: http://www.ti.com/gracefeedback.

back to top

Last updated: February 06, 2012 Build Ver: 3.24.00.08 Rev:


XDCtools 3.24.01.29 GA Release Notes

September 05, 2012

Introduction, Documentation, License, Special Notes, What's New, Defect History, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia.

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

back to top

Special Notes

The following significant changes are included in XDCtools 3.24 :

  • The XDCtools product has been extended to work with Code Composer Studio v5.2.0 and above. However, note that this release will no longer work with versions of CCS prior to v5.1.1.

back to top

What's New

The following Eclipse Bugzilla items have been resolved in this release:
  • 353148 - Provide a XDC spec'd Logger implementation with classic C callouts
  • 375981 - list of nonsplittable sections for TI compilers is poorly organized
  • 285097 - consecutive ';' in package path causes compiler errors
  • 301038 - Text_putMod can overflow when Text.isLoaded = false
  • 311291 - improve the compiler version compatibility warning
  • 335495 - HeapStd should be friendlier to C runtimes where there is no "heap size"
  • 336662 - xdc.runtime.System should have System_snprintf
  • 364526 - System_printf float conversion differs from the standard C library
  • 340586 - Semaphore_pend() timeout = FOREVER

back to top

Defect history for 3.24.01.29 (This Release)

Bugs against the XDCtools product may be filed in Eclipse Bugzilla.

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 5.1.1 (or later).
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 5.2.0.
  • TI ARM Code Generation Tools version 4.9.1
  • TI C6x Code Generation Tools version 7.3.4
  • TI MSP430 Code Generation Tools version 4.1.0
  • TI C28 Code Generation Tools version 6.1.0
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)
Android Bionic | 4.4.3

back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: September 05, 2012 Build Ver: __BUILDVER__ Rev: q29


XDCtools 3.24.02.30 GA Release Notes

September 14, 2012

Introduction, Documentation, License, Special Notes, What's New, Defect History, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia.

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

back to top

Special Notes

The following significant changes are included in XDCtools 3.24 :

  • The XDCtools product has been extended to work with Code Composer Studio v5.2.0 and above. However, note that this release will no longer work with versions of CCS prior to v5.1.1.

back to top

What's New

This release has been updated to allow the Grace 1.x and 2.x products to work in Code Composer Studio 5.3.0.

back to top

Defect history for 3.24.02.30 (This Release)

Bugs against the XDCtools product may be filed in Eclipse Bugzilla.

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 5.1.1 (or later).
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 5.2.0.
  • TI ARM Code Generation Tools version 4.9.1
  • TI C6x Code Generation Tools version 7.3.4
  • TI MSP430 Code Generation Tools version 4.1.0
  • TI C28 Code Generation Tools version 6.1.0
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)
Android Bionic | 4.4.3

back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: September 14, 2012 Build Ver: __BUILDVER__ Rev: q30


XDCtools __VERSTRDOT__ __RELEASE_TYPE_TEXT__ Release Notes

__DATE__

Introduction, Documentation, License, Special Notes, What's New, Defect History, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia.

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

back to top

Special Notes

The following significant changes are included in XDCtools __MAJORVERSION__ :

  • The XDCtools product has been extended to work with Code Composer Studio v5.2.0 and above. However, note that this release will no longer work with versions of CCS prior to v5.1.1.

back to top

What's New

This release has been updated to support the Grace 2.0 Beta and SYS/BIOS 6.34 GA products to work in Code Composer Studio 5.3.0.

back to top

Defect history for __VERSTRDOT__ (This Release)

Bugs against the XDCtools product may be filed in Eclipse Bugzilla.

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 5.1.1 (or later).
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 5.2.0.
  • TI ARM Code Generation Tools version 4.9.1
  • TI C6x Code Generation Tools version 7.3.4
  • TI MSP430 Code Generation Tools version 4.1.0
  • TI C28 Code Generation Tools version 6.1.0
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)
Android Bionic | 4.4.3

back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: __DATE__ Build Ver: __BUILDVER__ Rev: __REV__


XDCtools 3.24.04.38 GA Release Notes

October 16, 2012

Introduction, Documentation, License, Special Notes, What's New, Defect History, Upgrade & Compatibility Information, Host Support, Dependencies, Device Support, Validation Info, Known Issues, Version Information, Technical Support.

Introduction

RTSC / XDC (eXpanDed C) is a standard for reusable software components, optimized for real-time embedded systems. RTSC components have hardware-neutral formal interfaces, are configurable offline to optimize memory and performance, and support custom automation in the development environment via a scripting language.

The XDCtools product includes the following components:

  • Core (xdc.*) - the xdc and xs command line utilities for building packages and executing scripts respectively; packages that implement the RTSC standard;
  • User tools (xdc.tools.*) - command-line and graphical utilities for working with packages and repositories;
  • Targets (*.targets.*) - definitions for using various TI and third-party compiler tool chains;
  • Platforms (*.platforms.*) - definitions for linking and running code on various TI and third-party board-level hardware and simulator products.
  • Eclipse (eclipse) - A set of integration plugins for RTSC for the eclipse platform. These plugins are leveraged by CCS (Code Composer Studio) to provide support for integrating RTSC content in the IDE environment.
back to top

Documentation

The product documentation for this release is available in two formats:

  • Compressed .zip file archive
  • Microsoft HTML Help .chm file

Both formats are delivered with the product in the docs subdirectory. The most up-to-date docs can also be viewed in the RTSC-pedia.

Release notes from previous product releases are available in the relnotes_archive directory.

back to top

License

XDCtools contains elements released under the Eclipse Public License v1.0 and a number of other open-source licenses, detailed here.

back to top

Special Notes

The following significant changes are included in XDCtools 3.24 :

  • The XDCtools product has been extended to work with Code Composer Studio v5.2.0 and above. However, note that this release will no longer work with versions of CCS prior to v5.1.1.

back to top

What's New

This release has been updated to support the Grace 2.0 GA and SYS/BIOS 6.34 GA products to work in Code Composer Studio 5.3.0.

back to top

Defect history for 3.24.04.38 (This Release)

Bugs against the XDCtools product may be filed in Eclipse Bugzilla.

back to top

Upgrade and Compatibility Information

The following section describes compatibility breaks, and workarounds where available
  • Packages are forwards and backwards compatible starting from XDCtools 3.20

Package Compatibility Keys

The packages comprising the XDCtools release are uniquely identified by a compatibility key defined in the package.xdc file of a package. Please note that the package compatibility keys are independent of XDC product release numbers.

Package compatibility keys are intended to:

  1. Enable tooling to identify incompatibilities between components, and
  2. Convey a level of compatibility between different releases to set end user expectations.

Package compatibility keys are composed of 4 comma-delimited numbers - M, S, R, P - where:

  • M = Major - A difference in M indicates a break in compatibility. The package consumer is required to re-write its source code in order to use the package.
  • S = Source - A difference in S indicates source compatibility. The package consumer’s source code doesn't require change, but does require a recompile.
  • R = Radix - A difference in R indicates an introduction of new features, but compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.
  • P = Patch - A difference in P indicates that only bugs have been fixed in the latest package and no new features have been introduced. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.

back to top

Host Support

This release supports the following hosts:

  • Windows XP, Windows 7
  • RedHat Enterprise Linux 3 and Ubuntu 10.04 . Note that IDE integration on Linux is only supported for CCSv5 on Ubuntu 10.04.
back to top

Dependencies

This release requires the following other software components and tools versions to successfully function:

  • TI C6x Code Generation Tools version 7.0 or later
  • TI ARM Code Generation Tools version 4.5 or later
  • TI MSP430 Code Generation Tools version 3.3.0 or later
  • GCC for x86 version 3.2.3 or later
  • GCC for ARM version 3.2.3 or later
  • Code Composer Studio version 5.1.1 (or later).
back to top

Device Support

This release supports the following device families:

  • C6000 family - C674, C67P, C64P, C66, C64T
  • C2000 family - C28
  • ARM processors - TMS470, ARM7/9, Cortex A8/M3/R4
  • MSP430
  • Native development host (Windows, Linux)
back to top

Validation Information

This release was built and validated against using the following components:

  • Code Composer Studio version 5.2.0.
  • TI ARM Code Generation Tools version 4.9.1
  • TI C6x Code Generation Tools version 7.3.4
  • TI MSP430 Code Generation Tools version 4.1.0
  • TI C28 Code Generation Tools version 6.1.0
  • GCC for ARM version 4.3.2 (CodeSourcery), 4.2.1 and 3.4.3 (Montavista)
The code generation tools used for the various RTSC targets shipped with the product are shown below:

RTSC Target | Code Generation Tools
ti.targets.[C64P,C64P_big_endian,C67P,C674,C674_big_endian,C64T,C64T_big_endian] | 7.0.3 (TMS320C6x)
ti.targets.[C28,C28_large,C28_float] | 5.2.3 (TMS320C2000)
ti.targets.[C66,C66_big_endian];ti.targets.elf.[C64P,C64P_big_endian,C64T,C64T_big_endian,C674,C674_big_endian,C67P,C66,C66_big_endian] | 7.2.0 (TMS320C6x)
ti.targets.arm.elf.[TMS470,Arm7,Arm9,Arm9t,A8Ft,M3,M3_big_endian,R4,R4_big_endian,R4t,R4t_big_endian,R4F,R4F_big_endian,R4Ft_big_endian] | 4.9.0 (ARM/TMS470)
gnu.targets.MVArm9,gnu.targets.arm.GCArmv5T | 3.4.3 (GCC Montavista)
gnu.targets.UCArm9 | 4.2.1 (GCC Opensource)
gnu.targets.arm.GCArmv6,GCArmv7A | 4.3.2 (GCC Codesourcery)
gnu.targets.[Linux86,Sparc] | 4.1.0 (GCC Opensource)
gnu.targets.Mingw | 4.4.0 (GCC MingW)
microsoft.targets.Net32 | 13.10.3052 (Microsoft .NET C/C++)
microsoft.targets.Win32 | 14.00.50727.42 (Microsoft Visual C/C++)
microsoft.targets.VC98 | 12.00.8168 (Microsoft Visual C/C++)
microsoft.targets.arm.WinCE | Microsoft WinCE 6.00
ti.targets.msp430.[MSP430,MSP430X,MSP430X_small] | 3.3.0(MSP430)
Android Bionic | 4.4.3

back to top

Known Issues

To see a complete list of XDCTools issues, see the Eclipse Bugzilla.

back to top

Version Information

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA etc.). Pre-releases are denoted with a suffix (e.g. 3.15.01.51-eng).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. xdctools_3_15_00_50.

Subsequent releases of patch upgrades will be identified by the patch number, ex. XDCtools 3.15.01.67 with directory xdctools_3_15_01_67. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support

Support questions on the product should be posted to the RTSC newsgroup. Check the XDCtools download site for the latest releases.

back to top

Last updated: October 16, 2012 Build Ver: __BUILDVER__ Rev: q38